Linux基礎篇之五基礎命令 ---- 1


本文主要介紹處理目錄的常用命令,並且對每個命令及參數一一舉例說明


處理目錄的常見命令有:


·ls    list,列出指定目錄下的內容

·cd    Change Directory,更改目錄

·pwd    Print Working Directory,查看當前工作目錄的完整的絕對路徑

·mkdir   Make Directory,創建空目錄

·rmdir   Remove Directory,移除空目錄

·cp     Copy,複製;遵從一個文件到另一個文件,多個文件到一個目錄的原則

·rm    Remove,移除文件和目錄



·ls命令:

 在Linux系統中,ls是很常用的命令,也是最基本的命令。缺省情況下ls打印出指定目錄下的文件和目錄的清單。而 且還可以顯示文件和目錄的權限,用戶、組、日期、時間等信息。

    例如:

    wKioL1e8SN_w0lnKAAEWzdSduwI264.jpg


命令格式

# ls [-aAdfFhilnrRSt] 目錄名稱

# ls [--color={never,auto,always}] 目錄名稱

# ls [--full-time] 目錄名稱  

   

常用參數:

-a:顯示所有文件和目錄,包括隱藏文件、目錄、.和..(常用)

    例如:

    wKiom1e8UOKzl-jxAACi338Nho4902.jpg

-A:顯示除.和..這兩個目錄的所有文件和目錄

    例如:

    wKiom1e8UTayo6ArAACisugEE0c659.jpg

-d:僅列出目錄本身,不列出此目錄內的文件和目錄等數據(常用)

    例如:

    wKiom1e8UWegI9JyAAAjGGIRn7c441.jpg

-f:直接列出目錄內所有數據,不進行排序(ls預設以文件名排序)

-F:根據文件和目錄等信息,給予附加數據結構;其中,*:代表可執行文件;/:代表目錄;=:代表socket文件;|:代表FIFO文件

    例如:

    wKiom1e8UnHD8urbAABzq-nEAHY699.jpg

-h:將文件和目錄的容量以易讀的方式(例如:GB,MB,KB等)列出,通常與 -l 配合使用

    例如:

    wKioL1e8UuPyC9mAAACIb-BRG2Q465.jpg

-i:列出inode號碼

-l:長數據串列出,包括權限,用戶、組、日期、時間等信息

    例如:

    wKioL1e8SN_w0lnKAAEWzdSduwI264.jpg

-n:列出UID和GID,非用戶名和組名

    例如:

    wKiom1e8VCewXNJ5AAB9Tu56-1w622.jpg

-r將排序結果反向輸出

    例如:

wKioL1e8SN_w0lnKAAEWzdSduwI264.jpg wKioL1e8VRPj_km4AAEjawGgVg8674.jpg

-R:列出連同子目錄內容所有內容,即該目錄下的所有文件全部列出

    例如:

    wKiom1e8VeDxqNb8AAGPbgYt7ZQ723.jpg

-S:以文件容量大小排序,而不是以文件名排序

    例如:

    wKioL1e8VoSQVTLlAAJMcPMgc-s906.jpg

-t:以時間排序,而不是以文件名排序

    例如:

    wKioL1e8Vu_AaPamAAIidFOhWE0055.jpg

--color=never:不根據文件特性給予顏色顯示

--color=always:顯示顏色

--color=auto:讓系統自行根據設定來判斷是否給予顏色顯示

--full-time:以完整時間模式輸出(年、月、日、時、分)

--time={atime,ctime}:輸出access時間或改變權限屬性時間(ctime),而非內容變更時間(modification time)



·cd命令:

 cd命令在linux中是最基本、最常見、也是必須要掌握的命令,因爲其他命令語句的操作以及目錄替換都是建立在cd命令的基礎上,所以掌握好cd命令的使用技巧對於一名運維人員裏說是非常重要的。

    例如:

    wKiom1e8YJDBVDVdAABzm950sL0618.jpg


功能特性:

切換當前目錄至指定目錄


命令格式:

# cd [/PATH/TO/SOMEDIR]


常用範例:

# cd,cd ~:切換至當前用戶的家目錄

    例如:

    wKiom1e8Y6uz2wUCAADMgLS_DjA222.jpg


# cd /:切換至根目錄

    例如:

    wKiom1e8ZA3jDlERAABqu2gNNck419.jpg


# cd ..:切換至當前目錄的上一級目錄

    例如:

    wKiom1e8Z57g7WrGAACRc8RE3EY420.jpg


# cd ~USERNAME:切換指定用戶的家目錄

    例如:

    wKioL1e8aEyCaBq6AAA7mt7Je8Y937.jpg


# cd -:在上一次目錄與當前目錄之前來回切換的命令

    例如:

    wKiom1e8aSrxSYE8AACnOLPL8us992.jpg


# cd !$:將上一個cd命令的參數作爲本次cd命令的參數使用

    例如:

    wKioL1e8a8ixUja3AABllJHeVSs198.jpg




·pwd命令:

 pwd命令用來查看當前工作目錄的完整的絕對路徑。如果不清楚當前終端所處的工作目錄時,可使用此命令來了解詳細的路徑位置。


功能特性:

查看當前目錄的完整路徑


命令格式:

# pwd [OPTION]...


常用參數:

一般情況下不帶任何參數,除非查看鏈接文件的實際路徑時,加選項 -P


常用範例:

    範例一:查看當前目錄的完整路徑

    wKiom1e9rHqxVVRRAABRHrlwGIA247.jpg

    

    範例二:顯示實際工作目錄,而非鏈接文件本身的目錄名

    wKioL1e9rWrQQf9NAABtOE-Owe0145.jpg

    我們列出/etc/ec0.d看看是什麼文件類型,見下圖。它是一個鏈接文件,原始路徑爲/etc/rc.d/rc0.d

    wKioL1e9rg_Cw6A3AABjTIud35o579.jpg

    所以,加上-P選項就會顯示鏈接文件目錄的原始路徑,而並非鏈接本身的路徑

    

    範例三:當我們使用命令 /bin/pwd 時,鏈接文件顯示的反而是原始路徑,跟範例二是相反的;如果是

        加上-P ,同樣顯示原始路徑;加上-L,則顯示鏈接文件的路徑

    wKiom1e9sGjSnlABAAB-6ylu7hc334.jpg

    

    



·mkdir命令:

  mkdir命令用來創建指定名稱單個或多個空目錄,並且用戶對此目錄具有寫權限。

    例1:創建一個空目錄

    wKiom1e9tNqRvwlcAABN_CduzTw125.jpg   

    例2:在/tmp/test目錄下創建多個子目錄

    wKioL1e9tnCi8aQOAACg8_8QxCI672.jpg   


功能特性:

創建空目錄


命令格式:

# mkdir [-mpv] 目錄名稱


常用參數:    

-m:配置文件的權限,直接設定,無視預設權限umask

    例如:在/tmp 目錄下創建一個test1目錄和指定一個777權限的test2的目錄

    wKiom1e9t2bxABYlAACp0SERkv8064.jpg    

    說明:如果不加-m參數,創建的test1目錄默認的權限爲755(rwxr-xr-x),而加了-m 777參數後,權限爲

    777(rwxrwxrwx)   


-p:創建的目錄如果不存在,則會直接將所需要的目錄逐一遞歸創建。這個選項不建議常用,避免錯字多無用目錄。

    例如:

    wKioL1e9tnCi8aQOAACg8_8QxCI672.jpg

-v:顯示詳細的創建目錄時的信息

    例如:在/tmp 目錄下創建 /test4/test5/test6/test7

    wKioL1e9uNKhujdeAADUuAT55rg805.jpg


如果我們需要批量創建目錄,且路徑不盡相同,那麼該如何創建呢?一個一個命令的去敲當然可以,但是這樣就顯得非常繁瑣且效率不高,那麼我們應該採用什麼方式能夠用一條命令就創建呢?

這裏就需要用掉命令行的展開 {}。

{}:可以承載一個以逗號分隔的路徑列表,並能夠將其展開爲多個路徑

    例1:在/tmp 目錄下創建一個名爲 x 的目錄,x目錄下創建y1、y2目錄,y1目錄下創建a、b目錄

    命令:# mkdir -pv /tmp/x/{y1/{a,b},y2}

    wKioL1e9waqTCANNAADVO39Fdcc525.jpg

    

    例2:在/tmp 目錄下創建a_c,a_d,b_c,b_d目錄

    命令:# mkdir -v /tmp/{a,b}_{c,d}

    wKiom1e9wuLAyYQLAACv37CkI9w412.jpg

    

    例3:在/tmp 目錄下創建一個目錄mytest,在mytest目錄下創建

    /bin

    /sbin

    /etc

    /etc/sysconfg

    /etc/sysconfg/network-scripts

    /usr

    /usr/bin

    /usr/sbin

    /usr/local

    /usr/local/bin

    /usr/local/sbin

    /usr/local/etc

    /usr/local/lib

    /usr/lib

    /usr/lib64

    /var

    /var/cache

    /var/log

    /var/run

    命令:mkdir -pv /tmp/mysysroot/{bin,sbin,etc/sysconfg/network-scripts,usr/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}

    wKioL1e9xXmixkFUAAPbheGa1R0182.jpg

    wKioL1e9xcrxqC7VAADGCvWrHv0259.jpg





·rmdir命令:

  rmdir命令也是linux中最基本的命令。該命令的主要用來刪除空目錄,刪除之前用戶必須具有父目錄的寫權限


功能特性:

從一個目錄中刪除單個或多個子空目錄項


命令格式:

# rmdir [-p] 目錄名稱


常用參數:

-p:遞歸刪除空目錄。當子目錄刪除後其父目錄如果爲空則一併刪除

-v:顯示命令的執行過程

    例如:

    wKioL1e-656gygmNAADdjWaavmU936.jpg

    注意:rmdir命令僅能刪除空目錄,如果目錄裏存在文件,則無法用rmdir命令刪除之




·cp命令:

  cp,copy,複製,此命令是linux系統中需要熟練掌握的命令。遵從一個文件到另一個文件,多個文件到一個目錄的原則


功能特性:

將源文件複製至目標文件,或將多個源文件複製至目標目錄


命令格式:

# cp [-adfilprsu] 源文件(source) 目標文件(destination)

# cp [option] source1 source2 source3 ... 目錄

    例如:

    wKiom1fAShTxzRPqAAEj3BLPaoI836.jpg


常用參數:

-a:相當於-pdr的意思,至於pdr請參考以下參數說明(常用)

    例如:

    wKioL1e_CWPh7HerAAC9CTwEkUg979.jpg


-f:force,爲強制的意思,若目標文件已經存在且無法開啓,則移除後再嘗試一次


-i:若目標文件(destination)已經存在時,在覆蓋時會提醒用戶是否需要覆蓋(常用)

    例1:以root用戶,將家目錄下的.bashrc複製到/tmp下,並更名爲bashrc,操作兩次,第二次加-i選項

    wKioL1e_BJuzBNUTAACFPd48nRM142.jpg

    注意:加上-i之後,詢問用戶是否覆蓋,y爲覆蓋,n爲不覆蓋

    

    例2:複製/var/log/wtmp至/tmp目錄下,並對比wtmp文件的屬性

    wKioL1e_B_Dia-mhAACy-lnnxqs741.jpg

    注意:在不加任何選項的情況下,文件的部分屬性、時間、權限會改變;這個特性很重要。如果要將源文件

    的所有屬性一起復制過來就加 -a 選項,如:

    wKioL1e_CWPh7HerAAC9CTwEkUg979.jpg


-p:連同檔案的屬性一起復制過去,而非使用默認屬性(備份常用)

    例如:

    wKiom1fARQ6B81cJAAFx6UfmmhQ108.jpg


-r:遞歸持續複製,用於目錄的複製行爲(常用)

    例如:將/etc/ 目錄下的所有內容複製到/tmp下

    wKiom1e_Cj-y5LYNAABur-yXfJ8006.jpg

    注意:-r可以遞歸複製文件和目錄,但是文件和目錄的權限等屬性會改變,所以,也可以利用 -a 選項


-l:進行硬式鏈接文件的建立,而非複製文件本身。

-s:複製成爲符號鏈接文件,相當於windows中的快捷方式

    例如:

    wKiom1fAQ33BDslqAAEHC3NSAtk466.jpg


-d:若來源文件爲鏈接文件,則複製鏈接文件的屬性而非文件本身;若未加此選項,則複製的是源文件

    例如:

    wKioL1fAR1KgN0K_AAEs6VF8Ax0103.jpg


-u:若目標文件(destination)比源文件(source)舊才更新目標文件(備份常用)

    例如:若~/.bashrc 比 /tmp/bashrc新才複製過來,即源文件和目標文件有差異時才複製

    wKiom1fARd7zMS8MAAAtUzlG7ME230.jpg    



注意1:若源文件有兩個以上,則最後一個目的文件一定要是目錄纔可以

注意2:cp命令如果未帶任何參數,則只能複製文件,而不能複製目錄






·rm命令:

 rm命令是linux中常用命令。此命令可以刪除指定目錄下的單個或多個文件、目錄。對於鏈接文件,只刪除鏈接文件本身,而不會刪除鏈接文件的源文件。


功能特性:

刪除指定目錄下的單個或多個文件和目錄,如果未加-r,則可刪文件而不能刪除目錄。


命令格式:

# rm [-firv] 文件或目錄


常用參數:

-f:force;忽略不存在的文件,不會出現警告信息提醒用戶

    例如:

    wKioL1e-9s6xBkmqAABkqG6bxZY683.jpg


-i:交互式刪除,在刪除前會詢問用戶是否刪除

    例如:

    wKioL1e-8biyuBGqAACZFdCMfPQ473.jpg    


-r:遞歸刪除,將目錄和子目錄包括文件等全部刪除,這是非常危險的操作。

    例如:刪除/tmp目錄下的sysconfig目錄

    wKioL1e-9DPiCqLbAAGape_5rAc933.jpg

    mkdir命令無法刪除dirname目錄,因爲此目錄非空

    root用戶下預設了"rm -i"的別名爲rm,所有需要一直按y刪除,這是一種保護動作。

    如果不想按y,則可以加一個\,但是則個是危險操作,要慎重使用

    wKioL1e-9abSQ9vCAAC1fe4DNMA619.jpg    

    注意:如果將加上-f選項,同樣不會提示是否刪除,這也是一個非常危險的操作。

    如 # rm -rm /* ,如果使用這個命令刪除,那麼你的系統基本上就報銷了,所以此命令使用時一定要慎重


擴展使用rm命令

1、如果要批量刪除某個字段開頭的文件,可使用通配符 * ,* 代表任意字符

    例如:刪除/tmp 目錄下a打頭的文件

    wKioL1e--AGwF5SVAAC-6nRnhkc884.jpg


2、刪除相同後綴名文件,可與通配符 [] 來配合

    例如:刪除/tmp 目錄下的 1.log, 2.log, 3.log 這三個文件

    wKiom1e--1SBMAYLAADSLAbxTbc148.jpg   


3、如果是特殊字符如 - 開頭的文件,要用特殊方式來進行刪除操作

    例如:刪除/tmp 目錄下 以 -f 打頭的文件

    wKiom1e--VuRip4CAAFZIzP-4Rc658.jpg

    注意:用命令 # touch --ff- 無法創建,因爲系統認爲 --ff-是一個參數。所以需要加上 "./ " ," . " 

    代表的是當前目錄。同理,刪除--ff-文件時,也需要在前面加上"./ " 



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