Q1:Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
-
文件管理類命令:
cd, ls, touch, cp, mv, rm, cat, tac, more, less, tail, head;
-
詳細介紹以上命令:
cd:
在Linux文件系統上,可以使用切換目錄命令cd將shell會話切換到另一個目錄。
命令格式:
~]# cd DESTINATION
DESTINATION參數可以用可以用兩種方式表示:一種是使用絕對文件路徑,另一種是使用相對文件路徑。
示例:
絕對路徑: [root@radio_freshman /]# cd /test/bash/ [root@radio_freshman bash]# pwd /test/bash 相對路徑: [root@radio_freshman bash]# cd ../../tmp/ [root@radio_freshman tmp]# pwd /tmp
ls:
ls命令最基本的形式會顯示當前目錄下的文件和目錄。
命令格式:
~]# ls
參數:
-a:顯示包括隱藏在內的,全部的文件和目錄顯示出來; -l:產生長列表格式輸出,包含了目錄中每個文件的更多相關信息; -F:在目錄名后面加了正斜線(/); -R:遞歸選項,列出了當前目錄下包含子目錄中的文件;
示例:
[root@radio_freshman radio]# ls -a . .. .bash_history .bash_logout .bash_profile .bashrc test #文件前面有(.)就是隱藏的文件; [root@radio_freshman test]# ls -l 總用量 56 drwxr-xr-x. 2 root root 6 11月 4 16:03 abc drwxr-xr-x. 2 root root 21 11月 3 10:31 bash -rw-r--r--. 1 root root 28 11月 4 15:20 catfile -rwxr--r--. 1 root root 187 10月 30 18:50 class_exrecise.sh -rw-r--r--. 1 root root 485 11月 1 00:02 fstable -rw-r--r--. 1 root root 481 10月 31 22:54 fstable.new -rw-r--r--. 1 root root 46 10月 31 21:51 fstable.patch -rw-r--r--. 1 root root 553 11月 5 18:40 group -rw-r--r--. 1 root root 7507 11月 4 17:01 lastfile -rw-r--r--. 1 root root 2233 11月 5 11:40 lastfile2 -rw-r--r--. 1 root root 428 11月 5 10:37 man.config -rwxr--r--. 1 root root 100 10月 30 18:37 myfirst.sh -rw-r--r--. 1 root root 1160 11月 4 17:09 passwd -rwxr-xr-x. 1 root root 683 11月 5 10:28 regular_express.txt -rw-r--r--. 1 root root 3232 11月 4 23:00 rsyslog.conf -rw-r--r--. 1 root root 0 11月 5 17:15 test drwxr-xr-x. 2 root root 32 11月 4 22:17 vbird #這里詳細的列出了文件的權限、屬主、屬組等信息; [root@radio_freshman litter]# ls -F abc/ catfile def/ myfile.6it7 myfile.AAYW myfile.Bb0o myfile.NPdr myfile.RBP6 #最后有正斜線的,如:abc和def都是目錄,其他的均為文件; [root@radio_freshman litter]# ls -R .: abc catfile def myfile.6it7 myfile.AAYW myfile.Bb0o myfile.NPdr myfile.RBP6 ./abc: 1 2 h ./abc/h: ./def: 3 4 5 #這里遞歸顯示了目錄abc和目錄def下面的內容;
touch:
用于創建空文件。
命令格式:
~]# touch FILENAME
示例:
[root@radio_freshman test]# touch newfile [root@radio_freshman test]# ls -l newfile -rw-r--r--. 1 root root 0 11月 5 21:47 newfile #創建了屬主為root用戶、屬組為root的名字為newfile的文件;
cp:
在文件系統中,cp可以將文件或目錄從一個位置復制到另一個位置。
命令格式:
~]# cp SOURCE DESTINATION
示例:
[root@radio_freshman /]# cd /test/abc/ [root@radio_freshman abc]# ls 1 [root@radio_freshman abc]# cp ../regular_express.txt /test/abc/ [root@radio_freshman abc]# ls 1 regular_express.txt #復制前后通過ls命令運行結果作對比,cp復制命令成功;
mv:
在Linux系統中,重命名文件稱為移動,mv命令可以將文件和目錄移動到另一個位置或者重命名。
命令格式:
~]# mv SOURCE DESTINATION
示例:
[root@radio_freshman abc]# ls 1 regular_express.txt [root@radio_freshman abc]# mv ../passwd ./ [root@radio_freshman abc]# ls 1 passwd regular_express.txt #復制前后通過ls命令運行結果作對比,mv移動文件成功; [root@radio_freshman abc]# mv ./1 ./2 [root@radio_freshman abc]# ls 2 passwd regular_express.txt #這里mv命令執行了修改文件名;
rm:
命令rm用于刪除文件。
命令格式:
~]# rm [OPTION]... FILE...
選項:
-i:刪除前詢問是否真的刪除文件; -f:強制刪除,不詢問; -r:可用于遞歸刪除目錄;
示例:
[root@radio_freshman abc]# ls 1 2 3 regular_express.txt [root@radio_freshman abc]# rm -i 3 rm:是否刪除普通空文件 "3"?y [root@radio_freshman abc]# ls 1 2 regular_express.txt [root@radio_freshman abc]# touch 4 [root@radio_freshman abc]# ls 1 2 4 regular_express.txt [root@radio_freshman abc]# rm -f 4 [root@radio_freshman abc]# ls 1 2 regular_express.txt [root@radio_freshman abc]# tree 2 2 └── 3 └── 4 2 directories, 0 files [root@radio_freshman abc]# rm -rf 2 [root@radio_freshman abc]# ls 1 regular_express.txt #通過tree命令,不難發現目錄2內部還有兩級目錄,用-r選項遞歸刪除了整個目錄2;
cat:
cat命令是顯示文本文件中所有數據。
命令格式:
~]# cat [OPTION]... [FILE]...
選項:
-n:給顯示的內容加上行號; -b:只給有文本的行加上行號;
示例:
[root@radio_freshman abc]# cat cattesting.file this file is for testing command cat. hello,everyone! the upper is a blank line. OK now stop [root@radio_freshman abc]# cat -n cattesting.file 1 this file is for testing command cat. 2 hello,everyone! 3 4 the upper is a blank line. 5 OK now stop 6 [root@radio_freshman abc]# cat -b cattesting.file 1 this file is for testing command cat. 2 hello,everyone! 3 the upper is a blank line. 4 OK now stop
tac:
tac從最后一行開始顯示。
命令格式:
~]# tac FILE
示例:
[root@radio_freshman abc]# tac tactesting.file OK now stop to be a excellent ops is a long way to go. this file is for testing command tac. [root@radio_freshman abc]# cat tactesting.file this file is for testing command tac. to be a excellent ops is a long way to go. OK now stop #通過命令cat和命令tac運行結果的比較發現,tac是從最后一行開始顯示。
more:
cat命令的主要缺陷是:一旦運行,就無法控制后面的操作。然而,more命令會顯示文本文件的內容,會在顯示每頁數據之后停下來。
命令格式:
~]# more FILE
less:
less的用法比起more更有彈性,在使用more的時候,并沒有向前翻頁,只能往后看;less可以使用上、下等按鍵實現往前往后翻看文件。
命令格式:
~]# less FILE
tail:
命令tail只看結尾幾行。
命令格式:
~]# tail [OPTION]... [FILE]...
選項:
-n:后面接數字,代表顯示幾行的意思;
示例:
[root@radio_freshman test]# tail -n 5 passwd postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin radio:x:1000:1000:radio:/home/radio:/bin/bash user3:x:1001:1001::/home/user3:/bin/bash tcpdump:x:72:72::/:/sbin/nologin #僅僅顯示了passwd文件的最后5行;
head:
head命令只看頭幾行。
命令格式:
~]# head [OPTION]... [FILE]...
選項:
-n:后面接數字,代表顯示幾行的意思。
示例:
[root@radio_freshman test]# head -n 5 passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin #僅僅顯示了passwd文件的前5行;
Q2:bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
-
bash特性之命令執行狀態返回值:
成功:0
失?。?-255
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;
示例:
[root@radio_freshman litter]# ls abc catfile def myfile.6it7 myfile.AAYW myfile.Bb0o myfile.NPdr myfile.RBP6 [root@radio_freshman litter]# echo $? 0 #返回值為0,則表面ls命令執行成功; [root@radio_freshman litter]# lss -bash: lss: 未找到命令 [root@radio_freshman litter]# echo $? 127 [root@radio_freshman litter]# ls /litterr ls: 無法訪問/litterr: 沒有那個文件或目錄 [root@radio_freshman litter]# echo $? 2 #同樣的是執行失敗,返回值分別是127和2,則說明不同的失敗原因,返回的值不一樣;
-
bash特性之命令行展開:
~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
{}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;
示例:
[root@radio_freshman ~]# whoami root [root@radio_freshman ~]# cd ~ [root@radio_freshman ~]# pwd /root #說明了~自動展開為用戶的家目錄; [root@radio_freshman def]# ls 1 [root@radio_freshman def]# mkdir -pv ./{a/{c,d},b} mkdir: 已創建目錄 "./a" mkdir: 已創建目錄 "./a/c" mkdir: 已創建目錄 "./a/d" mkdir: 已創建目錄 "./b" [root@radio_freshman def]# ls 1 a b [root@radio_freshman def]# tree . ├── 1 ├── a │ ├── c │ └── d └── b #通過tree命令可以看出,通過{}展開多個路徑創建成功;
Q3:請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
(2)、創建/tmp/mylinux目錄下的:
(1) ~]# mkdir -pv /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}}
Q4:文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
一般文件包含兩類數據,元數據(metadata)和數據(data);
元數據信息包括文件路徑、文件大小、文件類型、設備、權限、環境、時間戳;
元數據信息通過stat命令查看;
示例:
~]# stat /test/regular_express.txt 文件:"/test/regular_express.txt" 大?。?83 塊:8 IO 塊:4096 普通文件 設備:fd00h/64768d Inode:425350 硬鏈接:1 權限:(0755/-rwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) 環境:unconfined_u:object_r:default_t:s0 最近訪問:2016-11-05 10:28:29.964095453 +0800 最近更改:2016-11-05 10:28:24.627095338 +0800 最近改動:2016-11-05 10:28:24.627095338 +0800 創建時間:-
修改文件的時間戳信息:
使用touch命令可以修改時間戳。
命令格式:
touch [OPTION]... FILE...
選項:
-a: 僅修改access time; -m:僅修改modify time; 說明:一般可以改變atime 和 mtime,因為atime 和 mtime發生變化時,ctime是自動進行的,即 change time是不可以手動更改的。
Q5:如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
定義命令別名:
使用命令alias定義命令的別名。
命令格式:
~]# alias NAME=’COMMAND [OPTION]’
示例:
~]# alias lm='ls -l | less'
在命令中引用另一個命令的執行結果:
方法: $(COMMAND)
示例:
~]# touch tfile-$(date +%F-%H-%M-%S) ~]# ls tfile-2016-11-06-10-13-57 #示例中,引用了date命令的執行結果,通過ls命令不難發現,文件名里含有了時間信息;
Q6:顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
~]# ls /var/ | grep '^l.*[[:digit:]]\{1,\}.*[[:lower:]]$'
Q7:顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
~]# ls /etc/ | grep '^[0-9].*[^0-9]$'
Q8:顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
~]# ls /etc/ | grep '^[^a-zA-Z][a-zA-Z].*'
Q9:在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
~]# touch /tmp/tfile-$(date +%F-%H-%M-%S)
Q10:復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
~]# cp -r /etc/p*[^0-9] /tmp/mytest1
Q11:復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
~]# cp -r /etc/*.d /tmp/mytest2/
Q12:復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
~]# cp /etc/[lmn]*.conf /tmp/mytest3/
原創文章,作者:N24_VC,如若轉載,請注明出處:http://www.www58058.com/57909
總結的不錯~最后的幾個題目可以多思考幾種不同的方法來實現~~繼續加油~