Linux基礎命令與bash基礎特性
- Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
Linux系統在命令行界面,是通過命令來完成對文件的管理的,當然文件系統里有目錄也有文件,我們今天就來說說其命令及用法。
與目錄相關的命令:
ls 這個命令很特殊,應用于目錄,文件都可以。即列出目錄內容。
選項:-l:詳細列出文件屬性,包括文件類型,權限,屬主屬組,創建時間等。
-a:列出指定目錄里的全部文件,包括隱藏文件,于-l可配合使用。
-A:顯示除.,..以外的所有文件。
-h:顯示文件大小,以KB為單位,默認是字節。
-d:查看目錄自身,而非目錄里的文件內容。
-R:遞歸顯示文件,以英文字母順序排序。
-r:逆序顯示。以上選項均可配合使用,如圖。
mkdir,rmdir 創建目錄,移除空目錄
mkdir 創建目錄其可使用絕對路徑和相對路徑,但路徑必須存在,否則會報錯。
如果想創建層級目錄,用相對路徑,可加選項,-p,顯示其創建過程,-v,一般配合使用,-p會按從左至右順序依次創建其要創建的目錄的父目錄。
mkdir -m 可在創建時指定權限。
rmdir 刪除空目錄,如不是空目錄,則有報錯。
所以,rmdir用于刪除空目錄,如不是空的,則需要以此刪除,當然也有rm命令,這里先不做說明。rmdir也支持-p,-v選項,而-p選項也只是針對要刪除目錄的父目錄里沒有其他文件,刪除之后也為空,可依層級刪除。
與文件相關的命令:
touch(創建空文本文件,也可用于改變文件的時間戳),stat,cat,tac,more,less,head,tail(文本查看類命令)
cp,mv,rm(文件管理類命令)
這里對于文本文件查看類命令,不做過多解釋,主要詳解文件管理類命令。
touch 創建空文件,stat 顯示文件或文件系統狀態,cat 查看文本內容,tac 逆序查看文本內容,more,less 均為查看內容較多的文本文件,可實現翻屏,more翻屏結束后自動退出,不能向前翻,less可前后翻屏查看,類似于man的用法,head 查看文本文件首部,默認是前10行,可加選項 -n # 為查看前幾行,tail 查看文本文件尾部,默認后10行,與head用法一樣。
cp copy 復制文件的數據 (數據,元數據)
單源復制:如果目標不存在,則事先創建文件,并復制源文件的數據流至目標文件中;如果目標存在,其非目錄文件,則覆蓋目標文件,如果目標存在其為目錄文件,則先在目標目錄下創建一個同文件名的文件,并復制源文件的數據流至文件中。
多源復制:如果目標不存在,則錯誤不復制;如果目標存在,其為非目錄文件,則錯誤不復制,如果目標存在其為目錄文件,分別復制每個文件至目錄中,并保持原名。
cp 選項 源文件 目標文件或多個源文件 目標目錄
選項:-i 交互式復制,有詢問的,因為管理員權限太大,故系統有cp的別名,cp=cp -i,覆蓋掉要復制的內容是有詢問的,如圖。
cp -f:強制覆蓋目標文件,不論目標文件或目錄已存在
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理
-d:當復制符號鏈接時,把目標文件或目錄也建立為符號鏈接,并指向與源文件或目錄連接的原始文件或目錄
-p:保留源文件或目錄的屬性
-a:其效果與-dpr效果一樣
mv 移動并重命名文件
-i:交互式操作
-f:強制覆蓋目標文件或目錄,這必須是與源文件或目錄重復的情況下
rm 刪除文件或目錄
-i:刪除已有文件或目錄之前,與用戶進行交互,詢問
-f:強制刪除文件或目錄
-r:遞歸處理,將目標文件或目錄下的所有文件或子目錄一并處理
所以,rm命令很重要,也很危險,尤其是rm -rf / 這個命令請慎重使用。如在/下有不用的文件,可轉移至專有的文件夾下,類似于windows的回收站。
- bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
Bash工作特性之命令執行狀態返回值,其命令行界面下,執行命令有正確結果,和錯誤結果,Linux系統,無報錯信息即最好的信息,就是執行正確,有報錯信息就是執行錯誤的命令或格式不對,或參數不對等原因,但這些都是命令執行結果,其bash中也定義了有命令執行狀態返回值,正確為0,錯誤為1-255之間,其執行狀態返回值保存在bash的特殊變量中,$?,查看用echo $?,如圖。
ls查看當前目錄下的文件,顯示其正確結果,當然命令是正確的,echo $? 其返回值為0,如命令錯誤,狀態為告訴你,bash里沒發現此命令,返回值為127,如參數不對,/etc下沒有aa這個文件,返回值為2。
Bash命令行也支持命令行展開等功能,這里介紹~,{ },兩種。
~:自動展開為用戶的家目錄,或指定用戶的家目錄
{ }:可承載一個以逗號為分隔的路徑列表,并能夠將其展開為多個路徑。
可用tree命令來查看其展開的層級結構。如圖所示。
我們創建了一個用戶tom,切換到tom登錄,顯示當前在root目錄下,cd ~,就到了tom自己的家目錄下,實際上~就是個命令行展開模式,~=/home/tom。
創建目錄ab,ac,a_b,a_c,d_a,a_c,重復部分可以用嵌套花括號的方式展開完成。
命令行展開模式,也就是簡化了我們的工作內容。
- 請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
(2)、創建/tmp/mylinux目錄下的:
mylinux/
├── bin
├── boot
│?? └── grub
├── dev
├── etc
│?? ├── rc.d
│?? │?? └── init.d
│?? └── sysconfig
│?? └── network-scripts
├── lib
│?? └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│?? └── local
│?? ├── bin
│?? └── sbin
└── var
├── lock
├── log
└── run
完成命令。
1:mkdir /tmp/{a_{c,d},b_{c,d}}。
2:mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/98846
命令執行過程 演示的很不錯。不過建議命令的演示圖片可以換成命令行編輯器貼上來 格式會更清晰。
@馬哥教育:嗯,好的,下回注意,主要是為了讓我自己看演示效果,哈哈!