Linux文件管理類命令相關
1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
1)、查看文件命令:
(1)ls命令:
-
list,列出目錄下的內容
語法:
-
ls [OPTION]… [FILE]…
常用選項:
-
-a: 顯示所有文件,包括隱藏文件;
-
-A:顯示除.和..之外的所有文件;
-
-l: –long, 長格式列表,即顯示文件的詳細屬性信息;
-
-h, –human-readable:對文件大小單位換算;換算后結果可能會非精確值;
-
-d:查看目錄自身而非其內部的文件列表;
-
-r: reverse, 逆序顯示;
-
-R:recursive,遞歸顯示;
(2)cat命令:
-
concatenate,是一個文本文件查看和連接工具。查看一個文件的內容,用cat比較簡單,就是cat 后面直接接文件名。
語法:
-
cat [OPTION]… [FILE]…
常用選項:
-
-n:給顯示的文本行編號;
-
-E: 顯示行結束符$;
-
-b: 對非空輸出行編號;
-
-s:不輸出多行空行;
(3)file命令:
-
查看文件類型;
語法:
*file [FILE]…
常用選項:
-
-c:詳細顯示指令執行過程,便于排錯或分析程序執行的情形;
-
-L:查看對應軟鏈接對應文件的文件類型;
-
-z:嘗試去解讀壓縮文件的內容;
(4)echo命令:
-
回顯,echo的功能是在顯示器上顯示一段文字,一般起到一個提示的作用;
語法:
-
echo [SHORT-OPTION]… [STRING]…
常用選項:
-
-n: 不進行換行;
-
-e:讓轉義符生效;\n:換行\t:制表符
注意:
-
TRING可以使用引號,單引號和雙引號均可用; a,單引號:強引用,變量引用不執行替換;b,雙引號:弱引用,變量引用會被替換;
-
變量引用的正規符號: ${name}
(5)which命令:
-
命令用于查找文件
語法:
-
which [文件…]
常用選項:
-
-n<文件名長度>:指定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名;
-
-p<文件名長度>:與-n參數相同,但此處的<文件名長度>包括了文件的路徑;
(6)whereis命令:
-
whereis命令只能用于程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。 和find相比,whereis查找的速度非??欤@是因為linux系統會將 系統內的所有文件都記錄在一個數據庫文件中,當使用whereis和下面即將介紹的locate時,會從數據庫中查找數據,而不是像find命令那樣,通 過遍歷硬盤來查找,效率自然會很高。
語法:
-
whereis [-bfmsu][-B <目錄>…][-M <目錄>…][-S <目錄>…][文件…]
常用選項:
-
-b:只查找二進制文件;
-
-B<目錄>:只在設置的目錄下查找二進制文件;
-
-f:不顯示文件名前的路徑名稱;
-
-m:只查找說明文件;
-
-M<目錄> 只在設置的目錄下查找說明文件;
-
-s:只查找原始代碼文件;
-
-S<目錄>:只在設置的目錄下查找原始代碼文件;
-
-u:查找不包含指定類型的文件;
(7)more命令:
-
more命令的功能是分屏查看;特點:翻屏至文件尾部后自動退出;
語法:
-
more FILE
常用選項:
-
-#: 一次顯示#行;
-
+#:從#行開始顯示;
-
-c:從頂部清屏,然后顯示;
-
-s:把連續的多個空行顯示為一行;
常用的操作命令:
-
Enter:向下n行,需要定義。默認為1行
-
Ctrl+F:向下滾動一屏
-
空格鍵:向下滾動一屏
-
Ctrl+B:返回上一屏
-
=:輸出當前行的行號
-
:f :輸出文件名和當前行的行號
-
V : 調用vi編輯器
-
!命令:調用Shell,并執行命令
-
q:退出more
(8)less命令:
-
less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向后移動,而且 less 在查看之前不會加載整個文件。
語法:
-
less [參數] 文件
選項:
-
-e:當文件顯示結束后,自動離開;
-
-i:忽略搜索時忽略大小寫;
-
-N:顯示每行的行號;
-
-o<文件名>:將less輸出的文件保存至指定的文件;
-
-s:顯示連續的空行為一行;
-
/字符串:向下搜索“字符串”功能;
-
?字符串:向上搜索“字符串”功能;
-
n:重復前一個搜索(與 / 或 ? 有關)
-
N:反向重復前一個搜索(與 / 或 ? 有關)
-
b:向后翻一頁
-
d:向后翻半頁
-
h:顯示幫助界面
-
Q:退出less 命令
-
u:向前滾動半頁
-
y:向前滾動一行
-
[pagedown]:向下翻動一頁
-
[pageup]:向上翻動一頁
(9)head命令:
-
查看文件的前n行
語法:
-
head [options] FILE
常用選項:
-
-c <#>:顯示#個字節數;
-
-n <#>:顯示#行;
tail命令:
-
查看文件的后N行;
語法:
-
tail[必要參數][選擇參數][文件]
常用選項:
-
-f:循環讀取;
-
-q:不顯示處理信息;
-
-v:顯示詳細的處理信息;
-
-c<數目>:顯示的字節數;
-
-n<行數>:顯示行數;
(10)stat命令:
-
stat – display file or file system status,顯示文件或文件的狀態信息;
語法:
-
stat FILE…
常用選項:
時間戳:
-
access time(訪問時間):2015-12-10 16:12:22.776423693 +0800
-
modify time(修改時間):2015-12-10 16:12:22.776423693 +0800
-
change time(狀態改變時間):2015-12-10 16:12:22.776423693 +0800
(11)touch命令:
-
touch – change file timestamps,可以用來創建文件;
語法:
-
touch [OPTION]… FILE…
常用選項:
-
-c: 指定的文件路徑不存在時不予創建;
-
-a: 僅修改access time;
-
-m:僅修改modify time;
-
-t:使用指定的日期時間,而非現在的時間;[[CC]YY]MMDDhhmm[.ss];
2)管理文件命令:
(1)cp命令:
-
copy,復制命令;
語法:
-
cp [OPTION]… [-T] SOURCE DEST
-
cp [OPTION]… SOURCE… DIRECTORY
-
cp [OPTION]… -t DIRECTORY SOURCE…
常用選項:
-
-i:交互式復制,即覆蓋之前提醒用戶確認;
-
-f:強制覆蓋目標文件;此時不會提示你是否覆蓋了,直接強制覆蓋;
-
-r, -R:遞歸復制目錄;
-
-d:復制符號鏈接文件本身,而非其指向的源文件;
-
-a:-dR –preserve=all, archive,用于實現歸檔;
(2)mv命令:
-
move,移動命令;
語法:
-
mv [OPTION]… [-T] SOURCE DEST
-
mv [OPTION]… SOURCE… DIRECTORY
-
mv [OPTION]… -t DIRECTORY SOURCE..
常用選項:
-
-i:交互式;
-
-f:force,強制移動;
-
-u:若目標文件已經存在,且 source 比較新,才會更新(update);
-
-t:即指定mv的目標目錄,該選項適用于移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在后;
(3)rm命令:
-
remove,刪除;
語法:
-
rm [OPTION]… FILE…
常用選項:
-
-i:interactive,交互式刪除;
-
-f:force,強制刪除;
-
-r: recursive,將參數中列出的全部目錄和子目錄均遞歸地刪除;
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
1)bash的工作特性之命令執行狀態返回值;
-
在 Linux 下,任意一個命令執行結束之后,bash都會返回0-255之間的數值以表示命令執行成功與否;其返回值保存于bash的特殊變量$?中;
-
其中0表示:執行成功;1-255表示執行錯誤;
-
例如:
-
[root@localhost ~]# ls
-
anaconda-ks.cfg initial-setup-ks.cfg
-
[root@localhost ~]# $?
-
bash: 0: 未找到命令…
-
[root@localhost ~]# lsa
-
bash: lsa: 未找到命令…
-
[root@localhost ~]# $?
-
bash: 127: 未找到命令…
2)bash的工作特性之命令行展開:
-
bash中命令行展開主要有兩種:
(1)~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
(2){}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;
-
例如:/tmp/{a,b} 相當于 /tmp/a /tmp/b;
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:ac, ad, bc, bd
-
]# mkdir -p /tmp/{a,b}_{c,d}
-
或者:
-
]# touch /tmp/{a,b}_{c,d}
(2)、創建/tmp/mylinux目錄下的:
-
-
]# mkdir -pv /tmp/mylinux/{bin,boot/gtub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
-
]# tree /tmp/mylinux
-
注意:tree命令安裝: yum -y install tree
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
1)文件的元數據信息及查看
-
文件的數據分兩種:一種元數據,既屬性數據;一種就是數據本身;可使用stat命令查看文件的元數據:
-
例如:
-
]# stat /etc/passwd
-
文件:"/etc/passwd"
-
大小:2483 塊:8 IO 塊:4096 普通文件
-
設備:fd00h/64768d Inode:136755684 硬鏈接:1
-
權限:(0644/-rw-r–r–) Uid:( 0/ root) Gid:( 0/ root)
-
環境:systemu:objectr:passwdfilet:s0
-
最近訪問:2016-09-22 22:07:14.897045766 +0800
-
最近更改:2016-09-20 18:10:23.223086880 +0800
-
最近改動:2016-09-20 18:10:23.227086888 +0800
-
創建時間:-
其中:
-
file:文件名;
-
size:文件大小
-
block:文件占了多少個數據塊
-
IO Block:文件所占數據塊的塊大小
-
Device:硬件,既說明該文件在硬盤的那個柱面
-
Inode:節點號
-
links:鏈接
-
Access(第一個):權限
-
Uid:該文件所屬的屬主
-
Gid:該文件所屬的屬組
-
context:安全上下文
-
Access(第二個):文件上一次的訪問時間
-
Modify:文件上一次修改的時間
-
Change:文件上一次屬性更改的時間
2)修改文件的時間戳信息:
-
可以使用touch命令更改文件的時間戳:
語法:
-
touch [OPTION]… FILE…
常用選項:
-
-c: 指定的文件路徑不存在時不予創建;
-
-a: 僅修改access time;
-
-m:僅修改modify time;
-
-t:使用指定的日期時間,而非現在的時間;[[CC]YY]MMDDhhmm[.ss];
例如:
-
待補充
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
命令別名使用alias命令;
-
~]#alias NAME='COMMAND'
在一個命令中引用另一個命令的執行結果也是bash的特性之一,引用。
-
方法:$(COMMAND) 或者
COMMAND
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄?
-
~]# ls -d /varl[0-9][a-z]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
-
~]# ls -d /etc/[0-9]*[^0-9]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
-
~]# ls -d /etc/[^[:alpha:]][:alpha:]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
-
~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
-
~]# tree /tmp 查看輸出結果
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
-
~]# mkdir /tmp/mytest1
-
~]# cp -r /tmp/p*[^0-9] /tmp/mytest1
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
-
~]# mkdir /tmp/mytest2
-
~]# cp -r /etc/*.d /tmp/mytest2
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
-
~]# mkdir /tmp/mytest3
-
~]# cp -r /etc/{l,m,n}*.conf /tmp/mytest3
-
~]# tree /tmp/mytest3
原創文章,作者:shiyekun,如若轉載,請注明出處:http://www.www58058.com/48871