好啦,步入正題,我使用的linux鏈接工具爲xshell,mRemoteNG,對兩款工具不作介紹啦,你能夠百度一下,實在不會入左上方羣。css
進入以後,即是上面的界面黑乎乎一片,對於初學者也多是一片懵逼,猶如狗拿刺蝟,那麼不要急,咱們先來看下人生中的第一個linux命令:ls 與 cd 。html
首先你先使用下面的cd命令:node
[root@localhost ~]# 這個是當前用戶的用戶文件夾主目錄
[root@localhost /]# 這個是整個系統的根目錄linux
緊接着輸入ls命令展現出一下結果。nginx
那麼這些文件都裝載啦什麼東東,爲何要放在根目錄下,接下來咱們對此作個詳解。c++
ls,cd命令的語法與參數使用方法:http://man.linuxde.net ,不能偷懶哦,要敲敲, 你才能學好,多敲才能記住的。web
在linux中,任何設備都是文件,就連數據通訊接口也有專門的文件負責。因此咱們要搞清楚linux下的文件有哪些?哪些做用?redis
首先咱們這樣輸入命令,以下:算法
亂七八糟的都是什麼呢?我拿dev這個文件夾作爲示例分解下:shell
一、文件類型
普通文件:就是咱們通常的文件,他在linux中按照文件內容大體分文3種。
塊(block)設備文件:爲一些存儲數據,以體統隨機訪問的接口設備,如硬盤,軟盤等,能夠隨機的在硬盤的不一樣塊讀寫,能夠看看/dev/sda
字符(character)設備文件:一些串行端口的接口設備,如鍵盤、鼠標等。這些設備的特徵就是「一次性讀取」的,不可以截斷輸出。例如:鼠標只能滑動到一個地方而不能跳到另一個地方。
套字節(sockets):這種文件類型用於在網絡上的數據鏈接。
管道(FIFO,pipe):fifo,first-in-first-out,主要解決多個程序同事訪問一個文件所形成的錯誤問題。
目錄(directory):就是目錄。
鏈接文件(link):相似windows系統中的快捷鍵。
二、文件權限r-xr-xr-x
三、鏈接數:表示有多少文件名鏈接到此節點。
四、文件名
文件長度限制,通常不要超過255個字符就好。
當你打開linux系統以後,輸入命令:cd \ 進入根目錄以後,再ls會顯示出以下目錄結構
那麼這些目錄都有存放些什麼文件,咱們的文件又該以何種規範來存放呢?
Linux目錄結構標準:FHS(Filesystem Hierarchy Standard)標準
爲何要使用一個標準呢?很簡單,就是讓用戶和廠商有個共同的認識與約束,不至於各自爲政,把linux系統的目錄搞的亂七八糟,東西隨便放,那咱們的學習成本就很大啦。
關於FHS網上有不少介紹,FHS根據多去的經驗也一直在持續改版(http://www.pathname.com/fhs/),FHS根據文件系統使用的頻繁狀況,是否容許用戶隨意改動,將目錄定義成4種交互做用的形態,以下:
根目錄與根目錄下的文件夾存放說明
根目錄是整個系統最重要的一個目錄,由於全部的目錄都是由它衍生出來,並且根目錄也與開機,還原,系統修復等操做有關。
因爲系統開機須要特定的開機軟件、內核文件、開機所須要的程序、函數庫等文件數據,若系統出現異常時,根目錄也要有可以修復文件系統的程序。因而可知根目錄的重要性,因此FHS建議,根目錄不要放在很是大的分區內,由於越大防止的文件越多,出錯的概率也越大,性能也越很差,因此,根目錄應該越小越好,且應用程序所安裝的軟件最好不要與根目錄放在一個分區內。
由此咱們來講說下面的文件都是什麼,又怎麼放置纔好。
其實,FHS標準對根目錄的定義僅有以下的目錄數據。
其中有5個目錄不可與根目錄分開放在不一樣的分區。這5個目錄分別爲:etc,bin,dev,lib,sbin。
那麼除啦以上的文件夾以外,還有一些linux系統中也很是重要的目錄以下:
/dev目錄:
/etc目錄
/proc目錄
/usr目錄
依據FHS的基本定義/usr裏面放置的數據屬於可分享不可變更的。usr是UNIX Software Resource的縮寫,也就是「UNIX操做系統軟件資源」所放置的目錄,而不是用戶數據,不要跟user扯上關係。它至關於windows系統中的c:\windows與c:program files這兩個目錄的綜合體。剛裝完系統時,這個目錄佔用的硬盤容量最多。由於幾乎全部的應用程序都安裝在這裏,本地安裝的程序和其餘東西放在/usr/local下。
/var目錄
usr是安裝時佔用大量的硬盤容量,而var則是在系統運行後纔會慢慢佔用硬盤的容量。由於var目錄主要針對常態性變更的文件,好比,緩存,登陸文件,以及某些軟件運行所產生的文件,包括程序文件(lock file,run file)。
LIUNX系統的目錄樹,以下:
壓縮:是一種經過特定的算法來減少計算機文件大小的機制(百度百科下)。
打包:將多個文件放入一個文件中,最終以一個文件的形式存在。
Linux系統中常見的壓縮命令有三種:compress , gzip , bzip2 。
gzip的經常使用用法:
語法:gzip 參數 文件名
參數:
-c:將壓縮的數據輸出到屏幕上,可經過數據重定向來處理。
-d:解壓的參數
-t:能夠用來檢驗一個壓縮文件的一致性,看看文件是否有錯誤。
-v:能夠顯示出源文件/壓縮文件的壓縮比信息。
-#:壓縮等級,1-9。
經常使用的語句:壓縮:gzip -v filename ,解壓:gzip -d filename 。 查看文本壓縮文件:zcat 文件名。
bzip2的經常使用用法:
語法:bzip2 參數 文件名
參數:
-c:將壓縮過程當中產生的數據輸出到屏幕上
-d:解壓縮
-k:保留源文件,而不會刪除原始文件
-z:壓縮
-v:顯示出源文件/壓縮文件的壓縮比等信息。
-#:與gzip相同,1-9壓縮比的參數,1最快,9最佳。
經常使用的語句:壓縮:bzip2 -z filename ,解壓:bzip2 -d filename 。查看壓縮文本:bzcat filename.bz2
tar打包命令
以上三種壓縮解壓只能針對單文件執行,那麼若是將多個文件合併到一個大文件中,怎麼作到呢?那就要用tar這個命令。tar不止這麼多,它還支持gzip/bzip2在打包的同時對文件進行壓縮。因爲這tar使用過於普遍,就連windows中的WinRAR也支持.tar.gz文件名的解壓縮。
語法:打包與壓縮:tar [-j|-z] [cv] [-f 新建的文件名] filename 解壓縮: tar [-j|-z] [xv] [-f 新建的文件名] [-C 目錄]
參數:
-c:新建打包文件,可搭配-v來查看過程當中被打包的文件名
-t:查看打包文件的內容含有那些文件名,重點在查看文件
-x:解壓縮或解打包的功能,可搭配-C在特定目錄解開。特別留意的是,-c,-t,-x不可同時出如今一串命令中。
-j:經過bzip2的支持進行壓縮或解壓。
-z:經過gzip的支持進行壓縮或解壓。
-v:在壓縮或解壓的過程當中,將正在處理的文件名稱顯示出來。
-f filename:-f後面要接被處理的文件名。建議-f單獨寫一個參數。
-C 目錄:這個參數在解壓時,若要在特定目錄解壓縮,可使用這個參數。
.tar.bz2 格式經常使用的語法
解壓: tar jxvf filename.tar.bz2 , 壓縮: tar jcvf filename.tar.bz2 要壓縮的文件
.tar.gz 格式經常使用的語法
解壓:tar zxvf filename.tar.gz ,壓縮: tar zcvf filename.tar.gz 要壓縮的文件
上一篇咱們瞭解啦Linux系統中,根目錄下的各個文件夾是作什麼用的啦,也學會文件如何壓縮打包。那麼接下來咱們就該用到這個系統啦。用這個系統,就是用這個系統的軟件,那麼咱們對咱們須要的軟件如何安裝,對不須要的軟件如何卸載,本篇就此作個詳解。
咱們針對的系統爲Centos,那麼Centos的主要軟件管理有3種,源碼與tarball,rpm與srpm,yum。
我會在講解每一種安裝方式的同時,寫一個咱們開發經常使用到的軟件實例的安裝,源碼安裝redis,rpm安裝rabbitmq,yum安裝nginx。
在安裝以前咱們先說幾個名詞,對於開發人員來講應該是一目瞭然的。
開放源碼:就是用編程語言寫的程序代碼,人懂機器不懂,沒法在系統中執行。
編譯程序:將程序代碼轉譯成爲機器看得懂的語言。
gcc:Liunx系統中最多見的語言爲c語言,而c語言在linux上面最標準的編譯程序就是gcc。它是由GNU計劃所維護。對GNU有興趣的話你們能夠網上搜下資料。
利用gcc編譯器進行程序的編譯流程示意圖:
可執行文件:通過編譯程序變成二進制程序後機器可以看得懂因此稱爲可執行的文件。
函數庫:相似子程序的角色,能夠被調用來執行的一段功能函數。又分爲動態函數庫與靜態函數庫,動態函數庫以so結尾,一般被命名爲libxxx.so,編譯時程序中只保存起指向地址,不合併到主程序中,因此主程序不能獨立運行,需包含動態庫,且動態庫不可隨意修改路徑。靜態函數庫以.a結尾,一般被命名爲libxxx.a,編譯時會將其功能合併至主程序中,運行是不須要靜態庫的支持。
程序執行時引用外部動態函數庫的示意圖以下:
Tarball:這個更容易理解啦,就是爲啦方面在網絡上下載,軟件開發者把源碼打包壓縮後,放到網上發佈的軟件文件。通常包含,源代碼文件,檢測程序文件(多是configure或config等文件名),本軟件的簡易說明與安裝說明(install或readme)。
Tarball方式安裝Redis實例演練
基本步驟:
一、下載源文件至/usr/local/src目錄下解壓縮。
二、取得步驟流程:進入新建的目錄下面,去查閱install與readme等相關文件內容。
三、相關屬性軟件安裝:根據install與readme的內容查看並安裝好一些相關的軟件
四、創建makefile:以自動檢測程序(configure或config)檢測操做環境,並創建makefile這個文件
五、編譯:以make這個程序並使用該目錄下的makefile做爲他的參數配置文件,進行make(編譯)操做
安裝:以make這個程序,並以makefile這個參數配置文件,依據install這個目標的指定來安裝到正確的路徑。
經常使用命令:
./configure:這個步驟就是在建立 Makefile 這個文件囉!一般程序開發者會寫一支 scripts 來檢查你的 Linux 系統、相關的軟件屬性等等,這個步驟至關的重要, 由於將來你的安裝信息都是這一步驟內完成的!另外,這個步驟的相關信息應該要參考一下該目錄下的 README 或 INSTALL 相關的文件!
make clean:make 會讀取 Makefile 中關於 clean 的工做。這個步驟不必定會有,可是但願執行一下,由於他能夠去除目標文件!由於誰也不肯定源代碼裏面到底有沒有包含上次編譯過的目標文件 (*.o) 存在,因此固然仍是清除一下比較穩當的。 至少等一下新編譯出來的可執行文件咱們能夠肯定是使用本身的機器所編譯完成的嘛!
make:make 會依據 Makefile 當中的默認工做進行編譯的行爲!編譯的工做主要是進行 gcc 來將源代碼編譯成爲能夠被執行的 object files ,可是這些 object files 一般還須要一些函數庫之類的 link 後,才能產生一個完整的可執行文件!使用 make 就是要將源代碼編譯成爲能夠被執行的可可執行文件,而這個可可執行文件會放置在目前所在的目錄之下, 還沒有被安裝到預約安裝的目錄中;
make install:一般這就是最後的安裝步驟了,make 會依據 Makefile 這個文件裏面關於 install 的項目,將上一個步驟所編譯完成的數據給他安裝到預約的目錄中,就完成安裝啦!
經過configure與make進行編譯的示意圖以下:
Redis實例安裝:
下載:
解壓:
編譯:
設置配置參數:
啓動:
驗證使用redis:
總結下:其實在安裝某些軟件時,可能沒有那麼繁瑣,就好比redis官方也有安裝示例,你們看看就會啦,安裝的方式有不少種,沒必要過於居於模式,可是必定要看官方的文檔,不能胡亂一塊兒瞎搞。
RPM全名是「RedHat Package Manager」,是RedHat公司發展出來的以一種數據庫記錄的方式來將你所須要的軟件安裝到linux系統的一套管理機制。
那麼什麼叫一種數據庫記錄的方式呢?就是開發發佈者將軟件編譯過以後,打包成rpm基礎的包文件,包中的軟件都有頭文件,頭文件中記錄這個軟件須要依賴的軟件,所需的服務器配置,及自身版本的一些信息,當咱們安裝這個軟件時,rpm會根據這個頭文件與liunx主機中的安裝軟件的記錄信息作匹配,而後反饋環境是否知足,是否已存在,等等信息。
那麼編譯事後的軟件,直接安裝有什麼優缺點呢?優勢不用編譯可快速安裝,缺點:咱們安裝的主機環境必需要跟開發發佈者編譯時的環境一致。
那麼什麼叫作依賴的軟件呢?很簡單就想你安裝MSSQL須要.NetFramwork同樣,安裝rabbitmq須要安裝erlang環境同樣。他們安裝時都有依賴的軟件或平臺。
那麼rpm與srpm的區別是什麼呢?一張圖搞定,以下:
rpm的包是什麼樣子呢?
首先先掛載cdrom到media下
查看rpm什麼樣子
看看有多少自帶的Rpm包
哇自帶3725個,基本夠你用的啦。若是處理一些依賴軟件或者自帶的不能知足你的話,除啦軟件官網下載以外,哥哥推薦三個網站:
http://www.rpmseek.com/index.html
Rpm命名規則
操做硬件平臺:
Rpm安裝語法:
[root@localhost ~]# rpm -ivh package_name
選項與參數:
-i :install 的意思
-v :察看更細部的安裝信息畫面
-h :以安裝信息列顯示安裝進度
通常狀況下這一句命令,配上系統自帶的rpm包與上面三個網站中的包就足夠啦,若是不能解決你的問題的話,那要查看軟件官方提供的安裝文檔。
若是你對軟件足夠的熟悉那麼也能夠採用下面的參數進行安裝。
Rpm的升級與更新
Rpm的查詢
Rpm驗證與數碼簽章
上面查詢是否被改動過中有......T. 這是什麼意思呢?
若是一個文件都被改動過,那麼以下顯示:SM5DLUGTP c filename
至於那個 c 表明的是「 Config file 」的意思,也就是文件的類型,文件類型有下面這幾類:
Rpm反安裝與重建數據庫
rpm --rebuilddb ==重建數據庫
首先打開rabbitmq.com官網,他的安裝頁有rpm包。安裝文檔指示咱們安裝rabbitmq須要2大步驟。
一、先安裝erlang環境,二、安裝rabbitmq。
由此可知rabbitmq是依賴erlang環境的,下面咱們先安裝下erlang。
[root@localhost src]# wget https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_19.2~centos~7_amd64.rpm --2017-02-07 14:10:27-- https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_19.2~centos~7_amd64.rpm 正在解析主機 packages.erlang-solutions.com (packages.erlang-solutions.com)... 31.172.186.53 正在鏈接 packages.erlang-solutions.com (packages.erlang-solutions.com)|31.172.186.53|:443... 已鏈接。 已發出 HTTP 請求,正在等待迴應... 200 OK 長度:43611864 (42M) [application/x-redhat-package-manager] 正在保存至: 「esl-erlang_19.2~centos~7_amd64.rpm」 100%[==================================================================================================================================>] 43,611,864 446KB/s 用時 80s 2017-02-07 14:12:04 (530 KB/s) - 已保存 「esl-erlang_19.2~centos~7_amd64.rpm」 [43611864/43611864]) [root@localhost src]# rpm -ivh esl-erlang_19.2~centos~7_amd64.rpm 錯誤:依賴檢測失敗: libodbc.so.2()(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_baseu-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_baseu-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_baseu_xml-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_adv-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_adv-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_aui-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_aui-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_aui-2.8.so.0(WXU_2.8.5)(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_core-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_core-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_core-2.8.so.0(WXU_2.8.10)(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_gl-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_gl-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_html-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_html-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_stc-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_stc-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_xrc-2.8.so.0()(64bit) 被 esl-erlang-19.2-1.x86_64 須要 libwx_gtk2u_xrc-2.8.so.0(WXU_2.8)(64bit) 被 esl-erlang-19.2-1.x86_64 須要
因而可知安裝erlang環境也是須要環境支持的。那麼咱們安裝erlang須要的安裝環境,那麼咱們首先須要安裝非默認的第三方yum庫。
[root@localhost bin]# yum install epel-release
而後安裝erlang須要的安裝環境
[root@localhost bin]# yum install unixODBC unixODBC-devel wxBase wxGTK SDL wxGTK-gl 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * epel: mirror.premi.st * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 軟件包 unixODBC-2.3.1-11.el7.x86_64 已安裝而且是最新版本 軟件包 unixODBC-devel-2.3.1-11.el7.x86_64 已安裝而且是最新版本 軟件包 wxBase-2.8.12-20.el7.x86_64 已安裝而且是最新版本 軟件包 wxGTK-2.8.12-20.el7.x86_64 已安裝而且是最新版本 軟件包 SDL-1.2.15-14.el7.x86_64 已安裝而且是最新版本 軟件包 wxGTK-gl-2.8.12-20.el7.x86_64 已安裝而且是最新版本
而後就能夠順利的把erlang安裝上啦
[root@localhost src]# rpm -ivh esl-erlang_19.2~centos~7_amd64.rpm
最後安裝rabbitmq那也是順溜的很啦。
[root@localhost src]# rpm -ivh rabbitmq-server-3.6.6-1.el7.noarch.rpm
啓動/關閉rabbitmq服務
啓動端口
找到/etc/sysconfig/iptables ,若是不存在,隨便一個iptalbles命令便可出現,如iptables -F 清除iptables已有的全部規則。配置以下端口對外開放。
[root@localhost src]# vim /etc/sysconfig/iptables
#RabbitMQ -A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 25672 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 5671 -j ACCEPT #RabbitMQ
啓動插件
./rabbitmq-plugins enable rabbitmq_management(執行一次之後不用再次執行)
客戶端打開管理頁面
輸入:服務器地址:15672 默認gust,不可用。只能在服務端可用。
關於rabbitmq的詳細內容之後我還會補充,之前也有一篇我本身的博文,有興趣的能夠點開看下:.Net使用Rabbitmq詳解
關於yum的使用是很是簡單的,你們能夠看下 http://man.linuxde.net/yum 多敲敲練練就會啦。
而文章一開始說yum方式安裝nginx,那麼命令看仔細啦啊。
[root@localhost src]# yum install nginx
對,你沒有看錯,在線安裝,自動解決軟件相互依賴問題,安裝成功啦,就是這麼簡單。
這裏值得一說的是yum的包源配置是在下面的文件中:
[root@localhost etc]# ll /etc|grep yum drwxr-xr-x. 6 root root 95 2月 7 20:09 yum -rw-r--r--. 1 root root 970 11月 15 23:30 yum.conf drwxr-xr-x. 2 root root 4096 2月 7 20:10 yum.repos.d
在yum.repos.d這個文件夾下,你如何看懂文件中的內容,以及如何配置,那麼你須要自行百度,我不想寫啦
主要內容:網絡,系統,cpu,內存,硬盤,進程等等經常使用的基礎信息查看與基礎功能設置。
查看系統當前時間
[root@zlhpc ~]# date 2017年 02月 09日 星期四 03:20:45 CST
修改時間
[root@zlhpc sysconfig]# date -s "2016-02-09 15:15:00" 2016年 02月 09日 星期二 15:15:00 CST [root@zlhpc sysconfig]# date 2016年 02月 09日 星期二 15:15:05 CST
同步網路時間
[root@zlhpc sysconfig]# ntpdate -u ntp.api.bz 9 Feb 15:56:21 ntpdate[4132]: step time server 17.253.68.253 offset 31624839.558211 sec [root@zlhpc sysconfig]# date 2017年 02月 09日 星期四 15:56:27 CST
note1:ntp是網絡時間協議,主要用做同步計算機時間與服務器時間一致的。常見的ntp服務器有:210.72.145.44(國家授時中心服務器地址),ntp.api.bz(上海),time.nist.gov(美國),ntp.fudan.edu.cn(復旦),s1b.time.edu.cn(清華大學),等等。
note2:date命令設置時間只有超級用戶纔有,通常用戶只能查看,且修改玩以後要記得執行clock -w 命令,把系統時間寫入CMOS中。
顯示系統主機名
[root@zlhpc sysconfig]# hostname zlhpc
修改主機名,須要同時修改/etc/hosts和/etc/sysconfig/network,且修改完以後需重啓機器生效且永久保存,使用hostname命令只能臨時修改不能永久有效。
[root@zlhpc sysconfig]# vim /etc/hostname
-v:詳細信息模式; -a:顯示主機別名; -d:顯示DNS域名; -f:顯示FQDN名稱; -i:顯示主機的ip地址; -s:顯示短主機名稱,在第一個點處截斷; -y:顯示NIS域名。
uname查看操做系統相關信息
[root@zlhpc /]# uname -a Linux zlhpc 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
數據依次爲:內核名稱,主機名,內核版本號,內核版本,硬件名,處理器類型,硬件平臺類型,操做系統名稱
參數以下
其餘幾種出去啊看Linux版本信息的方法
[root@zlhpc /]# cat /proc/version Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015 [root@zlhpc /]# cat /etc/issue \S Kernel \r on an \m [root@zlhpc /]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.2.1511 (Core) Release: 7.2.1511 Codename: Core
Linux系統查看cpu信息
[root@zlhpc /]# grep "model name" /proc/cpuinfo #查看cpu信息 model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz [root@zlhpc /]# more /proc/cpuinfo #查看cpu信息 processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 60 model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz stepping : 3 microcode : 0x1e cpu MHz : 3591.678 cache size : 8192 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 [root@zlhpc /]# getconf LONG_BIT #查看cpu位數 64
用戶與組分類,根據賬號或組的位置均可以分爲:本地賬號|組,遠程(域)賬號|組 ,LDAP,NIS
根據賬號|組的功能分類能夠分爲:超級用戶(root) uid:0 ,普通用戶。普通用戶又分爲:系統賬號(uid範圍:1-499,1-99:由distributions自行建立的系統賬號,100-499:若用戶有系統賬號的需求時,可使用的賬號uid)和可登陸賬號(uid範圍:500+)
關於系統用戶和組的相關配置文件放在系統的一下文件中:
用戶的賬號信息:/etc/passwd 用戶的密碼信息:/etc/shadow
用戶組信息:/etc/group 組的密碼信息:/etc/gshadow
那麼下面咱們一一打開這些文件來看看他們到底存放啦那些內容,格式是什麼樣的,咱們又該怎麼解讀。
[root@zlhpc home]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:997:995:User for polkitd:/:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin abrt:x:173:173::/etc/abrt:/sbin/nologin libstoragemgmt:x:996:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin chrony:x:995:993::/var/lib/chrony:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin rabbitmq:x:994:992:RabbitMQ messaging server:/var/lib/rabbitmq:/bin/bash nginx:x:993:991:Nginx web server:/var/lib/nginx:/sbin/nologin
每一行都表明一個用戶,每一行中的冒號(:)表明分割符,那咱們拿第一行作一個解讀,以下:
root:x:0:0:root:/root:/bin/bash
查看系統中支持那些shell:
[root@zlhpc home]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh
接下來咱們看下用戶關於密碼的配置文件:
[root@zlhpc home]# cat /etc/shadow root:$6$zVDR2oO1Yg7alTbs$.70PPMYxg70k9BvLtjHdm94CDA1YWDRDI5NFzSfcmZF5WMESgIbLUdnqRjuVycg481Ny9rl//YzAFnXhurQi//::0:99999:7::: bin:*:16659:0:99999:7::: daemon:*:16659:0:99999:7::: adm:*:16659:0:99999:7::: lp:*:16659:0:99999:7::: sync:*:16659:0:99999:7::: shutdown:*:16659:0:99999:7::: halt:*:16659:0:99999:7::: mail:*:16659:0:99999:7::: operator:*:16659:0:99999:7::: games:*:16659:0:99999:7::: ftp:*:16659:0:99999:7::: nobody:*:16659:0:99999:7::: avahi-autoipd:!!:17203:::::: systemd-bus-proxy:!!:17203:::::: systemd-network:!!:17203:::::: dbus:!!:17203:::::: polkitd:!!:17203:::::: tss:!!:17203:::::: postfix:!!:17203:::::: sshd:!!:17203:::::: rpc:!!:17204:0:99999:7::: abrt:!!:17204:::::: libstoragemgmt:!!:17204:::::: chrony:!!:17204:::::: ntp:!!:17204:::::: tcpdump:!!:17204:::::: rabbitmq:!!:17204:::::: nginx:!!:17204::::::
依然拿出第一行作一下解讀:
root:$6$zVDR2oO1Yg7alTbs$.70PPMYxg70k9BvLtjHdm94CDA1YWDRDI5NFzSfcmZF5WMESgIbLUdnqRjuVycg481Ny9rl//YzAFnXhurQi//::0:99999:7:::
查看關於組的配置文件,以下:
[root@zlhpc home]# head -n 4 /etc/group root:x:0: bin:x:1: daemon:x:2: sys:x:3:
root:x:0:
接下來咱們來看下賬號管理,關於賬號的增刪改查操做
一、添加用戶
[root@zlhpc home]# useradd zhanglonghao [root@zlhpc home]# useradd zhanglonghao1
useradd (選項)(參數)
修改用戶信息,參數選項和添加一致。
[root@zlhpc home]# usermod zhanglonghao -u 1005 [root@zlhpc home]# id zhanglonghao uid=1005(zhanglonghao) gid=1000(zhanglonghao) 組=1000(zhanglonghao)
刪除用戶
[root@zlhpc home]# userdel zhanglonghao2 -rf
userdel,參數以下:若是不加下面的參數進行直接刪除,則用戶刪除,用戶的目錄與文件依舊保留。
把某個用戶添加到哪一個組中:示例把用戶zhanglonghao添加到zhanglonghao1的組中,且也在原有的組中不被刪除,這是必須加 -a意思是附加的意思,以下:
[root@zlhpc home]# usermod zhanglonghao -a -G zhanglonghao1 [root@zlhpc home]# groups zhanglonghao zhanglonghao : zhanglonghao zhanglonghao1
id查看用戶的id信息
[root@zlhpc home]# id zhanglonghao uid=1005(zhanglonghao) gid=1000(zhanglonghao) 組=1000(zhanglonghao),1001(zhanglonghao1)
查看當前登陸系統的用戶信息
[root@zlhpc home]# who root pts/0 2017-02-12 15:01 (172.18.8.196) [root@zlhpc home]# users root [root@zlhpc home]# id -un root [root@zlhpc home]# whoami root [root@zlhpc home]# who root pts/0 2017-02-12 15:01 (172.18.8.196) [root@zlhpc home]# w 16:51:15 up 1:50, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 172.18.8.196 15:01 3.00s 0.44s 0.01s w
咱們針對w這個命令作個解釋
參數爲 -h :忽略頭文件信息, -u:顯示結果的加載時間 , -s :不顯示JCPU,PCPU,登錄時間。
打開網頁:curl
[root@zlhpc ~]# curl www.baidu.com <!DOCTYPE html> <!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class="head_wrapper"> <div class="s_form"> <div class="s_form_wrapper"> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class="fm"> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class="s_ipt" value maxlength=255 autocomplete=off autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=百度一下 class="bg s_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class="mnav">新聞</a> <a href=http://www.hao123.com name=tj_trhao123 class="mnav">hao123</a> <a href=http://map.baidu.com name=tj_trmap class="mnav">地圖</a> <a href=http://v.baidu.com name=tj_trvideo class="mnav">視頻</a> <a href=http://tieba.baidu.com name=tj_trtieba class="mnav">貼吧</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class="lb">登陸</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登陸</a>');</script> <a href=//www.baidu.com/more/ name=tj_briicon class="bri" style="display: block;">更多產品</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>關於百度</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>©2017 Baidu <a href=http://www.baidu.com/duty/>使用百度前必讀</a> <a href=http://jianyi.baidu.com/ class="cp-feedback">意見反饋</a> 京ICP證030173號 <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
下載文件:wget
[root@zlhpc ~]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz
linux下的文本瀏覽器:w3m與links
[root@zlhpc ~]# w3m www.baidu.com [root@zlhpc ~]# links www.baidu.com
檢查你的網絡與另一臺機器是否互通:ping
[root@zlhpc ~]# ping www.baidu.com
作路由圖提供咱們分析哪裏出現故障或者是否存在網絡擁塞狀況:mtr
[root@zlhpc ~]# mtr [root@zlhpc ~]# mtr -r -c 30 www.baidu.com #每秒發送數據包的數量是30 ,mtr -r -c 30 -s 1024 www.baidu.com #ping包的大小爲1024個字節 Start: Sun Feb 12 18:01:09 2017 HOST: zlhpc Loss% Snt Last Avg Best Wrst StDev 1.|-- ??? 100.0 30 0.0 0.0 0.0 0.0 0.0 2.|-- 116.236.169.77 0.0% 30 4179. 9116. 4179. 11973 2051.2 3.|-- 124.74.124.165 0.0% 30 1.9 3.6 1.7 5.4 1.0 4.|-- 124.74.210.101 0.0% 30 4.1 4.5 2.4 6.1 1.0 5.|-- 59.43.77.141 0.0% 30 20.1 18.1 7.4 54.5 8.2 6.|-- 59.43.80.94 0.0% 30 4.3 6.0 2.7 24.3 3.6 7.|-- 202.97.26.2 86.7% 30 5.1 5.2 5.0 5.4 0.0 8.|-- 220.191.200.30 0.0% 30 5.9 5.5 5.1 7.0 0.3 9.|-- ??? 100.0 30 0.0 0.0 0.0 0.0 0.0 10.|-- 115.239.209.2 0.0% 30 6.8 7.1 6.6 8.0 0.0 11.|-- ??? 100.0 30 0.0 0.0 0.0 0.0 0.0 12.|-- 115.239.210.27 0.0% 30 6.1 6.5 5.6 11.7 1.4
mtr參數以下:
DNS查詢,若是是參數是域名輸出關聯ip,若是參數是ip輸出關聯的域名:host
[root@zlhpc ~]# host www.baidu.com www.baidu.com is an alias for www.a.shifen.com. www.a.shifen.com has address 115.239.211.112 www.a.shifen.com has address 115.239.210.27
出網絡接口配置、調優和debug的各類選項:ifconfig
[root@zlhpc ~]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.18.8.190 netmask 255.255.255.0 broadcast 172.18.8.255 inet6 fe80::20c:29ff:feb5:d2d8 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:b5:d2:d8 txqueuelen 1000 (Ethernet) RX packets 10916 bytes 7044121 (6.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7267 bytes 774719 (756.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 318 bytes 32844 (32.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 318 bytes 32844 (32.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
關於ip的命令
[root@zlhpc ~]# ip link show #查看全部網絡接口屬性信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:0c:29:b5:d2:d8 brd ff:ff:ff:ff:ff:ff [root@zlhpc ~]# ip -s link show #查看全部統計信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 RX: bytes packets errors dropped overrun mcast 32844 318 0 0 0 0 TX: bytes packets errors dropped carrier collsns 32844 318 0 0 0 0 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether 00:0c:29:b5:d2:d8 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 7050452 10988 0 0 0 0 TX: bytes packets errors dropped carrier collsns 780097 7309 0 0 0 0 [root@zlhpc ~]# ip addr show #查看網絡信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:b5:d2:d8 brd ff:ff:ff:ff:ff:ff inet 172.18.8.190/24 brd 172.18.8.255 scope global dynamic eno16777736 valid_lft 83120sec preferred_lft 83120sec inet6 fe80::20c:29ff:feb5:d2d8/64 scope link valid_lft forever preferred_lft forever
這裏簡單介紹下,之後會有深刻介紹。
ifdown與ifup分別是禁用與啓用摸個網絡接口
[root@zlhpc ~]# ifdown eno16777736 [root@zlhpc ~]# ifup eno16777736
netstat命令是一個監控TCP/IP網絡的很是有用的工具,它能夠顯示路由表、實際的網絡鏈接以及每個網絡接口設備的,netstat命令的功能是顯示網絡鏈接、路由表和網絡接口信息,可讓用戶得知目前都有哪些網絡鏈接正在運做。
netstat [選項]
列出全部鏈接
[root@zlhpc ~]# netstat -a --列出全部鏈接 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
只列出tcp或者udp協議的鏈接
[root@zlhpc ~]# netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
[root@zlhpc ~]# netstat -au Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 0.0.0.0:18604 0.0.0.0:* udp 0 0 localhost:323 0.0.0.0:* udp 0 0 0.0.0.0:bootpc 0.0.0.0:* udp6 0 0 localhost:323 [::]:* udp6 0 0 [::]:53744 [::]:*
禁用反向域名解析,加快查詢速度
[root@zlhpc ~]# netstat -ant Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 52 172.18.8.190:22 172.18.8.196:51171 ESTABLISHED tcp 0 0 172.18.8.190:22 172.18.8.196:49639 ESTABLISHED
只列出監聽中的鏈接
[root@zlhpc ~]# netstat -tnl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp6 0 0 :::111 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN
獲取進程名,進程號以及用戶id
[root@zlhpc ~]# netstat -nlpt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1538/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2094/master tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 1538/sshd tcp6 0 0 ::1:25 :::* LISTEN 2094/master
[root@zlhpc ~]# netstat -ltpe Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN root 16299 1/systemd tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN root 21179 1538/sshd tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN root 22083 2094/master tcp6 0 0 [::]:sunrpc [::]:* LISTEN root 16298 1/systemd tcp6 0 0 [::]:ssh [::]:* LISTEN root 21189 1538/sshd tcp6 0 0 localhost:smtp [::]:* LISTEN root 22084 2094/master
網絡報統計狀況
[root@zlhpc ~]# netstat -s Ip: 7872 total packets received 0 forwarded 0 incoming packets discarded 6932 incoming packets delivered 7284 requests sent out 60 dropped because of missing route Icmp: 260 ICMP messages received 1 input ICMP message failed. ICMP input histogram: destination unreachable: 1 timeout in transit: 214 echo requests: 1 echo replies: 44 409 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 33 echo request: 12 echo replies:
... OUTPUT TRUNCATED ...
持續輸出 -c持續輸出tcp協議信息
[root@zlhpc ~]# netstat -ct Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 52 zlhpc:ssh localhost:51171 ESTABLISHED tcp 0 0 zlhpc:ssh localhost:49639 ESTABLISHED
最後上一個簡單的實時流量監控工具:iftop ,它能夠用來監控實時流量,反向解析ip,顯示端口等。使用需先安裝iftop,官網地址:http://www.ex-parrot.com/~pdw/iftop/
不過還有不少相似的軟件,咱們放在之後討論。
[root@zlhpc ~]# iftop interface: eno16777736 IP address is: 172.18.8.190 MAC address is: 00:0c:29:b5:d2:d8
經常使用參數命令:
-i設定監測的網卡,如:# iftop -i eth1
-B 以bytes爲單位顯示流量(默認是bits),如:# iftop -B
-n使host信息默認直接都顯示IP,如:# iftop -n
-N使端口信息默認直接都顯示端口號,如: # iftop -N
-F顯示特定網段的進出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
-h(display this message),幫助,顯示參數信息
-p使用這個參數後,中間的列表顯示的本地主機信息,出現了本機之外的IP信息;
-b使流量圖形條默認就顯示;
-f這個暫時還不太會用,過濾計算包用的;
-P使host信息及端口信息默認就都顯示;
-m設置界面最上邊的刻度的最大值,刻度分五個大段顯示,例:# iftop -m 100M
圖解:
界面命令:
整個系統的存儲狀況
[root@zlhpc ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/mapper/centos-root 18G 2.1G 16G 12% / devtmpfs 479M 0 479M 0% /dev tmpfs 489M 0 489M 0% /dev/shm tmpfs 489M 6.7M 483M 2% /run tmpfs 489M 0 489M 0% /sys/fs/cgroup /dev/sda1 497M 124M 374M 25% /boot tmpfs 98M 0 98M 0% /run/user/0
某個文件或文件夾大小
[root@zlhpc usr]# du --max-depth=1 -h 108M ./bin 46M ./sbin 390M ./lib 417M ./lib64 517M ./share 0 ./etc 0 ./games 35M ./include 78M ./libexec 51M ./local 55M ./src 1.7G .
du的相關參數以下:
使用tree工具,查看樹形目錄結構,首先先安裝tree工具
[root@zlhpc usr]# tree -L 3 src #列出src層數爲3之內的全部文件 src ├── debug └── kernels └── 3.10.0-514.6.1.el7.x86_64 ├── arch ├── block ├── crypto ├── drivers ├── firmware
tree經常使用參數:
-d:僅顯示目錄
-a:顯示全部
-f:顯示完整路徑
-L n :n爲數字,表示要現實幾層。
top默認3秒刷新一次,按空格當即刷新,q:退出,M:按內存排序,P:按cpu排序,<>:翻頁 。
top - 21:32:45 up 6:31, 2 users, load average: 0.01, 0.02, 0.05 Tasks: 348 total, 2 running, 346 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1001332 total, 321616 free, 166176 used, 513540 buff/cache KiB Swap: 2097148 total, 2097148 free, 0 used. 596688 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3865 root 20 0 146296 2272 1452 R 0.7 0.2 0:00.62 top 1 root 20 0 126416 7184 2608 S 0.0 0.7 0:02.43 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.06 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.37 ksoftirqd/0 6 root 20 0 0 0 0 S 0.0 0.0 0:00.98 kworker/u256:0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/1 11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/2 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/3 13 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/4
統計講解:
第一行的統計信息與命令uptime命令執行結果一致,依次爲:
第2、三行爲進程和cpu的信息,當有多個cpu時,這些內容可能會超過2行,內容以下:
第4、五行爲內存信息
第六列頭標題詳細
top命令參數
經常使用命令
top //每隔5秒顯式全部進程的資源佔用狀況 top -d 2 //每隔2秒顯式全部進程的資源佔用狀況 top -c //每隔5秒顯式進程的資源佔用狀況,並顯示進程的命令行參數(默認只有進程名) top -p 12345 -p 6789//每隔5秒顯示pid是12345和pid是6789的兩個進程的資源佔用狀況 top -d 2 -c -p 123456 //每隔2秒顯示pid是12345的進程的資源使用狀況,並顯式該進程啓動的命令行參數
[root@zlhpc ~]# free -h total used free shared buff/cache available Mem: 977M 138M 693M 6.6M 145M 690M Swap: 2.0G 0B 2.0G
去掉爲硬件和操做系統保留的內存後剩餘的內存總量。許多人奇怪本身的電腦安裝了一共8G的內存,可是顯示總共只有七點幾G的,如今應該沒什麼疑惑了把,無論Linux仍是Windows都會有部份內存是保留給硬件和操做系統的!
可使用的內存總量
Linux系統查看內存信息
[root@zlhpc /]# more /proc/meminfo #查看內存信息 MemTotal: 1001332 kB MemFree: 322740 kB MemAvailable: 597536 kB Buffers: 1004 kB Cached: 261816 kB SwapCached: 0 kB Active: 169740 kB Inactive: 167476 kB Active(anon): 74780 kB Inactive(anon): 6452 kB Active(file): 94960 kB Inactive(file): 161024 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB Dirty: 0 kB Writeback: 0 kB [root@zlhpc /]# grep MemTotal /proc/meminfo #查看內存信息 MemTotal: 1001332 kB
pstree:樹形結構顯示系統進程信息
-p顯示進程號
[root@zlhpc ~]# pstree -p systemd(1)─┬─NetworkManager(978)─┬─dhclient(1320) │ ├─{NetworkManager}(1051) │ └─{NetworkManager}(1054) ├─abrt-watch-log(886) ├─abrtd(885) ├─agetty(906) ├─atd(900) ├─auditd(852)───{auditd}(871)
ps:用於展現當前系統的進程狀態。能夠搭配kill指令隨時中斷、刪除沒必要要的程序。ps命令是最基本同時也是很是強大的進程查看命令,使用該命令能夠肯定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程佔用了過多的資源等等,總之大部分信息都是能夠經過執行該命令獲得的。
[root@zlhpc ~]# ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.7 126420 7172 ? Ss 09:12 0:01 /usr/lib/systemd/system root 2 0.0 0.0 0 0 ? S 09:12 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 09:12 0:00 [ksoftirqd/0] root 6 0.0 0.0 0 0 ? S 09:12 0:00 [kworker/u256:0] root 7 0.0 0.0 0 0 ? S 09:12 0:00 [migration/0] root 8 0.0 0.0 0 0 ? S 09:12 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S 09:12 0:00 [rcuob/0]
恐怖的參數多的以下:
[root@zlhpc ~]# ps -ef --標準格式顯示進程 [root@zlhpc ~]# ps -aux --BSD格式顯示進程