在linux系統中,shell是運維和系統管理員常用的命令解釋器工具。
命令行相關:
注意: 命令行操作時需要區分大小寫。
使用命令行和通配符可以提高輸入效率。
命令行補全——按Tab鍵。
通配符:
* - 用于匹配文件名中任意長度的字符串; ? - 只匹配一個字符; [] - 用于匹配所有出現在方括號內的字符??梢允褂枚叹€“-”來指定字符集范圍。如:ls text[1-3] 或 ls test[a-z]
示例:
ls *1 ——>test1 ls test[123] --> test1 test2 test3
Linux系統中常用的Shell包括bash、TCSH Shell和Z-Shell等,其中BASH是默認安裝和使用的Shell。
man
作用: Linux為所有命令和系統調用編寫了幫助手冊。通過man命令可以方便地獲取某個命令的幫助信息。
用法: man [手冊編號] 命令名,手冊編號可以省略。
示例:
man 8 ping
使用JK鍵上下翻動,空格鍵向下翻頁,Q鍵退出。
手冊共分為9節,各部分內容如下:
su
作用: 切換到其他用戶。
用法:
su 用戶名 #切換到這個用戶 sudo su #切換到root用戶
注意: 在Ubuntu系統中,默認情況下沒有合法的root權限,不能直接使用su命令提升到root權限,而必須使用sudo來獲得root權限。
sudo
當前命令以root身份執行。
sudo xx
pwd
顯示當前目錄,即工作目錄。
cd
改變當前目錄位置。
ls
dir/vdir
mkdir
創建目錄。
mv
文件的移動。
mv –[OPTION] 源文件 目標文件
可以指定移動后的名字。
mv test1.c /test/test2.c
cp
復制文件。
cp –[OPTION] 源文件 目標文件
rm
刪除文件。
rm …[OPTION]…[FILE]…
ln
建立文件鏈接。
ln …[OPTION] 源文件 目標文件
類似于c++中的引用,給變量起了個別名,實際上是同一個文件。
ln ./test/test1.c ln_demo
實際上創建的ln_demo就是test1.c。這是硬鏈接,刪除源文件后可以訪問。(只要有硬鏈接,文件就不會被釋放。直到最后一個鏈接被刪除,文件才會被釋放。)
ln -s ./test/test1.c ln_demo_s
創建ln_demo_s,這是軟鏈接(符號鏈接)。刪除源文件后軟鏈接文件無法訪問。
總結:軟鏈接就一個文件路徑,硬鏈接就是指針。
相關參考:
軟硬鏈接
5分鐘讓你明白“軟鏈接”和“硬鏈接”的區別
chown
用于改變文件的所有權。
chown …[OPTION] [OWNER] [:[GROUP]] FILE…
每一位分別表示: 文件/目錄,xuanxuan用戶的讀,寫,執行,同組的其他用戶的讀,寫,執行,其他組成員的讀,寫,執行。
chgrp
用于單獨設置文件的屬組。
chgrp …[GROUP] FILE…
chmod
改變文件權限。
chmod用于改變一個文件的權限。它以“用戶組+/-權限”的表達方式來增加/刪除對應的權限。具體來說,用戶組包括了文件屬主(u)、文件屬組(g)、其他人(o)和所有人(a),而權限則包括讀取與執行(r、w、x)。
chmod …[OPTION]…[FILE]…
例:
chmod u+x test.txt chmod u-x test.txt chmod ug=wr、o=r text.txt
如果以二進制表示權限,設置為1,沒設置為0,最高權限就是777。
所以也可以這樣改權限。
chmod 777
head/tail
閱讀文件的頭部和尾部。
head/tail …[OPTION]…FILE
cat、more、less
cat命令用來一次性查看全部文本內容,后跟文件名作為參數,也可以帶上-n來顯示每行的行號。如果文件長達幾十上百頁,不建議使用cat。
more命令用來分頁查看文本文件??崭穹摚换剀囅蛳聺L動一行;Q鍵退出。
less與more類似,功能更加人性化。
vim xxx
插入模式
輸入字符,并可以按光標鍵移動輸入字符位置。
命令模式
執行除輸入字符之外的所有操作,包括保存、搜索、移動光標等。
vim啟動默認是在命令模式,如果在編輯模式,需要按Esc切換回命令模式。
可以使用光標鍵控制上下左右,或者或者h、j、k、l移動。
搜索字符串
替換字符串
%s/123/321/g #將123替換為321,g是整個一行中滿足條件的,%s是全文。
刪除、復制、粘貼
撤銷和重做
其他
syntax on ## 語法高亮 set autoindent ## 自動縮進 set shiftwidth=4 ## 設置Tab 鍵對應的空格數
find
在指定范圍內迅速查找到文件。
find [OPTION] [path…] [expression]
locate
快速定位文件位置。
locate [expression] pattren
locate并不進入子目錄進行搜索,它通過檢索數據庫來確定文件的位置。可以使用updatedb來更新檢索數據庫。
grep
在文件中尋找某些信息。
grep [OPTIONS] PATTERN [FILE…] #pattern使用基礎正則表達式
grep 111 ./test.c #在test.c文件中查找111