Linux雲計算-03_必備基礎命令


Linux系統啟動默認為字符界面,一般不會啟動圖形界面,所以對命令行的熟練程度能更加方便、高效的管理Linux系統。

本章介紹Linux系統必備命令各項參數及功能場景,Linux常見命令包括:cd、ls、pwd、mkdir、rm、cp、mv、touch、cat、head、tail、chmod、vim等。

1 cd命令詳解

cd命令主要用於目錄切換,例如:cd /home切換至/home目錄,cd /root表示切換至/root目錄 ;cd ../切換至上一級目錄;cd ./切換至當前目錄。

其中.和..可以理解為相對路徑,例如cd ./test表示以當前目錄為參考,表示相對於當前,而cd /home/test表示完整的路徑,理解為絕對路徑),如下所示:

[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# cd /tmp
[root@superman-vm01 tmp]# 
[root@superman-vm01 tmp]# cd /home
[root@superman-vm01 home]# 
[root@superman-vm01 home]# cd ..
[root@superman-vm01 /]# 
[root@superman-vm01 /]# cd ./home
[root@superman-vm01 home]# 
[root@superman-vm01 home]# cd /etc/rc.d/rc3.d
[root@superman-vm01 rc3.d]# 
[root@superman-vm01 rc3.d]# cd ../..
[root@superman-vm01 etc]# 

2 ls命令詳解

ls命令主要用於瀏覽目錄下的文件或者文件夾,使用方法參考:ls ./ 查看當前目錄所有的文件和目錄,ls -a 查看所有的文件,包括隱藏文件,以.開頭的文件,常用參數詳解如下:

-a, --all				    不隱藏任何以.開始的項目;
-A, --almost-all		    列出除.及..以外的任何項目;
    --author			    與-l同時使用時列出每個文件的作者;
-b, --escape			    以八進制溢出序列表示不可打印的字符;
    --block-size=大小	       塊以指定大小的字節為單位;
-B, --ignore-backups	    不列出任何以"~"字符結束的項目;
-d, --directory			    當遇到目錄時列出目錄本身而非目錄內的文件;
-D, --dired				    產生適合Emacs的dired模式使用的結果;
-f						    不進行排序,-aU選項生效,-lst選項失效;
-i, --inode				    顯示每個文件的inode號;
-I, --ignore=PATTERN	    不顯示任何符合指定shell PATTERN的項目;
-k						    即--block-size=1K;
-l						    使用較長格式列出信息;
-n, --numeric-uid-gid	    類似-l,但列出UID及GID號;
-N, --literal			    輸出未經處理的項目名稱 (如不特別處理控制字符) ;
-r, --reverse			    排序時保留順序;
-R, --recursive			    遞歸顯示子目錄;
-s, --size				    以塊數形式顯示每個文件分配的尺寸;
-S						    根據文件大小排序;
-t						    根據修改時間排序;
-u						    同-lt 一起使用:按照訪問時間排序並顯示;
						    同-l一起使用:顯示訪問時間並按文件名排序;
						    其他:按照訪問時間排序;
-U						    不進行排序;按照目錄順序列出項目;
-v						    在文本中進行數字(版本)的自然排序。

2.1 長格式顯示

-l 參數主要是可以看到文件的更詳細的信息。

[root@superman-vm01 ~]# ls -l /
total 24
lrwxrwxrwx.   1 root root    7 Jul  4 08:08 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Jul  4 08:22 boot
drwxr-xr-x   20 root root 3320 Jul  7 06:55 dev
drwxr-xr-x. 138 root root 8192 Jul  7 06:55 etc
drwxr-xr-x.   3 root root   22 Jul  4 08:17 home
lrwxrwxrwx.   1 root root    7 Jul  4 08:08 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Jul  4 08:08 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 Apr 11  2018 media
drwxr-xr-x.   2 root root    6 Apr 11  2018 mnt
drwxr-xr-x.   3 root root   16 Jul  4 08:13 opt
dr-xr-xr-x  187 root root    0 Jul  7 06:55 proc
dr-xr-x---.  15 root root 4096 Jul  6 08:42 root
drwxr-xr-x   39 root root 1220 Jul  7 06:55 run
lrwxrwxrwx.   1 root root    8 Jul  4 08:08 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 Apr 11  2018 srv
dr-xr-xr-x   13 root root    0 Jul  7 06:55 sys
drwxrwxrwt.  27 root root 4096 Jul  7 07:01 tmp
drwxr-xr-x.  13 root root  155 Jul  4 08:08 usr
drwxr-xr-x.  20 root root  282 Jul  4 08:22 var
[root@superman-vm01 ~]# 

-rw-r--r--

第一個橫行表示文件類型,常見有
-   普通文件:
d   目錄
l   鏈接文件
c   字符設備(即串行端口的接口設備,例如偽終端等)
b   塊設備(磁盤)
s   套接字文件(通常用在網絡數據連接)
p   管道文件

# Linux目錄結構:
/ 根目錄
/boot          放置linux系統啟動時的內核文件以及引導文件。
/dev           存放linux系統下的設備文件
/etc           系統配置文件存放的目錄
/home          系統默認的用戶家目錄
/lib,lib64     動態連接共享庫
/media         掛載可移動的設備
/opt           存放第三方軟件
/root          管理員家目錄
/bin,/sbin     可執行二進制命令
/run           臨時文件系統目錄
/srv           早期存放數據目錄
/tmp           存放臨時文件
/usr           應用程序目錄
/var           存放動態文件,比如日志
/mnt           臨時掛載目錄

2.2 顯示隱藏文件

-a參數可以顯示隱藏文件。

[root@superman-vm01 ~]# ls -a
.   anaconda-ks.cfg  .bash_logout   .bashrc  .config  .dbus    Documents  .esd_auth      initial-setup-ks.cfg  Music     Public  .tcshrc    Videos
..  .bash_history    .bash_profile  .cache   .cshrc   Desktop  Downloads  .ICEauthority  .local                Pictures  .ssh    Templates  .viminfo
[root@superman-vm01 ~]# 

3 pwd命令詳解

pwd命令主要用於顯示或者查看當前所在的目錄路徑,如下所示:

[root@superman-vm01 ~]# cd /etc
[root@superman-vm01 etc]# 
[root@superman-vm01 etc]# pwd
/etc
[root@superman-vm01 etc]# 
[root@superman-vm01 etc]# cd /etc/sysconfig/network-scripts/
[root@superman-vm01 network-scripts]# 
[root@superman-vm01 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@superman-vm01 network-scripts]# 
[root@superman-vm01 network-scripts]# cd /var/log
[root@superman-vm01 log]# 
[root@superman-vm01 log]# pwd
/var/log
[root@superman-vm01 log]#

4 mkdir命令詳解

mkdir命令主要用於創建目錄,用法mkdir dirname,命令后接目錄的名稱,常用參數詳解如下:

用法:mkdir [選項]... 目錄;若指定目錄不存在則創建目錄;
長選項必須使用的參數對於短選項時也是必需使用的;
-m, --mode=模式     		   設置權限模式(類似chmod),而不是rwxrwxrwx減umask;
-p, --parents       		需要時創建目標目錄的上層目錄,但即使這些目錄已存在也不當作錯誤處理;
-v, --verbose       		每次創建新目錄都顯示信息;
-Z, --context=CTX   		將每個創的目錄的SELinux 安全環境設置為CTX;
--help          			顯示此幫助信息並退出;
--version      			    顯示版本信息並退出。

4.1 遞歸創建目錄

-p 自動創建上級目錄,如果上級目錄不存在;如果目錄已經,則不創建,不會提示報錯。

[root@superman-vm01 ~]# mkdir /home/a/b       
mkdir: cannot create directory ‘/home/a/b’: No such file or directory
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# mkdir -p /home/a/b
[root@superman-vm01 ~]# 

4.2 指定目錄權限

-m 可以指定創建目錄時的權限。

[root@superman-vm01 ~]# mkdir /home/c
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# ls -l /home
total 0
drwxr-xr-x  3 root     root     15 Jul  7 07:27 a
drwxr-xr-x  2 root     root      6 Jul  7 07:31 c
drwx------. 4 superman superman 97 Jul  7 07:26 superman
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# mkdir -m 640 /home/d
[root@superman-vm01 ~]# 
[root@superman-vm01 ~]# ls -l /home
total 0
drwxr-xr-x  3 root     root     15 Jul  7 07:27 a
drwxr-xr-x  2 root     root      6 Jul  7 07:31 c
drw-r-----  2 root     root      6 Jul  7 07:32 d
drwx------. 4 superman superman 97 Jul  7 07:26 superman
[root@superman-vm01 ~]# 

5 rm命令詳解

rm 命令主要用於刪除文件或者目錄,用法 rm –rf test.txt (-r表示遞歸,-f表示強制),常用參數詳解如下:

用法:rm [選項]... 文件...刪除 (unlink) 文件。-f, --force            	    強制刪除。忽略不存在的文件,不提示確認;-i                    	    在刪除前需要確認;-I                    	    在刪除超過三個文件或者遞歸刪除前要求確認。此選項比-i 提示內容更少,但同樣可以阻止大多數錯誤發生;-r, -R, --recursive    	    遞歸刪除目錄及其內容;-v, --verbose          	    詳細顯示進行的步驟;--help                	    顯示此幫助信息並退出;--version             	    顯示版本信息並退出;默認時,rm 不會刪除目錄,使用--recursive(-r 或-R)選項可刪除每個給定的目錄,以及其下所有的內容;要刪除第一個字符為"-"的文件 (例如"-foo"),請使用以下方法之一:rm -- -foorm ./-foo

6 cp命令詳解

cp 命令主要用於拷貝文件,用法,cp old.txt /tmp/new.txt ,常用來備份,如果拷貝目錄需要加-r參數,常用參數詳解如下:

用法:cp [選項]... [-T] 源文件 目標文件 或:cp [選項]... 源文件... 目錄 或:cp [選項]... -t 目錄 源文件...將源文件復制至目標文件,或將多個源文件復制至目標目錄。長選項必須使用的參數對於短選項時也是必需使用的。-a, --archive                	    等於-dR --preserve=all;    --backup[=CONTROL        	    為每個已存在的目標文件創建備份;-b                           	    類似--backup 但不接受參數;    --copy-contents          	    在遞歸處理是復制特殊文件內容;-d                           	    等於--no-dereference --preserve=links;-f, --force                  	    如果目標文件無法打開則將其移除並重試(當 -n 選項;								    存在時則不需再選此項);-i, --interactive            	    覆蓋前詢問(使前面的 -n 選項失效);-H                           	    跟隨源文件中的命令行符號鏈接;-l, --link                   	    鏈接文件而不復制;-L, --dereference            	    總是跟隨符號鏈接;-n, --no-clobber             	    不要覆蓋已存在的文件(使前面的 -i 選項失效);-P, --no-dereference         	    不跟隨源文件中的符號鏈接;-p                           	    等於--preserve=模式,所有權,時間戳;    --preserve[=屬性列表     	     保持指定的屬性(默認:模式,所有權,時間戳),如果;								    可能保持附加屬性:環境、鏈接、xattr 等;-c                           	    same as --preserve=context;    --sno-preserve=屬性列表  	     不保留指定的文件屬性;    --parents                	    復制前在目標目錄創建來源文件路徑中的所有目錄;-R, -r, --recursive          	    遞歸復制目錄及其子目錄內的所有內容。

6.1 復制更新的文件

-u 只復制源文件有更新的,否則不執行。

#第一次將abc.txt復制到/home目錄:[root@superman-vm01 ~]# cat abc.txt123456[root@superman-vm01 ~]# [root@superman-vm01 ~]# cp abc.txt /home#更新文件[root@superman-vm01 ~]# echo "this is update" > abc.txt  [root@superman-vm01 ~]# cat abc.txtthis is update[root@superman-vm01 ~]# #-u參數復制:[root@superman-vm01 ~]# cp -u abc.txt /homecp: overwrite ‘/home/abc.txt’? y[root@superman-vm01 ~]# [root@superman-vm01 ~]# cat abc.txtthis is update[root@superman-vm01 ~]# #不更新文件,再次復制,並沒有進行替換:[root@superman-vm01 ~]# cp -u abc.txt /home[root@superman-vm01 ~]#

6.2 復制軟連接

-d|-a復制軟連接,這里要注意創建軟連接時最好為絕對路徑,否則可能會出現失效的軟連接。

[root@superman-vm01 ~]# ln -s /root/abc.txt abc1.txt[root@superman-vm01 ~]# [root@superman-vm01 ~]# ls -l total 12lrwxrwxrwx  1 root root   13 Jul  7 07:59 abc1.txt -> /root/abc.txt-rw-r--r--  1 root root   15 Jul  7 07:48 abc.txt-rw-------. 1 root root 2002 Jul  4 08:18 anaconda-ks.cfgdrwxr-xr-x. 2 root root    6 Jul  4 08:30 Desktopdrwxr-xr-x. 2 root root    6 Jul  4 08:30 Documentsdrwxr-xr-x. 2 root root    6 Jul  4 08:30 Downloads-rw-r--r--. 1 root root 2050 Jul  4 08:27 initial-setup-ks.cfgdrwxr-xr-x. 2 root root    6 Jul  4 08:30 Musicdrwxr-xr-x. 2 root root    6 Jul  4 08:30 Picturesdrwxr-xr-x. 2 root root    6 Jul  4 08:30 Publicdrwxr-xr-x. 2 root root    6 Jul  4 08:30 Templatesdrwxr-xr-x. 2 root root    6 Jul  4 08:30 Videos[root@superman-vm01 ~]# #如果直接復制,不帶參數,會導致軟連接失效,直接創建普通文件[root@superman-vm01 ~]# cp abc1.txt /data[root@superman-vm01 ~]# [root@superman-vm01 ~]# ls -l /datatotal 4-rw-r--r-- 1 root root 15 Jul  7 08:00 abc1.txt[root@superman-vm01 ~]# #加上參數:[root@superman-vm01 ~]# cp -d abc1.txt /datacp: overwrite ‘/data/abc1.txt’? y[root@superman-vm01 ~]# [root@superman-vm01 ~]# ls -l /datatotal 0lrwxrwxrwx 1 root root 13 Jul  7 08:00 abc1.txt -> /root/abc.txt[root@superman-vm01 ~]# 

6.3 備份復制

-S 復制同名文件到目的目錄時,對源文件進行備份,且自定義備份文件后綴名。

#第一次復制[root@superman-vm01 ~]# cp abc.txt /data[root@superman-vm01 ~]# [root@superman-vm01 ~]# ls /dataabc1.txt  abc.txt[root@superman-vm01 ~]# [root@superman-vm01 ~]# ls -l /datatotal 4lrwxrwxrwx 1 root root 13 Jul  7 08:00 abc1.txt -> /root/abc.txt-rw-r--r-- 1 root root 15 Jul  7 08:03 abc.txt[root@superman-vm01 ~]##第二次復制,對源文件進行備份:[root@superman-vm01 ~]# \cp -S ".`date +%F`" abc.txt /data[root@superman-vm01 ~]# [root@superman-vm01 ~]# ls /dataabc1.txt  abc.txt  abc.txt.2021-07-07[root@superman-vm01 ~]# [root@superman-vm01 ~]# ll /datatotal 8lrwxrwxrwx 1 root root 13 Jul  7 08:00 abc1.txt -> /root/abc.txt-rw-r--r-- 1 root root 15 Jul  7 08:05 abc.txt-rw-r--r-- 1 root root 15 Jul  7 08:03 abc.txt.2021-07-07[root@superman-vm01 ~]# 

6.4 通用參數

-a 如果參數都記不住,就記住它吧,可以實現遞歸,復制軟連接,保留文件屬性。

7 mv命令詳解

mv 命令主要用於重命名或者移動文件或者目錄,用法, mv old.txt new.txt,常用參數詳解如下:

用法:mv [選項]... [-T] 源文件 目標文件;或:mv [選項]... 源文件... 目錄;或:mv [選項]... -t 目錄 源文件;將源文件重命名為目標文件,或將源文件移動至指定目錄。長選項必須使用的參數對於短選項時也是必需使用的。      --backup[=CONTROL]       	    為每個已存在的目標文件創建備份;-b                             		類似--backup 但不接受參數;-f, --force                     	覆蓋前不詢問;-i, --interactive               	覆蓋前詢問;-n, --no-clobber                	不覆蓋已存在文件,如果您指定了-i、-f、-n 中的多個,僅最后一個生效;    --strip-trailing-slashes    	去掉每個源文件參數尾部的斜線;-S, --suffix=SUFFIX             	替換常用的備份文件后綴;-t, --target-directory=DIRECTORY	將所有參數指定的源文件或目錄;									移動至 指定目錄;-T, --no-target-directory       	將目標文件視作普通文件處理;-u, --update                    	只在源文件文件比目標文件新,或目標文件;									不存在時才進行移動;-v, --verbose         	      		詳細顯示進行的步驟;--help                         		顯示此幫助信息並退出;--version                       	顯示版本信息並退出。

8 touch命令詳解

touch 命令主要用於創建普通文件,用法為touch test.txt,如果文件存在,則表示修改當前文件時間,常用參數詳解如下:

用法:touch [選項]... 文件...將每個文件的訪問時間和修改時間改為當前時間;不存在的文件將會被創建為空文件,除非使用-c 或-h 選項;如果文件名為"-"則特殊處理,更改與標准輸出相關的文件的訪問時間;長選項必須使用的參數對於短選項時也是必需使用的;-a                   		只更改訪問時間;-c, --no-create      		不創建任何文件;-d, --date=字符串    		  使用指定字符串表示時間而非當前時間;-f                   		(忽略);-h, --no-dereference 		會影響符號鏈接本身,而非符號鏈接所指示的目的地;							(當系統支持更改符號鏈接的所有者時,此選項才有用);-m                   		只更改修改時間;-r, --reference=文件 		   使用指定文件的時間屬性而非當前時間;-t STAMP             		使用[[CC]YY]MMDDhhmm[.ss] 格式的時間而非當前時間;--time=WORD          		使用WORD 指定的時間:access、atime、use 都等於-a;							選項的效果,而modify、mtime 等於-m 選項的效果;--help            	 		顯示此幫助信息並退出;--version            		顯示版本信息並退出。

9 cat命令詳解

cat 命令主要用於查看文件內容,用法 cat test.txt 可以查看test.txt內容,常用參數詳解如下:

用法:cat [選項]... [文件]...將[文件]或標准輸入組合輸出到標准輸出。-A, --show-all        			等於-vET;-b, --number-nonblank 			對非空輸出行編號;-e                    		    等於-vE;-E, --show-ends       			在每行結束處顯示"$";-n, --number          		    對輸出的所有行編號;-s, --squeeze-blank   			不輸出多行空行;-t                    		    與-vT 等價;-T, --show-tabs       			將跳格字符顯示為^I;-u                    		    (被忽略);-v, --show-nonprinting			使用^ 和M- 引用,除了LFD和 TAB 之外;--help            			    顯示此幫助信息並退出;--version             		    顯示版本信息並退出。

9.1 查看文件內容

[root@superman-vm01 ~]# cat -n /etc/fstab     1     2  #     3  # /etc/fstab     4  # Created by anaconda on Sun Jul  4 08:07:23 2021     5  #     6  # Accessible filesystems, by reference, are maintained under '/dev/disk'     7  # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info     8  #     9  /dev/mapper/vg00-lv_root /                       xfs     defaults        0 0    10  UUID=0e73085e-969b-4e8e-8aa5-83120ce58f76 /boot                   xfs     defaults        0 0    11  /dev/mapper/vg00-lv_swap swap                    swap    defaults        0 0[root@superman-vm01 ~]# 

9.2 創建文件

# EOF表示結束符,可以自定義,如下:# 以覆蓋得方式寫文件[root@superman-vm01 ~]# cat abc.txtthis is update[root@superman-vm01 ~]# [root@superman-vm01 ~]# cat > abc.txt << EOF> this is superman> EOF[root@superman-vm01 ~]# [root@superman-vm01 ~]# cat abc.txtthis is superman[root@superman-vm01 ~]# # 以追加得方式寫文件[root@superman-vm01 ~]# cat abc.txtthis is superman[root@superman-vm01 ~]# [root@superman-vm01 ~]# cat >> abc.txt <<f> I am from Zhengzhou> f[root@superman-vm01 ~]# [root@superman-vm01 ~]# cat abc.txtthis is supermanI am from Zhengzhou[root@superman-vm01 ~]# 

10 head命令詳解

head命令主要用於查看文件內容,通常查看文件前10行,head -10 /var/log/messages可以查看該文件前10行的內容,常用參數詳解如下:

用法:head [選項]... [文件]...將每個指定文件的頭10 行顯示到標准輸出。如果指定了多於一個文件,在每一段輸出前會給出文件名作為文件頭。如果不指定文件,或者文件為"-",則從標准輸入讀取數據,長選項必須使用的參數對於短選項時也是必需使用的;-q, --quiet, --silent				不顯示包含給定文件名的文件頭;-v, --verbose        				總是顯示包含給定文件名的文件頭;--help               				顯示此幫助信息並退出;--version            				顯示版本信息並退出;-c,  --bytes=[-]K    				顯示每個文件的前K 字節內容,如果附加"-"參數,則除了每個文件的最后K字節數據外顯示剩余全部內容;-n, --lines=[-]K     				顯示每個文件的前K 行內容,如果附加"-"參數,則除了每個文件的最后K 行外顯示剩余全部內容。

11 tail命令詳解

tail命令主要用於查看文件內容,通常查看末尾10行,tail –fn 100 /var/log/messages可以實時查看該文件末尾100行的內容,常用參數詳解如下:

用法:tail [選項]... [文件]...顯示每個指定文件的最后10 行到標准輸出。若指定了多於一個文件,程序會在每段輸出的開始添加相應文件名作為頭。如果不指定文件或文件為"-" ,則從標准輸入讀取數據。長選項必須使用的參數對於短選項時也是必需使用的。-n, --lines=K              			輸出的總行數,默認為10行;-q, --quiet, --silent      			不輸出給出文件名的頭;--help            		   			顯示此幫助信息並退出;--version         		   			顯示版本信息並退出;-f, --follow[={name|descriptor}]	即時輸出文件變化后追加的數據;              -f, --follow 等於--follow=descriptor -F            即--follow=name –retry-c, --bytes=K         				輸出最后K字節;另外,使用-c +K 從每個文件的第K字節輸出。

12 chmod命令詳解

chmod命令主要用於修改文件或者目錄的權限,例如chmod o+w test.txt,賦予test.txt其他人w寫權限,常用參數詳解如下:

用法:chmod [選項]... 模式[,模式]... 文件... 或:chmod [選項]... 八進制模式 文件... 或:chmod [選項]... --reference=參考文件 文件,將每個文件的模式更改為指定值。-c, --changes         			類似 --verbose,但只在有更改時才顯示結果    --no-preserve-root  		不特殊對待根目錄(默認);    --preserve-root     		禁止對根目錄進行遞歸操作;-f, --silent, --quiet 			去除大部份的錯誤信息;-R, --recursive         		以遞歸方式更改所有的文件及子目錄;--help            				顯示此幫助信息並退出;--version         				顯示版本信息並退出;-v, --verbose         			為處理的所有文件顯示診斷信息;--reference=參考文件			  使用指定參考文件的模式,而非自行指定權限模式。

13 chown命令詳解

chown命令主要用於文件或者文件夾宿主及屬組的修改,命令格式例如chown –R root.root /tmp/test.txt,表示修改test.txt文件的用戶和組均為root,常用參數詳解如下:

用法:chown [選項]... [所有者][:[組]] 文件... 或:chown [選項]... --reference=參考文件 文件...更改每個文件的所有者和/或所屬組。當使用 --referebce 參數時,將文件的所有者和所屬組更改為與指定參考文件相同。-f, --silent, --quiet 去除大部份的錯誤信息--reference=參考文件			 使用參考文件的所屬組,而非指定值;-R, --recursive         		遞歸處理所有的文件及子目錄;-v, --verbose           		為處理的所有文件顯示診斷信息;-H         						命令行參數是一個通到目錄的符號鏈接,則遍歷符號鏈接;-L        						歷每一個遇到的通到目錄的符號鏈接;-P         						歷任何符號鏈接(默認);--help      					顯示幫助信息並退出;--version         				顯示版本信息並退出。

14 echo命令詳解

echo命令主要用於打印字符或者回顯,例如輸入echo ok,會顯示ok, echo ok > test.txt 則會把ok字符覆蓋test.txt內容。>表示覆蓋,原內容被覆蓋,>>表示追加,原內容不變。

例如echo ok >> test.txt,表示向test.txt文件追加OK字符,不覆蓋原文件里的內容,常用參數詳解如下:

使用-e擴展參數選項時,與如下參數一起使用,有不同含義,例如:\a 發出警告聲\b 刪除前一個字符\c 最后不加上換行符號;\f 換行但光標仍舊停留在原來的位置;\n 換行且光標移至行首;\r 光標移至行首,但不換行;\t 插入tab; \v 與\f相同;\\ 插入\字符;\033[30m 黑色字 \033[0m\033[31m 紅色字 \033[0m\033[32m 綠色字 \033[0m\033[33m 黃色字 \033[0m\033[34m 藍色字 \033[0m\033[35m 紫色字 \033[0m\033[36m 天藍字 \033[0m\033[37m 白色字 \033[0m\033[40;37m 黑底白字 \033[0m\033[41;37m 紅底白字 \033[0m\033[42;37m 綠底白字 \033[0m\033[43;37m 黃底白字 \033[0m\033[44;37m 藍底白字 \033[0m\033[45;37m 紫底白字 \033[0m\033[46;37m 天藍底白字 \033[0m\033[47;30m 白底黑字 \033[0m

echo顏色打印擴展,auto_lamp_v2.sh內容如下:

echo -e "\033[36mPlease Select Install Menu follow:\033[0m"echo -e "\033[32m1)Install Apache Server\033[1m"echo "2)Install MySQL Server"echo "3)Install PHP Server"echo "4)Configuration index.php and start LAMP server"echo -e "\033[31mUsage: { /bin/sh $0 1|2|3|4|help}\033[0m"

執行結果如圖所示:

image-20210707003248333

15 df命令詳解

df命令常用於磁盤分區查詢,常用命令df –h,查看磁盤分區信息,常用參數詳解如下:

用法:df [選項]... [文件]...顯示每個文件所在的文件系統的信息,默認是顯示所有文件系統。長選項必須使用的參數對於短選項時也是必需使用的。-a, --all                  顯示所有文件系統的使用情況,包括虛擬文件系統;-B, --block-size=SIZE      使用字節大小塊;-h, --human-readable       以人們可讀的形式顯示大小;-H, --si                   同-h,但是強制使用1000而不是1024;-i, --inodes               顯示inode 信息而非塊使用量;-k                         即--block-size=1K;-l, --local                只顯示本機的文件系統;    --no-sync              取得使用量數據前不進行同步動作(默認);-P, --portability          使用POSIX 兼容的輸出格式;    --sync                 取得使用量數據前先進行同步動作;-t, --type=類型          	  只顯示指定文件系統為指定類型的信息;-T, --print-type           顯示文件系統類型;-x, --exclude-type=類型  	  只顯示文件系統不是指定類型信息;--help            	       顯示幫助信息並退出;--version         	       顯示版本信息並退出。

16 du命令詳解

du命令常用於查看文件在磁盤中的使用量,常用命令du -sh,查看當前目錄所有文件及文件及的大小,常用參數詳解如下:

用法:du [選項]... [文件]... 或:du [選項]... --files0-from=F計算每個文件的磁盤用量,目錄則取總用量。長選項必須使用的參數對於短選項時也是必需使用的。-a, --all               		輸出所有文件的磁盤用量,不僅僅是目錄; --apparent-size    			    顯示表面用量,而並非是磁盤用量;雖然表面用量通常會小一些,但有時它會因為稀疏文件間的"洞"、內部碎片、非直接引用的塊等原因而變大;-B, --block-size=大小   		使用指定字節數的塊;-b, --bytes             		等於--apparent-size --block-size=1;-c, --total             		顯示總計信息;-H                     		等於--dereference-args (-D);-h, --human-readable    		以可讀性較好的方式顯示尺寸(例如:1K 234M 2G);    --si                		類似-h,但在計算時使用1000 為基底而非1024;-k                     		等於--block-size=1K;-l, --count-links       		    如果是硬連接,就多次計算其尺寸;-m                     		等於--block-size=1M;-L, --dereference       		找出任何符號鏈接指示的真正目的地;-P, --no-dereference    		    不跟隨任何符號鏈接(默認);-0, --null              		將每個空行視作0 字節而非換行符;-S, --separate-dirs     		    不包括子目錄的占用量;-s, --summarize         		只分別計算命令列中每個參數所占的總用量;-x, --one-file-system   		    跳過處於不同文件系統之上的目錄;-X, --exclude-from=文件 		排除與指定文件中描述的模式相符的文件;-D, --dereference-args  		    解除命令行中列出的符號連接;    --files0-from=F     		計算文件F中以NUL結尾的文件名對應占用的磁盤空,如果F 的值是"-",則從標准輸入讀入文件名。

如上為Linux初學者必備命令,當然Linux命令還有很多,后面章節會隨時學習新的命令。

17 vi|vim編輯器

vi是一個命令行界面下的文本編輯工具,最早在1976年由Bill Joy開發,當時名字叫做ex。vi支持絕大多數操作系統(最早在BSD上發布),並且功能已經十分強大

1991年Bram Moolenaar基於vi進行改進,發布了vim,加入了對GUI的支持。

隨着VIM更新發展,vim已經不是普通意義上的文本編輯器,而是被廣泛的作為在文本編輯、方本處理、代碼開發等用途,Linux中主流的文本編輯器包括:vi、vim、sublime、emacs、light table、eclipse、gedit等。

vim強大的編輯能力中很大部分是來自於其普通模式命令。vim的設計理念是命令的組合。

  • “5dd”5表示總共5行,刪除光標所在后的5行,包含光標行;
  • “d$” $"代表行尾,刪除到行尾的內容,包含光標;
  • “2yy”表示復制光標及后2行,包括光標行;
  • “%d” %代表全部或者全局,%d表示刪除文本所有的內容,也即是清空文檔所有的內容。

vim是一個主流開源的編輯器,其默認執行vim命令,會顯示幫助烏干達貧困的孩子,如圖為vim與鍵盤鍵位功能對應關系:

img

17.1 vim編輯器模式

Vim編輯器模式常用有三種,分別是:

  • 命令行模式;
  • 文本輸入模式;
  • 末行模式。

vim是vi的升級版本,它是安裝在Linux操作系統中的一個軟件,官網為:www.vim.org

在Linux Shell終端下默認執行vim命令,按Enter鍵后:

  • 默認進入命令行模式;
  • 在命令行模式按i進入文本輸入模式;
  • 按ESC進入命令行模式;
  • 按:進入末行模式。

17.2 vim編輯器必備

vim 編輯器最強大的功能,就在於內部命令及規則使用,如下為vim編輯器最常用的語法及規則:

命令行模式:可以刪除、復制、粘貼、撤銷,可以切換到輸入模式,輸入模式跳轉至命令行模式:按ESC鍵。yy 						復制光標所在行;nyy						復制n行;3yy						復制3行;p,P						粘貼;yw 						復制光標所在的詞組,不會復制標點符號;3yw						復制三個詞組;u  						撤消上一次;  U  						撤消當前所有;dd 						刪除整行;ndd                     刪除n行;x  						刪除一個字符;u  						逐行撤銷;dw 						刪除一個詞組;      a						從光標所在字符后一個位置開始錄入;i						從光標所在字符前一個位置開始錄入;I						從光標所在行的行首開始錄入;o						跳至光標所在行的下一行行首開始錄入;O						跳至光標所在行的上一行行首開始錄入;末行模式主要功能包括:查找、替換、末行保存、退出等;:w						保存;:q						退出;    :s/x/y      			替換1行;:wq         			保存退出;1,5s/x/y     			替換1,5行;:wq!        			強制保存退出;           1,$sx/y     			從第一行到最后一行;:q!						強制退出;:x						保存;/word					從前往后找,正向搜索;?word					從后往前走,反向搜索;:s/old/new/g      		將old替換為new,前提是光標一定要移到那一行;:s/old/new        		將這一行中的第一次出現的old替換為new,只替換第一個;:1,$s/old/new/g    		第一行到最后一行中的old替換為new;:1,2,3s/old/new/g  		第一行第二行第三行中的old改為new;

歡迎關注我的微信公眾號【超哥的IT私房菜】獲取更多技術干貨!

image-20210707074326947

​ 有什么吐槽或反饋意見,直接告訴我!
​ 我會解決您說的問題,進一步更好的服務您哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM