Linux命令的执行过程

  1. 切换目录(cd命令)

    cd 命令,是 Change Directory 的缩写,用来切换工作目录。
    Linux 命令按照来源方式,可分为两种,分别是 Shell 内置命令和外部命令。所谓 Shell 内置命令,就是 Shell 自带的命令,这些命令是没有执行文件的;而外部命令就是由程序员单独开发的,所以会有命令的执行文件。Linux 中的绝大多数命令是外部命令,而 cd 命令是一个典型的 Shell 内置命令,所以 cd 命令没有执行文件所在路径。
    cd 命令的基本格式如下:
    除此之外,cd 命令后面可以跟一些特殊符号,表达固定的含义,如表 1 所示:

    [root@localhost ~]# cd [相对路径或绝对路径]

    表 1 cd 命令的特殊符号
    特殊符号 作 用
    ~ 代表当前登录用户的主目录
    ~用户名 表示切换至指定用户的主目录
    - 代表上次所在目录
    . 代表当前目录
    .. 代表上级目录

  2. 显示当前工作路径(pwd命令)

    由于 Linux 文件系统中有许多目录,当用户执行一条 Linux 命令又没有指定该命令或参数所在的目录时,Linux 系统就会首先在当前目录(目前的工作目录)搜寻这个命令或它的参数。因此,用户在执行命令之前,常常需要确定目前所在的工作目录,即当前目录。
    当用户登陆 Linux 系统之后,其当前目录就是它的主目录。那么,如何确定当前目录呢?可以使用 Linux 系统的 pwd 命令来显示当前目录的绝对路径。
    pwd 命令,是 Print Working Directory (打印工作目录)的缩写,功能是显示用户当前所处的工作目录。该命令的基本格式为:

    [root@localhost ~]# pwd

  3. Linux查看目录中的文件(ls命令)

    ls 命令,list 的缩写,是最常见的目录操作命令,其主要功能是显示当前目录下的内容。此命令的基本格式为:表 1 列出了 ls 命令常用的选项以及各自的功能。
    注意,当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色(蓝色显示目录,白色显示一般文件)。除此之外,如果想使用 ls 命令显示更多内容,就需要使用表 1 相应的选项。

    [root@localhost ~]# ls [选项] 目录名称

    表 1 ls 命令常用选项及功能
    选项 功能
    -a 显示全部的文件,包括隐藏文件(开头为 . 的文件)也一起罗列出来,这是最常用的选项之一。
    -A 显示全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录。
    -d 仅列出目录本身,而不是列出目录内的文件数据。
    -f ls 默认会以文件名排序,使用 -f 选项会直接列出结果,而不进行排序。
    -F 在文件或目录名后加上文件类型的指示符号,例如,* 代表可运行文件,/ 代表目录,= 代表 socket 文件,| 代表 FIFO 文件。
    -h 以人们易读的方式显示文件或目录大小,如 1KB、234MB、2GB 等。
    -i 显示 inode 节点信息。
    -l 使用长格式列出文件和目录信息。
    -n 以 UID 和 GID 分别代替文件用户名和群组名显示出来。
    -r 将排序结果反向输出,比如,若原本文件名由小到大,反向则为由大到小。
    -R 连同子目录内容一起列出来,等於将该目录下的所有文件都显示出来。
    -S 以文件容量大小排序,而不是以文件名排序。
    -t 以时间排序,而不是以文件名排序。
    --color=never
    --color=always
    --color=auto
    never 表示不依据文件特性给予颜色显示。
    always 表示显示颜色,ls 默认采用这种方式。
    auto 表示让系统自行依据配置来判断是否给予颜色。
    --full-time 以完整时间模式 (包含年、月、日、时、分)输出
    --time={atime,ctime} 输出 access 时间或改变权限属性时间(ctime),而不是内容变更时间。
  4. Linux创建目录(mkdir命令)

    mkdir 命令,是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用。
    mkdir 命令的基本格式为:

    [root@localhost ~]# mkdir [-mp] 目录名

    -m 选项用于手动配置所创建目录的权限,而不再使用默认权限。

    -p 选项递归创建所有目录,以创建 /home/test/demo 为例,在默认情况下,你需要一层一层的创建各个目录,而使用 -p 选项,则系统会自动帮你创建 /home、/home/test 以及 /home/test/demo。

  5. Linux删除目录(rmdir命令)

    和 mkdir 命令(创建空目录)恰好相反,rmdir(remove empty directories 的缩写)命令用于删除空目录,此命令的基本格式为:-p 选项用于递归删除空目录。

    [root@localhost ~]# rmdir [-p] 目录名

  6. Linux创建文件及修改文件时间戳(touch命令)

    touch 命令不光可以用来创建文件(当指定操作文件不存在时,该命令会在当前位置建立一个空文件),此命令更重要的功能是修改文件的时间参数(但当文件存在时,会修改此文件的时间参数)。
    Linux 系统中,每个文件主要拥有 3 个时间参数(通过 stat 命令进行查看),分别是文件的访问时间、数据修改时间以及状态修改时间:
    touch 命令的基本格式如下:选项:

         访问时间(Access Time,简称 atime):只要文件的内容被读取,访问时间就会更新。例如,使用 cat 命令可以查看文件的内容,此时文件的访问时间就会发生改变。

          数据修改时间(Modify Time,简称 mtime):当文件的内容数据发生改变,此文件的数据修改时间就会跟着相应改变。

          状态修改时间(Change Time,简称 ctime):当文件的状态发生变化,就会相应改变这个时间。比如说,如果文件的权限或者属性发生改变,此时间就会相应改变。

    [root@localhost ~]# touch [选项] 文件名

    -a:只修改文件的访问时间;

    -c:仅修改文件的时间参数(3 个时间参数都改变),如果文件不存在,则不建立新文件。

    -d:后面可以跟欲修订的日期,而不用当前的日期,即把文件的 atime 和 mtime 时间改为指定的时间。

    -m:只修改文件的数据修改时间。

    -t:命令后面可以跟欲修订的时间,而不用目前的时间,时间书写格式为 YYMMDDhhmm

  7. Linux复制文件或目录(cp命令)

    cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。
    cp 命令的基本格式如下:
    选项:
    需要注意的是,源文件可以有多个,但这种情况下,目标文件必须是目录才可以。

    [root@localhost ~]# cp [选项] 源文件 目标文件

    -a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;

    -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;

    -i:询问,如果目标文件已经存在,则会询问是否覆盖;

    -l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;

    -s:把目标文件建立为源文件的软链接文件,而不是复制源文件;

    -p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);

    -r:递归复制,用于复制目录;

    -u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。

    这里的软链接,类似于 Windows 系统中的快捷方式,而硬链接则是透过文件系统的 inode 号产生一个新的文件名。无论是复制软链接还是硬链接,都不是复制源文件。

  8. Linux删除文件或目录(rm命令)

    rm 是强大的删除命令,它可以永久性地删除文件系统中指定的文件或目录。在使用 rm 命令删除文件或目录时,系统不会产生任何提示信息。此命令的基本格式为:选项:
    注意,rm 命令是一个具有破坏性的命令,因为 rm 命令会永久性地删除文件或目录,这就意味着,如果没有对文件或目录进行备份,一旦使用 rm 命令将其删除,将无法恢复,因此,尤其在使用 rm 命令删除目录时,要慎之又慎。

    [root@localhost ~]# rm[选项] 文件或目录

    -f:强制删除(force),和 -i 选项相反,使用 -f,系统将不再询问,而是直接删除目标文件或目录。

    -i:和 -f 正好相反,在删除文件或目录之前,系统会给出提示信息,使用 -i 可以有效防止不小心删除有用的文件或目录。

    -r:递归删除,主要用于删除目录,可删除指定目录及包含的所有内容,包括所有的子目录和文件。

  9. Linux移动或重命名文件和目录(mv命令)

    mv 命令(move 的缩写),既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。该命令的基本格式如下:
    选项:
    需要注意的是,同 rm 命令类似,mv 命令也是一个具有破坏性的命令,如果使用不当,很可能给系统带来灾难性的后果。

    [root@localhost ~]# mv 【选项】 源文件 目标文件

    -f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;

    -i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项);

    -n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;

    -v:显示文件或目录的移动过程;

    -u:若目标文件已经存在,但两者相比,源文件更新,则会对目标文件进行升级;