linux中的主要文件
- 格式:wps
- 大小:20.00 KB
- 文档页数:3
Linux文件种类与副文件名一直强调一个概念,那就是:任何装置在Linux底下都是文件,不仅如此,连资料沟通的介面也有专属的文件在负责~所以,你会瞭解到,Linux的文件种类真的很多~除了前面提到的一般文件(-)与目录文件(d)之外,还有哪些种类的文件呢?* 文件种类:我们在刚刚提到使用‘ls -l’观察到第一栏那十个字元中,第一个字元为文件的类型。
除了常见的一般文件(-)与目录文件(d)之外,还有哪些种类的文件类型呢?* 正规文件(regular file ):就是一般我们在进行存取的类型的文件,在由 ls -al 所显示出来的属性方面,第一个字元为 [ - ],例如 [-rwxrwxrwx ]。
另外,依照文件的内容,又大略可以分为:o 纯文字文件(ASCII):这是Linux系统中最多的一种文件类型啰,称为纯文字文件是因为内容为我们人类可以直接读到的资料,例如数字、字母等等。
几乎只要我们可以用来做为设定的文件都属于这一种文件类型。
举例来说,你可以下达‘ cat ~/.bashrc ’就可以看到该文件的内容。
(cat 是将一个文件内容读出来的指令)o 二进位文件(binary):还记得我们在‘ 第零章、计算机概论 ’里面的软体程式的运作中提过,我们的系统其实仅认识且可以执行二进位文件(binary file)吧?没错~你的Linux当中的可执行文件(scripts, 文字型批次文件不算)就是这种格式的啦~举例来说,刚刚下达的指令cat就是一个binary file。
o 资料格式文件(data):有些程式在运作的过程当中会读取某些特定格式的文件,那些特定格式的文件可以被称为资料文件 (data file)。
举例来说,我们的Linux在使用者登入时,都会将登录的资料记录在 /var/log/wtmp那个文件内,该文件是一个data file,他能够透过last这个指令读出来! 但是使用cat时,会读出乱码~因为他是属于一种特殊格式的文件。
请简述 linux 中的文件系统层次结构
Linux系统的文件系统层次结构是非常复杂的,通常可以分成如下几个层次:
1. 根目录:根目录是 Linux 文件系统中最顶层的根目录,它可以看做是 Linux 系统整个文件系统的根,其它所有的子目录都在它之下,一般用 '/' 表示。
2. 二级目录:包括 '/etc'、'/usr'、'/bin'、'/sbin'、'/lib' 等,这些目录又可以看做是四级目录的父目录,下面可以放置用户自定义的文件和文件夹。
3. 四级目录:这里可以放置用户自定义的应用程序,一般都是以某个子目录名开头,比如 '/usr/local','/usr/bin'、'/usr/sbin'等。
4. 程序文件:可以放置各种程序文件,包括可执行文件、库文件、配置文件等。
5. 日志文件:记录系统的运行日志,以及用户行为日志,用于排查故障。
6. 数据文件:用户可以将各种数据文件存放在用户指定的目录下。
总之,Linux系统的文件系统层次结构比较复杂,它们可以根据用户需求和功能进行多层次的划分,以满足用户的不同需求。
简单介绍linux中常用的归档压缩文件类型
在Linux中,常用的归档压缩文件类型有以下几种:
1. tar (.tar):Tar是一种归档文件格式,用于将多个文件打包成一个文件。
它只是将文件或目录组合在一起,并不进行压缩。
通常与其他压缩程序(如gzip、bzip2)一起使用,以实现文件的压缩和归档。
2. gzip (.gz):Gzip是一种常见的文件压缩格式。
通过gzip命令可以将文件压缩成gz格式,并且压缩后的文件保留原始文件的属性和结构。
压缩的文件通常使用.gz作为其扩展名。
3. bzip2 (.bz2):Bzip2是另一种常见的文件压缩格式,与gzip相似但更高效。
通过bzip2命令可以将文件压缩成bz2格式,并且压缩后的文件保留原始文件的属性和结构。
压缩的文件通常使用.bz2作为其扩展名。
4. zip (.zip):Zip是一种常见的文件压缩格式,它可以将多个文件和文件夹打包成一个压缩文件。
通过zip命令可以创建和解压zip文件。
压缩的文件通常使用.zip作为其扩展名。
5. 7z (.7z):7z是一种高压缩率的文件压缩格式,它通过算法压缩文件,通常可以达到比gzip 和bzip2更高的压缩率。
通过7z命令可以创建和解压7z文件。
压缩的文件通常使用.7z作为其扩展名。
这些是Linux中常用的归档压缩文件类型,每种类型都有其特定的使用场景和优势。
具体使用哪种类型取决于文件大小、压缩比率和使用需求等因素。
关于linux服务器hosts⽂件配置详解linux服务器hosts⽂件配置hosts⽂件是Linux系统中⼀个负责IP地址与域名快速解析的⽂件,以ASCII格式保存在“/etc”⽬录下,⽂件名为“hosts”。
hosts⽂件包含了IP地址和主机名之间的映射,还包括主机名的别名。
在没有域名服务器的情况下,系统上的所有⽹络程序都通过查询该⽂件来解析对应于某个主机名的IP地址,否则就需要使⽤DNS服务程序来解决。
通常可以将常⽤的域名和IP地址映射加⼊到hosts⽂件中,实现快速⽅便的访问。
下⾯我们来介绍下修改hosts配置⽂件的⽅法及步骤:所需⼯具:vim/vi1、安装vim编辑器sudo apt install vim -y # debiansudo yum install vim -y # readhat2、使⽤编辑器修改hosts⽂件1. sudo vim /etc/hosts2. 按下 i 键进⼊编辑模式hosts⽂件的格式如下:IP地址主机名/域名第⼀部份:⽹络IP地址;第⼆部份:主机名或域名;第三部份:主机名别名;例如:127.0.0.1 localhost.localdomain localhost192.168.1.100 linmu100192.168.1.120 ftpserver ftp1203、修改完成后进⾏保存内容扩展配置hosts⽂件这个⽂件可以配置主机ip及对应的主机名,对于服务器类型的linux系统其作⽤还是不可忽略的。
在局域⽹或是INTERNET 上,每台主机都有⼀个IP地址,它区分开每台主机,并可以根据ip进⾏通讯。
但IP地址不⽅便记忆,所以⼜有了域名。
在⼀个局域⽹中,每台机器都有⼀个主机名,⽤于区分主机,便于相互访问。
Linux主机名的相关配置⽂件就是/etc/hosts;这个⽂件告诉本主机哪些域名对应那些ip,那些主机名对应哪些ip:⽐如⽂件中有这样的定义192.168.1.100 linumu100 test100通常情况下这个⽂件⾸先记录了本机的ip和主机名:127.0.0.1 localhost.localdomain localhost这就是在我们在调试web项⽬的时候,我们明明在浏览器的地址栏中输⼊的是localhost,他会知道我们是本地调试,因为他映射到了127.0.0.1(即本机)。
第一章1、简述操作系统的定义,并指出操作系统的功能主要有哪些?答:操作系统(Operating System,简称OS)就是管理与控制计算机硬件与软件资源的计算机程序,就是直接运行在“裸机”上的最基本的系统软件,任何其她软件都必须在操作系统的支持下才能运行。
操作系统的主要功能:(1)硬件控制;(2)资源管理;(3)提供用户接口;(4)提供输入输出处理;(5)系统监控;(6)实现计算机间的通信。
注:不局限于以上几点。
2、 Linux操作系统何时出现?由谁开发出来?并列出Linux操作系统的主要特点。
答:1991年,由芬兰赫尔辛基大学学生Linus Torvalds开发出来。
Linux操作系统主要特点有:(1)与UNIX兼容;(2)自由软件与源码公开;(3)性能高与安全性强;(4)便于定制与再开发;(5)互操作性高;(6)全面的多任务与真正的32位操作系统。
注:不局限于以上6个。
、3、解释Linux操作系统核心版本与发行版本的含义。
Linux 2、4、1版与2、5、1版中,哪一个版本更稳定?为什么?答:核心版本主要就是Linux的内核。
发型版本就是各个公司推出的版本。
2、4、1版本更稳定。
2、5、1版本就是在就是测试版本,不一定稳定。
(具体建p8核心版本的版本约定)4、 Linux操作系统的超级用户就是什么?超级用户登陆shell默认的提示符就是什么?红旗Linux默认的shell类型就是哪一种?答:Linux操作系统的超级用户就是root,超级用户登录默认提示符就是“#”,红旗Linux 默认的shell类型就是bash。
第二章1、简述Linux命令的一般格式。
答:Linux命令的一般格式就是:命令+[选项]+[参数],其中选项与参数就是可选项,不同命令有区别。
有些命令就是不带参数,有些命令必须带参数。
2、请说明以下命令的功能:date,cd,cp,pwd,rm,mkdir,echo,who,ls,cat,more,man 答:date命令:显示当天日期;cd命令:切换目录;cp命令:复制文件;pwd命令:显示当前用户工作目录;rm命令:删除文件;mkdir命令:建立目录;echo命令:将参数表示的内容显示在屏幕上;who命令:显示哪些用户在使用系统;ls命令:列出某个目录下的文件;cat命令:显示参数表示文件的内容;more命令:显示文件内容;man命令:帮助命令,可以查瞧所有Linux命令的帮助信息。
Linux系统常见的文件系统格式包括:1. JFS(Journaling Flash File System):由瑞典Axis Communications公司为嵌入式系统开发的闪存文件系统,JFFS2是RedHat公司基于JFFS开发的闪存文件系统,主要用于NOR型闪存,基于MTD驱动层。
2. YAFFS/YAFFS2(Yet Another Flash File System):专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。
与JFFS2相比,它减少一些功能(例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。
3. VFAT(Virtual FAT):Windows操作系统使用的FAT文件系统在Linux下的实现。
4. NTFS(New Technology File System):Windows NT及后续版本使用的磁盘文件系统,具有较高的稳定性和性能。
5. HPFS(High Performance File System):OS/2操作系统使用的文件系统,具有较好的性能和稳定性。
6. NFS(Network File System):一种分布式文件系统,允许多台计算机通过网络共享文件和目录。
7. SMB(Server Message Block):一种用于网络共享文件的协议,常用于Windows和Linux 之间的文件共享。
8. Proc(Process File System):一种虚拟文件系统,用于访问Linux内核进程的信息。
9. ext(Extended File System):是Linux系统最早的文件系统类型之一,具有较好的性能和稳定性。
ext2、ext3和ext4都是ext的改进版本。
10. XFS(Extended I/O File System):一种高性能的日志文件系统,适合大容量存储设备。
11. Minix:一种小型的类Unix文件系统,主要用于教育和开发。
在Linux 系统管理中, /etc 下面的档案无疑的伴演了极端重要的角色, 在这篇文章中, 将为各位介绍/etc 下每个档案的用途, 及相关指令的运用, 希望能为大家在成为System Administrator 的路上有所助益.特别要说明的是, 在这篇文章中, 有些档案仍然没有提到, 这是因为, 这些档案都不是一二十行的描述就可以讲完的! 如/rc.d 下的档案, inittab 这两个最好就要合起来讲, 因为这些牵扯到bootstrapping, 绝对不是三言两语就可以讲完的. 凡是有这种特性的档案, 有机会的话将再为各位介绍....../etc/DIR_COLORS : 设定在用ls 时, 各种不同档案型态所用的颜色, 但是不能用pipe 再导向输出, 否则就没有各种颜色了. 由档案的内容可以很轻易的了解, 如default 的directory 是蓝色, 具有可执行档权限的是绿色, 而压缩档是红色...... 这些都可依个人喜好来加以更改. 这个档案内容写得很清楚, 想必各位一眼也就可以看得出来, 在颜色的组成方面, 我们常用RGB 三原色的成份值来组合出各种不同的颜色. 由R,G,B 这个bit 是0 或是1 三个值组合出颜色这个道理虽浅显, 但假如我们更了解R,G, B 的加权值分别是1,2,4 的话, 那就再也不用翻书查颜色了...... 选择自己的调色盘来取代预设的调色盘, 是经常会做的事./etc/HOSTNAME : 记录完整的hostname 与domain name , 这个档案在须要hostname 的场合会用得到, 如/etc/rc.d/rc.M 等....../etc/NETWORKING : YES , 没什么用, 改成NO 会怎样呢? 会对网路的使用会造成影响吗? 答案是否定的./etc/X11 : link 到/var/X11/lib/X11/etc/at.deny : 在这个档案中可记载那些人不能使用at这个命令来做一些later job, 假如at.deny 是空的, 而且at.allow 也不存在的话. 那就是每个人都可以用at 这个命令./etc/at.allow : 相对于at.deny , 这个档案记载那些人可以使用at 这个指令关于at 这个指令, 我想它的重要性是无庸置疑的, 各位应该要会这个指令的用法, 会了这个指令, 可以在工作的执行上会更有弹性而关于at.deny 与at.allow, at 会先去找at.allow, 假如存在而且有记录一些人的话, 那就只有这些人能使用at 这个指令, 但假如at.allow 并不存在的话, 那at 就会去找at.deny, 没有在at.deny 中的人都可以使用at 这个指令了! 特别要说明的是, at的执行时间也许会不如你所预期的, 比如说明明一个档你叫它在7:02 执行, 但它却会等到7:05 才执行, 这是因为crond 是每五分钟才去看看at 的queue 中是否有要执行的job. 当然, 你也可以改成每分钟都去check, 但这样似乎没有很大的意义, 除非你对时间的准确度要求的很严格, 否则应该没有必要去动才是. 各位可去看看/var/spool/cron/crontabs/root 中就有详细记载, 每五分钟run一次atrun, 所以at 命令的执行可看成以每五分钟为一单位./var/spool/atjobs: 当你使用at 来安排一件工作时, 系统会把你目前的环境变数及所要用at 执行的工作抄一份到这个目录下的档案中./var/spool/atspool : 使用at 命令之后所得到的一些讯息, 会被记录在这里. 可能是at 所要执行的命令传回的错误讯息, 或传回执行成功的讯息./etc/csh.cshrc :/etc/csh.login :这两个档案应该很熟悉罗! 它就是各位常见到的.cshrc 及.login,不过大家通常只注意到自己的home directory 有这两个档, 但/etc 下也有这两个档, 不过/etc 下的这两个档绝大部份的情况下都是由system administrator 在maintain, 一般user 不应该有权力去改. 顺便一提的是, 系统会先去找/etc 下这两个档, 接著才加上自己home directory 中那两个档的设定. 当然, 有了.login也有.logout,.logout 中可以写一些message, 或执行一些命令, 当你下达logout 之后,.logout 就会被执行./etc/disktab : ( disk parameter table ) 假如你在刚开机有pass 磁碟机的一些参数给kernel 的话( 通常是你的硬碟比较奇怪, 需要pass cylinders ,heads , sectors 给kernel 才抓的到, 或者是SCSI 的硬碟有时有时也要用到一些参数) 那这些参数就会被记录在这里./etc/exports : 这个档案记录著你要给别人mount 的档案系统, 这就是典型NFS 系统所存在的档案, TCP/IP for OS/2 若要使用network file system而要把自己的filesystem 让别人mount 的话, 这个档案也是不可或缺的. 比如说, 我所在的domain name 为.tw , 我要把我/usr 下的filesystem 开放给十舍的人mount , 那我在exports 中要这样写:/usr *.tw(ro)接著, 在/etc/rc.d/rc.inet2 中, 找到下面的段落, 这些段落本来每一列的前面都有# , 现在, 依照下面的内容, 把这些# 拿掉. ..................# Start the SUN RPC Portmapper.if [ -f ${NET}/rpc.portmap ]thenecho -n " portmap"${NET}/rpc.portmapfi..................# # Start the various SUN RPC servers.if [ -f ${NET}/rpc.portmap ]then# if [ -f ${NET}/rpc.ugidd ]# then# echo -n " ugidd"# ${NET}/rpc.ugidd -d# fiif [ -f ${NET}/rpc.mountd ]thenecho -n " mountd"${NET}/rpc.mountdfiif [ -f ${NET}/rpc.nfsd ]thenecho -n " nfsd"${NET}/rpc.nfsdfi# # Fire up the PC-NFS daemon(s).if [ -f ${NET}/rpc.pcnfsd ]thenecho -n " pcnfsd"${NET}/rpc.pcnfsd ${LPSPOOL}fi# if [ -f ${NET}/rpc.bwnfsd ]# then# echo -n " bwnfsd"# ${NET}/rpc.bwnfsd ${LPSPOOL}# fifiecho# Done!在client 端可用如:mount -vt nfs rebel.dorm10.nctu. 端的/tmp/etc/fastboot : 这个档案是使用shutdown -f 所产生的, -f means "fastboot"在重新reboot 之后, 系统会去检查这个档是否存在, 以决定是否要run fsck ./etc/fdprm : floopy disk parameter table . 一般情况下是不须要更动的, 除非你有很奇怪格式的软碟, 或者你想做出不符合一般格式的磁碟片./etc/nologin : 你也许会感到奇怪, 我的/etc 这个directory 下并没有这个档啊? 没错, 它平常是不存在的, 通常会看到这个档的话, 那表示系统大概要shutdown 了, 因为系统要shutdown 了, 自然不希望有人又login 进来, 所以在我们执行shutdown 时, nologin 这个档会自动的被create , 里面放著shutdown message . 实际上, 当我们在login 时, 系统会去检查有没有这个档, 假如有的话, 那就会印出这个档案中的message , 然后不让你login .nologin 也有可能是为了某种理由被制造的, 比如说系统在maintain暂时不希望有人login . 无论如何nologin 若存在, 就不能login/etc/fstab : 记录开机要mount 上来的filesystem, 这个档案相当重要! 各位可以在/etc/rc.d/rc.S 中找到/sbin/mount -avt nonfs 这一列, 当执行到这一列时, mount 就依据/etc/fstab 中的记载, 自动的将档案系统mount 上来. 下面就是一个颇为典型的范例. 假如你一开机就想自动mount 一些filesystems, 而不要等到开机后再以手动mount 的话那把这些filesystems 及相关资讯写在这个档, 是不错的选择. 在档案格式方面, 每一列有六个栏位, 不过后面两个栏位常被省略所以我们只看到有四个栏位. 其它的两栏分别为dump-freq 及pass-number.dump-freq 预设值为0; 而pass-number 是fsck 所会参考到的地方,数字可为0,1,2...... 1 表示这个filesystem 将首先被fsck check,2 表其次, 馀类推......# 要挂上的档案系统挂在那里档案系统格式读写状况/dev/hdb2 swap swap defaults/dev/hdb1 / ext2 defaults/dev/sbpcd /mnt/cdrom iso9660 ro/dev/hda1 /mnt/dosc msdos rw/dev/hda5 /mnt/dosd msdos rw/dev/hda6 /mnt/dose msdos rwnone /proc proc defaults/etc/ftpusers : 这个档案记录那些人不可以ftp 签入系统, 预设值有root , uucp news . 这些都是为了security 方面的考量, 你可以在这里加入不可ftp 进来的user id ./etc/gateways : 顾名思义, 这个档案记录一些gateways 的information这个档案的格式如下:name1 gateway name2 metric value当routed 启动时, 它会去读/etc/gateways 这个档. 若一个gateway并不做routing information 交换的话, 那它就会被标示成passive,假如有做routing information 的交换( 这台机器上有run routed ), 那就会标示成active net 或host 这个关键字是指出route 是到网路或是到一台特定的机器上. name1 就是目地网路或目地机器的名字.这个名字可用/etc/hosts 或是/etc/networks 中的symbolic hostname. name2 就是讯息将被送往之gateway 的name或IP address./etc/group : 如同/etc/passwd 列出了系统中所有的使用者名字, /etc/group定义系统中所有的group name 与相关讯息.格式为: group_name:passwd:GID:user_list如: author::200:jhhsu,emotion,passion上面的例子表示jhhsu,emotion,passion 都是属于author 这个group通常passwd 那栏是空白的, 表示不用密码. 或放一个* 号以下也是一个典型的例子:root::0:root,jhhsubin::1:root,bin,daemondaemon::2:root,bin,daemonsys::3:root,bin,admadm::4:root,adm,daemontty::5:disk::6:root,admlp::7:lpmem::8:kmem::9:wheel::10:root,jhhsushadow::11:rootmail::12:mailnews::13:newsuucp::14:uucpman::15:manusers::100:gamesbbs:*:99:bbs,bbsuser,bbsroot当然啦! 这个档案只能为superuser 所读写, 一个superuser 可使用groupadd , groupdel , groupmod 来管理/etc/group 这个档,要手动管理也是可以. 下面是这三个指令的用法:groupadd [ -g gid [ -o ] ] group_namegroupdel group_namegroupmod [ -g gid [ -o ] ] [ -n new_group_name ] group_name/etc/hosts : 这个档案记录著IP address 至hostname 的mapping . 如我们想把.tw 取个别名叫: oldstock那我们就可以在这个档案里写如下的叙述:140.113.17.151 oldstock如此一来, 以后我们telnet oldstock 就等于telnet140.113.17.151在这个档案中, 至少会有两列, 一列为loopback , 这是为了侦错目的而设的, 另一列为local host , 就是你自己的机器./etc/hosts.equiv : 在里面可以设定一些remote machine , 而从这些remotemachine 利用rsh 或rlogin 连回local machine 的话便不用输入密码同样的东西也可以在.rhosts 见到. 比如说在ccsun22.csie.tw 上你的Home Directory 建一个.rhosts 档,里面的内容如下:.tw jhhsu以后只要在.tw 上利用rsh 或rlogin 至.tw 的话, 也不须要输入密码rsh -l jhhsu .tw /etc/issue#echo Welcome to Linux /bin/uname -a | /bin/cut -d\ -f3. >> /etc/issue#echo >> /etc/issue#echo "/bin/uname -a | /bin/cut -d\ -f1,3. (Posix)." > /etc/motd/etc/klogd.pid : klogd process id/etc/ld.so.conf : 记录一些library 所在的目录/etc/magic : 初看这个档案时, 也许只能隐隐约约的看到: 这个档案似乎是描述一些档案的格式. 没错, 这个档案记载了许多档案格式的识别字串或方法那这个档在那里会用的到呢? 各位有使用过file 这个指令吗? file 这个指令的命令格式为:file [ -c ] [ -z ] [ -L ] [ -f namefile ] [ -m magicfile ] filefile 这个指令非常有趣, 它可以告诉你某一个档案的格式, 如它是一个text 档, 或是一个shell script 或DOS 可执行档等...... 而file这个指令, 就是去参考/etc/magic 这个资料库. 假如你知道某一档案的识别字, 而原来magic 这个资料库没有记录, 那你可以把识别方法加到资料库中, 或乾脆建立自己的资料库算了./etc/motd : 这个档很简单, 就是message of the day 的意思, 里面可以写一些message , 而这些message 会在login shell 之前被显示出来.通常都是system administrator 要告知user 的一些讯息. 而关于每次/etc/mtab : 目前mount 上来的filesystems , 各位可使用mount 这个指令来看看这个档的变化. 如我在mount 3.5 inch 软碟A 前, 我看到的mtab如下:/dev/hdb1 / ext2 rw 0 0/dev/hda1 /mnt/dosc msdos rw 0 0/dev/hda5 /mnt/dosd msdos rw 0 0/dev/hda6 /mnt/dose msdos rw 0 0none /proc proc rw 0 0然而, 当我以mount -t msdos /dev/fd0H1440 /mnt/dosa 这个指令将3.5 inch 软碟A 挂上来后, mtab 变为像下面的情况:/dev/hdb1 / ext2 rw 0 0/dev/hda1 /mnt/dosc msdos rw 0 0/dev/hda5 /mnt/dosd msdos rw 0 0/dev/hda6 /mnt/dose msdos rw 0 0none /proc proc rw 0 0/dev/fd0H1440 /mnt/dosa msdos rw 0 0 telnet .tw.tw: Host name lookup failure因为没有了name server , 所以.tw没有办法被解译, 故会有Host name lookup failure这段讯息./etc/securetty : 假如你要以root login 的话, 实际上是有限制的, 这个档案就列出了root 可以login 的ttys , 假如你把每一列都mark 起来那就没有任何一个terminal 可供root login 了, 所以呢,就会出现以下的情况:Rebel login: rootroot login refused on this terminal.再一次的, 我们看到了unix security 方面的东西, 仔细的在这个档案列出可用的terminal , 可使从modem 连的使用者或经由网路来的其它的使用者比较不容易取得superuser 的权力./etc/services :/etc/shell : 这个档案再简单也不过了, 里面就记录著可以用的login shell . 还有一点, 那就是这个档的记录会在使用chsh 时做为参考, 唯有被列在这里的shell , 使用chsh 时才会出现这些shell 可选./etc/sudoers : 在一个不是很复杂的系统中, 也许一个System Administrator 就可以管理所有的事情. 但一但系统提供的服务变多, 系统管理的工作也随之变得沉重, 这时候, sudo 就派上用场了, sudo 可以让一个普通的user 变成superuser , 这样一来, 一个系统的某些工作,就可以分配给这些superusers 来做 . 以减轻负担.当然, 并不是每个user 都可以变成superuser . 所以/etc/sudoers 就是记录著那些人可以用superuser 的身份来执行一些工作, 这个档案的格式如下:host alias section format:Host_Alias HOSTALIAS = host-listHost_Alias ::= a keyword.HOSTALIAS ::= an upper-case alias name.host-list ::= a comma separated list of hosts.command alias section format:Cmnd_Alias CMNDALIAS = cmnd-listCmnd_Alias ::= a keyword.CMNDALIAS ::= an upper-case alias name.cmnd-list ::= a comma separated list commands.user specification format:user access_group [: access_group] ...access_group ::= host_type = [op]cmnd_type [,[op]cmnd_type] ...host_type ::= a lower-case host name OR a host alias.cmnd_type ::= an command OR a command alias.op ::= the logical ''!'' NOT operator.如下面是一个极为简单的例子:# Cmnd alias specificationCmnd_Alias SHUTDOWN=/sbin/halt,/sbin/shutdown# User specificationroot ALL=ALLjhhsu ALL=ALLemotion ALL=ALL,!SHUTDOWN在这个例子当中, jhhsu 可以执行root 所有的命令, emotion 除了halt及shutdown 不能执行以外, 其它root 能执行的命令他都能执行.这个档案有一个专属的editor 叫visudo 可来编辑/etc/sudoer 这个档案在编辑完这个档案之后, jhhsu 就可以用sudo.bin 这个命令转换成superuser 来做原来只有superuser 才能做的事. 而关于使用sudo.bin有一个记录档, 在/var/adm/sudo.log , 里面记录著谁在什么时候利用sudo 下了那些指令. 顺便一提的是: 利用下面这个命令可抓出那些人转换成superuser 但却没有成功......grep "FAILED SU" /var/adm/messages/etc/utmp : 从utmp 中可以知道现在有谁正在用系统 . 当使用者logout 之后,init ( 很重要的process , 以后有时间将为各位介绍) 就去把logout的使用者从/etc/utmp 中去掉.实际上, utmp 每个record 是像这样的一个结构:struct utmp {short ut_type; /* type of login */pid_t ut_pid; /* pid of process */char ut_line[12]; /* devicename of tty -"/dev/" */char ut_id[2]; /* init id or abbrev. ttyname */time_t ut_time; /* logintime */char ut_user[8]; /* username, not null-term */char ut_host[16]; /* hostname for remote login */long ut_addr; /* IP addr of remote host */};了解这个档案, 进而去修改, 可以做出许多有趣的事......:P/etc/wtmp : 简而言之, wtmp 是一个login data base , 有许多的指令会用到这个档, 像last , sessreg , who 等......这个档案格式与utmp 大致相同, 只是多了shutdown 及reboot 这个记录, 指出系统的shutdown 或reboot , 及一个空的user name指出在相关terminal 的logout . 还有, 不像/etc/utmp , //etc/wtmp 的记录是慢慢的附加上去的, 也就是说, 这个档案会越变越大, 虽然变大的速度并不会太快, 但一但到了某种程度大小的话System Administrator 应该要考虑砍掉部份. 下面是用last 这个指令所得到的部份内容:bbs tty1 Tue Nov 29 19:09 - 19:09 (00:00)root tty1 Tue Nov 29 19:08 - 19:09 (00:00)root tty1 Tue Nov 29 19:07 - 19:07 (00:00)runlevel ~ Tue Nov 29 19:07reboot ~ Tue Nov 29 19:07/etc/zprofile : link 到/etc/profile《婚礼进行曲》HKKK HLJK HKNNMLKJKLHKKK HLJK HKMOMKILMK NMLII JKLL NMLII JKLLHKKK HLJK HKMOMKILMK ILMKK《童话》LONOL LONOL LONO OOMMLLONOL LQPPO LONOM MMOTS PPRRQQ QQNPOONO ONOR LSRQP PPRRQQ QQVUTUV VPOT TTSSS LSRQQRQ QRQ RQPOOQST TTSPPRQ OQST TTSPPRQRQPO PQMMOONOLOQSONQS STUVTSQPOOO QPOOO PQPOMPQP LOQSONQS STUVTS QPOOO QPOOO PQPMNOPO QSQPOSN MNMNMLQ SQPOSN MNOOOPQP LOQSONQS STUVTS QPOOO QPOOO PQPMNOPOOOSSTTS RRQQPPOSSRRQQP SSRRQQPOOSSTTS RRQQPPO《新年好》OOO L QQQ OO Q S S R Q P P Q R R Q P Q O O Q P L N P O《老鼠爱大米》cbacbacbcacfeeceffcbacbcaa《北京欢迎你》QSQPQPQQPMO QP POMOPQSPQTSSPO POMOPQSPQTSSQ PQPOSTQMQPPO QSVSTTS QQ SS QS TV WV SQ P S Q Q QS VS TV WV SQ SVT QP QS XW WV《送别》LJLO MOLLHIJ IHILJLO NMOLLIJK GA<雪绒花》JLP OLK JJJKLMLJLP OLK JLLMNO OP LLNMLJLO MOPON L JLP OLK JLLMNO O。
linux下的三种可执⾏⽂件格式的⽐较linux下的三种可执⾏⽂件格式的⽐较本⽂讨论了 UNIX/LINUX 平台下三种主要的可执⾏⽂件格式:a.out(assembler and link editor output 汇编器和链接编辑器的输出)、COFF(Common Object File Format 通⽤对象⽂件格式)、ELF(Executable and Linking Format 可执⾏和链接格式)。
⾸先是对可执⾏⽂件格式的⼀个综述,并通过描述 ELF ⽂件加载过程以揭⽰可执⾏⽂件内容与加载运⾏操作之间的关系。
随后依此讨论了此三种⽂件格式,并着重讨论 ELF ⽂件的动态连接机制,其间也穿插了对各种⽂件格式优缺点的评价。
最后对三种可执⾏⽂件格式有⼀个简单总结,并提出作者对可⽂件格式评价的⼀些感想。
可执⾏⽂件格式综述相对于其它⽂件类型,可执⾏⽂件可能是⼀个操作系统中最重要的⽂件类型,因为它们是完成操作的真正执⾏者。
可执⾏⽂件的⼤⼩、运⾏速度、资源占⽤情况以及可扩展性、可移植性等与⽂件格式的定义和⽂件加载过程紧密相关。
研究可执⾏⽂件的格式对编写⾼性能程序和⼀些⿊客技术的运⽤都是⾮常有意义的。
不管何种可执⾏⽂件格式,⼀些基本的要素是必须的,显⽽易见的,⽂件中应包含代码和数据。
因为⽂件可能引⽤外部⽂件定义的符号(变量和函数),因此重定位信息和符号信息也是需要的。
⼀些辅助信息是可选的,如调试信息、硬件信息等。
基本上任意⼀种可执⾏⽂件格式都是按区间保存上述信息,称为段(Segment)或节(Section)。
不同的⽂件格式中段和节的含义可能有细微区别,但根据上下⽂关系可以很清楚的理解,这不是关键问题。
最后,可执⾏⽂件通常都有⼀个⽂件头部以描述本⽂件的总体结构。
相对可执⾏⽂件有三个重要的概念:编译(compile)、连接(link,也可称为链接、联接)、加载(load)。
源程序⽂件被编译成⽬标⽂件,多个⽬标⽂件被连接成⼀个最终的可执⾏⽂件,可执⾏⽂件被加载到内存中运⾏。
Linux中的⽂件和⽬录结构详解 对于每⼀个Linux学习者来说,了解Linux⽂件系统的⽬录结构,是学好Linux的⾄关重要的⼀步.,深⼊了解linux⽂件⽬录结构的标准和每个⽬录的详细功能,对于我们⽤好linux系统只管重要,下⾯我们就开始了解⼀下linux⽬录结构的相关知识。
当在使⽤Linux的时候,如果您通过ls –l / 就会发现,在/下包涵很多的⽬录,⽐如etc、usr、var、bin ... ... 等⽬录,⽽在这些⽬录中,我们进去看看,发现也有很多的⽬录或⽂件。
⽂件系统在Linux下看上去就象树形结构,所以我们可以把⽂件系统的结构形象的称为树形结构。
⽂件系统的是⽤来组织和排列⽂件存取的,所以它是可见的,在Linux中,我们可以通过ls等⼯具来查看其结构,在Linux系统中,我们见到的都是树形结构;⽐如操作系统安装在⼀个⽂件系统中,它表现为由/ 起始的树形结构。
linux⽂件系统的最顶端是/,我们称/为Linux的root,也就是 Linux操作系统的⽂件系统。
Linux的⽂件系统的⼊⼝就是/,所有的⽬录、⽂件、设备都在/之下,/就是Linux⽂件系统的组织者,也是最上级的领导者。
由于linux是开放源代码,各⼤公司和团体根据linux的核⼼代码做各⾃的操作,编程。
这样就造成在根下的⽬录的不同。
这样就造成个⼈不能使⽤他⼈的linux系统的PC。
因为你根本不知道⼀些基本的配置,⽂件在哪⾥。
这就造成了混乱。
这就是FHS(Filesystem Hierarchy Standard )机构诞⽣的原因。
该机构是linux爱好者⾃发的组成的⼀个团体,主要是是对linux做⼀些基本的要求,不⾄于是操作者换⼀台主机就成了linux的‘⽂盲’。
事实上,FHS是根据过去的经验⼀直再持续的改版的,FHS依据⽂件系统使⽤的频繁与否与是否允许使⽤者随意更动,⽽将⽬录定义成为四种交互作⽤的形态,⽤表格来说有点像底下这样:可分享的(shareable)不可分享的(unshareable)不变的(static)/usr (软件放置处)/etc (配置⽂件)/opt (第三⽅协⼒软件)/boot (开机与核⼼档)可变动的(variable)/var/mail (使⽤者邮件信箱)/var/run (程序相关) /var/spool/news (新闻组)/var/lock (程序相关)四中类型:1.可分享的: 可以分享给其他系统挂载使⽤的⽬录,所以包括执⾏⽂件与⽤户的邮件等数据,是能够分享给⽹络上其他主机挂载⽤的⽬录;2.不可分享的: ⾃⼰机器上⾯运作的装置⽂件或者是与程序有关的socket⽂件等,由于仅与⾃⾝机器有关,所以当然就不适合分享给其他主机了。
linux中ip地址的配置文件Linux是多用户和多任务操作系统,是网络操作系统的核心。
IP地址是网络中计算机或客户端的唯一标识,它可以帮助用户在网络中定位,让用户可以管理网络。
Linux操作系统定义了一个特殊的配置文件来实现IP地址的配置,称为Linux的IP地址配置文件。
Linux的IP地址配置文件位于/etc/sysconfig/network-scripts/ifcfg-eth0中,以文本文件的形式存储,文件名为ifcfg-eth0,eth0为物理网卡的设备名称。
该文件有六个基本设置,分别是BOOTPROTO, IPADDR, NETMASK, GATEWAY, DNS1和DNS2。
BOOTPROTO是网卡的启动协议,一般情况下,可以设置为dhcp 即可。
dhcp协议可以为设备自动分配IP地址,而不需要用户手动输入。
当设置为static时,需要用户手动输入IP地址。
IPADDR为IP地址,它由四个十进制数字组成,用点分割,称为IP地址的整数表示。
NETMASK是IP地址的子网掩码,可以根据网络状况进行设置。
GATEWAY是网关地址,它可以帮助将本机连接到其他网络,以便于访问其他网络上的计算机。
DNS1和DNS2分别是主DNS和备份DNS,用于解析域名。
在Linux中,用户可以使用命令行工具来配置IP地址。
命令su -者 sudo -i以获得root权限,然后使用命令 ifconfig eth0 [IPADDR] netmask [NETMASK]设置IP地址。
使用ifconfig命令可以显示出Linux服务器上的所有网络接口的信息,包括网络接口的MAC地址,IP地址,子网掩码等等。
如果需要更改Linux服务器上的IP地址,可以使用命令 ifconfig eth0 [IPADDR] netmask [NETMASK]实现,这将覆盖原来的IP地址信息。
在Linux系统中,用户可以使用ifconfig命令设置IP地址,但是在长期使用过程中,修改IP地址可能会导致一些问题,例如IP地址信息丢失,网络连接不稳定等。
/boot/grub/grub.conf GRUB 引导器配置文件
/boot/module-info-* Linux 核心模块信息
/boot/System.map-* Linux 系统影像文件
/boot/vmlinuz-* Linux 核心
/etc/aliases 邮件别名
/etc/at.deny 记录哪些用户静止使用at 命令
/etc/auto.master 配置autofs 程序,使之能自动装入文件系统
/etc/auto.misc automounter 的影像文件
/etc/bashrc bash shell 的系统全局配置
/etc/cron.daily/* 每天需要执行的命令
/etc/cron.hourly/* 每个小时需要执行的命令
/etc/cron.monthly/* 每个月需要执行的命令
/etc/cron.weekly/* 每周需要执行的命令
/etc/crontab cron 系统配置文件,配置指定时间执行命令
/etc/cups/* 打印机配置文件
/etc/default/useradd useradd 命令默认的配置(用来增加新用户用)/etc/DIR_COLORS 用彩色方式列出文件的颜色配置文件
/etc/exports 指定NFS 需要导出的文件系统
/etc/filesystems 所支持的文件系统
/etc/fstab 指定文件系统的载入点
/etc/group 系统用户组的定义文件
/etc/host.conf 主机配置文件
/etc/hosts 主机名字和IP的影像文件
/etc/hosts.allow 定义允许访问本机的主机
/etc/hosts.deny 定义禁止访问本机的主机
/etc/httpd/conf/* Apache 配置文件
/etc/httpd/httpd.conf Apache 主配置文件
/etc/init.d/* SysV 初始化脚本
/etc/initlog.conf 用户登陆配置文件
/etc/inittab 配置init ,用来执行命令
/etc/issue 显示Linux核心的发行版本信息(用于本地登陆用户)
/etc/issue/net 显示Linux核心和发行版本信息(用于远程登陆用户)/etc/ld.so.conf 共享库配置文件
/etc/login.defs useradd 和related 命令的配置文件
/etc/mail/* 邮件服务器配置文件
/etc/mailcap 邮件MIME 头信息
/etc/man.config man 命令配置文件
/etc/mime.types 定义MIME 类型
/etc/mime-magic* MIME 数据的Magic 数
/etc/ers 定义哪些用户ID可以使用minicom
/etc/modules.conf Linux 核心模块配置文件
/etc/motd Message of the day (登陆以后显示里面的内容)
/etc/mtab 显示已装入的文件系统
/etc/nsswitch.conf Resolver 配置文件
/etc/openldap/* Open LDAP 配置文件
/etc/pam.d/* PAM 配置文件
/etc/paper.config 定义纸张的大小
/etc/passwd 帐户配置文件
/etc/ppp/* PPP 配置文件
/etc/printcap 打印机选项和配置文件
/etc/profile bash shell 的默认启动文件
/etc/profile.d/* Shell 初始化文件
/etc/protocols 显示网络协议想对应的内容
/etc/pwdb.conf pwdb 库配置文件
/etc/rc 系统启动和关闭的脚本
/etc/rc.local 本地启动时需要执行的脚本
/etc/rc.sysinit 系统初始化脚本
/etc/rc?.d/* 系统服务启动或者停止的脚本
/etc/rpc 定义RPC 程序对应的端口
/etc/rpm/* RPM 数据库和配置文件
/etc/samba/* Samba 配置文件
/etc/securetty Secure tty 配置文件
/etc/security/* PAM 配置文件
/etc/sensors.conf libsensors 配置文件
/etc/services 定义默认的服务名字和与此向对应的端口
/etc/shadow 用户帐户信息(使用shadow 加密)
/etc/skel 系统骨干文件,用来建立新的用户
/etc/ssh/* SSH 配置文件
/etc/sysconfig/* 系统配置文件
/etc/sysconfig/network-scrīpts/* 网络适配器配置文件(用来启动新的网络接口用)/etc/sysctl.conf sysctl 配置文件
/etc/syslog.conf 系统日志配置文件
/etc/termcap 终端定义和配置文件
/etc/updatedb.conf 系统升级程序的配置文件(估计时RH 专用的)
/etc/wvdial.conf 字符界面下的拨号工具配置文件
/etc/X11/applnk/* 定义X 对象
/etc/X11/fs/config X 字体配置文件
/etc/X11/gdm/* GNOME 登陆器配置文件
/etc/X11/xdm/* X 登陆器的配置文件
/etc/X11/XF86Config X 主要配置文件
/etc/X11/xinit/Xclients xinit 默认的配置文件
/etc/X11/xinit/xinitrc X 初始化文件
/etc/X11/Xmodmap 定义xdm 和xinit 所要使用的键盘映射
/etc/xinetd.conf xinetd 配置文件
/etc/xinetd.d 定义xinetd 中使用的一些特殊的服务
~/public_html 用户公共的网页文件(可以在apache 配置)
~/.bash_history 用户bash 的历史命令
~/.bash_logout 定义bash 用户退出时所执行的命令
~/.bash_profile 用户bash 初始化文件
~/.bashrc 用户bash 的全局配置文件(波浪号代表创建的用户目录)~/.Xresources 定义用户的X 资源设置
/usr/share/fonts/* 字体
/usr/share/ssl/f SSL 连接配置
/usr/X11R6/lib/X11/app-defaults/* X 默认的对象
/usr/X11R6/lib/X11/fonts/* X 字体
/var/log/cron 记录cron 执行日志
/var/log/httpd/access_log apache 流量日志
/var/log/httpd/error_log apache 运行错误日志
/var/log/boot.log 系统启动日志
/var/log/cron 系统核心日志
/var/log/dmesg Linux 核心消息日志
/var/log/lastlog 记录最后用户登陆
/var/log/maillog 邮件传输日志
/var/log/messages 系统日志
/var/log/samba/* Samba 运行日志
/var/log/secure 系统安全日志
/var/log/up2date Up2date 升级程序日志
/var/www/cgi-bin CGI 脚本
/var/www/html/ apache 程序默认的网页根目录
原文链接:/tech/2009-09-20/56229.html。