@(Linux)[系統管理]
1. 目錄管理類命令
1.1 cd命令
格式:cd [-L|[-P [-e]] [-@]] [dir]
被你忽略的小知識:
在這里科普一個小小的知識點,就是關于cd -為什么可以自由的在當前目錄和之前目錄相互切換?
其實,在我們的 Shell 的環境變量當中保存了兩個相關的環境變量,即為PWD和OLDPWD。顧名思義,我們很容易會想到當我們執行命令時,實際上就是在這個兩個環境變量之間切換。我們可以使用echo $PWD、echo $OLDPWD或者env命令來查看環境變量信息。
實例演示:
[root@localhost ~]# cd /home/ #切換到home目錄
[root@localhost home]# cd - #返回切換到home前的目錄
/root
[root@localhost ~]# cd ../ #切換到上一級目錄
[root@localhost /]# cd ~ #切換當前用戶的home目錄
1.2 pwd命令
pwd - print name of current/working directory
格式:pwd [OPTION]...
實例演示:
[root@rudder home]# pwd #顯示當前目錄
/home
[root@web mail]# pwd -P #目錄是軟連接,顯示實際物理地址
/var/spool/mail
[root@web mail]# pwd -L #-L顯示,邏輯地址
/var/mail
1.3 mkdir命令
mkdir - make directories
格式:mkdir [OPTION]... DIRECTORY...
參數選項:
-m, --mode=模式
設置權限模式(類似chmod),而不是rwxrwxrwx 減umask
-p, --parents
需要時創建目標目錄的上層目錄,但即使這些目錄已存在也不當作錯誤處理
-v, --verbose
每次創建新目錄都顯示信息
實例演示:
[root@localhost ~]# mkdir aaa #創建目錄
[root@localhost ~]# mkdir -m a=rw bbb #創建指定屬性的目錄
[root@localhost ~]# mkdir -p 111/abc #創建目錄,父目錄存在,建之
練習測試:
(1) 如何創建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b
mkdir /tmp/x/{y1,y2}/{a,b}
(2) 如何創建x_m, y_m, x_n, y_n
mkdir {x,y}_{m,n}
(3) 如何創建/tmp/bin, /tmp/sbin, /tmp/usr, /tmp/usr/bin, /tmp/usr/sbin
mkdir -p /tmp/{bin,sbin,usr/{bin,sbin}}
1.4 rmdir命令
rmdir - remove empty directories
格式:rmdir [OPTION]... DIRECTORY...
參數選項:
--ignore-fail-on-non-empty
忽略僅由目錄非空產生的所有錯誤
-p, --parents
刪除指定目錄及其上級文件夾,例如"rmdir -p a/b/c"與"rmdir a/b/c a/b a" 基本相同
-v, --verbose
輸出處理的目錄詳情
--help
顯示此幫助信息并退出
--version
顯示版本信息并退出
實例演示:
[root@localhost ~]# rmdir test #刪除test目錄,注意必須是空目錄
[root@localhost ~]# rmdir -p a/b/c #刪除指定目錄及其上級文件夾
1.5 tree命令
tree - list contents of directories in a tree-like format
格式:tree [OPTION] [PATH]
參數選項:
-a
顯示所有文件和目錄,全部深度
-A
使用ASNI繪圖字符顯示樹狀圖而非以ASCII字符組合
-C
在文件和目錄清單加上色彩,便于區分各種類型
-d
顯示目錄名稱而非內容,常用選項
-D
列出文件或目錄的更改時間
-f
在每個文件或目錄之前,顯示完整的相對路徑名稱
-F
在執行文件,目錄,Socket,符號連接,管道名稱名稱,各自加上"*","/","=","@","|"號
-g
列出文件或目錄的所屬群組名稱,沒有對應的名稱時,則顯示群組識別碼
-i
不以階梯狀列出文件或目錄名稱
-I
不顯示符合范本樣式的文件或目錄名稱
-l
如遇到性質為符號連接的目錄,直接列出該連接所指向的原始目錄
-L level
指定顯示的層級數目,常用選項
-n
不在文件和目錄清單加上色彩
-N
直接列出文件和目錄名稱,包括控制字符
-p
列出權限標示
-P
只顯示符合范本樣式的文件或目錄名稱
-q
用"?"號取代控制字符,列出文件和目錄名稱
-s
列出文件或目錄大小
-t
用文件和目錄的更改時間排序
-u
列出文件或目錄的擁有者名稱,沒有對應的名稱時,則顯示用戶識別碼
-x
將范圍局限在現行的文件系統中,若指定目錄下的某些子目錄,其存放于另一個文件系統上,則將該子目予以排除在尋找范圍外
實例演示:
[root@localhost ~]# tree -L 2 #-L n 只顯示 n 層目錄 (n 為數字)
[root@localhost ~]# tree -t #-t 用文件和目錄的更改時間排序
[root@localhost ~]# tree -r #-r 以相反次序排列
[root@localhost ~]# tree -F #-F 在執行文件,目錄,Socket,符號連接,管道名稱名稱,各自加上"*","/","=","@","|"號
[root@localhost ~]# tree -f #在每個文件或目錄之前,顯示完整的相對路徑名稱
[root@localhost ~]# tree -d #只顯示目錄
[root@localhost ~]# tree -a #顯示所有文件和目錄
1.6 ls命令
ls - list directory contents
格式:
ls [OPTION]... [DIR]...
顯示指定路徑下的文件列表
參數選項:
-a, --all:
顯示所有文件,包括隱藏文件
-l
長格式顯示
-h, --human-readable
單位化顯示
-d
顯示目錄自身的相關屬性;通常要與-l一起使用
-r, --reverse
逆序顯示
-R, --recursive
遞歸
實例演示:
[root@localhost dev]# ls -d */
block/ bus/ cpu/ fd/ input/ net/ raw/ snd/
[root@localhost ~]# ll -Z -d /var/www/html/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
[root@localhost ~]# ls -l
總用量 8
drwxr-xr-x 2 root root 4096 4月 27 12:34 bak
drwxr-xr-x 4 tnak tnak 4096 4月 28 14:25 tank
2. 文本文件查看類命令
2.1 more命令
more - file perusal filter for crt viewing
格式:more [options] file...
參數選項:
-d
顯示翻頁及退出提示
實例演示:
[root@localhost ~]# more test.php #查看文件
[root@localhost ~]# netstat -tpnl |more #常用方式,分頁顯示
2.2 less命令
less - opposite of more
格式:less [OPTIONS...] FILE...
實例演示:
[root@localhost ~]# less test.php #查看文件
[root@localhost ~]# netstat -tpnl |less #常用方式,分頁顯示
2.3 head命令
head - output the first part of files
格式:head [OPTION]... [FILE]...
參數選項:
-c, --bytes=[-]K
指定獲取前#字節
-n, --lines=[-]K
指定獲取前#行
-q, --quiet, --silent
不顯示包含給定文件名的文件頭
實例演示:
[root@localhost ~]# head /etc/passwd #默認,顯示開頭前10行
[root@localhost ~]# head -k /etc/passwd #顯示開頭前k行
[root@localhost ~]# head -q -n k file1 file2 file3 #顯示多文件開頭前k行,并且不顯示文件名的文件頭
[root@localhost ~]# head -n -k /etc/passwd #除最后k行外,顯示剩余全部內容
2.4 tail命令
tail - output the last part of files
格式:tail [OPTION]... [FILE]...
參數選項:tail [OPTION]... [FILE]...
-c #
指定獲取后#字節
-n #
指定獲取后#行
-f
跟蹤顯示文件新追加的內容;
實例演示:
[root@localhost ~]# tail /etc/passwd #默認,顯示最后10 行。
[root@localhost ~]# tail -n 2 /etc/passwd #顯示最后2行
[root@localhost ~]# tail -q -n k file1 file2 file3 #顯示多文件最后k行,并且不顯示文件名的文件頭
[root@localhost ~]# tail -n +k /etc/passwd #從開頭第k字節處開始輸出。
[root@localhost ~]# tail -f /var/log/messages #參數-f使tail不停地去讀最新的內容,因此有實時監視的效果,用Ctrl+c來終止
[root@localhost ~]# tail -n+10 file.txt | head -1 #顯示file.txt的第10行
3. 文件的時間戳管理工具
3.1 touch命令
touch - change file timestamps
被你忽略的小知識:
三個時間戳:
access time:訪問時間,簡寫為atime,讀取文件內容
modify time: 修改時間, mtime,改變文件內容(數據)
change time: 改變時間, ctime,元數據發生改變
格式:touch [OPTION]... FILE...
參數選項:
-a
只更改訪問時間
-d, --date=字符串
使用指定字符串表示時間替代當前時間
-m
只更改修改時間
-r, --reference=文件
使用指定文件的時間屬性替代當前時間
-t STAMP
使用[[CC]YY]MMDDhhmm[.ss] 格式的時間替代當前時間
--time=WORD
使用WORD 指定的時間:access、atime、use 都等于-a選項的效果,而modify、mtime 等于-m 選項的效果
--help
顯示此幫助信息并退出
--version
顯示版本信息并退出
請注意:-d 和-t 選項可接受不同的時間/日期格式
實例演示:
[root@localhost ~]# touch test.php #將test.php的檔案時間改為,當前時間,文件不存在建之
[root@localhost ~]# touch -c -t 05061803 test.php #將檔案時間改為,5月6日18點3分
[root@localhost ~]# touch -r abc.php test.php #將test.php檔案改成根abc.php一樣
4. 文件管理類命令
4.1 cp命令
cp - copy files and directories
格式:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
參數選項:
-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
實例演示:
[root@localhost ~]# cp -p test.rb /home/test #將test.rb copy到test目錄,并且保留原文件的屬性
[root@localhost ~]# cp -r Dir/ /home/test #將Dir目錄copy到test目錄下
[root@localhost ~]# cp -fr Dir/* /home/test #將Dir下面的所有文件強制copy到test目錄下
[root@localhost ~]# cp test.rb{,.bak} #備份test.rb,并在尾部加上.bak后綴
4.2 mv命令
mv - move (rename) files
格式:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
參數選項:
-i
交互式
-f
強制
實例演示:
[root@localhost ~]# mv abc abc.php #將abc移動成abc.php
[root@localhost ~]# mv test.php{,.sh} #將test.php增加后輟
[root@localhost ~]$ mv -t ./database 1.sql #將1.sql移動到database目錄下
[root@localhost ~]$ mv aaa bbb #將目錄或者文件重命名,如果存在bbb目錄,則是將aaa移到bbb目錄下
4.3 rm命令
rm - remove files or directories
格式:rm [OPTION]... FILE...
參數選項:
-i
交互式
-f
強制刪除
-r
遞歸
實例演示:
[root@localhost ~]# rm test.php #刪除文件需要確認
[root@localhost ~]# rm -f test.php #強制刪除文件不確認
[root@localhost ~]# rm -rfv ./test #強制刪除當前的test目錄,并顯示刪除的詳細過程
5. 系統管理類命令
5.1 shotdown命令
5.2 reboot命令
5.3 poweroff命令
5.4 halt命令
5.5 w命令
5.6 who命令
思維導圖
Linux中你不得不知道管理類命令