內部命令與外部命令的區別:
內部命令是Shell自帶能用help查看的命令。
外部命令為第三方軟件安裝的命令
一些快捷鍵:
Tab:自動補全命令。
反斜槓“\”:強制換行後在下一行出現的“>”提示符後可以延續上一行命令。
Ctrl+U: 刪除當前光標處之前的所有字符內容。
Ctrl+K: 刪除從當前光標處到行尾的所有字符內容。
Ctrl+L: 清屏。
Ctrl+C: 取消當前的命令。
獲得幫助命令:
1) help //提示簡單的命令格式 例子:help pwd
2) --help //顯示應用命令字的格式及選項等幫助信息。例子: ls –help
3) man //手冊頁常用於外部軟件在安裝時為執行程序,配置文件的詳細的幫助手冊頁,例子:man file // file命令用於判斷文件的類型
閱讀man手冊頁時將以全屏幕的文本方式顯示,使用方向鍵滾動一行文本,使用Page Up和Page Down鍵上下翻頁,按Q或q退出手冊頁。按“/”可查找內容例子:“/-v”查找-v的幫助信息。按n或N進行上下定位選擇。
4)info //信息頁(info Page)比man更詳細的幫助手冊,提供了不少主題間的跳轉功能幫助。
例子:將ls命令的man手冊頁保存為文本文件lshelp.txt
# man ls | col –b > lshelp.txt
該命令中col命令用於過濾文本中的一些特殊控制字符。
| 管道符:類似水管,將該命令交給下一個命令處理。
>重定向輸出:前面的命令成功執行後,其屏幕輸出結果將保存到 > 號後邊指定的文件中。
文件和目錄管理
絕對路徑與相對路徑區別:
絕對路徑全加“/”可是非常准確地表示一個目錄或文件的所在位置。
相對路徑開頭使用“.”或“..”或“~”,一般用於表示當前工作目錄作為起點。例子:“grub.conf”可表示當前目錄下的grub.conf文件。
“./grub.conf”可表示同上。
“../vmlinuz”等同於/boot/vmlinuz。
“~teacher”可表示當前用戶的宿主目錄。
1 目錄操作命令
pwd //查看當前的工作目錄
cd //切換工作目錄,進入文件夾。
ls //列表形式顯示目錄內容:
-l:以長格式(Long)顯示文件和目錄的列表。
-a:顯示所有(ALL)子目錄和文件的信息,包括“.”開頭的隱藏目錄和文件。
-d:顯示目錄(Directory)本身的屬性。
-A:與-a選項的作用基本類似,但不會顯示“.”(表示當前目錄),“..”(表示父目錄)隱藏目錄。
-h:以更人性化的方式顯示出目錄或文件的大小,默認單位為字節顯示為K或M等單位。需要和-l選項結合使用。例子:ls –lh /etc/ns*.conf
-R:以遞歸(Recursive)的方式顯示指定目錄及其子目錄中的所有內容。
--color:在字符模式中以顏色區分不同的文件,例子:--color=tty表示使用預定義的顏色方案。
mkdir //新建文件夾(目錄)
du //統計目錄及文件的空間占用情況
-a:統計磁盤空間占用時包括所有的文件。
-h:便於人性化閱讀,單位K或M等。
-s:只統計每個參數所占用空間總的(Summary)大小。
例子:#du -ah /boot/vmlin* //統計以“vmlin”開頭的各文件所占用的大小。
#du -sh /var/log/ //統計該目錄所占用空間的總大小。
文件操作命令
touch //新建空文件
file //查看文件類型
cp //復制(Copy)
-f:強制復制,直接覆蓋目標同名文件或目錄
-i:覆蓋目標同名文件或目錄時進行確認提醒。
-p:復制時保持源文件的權限,屬主及時間標記等屬性不變。
-r:復制目錄時必須使用,表示遞歸復制所有文件及子目錄。
例子: #cp /bin/touch ./mytouch //復制/bin/touch目錄到當前目錄下,並命名為 ./mytouch
#cp -r /boot/grub/ /etc/httpd/conf/ ./ //將這兩個目錄復制到當前目錄中進行備份。
rm //刪除文件或目錄
-f:強制刪除文件或目錄,不提醒。
-i:刪除文件或目錄並提醒用戶確認。
-r:刪除目錄必須用此選項,表示遞歸刪除整個目錄樹(謹慎使用)
mv //移動文件或目錄
例子:#mv mytouch tfile.exe //將當前目錄中的mytouch文件改名為tfile.exe
which //查找命令文件並顯示所在的位置
-a:在所有搜索路徑中查找
例子:#echo $PATH
#which ls //顯示當前默認搜索路徑,並查找ls命令文件所在的位置。
find //查找文件或目錄
按名稱查找:關鍵字“-name”,根據目標文件的部分名稱查找可以使用“*”“?”通配符。
按文件大小查找:關鍵字“-size”一般使用“+”“-”號設置超過或小於指定的大小作為查找條件。常用的容量單位包括 k ,M ,G。
按文件屬主查找:關鍵字“-user”,根據文件是否屬於目標用戶進行查找。
按文件類型查找:關鍵字“-type”,這裡的類型指的是普通文件(f),目錄(d),塊設備文件(b), 字符設備文件(c)等。塊為硬盤,內存等,字符為鍵盤,鼠標等。
例子:#find /etc -name “resol*.conf” //查找名稱以resol開頭,以.conf結尾的文件。
#find /boot -type d //在/boot目錄中查找所以的目錄。
#find /var/log -user lp //在/var/log目錄中查找屬於用戶lp的文件或目錄。
#find /boot -size +1024k –a name “vmlinuz*” //在/boot目錄中查找超過1024KB而且文件名以“vmlinuz”開頭的文件。可用運算符“-a”或“-o”,-a為And ,-o為Or。
Find命令還可以對查找到的結果進行過濾處理,在表達式後添加一個“-exec”關鍵字,並設置過濾用的命令即可。在過濾命令中使用“{ }”表示find命令的查詢輸出結果,最後必須添加“ \”表示命令結束。注前面有一個空格!
例子:#find /var/log -user lp –exec ls –ld { } \ ; //在/var/log目錄中查找屬於用戶lp的文件或目錄,並以長格式顯示其詳細信息。
ln //為文件或目錄建立鏈接(Link)
鏈接文件分為符號鏈接,硬鏈接兩種類型,區別是:硬鏈接不能跨越不同分區創建的硬鏈接。
符號鏈接(軟連接),需要添加“-s”選項。兩個鏈接與直接訪問原始文件的效果基本相同。
例子:#ln -s /etc/httpd/conf/httpd.conf /etc/ //為文件httpd.conf創建符號鏈接文件並保存到/etc目錄中,以便需要時查找該文件,ls -lh /etc/httpd.conf
#ln /usr/sbin/system-config-network /sbin /mynetconfig //為網卡配置腳本文件創建名為 mynetconfig的硬鏈接文件,以便通過它對網卡參數進行配置。
文件內容操作命令
cat //顯示並連接(Concatenate)文件的內容
more和less 命令 //分頁查看文件內容
head和tail命令 //查看文件開頭或結尾的部分內容
-f:默認開頭或最後十行內容。
wc //統計文件內容中的單純數量等信息
-c:統計文件內容中的字節數
-l:統計文件內容中的行數
-w:統計文件內容中的單詞個數
例子:#ls -l /etc/*.conf | wc -l //統計/etc目錄中.conf配置文件的個數。
grep //檢索,過濾文件內容(正則表達式)
-i:查找內容時忽略大小寫
-v:反轉查找,即輸出與查找條件不相符的行
例子:#grep –v “^#” /etc/vsftpd/vsftpd.conf | grep -v “^$” //查看vsftpd.conf文件中除了以#號開頭的行和空行以外的內容。$:用於結束。
#lspci | grep -i “Ethernet” //執行“lspci”命令查看主機中的PCI設備信息,並過濾出其中以太網卡設備的信息。
歸檔與壓縮命令
gzip和bzip2命令 //制作壓縮或解壓縮的文件
-9:可以有效提高壓縮的比率
-d:解壓縮專用命令。
例子:#gzip -9 tfile.exe //創建壓縮文件
#gzip -d tfile.exe.gz //解壓縮文件
tar //制作歸檔或釋放文件
-c:創建(Create).tar格式的包文件
-C:解包時指定釋放的目標文件夾
-f:表示使用歸檔文件
-j:調用bzip2程序進行壓縮或解壓縮
-p:打包時保留文件及目錄的權限
-t:列表查看包內的文件
-v:輸出詳細信息
-x:解開.tar格式的包文件
-z:調用gzip程序進行壓縮或解壓
例子:#tar zcf sysfile.tar.gz /etc /boot //備份/etc和/boot目錄為sysfile.tar.gz包文件。
#tar zxf sysfile.tar.gz //將sysfile.tar.gz包文件釋放或解壓到當前目錄中。
Vi文本編輯器
#alias vi =’ /usr/bin/vim’
#which –a vi vim //設置命令別名vi,以便執行vi命令時加載增強版的vim程序。
工作模式:命令模式,輸入模式,末行模式。
模式切換:a , i , o , A ,I ,O
光標操作:方向鍵調整位置, Page UP(Ctrl+B) Page Down(Ctrl+F)翻頁,行內快速跳轉“^”或“0”跳轉到首行,End或$跳轉到本行結尾。行間快速跳轉gg跳轉到第一行G跳轉到文件最後一行,#G跳轉到文件中第#行(#用具體數字替換),:set nu顯示行號,:set nonu取消顯示行號。
復制粘貼刪除:使用x或Del按鍵刪除光標處的單個字符
Dd刪除光標前內容,#dd刪除從光標處開始第#行內容(#以具體數字代替)
Yy復制當前行整行的內容到剪貼板,#yy意思同上。
按p鍵可將內容粘貼到光標處之前。
U或u撤銷編輯及保存退出,u:用於取消最近一次的操作,可進行多步恢復,U:取消對當前行所作的所有編輯。可按ZZ命令保存退出。
末行模式基本操作:
:w //保存,另存為
:q! //強行退出不保存
:wq //保存並退出也可用:X
打開新文件或讀入其他文件內容:
:e ~/install.log //打開當前目錄下該文件進行編輯
:r /etc/filesystems //將該文件的內容復制到當前目錄中
文件內容替換:
:替換范圍 sub /舊的內容/新的內容 /g
%:在整個文件內容中進行查找替換
n,m:在指定行數范圍以內的文件內容中進行查找並替換
/g:可選內容結尾處,省略的話只替換每行中的第一個匹配結果
例子::sub /i/r //將當前行中的第一個i字母替換為大寫I
:10,20 sub /initdefault/DEFAULT/g //把10~20行內的initdefault字符串替換為DEFAULT字符串。
:% sub /initdefault/DEFAULT/g //把文件所有的initdefault字符串全部替換為DEFAULT字符串。