linux文件管理類命令匯總
1.文本文件查看類命令:cat,tac,more,less,tail,head
cat(tac): 正向(反向)顯示
cat [OPTION]... [FILE]...
-E:顯示行結束符$
-n:對顯示出的每一行進行編號
more [OPTIONS…] FILE…
特點:翻屏至文件尾部后自動退出;
-d:顯示翻頁及退出提示
space:向下翻頁
Enter:向下翻一行
b,ctrl+b:向回翻頁
/STRING:向下查詢該字符串
q:離開
less:一頁一頁翻屏
less[OPTIONS...] FILE...
用法:
Space,ctrl+V 向下翻頁
b ctrl+B 向文件首部翻屏
d ctrl+D 向文件尾部翻半屏
u ctrl+U 向文件首部翻半屏
Enter :向文件首部翻一行
ctrl+K :向文件首部翻一行
q: 退出
#;跳轉至第#行
1G:回到文件首部
G:回到文件尾部
head:查看前面#行 (默認10行)
head [OPTIONS...] [FILE...]
-n #:指定獲取前#行
-#:指定獲取前#行
tail:查看后面#行(默認10行)
tail[OPTIONS...] [FILE...]
-n #:指定獲取后#行
-#:指定獲取后#行
-f:查看文件到尾部不退出,繼續觀察文件后續內容.
文件管理工具:cp, mv, rm
cp NAME
cp - copy files and directories
cp命令:copy 源文件;目標文件;
單源復制:cp [OPTION]... [-T] SOURCE DEST
多源復制:cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
單源復制:cp [OPTION]... [-T] SOURCE DEST
如果DEST不存在:則事先創建此文件,并復制源文件的數據流至DEST中;
如果DEST存在:
如果DEST是非目錄文件:則覆蓋目標文件;
如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流;
多源復制:cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
如果DEST不存在:錯誤;
如果DEST存在:
如果DEST是非目錄文件:錯誤;
如果DEST是目錄文件:分別復制每個文件至目標目錄中,并保持原名;
常用選項:
-i:交互式復制,即覆蓋之前提醒用戶確認;
-f:強制覆蓋目標文件;
-r, -R:遞歸復制目錄;
-d:復制符號鏈接文件本身,而非其指向的源文件;
-a:-dR --preserve=all, archive,用于實現歸檔;
--preserv=mode:權限
ownership:屬主和屬組
timestamps: 時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
mv命令:move
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE..
常用選項:
-i:交互式;
-f:force
rm命令:remove
rm [OPTION]... FILE...
常用選項:
-i:interactive
-f:force
-r: recursive
刪除目錄:rm -rf /PATH/TO/DIR
危險操作:rm -rf /*
注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站)
文件權限管理類命令 chown,chgrp,umask
chown命令:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
選項:
-R:遞歸修改
chgrp命令:
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
注意:僅管理員可修改文件的屬主和屬組;
umask:
文件的權限反向掩碼,遮罩碼; 文件: 666-umask 目錄: 777-umask
注意:之所以文件用666去減,表示文件默認不能擁有執行權限;如果減得的結果中有執行權限,則需要將其加1;
umask: 023
666-023=644
777-023=754
umask命令:
umask:查看當前umask
umask MASK: 設置umask
注意:此類設定僅對當前shell進程有效;
文本處理工具 wc,sort,uniq,diff,path
wc:word count wc [OPTION]… [FILE]…
-l: lines
-w:words
-c: bytes
cut: cut OPTION… [FILE]…
-d CHAR:以指定的字符為分隔符;
-f FIELDS:挑選出的字段;
#:指定的單個字段
#-#:連續的多個字段;
#,#:離散的多個字段;
sort: sort [OPTION]… [FILE]…
-n:基于數值大小而非字符進行排序;
-t CHAR:指定分隔符;
-k #:用于排序比較的字段; -
-r:逆序排序;
-f:忽略字符大小寫
-u:重復的行只保留一份;
uniq:報告或移除重復的行
uniq [OPTION]... [INPUT [OUTPUT]]
-c:顯示每行的重復次數;
-u:僅顯示未曾重復過的行;
-d:僅顯示重復過的的行;
diff:compare files line by line
diff [OPTION]... FILES
diff /PATH/TO/OLDFILE /PATH/TO/NEWFILE > /PATH/TO/PATCH_FILE
-u:使用unfied機制,即顯示要修改的行的上下文,默認為3行;
patch:向文件打補丁
patch [OPTIONS] -i /PATH/TO/PATCH_FILE /PATH/TO/OLDFILE
patch /PATH/TO/OLDFILE < /PATH/TO/PATCH_FILE
文件內容類型查看命令:file — determine file type
f: 普通文件 d: 目錄文件
l:符號鏈接文件
b:塊設備 文件
c:字符設備文件
p:管道文件
s:套接字文件
文件的時間戳管理工具:touch,stat
stat命令: stat – display file or file system status
stat FILE...
文件:兩類數據
元數據:metadata
數據: data
時間戳:
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
touch命令:
touch - change file timestamps
touch [OPTION]... FILE...
-c: 指定的文件路徑不存在時不予創建; c, --no-create
do not create any files
-a: 僅修改access time; 無論是修改access time還是modify time,change time總會改變
-m:僅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]
date 設置時間時格式:date [MMDDhhmm[[CC]YY][.ss]]
2.bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示 bash的基礎特性:命令的執行狀態結果
命令執行的狀態結果:
bash通過狀態返回值來輸出此結果:
成功:0
失?。?-255
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;
bash的基礎特性之:命令行展開 ~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
{}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;
例如:/tmp/{a,b} 相當于 /tmp/a /tmp/b
請使用命令行展開功能來完成以下練習:
-
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d mkdir /tmp/{a,b}_{c,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
[root@localhost ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scirpts},lib/modules,lib64,proc,sbin,sys,tmp,usr/{local,bin,sbin},var/{lock,log,run}}
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
文件:兩類數據
元數據:metadata
數據: data
a.文件的元數據是指文件的屬性、大小、創建時間、訪問時間、屬主屬組等信息。
b.三個時間戳:
access time:訪問時間,簡寫atime,讀寫文件內容
modify time: 修改時間,mtime,改變文件內容(數據)
change time:改變時間,ctime,元數據發生改變
c.修改文件的時間戳:touch
touch [OPTION]...FILE...
-a:only atime
-m:only mtime
不能單獨修改ctime, 無論是修改access time還是modify time,change time總會改變
-s STAMP [[CC]YY]MMDDhhmm[.ss]
-c:如果文件不存在,則不予創建
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果? 1.命令別名:alias
alias:顯示當前shell進程所有可用的命令別名 alias NAME="VALUE":命名別名
注意:在命令行中定義的別名,僅對當前shell進程有效,如果想永久有效,要定義配置文件
僅對當前用戶:~/.bashrc
對所有有效:/etc/bashrc
在命令中引用另一個命令的執行結果: 通常借助管道,前一個命令的輸出作為另一 個命令的輸入.
[root@localhost ~]# cat /etc/passwd | wc -l
[root@localhost ~]# 43
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[root@localhost ~]# ls -d /var/l*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@localhost ~]# ls -d /etc/[[:digit:]]*[^0-9]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
[root@localhost ~]# ls -d /etc/[^a-z][a-z]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
~]#touch "tfile-date +%F-%H-%M-%S
"
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。 [root@localhost ~]# mkdir /tmp/mytest1 [root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@localhost ~]# mkdir /tmp/mytest2 [root@localhost ~]# cp -r /etc/*.d /tmp/mytest2
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@localhost ~]# mkdir /tmp/mytest3 [root@localhost ~]# cp -r /etc/[1,m,n]*.conf /tmp/mytest3
原創文章,作者:oranix,如若轉載,請注明出處:http://www.www58058.com/48925