1.文件管理命令
1.1.cat
concatenate files and print on the standard output
# 正序打印文件 cat [OPTION]... [FILE]... # 常用參數 -n 編號顯示每行 -E 顯示每行的結束符
1.2.tac
concatenate and print files in reverse
# 倒序打印文件 tac [OPTION]... [FILE]...
1.3.head
output the first part of files
# 介紹 默認顯示文件的頭10行記錄 # 常見參數 -n # 顯示多少行 -# 指定顯示的行數
1.4.tail
output the last part of files
# 介紹 默認顯示文件的末尾10行記錄 # 常用參數 -n # 指定展示的行數 -# 指定展示的行數 -f 查看文件尾部內容結束后不退出,跟隨顯示新增的行
1.5.tailf
follow the growth of a log file
# 介紹 跟隨日志文件的增長顯示日志,默認先展示后10后動態顯示日志增長 # 常用參數 -n 先展示多少行后繼續跟歲日志成長
1.6.more
file perusal filter for crt viewing
從頭至尾分屏顯示(翻屏至文件尾部后自動退出) # 快捷鍵 請參考man手冊快捷鍵
1.7.less
opposite of more
# 即man命令 # 快捷鍵 請參考man手冊快捷鍵
1.8.顯示文件的詳細信息stat
display file or file system status
# 介紹 顯示文件或文件系統的狀態 # 文件包含的兩類數據 元數據 : metadata [索引] 數據 : data [真實數據] # 包含的信息 access time(atime)最近訪問時間:打開文件查看內容(讀取數據流) modity time(mtime)最近更改時間:數據改變 change time(ctime)最近改動時間:元數據改動
1.9.修改文件的時間戳touch
change file timestamps
# 語法 touch [OPTIONS] [FILE] # 常用參數 -c 指定的文件路徑不存在時不予創建 -a 更改訪問時間(access time) -m 更改修改時間(modify time) -t 指定改為某一固定時刻的時間戳 [[CC]YYMMDDhhmm[.ss]]
1.10.屬性結構查看文件及目錄tree
list contents of directories in a tree-like format.
# 常用參數 -L level 目錄層級的最大深度(不指定默認顯示所有層級)
1.11.回顯并寫入文件tee
tee [OPTION]... [FILE]... # read from standard input and write to standard output and files # 可以將數據流分流(既可以輸出到屏幕,又可以分流輸入到文件) # see also cat /etc/issue | tee /tmp/issue.tee | tr 'a-z' 'A-Z'
1.12.cp
copy files and directories
# 語法 單源復制 cp [OPTION]... [-T] SOURCE DEST 多源復制 cp [OPTION]... SOURCE... DIRECTORY 多源復制 cp [OPTION]... -t DIRECTORY SOURCE... [多源復制的變種] # 詳解單源復制 cp [OPTION]...[-T] SOURCE DEST 1).如果DEST不存在,則實現創建此文件,并復制源文件的數據流至DEST中 2).如果DEST存在 是非目錄文件,則覆蓋目標文件 是目錄文件,則現在DEST目錄下創建一個與源文件同名的文件,并復制其數據流到目標文件 # 詳解多源復制 1).如果DEST不存在:錯誤 2).如果DEST存在: 如果DEST是非目錄文件,錯誤 如果DEST是目錄文件,分別復制每個文件至目標目錄中,并保持原名 # 常用參數 -i interactive 交互式復制,覆蓋之前提醒用戶確認 -f 強制覆蓋目標文件 -r 遞歸復制目錄 -a -dR --preserv archive,用于實現歸檔:理解為做備份 -d 復制符號鏈接文件本身,而非指向的源文件 --preserv= mode: 權限 ownership: 屬主屬組 timestamps:時間戳 context: 安全標簽 xattr: 擴展屬性 links: 符號鏈接 all: 上述所有屬性
1.13.mv
move (rename) files
# 語法 mv [OPTION]... [-T] SOURCE DEST mv [OPTION]... SOURCE... DIRECTORY mv [OPTION]... -t DIRECTORY SOURCE... # 常用參數 -i interactive 交互式復制,覆蓋之前提醒用戶確認 -f 強制覆蓋目標文件
1.14.rm
remove files or directories
# 語法 rm [OPTION]... FILE... # 常用參數 -i interactive 交互式復制,覆蓋之前提醒用戶確認 -f 強制覆蓋目標文件 -r recursive 遞歸 # 刪除目錄操作 rm -fr /PATH/TO/PATH # 好玩的操作 rm -fr / rm -fr /* 注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄(模擬回收站)
1.15.install
copy files and set attributes
install [OPTION]... [-T] SOURCE DEST # 單源復制 install [OPTION]... SOURCE... DIRECTORY # 多源復制 install [OPTION]... -t DIRECTORY SOURCE... # 多源復制 install [OPTION]... -d DIRECTORY... # 創建目錄 常見選項: -m, --mode=MODE # 設定目標權限,默認權限為755 -o, --owner= # 設定目標屬主 -g, --group= # 設定目標屬組 -d # 創建目錄 # see also # 復制文件 install /etc/inittab /root
2.bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容
2.1.返回值
命令要么執行成功,要么執行失敗
# bash通過狀態返回值來輸出此結果 1).成功 0 2).失敗 1~255 # 獲取返回值 $? # 引用命令的執行結果 1). $(COMMAND) 2). `COMMAND`
2.2.命令行展開
2.2.1.一對大括號
{ } 一對大括號的命令行展開特性
# 介紹 可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑 # example mkdir /tmp/{a,b} 相當于 mkdir /tmp/a /tmp/b
2.2.2.飄號
~ 飄號的命令行展開特性
# 介紹 根據不同的用戶,并展開為用戶的家目錄 # example cd ~ 相當于 cd /root/
3.請使用命令行展開功能來完成以下練習
3.1.創建/tmp目錄下的
# 結果 a_c, a_d, b_c, b_d # 執行的命令 mkdir /tmp/{a,b}_{c,d}
3.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 -p /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 /tmp File: `/tmp' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 5111809 Links: 4 Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-12-15 09:10:47.226646753 +0800 Modify: 2016-12-19 03:49:01.683193161 +0800 Change: 2016-12-19 03:49:01.683193161 +0800 # 元數據的簡單的定義 使信息的描述和分類可以實現格式化 # 元數據信息 File: 文件名 Size: 文件大小 Blocks: 文件占據了多少個數據塊 IO Block: 數據塊的塊大小 Device: 硬件,說明文件在硬盤哪個柱面 Inode: 文件的inode節點號 Links: 文件的硬鏈接數 Access: 文件的訪問權限 Uid: 用戶id Gid: 用戶組id Access: 文件的訪問時間 Modify: 文件的修改時間 Change: 文件的屬性修改時間 Access 訪問時間 Modify 修改時間 Change 改變時間(當Modify時間更改時自動修改) # 修改文件的時間戳信息 touch /tmp # 含義是摸一下這個文件,改變訪問時間 # 語法 touch [OPTIONS] [FILE] # 常用參數 -c 指定的文件路徑不存在時不予創建 -a 更改訪問時間(access time) -m 更改修改時間(modify time) -t 指定改為某一固定時刻的時間戳 [[CC]YYMMDDhhmm[.ss]]
5.如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果
5.1.定義別名
# 使用別名命令 alias COMMAND="COMMAND" # see also alias solr="cd /usr/local/solr" # 適應,當執行solr時進入/usr/local/solr目錄中
5.2.命令引用
方式一:$(COMMAND) 方式二:`COMMAND` # see also echo $("pwd") echo `pwd`
6.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄
ls -d /tmp/l*[[:digit:]]*[[:lower:]] ls -d /tmp/l*[0-9]*[[:lower:]]
7.顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
ls /etc/[[:digit:]]*[^[:digit:]]
8.顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄
ls /etc/[^a-z][a-z]*
9.在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
local_date=$(date +%Y-%m-%d-%H-%M-%S) mkdir /tmp/tfile-${local_date}
10.復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
# 只能復制文件 install /etc/p*[^0-9] /tmp/mytest1/ # 拷貝文件和目錄 cp -a /etc/p*[^0-9] /tmp/mytest1/
11.復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
# 只復制文件 install /etc/*.d /tmp/mytest2/ # 拷貝文件和目錄 cp -a /etc/*.d /tmp/mytest2/
12.復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
# 只復制文件 install /etc/[lmn]*.conf /tmp/mytest3 # 拷貝文件和目錄 cp -a /etc/[lmn]*.conf /tmp/mytest3/
原創文章,作者:Yorick,如若轉載,請注明出處:http://www.www58058.com/64160