1、linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
linux上的文件管理類命令有:cat、tac、more、less、head、tail、cp、mv、rm、rmdir、mkdir等
cat:文件文本查看工具
cat [option]…[file]…
-n:給顯示的文本行編號
-E:顯示行結束符$.
tac:文件文本查看工具(cat 的倒序)
tac [option]…[file]…
more:可翻頁查看文件內容,一頁一頁的翻動
注:如果more后面接的文件內容行數大于屏幕輸出的行數時,就會出現類似上圖,最后一行會顯示百分比,表示已經顯示了整個文件的百分多少,且最后一行還可以輸入命令。
空格鍵:代表向下翻一頁
Enter:代表向下滾動一行,當到文件的最后一頁時,自動退出more,回到命令行。
/字符串:代表在這個顯示的內容當中,向下查詢"字符串"這個關鍵字
:f :立刻顯示出文件名以及目前顯示的行數
q :代表立刻離開more
b :往回翻頁
less:可翻頁查看文件內容,一頁一頁的翻動,比more有彈性
可輸入的命令:
空格鍵:向下翻動一頁;
[PageDown]:向下翻動一頁;
[PageUp]:向上翻動一頁;
/字符串 :向下查詢"字符串"的功能;
?字符串 :向上查詢"字符串"的功能;
n :重復前一個查詢;
N :反向重復前一個查詢;
q :離開less。
head:取出文件中的前面N行
head [OPTION]… [FILE]…
-n # 或者 -#: 顯示幾行,默認顯示10行
tail:取出文件中的最后N行
tail [OPTION]…[FILE]…
-n #或者- #:顯示幾行,默認顯示10行
-f:持續檢測后面所接的文件名,要等到按下[ctrl]-c才會結束檢測。
此時需要按下[ctrl]-c才會結束,后者會一直檢測該文件。
cp:復制
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
-i:交互式復制,即覆蓋之前提醒用戶確認;
此時按下Y,表示覆蓋,按下N,表示不覆蓋。
-f:強制覆蓋目標文件;此時不會提示你是否覆蓋了,直接強制覆蓋;
如:當前目錄下已經有一個passwd文件了,執行如下操作不會有任何提示
-r, -R:遞歸復制目錄;
如:將/usr/share/man/下的man#文件復制到當前目錄
-d:復制符號鏈接文件本身,而非其指向的源文件;
以此文件為例,其位于/etc/下,(centos7.1)
-a:-dR –preserve=all, archive,用于實現歸檔;
–preserv=
mode:權限
ownership:屬主和屬組
timestamps: 時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
mv:和剪切一個意思?
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE..
-i:交互式
-f:強制
rm:刪除文件
rm [OPTION]… FILE…
-i:交互
-f:強制
-r:遞歸
刪除目錄:rm -rf /PATH/TO/DIR
建議一定要執行一次:rm -rf /* (有驚喜)
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示?
bash的工作特性之命令執行狀態返回值:
命令執行完后,其狀態返回值保存于bash的特殊變量$?中。
bash通過狀態返回值來輸出此結果:
成功:0
失?。?-255
注意,命令執行狀態返回值和命令的執行結果間的區別。如上圖,ls的執行結果是顯示當前目錄的文件名,緊接著執行echo命令用于顯示命令的執行狀態返回值,不管ls命令是否成功執行,其都會有相關數據顯示,但是命令執行狀態返回值卻是不同的。
bash的工作特性之命令行展開:
~:自動展開為用戶的家目錄,或指定的用戶的家目錄。
{}:可承載一個以逗號分割的路徑列表,并能夠將其展開為多個路徑。
3、請使用命令行展開功能來完成以下練習?
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
~]#mkdir -p {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
~]#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}}
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息?
文件的數據分兩種:一種元數據,既屬性數據;一種就是數據本身;
可以用命令stat查看文件的元數據;
file:文件名;
size:文件大小
block:文件占了多少個數據塊
IO Block:文件所占數據塊的塊大小
Device:硬件,既說明該文件在硬盤的那個柱面
Inode:節點號
links:鏈接
Access(第一個):權限
Uid:該文件所屬的屬主
Gid:該文件所屬的屬組
context:安全上下文
Access(第二個):文件上一次的訪問時間
Modify:文件上一次修改的時間
Change:文件上一次屬性更改的時間
可以使用touch命令更改文件的時間戳:
touch [OPTION]… FILE..。
-c: 指定的文件路徑不存在時不予創建;
-a: 僅修改access time;
-m:僅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]
~]#touch FILE
這條命令會將文件的三個時間一并更改成當前的時間
如下三個分別更改atime,mtime,三個時間一起更改。
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
命令別名使用alias命令。
~]#alias NAME='COMMAND'
在一個命令中引用另一個命令的執行結果也是bash的特性之一,引用。
方法:$(COMMAND) 或者 `COMMAND`
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄?
~]#ls -d /var/l*[0-9]*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄?
~]#ls -d /etc/[0-9]*[^0-9]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄?
~]#ls -d /etc/[^a-z][a-z]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22?
~]#touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中?
~]#mkdir /tmp/mytest1
~]#cp -r /etc/p*[^0-9] /tmp/mytest1
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中?
~]#mkdir /tmp/test2
~]#cp -r /etc/*.d /tmp/mytest2
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中?
~]#mkdir /tmp/mytest3
~]#cp /etc/[lmn]*.conf /tmp/mytest3
原創文章,作者:N22-成都-stephen,如若轉載,請注明出處:http://www.www58058.com/40442
排版上需要注意下,建議使用markdown,不推薦答案貼圖片的方式。加油~