I. Linux的文件管理類命令
cp: copy,復制命令,使用格式為cp Address1 Address2(Address可以是文件,這樣的話即為復制文件的內容)
復制etc目錄下的fstab文件至tmp目錄下。
如果目的地不存在,系統會自動創建一個新的文件并把內容覆蓋上去。
mv: move,移動命令,使用格式為mv Address1 Address2,和cp命令很像。
rm: remove,刪除命令,使用格式為rm FILE。
然而rm命令不能直接刪除文件夾。為此需要rm -rf這個選項。
-r即recursive,-f即force。
還有比較常用的是rm -rf ./*,即刪除當前文件夾下所有文件。
II. bash的工作特性
bash shell中每一個命令執行完之后會有一個狀態返回值,可以用echo $?來查看。
這個返回值代表最近一次命令執行的結果。0代表成功,1代表失敗,2至255也代表失敗,每個的意義不同。1是最常見的。
命令行展開這個特性包括了~和{}。
~代表當前用戶的家目錄。
{}的使用方法如下。
比如說我們要創建/tmp目錄下的:a_c, a_d, b_c, b_d
一般我們需要輸入4次。
而是用命令行展開的{}則很簡潔。
再比如我們要創建/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
一個命令即可搞定。
III. 文件的元數據和時間戳
我們用stat命令來獲取文件的元數據。
文件的元數據包括了文件名,文件大小,文件類型,文件歸屬,文件訪問讀寫執行權限,文件的時間戳等等。
我們可以用touch命令來修改文件的時間戳。
可以看到touch命令將文件的時間戳改成了現在的時間。
touch命令有幾個常用的選項。
比如-d,可以將修改的時間變為指定時間而不是當前時間。
比如-a為只修改Access時間,-m為只修改Modify時間等等。
IV. 如何定義一個命令的別名
使用alias命令即可定義別名,格式為alias NAME=“COMMAND”
即將rm -rf的別名設置為die。
我們使用unalias可以取消這個別名。
如此定義的別名只對當前shell進程有效。若想其永久生效的話,需在/etc/bashrc或~/.bashrc文件添加一行這個命令。這樣的話shell進程啟動會自動讀取這個配置。
V. 如何在命令中引用另一個命令的執行結果?
我們使用管道(pipe)。
比如我們將echo的內容進行egrep搜索。
VI. 練習
Q1:顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
A: egrep "^I.*[[:digit:]].*[[:lower:]]$" /var
Q2:顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
A: egrep "^[0-9].*[^0-9]$" /etc
Q3:顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
A: egrep "^[^a-zA-Z][a-zA-Z].*" /etc
Q4:在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
A: touch tfile-"$(date +%F-%M-%H-%S)"
Q5:復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
A: cp -r /etc/p*[^0-9] /tmp/mytest1
Q6:復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
A: cp -r /etc/*.d /tmp/mytest2
Q7:復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
A: cp -r /etc/[lmn]*.conf /tmp/mytest3
原創文章,作者:mercerchen,如若轉載,請注明出處:http://www.www58058.com/25740
寫的很好,排版還可以在漂亮一點,不要截黑屏了,加油