1. linux上的文件管理類命令
1.1. 目錄管理類命令
cd [dir] 切換目錄
pwd: 顯示當前目錄
ls [OPTION]… [DIR]…
-a, –all: 顯示所有文件,包括隱藏文件;
-l: 長格式
-rw-r–r– 1 root root 44800 Aug 14 14:32 install.log
-rw-r–r–:
最左側的第一位:文件類型
-, d, l, b, c, p, s
后面的9位:訪問權限,perm
數字:文件被硬鏈接的次數;
左root: 文件的owner
右root: 文件的group
44800:文件的size
Aug 14 14:32 : 文件的最近一次被修改的時間
install.log: 文件名
-h, –human-readable:單位換算
-d: 顯示目錄自身的相關屬性;通常要與-l一起使用;
-r, –reverse: 逆序顯示
-R, –recursive: 遞歸
mkdir [options] /path/to/somewhere
-p: 存在于不報錯,且可自動創建所需的各目錄;
-v: 顯示詳細信息
-m MODE: 創建目錄時直接指定權限;
tree:
-d: 只顯示目錄
-L level:指定顯示的層級數目
-P pattern: 只顯示由指定pattern匹配到的路徑;
rmdir:刪除空目錄
rmdir [OPTION]… DIRECTORY…
-v: 顯示過程;
1.2. 文本文件查看類命令
cat [OPTION]… [FILE]…
-E: 顯示行結束符$
-n: 對顯示出的每一行進行編號:
more [OPTIONS…] FILE…
-d: 顯示翻頁及退出提示
less [OPTIONS…] FILE…
head [OPTION]… [FILE]…
-c #: 指定獲取前#字節
-n #: 指定獲取前#行
-#:
tail [OPTION]… [FILE]…
-c #: 指定獲取后#字節
-n #: 指定獲取后#行
-f: 跟蹤顯示文件新追加的內容;
1.3. 文件管理類命令
cp [OPTION]… [-T] SOURCE DEST
SRC是文件:
如果目標不存在:新建DEST,并將SRC中內容填充至DEST中;
如果目錄存在:
如果DEST是文件:將SRC中的內容覆蓋至DEST中;
此時建議為cp命令使用-i選項;
如果DEST是目錄:在DEST下新建與原文件同名的文件,并將SRC中內容填充至新文件中;
cp [OPTION]… SOURCE… DIRECTORY
SRC…:多個文件
DEST必須存在,且為目錄,其它情形均會出錯;
cp [OPTION]… -t DIRECTORY SOURCE…
SRC是目錄:
此時使用選項:-r
如果DEST不存在:則創建指定目錄,復制SRC目錄中所有文件至DEST中;
如果DEST存在:
如果DEST是文件:報錯
-i:交互式
-r, -R: 遞歸復制目錄及內部的所有內容;
-a: 歸檔,相當于-dR –preserv=all
-d:–no-dereference –preserv=links
–preserv[=ATTR_LIST]
mode: 權限
ownership: 屬主屬組
timestamp:
links
xattr
context
all
-p: –preserv=mode,ownership,timestamp
-v: –verbose
-f: –force 如果DEST是目錄:詢問是否覆蓋原文件
mv: move,移動文件
-i: 交互式
-f: 強制
rm [OPTION]… FILE…刪除文件
-i: 交互式
-f: 強制刪除
-r: 遞歸
2. bash特性
2.1. bash命令的執行狀態結果
成功:0
失敗:1-255
echo $?:輸出狀態結果
2.2 命令行展開
~ :展開為用戶的主目錄
~ HOMENAME:展開指定用戶的家目錄
{}:以逗號分隔,并展開為多個路徑
3. 使用命令行展開功能完成練習
3.1 創建/tmp目錄下的:a_c,a_d,b_c,b_d
[root@localhost tmp]# mkdir {a,b}{c,d}
[root@localhost tmp]# ls
ac ad bc bd
[root@localhost tmp]#
3.2 創建指定目錄
[root@localhost tmp]# mkdir -p 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@localhost tmp]# tree 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
24 directories, 0 files
4. 元數據
元數據使用stat查看
三個時間戳:
access time:訪問時間cp –,簡寫為atime,讀取文件內容
modify time: 修改時間, mtime,改變文件內容(數據)
change time: 改變時間, ctime,元數據發生改變
使用touch命令修改時間戳
touch [OPTION]… FILE…
-a: only atime
-m: only mtime
-t STAMP:
[[CC]YY]MMDDhhmm[.ss]
5. 別名
定義別名可以使用alias命令實現
alias NAME='VALUE'
定義別名NAME,其相當于執行命令VALUE
也可以在配置文件中定義
~/.bashrc : 僅對當前用戶
/etc/bashrc : 對所有用戶有效
5.1.管道
COMMAND1 | COMMAND2 | COMMAND3 |…
| 后面的命令引用前面命令的結果
6.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄
ls -d /var/l*[0-9]*[a-z]
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 tfile-$(date +%F-%H-%M-%S)
10. 復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
cp -R /etc/p*[^0-9] /tmp/mytest1
11. 復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
cp -R /etc/*.d /tmp/mytest2
12.. 復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
cp -R /etc/[lmn]*conf /tmp/mytest3/
原創文章,作者:Net20_有馬,如若轉載,請注明出處:http://www.www58058.com/18670
寫的很棒,把命令的常用參數都列舉出來了,如果在添加一些案例會更好,另外可以關注一下排版,可以做的更美觀,第10、12有點小瑕疵,在看看題目修改一下,加油