Linux命令大集合

1.关机类命令:

操作系统架构命令_子目录

 

        一、  reboot——重启设备

  二、power off相关命令

  •       -n :关闭操作系统时不执行sync(同步)操作;
  •       -w :不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中
  •       -d :关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录
  •       -f :强制关闭操作系统
  •       -i :关闭操作系统之前关闭所有的网络接口
  •       -h : 关闭操作系统之前将系统中所有的硬件设置为备用模式

 

  三、shoutdown相关命令

  •       -c : 当执行“shoutdown  -h 11:50”指令时,执行该命令可取消关机操作
  •       -h :将系统关机,在后面可指定时间实现定时关机
  •       -k :只是送出信息给所有用户,但不是实际关机
  •       -r :shoutdown 之后重新启动
  •       -t <秒数>:送出警告信息和删除信息之间要延迟多少秒

  四、halt相关命令

  •       -d :不要在wtmp中记录
  •       -f :强制关闭系统
  •       -i :在halt之前,关闭全部的网络界面
  •       -n :halt前,不用先执行sync
  •       -p :halt之后,执行poweroff
  •       -w :仅在wtmp中记录,而不实际结束系统

      

      

 

 

 

 

 

2.目录及文件管理类命令:

 

操作系统架构命令_操作系统架构命令_02

左枝

 一、pwd命令(用于显示工作目录)--------(英文全拼:print work directory)

  pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

  语法:pwd [ --help] [--version ]

  --help 在线帮助

  --version 显示版本信息

 

     实例:

  查看当前所在目录:

           

操作系统架构命令_文件名_03

  输出结果。

 

  

二、mkdir命令(用于创建目录)---------(英文全拼:make directory)

     语法:mkdir [-p] dirName

  参数说明:

  •     -p确保目录名称存在,不存在的就建一个。

  实例

    在工作目录下,建立一个名为runoob的子目录:

                  

操作系统架构命令_文件名_04

    在工作目录下的runoob2目录中,建立一个名为test的子目录。

    若runoob2目录原本不存在,则建立一个。(注:本例若不加-p 参数,且原本runoob2目录不存在,则产生错误。)

    mkdir  -p runoob2/test

                 

操作系统架构命令_文件名_05

 

 三、rmdir命令(删除空的目录)--------(英文全拼:remove directory)

    语法:rmdir [ -p ] dirName     

  参数说明:

    -p是当子目录被删除后使它也成为空目录的话,则顺便一并删除。   

      实例:

    将工作目录下,名为AAA的子目录删除:rmdir AAA

                  

操作系统架构命令_文件名_06

 

 

    在工作目录下的BBB目录中,删除名为Test 的子目录。若Test删除后,BBB目录成为空目录,则BBB亦予删除。

      rmdir   -p   BBB/Test

      

操作系统架构命令_bash_07

四、mv命令(用来为文件或目录改名、或将文件或目录移入其他位置)-------(英文全拼:move file)

 

 

    语法:mv [ options ] source dest

       mv [ options ] source... directory

  参数说明:

  •     -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
  •     -i :如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入y表示直接覆盖,输入n表示取消该操作。
  •     -f : 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
  •     -n: 不要覆盖任何已经存在的文件或目录。
  •     -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

  mv参数设置与运行结果

命令格式

运行结果

mv source_file(文件) dest_file(文件)

将源文件名source_file改为目标文件名dest_file

mv  source_file(文件) dest_directory(目录)

将文件source_file

操作系统架构命令_子目录_08

 

mv source_directory(目录) dest_directory(目录)

目录名 dest_directory 已存在,将source——directory移动到目录名dest_directory中;目录名dest_directory不存在则source_directory改名为目录名dest_directory

mv source_directory(目录)dest_file(文件)

出错

 

   实例

    将文件aaa改名为bbb:    mv  aaa  bbb

    将info目录放入logs目录中。注意,如果logs 目录不存在,则该命令将info改名为logs。

    mv  info/  logs

    将/usr/runoob 下的所有文件和目录移到当前目录下,命令行为:

      $ mv  /usr/runoob/*  .

     

操作系统架构命令_操作系统架构命令_09

 

 

 

       

五、cp命令(用于复制文件或目录)--------(英文:copy file)

    语法:cp[ options ] source dest

      或 cp[ options] source...directory

   参数说明:

  •     shi-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  •     -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  •            -f :覆盖已经存在的目标文件而不给出提示。
  •               -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答“y”时目标文件将被覆盖。
  •              -p: 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  •              -r :若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  •              -l :不复制文件,只是生成链接文件。

    实例

      使用指令cp将当前目录test/下的所有文件复制到新目录newtest下,输入如下命令:

        $  cp  -r  test/  newtest

 六、du命令

  du (英文全拼:disk usage)命令用于显示目录或文件的大小。

 

  du 会显示指定的目录或文件所占用的磁盘空间。

 

  语法

 

du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]

 

  参数说明

 

  •        -a或-all 显示目录中个别文件的大小。
  •        -b或-bytes 显示目录或文件大小时,以byte为单位。
  •        -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
  •        -D或--dereference-args 显示指定符号连接的源文件大小。
  •       -h或--human-readable 以K,M,G为单位,提高信息的可读性。
  •       -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
  •       -k或--kilobytes 以1024 bytes为单位。
  •       -l或--count-links 重复计算硬件连接的文件。
  •       -L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
  •       -m或--megabytes 以1MB为单位。
  •       -s或--summarize 仅显示总计。
  •       -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
  •       -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
  •       -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
  •       --exclude=<目录或文件> 略过指定的目录或文件。
  •       --max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
  •       --help 显示帮助。
  •       --version 显示版本信息。

 

    实例

 

      显示目录或者文件所占空间:

 

# du
        608     ./test6
        308     ./test4
        4       ./scf/lib
        4       ./scf/service/deploy/product
        4       ./scf/service/deploy/info
        12      ./scf/service/deploy
        16      ./scf/service
         4       ./scf/doc
        4       ./scf/bin
        32      ./scf
        8       ./test3
        1288    .

 

      只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小

 

      显示指定文件所占空间

 

# du log2012.log 
        300     log2012.log

 

      方便阅读的格式显示test目录所占空间情况:

 

# du -h test
        608K    test/test6
        308K    test/test4
        4.0K    test/scf/lib
        4.0K    test/scf/service/deploy/product
        4.0K    test/scf/service/deploy/info
         12K     test/scf/service/deploy
          16K     test/scf/service
        4.0K    test/scf/doc
        4.0K    test/scf/bin
        32K     test/scf
        8.0K    test/test3
        1.3M    test

 

七、rm命令

    

    rm(英文全拼:remove)命令用于删除一个文件或者目录。

  语法

rm [options] name...

  参数

  •        -i 删除前逐一询问确认。
  •   -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
  •       -r 将目录及以下之档案亦逐一删除。

  实例

         删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:

# rm  test.txt 
  rm:是否删除 一般文件 "test.txt"? y  
  # rm  homework  
  rm: 无法删除目录"homework": 是一个目录  
  # rm  -r  homework  
  rm:是否删除 目录 "homework"? y

  删除当前目录下的所有文件及目录,命令行为:

rm  -r  *

  文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。

八、stat命令

    

      stat命令用于显示inode内容。

      stat以文字的格式来显示inode的内容。

      语法

stat [文件或目录]

      实例

        查看 testfile 文件的inode内容内容,可以用以下命令:

        # stat testfile

          执行以上命令输出结果:

# stat testfile                #输入命令
            File: `testfile'
              Size: 102             Blocks: 8          IO Block: 4096   regular file
              Device: 807h/2055d      Inode: 1265161     Links: 1
              Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
              Access: 2014-08-13 14:07:20.000000000 +0800
              Modify: 2014-08-13 14:07:07.000000000 +0800
              Change: 2014-08-13 14:07:07.000000000 +0800

九、file命令

        file命令用于辨识文件类型。

        通过file指令,我们得以辨识该文件的类型。

    语法

file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

    参数

  •   -b  列出辨识结果时,不显示文件名称。
  •   -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
  •   -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
  •   -L  直接显示符号连接所指向的文件的类别。
  •   -m<魔法数字文件>  指定魔法数字文件。
  •   -v  显示版本信息。
  •   -z  尝试去解读压缩文件的内容。
  •   [文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

    实例

      显示文件类型:

[root@localhost ~]# file install.log
      install.log: UTF-8 Unicode text

      [root@localhost ~]# file -b install.log      <== 不显示文件名称
          UTF-8 Unicode text

      [root@localhost ~]# file -i install.log      <== 显示MIME类别。
        install.log: text/plain; charset=utf-8

      [root@localhost ~]# file -b -i install.log
          text/plain; charset=utf-8

      显示符号链接的文件类型

[root@localhost ~]# ls -l /var/mail
          lrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail

        [root@localhost ~]# file /var/mail
          /var/mail: symbolic link to `spool/mail'

        [root@localhost ~]# file -L /var/mail
          /var/mail: directory

        [root@localhost ~]# file /var/spool/mail
          /var/spool/mail: directory

        [root@localhost ~]# file -L /var/spool/mail
          /var/spool/mail: directory

十、whereis命令

     whereis命令用于查找文件。

    该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。

    该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。

    语法

whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]

    参数

  •     -b  只查找二进制文件。
  •        -B<目录>  只在设置的目录下查找二进制文件。
  •         -f   不显示文件名前的路径名称。
  •        -m  只查找说明文件。
  •       -M<目录>  只在设置的目录下查找说明文件。
  •       -s  只查找原始代码文件。
  •       -S<目录>  只在设置的目录下查找原始代码文件。
  •       -u  查找不包含指定类型的文件。

    实例

        使用指令"whereis"查看指令"bash"的位置,输入如下命令:

$ whereis bash

          上面的指令执行后,输出信息如下所示:

bash:/bin/bash/etc/bash.bashrc/usr/share/man/man1/bash.1.gz

              注意:以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径。

        如果用户需要单独查询二进制文件或帮助文件,可使用如下命令:

$ whereis -b bash 
                                          $ whereis -m bash

                             输出信息如下:

$ whereis -b bash               #显示bash 命令的二进制程序  
                                        bash: /bin/bash /etc/bash.bashrc /usr/share/bash    # bash命令的二进制程序的地址  
                                      $ whereis -m bash               #显示bash 命令的帮助文件  
                                        bash: /usr/share/man/man1/bash.1.gz  #bash命令的帮助文件地址 

十一、ls命令

      ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

      语法

ls [-alrtAFR] [name...]

        参数 :

  • . 开头的隐藏文件也会列出)
  •       -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  •       -r 将文件以相反次序显示(原定依英文字母次序)
  •       -t 将文件依建立时间之先后次序列出
  •       -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
  •       -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
  •       -R 若目录下有文件,则以下之文件亦皆依序列出

        实例

            列出根目录(\)下的所有目录:

# ls /
                          bin               dev   lib         media  net   root     srv  upload  www
                          boot              etc   lib64       misc   opt   sbin     sys  usr
                          home  lost+found  mnt    proc  selinux  tmp  var

         列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面 :

ls -ltr s*

          将 /bin 目录以下所有目录及文件详细资料列出 :

ls -lR /bin

          列出目前工作目录下所有文件及目录;目录于名称后加 "/", 可执行档于名称后加 "*" :

ls -AF
十二、dd命令

        dd命令用于读取、转换并输出数据。

        dd可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

    参数说明:

  •     if=文件名:输入文件名,默认为标准输入。即指定源文件。
  •     of=文件名:输出文件名,默认为标准输出。即指定目的文件。
  •     ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
                  obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
                  bs=bytes:同时设置读入/输出的块大小为bytes个字节。
  •     cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
  •     skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
  •     seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
  •     count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
  •   conv=<关键字>,关键字可以有以下11种:
  •     conversion:用指定的参数转换文件。
  •   ascii:转换ebcdic为ascii
  •   ebcdic:转换ascii为ebcdic
  •   ibm:转换ascii为alternate ebcdic
  •   block:把每一行转换为长度为cbs,不足部分用空格填充
  •   unblock:使每一行的长度都为cbs,不足部分用空格填充
  •   lcase:把大写字符转换为小写字符
  •   ucase:把小写字符转换为大写字符
  •   swab:交换输入的每对字节
  •   noerror:出错时不停止
  •   notrunc:不截短输出文件
  •   sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
  •   --help:显示帮助信息
  •   --version:显示版本信息

      实例

          在Linux 下制作启动盘,可使用如下命令:

dd if=boot.img of=/dev/fd0 bs=1440k

          将testfile文件中的所有英文字母转换为大写,然后转成为testfile_1文件,在命令提示符中使用如下命令:

dd if=testfile_2 of=testfile_1 conv=ucase

          其中testfile_2 的内容为:

$ cat testfile_2 #testfile_2的内容  
            HELLO LINUX!  
            Linux is a free unix-type opterating system.  
            This is a linux testfile!  
            Linux test

          转换完成后,testfile_1 的内容如下:

$ dd if=testfile_2 of=testfile_1 conv=ucase #使用dd 命令,大小写转换记录了0+1 的读入  
            记录了0+1 的写出  
            95字节(95 B)已复制,0.000131446 秒,723 KB/s  
            cmd@hdd-desktop:~$ cat testfile_1 #查看转换后的testfile_1文件内容  
            HELLO LINUX!  
            LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
            THIS IS A LINUX TESTFILE!  
            LINUX TEST #testfile_2中的所有字符都变成了大写字母

          由标准输入设备读入字符串,并将字符串转换成大写后,再输出到标准输出设备,使用的命令为:

dd conv=ucase

          输入以上命令后按回车键,输入字符串,再按回车键,按组合键Ctrl+D 退出,出现以下结果:

$ dd conv=ucase 
            Hello Linux! #输入字符串后按回车键  
            HELLO LINUX! #按组合键Ctrl+D退出,转换成大写结果  
          记录了0+1 的读入  
          记录了0+1 的写出  
          13字节(13 B)已复制,12.1558 秒,0.0 KB/s 
十三、which命令

         which命令用于查找文件。

        which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

      语法

which [文件...]

        参数

  •     -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
  •     -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
  •     -w  指定输出时栏位的宽度。
  •     -V  显示版本信息。

      实例

        使用指令"which"查看指令"bash"的绝对路径,输入如下命令:

$ which bash

        上面的指令执行后,输出信息如下所示:

/bin/bash                   #bash可执行程序的绝对路径
右枝

一、cd命令

    cd(英文全拼:change directory)命令用于切换当前工作目录。

    其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, .. 则表示目前目录位置的上一层目录。

    语法

cd [dirName]
  •     dirName:要切换的目标目录。

    实例

      跳到 /usr/bin/ :

cd /usr/bin

      跳到自己的 home 目录 :

cd ~

      跳到目前目录的上上两层 :

cd ../..
二、touch命令

      touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

      ls -l 可以显示档案的时间记录。

    语法

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]

    参数说明:
  •     a 改变档案的读取时间记录。
  •     m 改变档案的修改时间记录。
  •     c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
  •     f 不使用,是为了与其他 unix 系统的相容性而保留。
  •     r 使用参考档的时间记录,与 --file 的效果一样。
  •     d 设定时间与日期,可以使用各种不同的格式。
  •     t 设定档案的时间记录,格式与 date 指令相同。
  •   --no-create 不会建立新档案。
  •   --help 列出指令格式。
  •   --version 列出版本讯息。

    实例

        使用指令"touch"修改文件"testfile"的时间属性为当前系统时间,输入如下命令:

$ touch testfile                #修改文件的时间属性

      首先,使用ls命令查看testfile文件的属性,如下所示:

$ ls -l testfile                #查看文件的时间属性  
      #原来文件的修改时间为16:09  
      -rw-r--r-- 1 hdd hdd 55 2011-08-22 16:09 testfile

      执行指令"touch"修改文件属性以后,并再次查看该文件的时间属性,如下所示:

$ touch testfile                #修改文件时间属性为当前系统时间  
      $ ls -l testfile                #查看文件的时间属性  
      #修改后文件的时间属性为当前系统时间  
        -rw-r--r-- 1 hdd hdd 55 2011-08-22 19:53 testfile

    使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件"file",输入如下命令:

$ touch file            #创建一个名为“file”的新的空白文件 
三、cat命令(用于连接文件并打印到标准输出设备上)=======(英文全拼:concatenate)

    使用权限

      所有使用者

    语法格式

cat [-AbeEnstTuv] [--help] [--version] fileName

    参数说明:

          -n 或 --number:由 1 开始对所有输出的行数编号。

          -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。

          -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

          -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

          -E 或 --show-ends : 在每行结束处显示 $。

          -T 或 --show-tabs: 将 TAB 字符显示为 ^I。

          -A, --show-all:等价于 -vET。

          -e:等价于"-vE"选项;

          -t:等价于"-vT"选项;

      实例:

        把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 > textfile2

        把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

cat -b textfile1 textfile2 >> textfile3

        清空 /etc/test.txt 文档内容:

cat /dev/null > /etc/test.txt

         cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:

cat /dev/fd0 > OUTFILE

          相反的,如果想把 image file 写到软盘,输入:

cat IMG_FILE > /dev/fd0

          注

  •       1. OUTFILE 指输出的镜像文件名。
  •       2. IMG_FILE 指镜像文件。
  •       3. 若从镜像文件写回 device 时,device 容量需与相当。
  •       4. 通常用制作开机磁片。
四、more命令/less命令

    more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

    语法

more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

    参数

  •     -num 一次显示的行数
  •     -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
  •     -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
  •     -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
  •     -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
  •     -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
  •     -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
  •     -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
  •     +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
  •     +num 从第 num 行开始显示
  •     fileNames 欲显示内容的文档,可为复数个数

    实例

      逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。

more -s testfile

      从第 20 行开始显示 testfile 之文档内容。

more +20 testfile

    常用操作命令

  •     Enter 向下n行,需要定义。默认为1行
  •     Ctrl+F 向下滚动一屏
  •     空格键 向下滚动一屏
  •     Ctrl+B 返回上一屏
  •     = 输出当前行的行号
  •     :f 输出文件名和当前行的行号
  •     V 调用vi编辑器
  •     !命令 调用Shell,并执行命令
  •     q 退出more

 

 

==========================================

      less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

      语法

less [参数] 文件

        参数说明

  •     -b <缓冲区大小> 设置缓冲区的大小
  •     -e 当文件显示结束后,自动离开
  •     -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
  •     -g 只标志最后搜索的关键词
  •     -i 忽略搜索时的大小写
  •     -m 显示类似more命令的百分比
  •     -N 显示每行的行号
  •     -o <文件名> 将less 输出的内容在指定文件中保存起来
  •     -Q 不使用警告音
  •     -s 显示连续空行为一行
  •     -S 行过长时间将超出部分舍弃
  •     -x <数字> 将"tab"键显示为规定的数字空格
  •     /字符串:向下搜索"字符串"的功能
  •     ?字符串:向上搜索"字符串"的功能
  •     n:重复前一个搜索(与 / 或 ? 有关)
  •     N:反向重复前一个搜索(与 / 或 ? 有关)
  •       b 向上翻一页
  •     d 向后翻半页
  •     h 显示帮助界面
  •     Q 退出less 命令
  •     u 向前滚动半页
  •     y 向前滚动一行
  •     空格键 滚动一页
  •     回车键 滚动一行
  •     [pagedown]: 向下翻动一页
  •     [pageup]: 向上翻动一页

      实例

        1、查看文件

less log2013.log

        2、ps查看进程信息并通过less分页显示

ps -ef |less

        3、查看命令历史使用记录并通过less分页显示

[root@localhost test]# history | less
          22  scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft
          23  cd ..
          24  scp -r web root@192.168.120.203:/opt/
          25  cd soft
          26  ls

        4、浏览多个文件

less log2013.log log2014.log

        说明:
        输入 :n后,切换到 log2014.log
        输入 :p 后,切换到log2013.log

      附加备注

        1.全屏导航

  •       ctrl + F - 向前移动一屏
  •       ctrl + B - 向后移动一屏
  •       ctrl + D - 向前移动半屏
  •       ctrl + U - 向后移动半屏

        2.单行导航

  •       j - 向前移动一行
  •       k - 向后移动一行

        3.其它导航

  •       G - 移动到最后一行
  •       g - 移动到第一行
  •       q / ZZ - 退出 less 命令

        4.其它有用的命令

  •       v - 使用配置的编辑器编辑当前文件
  •       h - 显示 less 的帮助文档
  •       &pattern - 仅显示匹配模式的行,而不是整个文件

        5.标记导航

        当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:

  •     ma - 使用 a 标记文本的当前位置
  •     'a - 导航到标记 a 处
五、wc命令

    wc命令用于计算字数。

    利用wc指令我们可以计算文件的字节数,字数,或者列数,若不指定文件名,或所赋予的文件称为“-”,则wc指令会从标准输入设备读取数据。

    语法

wc [-clw] [-help] [-version] [文件...]

      参数

          -c或--bytes或--chars只显示Bytes数。

  •     -l或--lines显示行数。
  •     -w或--words只显示字数。
  •     --help在线帮助。
  •     --version显示版本信息。

    实例

          在某些情况下,wc将计算指定文件的行数,字数,以及字节数。使用的命令为:

wc测试文件

          先查看testfile文件的内容,可以看到:

$ cat测试文件  
    Linux网络变得越来越普遍,但是安全性常常被忽略问题。不幸的是,在当今环境下,所有网络都是潜在的黑客目标,将tp-secret军事研究网络从小型家庭LAN传输出去。  
    Linux Network Securty致力于在网络环境中保护Linux的安全,其中需要考虑整个网络的安全性,而不仅仅是隔离的机器。  
    它结合了理论和实践技巧,教管理员如何安装和安装使用安全性应用程序,以及应用程序如何工作以及为什么必要。

    使用wc统计,结果如下:

$ wc testfile#testfile文件的统计信息  
              3 92 598 testfile#testfile文件的行数为3,单词数92,字节数598

          其中,3个数字分别表示测试文件文件的行数,单词数,以及该文件的字节数。

          如果想同时统计多个文件的信息,例如同时统计testfile,testfile_1,testfile_2,可使用如下命令:

wc testfile testfile_1 testfile_2#统计三个文件的信息

          输出结果如下:

$ wc testfile testfile_1 testfile_2#统计三个文件的信息  
                  3 92 598测试文件#第一个文件行数为3,单词数92,字节数598  
                  9 18 78 testfile_1#第二个文件的行数为9,单词数18,字节数78  
                  3 6 32 testfile_2#第三个文件的行数为3,单词数6,字节数32  
                  15 116 708总用量#三个文件总共的行数为15,单词数116,字节数708
六、head/tail命令

-n 用于显示行数,默认为 10,即显示 10 行的内容。

        命令格式:

head [参数][文件]

        参数:

  • -q 隐藏文件名
  • -v 显示文件名
  • -c<数目> 显示的字节数。
  •                         -n<行数> 显示的行数。

        实例

            要显示 runoob_notes.log 文件的开头 10 行,请输入以下命令:

head runoob_notes.log

            显示 notes.log 文件的开头 5 行,请输入以下命令:

head -n 5 runoob_notes.log

            显示文件前 20 个字节:

head -c 20 runoob_notes.log

 

==================================================================

-f 常用于查阅正在改变的日志文件。

          tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。

          命令格式:

tail [参数][文件]

          参数:

  •  -f 循环读取
  •  -q 不显示处理信息
  •     -v 显示详细的处理信息
  •     -c<数目> 显示的字节数
  •     -n<行数> 显示文件的尾部 n 行内容
  •     --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
  •     -q, --quiet, --silent 从不输出给出文件名的首部
  •     -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

          实例

            要显示 notes.log 文件的最后 10 行,请输入以下命令:

tail notes.log

            要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:

tail -f notes.log

            此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。

          显示文件 notes.log 的内容,从第 20 行至文件末尾:

tail -n +20 notes.log

          显示文件 notes.log 的最后 10 个字符:

tail -c 10 notes.log
七、sort命令

        sort命令用于将文本文件内容加以排序。

        sort可针对文本文件的内容,以行为单位来排序。

      语法

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

          参数说明

  •    -b 忽略每行前面开始出的空格字符。
  •    -c 检查文件是否已经按照顺序排序。
  •    -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
  •    -f 排序时,将小写字母视为大写字母。
  •    -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
  •    -m 将几个排序好的文件进行合并。
  •    -M 将前面3个字母依照月份的缩写进行排序。
  •    -n 依照数值的大小排序。
  •                -u 意味着是唯一的(unique),输出的结果是去完重了的。
  • -o<输出文件> 将排序后的结果存入指定的文件。
  •          -r 以相反的顺序来排序。
  •                                          -t<分隔字符> 指定排序时所用的栏位分隔字符。
  •                                          +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
  •                              --help 显示帮助。
  •                             --version 显示版本信息。

         实例

          在使用sort命令以默认的式对文件的行进行排序,使用的命令如下:

sort testfile

          sort 命令将以默认的方式将文本文件的第一列以ASCII 码的次序排列,并将结果输出到标准输出。

        使用 cat命令显示testfile文件可知其原有的排序如下:

$ cat testfile      #testfile文件原有排序  
                      test 30Hello95Linux85

        使用sort命令重排后的结果如下:

$ sort testfile #重排结果  Hello95Linux85  
                      test 30
八、uniq命令

        uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

        uniq 可检查文本文件中重复出现的行列。

     语法

uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]

        参数

  •     -c或--count 在每列旁边显示该行重复出现的次数。
  •     -d或--repeated 仅显示重复出现的行列。
  •     -f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
  •     -s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
  •     -u或--unique 仅显示出一次的行列。
  •     -w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
  •   --help 显示帮助。
  •    [输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

    实例

        文件testfile中第 2、3、5、6、7、9行为相同的行,使用 uniq 命令删除重复的行,可使用以下命令:

uniq testfile

        testfile中的原有内容为:

$ cat testfile      #原有内容  
              test 30  
              test 30  
              test 30Hello95Hello95Hello95Hello95Linux85Linux85

        使用uniq 命令删除重复的行后,有如下输出结果:

$ uniq testfile     #删除重复行后的内容  
                            test 30Hello95Linux85

        检查文件并删除文件中重复出现的行,并在行首显示该行重复出现的次数。使用如下命令:

uniq -c testfile

        结果输出如下:

$ uniq -c testfile      #删除重复行后的内容  3 test 30#前面的数字的意义为该行共出现了3次  4Hello95#前面的数字的意义为该行共出现了4次  2Linux85#前面的数字的意义为该行共出现了2次
当重复的行并不相邻时,uniq 命令是不起作用的,即若文件内容为以下时,uniq 命令不起作用:
$ cat testfile1      # 原有内容 
            test 30Hello95Linux85 
            test 30Hello95Linux85 
            test 30Hello95Linux85

        这时我们就可以使用 sort:

$ sort  testfile1 | uniq
              Hello95Linux85 
              test 30

        统计各行在文件中出现的次数:

$ sort testfile1 | uniq -c
               3Hello953Linux853 test 30

        在文件中找出重复的行:

$ sort testfile1 | uniq -d
              Hello95Linux85 
              test 30
九、grep命令

      grep 命令用于查找文件里符合条件的字符串。

      grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。

-,则 grep 指令会从标准输入设备读取数据。

    语法

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

      参数

        -a 或 --text : 不要忽略二进制的数据。

  •   -A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
  •   -b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
  •   -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
  •   -c 或 --count : 计算符合样式的列数。
  •   -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
  •   -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
  •   -e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
  •   -E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
  •   -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
  •   -F 或 --fixed-regexp : 将样式视为固定字符串的列表。
  •   -G 或 --basic-regexp : 将样式视为普通的表示法来使用。
  •   -h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
  •   -H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
  •   -i 或 --ignore-case : 忽略字符大小写的差别。
  •   -l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
  •   -L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
  •   -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
  •   -o 或 --only-matching : 只显示匹配PATTERN 部分。
  •   -q 或 --quiet或--silent : 不显示任何信息。
  •   -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
  •   -s 或 --no-messages : 不显示错误信息。
  •   -v 或 --invert-match : 显示不包含匹配文本的所有行。
  •   -V 或 --version : 显示版本信息。
  •   -w 或 --word-regexp : 只显示全字符合的列。
  •   -x --line-regexp : 只显示全列符合的列。
  •   -y : 此参数的效果和指定"-i"参数相同。

 

    实例

      1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。

        此时,可以使用如下命令:

grep test *file

      结果如下所示:

$ grep test test*#查找前缀有“test”的文件包含“test”字符串的文件  
            testfile1:This a Linux testfile!#列出testfile1 文件中包含test字符的行  
            testfile_2:Thisis a linux testfile!#列出testfile_2 文件中包含test字符的行  
            testfile_2:Linux test #列出testfile_2 文件中包含test字符的行

      2、以递归的方式查找符合条件的文件。  

        例如,

          查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,

        并打印出该字符串所在行的内容,使用的命令为:

grep -r update /etc/acpi

          输出结果如下:

$ grep -r update   

              /etc/acpi #以递归的方式查找“etc/acpi”  #下包含“update”的文件  

              /etc/acpi/ac.d/85-anacron.sh:#(Things like the slocate updatedb cause a lot of IO.)Rather than  

              /etc/acpi/resume.d/85-anacron.sh:#(Things like the slocate updatedb cause a lot of IO.)Rather than  

              /etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update

        3、反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。

          查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:

grep -v test *test*

        结果如下所示:

$ grep-v test*#查找文件名中包含test 的文件中不包含test 的行  
              testfile1:helLinux!  
              testfile1:Linis a free Unix-type operating system.  
              testfile1:Lin  
              testfile_1:HELLO LINUX!  
              testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.  
              testfile_1:THIS IS A LINUX TESTFILE!  
              testfile_2:HELLO LINUX!  
              testfile_2:Linuxis a free unix-type opterating system.
十、find命令

        find 命令用来在指定目录下查找文件。

        任何位于参数之前的字符串都将被视为欲查找的目录名。

        如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

    语法

find   path   -option   [-print][-exec-ok   command ]{} \;

      参数说明 :

        find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。

            如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression。

        expression 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

        -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

        -amin n : 在过去 n 分钟内被读取过

        -anewer file : 比文件 file 更晚被读取过的文件

        -atime n : 在过去n天内被读取过的文件

        -cmin n : 在过去 n 分钟内被修改过

        -cnewer file :比文件 file 更新的文件

        -ctime n : 在过去n天内被修改过的文件

        -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name

        -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写

        -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写

        -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。

        -type c : 文件类型是 c 的文件。

      d: 目录

      c: 字型装置文件

      b: 区块装置文件

      p: 具名贮列

      f: 一般文件

      l: 符号连结

      s: socket

      -pid n : process id 是 n 的文件

      你可以使用 ( ) 将运算式分隔,并使用下列运算。

      exp1 -and exp2

      ! expr

      -not expr

      exp1 -or exp2

      exp1, exp2

     实例

.c 的文件列出来:

# find . -name "*.c"

          将目前目录其其下子目录中所有一般文件列出

# find . -type f

          将当前目录及其子目录下所有最近 20 天内更新过的文件列出:

# find . -ctime -20

          查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:

# find /var/log -type f -mtime +7 -ok rm {} \;

          查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:

# find . -type f -perm 644 -exec ls -l {} \;

          查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径:

# find / -type f -size 0 -exec ls -l {} \;
十一、cut命令

      cut命令用于显示每行从开头算起 num1 到 num2 的文字。

    语法

cut  [-bn][file]
          cut [-c][file]
          cut [-df][file]

      使用说明:

          cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

          如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

      参数:

  •     -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
  •     -c :以字符为单位进行分割。
  •     -d :自定义分隔符,默认为制表符。
  •     -f :与-d一起使用,指定显示哪个区域。
  •     -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
                    范围之内,该字符将被写出;否则,该字符将被排除

      实例

            当你执行who命令时,会输出类似如下的内容:

$ who
              rocrocket :02009-01-0811:07
              rocrocket pts/02009-01-0811:23(:0.0)
              rocrocket pts/12009-01-0814:15(:0.0)

            如果我们想提取每一行的第3个字节,就这样:

$ who|cut -b 3
              c
              c
十二、locate命令

      locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。

      一般情况我们只需要输入 locate your_file_name 即可查找指定文件。

    语法

locate [-d ][--help][--version][范本样式...]

      参数:

  •     -b, --basename -- 仅匹配路径名的基本名称
  •     -c, --count -- 只输出找到的数量
  •     -d, --database DBPATH -- 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db
  •     -e, --existing -- 仅打印当前现有文件的条目
  •     -1 -- 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。
  •     -0, --null -- 在输出上带有NUL的单独条目
  •     -S, --statistics -- 不搜索条目,打印有关每个数据库的统计信息
  •     -q -- 安静模式,不会显示任何错误讯息。
  •     -P, --nofollow, -H -- 检查文件存在时不要遵循尾随的符号链接
  •     -l, --limit, -n LIMIT -- 将输出(或计数)限制为LIMIT个条目
  •     -n -- 至多显示 n个输出。
  •     -m, --mmap -- 被忽略,为了向后兼容
  •     -r, --regexp REGEXP -- 使用基本正则表达式
  •     --regex -- 使用扩展正则表达式
  •     -q, --quiet -- 安静模式,不会显示任何错误讯息
  •     -s, --stdio -- 被忽略,为了向后兼容
  •     -o -- 指定资料库存的名称。
  •     -h, --help -- 显示帮助
  •     -i, --ignore-case -- 忽略大小写
  •     -V, --version -- 显示版本信息

    实例

        查找 passwd 文件,输入以下命令:

locate passwd

        搜索 etc 目录下所有以 sh 开头的文件 :

locate /etc/sh

        忽略大小写搜索当前用户目录下所有以 r 开头的文件 :

locate -i ~/r

    附加说明

            locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。

        locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,

        所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:

updatedb

                                              默认情况下 updatedb 每天执行一次。

十三、who/whoami命令

          who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。

        使用权限:所有使用者都可使用。

      语法

who -[husfV][user]

        参数说明

  •       -H 或 --heading:显示各栏位的标题信息列;
  •       -i 或 -u 或 --idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
  •       -m:此参数的效果和指定"am i"字符串相同;
  •       -q 或--count:只显示登入系统的帐号名称和总人数;
  •       -s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
  •       -w 或-T或--mesg或--message或--writable:显示用户的信息状态栏;
  •     --help:在线帮助;
  •     --version:显示版本信息。

      实例

          显示当前登录系统的用户

# who  //显示当前登录系统的用户
          root   tty7     2014-05-1312:12(:0)
          root   pts/02014-05-1417:09(:0.0)
          root   pts/12014-05-1418:51(192.168.1.17)
          root   pts/22014-05-1419:48(192.168.1.17)

          显示标题栏

# who -H
          NAME   LINE     TIME       COMMENT
          root   tty7     2014-05-1312:12(:0)
          root   pts/02014-05-1417:09(:0.0)
          root   pts/12014-05-1418:51(192.168.1.17)
          root   pts/22014-05-1419:48(192.168.1.17)

          显示用户登录来源

# who -l -H
          NAME   LINE     TIME       IDLE     PID COMMENT
          LOGIN  tty4     2014-05-1312:11852 id=4
          LOGIN  tty5     2014-05-1312:11855 id=5
          LOGIN  tty2     2014-05-1312:11862 id=2
          LOGIN  tty3     2014-05-1312:11864 id=3
          LOGIN  tty6     2014-05-1312:11867 id=6
          LOGIN  tty1     2014-05-1312:111021 id=1

          显示终端属性

# who -T -H
          NAME    LINE     TIME       COMMENT
          root   + tty7     2014-05-1312:12(:0)
          root   + pts/02014-05-1417:09(:0.0)
          root   - pts/12014-05-1418:51(192.168.1.17)
          root   - pts/22014-05-1419:48(192.168.1.17)

          只显示当前用户

# who -m -H
          NAME   LINE     TIME       COMMENT
          root   pts/12014-05-1418:51(192.168.1.17)

          精简模式显示

# who -q
          root root root root
          # users=4
==========================

       whoami命令用于显示自身用户名称。

      显示自身的用户名称,本指令相当于执行"id -un"指令。

    语法

whoami [--help][--version]

    参数说明

  • --help  在线帮助。
  • --version  显示版本信息。

    实例

        显示用户名

# whoami 
                root
十四、ln命令(一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接)(英文全拼:link files)

         当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

    语法

ln [参数][源文件或目录][目标文件或目录]
其中参数的格式为

      [-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]

      [--help] [--version] [--]

      命令功能 :
        Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 :

      硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。

      硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

      不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

      软链接

  •  1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
  •  2.软链接可以 跨文件系统 ,硬链接不可以
  •  3.软链接可以对一个不存在的文件名进行链接
  •  4.软链接可以对目录进行链接

      硬链接

  •  1.硬链接,以文件副本的形式存在。但不占用实际空间。
  •  2.不允许给目录创建硬链接
  •  3.硬链接只有在同一个文件系统中才能创建

          命令参数

          必要参数

  • -b 删除,覆盖以前建立的链接
  •    -d 允许超级用户制作目录的硬链接
  •    -f 强制执行
  •    -i 交互模式,文件存在则提示用户是否覆盖
  •            -n 把符号链接视为一般目录
  •            -s 软链接(符号链接)
  •            -v 显示详细的处理过程

        选择参数

  •     -S "-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>"
  •     -V "-V<备份方式>"或"--version-control=<备份方式>"
  •    --help 显示帮助信息
  •    --version 显示版本信息

      实例

            给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:

ln -s log2013.log link2013

            输出:

[root@localhost test]# ll
              -rw-r--r--1 root bin      6111-1306:03 log2013.log
              [root@localhost test]# ln -s log2013.log link2013
              [root@localhost test]# ll
              lrwxrwxrwx 1 root root     1112-0716:01 link2013 -> log2013.log
              -rw-r--r--1 root bin      6111-1306:03 log2013.log

            给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同

ln log2013.log ln2013

            输出:

[root@localhost test]# ll
            lrwxrwxrwx 1 root root     1112-0716:01 link2013 -> log2013.log
            -rw-r--r--1 root bin      6111-1306:03 log2013.log
            [root@localhost test]# ln log2013.log ln2013
            [root@localhost test]# ll
            lrwxrwxrwx 1 root root     1112-0716:01 link2013 -> log2013.log
            -rw-r--r--2 root bin      6111-1306:03 ln2013
            -rw-r--r--2 root bin      6111-1306:03 log2013.log