1. 程式人生 > >關於測試工程師 linux的常用命令

關於測試工程師 linux的常用命令

/bin 該目錄中存放Linux的常用命令,在有的版本中是一些和根目錄下相同的目錄。 /boot 該目錄下存放的都是系統啟動時要用到的程式,當用lilo引導Linux時,會用到這裡的一些資訊 /dev 該目錄包含了Linux系統中使用的所有外部裝置,它實際上是訪問這些外部裝置的埠,你可以訪 問這些外部裝置,與訪問一個檔案或一個目錄沒有區別。例如在系統中鍵入“cd /dev/cdrom”,就可以 看到光碟機中的檔案;鍵入“cd /dev/mouse”即可看滑鼠的相關檔案。 /cdrom 該目錄在剛安裝系統時是空的,你可以將光碟機檔案系統掛在這個目錄下, 例如 “mount /dev/cdrom /cdrom” /etc 該目錄存放了系統管理時要用到的各種配置檔案和子目錄,例如網路配置檔案、檔案系統、X系統 配置檔案、裝置配置資訊、設定使用者資訊等。 /sbin 該目錄用來存放系統管理員的系統管理程式。 /home 如果建立一個名為“xx”的使用者,那麼在/home目錄下就有一個對應的“/home/xx”路徑,用來存 放該使用者的主目錄。 /lib 該目錄用來存放系統動態連線共享庫,幾乎所有的應用程式都會用到該目錄下的共享庫 /lost+found 該目錄在大多數情況下都是空的。但當突然停電、或者非正常關機後,有些檔案就臨時存 放在這裡。 /mnt 該目錄在一般情況下也是空的,你可以臨時將別的檔案系統掛在該目錄下。 /proc 可以在該目錄下獲取系統資訊,這些資訊是在記憶體中由系統自己產生的 /root 如果你是以超級使用者的身份登入的,這個就是超級使用者的主目錄 /tmp 用來存放不同程式執行時產生的臨時檔案

/usr 使用者的很多應用程式和檔案都存放在該目錄下

mount -t iso9660 /dev/cdrom /mnt/cdom 把光碟機掛裝到/mnt/cdrom目錄 -t引數是指定光碟的檔案系統型別,一般來說,光碟都是用的iso9660標準的格式。接下來的/dev/cdrom 是你的光碟機對應的裝置檔案,我們前面說過每一個硬體裝置都對應了一個標準的裝置檔案。最後一 個/mnt/cdrom目錄是你的一個本地硬碟上的目錄,在使用以前如果發現沒有這個目錄,可以建立一個。 當然也不一定非要使用這個目錄,你甚至可以很變態的使用mount /dev/cdrom /root命令把你的光碟機掛 裝到你的的/root目錄,這樣一來你的/root的內容將不再是原來的內容,直到你取消掛載。 下面的命令取消掛載: umount /mnt/cdrom 或 umount /dev/cdrom 這兩個命令都可以把剛才掛裝上去的光碟取消掛載,只有這樣你的光碟才能取出。不行的話,你再執行 一次掛裝命令,然後按一下光碟機上的Eject按鈕,看看有沒有什麼反應啊?沒有,對不對?這就是Linux 的一個優點,雖然操作起來有點麻煩的感覺,但是想想看,非常安全和稍微的複雜,你選哪一個? 使用軟盤的方法也很類似: mount /dev/fd0 /mnt/floppy /dev/fd0是你的軟盤對應的裝置檔案,後面的自然是你的掛裝目錄。但是如果這個時候你想要嘗試能不 能在沒有取消軟盤的掛裝就推出軟盤,你就是一個非常BT的人了。有沒有搞錯?軟盤的退出是機械的操 作,你硬要按出來,我有什麼辦法?那麼取消軟盤掛載的方法也是很類似的: umount /dev/fd0 或 umount /mnt/floppy 其實掛裝時候第一個引數-t,可以省略,因為系統會自動的判斷應該用什麼樣的格式來識別。不過知道 了我們用的軟盤或者光碟的格式,對於掛裝一個ISO檔案有幫助。 mount -t iso9660 -o loop /home/kris/somewhat.iso /mnt/cdrom 我們都知道現在網上有很多的ISO檔案,就是把光碟的所有內容打包成為一個檔案,方便網上的傳送。我 們獲得這樣的檔案以後不一定非要用燒錄機把它刻錄成為光碟,我們只要用上面的命令就可以把光碟的 ISO檔案掛載到/mnt/cdrom目錄了。第一個引數-t iso9660就是光碟使用的檔案系統格式,第二個引數是 loopback的意思。 取消掛裝:umount /mnt/cdrom bzip2既是一個壓縮工具也是壓縮時的命令: 語法:bzip2 [-option] 檔名    字尾 .bz2 -d:解壓 -z:壓縮 -k:壓縮後保留原始檔 ----------------------------- gzip  既是一個壓縮工具也是壓縮時的命令: 語法:gzip [-option] 檔名  字尾 .gz -d:解壓 -數字 (指定壓縮率:1為最低,9為最高,預設是6) 壓縮率越高壓縮所消耗的時間越長 tar  是一個打包工具 語法:tar [-option] 打包名  需要打包的檔案 -c:建立一個包 -t:檢視包中檔案 -v:打包過程中顯示打包檔案 -f:需要打包的內容為檔案 -x:解開一個包 -z:同時啟用gzip工具進行壓縮或者解壓 tar -cvf 打包 tar -xvf 解包 打包時需要手動加上字尾 .tar,不加字尾不容易辨識。 tar -zcvf 打包 tar -zxvf 解包
ls
列出檔案和目錄的命令 -A 選項用來列出所有的檔案,包括那些隱藏的檔案 -l 這個選項用來顯示一個列表 -R R的意思就是recursive遞迴,明顯這個選項讓系統顯示出這個目錄下面的所有檔案以外,還要顯示出 所有子目錄下面的檔案。也就是把我們那一大堆水果全部抖出來。 --color 這個選項特別有用,我估計大家的顯示器都是彩顯吧,什麼?你的顯示器還是黑白的?天哪! 既然是彩顯,那麼我們可以讓ls命令用不同的眼色代表不同的檔案型別。比如可執行檔案用綠色,普通 檔案是白色,目錄是藍色。也許你會問,目錄也是檔案嗎?對的,在Linux裡面一切都是檔案,所有的硬 件裝置都用一個檔案來代替,比如你的軟碟機,就是用/dev/fd0來代替的。目錄也是一個檔案。 mv
改變檔名和目錄名的命令 cp 複製檔案和目錄命令 man 命令名字   幫助檢視命令 nano vi編輯檔案的命令 和 cat (內容少)以及 more(內容多)顯示文字檔案 管道命令 可是如果我們用ls命令顯示一個目錄的所有檔案的時候遇到一頁不能顯示完的情況該怎麼辦?這就需要 一個管道符號“|”,就是“\”按鈕上面的字元: ls /dev | more 用一個檔案 來紀錄剛才ls的命令顯示的所有結果 ls /dev > filenames.txt > 建立一個新的檔案filenames.txt,如果已經有了同名的檔案就覆蓋掉以前的內容 >>是用來在已經存在的檔案後面追加新的內容,如果沒有這個檔案就建立它
cat >> friends << "EOF" > a > b > c > EOF 執行第一行以後,意思就是把我們接下來的輸入內容儲存到friends檔案裡面,當我們輸入“EOF”的時 候結束。“<<”的意思就是向前面的命令傳送一個數據。 中間我象徵性的輸入了a b c三行,每一行前面的“>”是系統自動產生的提示符號。第四行輸入“EOF” 系統就儲存剛才輸入的a b c三行到一個叫做friends的檔案裡面去。 find -iname [目錄] 檔名 在指定目錄裡面(如果不指定目錄就是當前目錄)查詢指定檔名的檔案 ps -a | grep some_command 用ps命令加上-A引數顯示所有的當前執行的程序,用管道符號“|”加上grep命令檢索是否有我們指定的 some_command執行 chmod 771 file  更改一個檔案的許可權  rwx  = 7 r*x = 5 4 2 1 r w x   chgrp -R mengxin /usr/meng /usr/meng及其子目錄下的所有檔案的使用者組改為mengxin chattr命令用來改變檔案屬性 a:讓檔案或目錄僅供附加用途;  b:不更新檔案或目錄的最後存取時間; c:將檔案或目錄壓縮後存放; d:將檔案或目錄排除在傾倒操作之外; i:不得任意更動檔案或目錄; s:保密性刪除檔案或目錄; S:即時更新檔案或目錄; u:預防意外刪除。 -R:遞迴處理,將指令目錄下的所有檔案及子目錄一併處理; -v<版本編號>:設定檔案或目錄版本; -V:顯示指令執行過程; +<屬性>:開啟檔案或目錄的該項屬性; -<屬性>:關閉檔案或目錄的該項屬性; =<屬性>:指定檔案或目錄的該項屬性。 chattr +i /etc/fstab 然後試一下rmmvrename等命令操作於該檔案,都是得到Operation not permitted的結果。 讓某個檔案只能往裡面追加內容,不能刪除,一些日誌檔案適用於這種操作: chattr +a /data1/user_act.log 在檔案中搜索一個單詞,命令會返回一個包含“match_pattern”的文字行: grep match_pattern file_name grep "match_pattern" file_name 在多個檔案中查詢: grep "match_pattern" file_1 file_2 file_3 ... 輸出除之外的所有行-v選項: grep -v "match_pattern" file_name 標記匹配顏色--color=auto選項: grep "match_pattern" file_name --color=auto 使用正則表示式-E選項: grep -E "[1-9]+" egrep "[1-9]+" 只輸出文件中匹配到的部分-o選項: echo this is a test line. | grep -o -E "[a-z]+\." line. echo this is a test line. | egrep -o "[a-z]+\." line. 統計檔案或者文字中包含匹配字串的行數-c選項: grep -c "text" file_name 輸出包含匹配字串的行數-n選項: grep "text" -n file_name cat file_name | grep "text" -n #多個檔案 grep "text" -n file_1 file_2 列印樣式匹配所位於的字元或位元組偏移: echo gun is not unix | grep -b -o "not" 7:not #一行中字串的字元便宜是從該行的第一個字元開始計算,起始值為0。選項 -b -o 一般總是配合使用。 搜尋多個檔案並查詢匹配文字在哪些檔案中: grep -l "text" file1 file2 file3...

grep遞迴搜尋檔案

在多級目錄中對文字進行遞迴搜尋: grep "text" . -r -n # .表示當前目錄。 忽略匹配樣式中的字元大小寫: echo "hello world" | grep -i "HELLO" hello 選項-e制動多個匹配樣式: echo this is a text line | grep -e "is" -e "line" -o is line #也可以使用-f選項來匹配多個樣式,在樣式檔案中逐行寫出需要匹配的字元。 cat patfile aaa bbb echo aaa bbb ccc ddd eee | grep -f patfile -o 在grep搜尋結果中包括或者排除指定檔案: #只在目錄中所有的.php和.html檔案中遞迴搜尋字元"main()" grep "main()" . -r --include *.{php,html} #在搜尋結果中排除所有README檔案 grep "main()" . -r --exclude "README" #在搜尋結果中排除filelist檔案列表裡的檔案 grep "main()" . -r --exclude-from filelist 使用0值位元組字尾的grep與xargs #測試檔案: echo "aaa" > file1 echo "bbb" > file2 echo "aaa" > file3 grep "aaa" file* -lZ | xargs -0 rm #執行後會刪除file1和file3,grep輸出用-Z選項來指定以0值位元組作為終結符檔名(\0),xargs -0 讀取輸入並用0值位元組終結符分隔檔名,然後刪除匹配檔案,-Z通常和-l結合使用。 grep靜默輸出: grep -q "test" filename #不會輸出任何資訊,如果命令執行成功返回0,失敗則返回非0值。一般用於條件測試。 打印出匹配文字之前或者之後的行: #顯示匹配某個結果之後的3行,使用 -A 選項:seq 10 | grep "5" -A 3 5 6 7 8 #顯示匹配某個結果之前的3行,使用 -B 選項: seq 10 | grep "5" -B 3 2 3 4 5 #顯示匹配某個結果的前三行和後三行,使用 -C 選項: seq 10 | grep "5" -C 3 2 3 4 5 6 7 8 #如果匹配結果有多個,會用“--”作為各匹配結果之間的分隔符: echo -e "a\nb\nc\na\nb\nc" | grep a -A 1 a b -- a b 使用者和群組的管理: /etc/passwd:使用者資訊 /etc/group:群組資訊 /etc/shadow:使用者密碼 UID,使用者識別碼 GID,群組識別碼 groupadd 用於建立新的群組 語法:groupadd [-option] 群組名 -g GID:設定群組的GID ----------------------------------------- groupdel 用於刪除已經存在的群組 語法:groupdel 群組名 注意:如果群組中有使用者,需要先刪除使用者才能刪除群組 ---------------------------------------- useradd  用於建立新的使用者 語法:useradd [-option] 使用者名稱 -u UID:設定使用者UID -g GID或群組名:指定新增使用者所在群組 -M:不建立“家”目錄,如果不加-M則預設建立“家”目錄 --------------------------------------- userdel 刪除使用者 (剛剛登入過的使用者不能刪除) 語法:userdel 使用者名稱 -r:將該賬號的家目錄和右鍵檔案一併刪除。 -------------------------------------- 能否把一個使用者同時放入多個群組? -------------------------------------- usermod 用於修改使用者的UID、所屬群組 語法:usermod [-option] 使用者名稱 -u UID:修改UID -g GID或群組名:修改使用者所屬群組 -G GID或群組名:用於設定使用者的附加群組 -------------------------------------- id 用於顯示使用者的UID、GID及所屬的群組 語法:id 使用者名稱 ------------------------------------ groups 用於顯示群組資訊 語法:groups 使用者名稱 ------------------------------------- su 用於切換使用者 - :表示完整的切換到另一個使用者環境 passwd 用於設定使用者密碼 語法:passwd 使用者名稱 passwd如果不加使用者名稱則給當前使用者設定密碼
rpm [-option] 包名 -e:解除安裝 yum [-option] [command] [-option] : -h:顯示幫助資訊 -v:顯示安裝細節 -y:對所有的問題都回答yes [command]: install:  安裝 erase:解除安裝 reinstall:重新安裝 update:升級 remove:移除

ps 用於顯示當前系統執行的程序:


  程序就是執行起來的程式。




語法:ps [-option]




-a:顯示所有程序


-u:顯示使用者


-x:列出所有的tty程序


-e:所有程序,與a略有區別


-f:顯示完整程序資訊




ps -aux


ps -ef




PID:程序號


PPID:父程序號




面試真題:如何只顯示某一個檔案的程序號?


ps -aux |grep 1435






-------------------------------------------------
w 用於檢視當前系統負載




語法:w


該命令是管理員常用命令




---------------------------------
vmstat 用於監控當前系統狀態


語法:vmstat


---------------------------------


top 用於動態監控系統所佔資源,每3s變一次。


語法:top


top如何檢視後面的頁面:




shift  +  <




shift  +  >
---------------------------------


free 用於顯示記憶體使用情況


要看第二行


----------------------------------
kill 用於停止或者殺死程序,可以通過PID號或任務編號來操作物件。


語法:kill [-option] PID或任務編號




-9:強制終止




---------------------------------
網路管理:


ifocnfig 用於顯示或者設定網絡卡




------------------------------
netstat 用於顯示網路狀況


語法:netstat [-option]


netstat -an   顯示網路狀況


netstat -lnp  顯示當前啟用了哪些埠


------------------------------
ping 用於測試目標與主機之間的連線狀況


語法:ping [-option] 目標


-c 數字:指定測試多少次