1. 程式人生 > 實用技巧 >Linux基礎命令大集合

Linux基礎命令大集合

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.目錄及檔案管理類命令:

左枝

一、pwd命令(用於顯示工作目錄)--------(英文全拼:print work directory)

  pwd指令可立刻得知您目前所在的工作目錄的絕對路徑名稱。

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

  --help 線上幫助

  --version 顯示版本資訊

例項:

  檢視當前所在目錄:

輸出結果。

  

二、mkdir命令(用於建立目錄)---------(英文全拼:make directory)

    語法:mkdir [-p] dirName

  引數說明:

  •     -p確保目錄名稱存在,不存在的就建一個。

  例項

    在工作目錄下,建立一個名為runoob的子目錄:

    在工作目錄下的runoob2目錄中,建立一個名為test的子目錄。

    若runoob2目錄原本不存在,則建立一個。(注:本例若不加-p 引數,且原本runoob2目錄不存在,則產生錯誤。)

    mkdir -p runoob2/test

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

    語法:rmdir [ -p ]dirName

  引數說明:

    -p是當子目錄被刪除後使它也成為空目錄的話,則順便一併刪除。

   例項:

    將工作目錄下,名為AAA的子目錄刪除:rmdir AAA

    在工作目錄下的BBB目錄中,刪除名為Test 的子目錄。若Test刪除後,BBB目錄成為空目錄,則BBB亦予刪除。

      rmdir -p BBB/Test

      

四、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

到目標目錄dest_directory中
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/* .

     

       

五、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...]

        引數:

        •       -a 顯示所有檔案及目錄 (.開頭的隱藏檔案也會列出)
        •       -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命令

        head 命令可用於檢視檔案的開頭部分的內容,有一個常用的引數-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

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

          tail 命令可用於檢視檔案的內容,有一個常用的引數-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 顯示幫助。
    •   --version 顯示版本資訊。
      •     [輸入檔案] 指定已排序好的文字檔案。如果不指定此項,則從標準讀取資料;
        • [輸出檔案] 指定輸出的檔案。如果不指定此選項,則將內容顯示到標準輸出裝置(顯示終端)。

    例項

        檔案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