shell 知識點

1 shell 定義: python

     當咱們完成系統登入(log in),咱們就取得一個互動模式的 shell ,也稱爲 login shell 或 primary shell。若從進程(process)角度來講,咱們在 shell 所下達的命令,均是 shell 所產生的子進程。這現像,咱們暫可稱之爲 fork 。若是是執行腳本(shell script)的話,腳本中的命令則是由另一個非互動模式的子 shell (sub shell)來執行的。也就是 primary shell 產生 sub shell 的進程,sub shell 再產生 script 中全部命令的進程。 shell

 

2 " "(雙引號) 與 ' '(單引號)ubuntu

     在 shell prompt 後面敲打鍵盤、直到按下 Enter 的時候,你輸入的文字就是 command line 了,而後 shell 纔會以行程的方式執行你所交給它的命令緩存

     command line 的每個 charactor ,分爲以下兩種:
     * literal:也就是普通純文字,對 shell 來講沒特殊功能。
     * meta:對 shell 來講,具備特定功能的特殊保留字符bash

     * IFS:由 <space>; 或 <tab>; 或 <enter>; 三者之一組成(咱們經常使用 space )。
   * CR:由 <enter>; 產生。
     IFS 是用來拆解 command line 的每個詞(word)用的,由於 shell command line 是按詞來處理的。
     而 CR 則是用來結束 command line 用的,這也是爲什麼咱們敲 <enter>; 命令就會跑的緣由。
     除了 IFS 與 CR ,經常使用的 meta 還有:
     = :  設定變量。
     $ :  做變量或運算替換(請不要與 shell prompt 搞混了)。
     >; :重導向 stdout。
     < :重導向 stdin。
     |:命令管線。
     & :重導向 file descriptor ,或將命令置於背境執行。
     ( ):將其內的命令置於 nested subshell 執行,或用於運算或命令替換。
     { }:將其內的命令置於 non-named function 中執行,或用在變量替換的界定範圍。
     ; :在前一個命令結束時,而忽略其返回值,繼續執行下一個命令。
     && :在前一個命令結束時,若返回值爲 true,繼續執行下一個命令。
     || :在前一個命令結束時,若返回值爲 false,繼續執行下一個命令。
     !:執行 history 列表中的命令網絡

      假如咱們須要在 command line 中將這些保留字符的功能關閉的話,就須要 quoting 處理了。
     在 bash 中,經常使用的 quoting 有以下三種方法:
     * hard quote:' ' (單引號),凡在 hard quote 中的全部 meta 均被關閉。
     * soft quote: " " (雙引號),在 soft quoe 中大部份 meta 都會被關閉,但某些則保留(如 $ )。(注二)
     * escape : / (反斜線),只有緊接在 escape (跳脫字符)以後的單一 meta 才被關閉。

3 top指令tcp

    -d  後面接秒數 定時刷新程序畫面 工具

    -b 以批次方式執行top 測試

    -n 與-b配合 意義是須要進行幾回top輸出spa

    P 以cpu的使用資源排序顯示

    M 以memory的使用資源排序顯示

    N以pid來排序 

    T 由該process使用的cpu時間累積排序

    k 給某個pid一個訊號

    r 給某個pid從新訂製一個nice值

    PID:  每一個進程的id

    USER:該進程的所屬的使用者

    PR:程序的優先執行順序,越小越早被執行

    NI:nice值 越小越早被執行

    %CPU: cpu使用率

    %MEM: 內存使用率

    TIME+: cpu使用時間累加

  第一行:  當前系統時間 系統運行天數 當前登陸用戶 1,5,15分鐘負載狀況(除以邏輯cpu數量) 高於5說明系統超負荷運轉

  第二行: 進程數 stoped狀態 zombie狀態(殭屍進程)

  第三行: cpu狀態

   us 用戶空間佔用cpu百分比

   sy 內核空間佔用cpu百分比

   ni 改變過優先級的進程佔用cpu百分比

   id 空閒cpu百分比

   wa io等待佔用cpu百分比

   hi 硬中斷佔用cpu百分比

   si 軟中斷佔用cpu百分比

 第四行 內存狀態

   total 物理內存總量

   used  使用中的內存總量

   free 空閒內存總量

   buffers  緩存的內存量

 第五行 swap交換區

   total 交換區總量

   used 使用交換區總量

   free 空閒交換區總量

   cached 緩衝交換區總量

 ps -ef f 
用樹形顯示進程和線程,好比說我想找到proftp如今有多少個進程/線程

1。 使用top命令,具體用法是 top -H

        加上這個選項,top的每一行就不是顯示一個進程,而是一個線程。

2。 使用ps命令,具體用法是 ps -xH

        這樣能夠查看全部存在的線程,也可使用grep做進一步的過濾。

3。 使用ps命令,具體用法是 ps -mq PID (ubuntu下貌似不能使用)

        這樣能夠看到指定的進程產生的線程數目。

 監控jave 線程數

   ps -x|grep jave|wc -l

   監控網絡客戶端鏈接數  

   netstat -n|grep tcp|grep 端口|wc -l

 獲取進程中運行的線程數量

   ls /proc/進程ID/task | wc -l

4 rpm命令

   一種用於互聯網下載包的打包及安裝工具,它包含在某些Linux分發版中。它生成具備.RPM擴展名的文 

   安裝操做  rpm -i      

   查詢操做 rpm -q...

   卸載操做 rpm -e

   升級操做 rpm -U

5 yum

   主要功能是更方便的添加/刪除/更新RPM包

   優勢:它能自動解決包的依賴性問題,它能便於管理大量系統的更新問題

   安裝 yum install package1

   更新 yum update package1

   查詢和顯示 yum info package1 yum list

   刪除 yum remove; erase package1

  清楚緩存 yum clean

 6

./configure是用來檢測你的安裝平臺的目標特徵的。好比它會檢測你是否是有CC或GCC,並非須要CC或GCC,它是個shell腳本。
make是用來編譯的,它從Makefile中讀取指令,而後編譯。
make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。

一、configure,這一步通常用來生成 Makefile,爲下一步的編譯作準備,你能夠經過在 configure 後加上參數來對安裝進行控制,好比代碼:./configure –prefix=/usr 意思是將該軟件安裝在 /usr 下面,執行文件就會安裝在 /usr/bin (而不是默認的 /usr/local/bin),資源文件就會安裝在 /usr/share(而不是默認的/usr/local/share)。同時一些軟件的配置文件你能夠經過指定 –sys-config= 參數進行設定。有一些軟件還能夠加上 –with、–enable、–without、–disable 等等參數對編譯加以控制,你能夠經過容許 ./configure –help 察看詳細的說明幫助。

二、make,這一步就是編譯,大多數的源代碼包都通過這一步進行編譯(固然有些perl或python編寫的軟件須要調用perl或python來進行編譯)。若是 在 make 過程當中出現 error ,你就要記下錯誤代碼(注意不只僅是最後一行),而後你能夠向開發者提交 bugreport(通常在 INSTALL 裏有提交地址),或者你的系統少了一些依賴庫等,這些須要本身仔細研究錯誤代碼。

三、make insatll,這條命令來進行安裝(固然有些軟件須要先運行 make check 或 make test 來進行一些測試),這一步通常須要你有 root 權限(由於要向系統寫入文件)。

相關文章
相關標籤/搜索