1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
文件操作命令
cp命令:copy
用于拷貝文件或目錄至目標位置,語法:
單源復制:cp [OPTION]… [-T] SOURCE DEST
多源復制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
單源復制: cp [OPTION]… [-T] SOURCE DEST,
(1)如果DEST不存在復制的文件,則事先創建與源文件文件名相同的文件,并復制源文件的數據至DEST中:
(2)如果DEST存在與復制文件文件名相同的文件,則覆蓋目標文件:
(3)可以將原文件復制至目標,并且改名:
多源復制:
(1)如果DEST不是目錄,則報錯:
(2)如果DEST是目錄,則分別復制每個文件至目標目錄,并保持原名:
常用選項:
-i,–interactive,交互式:
在覆蓋文件之前提示用戶確認,默認的cp命令就是cp -i的別名。
-f:強制覆蓋目標文件。
-R,-r,–recursive,遞歸復制,遞歸復制目錄,即把源目錄以及源目錄中的文件遞歸復制到目標目錄。
–preserve=[]:保留指定的文件屬性,文件屬性有:
mode:權限
ownersihp:屬主和屬組
timestamp:時間戳
context:安全標簽
xatrr:擴展屬性
link:符號鏈接
all:上述所有屬性
mv命令:move
移動或重命名文件,用法與cp命令基本一致,語法:
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
可以使用mv命令對目標文件進行改名操作:
常用選項:
-b:在覆蓋目標文件后備份原文件:
-f,–force:在覆蓋文件之前不提示。
-R,-r,–recursive:遞歸移動目錄,將源目錄及源目錄內所有文件遞歸移動至目標目錄。
rm命令:remove
刪除文件或目錄,默認情況下如果rm命令不加選項,則無法刪除目錄。語法:
rm [OPTION]… FILE…
常用選項:
-i:interactive,在刪除文件前提示用戶是否確定刪除。
-r,-R,–recursive:遞歸刪除,即刪除目錄同時及其內部包含的內容。
-f:強制刪除,在刪除任何文件或目錄前不提示。
文件查看命令
cat命令:
連接文件并打印至標準輸出設備中,即顯示文件內容,語法:
cat [OPTION]… [FILE]…
cat命令常用于查看文件內容,一般情況下不使用任何選項即可,如:
常用選項:
-n –number:顯示內容加上行號:
tac命令:
和cat命令類似,也是在標準輸出上顯示文件內容,不過是將文件內容反向顯示:
more命令:
分屏查看文件命令,以一頁一頁的顯示方便使用者逐頁閱讀。語法:
more [options] file […]
常用選項:
-number:number為數字,如:more -10 /etc/rc.d/init.d/functions,即10行10行顯示文件內容。
less命令:
分屏查看文件命令,和more相反。語法:
more [options] file […]
head命令:
查看文件的前n行內容,不加選項,默認顯示文件的前10行內容。語法:
head [OPTION]… [FILE]…
常用選項:
-n:顯示文件的前n行內容。
tail命令:
查看文件的后n行內容,不加選項,默認顯示文件的后10行內容。語法:
tail [OPTION]… [FILE]…
常用選項:
-n:顯示文件的后n行內容。
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
(1)bash通過命令執行狀態返回值:
輸出結果為:0,表示命令執行成功,非0(1-255)表示命令執行失敗
命令執行完成后,其執行狀態返回值會保存到bash的特殊變量$?中:
(2)bash的基礎特性之:命令行展開
~:自動展開為用戶的家目錄,或指定的用戶的家目錄:
{}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑:
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
[root@centos7 ~]#mkdir -pv /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@centos7 ~]#mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/rc.d/init.d,sysconfig/network-scritps,lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}:
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
文件的元數據信息包括:
(1)文件名
(2)文件大小
(3)文件塊數
(4)塊大小
(5)文件類型
(6)文件所在設備
(7)文件inode
(8)文件硬鏈接次數
(9)文件權限
(10)文件屬主ID
(11)文件屬組ID
(12)文件安全標簽
(13)文件的atime時間(用cat,more文件等查看的時間)
(14)文件的mtime時間(文件最近一次修改時間)
(15)文件的ctime時間(文件元數據改變時間)
文件的元數據使用stat命令查看:
修改文件的時間戳使用touch命令:
touch命令用于更新文件的atime和mtime,默認情況下,如果文件不存在,則創建一個空文件,除非指定-c或-h選項。語法:
touch [OPTION]… FILE…
主要選項:
-c,–no–create:如果指定了-c選項,如果文件不存在,則不創建新的空文件。
-a:只改變文件的atime
-m:只改變文件的mtime
-t STAMP:使用[[CC]YY]MMDDhhmm[.ss]這種格式設置文件的atime,mtime,這種情況下ctime不會隨著mtime的改變而更新:
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
(1)可以使用alias命令來定義一個命令的別名,如:
定義的別名只對當前shell有效,如果想對當前用戶生效,需要將別名加入.bashrc文件中并刷新,如果想對所有用戶都生效,則需要將別名加入/etc/bashrc文件中。
使用unalias命令來取消別名:
[root@centos7 ~]#unalias cdnet
(2)使用反引號`command`或$(command)可以在命令中引用另一個命令的執行結果,如:
或
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[root@centos7 ~]#ll -d /var/l[0-9]*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@centos7 ~]#ll -d /etc/[0-9]*[a-z]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
[root@centos7 ~]#ll -d /etc/[^a-z][a-z]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@centos7 ~]#touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@centos7 ~]#mkdir -p /tmp/mytest1
[root@centos7 ~]#cp -rv /etc/p*[^0-9] /tmp/mytest1/
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@centos7 ~]#mkdir -p /tmp/mytest2
[root@centos7 ~]#cp -rv /etc/*.d /tmp/mytest2
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@centos7 ~]#mkdir -p /tmp/mytest3
[root@centos7 ~]#cp -rv /etc/{l,m,n}*.conf /tmp/mytest3
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/102127