一、文件管理命令以及演示方法
1.1. mkdir命令
作用:創建文件夾
基本用法:mkdir [OPTION]… DIRECTORY…
參數:
-p: 自動創建父目錄
-v: 顯示創建詳細過程
-m MODE: 直接給dig你權限
用例:
[root@golet ~]# mkdir -p -v /tmp/dirtest mkdir: created directory `/tmp/dirtest' [root@golet ~]#
1.2.rmdir刪除目錄
作用:刪除文件夾
基本用法: rmdir [OPTION]… DIRECTORY…
參數:
-p:刪除目錄后,如果期父目錄為空,則一并刪除
-v: 顯示過程
用例:
[root@golet /]# rmdir -p -v /tmp/dirtest/xiaoxin/ rmdir: removing directory, `/tmp/dirtest/xiaoxin/' rmdir: removing directory, `/tmp/dirtest' rmdir: removing directory, `/tmp' rmdir: failed to remove directory `/tmp': Directory not empty [root@golet /]#
1.3. tree命令
作用: 列出目錄
基本用法: tree [option]
參數:
-L level: 指定要顯示的層級
用例:
[root@golet /]# tree -L 1 . ├── bin ├── boot ├── cgroup ├── data ├── dev ├── etc ├── home ├── lib ├── lib64 ├── lost+found ├── media ├── media2 ├── mnt ├── opt ├── proc ├── RECOVERED_FILES ├── root ├── rooto ├── sbin ├── selinux ├── srv ├── sys ├── test ├── tmp ├── usr └── var 25 directories, 1 file
1.4.stat命令
作用:顯示文件狀態
基本用法: stat [option] file
用例:
[root@golet /]# stat /root File: `/root' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 259075 Links: 26 Access: (0550/dr-xr-x---) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-16 10:58:21.679314558 +0800 Modify: 2016-08-14 00:36:28.833314963 +0800 Change: 2016-08-14 00:36:28.833314963 +0800
1.5. touch命令
touch – change file timestamps
touch [OPTION]… FILE…
-c: 指定的文件路徑不存在時不予創建;
-a: 僅修改access time;
-m:僅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]
用例:
[root@golet tmp]# touch xiaoxin [root@golet tmp]# ll xiaoxin -rw-r--r-- 1 root root 0 Aug 16 15:00 xiaoxin
1.6.cp命令:
作用:文件復制
基本用法:
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE
參數:
-i:交互式復制,即覆蓋之前提醒用戶確認;
-f:強制覆蓋目標文件;
-r, -R:遞歸復制目錄;
-d:復制符號鏈接文件本身,而非其指向的源文件;
-a:-dR –preserve=all, archive,用于實現歸檔;
–preserv=
mode:權限
ownership:屬主和屬組
timestamps: 時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
用例:
[root@golet tmp]# cp -a xiaoxin xiaoxin1 [root@golet tmp]# mkdir test [root@golet tmp]# cp -a aa.txt aaa.txt test/ [root@golet tmp]# ls aaa.txt aa.txt test xiaoxin xiaoxin1 [root@golet tmp]# tree . ├── aaa.txt ├── aa.txt ├── test │ ├── aaa.txt │ └── aa.txt ├── xiaoxin └── xiaoxin1 1 directory, 6 files
1.7.mv命令:
作用:文件重命名
基本用法:
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE..
參數:
-i:交互式;
-f:force
用例:
[root@golet tmp]# ls aaa.txt aa.txt test xiaoxin xiaoxin1 [root@golet tmp]# mv xiaoxin movexiaoxin [root@golet tmp]# ll total 8 -rw-r--r-- 1 root root 0 Aug 7 14:54 aaa.txt -rw-r--r-- 1 root root 772 Aug 14 00:03 aa.txt -rw-r--r-- 1 root root 0 Aug 16 15:00 movexiaoxin drwxr-xr-x 2 root root 4096 Aug 16 15:34 test -rw-r--r-- 1 root root 0 Aug 16 15:00 xiaoxin1
8.rm命令:
作用: 刪除文件或者目錄
基本用法: rm [OPTION]… FILE…
參數:
-i: 交互式
-f: 強制覆蓋
-r: 遞歸刪除
注意:刪除目錄:rm -rf /PATH/TO/DIR
危險操作:rm -rf /*
注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄;(模擬回收站)
用例:
[root@golet tmp]# ls aaa.txt aa.txt movexiaoxin test xiaoxin1 [root@golet tmp]# rm -rf test [root@golet tmp]# rm -i xiaoxin1 rm: remove regular empty file `xiaoxin1'? y [root@golet tmp]# ls aaa.txt aa.txt movexiaoxin
二、bash的基礎特性:
命令補全:
shell程序在接收到用戶執行命令的請求,分析完成之后,最左側的字符串會被當作命令;
命令查找機制:
查找內部命令;
根據PATH環境變量中設定的目錄,自左而右逐個搜索目錄下的文件名;
給定的打頭字符串如果能惟一標識某命令程序文件,則直接補全;
不能惟一標識某命令程序文件,再擊tab鍵一次,會給出列表;
路徑補全:
在給定的起始路徑下,以對應路徑下的打頭字串來逐一匹配起始路徑下的每個文件:
tab:
如果能惟一標識,則直接補全;
否則,再一次tab,給出列表;
2.1 bash的基礎特性之:命令行展開
~:自動展開為用戶的家目錄,或指定的用戶的家目錄;
{}:可承載一個以逗號分隔的路徑列表,并能夠將其展開為多個路徑;
例如:/tmp/{a,b} 相當于 /tmp/a /tmp/b
問題1: tmp目錄下創建a_c,a_d,b_c,b_d
[root@xiaoxin tmp]# mkdir -v {a,b}_{c,d} mkdir: created directory `a_c' mkdir: created directory `a_d' mkdir: created directory `b_c' mkdir: created directory `b_d' [root@xiaoxin tmp]# ls a a_c a_d b b_c b_d
問題2: 創建如下目錄結構:
/tmp/mysysroot/
|– bin
|– etc
| `– sysconfig
| `– network-scripts
|– sbin
|– usr
| |– bin
| |– lib
| |– lib64
| |– local
| | |– bin
| | |– etc
| | |– lib
| | `– sbin
| `– sbin
`– var
|– cache
|– log
`– run
[root@xiaoxin tmp]# mkdir -pv /tmp/mylinux/{bin,sbin,etc/sysconfig/network-scripts,usr/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}} mkdir: created directory `/tmp/mylinux' mkdir: created directory `/tmp/mylinux/bin' mkdir: created directory `/tmp/mylinux/sbin' mkdir: created directory `/tmp/mylinux/etc' mkdir: created directory `/tmp/mylinux/etc/sysconfig' mkdir: created directory `/tmp/mylinux/etc/sysconfig/network-scripts' mkdir: created directory `/tmp/mylinux/usr' mkdir: created directory `/tmp/mylinux/usr/bin' mkdir: created directory `/tmp/mylinux/usr/sbin' mkdir: created directory `/tmp/mylinux/usr/local' mkdir: created directory `/tmp/mylinux/usr/local/bin' mkdir: created directory `/tmp/mylinux/usr/local/sbin' mkdir: created directory `/tmp/mylinux/usr/local/etc' mkdir: created directory `/tmp/mylinux/usr/local/lib' mkdir: created directory `/tmp/mylinux/usr/lib' mkdir: created directory `/tmp/mylinux/usr/lib64' mkdir: created directory `/tmp/mylinux/var' mkdir: created directory `/tmp/mylinux/var/cache' mkdir: created directory `/tmp/mylinux/var/log' mkdir: created directory `/tmp/mylinux/var/run'
2.2 bash的基礎特性:命令的執行狀態結
命令執行的狀態結果:
bash通過狀態返回值來輸出此結果:
成功:0
失?。?-255
[root@xiaoxin tmp]# ls a a_c a_d b b_c b_d mylinux [root@xiaoxin tmp]# echo $? 0 [root@xiaoxin tmp]# ls e ls: cannot access e: No such file or directory [root@xiaoxin tmp]# echo $? 2 [root@xiaoxin tmp]#
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中;
命令正常執行時,有的還回有命令返回值:
根據命令及其功能不同,結果各不相同;
引用命令的執行結果:
$(COMMAND)
或`COMMAND`
[root@xiaoxin tmp]# aa=$(ifconfig seth0|grep -o 'inet.*[0-9]$'|awk -F '[: ]' '{print $3}') [root@xiaoxin tmp]# echo $aa 118.193.244.142
三、文件
3.1 文件元數據:
元數據分類兩類:
元數據:metadata
元數據指用來描述一個文件的特征的系統數據,諸如訪問權限、文件擁有
者以及文件數據塊的分布信息(inode…)等等
數據: data
普通文件中的實際數據
3.2 文件時間戳信息
3.2.1 查看文件時間戳信息
[root@mcloud logs]# stat /root/ File: `/root/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 801h/2049d Inode: 1700609 Links: 22 Access: (0550/dr-xr-x---) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-16 08:56:13.945460188 +0800 Modify: 2016-08-16 16:49:53.295440500 +0800 Change: 2016-08-16 16:49:53.295440500 +0800
3.2.2 修改文件時間戳信息
[root@mcloud logs]# stat /root/ File: `/root/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 801h/2049d Inode: 1700609 Links: 22 Access: (0550/dr-xr-x---) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-16 08:56:13.945460188 +0800 Modify: 2016-08-16 16:49:53.295440500 +0800 Change: 2016-08-16 16:49:53.295440500 +0800 [root@mcloud logs]# touch -a /root/ [root@mcloud logs]# stat /root/ File: `/root/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 801h/2049d Inode: 1700609 Links: 22 Access: (0550/dr-xr-x---) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-16 17:19:21.914439275 +0800 Modify: 2016-08-16 16:49:53.295440500 +0800 Change: 2016-08-16 17:19:21.914439275 +0800
四. 別名以及命令結果引用
4.1:定義別名
[root@xiaoxin tmp]# alias xiaoxin='ls -l' [root@xiaoxin tmp]# xiaoxin total 28 drwxr-xr-x 2 root root 4096 Aug 16 16:15 a drwxr-xr-x 2 root root 4096 Aug 16 16:43 a_c drwxr-xr-x 2 root root 4096 Aug 16 16:43 a_d drwxr-xr-x 2 root root 4096 Aug 16 16:15 b drwxr-xr-x 2 root root 4096 Aug 16 16:43 b_c drwxr-xr-x 2 root root 4096 Aug 16 16:43 b_d drwxr-xr-x 7 root root 4096 Aug 16 16:44 mylinux
4.2: 取消定義別名
[root@xiaoxin tmp]# unalias xiaoxin [root@xiaoxin tmp]# xiaoxin -bash: xiaoxin: command not found
4.3:命令結果引用
[root@xiaoxin tmp]# echo $(ls) a a_c a_d b b_c b_d mylinux
五. 文件操作
5.1 文件查看
5.1.1 顯示/var目錄下所有以1開頭,以一個小寫字符結尾,且中間至少出現一位數字
(可以有其他字符)的文件或者目錄
[root@golet var]# ls /var/1*[0-9]*[a-z] /var/1as456sada /var/1x4seassda:
5.1.2 顯示/etc目錄下,以任意字符開頭,且以非數字結尾的文件或目錄
[root@golet var]# ls -l /etc/*[a-zA-Z]
5.1.3 顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其他任意長度字符的文件或目錄
[root@golet var]# ls /etc/[^a-zA-Z]* /etc/123ssss
5.2 文件創建
5.2.1 在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形式:
tfile-2016-08-19
[root@golet var]# touch /tmp/tfile-$(date -I)
5.3 文件復制
5.3.1 復制/etc目錄下所有以p開頭,以非數字結尾的 文件或目錄到/tmp/mytest1目錄中
[root@app02 mytest1]# cp -a /etc/p*[a-zA-Z] ./ [root@app02 mytest1]# ls pam.d pcmcia plymouth popt.d prelink.cache printcap protocols pango pinforc pm postfix prelink.conf profile pulse
5.3.2 復制/etc目錄下所有以d結尾的文件或者目錄到/tmp/mytest2目錄中
[root@app02 mytest2]# cp -a /etc/*d ./ [root@app02 mytest2]# ls bash_completion.d dracut.conf.d ipsec.d modprobe.d popt.d rc2.d blkid event.d ld.so.conf.d motd prelink.conf.d rc3.d chkconfig.d ha.d libibverbs.d oddjobd.conf.d profile.d rc4.d
5.3.3 復制/etc目錄下所有以l或者m 或者n 開頭,以.conf 結尾的文件至/tmp/mytest3目錄中
[root@app02 mytest3]# cp /etc/[lmn]*.conf ./ [root@app02 mytest3]# ls ld.so.conf libuser.conf mke2fs.conf nfsmount.conf ntp.conf libaudit.conf logrotate.conf modprobe.conf nsswitch.conf
原創文章,作者:xiaoxin,如若轉載,請注明出處:http://www.www58058.com/36307
寫的很好,排版也很棒,加油,創建目錄的題目第2個不對