一、Linux 文件管理類命令
cd、pwd、mkdir、rmdir、ls、cp、rm、mv、cat、tac、more、less、head、tail、touch
1、目錄類相關命令
cd:change directory 切換目錄
pwd:print work directory 顯示當前目錄
mkdir:make directories 新建目錄
rmdir:刪除目錄
絕對路徑與相對路徑
絕對路徑:路徑的寫法一定是由根目錄/寫起,列如/usr/share/doc
相對路徑:路徑的寫法不是由根/目錄寫起,如:/usr/share/doc 要到/usr/share/man 可以寫成 cd../man
(1)cd:
用來切換工作目錄至dirname。其中dirname可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的家目錄 home directory。"~"表示為家home directory 的意思;"." 表示當前目錄;".."表示目錄的上一層目錄。
用法:cd [options] [參數] 絕對路徑或相對路徑
(2)pwd:
pwd命令以絕對路徑的方式顯示用戶當前工作目錄。命令將當前目錄的全部路徑名稱(從根目錄)寫入標準輸出。全部目錄使用/分隔。第一個/表示根目錄。最后一個目錄是當前目錄。
(3)mkdir
mkdir命令用來創建目錄,在創建目錄時,應保證新建的目錄與它所在目錄下的文件沒有重名。
用法:mkdir [選項] [參數]
-m –mode <目標屬性> 建立目錄的同時設置目錄的權限
-p –parents 若所要創建的目錄上層目錄不存在時,則會一并建立上層目錄。
(4)rmdir:
rmdir命令刪除空目錄
-p –parents 連同上層“空目錄”目錄也一起刪除
–ignore-fail-on-non-empty 忽略由于刪除空目錄時導致的錯誤信息
-v –verbose 顯示命令的詳細執行過程
2、文件與目錄管理
ls:查看文件與目錄
cp:復制文件或目錄
rm:刪除文件或目錄
mv:移動文件或目錄
(1)ls
顯示文件
用法:ls [OPTION]… [FILE]…
-a 顯示全部文件,包括隱藏文件
-A 顯示全部文件,不包括隱藏文件(.和..)
-d 僅列出目錄本身,而不是列出目錄內的文件數據
-h 將文件容量以人類易讀的方式列出來
-l 列出長數串,包含文件的屬性與權限
(2)cp:copy
cp命令用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。它可以將單個源文件復制成一個指定文件名的具體的文件或一個已經存在的目錄下。cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數不行是一個已經存在的目錄,否則將會錯誤。
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
-a 相當于"pdr"
-d 若源文件為連接文件的屬性 則復制連接文件的屬性而非文件本身
-f 為強制(force)的意思若目標文件已經存在且無法開啟,則刪除后再嘗試一次
-i 若目標文件(destination)已經存在時,在覆蓋時會先詢問操作的進行
-l 進行硬鏈接的連接文件創建,而非復制文件本身
-p 連同文件屬性本身一起復制,而非使用默認屬性
-r 遞歸復制
-s 復制成為符號鏈接文件
參數:
源文件:制定源文件列表。默認情況下,cp命令不能復制目錄,如果要復制目錄,則必須使用-R選項
目標文件:指定目標文件。當“源文件”為多個文件時,要求“目標文件”為指定的目錄
(3)mv:
mv命令用來對文件或目錄重新命名,或者將文件從一個目錄移動到另一個目錄。source表示源文件或目錄,target表示目標文件或目錄,如果將一個文件移動到一個已經存在的目標文件中,則目標文件的內容將被覆蓋
mv 命令可以用來將源文件移至一個目標文件中,或將一組文件移至目標目錄中,源文件被移動至目標文件有兩種不同結果
1 如果目標文件是到某一目錄文件的路徑,源文件會被移動到此目錄下,且文件名不變
2 如果目標文件不是目錄文件,則源文件名(只能有一個)會變為此目標文件名,并覆蓋已存在的同名文件。如果源文件和目標文件在同一目錄下,mv的作用就是改文件名。當目標文件是目錄文件時,源文件或目錄參數可以有多個,則所有的源文件都會被移至目標文件中,所有移動到該目錄下的文件都將保留以前的文件名。
注意:mv與cp的結果不同,mv好像文件"搬家",文件個數并為增加。而cp對文件進行復制,文件個數增加了。
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
-f force強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋
-i 若目標文件(destination)已經存在時,就會詢問是否覆蓋
-u 若目標文件已經存在,且source比較新,才會更新
(4)rm:
rm命令可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及子目錄均刪除。對于連接文件,只是刪除整個連接文件,而原有文件保持不變
注意:使用rm命令要格外小心,因為一旦刪除了一個文件,就無法再恢復它,所以,在刪除文件之前,最好再看一下文件的內容,確定是否真要刪除,rm命令可以用 -i 選項,這個選項在使用文件擴展名字符刪除多個文件時特別有用,使用這個選項,系統會要求你逐一確定是否要刪除,這時,必須要輸入y并按Enter鍵才能刪除文件。如果僅按Enter鍵或其他字符,文件不會被刪除。
rm [OPTION]… FILE…
-f force的意思,立即刪除,不會出現警告信息
-i 互動刪除,在刪除前詢問用戶是否執行此操作
-r 遞歸刪除,刪除目錄
3.文件內容查看
cat:由第一行開始顯示文件內容
tac:由最后一行開始顯示文件內容
more:一頁一頁的顯示文件類容
less:與more類似,但可以向前翻頁
head:只看頭幾行
tail:只看結尾幾行
touch:修改文件時間或創建新文件
(1)cat
cat命令連接文件并打印到標準輸出設備上,
注意:當文件較大時,文本在屏幕上迅速閃過,用戶往往看不清所顯示的內容,因此,一般用more等命令分屏顯示。為了控制滾屏,可以按Ctrl+S鍵,停止滾屏,按Ctrl+Q鍵可以恢復滾屏,按Ctrl+C鍵可以終止命令執行
cat [OPTION]… [FILE]…
-n 打印行號,連空白行也會顯示行號
-b 列出行號,僅針對非空白行做行號顯示,空白行不標行號
(2)tac 與cat剛好向反
(3)more
more命令是一個基于vi編輯器文本過濾器,它以全屏的方式顯示文本文件內容,支持vi中的關鍵字定位操作 ,內置了若干快捷鍵 Enter(向下翻滾一行)、空格(向下滾動一屏)Q(退出命令)
(4)less
less命令的作用與more十分相似,都可以用來瀏覽文字檔案的內容,但它比more根據有彈性,它可以向前查看文件內容
空格鍵 向下翻動一頁
[PageDown] 向下翻動一頁
[PageUp] 向上翻動一頁
/字符串 向下查詢字符串的功能
?字符串 向上查詢字符串的功能
n 重復前一個查詢(與/或?有關)
N 反向重復前一個查詢(與/或?有關)
(5)head
取出前面幾行
-n # 后面接數字,代表顯示幾行的意思
(6)tail
取出后面幾行
-n # 后面接數字,代表顯示幾行的意思
-f 表示持續檢測后面所接的文件名,要等到按下Ctrl+c才會結束tail的檢測
(7)touch
修改文件時間或創建新文件
任何文件都有三個時間
modification time(atime)
當該文件的“內容數據”更改時,就會更新這個時間,內容數據指的是文件的內容,而不是文件的屬性或權限
status time (ctime)
當文件的“狀態”改變時,就會更新這個時間,像是權限或屬性被更改了,都會更新這個時間
access time(atime)
當“文件的內容被取用”就會更新這個讀取時間,我們使用cat讀取/etc/man.config,就會更新該文件的atime了
-a或 –time=atime 只更改存取時間
-c 不見了任何文件
-d 指定的日期時間,而非現在的時間
-m或 –time=mtime 只更改變動時間
二、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容
1、 命令行展開
~ 自動展開為用戶的家目錄,或者指定用戶的家目錄
{} 可承載一個逗號分隔的路徑列表,并能夠將其展開為多個路徑
列:/tmp/{a,b} 相當于/tmp/a,/tmp/b
2、命令執行狀態結果
bash 通過狀態返回值來輸出此結果
成功:0
失?。?-255
命令執行完成后,其狀態返回值保存于bash的特殊變量$?中
三、命令展示
1、mkdir /tmp/{a,b}_{c,d}
2、mkdir -v -p /tmp/mylinux/{bin,boot/grup,dev,etc/{rc.d/init.d,sysconfig/network-script},lib/modules,lin64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
四、文件的元數據
文件的元數據就是描述數據特性的一些信息:包括 權限、大小、屬主屬組??赏ㄟ^stat命令查看
包括
名稱
塊大小
indoe
權限
最近改動、更改、訪問時間
touch 命令可更改文件的時間戳
-a 只改訪問時間
-m 只改更改時間
-t STAMP [[CC]YY]MMDDhhmm[.ss]
五、定義命令別名
1、使用alias 命令定義命令別名,只對當前shell有效,要想全局有效修改配置文件~/bashrc
alias 新的命令="原命令-選項/參數"
-p 查看當前已經設置的別名
2、使用管道符 | 引用前一個命令的執行結果
六、 顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄?
ls -d /var/l*[0-9]*[[:lower:]]
七、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄?
[root@localhost ~]# ls -d /etc/[0-9]*[^[:digit:]
八、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄?
[root@localhost ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
九、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22?
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# touch tfile-`date +"%Y-%m-%d-%H-%M-%S"`
十、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中?
[root@localhost ~]# cd /tmp
[root@localhost tmp]# mkdir mytest1
[root@localhost tmp]# cd
[root@localhost ~]# cp -a /etc/p*[^0-9] /tmp/mytest1
十一、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中?
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# mkdir mytest2
[root@localhost tmp]# cd
[root@localhost ~]# cp -a /etc/*.d /tmp/mytest2
十二、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中?
[root@localhost ~]# cd /tmp
[root@localhost tmp]# mkdir mytest3
[root@localhost tmp]# cd
[root@localhost ~]# cp -a /etc/[l,m,n]*.conf /tmp/mytest3
原創文章,作者:ttxsjh,如若轉載,請注明出處:http://www.www58058.com/38379
寫的很好,排版還可以在漂亮一點,加油,3大題2小題的答案不對