2.1-2.2 系统目录结构(上)
目录结构的介绍
/ 根 每一个文件和目录从根目录开始。 只有root用户具有该目录下的写权限。请注意,/root是root用户的家目录。
/bin中 - 用户二进制文件 包含二进制可执行文件。 在单用户模式下,你需要使用的常见linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。 例如:ps、ls、ping、grep、cp
/sbin目录 - 系统二进制文件 就像/bin,/sbin同样也包含二进制可执行文件。 但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令 普通用户用的命令都在/bin下,管理员可以使用命令在/sbin下。
/etc - 配置文件 包含所有程序所需的配置文件。 也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf
/dev - 设备文件 包含设备文件。 这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0
/proc - 进程信息 包含系统进程的相关信息,每个进程在该目录下都有一个目录。 这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。 这是一个虚拟的文件系统,系统资源以文本信息形式存在。例如:/proc/uptime
/var - 变量文件 var代表变量文件。 这个目录下可以找到内容可能增长的文件。 这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);
/tmp - 临时文件 包含系统和用户创建的临时文件。 当系统重新启动时,这个目录下的文件都将被删除。
/usr - 用户程序 包含二进制文件、库文件、文档和二级程序的源代码。 /usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。 /usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。 /usr/lib中包含了/usr/bin和/usr/sbin用到的库。 /usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。
/home - HOME目录 所有用户用home目录来存储他们的个人档案。 例如:/home/john、/home/nikita 普通用户是在/home下,root用户则是在/下。
/boot - 引导加载程序文件 包含引导加载程序相关的文件。 内核的initrd、vmlinux、grub文件位于/boot下。 例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic
/lib - 系统库 包含支持位于/bin和/sbin下的二进制文件的库文件. 库文件名为 ld或lib.so.* 例如:ld-2.11.1.so,libncurses.so.5.7
/opt - 可选的附加应用程序 opt代表可选的。 包含从个别厂商的附加应用程序。 附加应用程序应该安装在/opt/或者/opt/的子目录下。
/mnt - 挂载目录 临时安装目录,系统管理员可以挂载文件系统。
/media - 可移动媒体设备 用于挂载可移动设备的临时目录,默认是空的。 举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;
/srv - 服务数据 srv代表服务。 包含服务器特定服务相关的数据。 例如,/srv/cvs包含cvs相关的数据。
如何查看一个命令依赖于哪些库,使用如下命令则会列出ls命令依赖的所有库文件。
ldd /bin/ls
树形查看目录的命令
tree /root 树形查看/root下目录及文件
如果没有此命令需要先安装tree
yum install -y tree
Ctrl+c可以中断此命令,因为有的目录很多,刷出来会比较慢。
指定目录最大的深度(如2层)
tree -L 2 /root
这样就会只显示/root下两层的目录,更深层的目录将不会显示出来。
2.3 ls命令
ls命令是linux下最常用的命令之一,ls是list的缩写。因为linux目录或者文件记录的信息实在太多,所以默认ls只显示非隐藏的目录以及文件名。ls直接执行不加参数时显示当前目录下的文件名。
ls参数介绍
命令格式: 命令[-选项][参数] 列入
ls -a /etc 显示/etc下隐藏文件
在Linux中“.”代表的是隐藏文件。
ls命令集合
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性
-f 直接输出结果,不进行排序(ls预设会以档案名排序)
-i 列出inode号码
-F : 根据档案信息,给予附加数据结构,例如:*代表可执行文件 /代表目录 =代表socket档案 |代表FIFO档案
-A : 全部档案,包括隐藏档案,但是不显示 . 与 .. 这两个目录
-h : 档案容量以人类可以理解的方式显示(如GB、KB等)
-n : 列出UID与GID而非使用者与群组的名称
-r : 将结果反向序列输出
-R : 连同子目录内容一同列出
-S : 以档案容量大小排序,而不是用档案名排序
-t : 以时间排序,而不是用档案名排序
--color=never : 不依据档案特性给予颜色显示
--color=always : 总是依据档案特性给予颜色显示
--color=auto : 让系统自行依据设定来判断是否给予颜色
--full-time : 以完整时间模式(包括年月日时分)显示
--time={atime,ctime} : 输出access时间或改变权限属性时间(ctime),而非内容变更时间(mtime)
2.4 文件类型
ls -l文件每列的介绍
-rw-------. 1 root root 7690 12月 3 06:21
1列:文件类型和权限
2列 : 链接占用的节点(inode),如果是目录,这个数值与该目录有多少一级子目录有关系。
3列:该文件所有者
4列:该文件所属组
5列:该文件的大小
6列:6、7、8列为该文件最近的修改日期
9列:该文件文件名
inode是什么
理解inode,要从文件储存说起。
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
文件类型详解
d目录文件
-普通文件 普通文件(regular file):就是一般类型的文件,当用 ls -l 查看某个目录时,第一个属性为 ‘-‘ 的文件就是正规文件,或者叫普通文件。正规文件又可分成纯文字文件(ascii)和二进制文件(binary)。纯文本文件是可以通过cat, more, less等工具直接查看内容的,而二进制文件并不能。例如我们用的命令/bin/ls 这就是一个二进制文件。
l 链接文件(linux file),软连接就是该类型的文件 链接文件(link):ls -l 查看第一个属性为 ‘l’, 类似windows下的快捷方式。这种文件在linux中很常见,而且阿铭在日常的系统运维工作中用的很多,所以要特意留意一下这种类型的文件。
b 块设备,/dev/sda就是块设备 设备(device):与系统周边相关的一些档案,通常都集中在 /dev 这个目录之下! 通常又分为两种:块(block)设备 :就是一些储存数据,以提供系统存取的接口设备,简单的说就是硬盘。例如您的一号硬盘的代码是 /dev/sda1, 第一个属性为 ‘b’;另一种是字符(character)设备 :是一些串行端口的接口设备,例如键盘、鼠标等等,第一个属性为 ‘c’.
c 串行端口,例如鼠标键盘。
s 套接字文件(socket),用于进程间通信
p 管道文件。
2.5 alias命令和which命令
如何看一个命令的别名
which ls
查看ls命令的别名
如何查看当前那些命令做了别名
alias
直接敲alias即可列出来
如何设置别名
alias gaohanwei='ls -A'
当输入gaohanwei实际上使用的是ls -A这个命令
如何取消已经设置了的别名
unalias gaohanwei
这样就取消了gaohanwei这个别名
用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。还有,如果想给每一位用户都生效的别名,请把alias la='ls -al'一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用. 利用alias可以把很长的命令变成任意我们喜欢的简短的 如果想永久生效,就把这条写入到 /etc/bashrc里面,并使用命令source .bashrc进行重启bashrc即可生效。