linux 是一個開源、免費的操做系統,其穩定性、安全性、處理多併發已經獲得業界的承認,目前不少中性,大型甚至是巨型項目都在使用linux。java
linux 內核:redhat、紅旗linux、ubuntu、suse、fedora,node
它們的內核都是同樣的(linux實際上是一個統稱)linux
linux 操做系統的優勢不少:開源免費、支持多線程、支持多用戶、安全性好、對內存和文件管理優越、適合小內核程序的嵌入系統等ios
linux 的缺點是使用命令行操做,所以操做相對困難,但正是這種字符級命令行的操做,佔用的系統資源會更少,也減小了被攻擊、出錯的可能性。shell
對於軟件測試人員來講,咱們測試的任何產品都是基於操做系統。好比咱們天天都在使用的QQ軟件,它有windows、ios、Android、Mac OS等版本,須要把QQ安裝在各個平臺上,才能進行相應的測試。所以,熟練使用這些操做系統和掌握一系誒操做系統對的基本知識應該是每一個測試工程師必須掌握的基本功。ubuntu
目前市面主流的操做系統有windows、unix、linux等,而linux做爲不少軟件應用的後臺服務器部署所採用的操做系統,也是當下應用最多的服務器端操做系統。熟練使用linux 系統,這樣的詞彙常常出如今測試崗位的要求和求職人員的技能描述中。而在測試人員這個羣體中,真正能熟練運用linux操做系統的、哪怕只是對經常使用命令比較熟悉,也是比較稀缺的!所以測試人員學習linux ,不只能夠提升測試深度,也能夠增長本身的核心競爭力、拓寬本身的技能棧,讓本身的測試能力有更深層次的提升。windows
Windows 與linux 的主要區別在於,linux是免費開源的。大部分軟件均可以自由獲取,一樣功能的軟件較少。技術支出方面,windows主要圖形化界面,linux主要是字符模式,命令行界面。安全
測試人員學習linux 不必定很是的系統性,由於精通linux那是運維人員的工做職責,做爲測試人員,學習的首要目的應該是夠熟練使用經常使用命令、熟練搭建測試環境。所以,不斷的練習命令,每一個經常使用命令都應該去多敲幾遍,驗證輸入命令後的反饋,最後熟能生巧,慢慢地就能把經常使用命令記住了。bash
因此,如何學習linux?一個字:練!服務器
linux 全部的內容都是以文件形式保存,包括硬件(一切內容皆文件),而且linux不靠擴展名區分文件類型。
linux有多種基本類型,常見的有以下三種:
1.普通文件——如文本文件、shell腳本、java源代碼、c語言源代碼等,可使用文件操做命令如vi、cat、more、less來進行管理
2.目錄文件——就是目錄,至關於windows上的文件夾,包括目錄名、子目錄名,能夠用ls列出目錄的內容
3.連接文件——相似windows下面的快捷方式
linux 的文件系統是採用層級式的樹狀目錄結構,在此結構中的最上層是根目錄「/」 ,而後在此目錄下再建立其餘的目錄。
在linux 系統中,全部的文件與目錄都是根目錄 / 開始的,以 / 開頭的目錄成爲絕對目錄,不以根目錄 / 開頭的稱爲相對目錄。
linux 系統文件目錄整理以下
/
linux 文件系統的上層根目錄,文化系統樹的最頂端,稱爲根目錄或頂級目錄
root
存放root 用戶的相關文件
home
系統預設的使用者的家目錄(宿主目錄),存放普通用戶的相關文件
bin
存放全部用戶均可以使用經常使用命令的目錄
sbin
系統管理相關的二進制文件存放目錄,要具備必定權限纔可使用其中命令
etc
存放各類配置文件
var
存放常常變化的文件,如網絡鏈接的sock文件
boot
啓動目錄,存放引導系統啓動的相關文件
usr
Unix System Resource:安裝軟件的默認目錄,至關於windows下的program files文件夾
dev
設備文件保存目錄
lib
系統庫保存目錄
mnt
默認掛載光驅和軟驅的目錄
opt
額外所安裝的應用程序目錄,有些軟件包咱們能夠將它安裝在該目錄中
proc
直接寫入內存的,不能直接操做,保存的是內存的掛載點
tab
自動的補全
ctrl+c
強制終止當前命令執行,即殺死當前進程
ctrl+l
清屏
ctrl+z
把命令放入到後臺
ctrl+r
在歷史命令中搜索
ctrl+a
光標移動到命令行首
ctrl+e
光標移動到命令行尾
ctrl+u
從光標所在位置刪除到行首
ctrl+b
同鍵盤左鍵
ctrl+f
同鍵盤右鍵
用戶登陸linux後,能夠在linux 的命令提示符後面輸入命令與系統進行交互。
以下所示:
[root@localhost~]#
其中:
root:當前登陸用戶
localhost:主機名
~:當前所在目錄,~ 表示家目錄
#:超級用戶的提示符,若是是普通用戶的提示符是$
linux的命令格式: 命令 [選項] [參數]
如:cp dir1 dir2 ,cp是拷貝命令,dir1 和dir2是參數,表示把dir1拷貝到dir2中
注意:
個別命令使用不遵照此格式
當有多個命令時,能夠寫在一塊兒
簡化選項與完整選項,如 -a 等於 -all
linux 是嚴格區分大小寫,通常命令沒有特殊說明,都是小寫
linux命令和參數之間是有空格的,請不要像英文字母同樣,所有擠在一塊
下面就linux 使用最頻繁、最經常使用的命令進行詳述。
cd ,切換目錄(chang directory)
cd 命令可讓登陸用在不一樣的目錄間切換
語法 :cd [目標目錄]
下面是一些經常使用的目錄切換
cd ~ |
進入當前用戶的家目錄 |
cd |
進入當前用戶的家目錄 |
cd - |
進入上次目錄 |
cd .. |
進入上一級目錄 |
cd . |
進入當前目錄 |
cd / |
進入根目錄 |
相對路徑與絕對路徑的區別
cd 相對路徑:只要開頭不是 / 就是屬於相對路徑的寫法,會參照當前所在目錄,經過該相對路徑進行查找
cd 絕對路徑:絕對路徑是由根目錄 / 開頭的文件名或目錄名稱。如:/home/data/package,會從根目錄(即頂級目錄/)開始,一級一級的去進行遞歸查找,經過cd 命令採用絕對路徑e方式,只要路徑是正確的,能夠在任何目錄下進入指定的該目錄。
ls,列出目錄內容
語法:ls [目標目錄]
ls 指令可列出目錄內容,包括文件和子目錄的名稱
-a |
顯示目錄下的全部文件,包括隱藏文件 |
-l |
顯示長列表格式,簡寫爲ll |
-d |
查看目錄屬性 |
-h |
人性化顯示文件大小 |
-i |
顯示inode |
工做中使用習慣通常是cd 命令切換到某個目錄後,直接輸入ls 查看當前目錄的內容,相似於在windows系統上點開某個文件夾。
另一個比較經常使用的寫法是ll ,ll 是 ls -l 的縮寫,能夠以列表格式列出目錄內容,如:
下面package 各個屬性的描述:
drwxxr-xr-x |
經過10個字符能夠肯定該文件的類型以及不一樣用戶針對該文件的 |
2 |
鏈接的文件數 |
root |
表示用戶 |
root |
表示用戶所在的組 |
4096 |
表示文件大小 |
6月23 05:28 |
表示最後修改日期 |
package |
表示文件名 |
每行最前面10個字符能夠肯定該文件的類型以及不一樣用戶針對該文件的權限
第一個字符表示類型:文件(-)、目錄(d),連接(l)
其他字符每3個一組(rwx)、讀(r)、寫(w)、執行(x)
第一組 rwx:文件全部者的權限是讀、寫和執行
第二組 r-x:與文件全部者同一組的用戶的權限是讀和執行,沒有寫的權限
第三組 r-x:不與文件全部者同組的其餘用戶的權限是讀和執行,沒有寫的權限
讀、寫、執行用數字表示分別爲 r=4 ,w=2,x=1。
rwx =4+2+1=7
r-x=4+0+1=5
r-x=4+0+1=5
因此該文件針對不一樣用戶的權限能夠用數值755表示
pwd,顯示工做目錄(print working directory)
執行pwd命令能夠得到當前所在的工做目錄的絕對路徑。
mkdir,創建目錄(make directory)
-p:遞歸建立目錄,即若是創建目錄的上層目錄沒有建立,會一併創建上層目錄。
刪除空目錄,這條命令實際操做中用得不多,咱們通常用rm
注意 rmdir 命令只能刪除空目錄,若是要刪除目錄下全部文件可用:rm -rf 路徑
df,顯示磁盤的相關信息,如文件系統的使用狀況
df [-ahikHTm] [目錄或文件名]
-a :列出全部的文件系統
-k:以KB爲單位顯示各個文件系統
-m:以MB爲單位顯示各個文件系統
-h:以GB、MB、KB等格式顯示
-H:以M =1000K取代 M=1024K的計算方式
-T:連同該分區的文件系統名(例如 ext3 )一塊兒列出
-i:不用硬盤容量,而以inode 的數量來顯示
df [路徑],查看某個目錄是在哪一個分區,並顯示其它信息
注意df、du兩個命令對於測試人員來講應用頻率並不高。
du,顯示目錄或者文件的大小,du 命令顯示指定的目錄或文件佔用的磁盤空間
語法:du [-ahskm] [文件或目錄名稱]
-a : 列出全部的文件與目錄容量
-h:以人們易讀的容量格式(G/M)顯示
-s: 顯示總計,不列出每一個目錄佔用的容量
-k: 以KB列出容量顯示
-m:以MB列出容量顯示
touch,改變文件或者目錄時間,也能夠創建空文檔
touch [-acdmt] 文件名
-a : 修改access time
-c : 修改時間,而不創建文件
-d: 後面能夠接日期,也可使用 --date="日期或時間"
-m:修改 mtime
-t:後面能夠接時間,格式爲[YYMMDDhhmm]
cp 複製命令
cp 指令用於複製文件或者目錄,參數必須指定兩個或者兩個以上的文件或目錄,而且最後一個路徑必須是已經存在的目錄,能夠把以前指定的文件或者目錄複製到該目錄中。
常見參數:
-a 該選項一般在拷貝目錄時使用。它保留連接、文件屬性,並遞歸地拷貝目錄。
-p 複製源文件的內容,而且會複製修改時間和訪問權限到新文件中
-r 若給出的源文件是一目錄文件,此時cp 將遞歸複製該目錄下全部的子目錄和文件。此時目標文件必須爲一個目錄名
如:cp -r dir1 dir2 dir3,遞歸複製,把dir一、dir2 複製到dir3目錄中
mv , 移動和重命名
mv 命令能夠移動文件或者目錄,也能夠更改文件或目錄名稱
語法:
mv [源文件或者目錄] [目標文件或目錄]
如 mv dir1 dir2 :把dir1 移動到 dir2目錄中
mv /home/hello /home/world; 把/home 目錄下的hello 文件重命名爲world
rm ,刪除文件和目錄
rm 命令能夠刪除文件或目錄,使用參數「-r」 能夠刪除目錄,不然默認是刪除文件
rm -rf * ,刪除全部內容,包含目錄和文件
其中 -r 表示遞歸,-f 表示強制
cat ,顯示文件內容,將文件內容打印到標準輸出設備上
語法 :cat fileName
經常使用參數:
-n : 對輸出的行數進行編號
查看純文本文檔的前N行,寫到標準輸出
head -n 20 查看文本文件前20行
查看純文本文檔的後N行,寫到標準輸出
tail -n 20 查看文本文檔後20行
tail -f error.log 不斷刷新,實時查看文件內容改變
more ,顯示文件內容帶分頁
語法:more fileName
more命令相似cat ,以一頁一頁形式顯示,方便閱讀,按空格鍵日後翻下一頁,按b鍵(或 ctrl + pag up 上翻) 往前翻一頁
more + 10 fileName : 從第10 行顯示fileName 內容
less ,顯示文件內容帶分頁
less 與 more 相似,使用less 能夠隨意瀏覽文件
echo:輸出字符串
語法:echo [-ne] [字符串] 或 echo [--help][--version]
echo會將輸入的字符串送往標準輸出
7.系統設置
alias:有些命令很長,或者名字顯得彆扭,能夠給命令起一個別名
命令: alias :顯示系統當前定義的全部alias
【案例】 alias cp = ‘cp -i’
【案例】alias li = ‘ls -l -color=tty’
用戶可利用alias , 自定指令的別名。若僅輸入alias ,則可列出目前全部的別名設置。alias的效力僅基於該次登入的操做。若要每次登入是即自動設置好別名,可在/etc/profile 或本身的 ~/.bashrc 中設定指令的別名。
還有,若是你想給每一位用戶都生效的別名,請把 alias la = 'ls -al' 一行加在/etc/bashrc最後面
bashrc 是環境變量的配置文件 /etc/bashrc 和~/.bashrc 區別就在於一個是設置給全系統一個是設置給單用戶使用,若是你想給每一位用戶都生效的別名,請把alias la = 'ls -al' 一行加在 /etc/bashrc 最後面,bashrc是環境變量的配置文件 /etc/bashrc 和~/.bashrc 區別就在於一個是設置給全系統一個是設置給單用戶使用
命令的執行順序:
1: 執行用絕對路徑和相對路徑的命令
2:執行別名
3:執行Bash的內部命令
4:執行按照¥PATH 環境變量定義的目錄找到第一個命令
unalias:刪除別名
語法:unalias 別名
export, 設置和顯示環境變量
export 命令可新增、修改和刪除環境變量
export -p :列出全部的shell 賦予程序的環境變量。
man [command] , 幫助,相似與dos中的help ;man實際爲manual(操做說明),
man的級別:
1:查看命令的幫助
2:查看可被內核調用的函數的幫助
3:查看函數和函數庫的幫助
4:查看特殊文件得幫助,主要是 /dev 目錄下的文件
5:查看配置文件的幫助
6:查看遊戲的幫助
7:查看其它雜項的幫助
8:查看系統管理員可用命令的幫助
9:查看和內核相關文件得幫助
查看命令擁有那個級別的幫助:
man -f 命令,至關於whats命令
eg:man -5 passwd
man -4 null
man -8 ifconfig
查看和命令相關的全部幫助
man -k命令,至關於 apropos 命令