1、Linux上的目錄與文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
1.1 mkdir 創建目錄
使用方法:mkdir [OPTION]… DIRECTORY…
常用選項:
-p:按需創建父目錄
-m:創建目錄權限
-v:輸出詳細創建目錄過程
實例: 創建/tmp/test2/test3目錄,定義權限為rwxrw-rw-,并詳細顯示創建目錄過程。
~]# mkdir -pv -m 766 /tmp/test2/test3
mkdir: created directory `/tmp/test2'
mkdir: created directory `/tmp/test2/test3'
~]# ls -ld /tmp/test2/test3
drwxrw-rw- 2 root root 4096 Oct 7 08:42 /tmp/test2/test3
1.2 rmdir命令
rmdir是常用的命令,該命令的功能是刪除空目錄,一個目錄被刪除之前必須是空的。(注意,rm – r dir命令可代替rmdir,但是有很大危險性。)刪除某目錄時也必須具有對父目錄的寫權限。
1.命令格式:
rmdir [選項]… 目錄…
2.命令功能:
該命令從一個目錄中刪除一個或多個子目錄項,刪除某目錄時也必須具有對父目錄的寫權限。
3.命令參數:
– p 遞歸刪除目錄,當子目錄刪除后其父目錄為空時,也一同被刪除。如果整個路徑被刪除或者由于某種原因保留部分路徑,則系統在標準輸出上顯示相應的信息。
-v, –verbose顯示指令執行過程
實例:
[root@nfs_server ~]# rmdir -pv /tmp/test2/test3
rmdir: removing directory, `/tmp/test2/test3'
rmdir: removing directory, `/tmp/test2'
rmdir: removing directory, `/tmp'
rmdir: failed to remove directory `/tmp': Directory not empty 因為/tmp 不為空目錄,所以不能刪除。
1.3 cp 復制命令:
1.3.1 cp [Option] …[-T] SRC(源) DEST(目的)
(如果目標不存在,則新建DEST, 并將SRC中的內容填充至DEST中。
如果目標存在:如果DEST是文件,將SRC內容覆蓋至DEST中。此時建議為cp命令使用-i選項。
如果DEST是目錄,在DEST下新建與原文件同名的文件,并將SRC中內容填充至DEST中)
實例:~]# cp /etc/fstab /tmp/fstab.txt (fstab.txt 為文件)
~]# cp /etc/fstab /tmp/test (/tmp/test 為目錄)
~]# ls /tmp/test/
fstab
1.3.2 cp [Option] … SRC(原文件)…(可多個文件) DIRECTORY(新目錄)(表示復制到哪個目錄中)如src 為多個文件,Directory必須存在,且為目錄,其它情形均為錯。
cp SRC DEST src是目錄:
此時使用選項: -r (recursive 遞歸)
如果DEST目標不存在則創建指定目錄,復制源SRC目錄中所有目錄至目標中
如果目標存在:
如果目標是文件,則報錯
如果dest是目錄,則復制到此目錄中
常用選項:
-i: 交互式
-r: 遞歸復制目錄及其內部所有內容
-a: 歸檔, 相當于 -dR –preserv=all (即保留源文件或目錄的屬性,包括所有者、所屬組、權限與時間)
-d: –no-dereference –preserv=links (如果原文件是鏈接,則保留原鏈接格式)
–preserv=[Attr_list](保留屬性)
mode:權限
ownership:屬主屬組
timestamp:時間戳
links: 鏈接
xattr:特殊屬性
context: 上下文
all:所有
-p =–preserve=mode, ownership, timestamp
-v 顯示詳細信息
-t 復制時可把目標放在前面
-f –force 強制復制 (危險)
實例:
~]# cp -Pv /tmp/{lines.sh,fstab.txt} /tmp/test/
`/tmp/lines.sh' -> `/tmp/test/lines.sh'
`/tmp/fstab.txt' -> `/tmp/test/fstab.txt'
~]# ll /tmp/test/
total 8
-rw-r–r– 1 root root 805 Oct 7 16:08 fstab.txt
-rwxr-xr-x 1 root root 197 Oct 7 16:08 lines.sh
1.4 mv 命令(move縮寫) 用來移動文件或者將文件改名
1.命令格式:
mv [選項] 源文件或目錄 目標文件或目錄
2.命令功能:
mv命令中第二個參數類型的不同(是目標文件還是目標目錄),mv命令將文件重命名或將其移至一個新的目錄中。當第二個參數類型是文件時,mv命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。當第二個參數是已存在的目錄名稱時,源文件或目錄參數可以有多個,mv命令將各參數指定的源文件均移至目標目錄中。在跨文件系統移動文件時,mv先拷貝,再將原有文件刪除,而鏈至該文件的鏈接也將丟失。
3.命令參數:
-b :若需覆蓋文件,則覆蓋前先行備份。
-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
-u :若目標文件已經存在,且 source 比較新,才會更新(update)
-t :–target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目標目錄,該選項適用于移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在后。
4.命令實例:
實例一:文件改名
命令:
mv test.log test1.txt
實例二: 移動文件
]# mv ./{test1.txt,yum.log} ./test
]# ls ./test/
test1.txt yum.log
1.5 rm 命令: remove
刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對于鏈接文件,只是刪除了鏈接,原有文件均保持不變。rm是一個危險的命令,使用的時候要特別當心,尤其對于新手,否則整個系統就會毀在這個命令(比如在/(根目錄)下執行rm * -rf)
1.命令格式:
rm [選項] 文件…
2.命令功能:
刪除一個目錄中的一個或多個文件或目錄,如果沒有使用- r選項,則rm不會刪除目錄。如果使用 rm 來刪除文件,通常仍可以將該文件恢復原狀。
3.命令參數:
-f, –force 忽略不存在的文件,從不給出提示。
-i, –interactive 進行交互式刪除
-r, -R, –recursive 指示rm將參數中列出的全部目錄和子目錄均遞歸地刪除。
-v, –verbose 詳細顯示進行的步驟
–help 顯示此幫助信息并退出
–version 輸出版本信息并退出
4.命令實例:
一: 刪除文件,系統會詢問是否刪除
~]# rm test1.txt
rm:是否刪除普通空文件 "test1.txt"?
說明:
輸入rm test1.txt 命令后,系統會詢問是否刪除,輸入y后就會刪除文件,不想刪除則數據n。
二:強行刪除file,系統不再提示。
命令:
]# rm -f test1.txt
三: 刪除文件時進行交互式詢問
命令:
~]# rm -i {test1.log,test.log}
rm:是否刪除普通空文件 "test1.log"?y
rm:是否刪除普通空文件 "test.log"?y
四:將 test子目錄及子目錄中所有檔案刪除
命令:
~]# rm -r ./test
rm:是否進入目錄"./test"? y
rm:是否刪除普通空文件 "./test/test1.txt"?y
rm:是否刪除普通空文件 "./test/yum.log"?y
rm:是否刪除目錄 "./test"?y
五: 自定義回車站功能:
命令:
~]# alias rm='myrm'
~]# cd /tmp/
tmp]# myrm(){ D=/tmp/$( date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
tmp]# touch 1.log 2.log 3.log
tmp]# ls
1.log 2.log 3.log
tmp]# rm [123].log
moved to /tmp/20161007180817 ok
tmp]# ll /tmp/20161007180817/
總用量 0
-rw-r–r–. 1 root root 0 10月 7 18:07 1.log
-rw-r–r–. 1 root root 0 10月 7 18:07 2.log
-rw-r–r–. 1 root root 0 10月 7 18:07 3.log
[root@localhost tmp]# ll
2、bash 的工作特性之命令執行狀態返回值和命令行轉開所涉及的內容及其示例演示。
bash 的基礎特性: 命令的執行狀態結果:
bash 通過狀態返回值來輸出此結果:
成功 : 0
失敗: 1 – 255
命令執行完成功之后,其狀態返回值保存于bash 的特殊變量$?中;
]# echo $?
引用命令的執行結果:
$(COMMAND)或 $`COMMAND`
例如 : 創建以時間的目錄
]# date +%H-%M-%S
17-46-47
]# mkdir $(date +%H-%M-%S)
17-47-51
bash 的基于特性: 引用
強引號: ‘ ’單引號
弱引用: “ ” 雙引號
命令引用: · · 反引號,建議用$() , 替代;
bash基礎特性: 快捷鍵
Ctrl + a : 跳轉到命名行首部。
Ctrl + e : 跳轉到命名行首尾;
Ctrl + u: 刪除行首至光標所在處之間的所有字符;
Ctrl + k: 刪除光標所在處至行尾的所有字符;
Ctrl + l : 相當于clear 清除鍵。
3、請使用命令行展開功能來完成以下練習:
(1) 、創建/tmp目錄下的: a_c, a_d, b_c,b_d
]# mkdir {a,b}_{c,d}
]# ls
a_c a_d b_c b_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 /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}
mkdir: 已創建目錄 "/tmp/mylinux"
mkdir: 已創建目錄 "/tmp/mylinux/bin"
mkdir: 已創建目錄 "/tmp/mylinux/boot"
mkdir: 已創建目錄 "/tmp/mylinux/boot/grub"
mkdir: 已創建目錄 "/tmp/mylinux/dev"
mkdir: 已創建目錄 "/tmp/mylinux/etc"
mkdir: 已創建目錄 "/tmp/mylinux/etc/rc.d"
mkdir: 已創建目錄 "/tmp/mylinux/etc/rc.d/init.d"
mkdir: 已創建目錄 "/tmp/mylinux/etc/sysconfig"
mkdir: 已創建目錄 "/tmp/mylinux/etc/sysconfig/network-scripts"
mkdir: 已創建目錄 "/tmp/mylinux/lib"
mkdir: 已創建目錄 "/tmp/mylinux/lib/modules"
mkdir: 已創建目錄 "/tmp/mylinux/lib64"
mkdir: 已創建目錄 "/tmp/mylinux/proc"
mkdir: 已創建目錄 "/tmp/mylinux/sbin"
mkdir: 已創建目錄 "/tmp/mylinux/sys"
mkdir: 已創建目錄 "/tmp/mylinux/tmp"
mkdir: 已創建目錄 "/tmp/mylinux/usr"
mkdir: 已創建目錄 "/tmp/mylinux/usr/local"
mkdir: 已創建目錄 "/tmp/mylinux/usr/bin"
mkdir: 已創建目錄 "/tmp/mylinux/usr/bin/sbin"
mkdir: 已創建目錄 "/tmp/mylinux/var"
mkdir: 已創建目錄 "/tmp/mylinux/var/lock"
mkdir: 已創建目錄 "/tmp/mylinux/log"
mkdir: 已創建目錄 "/tmp/mylinux/log/run"
4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
元數據包含文件的權限,大小,擁有者,組以及修改時間等信息,可用ls -l命令查看。用touch命令修改時間戳信息。如:touch -t [YYYYMMDDhhmm] FILE
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
使用alias定義個別名,alias aliasname = Command + option
使用管道引用另一個命令執行結果, 如 ps -ef |grep httpd
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
命令:
]# ls /var/l*[[:digit:]]*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
命令:
]# ls /etc/[[:digit:]]*[^[:digit:]]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
命令:
]# ls /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
]# touch tfile$(date +%Y-%m-%d-%H-%M-%S)
]# ls
tfile2016-10-07-20-46-51
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
mkdir -p /tmp/mytest1
cp /etc/p*[^[:digit:]] /tmp/mytest1/
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
]# mkdir -p /tmp/mytest2
cp -r /etc/*.d /tmp/mytest2
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
mkdir -p /tmp/mytest3
cp /etc/[lmn]*.conf /tmp/mytest3/
原創文章,作者:goodwin,如若轉載,請注明出處:http://www.www58058.com/50108