關於測試工程師 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 數字:指定測試多少次


發佈了40 篇原創文章 · 獲贊 48 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章