1、 Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
一、文件權限管理類命令
chown:改變文件所有者
chown [OPTION]… [OWNER][:[GROUP]] FILE…
常用參數 -R:遞歸修改(改目錄就改目錄中的目錄及文件)
示例:# chown -R root /tmp/issue
# chown -R root:root /tmp/issue
chown [OPTION]… –reference=RFILE FILE…
示例:# chmod –reference=/tmp/issue /tmp/fstab
chgrp:改變文件的所屬組
用法,參數與chown基本相同:
示例:# chgrp root /tmp/issue
chmod:改變文件的權限
chmod [OPTION]… MODE[,MODE]… FILE…
MODE:修改一類的權限
u=
g=
o=
ug=
u=,g=
a=
Note:u為屬主,g為屬組,o為其他,a為全部
示例:# chmod a=rwx /tmp/issue
修改一類用戶的某位或某些位權限
u+
u-
…
示例:# chmod u+x /tmp/issue
chmod [OPTION]… OCTAL-MODE FILE…
-R:遞歸修改(改目錄就改了目錄中包含的文件)
示例:# chmod -R 777 /tmp/issue
chmod [OPTION]… –reference=RFILE FILE…
參考RFILE文件的權限,將FILE的修改為同RFILE:
示例:# chmod -R –reference=/tmp/issue /tmp/fstab
umask:文件或目錄創建時的遮罩碼(只對當前shell有效)
目錄用777-umask
文件用666-umask
注意:如果某類用戶的權限減得的結果中存在x權限,則其權限+1
umask :查看
umask #:設定
二、文本處理工具
wc命令:統計單詞數,行數,字節數
wc [OPTION]… [FILE]…
wc [OPTION]… –files0-from=F
-l:line 顯示行數
-w:words 單詞數
-c:characters 字節數
示例:wc /tmp/issue
cut命令:切取文本
cut OPTION… [FILE]…
-d:指明分隔符 缺省為空格
-f:指定顯示段落
#:精確的第幾個字段
#,#[,#]:離散的多個字段
#-#:連續的多個字段,例如:1-6
混合使用:1-3,7
–output-delimiter=STRING
示例:# cut -d: -f1-3 /etc/passwd
sort命令:排序
sort [OPTION]… [FILE]…
sort [OPTION]… –files0-from=F
-f, –ignore-case 忽略字符大小寫
-r, –reverse 逆序
-t DELIMITER:字段分隔符
-k #:以指定字段排序
-n:以數值大小進行排序
-u:unip,去重顯示
uniq命令:不排序只去重
uniq [OPTION]… [FILE]…
-d:–repeated 僅顯示重復的行
-u:–unique 僅顯示不重復的行
-c:–count 在前綴顯示重復的數量
注意:連續且完全相同方為重復
三、文件管理命令 cp,mv,rm
cp:copy 復制命令
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
cp SRC DEST
SRC是文件:
如果目標不存在:新建DEST,并將SRC中內容填充至DEST中:
如果目錄存在:
如果DEST是文件:將SRC中的內容覆蓋至DEST中
此時建議為CP命令使用-i選項:
如果DEST是目錄:在DEST下新建與原文件同名的 文件,并將SRC中內容填充至新文件中
cp SRC… DEST
SRC…:多個文件
DEST必須存在,且為目錄,其他情形均會出錯:
cp SRC DEST
SRC是目錄
則使用選項:-r
如果DEST不存在:創建目標目錄,復制SRC目錄中所有文件至DEST中
如果DEST存在:
如果DEST是文件,報錯
如果DEST是目錄,復制到此目錄中
常用選項:
-i:交互式
-r:遞歸復制目錄及目錄內的所有內容
-a;歸檔備份(保存文檔的所有原屬性)相當于-dR –preserv-all
-d:–no-dereference –preserv=links
–preserv=[ATTR_LIST]
mode:權限
ownership:屬主屬組
timestamp:時間戳
links:
xattr:
context:
all:
-p:–preserv=mode,ownership,timestamp
-v:–verbose 顯示詳細信息
-t:原和目標可以放反
-f:–force 強制
mv:move 移動文件
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用選項:
-f:–force 強制
-i:交互式
rm:remove 刪除
rm [OPTION]… FILE…
常用選項:
-f:–force 強制
-i:交互式
-r:遞歸刪除
rm -rf:強制刪除有文件的目錄
四、文本文件查看類命令:cat,tac,more,less,tail,head
cat(tac): 正向(反向)顯示
cat [OPTION]… [FILE]…
-E:顯示行結束符$
-n:對顯示出的每一行進行編號
nl:添加行號顯示
more:一頁一頁翻屏
more[OPTIONS…] FILE…
-d:顯示翻頁及退出提示
用法:
space:向下翻頁
Enter:向下翻一行
b,carl+b:向回翻頁
/STRING:向下查詢該字符串
:f:顯示文件名及目前顯示的行數
q:離開
less:一頁一頁翻屏
less[OPTIONS…] FILE…
用法:
Space,carl+V 或+f 或+F 向下翻頁
b carl+B 向文件首部翻屏
d carl+D 向文件尾部翻半屏
u carl+U 向文件首部翻半屏
Enter 或carl+N 或e 或carl+E 或j 或carl+]:向文件尾部翻一行
y或carl+Y 或carl+P 或k 或carl+K :向文件首部翻一行
q 退出
#;跳轉至第#行
1G:回到文件首部
G:回到文件尾部
head:查看前面#行
head[OPTIONS…] [FILE…]
-c #:指定獲取前#字節
-n #:指定獲取前#行
-#:指定獲取前#行
tail:查看后面#行
tail[OPTIONS…] [FILE…]
-c #:指定獲取后#字節
-n #:指定獲取后#行
-#:指定獲取后#行
-f:查看文件到尾部不退出,繼續觀察文件后續內容
五、文件的時間戳管理工具:touch
touch:修改文件時間或創建文件
touch[OPTIONS…] FILE…
-a:only atime
-m:only mtime
-t:STAMP
年月日小時分鐘秒
-c:如果文件不存在,則不予創建
六、文件內容類型查看命令:file
file /PATH/TO/SOMEWHERE
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
執行狀態返回值$?的數字含義為:
0:成功執行;
1-255:執行失敗。
其中1、2、127已經被系統占用了,如果用戶想自行定義執行狀態返回值,可以使用exit命令在腳本中定義腳本執行狀態返回值,如果不定義,腳本執行狀態返回值取決于腳本執行結束前最后執行的那條語句的狀態。
[root@localhost ~]# id root
1 |
uid=0(root) gid=0(root) groups=0(root) |
[root@localhost ~]# echo $?
0
# root用戶存在,故$?值為0
[root@localhost ~]# echo $?
1 2 |
1 # $?值為1,說明不存在root用戶。 |
(1) mkdir /tmp/{a,b}_{c,d}
(2) mkdir -pv /tmp/mylinux/{bin,/boot/grub,dev,etc/{rc.d/inint.d,sysconfig/network-scripts},/lib/modules,
lib64,proc,sbin,sys,tmp,/usr/local/{bin,sbin},/var/{lock,log,run}}
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
在Linux文件管理中,文件除了自身數據之外,還有附屬信息,即文件的元數據;這個元數據用于記錄文件的許多信息,比如文件大小,屬主,屬組,修改日期等等。元數據并不包含在文件數據中,由系統維護,也就是包含在inode中。每個inode有一個唯一的整數編號表示(inode number)。
如何查看文件的元數據信息: ls -l , stat
# ls -l /etc/passwd
-rw-r–r–. 1 root root 2264 Nov 2 07:08 /etc/passwd
stat /etc/passwd
File: ‘/etc/passwd’
Size: 2264 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 68636662 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2016-11-02 07:08:39.778000000 -0400
Modify: 2016-11-02 07:08:39.770000000 -0400
Change: 2016-11-02 07:08:39.772000000 -0400
修改文件的時間戳:
[root@linux ~]# touch [-acdmt] 文件
參數:
-a : 僅修改access time。
-c : 僅修改時間,而不建立文件。
-d : 后面可以接日期,也可以使用 –date="日期或時間"
-m : 僅修改mtime。
-t : 后面可以接時間,格式為 [YYMMDDhhmm]
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
指令:alias
設置指令的別名
語法:# alias name='command line'
參數:
-p: 打印出現有的別名(唯一的參數)
若不加任何參數,則列出目前所有的別名設置
用法:
# alias cp='cp -i'或alias l='ll'
這樣就可以用cp來代替cp -i,而且cp -i這條命令依舊有效
查看alias:
列出目前所有的別名設置。
# alias 或 # alias -p
查看具體一條指令的別名
# alias cp
別名永久化:
alias的作用僅在該次登入的操作,即輸入一次alias后,這個修改只在當前的Shell生效。如果重新開啟一個 Shell,或者重新登錄,則這些alias將無法使用。好在linux中提供alias永久化的方法:
<1>.若要每次登入就自動生效別名,則把別名加在/etc/profile或~/.bashrc中。然后# source ~/.bashrc
<2>.若要讓每一位用戶都生效別名,則把別名加在/etc/bashrc最后面,然后# source /etc/bashrc
重新設置別名:
alias重置的方法與第一次設置的時候一樣
# alias cp='cp -i'
刪除別名:
格式:unalias name
# unalias cp
如何在命令中引用另一個命令的執行結果
命令是ficonfig eth0,變量是ip,則:
#!/bin/bash
ip=`ifconfig eth0`
echo $ip
這樣就把命令生成的字符串賦值給ip了,echo $ip,看到的就是命令執行的結果
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,中間出現至少一位數字(可以有其他字符)的文件或目錄
# ls –d /var/l*[0-9]*[[:lower:]]
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 +"%F-%H-%M-%S")
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
cp -r /etc/p*[^0-9] /tmp/mytest1/
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
cp -r /etc/*.d /tmp/mytest2/
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
cp -r /etc/[lmn]*.conf /tmp/mytest3/
原創文章,作者:victorli88,如若轉載,請注明出處:http://www.www58058.com/63007
贊,總結的比較詳細~~能注意下排版會更好~繼續加油~