首先用xshell登陆centos7,

一、系统目录结构

在命令窗口输入

ls  /

ls是list的缩写,用于列出指定目录或者文件

/是linux操作系统的根目录,所有文件与目录都在它下面;

此时将会显示如下

Linux学习笔记(五)系统目录结构、ls命令、文件类型、alias命令_alias

/bin:bin是Binary的缩写,该目录下存放的是最常用的命令。

/boot:该目录下存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev:dev是Device(设备)的缩写。该目录下存放的是Linux的外部设备。在Linux中,访问设备的方式和访问文件的方式是相同的。

/etc:该目录下存放的是所有系统管理所需要的配置文件和子目录。

/home:这是用户的主目录。在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib和/lib64:这两个目录下存放的是系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。其中/lib64为64位的软件包的库文件所在目录。

/media:系统会自动识别一些设备(如U盘、光驱等),当识别后,Linux会把识别的设备挂载到该目录下。

/mnt:系统提供该目录是为了让用户临时挂载别的文件系统。我们可以将光驱挂载到/mnt/上,然后进入该目录查看光驱里的内容。

/opt:这是给主机额外安装软件所设置的目录,该目录默认为空。比如你要安装一个ORACLE数据库,可以放到该目录下。

/proc:该目录是一个虚拟的目录,是系统内存的映射,我们可以通过直接访问来获取系统信息。该目录的内容在内存里,我们可以直接修改里面的某些文件。比如可以通过下面的命令来屏蔽主机的ping命令,使其他人无法ping你的机器。后续,在日常工作中,你会经常用到类似的用法。


    

/root:该目录是系统管理员的用户主目录。

/run:这个目录其实和/var/run是同一个目录,这里面存放的是一些服务的pid,一个服务启动完后,是有一个pid文件的。至于为什么说是同一个目录,Linux是如何做到的,后续我们再介绍。

/sbin:s就是Super User的意思,该目录存放的是系统管理员使用的系统管理程序。

/srv:该目录存放的是一些服务启动之后需要提取的数据。

/sys:该目录存放的是与硬件驱动程序相关的信息。

/tmp:该目录是用来存放一些临时文件的。

/usr:这是一个非常重要的目录,类似于Windows下的Program Files目录,用户的很多应用程序和文件都存放在该目录下。后面的章节中,我们会多次用到这个目录。

/usr/bin:该目录存放的是系统用户使用的应用程序。

/usr/sbin: 该目录存放的是超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src :该目录是内核源代码默认的放置目录。

/var:该目录存放的是在不断扩充且经常被修改的目录,包括各种日志文件或者pid文件,刚刚提到的/var/run就是在/var目录下面

在Linux系统中,有几个重要的目录需要注意,不要误删除或者随意更改其内部文件。

/etc目录下是系统的配置文件,如果更改了该目录下的某个文件可能会导致系统无法正常启动。 

/bin、/sbin、/usr/bin和/usr/sbin目录是系统预设的执行文件的放置目录,其中/bin和/usr/bin目录下是供系统用户使用的指令(除root外的通用账户),而/sbin和/usr/sbin目录下则是供root使用的指令。比如ls指令就存放在/bin/目录下。 

/var也是一个非常重要的目录,系统上运行各个程序时所产生的日志都被记录在该目录下(即/var/log目录中),另外mail指令的预设也放置在这里。 

二、ls命令

输入 

man ls

可以查看ls的具体用法

Linux学习笔记(五)系统目录结构、ls命令、文件类型、alias命令_文件类型_02看这个比较抽象,特别是对于我这种英文不太好的人来说,下面来举几个例子执行一下

Linux学习笔记(五)系统目录结构、ls命令、文件类型、alias命令_文件类型_03

以上做法的解释如下:

  • 后面不加任何选项也不跟目录名或者文件名:会列出当前目录下的文件和目录,不包含隐藏文件;

  • 后面加-a选项、不加目录或者文件名:会列出当前目录下的文件和目录,包含隐藏文件;

  • 后面加-l选项、不加目录或文件名:会列出当前目录下除了隐藏文件之外的所有文件、文件夹的详细信息,包含其权限、所属用户、所属组及文件创建日期和时间;

  • 后面不加选项只跟文件名:会列出该文件,通常与-l连用,查看文件详细信息;

  • 后面不加选项只跟目录名:会列出指定目录下的文件和目录

以下为用法介绍:

  • -a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);

  • -A:显示除影藏文件“.”和“..”以外的所有文件列表;

  • -C:多列显示输出结果。这是默认选项;

  • -l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;

  • -F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;

  • -b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;

  • -c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;

  • -d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;

  • -f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;

  • -i:显示文件索引节点号(inode)。一个索引节点代表一个文件;

  • --file-type:与“-F”选项的功能相同,但是不显示“*”;

  • -k:以KB(千字节)为单位显示文件大小;

  • -l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;

  • -m:用“,”号区隔每个文件和目录的名称;

  • -n:以用户识别码和群组识别码替代其名称;

  • -r:以文件名反序排列并输出目录内容列表;

  • -s:显示文件和目录的大小,以区块为单位;

  • -t:用文件和目录的更改时间排序;

  • -L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;

  • -R:递归处理,将指定目录下的所有文件及子目录一并处理;

  • --full-time:列出完整的日期与时间;

  • --color[=WHEN]:使用不同的颜色高亮显示不同类型的。

三、文件类型

输入ls -l

第一列第一个字符就是文件类型

  • 'd' 表示该文件为目录;

  • '-' 表示该文件为普通文件;

  • 'l' 表示该文件为链接文件(linux file),上边提到的软链接即为该类型;

  • 'b' 表示该文件为块设备,比如 /dev/sda 就是这样的文件。

  • 'c' 表示该文件为串行端口设备,例如键盘、鼠标。

  • 's' 表示该文件为套接字文件(socket),用于进程间通信。

  • 后边的9位,每三个为一组。均为rwx 三个参数的组合。其中r 代表可读,w代表可写,x代表可执行。前三位为所属主(user)的权限,中间三位为所属组(group)的权限,最后三位为其他非本群组(others)的权限。下面拿一个具体的例子来述说一下。

  • 一个文件的属性为 ‘-rwxr-xr–.’ ,它代表的意思是,该文件为普通文件,文件拥有者可读可写可执行,文件所属组对其可读不可写可执行,其他用户对其只可读。对于一个目录来讲,打开这个目录即为执行这个目录,所以任何一个目录必须要有x权限才能打开并查看该目录。例如一个目录的属性为 ‘drwxr–r–.’ 其所属主为root,那么除了root外的其他用户是不能打开这个目录的。

  • 关于第一列的最后一位的 .,之前的CentOS 5 是没有这个点的,这主要是因为新版本的ls把selinux或者acl的属性加进来了,当文件或者目录只使用了selinux context的属性,这里是一个点。如果设置了acl,后面将是一个加号 ‘+’. 关于selinux 和 acl 

  • 第2列,表示为链接占用的节点(inode), [1] 为目录时,通常与该目录底下还有多少目录有关系。

  • 第3列,表示该文件的所属主。

  • 第4列,表示该文件的所属组。

  • 第5列,表示该文件的大小。

  • 第6列、第7列和第8列为该文件的最近的修改日期,分别为月份日期以及时间,也就是所谓的mtime.

  • 第9列,文件名。

Linux学习笔记(五)系统目录结构、ls命令、文件类型、alias命令_文件类型_04

常见的文件类型有

1)普通文件(regular file):就是一般类型的文件,当用 ls -l 查看某个目录时,第一个属性为 ‘-‘ 的文件就是正规文件,或者叫普通文件。正规文件又可分成纯文字文件(ascii)和二进制文件(binary)。纯文本文件是可以通过cat, more, less等工具直接查看内容的,而二进制文件并不能。例如我们用的命令/bin/ls 这就是一个二进制文件。

2)目录(directory):这个很容易理解,就是目录,跟windows下的文件夹一个意思,只不过在linux中我们不叫文件夹,而是叫做目录。ls -l 查看第一个属性为 ‘d’.

3)链接文件(link):ls -l 查看第一个属性为 ‘l’, 类似windows下的快捷方式。这种文件在linux中很常见,而且日常的系统运维工作中用的很多,所以要特意留意一下这种类型的文件。

4)设备(device):与系统周边相关的一些档案,通常都集中在 /dev 这个目录之下! 通常又分为两种:块(block)设备 :就是一些储存数据,以提供系统存取的接口设备,简单的说就是硬盘。例如你的一号硬盘的代码是 /dev/sda1, 第一个属性为 ‘b’;另一种是字符(character)设备 :是一些串行端口的接口设备,例如键盘、鼠标等等,第一个属性为 ‘c’.

四、alias命令

别名

Linux学习笔记(五)系统目录结构、ls命令、文件类型、alias命令_alias_05

可见 ll 是ls -l 的别名 即是由命令加选项结合而成的一个新的命令

输入alias命令可以查看系统中有哪些别名,

Linux学习笔记(五)系统目录结构、ls命令、文件类型、alias命令_文件类型_06

下面来手动指定别名

Linux学习笔记(五)系统目录结构、ls命令、文件类型、alias命令_文件类型_07

如图,将ls -l指定别名chinantfy

通过which chinantfy

可以看到chinantfy是ls -l 的别名,

取消别名可以使用  unalias  chinantfy

之后再输入chinantfy就显示未找到命令,别名已经成功取消

Linux学习笔记(五)系统目录结构、ls命令、文件类型、alias命令_alias_08