1.訪問手冊man
記不得命令名字時可以用關鍵字,語法是man -k
手冊頁有對應的內容區域,每個區域都分配一個數字,默認是1,如man 7 hostname
區域號 | 所涵蓋內容 |
---|---|
1 | 可執行程序或shell命令 |
2 | 系統調用 |
3 | 庫調用 |
4 | 特殊文件 |
5 | 文件格式與約定 |
6 | 遊戲 |
7 | 概覽、約定及雜項 |
8 | 超級用戶和系統管理員命令 |
9 | 內核例程 |
– | – |
2. 目錄操作
cd :遍歷目錄;pwd:顯示當前目錄;ls:顯示當前目錄下的文件和目錄;
tree:以樹狀結構展示目錄、子目錄及其中的文件。
cd destination
christine@server01:~$ cd /usr/bin //絕對路徑 ,波浪號表明shell會話位於你的主目錄中
christine@server01:~/Documents$ cd ../Downloads //相對路徑方式遍歷
單點符(.),表示當前目錄
雙點符(. .),表示當前目錄的父目錄
ls -F //-F參數的ls命令輕鬆區分文件和目錄,在目錄名後加了正斜線(/),可執行
文件的後面加個星號
ls -a //把隱藏文件和普通文件及目錄一起顯示出來,隱藏文件通常是文件名
以點號開始的文件
ls -F -R //-R參數叫作遞歸選項。它列出了當前目錄下包含的子目錄中的文件。
ls -l //-l參數會產生長列表格式的輸出
ls -l my_scr?pt //
問號(?)代表任一個字符; 星號(*)代表零個或多個字符。
ls -l f[a-i]ll //中括號用於指定字符範圍
ls -l f[!a]ll //感嘆號!將不需要的內容排除在外
製表鍵自動補齊:製表鍵自動補全允許你在輸入文件名或目錄名時按一下製表鍵,讓shell幫忙將內容補充完整
3 處理文件
touch ,cp,ln,mv,rm,mkdir,rmdir,file,cat,more,less,tail,head
touch 創建一個空文件
cp 複製文件 :cp source destination,可以是文件也可以是目錄
touch test_one
cp -i test_one test_two //-i選項,強制shell詢問是否需要覆蓋已有文件
cp -R Scripts/ Mod_Scripts//遞歸地複製整個目錄的內容
鏈接文件 符號鏈ln -s,硬鏈接ln
符號鏈接就是一個實實在在的文件,它指向存放在虛擬目錄結構中某個地方的另一個文件。這兩個通過符號鏈接在一起的文件,彼此的內容並不相同
硬鏈接會創建獨立的虛擬文件,其中包含了原始文件的信息及位置。但是它們從根本上而言是同一個文件。引用硬鏈接文件等同於引用了源文件。
ln -s data_file sl_data_file
ls -li *code_file //i表示顯示inode編號
mv:命令可以將文件和目錄移動到另一個位置或重新命名。移動文件不改變inode編號和時間戳,因爲mv隻影響文件名。
rm:刪除文件
rm -i f?ll //i命令參數提示你是不是要真的刪除該文件,?是通配符
-f參數:使得刪除很多文件且不受提示符的打擾
mkdir:創建目錄
mkdir -p New_Dir/Sub_Dir/Under_Dir //同時創建多個目錄和子目錄用-p參數
rmdir:刪除目錄,默認情況下
rmdir命令只刪除空目錄,可用rm -rf來刪除目錄及目錄裏面所有內容
file: 查看文件類型
cat:顯示文本文件中所有數據,適合小型文件
cat -n test1 //-n參數會給所有的行加上行號,-b給有文本的行加上行號
more:分頁顯示文本,可以通過按空格鍵或回車鍵以逐行向前的方式瀏覽文本文件,按q鍵退出
less:比more更高級
tail:顯示文件最後幾行的內容,默認後10行
head:顯示文件開頭那些行的內容
tail -n 2 log_file //只顯示文件的最後兩行
-f參數 允許你在其他進程使用該文件時查看文件的內容。tail命令會保持活動狀態,並不斷顯示添加到文件中的內容。這是實時監測系統日誌的絕妙方式。
4.監測程序
ps,top,kill,mount,umount,df,du
ps:顯示某個特定時間點的信息,默認情況下, ps命令只會顯示運行在當前控制檯下的屬於當前用戶的進程。
ps的輸出參數:
ps --forest //ps -forest命令展示了這些子shell間的嵌套結構
UID:啓動這些進程的用戶
PID:進程的進程ID。
PPID:父進程的進程號(如果該進程是由另一個進程啓動的)
C:進程生命週期中的CPU利用率
STIME:進程啓動時的系統時間
TTY:進程啓動時的終端設備
TIME:運行進程需要的累計CPU時間
CMD:啓動的程序名稱
F:內核分配給進程的系統標記
S:進程的狀態(O代表正在運行; S代表在休眠; R代表可運行,正等待運行; Z代表僵化,進程已結束但父進程已不存在; T代表停止)。
PRI:進程的優先級(越大的數字代表越低的優先級)
NI:謙讓度值用來參與決定優先級。
ADDR:進程的內存地址
SZ:假如進程被換出,所需交換空間的大致大小
WCHAN:進程休眠的內核函數的地址
top:實時監測進程
kill:結束進程,必須是進程的屬主或登錄爲root用戶,默認情況下, kill命令會向命令行中列出的全部PID發送一個TERM信號。
kill 3940 //用進程的PID結束進程,TERM信號告訴進程可能的話就停止運行,進程也可能會忽略
如果要強制終止, -s參數支持指定其他信號(用信號名或信號值)
kill -s HUP 3940
killall
killall http* //killall命令非常強大,它支持通過進程名而不是PID來結束進程,也支持通配符
mount:掛載媒體,默認情況下, mount命令會輸出當前系統上掛載的
設備列表。
umount:卸載,umount命令支持通過設備文件或者是掛載點來指定要卸載的設備
mount -t vfat /dev/sdb1 /media/disk
umount /home/rich/mnt
df:查看所有已掛載磁盤的使用情況,輸出中的磁盤空間按照用戶易讀的形式顯示用-h參數
du:顯示某個特定目錄(默認情況下是當前目錄)的磁盤使用情況。
du的幾個參數
-c:顯示所有已列出文件總的大小
-h:按用戶易讀的格式輸出大小,即用K替代千字節,用M替代兆字節,用G替代吉字節
-s:顯示每個輸出參數的總計
5 處理文件數據
sort,grep,tar
sort:排序數據,默認情況下, sort命令會把數字當做字符來執行標準的字符排序
sort -n file2 //-n參數作用把數字識別成數字而不是字符
-M:按月排序
-r:反序排序
可以用-t參數來指定字段分隔符,然後用-k參數來指定排序的字段
sort -t ':' -k 3 -n /etc/passwd //
grep:搜索數據,輸出是包含了匹配模式的行
grep three file1 //在file1文件中搜索含有three的行
參數 : -v:輸出不匹配該模式的行
-n:顯示匹配模式的行所在的行號
-c:輸出匹配的行數
-e:指定多個匹配模式 grep -e t -e f file
tar:歸檔數據
tar -cvf test.tar test/ test2/
參數:
z 打包同時壓縮 c 產生.tar打包文件 v 顯示詳細信息
f 指定打包後的文件名 x 解包.tar文件
正常使用-zcvf壓縮文件或目錄
正常使用-zxvf解壓文件或目錄
6
exit,sleep,jobs,coproc,type,history,alias
進程列表:( )
在一行依次運行多個命令
(pwd ; ls ; cd /etc ; pwd ; cd ; pwd ; ls) //進程列表是在子shell中運行的
echo $BASH_SUBSHELL //如果該命令返回0,則沒有子shell;返回大於等於1,則存在子shell。
後臺 :&
sleep 3000& // &把sleep命令置入後臺模式
(sleep 2 ; echo $BASH_SUBSHELL ; sleep 2)& //將進程列表置入後臺運行
jobs:顯示後臺作業信息
jobs -l //l參數可用顯示PID
協程:coproc,在後臺生成一個子shell,並在這個子shell中執行命令
coproc sleep 10 //用jobs命令發現進程名字是COPROC(默認的)
coproc My_Job { sleep 10; } //My_Job是進程名字
外部命令:存在於bash shell之外的程序,執行時,會創建出一個子進程
內建命令和外部命令的區別在於前者不需要使用子進程來執行
可用type查看
type cd //內建命令cd
type -a ps //外部命令,返回命令所在文件
歷史命令:history
!! //當輸入!!時, bash首先會顯示出從shell的歷史記錄中喚回的命令。然後執行該命令
bash命令的歷史記錄是先存放在內存中,當shell退出時才被寫入到歷史文件中
history -a //在退出shell會話之前強制將命令歷史記錄寫入.bash_history文件
!10 //取出命令列表中第10個命令
命令別名:alias
alias -p //查看當前可用的別名
alias li='ls -li'