1. Linux上文件管理類命令總結及示例
文件管理命令主要由查看類命令和管理類命令組成
查看類命令
-
cat:顯示文本
cat [OPTION]… [FILE]..
-
tac:倒序查看文件內容
tac [OPTION]… [FILE]..
-
head:顯示文件前幾行內容
-
head [OPTION]… [FILE]..
-n#:指定獲取前#行,也可直接使用-#
-c:指定獲取前#字節內容
-
tail:顯示文本后#行
tail [OPTION]… [FILE]..
-n#:指定獲取后#行,也可直接使用-#
-c:指定獲取后#字節內容
-f:動態顯示文件新內容,如要退出使用ctrl+c
-
more:顯示文本,到達文本行尾自動退出
more [options] file […]
-d:顯示翻頁及退出提示
-
less:顯示文本,到達行尾必須q退出
-
stat:查看文件元數據
access time:訪問時間,即atime
modify time:修改時間,即mtime
change time:改變時間,即ctime
管理類命令
-
touch:改變文件時間戳
touch [OPTION]… FILE…
-c: 指定的文件路徑不存在時不予創建;
-a: 僅修改access time;
-m:僅修改modify time;
-t STAMP [[CC]YY]MMDDhhmm[.ss]
-
cp:復制文件
單源復制:
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:上述所有屬性
2. bash特性命令執行返回值和展開
在bash中根據命令執行后的返回值可以判斷命令是否成功執行,對于命令的展開也有其特定的語法格式
-
命令狀態執行返回值
成功:0
失?。?-255
命令執行完成后,其狀態返回值保存于bash的特殊變量?中查看使用echo?中查看使用echo? -
命令行展開
~:用戶的家目錄;
{}:可有展開為以逗號分隔的路徑列表,并能夠將其展開為多個路徑;
如:/tmp/{a,b}
等同于:/tmp/a和/tmp/b
3. 請使用命令行展開功能來完成以下練習
使用{}命令行語法格式可以一次行執行多個命令
(1) 創建/tmp目錄下的a_c, a_d, b_c, b_d
touch {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 {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. 文件元數據有哪些,分別表示什么含義? 如何查看?如何修改文件時間戳信息?
一個數據文件包括元數據和數據本身,元數據描述了文件本身的多個屬性
文件元數據有:
-
名稱
-
大小
-
塊數量
-
IO塊數量
-
文件類型
-
Inode
-
鏈接
-
Uid
-
Gid
-
atime
-
mtime
-
ctime
使用stat命令查看
stat FILE
使用touch命令修改
touch [OPTION] FILE -a:修改atime -m:修改mtime -t [[CC]YY]MMDDhhmm[.ss]:以指定時間修改時間戳
5. 如何定義一個命令的別名?如何在一個命令中應用另一個命令的結果?
shell使用者可以按照自己的習慣定義命令別名,方便調用各命令的同時也提高效率
使用alias命令查看和定義別名
alias [-p] [name[=value] ... ] alias 查看 alias cls='clear' 設置名利別名
注:此別名只有在當前shell中有效,重啟后無效。要長久保存需在bashrc中
使用$(COMMAD)在一個命令中應用另一個命令的結果
echo "$(date +"%F %T")"
6. 顯示/var目錄下所有以1開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其他字符)的文件及目錄
ls -d /var/1*[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 +%F-%H-%M-%S)
10. 復制/etc目錄下所有以p開頭的以非數字結尾的文件或目錄到/tmp/mytest1目錄中
cp -fr /etc/p*[^0-9] /tmp/mytest1
11. 復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
cp -fr /etc/*.d /tmp/mytest2
12. 復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3中
cp -f /etc/[lmn]*.conf /tmp/mytest3
原創文章,作者:allen,如若轉載,請注明出處:http://www.www58058.com/63135
贊~閱讀起來很順~建議將查看類的命令適當展開進行描述會更好~~繼續加油~