Linux 基礎命令

    Linux命令分爲內部命令和外部命令

        內部命令:shell內置命令

        外部命令:在文件系統的某個路徑下有一個名稱響應的可執行文件

★如果系統中命令有別名,可以使用\COMMAND使用原命令,使用alias查看系統中使用的命令別名

whatis :顯示指定命令有哪些版本的幫戶信息

which:顯示命令路徑

cd:切換當前目錄

    不加任何參數,切換到當前用戶的家目錄,等同於 ~

    cd    ~USERNAME 切換到制定用戶的家目錄

    cd    -    在當前目錄和上一次目錄之間來回切換


ls 列出目錄內容

    -a 列出所有內容,包括 . ..

    -A 列出所有內容,除了. ..

    -l 長格式顯示

            文件類型:

   -:普通文件(f)

   d:目錄文件

   b:快設備文件(block)

   c:字符設備文件(character)

   l:符號連接文件(symbolic link file)

   p:管道文件(pipe)

   s:套接字文件(socket )

   文件權限:9位;每三位一組,rwx,沒有-表示

   文件硬鏈接次數

   文件的屬主屬組

   文件大小,默認單位字節

   時間戳:顯示最近一次被修改的時間

     訪問:access

     修改:modify,文件內容發生改變

     改變:change,元數據(metadata)改變

      -h 以人類比較直觀的單位顯示

      -d 顯示目錄自身的屬性

      -i 顯示文件的索引號

      -r 逆序顯示文件

      -R 遞歸顯示目錄及目錄中的文件


type:顯示指定命令屬於那種類型,內置命令或者外部命令

date:顯示或者設定系統日期與時間

    -d<字符串>  顯示字符串所指的日期與時間。字符串前後必須加上雙引號。

    -s<字符串>  根據字符串來設置日期與時間。字符串前後必須加上雙引號。

    -u  顯示GMT。 

    格式化顯示時間參數:

%%     顯示%

%a    顯示縮寫的星期

%A    顯示完整的星期

%b    顯示縮寫的月份

%B    顯示完整的月份

%c    顯示本地時間和日期

%C   顯示世紀

%d    一個月的第幾天01-31表示

%D    顯示日期,同%m/%d/%y  02/25/16

%e    一個月的第幾天1-31表示

%F    完全顯示日期,同%Y-%m-%d    2016-02-25

%g    年份(yy)

%G    年份(yyyy)

%h    同%b

%H    小時(00..23)

%I    小時(01..12)

%j    一年的第幾天

%k    小時(0..23)

%l    小時(1..12)

%m    月份(01..12)

%M    分鐘(00..59)

%n    換行顯示

%N    納秒

%p    AM或者PM

%P    am或者pm

%r    12小時制時間(hh:mm:ss [AP]M)

%R    24小時制時間(hh:mm)

%s    從00:00:00 1970-01-01 UTC開始的秒數

%t    顯示製表符

%T    24小時制時間(hh:mm:ss)

%u    一週的第幾天(1..7); 1 表示星期一

%U    一年的第幾周,週日爲每週的第一天(00..53)

%V    一年的第幾周,週一爲每週的第一天 (01..53)

%w    一週的第幾天 (0..6); 0 代表週日

%W   一年的第幾周,週一爲每週的第一天(00..53)

%x    日期(mm/dd/yy)

%X    時間(%H:%M:%S)

%y    年份(00..99)

%Y    年份 (1970…)

%z    RFC-2822 風格數字格式時區(-0500)

%Z    時區(e.g., EDT), 無法確定時區則爲空

    具體用法

在設定時間方面

date -s //設置當前時間,只有root權限才能設置,其他只能查看。

date -s 20080523 //設置成20080523,這樣會把具體時間設置成空00:00:00

date -s 01:01:01 //設置具體時間,不會對日期做更改

date -s “01:01:01 2008-05-23″ //這樣可以設置全部時間

date -s “01:01:01 20080523″ //這樣可以設置全部時間

date -s “2008-05-23 01:01:01″ //這樣可以設置全部時間

date -s “20080523 01:01:01″ //這樣可以設置全部時間

顯示時間

date +%Y%m%d         //顯示現在天年月日

date +%Y%m%d --date="+1 day"  //顯示後一天的日期

date +%Y%m%d --date="-1 day"  //顯示前一天的日期

date +%Y%m%d --date="-1 month"  //顯示上一月的日期

date +%Y%m%d --date="+1 month"  //顯示下一月的日期

date +%Y%m%d --date="-1 year"  //顯示前一年的日期

date +%Y%m%d --date="+1 year"  //顯示下一年的日期


hwclock 查詢設置硬件時鐘,clock 是hwclock的鏈接文件

    spacer.gifwKioL1bS-FfALVqvAAAMvXtPLyw417.png

        -r|--show     查看硬件時間

        -s|--hctosys    硬件時間同步到系統時間

        -w|--systohc    系統時間同步到硬件時間

        --adjust:hwclock每次更改硬件時鐘時,都會記錄在/etc/adjtime文件中。使用--adjust參數,可使hwclock根據先前的記錄來估算硬件時鐘的偏差,並用來校正目前的硬件時鐘

        --debug:顯示hwclock執行時詳細的信息

        --directisa:hwclock預設從/dev/rtc設備來存取硬件時鐘。若無法存取時,可用此參數直接以I/O指令來存取硬件時鐘

        --hctosys:將系統時鐘調整爲與目前的硬件時鐘一致

        --set --date=<日期與時間>:設定硬件時鐘

        --show:顯示硬件時鐘的時間與日期

        --test:僅測試程序,而不會實際更改硬件時鐘

        --utc:若要使用格林威治時間,請加入此參數,hwclock會執行轉換的工作


echo    顯示一段文字,默認自動打印換行符

        -n    不要再結尾自動打印換行符

        -e    啓用 \

\\    打印反斜槓本身

\a    發出警告聲

\b    刪除前一個字符

\c    最後不加換行符號

\f    換行但光標仍然停留在原來的位置

\n    換行切光標移至行首

\r    光標移至行首,但不換行

\t    插入tab


printf 格式化輸出



目錄管理命令


mkdir:創建空目錄

-p    遞歸創建目錄

-v    詳細顯示信息

-m|--mode=MODE    創建目錄是設定權限

-Z    創建目錄時設SELinux 安全上下文的CTX

mkdir /x/y/{a/c,b} 自動展開

   {a,b}_{c,d}(展開分別爲a_c,a_d,b_c,b_d)    


tree:查看目錄樹

  -a   顯示所有文件和目錄。

  -A   使用ASNI繪圖字符顯示樹狀圖而非以ASCII字符組合。

  -C   在文件和目錄清單加上色彩,便於區分各種類型。

  -d   顯示目錄名稱而非內容。

  -D   列出文件或目錄的更改時間。

  -f   在每個文件或目錄之前,顯示完整的相對路徑名稱。

  -F   在執行文件,目錄,Socket,符號連接,管道名稱名稱,各自加上"*","/","=","@","|"號。

  -g   列出文件或目錄的所屬羣組名稱,沒有對應的名稱時,則顯示羣組識別碼。

  -i   不以階梯狀列出文件或目錄名稱。

  -I<範本樣式>   不顯示符合範本樣式的文件或目錄名稱。

  -l   如遇到性質爲符號連接的目錄,直接列出該連接所指向的原始目錄。

  -n   不在文件和目錄清單加上色彩。

  -N   直接列出文件和目錄名稱,包括控制字符。

  -p   列出權限標示。

  -P<範本樣式>   只顯示符合範本樣式的文件或目錄名稱。

  -q   用"?"號取代控制字符,列出文件和目錄名稱。

  -s   列出文件或目錄大小。

  -t   用文件和目錄的更改時間排序。

  -u   列出文件或目錄的擁有者名稱,沒有對應的名稱時,則顯示用戶識別碼。

  -x   將範圍侷限在現行的文件系統中,若指定目錄下的某些子目錄,其存放於另一個文件系統上,則將該子目錄予以排除在尋找範圍外。     


  rmdir:刪除空目錄

            -p    遞歸刪除空目錄     


touch:改變文件時間戳

-a    只改變訪問時間

-c    如果文件不存在,則不建立文件

-d|--date=STRING    使用指定的日期時間,而非現在的時間   如"2004-02-29 16:21:42" 

-m|--time=TIME    只改變變動時間

-r    把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期相同

-t    使用指定的日期時間,而非現在的時間 [[CC]YY]MMDDhhmm[.ss]

-h    會影響符號鏈接本身,而非符號鏈接所指示的目的地(當系統支持更改符號鏈接的所有者時,此選項纔有用) 


stat:查看文件或目錄的詳細信息

-L    如果是鏈接文件,則獲取源文件信息

-Z    顯示SELinux安全上下文信息

-f    顯示文件所在的文件系統狀態

-t|--terse    以簡潔的形式打印輸出信息(在沒有改變輸出格式的情況下):如下圖第一幅圖片

spacer.gifwKiom1bS-CKin1CHAAALbeF1LNo127.png

-c|--format=FORMAT    自定義輸入格式,結尾有換行

    --printf=FORMAT    自定義輸入格式,結尾無換行,需手動添加

可選的文件信息輸出格式

  %a   Access rights in octal 八進制格式的文件訪問權限  

  %A   Access rights in human readable form 可讀形式訪問權限(ls -l情況下顯示的樣子)

  %b   Number of blocks allocated (see %B)  分配的塊數(單位參照%B的數值)

  %B   The size in bytes of each block reported by %b  

          每個塊的大小(這個值是指硬盤上存儲單元塊的大小,與格式化的block塊大小不同)

  %d   Device number in decimal  設備號(10進制)

  %D   Device number in hex 設備號(十六進制)

  %f   Raw mode in hex raw模式(十六進制,可以百度一下raw的意思)

  %F   File type 文件類型

  %g   Group ID of owner 文件所有者的組ID

  %G   Group name of owner 文件所有者的組名

  %h   Number of hard links    硬鏈接的數量(文件本身算1個)

  %i   Inode number  inode號

  %n   File name  文件名

  %N   Quoted file name with dereference if symbolic link

         取消軟連接的文件名引用,變成普通字符串

  %o   I/O block size   系統格式化block的大小

  %s   Total size, in bytes   文件大小(單位byte)

  %t   Major device type in hex 主要設備類型(十六進制)

  %T   Minor device type in hex 次要設備類型(十六進制)

  %u   User ID of owner  所有者的用戶ID

  %U   User name of owner 所有者的用戶名

  %x   Time of last access 最後訪問時間

  %X   Time of last access as seconds since Epoch  最後一次訪問時間(大紀元秒)

  %y   Time of last modification 最後修改時間(內容改變)

  %Y   Time of last modification as seconds since Epoch 最後修改時間(內容改變)

  %z   Time of last change 最後改變時間(文件屬性,權限所有者等,格式大紀元秒)

  %Z   Time of last change as seconds since Epoch

         最後改變時間(文件屬性,權限所有者等,格式大紀元秒)

stat -c "%a %A %b %B %d %D %f %F %g %G %h %i %n %N %o %s %t %T %u %U %x %X %y %Y %z %Z" file

可選的分區信息輸出格式

  %a   Free blocks available to non-superuser 普通用戶可用的block數量      

  %b   Total data blocks in file system 分區的總數據塊數量      

  %c   Total file nodes in file system 文件系統的inode總數      

  %d   Free file nodes in file system 空閒inode數量      

  %f   Free blocks in file system 可用的block數量      

  %C   Security context in SELinux selinux 安全上下文      

  %i   File System ID in hex  分區ID(十六進制)  

  %l   Maximum length of filenames 分區文件名最大長度      

  %n   File name  文件名      

  %s   Block size (for faster transfers) 塊大小(都是系統block的大小)

  %S   Fundamental block size (for block counts) 基本塊大小(都是系統block的大小)

  %t   Type in hex 文件系統類型(格式化的類型,十六進制)

  %T   Type in human readable form 文件系統類型(格式化的類型,可讀形式)

stat -f -c "%a %b %c %d %f %C %i %l %n %s %S %t %T" file

spacer.gifwKioL1bS-MvyoJt5AACdrPkmEEI514.png


cp:複製文件和目錄,可以同時複製多個文件到一個目錄中

-a, --archive   等於-dR --preserve=all  歸檔複製,常用於備份

--attributes-only   僅複製屬性而不復制數據 --backup[=CONTROL 爲每個已存在的目標文件創建備份  

-b 類似--backup   但不接受參數  

--copy-contents   在遞歸處理是複製特殊文件內容  

-d   等於--no-dereference --preserve=links  

-f, --force   如果目標文件無法打開則將其移除並重試(當 -n 選項存在時則不需再選此項)   

-i, --interactive   覆蓋前詢問(使前面的 -n 選項失效)  

-H   跟隨源文件中的命令行符號鏈接  

-l | --link   創建文件硬鏈接

-L |--dereference    複製鏈接指向的文件     

-n, --no-clobber   不要覆蓋已存在的文件(使前面的 -i 選項失效)  

-P, --no-dereference   不跟隨源文件中的符號鏈接,保持鏈接   

-p   等於--preserve=模式,所有權,時間戳  

--preserve[=屬性列表 保持指定的屬性(默認:模式,所有權,時間戳),如果可能保持附加屬性:環境、鏈接、xattr 等   

--sno-preserve=屬性列表 不保留指定的文件屬性  

--parents 複製前在目標目錄創建來源文件路徑中的所有目錄  

-R, -r, --recursive   遞歸複製目錄及其子目錄內的所有內容  

--reflink[=WHEN]   控制克隆/CoW 副本。  

--remove-destination   嘗試打開目標文件前先刪除已存在的目的地文件 (相對於 --force 選項)   

--sparse=WHEN   控制創建稀疏文件的方式  

--strip-trailing-slashes   刪除參數中所有源文件/目錄末端的斜槓  

-s, --symbolic-link   只創建符號鏈接而不復制文件  

-S, --suffix=後綴   自行指定備份文件的後綴  

-t, --target-directory=目錄   將所有參數指定的源文件/目錄複製至目標目錄   

-T, --no-target-directory   將目標目錄視作普通文件  

-u, --update   只在源文件比目標文件新,或目標文件不存在時才進行復制   

-v, --verbose   顯示詳細的進行步驟  

-x, --one-file-system   不跨越文件系統進行操作


mv:移動或重命名文件

-b   若需覆蓋文件,則覆蓋前先行備份。

-f   force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;

-i   若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!

-u   若目標文件已經存在,且 source 比較新,纔會更新(update)

-t    --target-directory=DIRECTORY 指定mv的目標目錄,該選項適用於移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在後

-n, --no-clobber   不要覆蓋已存在的文件(使前面的 -i 選項失效)

-S, --suffix=後綴   自行指定備份文件的後綴  

-T, --no-target-directory   將目標目錄視作普通文件 


install:複製文件和設置屬性

--backup[=CONTROL]    爲每個已存在的目的地文件進行備份

-b    類似 --backup,但不接受任何參數

-d,--directory    所有參數都作爲目錄處理,而且會創建指定目錄的所有目錄。

-D    創建<目的地>前的所有主目錄,然後將<來源>複製至 <目的地>;在第一種使用格式中有用

-g,--group=組    自行設定所屬組,而不是進程目前的所屬組

-m,--mode=模    自行設定權限模式 (像chmod),而不是rwxr-xr-x

-o,--owner=所有者    自行設定所有者 (只適用於超級用戶)

-p,--preserve-timestamps    以<來源>文件的訪問/修改時間作爲相應的目的地文件的時間屬性

-s,--strip    用strip命令刪除symbol table,只適用於第一及第二種使用格式

-S,--suffix=後綴    自行指定備份文件的<後綴>

文本處理命令


cat:連接並顯示多個文件

-n    顯示時輸出行號

-e    等價於-vE

-E    在每行結束處顯示$

-A    --show-all    等價於 -vET

-b    --number-noblank    對非空輸出行編號

-s    --squeeze-blank    有連續兩行以上的空吧航,就代換爲一行的空白行

-t    等價於-vT

-T    --show-tabs    將跳格字符顯示爲 ^I

-v    --show--nonprinting    使用  ^ 和 M- 引用,除了LFD和TAB之外

在文本模式下使用shift+pageup|pagedown進行上下翻頁(Linux有額定的緩存大小,只能緩存一定的 幾屏)


tac:逆序顯示文本

-b, --before                  在行前而非行尾添加分隔標誌

-r, --regex                   將分隔標誌視作正則表達式來解析

-s, --separator=字符串        使用指定字符串代替換行作爲分隔標誌


more    分屏顯示,只能向下滾動

less        分屏顯示,可以上下滾動


head:查看文件的前NUM行,默認10行

-c     --bytes=[-]K    顯示前多少字節數,默認單位爲K,還可加上單位,默認是字節。1(byte) 、1k(1KB)、1m(1MB),可以爲負數,意思爲不打印最後的多少字節

-n     --lines=[-]    顯示前多少行,可以爲負數,意思爲不打印最後的多少行

-q     --quiet    --silent     獲取多個文件的時候不顯示文件名稱頭部

-v     獲取多個文件的內容是顯示文件名稱頭部,也是默認選項


tail:顯示文件最後多少行

-c    --bytes=[-]K    打印最後多少字節,默認單位爲K,+NUM表示從多少字節開始顯示文件

-n    --lines=[ ]    打印最後多少行,默認10行,+NUM表示從多少行開始顯示

-q     --quiet    --silent     獲取多個文件的時候不顯示文件名稱頭部

-v     獲取多個文件的內容是顯示文件名稱頭部,也是默認選項

-f     循環讀取

--pid=PID     與-f合用,表示在進程ID,PID死掉之後結束


cut:文本剪切

-d    指定字段分隔符,默認是一個空格

-f    指定要顯示的字段,表示方法:-f 1,3 1-3


join:合併文本


sort:對顯示的數據進行排序,默認根據ASCII升序

-n:根據數值大小降序

 -r:逆序

 -t:指定字段分隔符

 -k #:指定以哪個字段進行排序

 -u:排序後相同的行只顯示一次

 -f:忽略字符大小寫


uniq:報告相同行,相同且相鄰 爲重複

 -d    只顯示重複的行

 -D    顯示所有重複的行

 -c    顯示行重複的次數

wc:文本統計,空白鍵 也是字符,顯示的三個數分別是行數、單詞數、字節數

-l    共多少行

-w    共多少單詞

-c    共多少字節

-L    最長的一行共多少個字節    


tr:轉換或刪除字符

tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
-c 用字符串1中字符集的補集替換此字符集,要求字符集爲ASCII。
-d 刪除字符串1中所有輸入字符。
-s 刪除所有重複出現字符序列,只保留第一個;即將重複出現字符串壓縮爲一個字符串。
input-file是轉換文件名。雖然可以使用其他格式輸入,但這種格式最常用。
指定字符串1或字符串2的內容時,只能使用單字符或字符串範圍或列表。
[a-z] a-z內的字符組成的字符串。
[A-Z] A-Z內的字符組成的字符串。
[0-9] 數字串。
\octal 一個三位的八進制數,對應有效的ASCII字符。
[O*n] 表示字符O重複出現指定次數n。因此[O*2]匹配OO的字符串。
tr中特定控制字符的不同表達方式
速記符含義八進制方式
\a Ctrl-G
 鈴聲\007
\b Ctrl-H  退格符\010
\f Ctrl-L  走行換頁\014
\n Ctrl-J  新行\012
\r Ctrl-M  回車\015
\t Ctrl-I  tab鍵\011
\v Ctrl-X  \030






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章