Linux雲端計算-03_必備基礎命令
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 -- -foo
rm ./-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.txt
123
456
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cp abc.txt /home
#更新檔案
[root@superman-vm01 ~]# echo "this is update" > abc.txt
[root@superman-vm01 ~]# cat abc.txt
this is update
[root@superman-vm01 ~]#
#-u引數複製:
[root@superman-vm01 ~]# cp -u abc.txt /home
cp: overwrite ‘/home/abc.txt’? y
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cat abc.txt
this 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 12
lrwxrwxrwx 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.cfg
drwxr-xr-x. 2 root root 6 Jul 4 08:30 Desktop
drwxr-xr-x. 2 root root 6 Jul 4 08:30 Documents
drwxr-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.cfg
drwxr-xr-x. 2 root root 6 Jul 4 08:30 Music
drwxr-xr-x. 2 root root 6 Jul 4 08:30 Pictures
drwxr-xr-x. 2 root root 6 Jul 4 08:30 Public
drwxr-xr-x. 2 root root 6 Jul 4 08:30 Templates
drwxr-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 /data
total 4
-rw-r--r-- 1 root root 15 Jul 7 08:00 abc1.txt
[root@superman-vm01 ~]#
#加上引數:
[root@superman-vm01 ~]# cp -d abc1.txt /data
cp: overwrite ‘/data/abc1.txt’? y
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ls -l /data
total 0
lrwxrwxrwx 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 /data
abc1.txt abc.txt
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ls -l /data
total 4
lrwxrwxrwx 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 /data
abc1.txt abc.txt abc.txt.2021-07-07
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# ll /data
total 8
lrwxrwxrwx 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.txt
this is update
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cat > abc.txt << EOF
> this is superman
> EOF
[root@superman-vm01 ~]#
[root@superman-vm01 ~]# cat abc.txt
this is superman
[root@superman-vm01 ~]#
# 以追加得方式寫檔案
[root@superman-vm01 ~]# cat abc.txt
this 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.txt
this is superman
I 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"
執行結果如圖所示:
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與鍵盤鍵位功能對應關係:
17.1 vim編輯器模式
Vim編輯器模式常用有三種,分別是:
-
命令列模式;
-
文字輸入模式;
-
末行模式。
vim是vi的升級版本,它是安裝在Linux作業系統中的一個軟體,官網為:
在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私房菜 】獲取更多技術乾貨!
有什麼吐槽或反饋意見,直接告訴我!
我會解決您說的問題,進一步更好的服務您哦!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/291614/viewspace-2780023/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 零基礎學雲端計算必備,最新雲端計算學習路線圖
- 雲端計算基礎
- 雲端計算基礎-0
- Linux基礎命令---ipcalc計算iPLinuxPCA
- 學雲端計算前景如何?零基礎學習雲端計算需要準備什麼?
- 全棧必備:Linux 基礎全棧Linux
- 高薪崗位雲端計算面試題,雲端計算運維工程師必備高薪面試題運維工程師
- 程式設計必備基礎 計算機組成原理+作業系統+計算機網路,計算機基礎——更適合程式設計師的程式設計必備基礎知識作業系統計算機網路程式設計師
- 什麼叫做雲端計算?雲端計算基礎學習路線
- 新手必備 最新雲端計算學習路線圖-好程式設計師雲端計算程式設計師
- 好程式設計師雲端計算培訓分享雲端計算必會的Docker容器命令程式設計師Docker
- 零基礎如何學習雲端計算?雲端計算學習教程
- typescript必備基礎TypeScript
- 雲端計算基礎學習,雲端計算的八大運用分析
- Linux雲端計算中的高頻命令Linux
- 雲端計算部署型別有什麼?Linux基礎學習型別Linux
- 零基礎雲端計算學習路線,到底什麼是雲端計算?
- 雲端計算-從基礎到應用架構系列-雲端計算的演進應用架構
- 開發者必備Linux命令Linux
- Linux基礎命令---uname顯示計算機名稱Linux計算機
- 程式猿必備的Linux基礎知識Linux
- 零基礎如何學習雲端計算?雲端計算開發課程詳解
- 雲端計算開發學習教程,雲端計算基礎架構實現講解架構
- 【雲端計算】雲端計算四個必學知識看這裡!
- IaaS雲端計算基礎設施與架構架構
- 雲端計算和虛擬機器基礎梳理虛擬機
- 雲端計算和Linux什麼關係?linux雲端計算Linux
- 前端&後端程式設計師必備的Linux基礎知識前端後端程式設計師Linux
- 零基礎學習雲端計算怎麼樣?雲端計算有哪些就業方向就業
- 雲端計算與大資料要學啥?零基礎能學雲端計算嗎?大資料
- 高薪全棧工程師必備 Linux 基礎高薪全棧工程師Linux
- 後端程式設計師必備的 Linux 基礎知識+常見命令(近萬字總結)後端程式設計師Linux
- OpenStack必備基礎知識
- 全棧必備 JavaScript基礎全棧JavaScript
- Linux基礎命令---mysqldump資料庫備份LinuxMySql資料庫
- 雲端計算教程學習入門影片課件:雲端計算基礎服務元件講解元件
- 前後端必備Linux基礎知識大科普後端Linux
- 雲端計算必將從集中走向分散