Linux入門知識

基礎:

  • Linux是什么
  • Linux用戶、文件、目錄管理
  • VIM編輯器
  • Linux文件系統管理
    進階:
  • Linux網絡管理
  • Linux進程管理
  • Linux系統監控

查看操作系統:

  • cat /proc/version
    查看系統時間:
  • date
    查看IO、系統內存
  • cat /proc/cpuinfo 查看cpu詳細信息
  • free -m 查看內存使用情況
  • top 監控視圖
  • lostat 輸出CPU和磁盤I/O相關的統計信息
    查看網絡端口狀態
  • netstat -anp | grep 18008 查看18008端口狀態
    進入某個目錄
  • cd /opt/oss 進入根目錄下opt目錄下的oss目錄
    查找某個具體的文件
  • find . -name "test*" 當前目錄下,查詢名為test開頭的文件
  • find / -name "test*" 在根目錄下,查詢名為test開頭的文件
    修改文件權限和修改文件名
  • chown ossuser:ossgroup test.jar 修改單個
  • chown -R ossuser:ossgroup test/ 遞歸修改test目錄下面的文件
  • mv 重命名和移動
  • cp 拷貝
    從一個環境上copy包到當前環境的具體目錄
  • scp test.jar root@10.10.10.10:/tmp/test 把當前目錄的test.jar復制到10.10.10.10環境上的/tmp/test目錄下
    搜索進程、殺死某個進程:
  • ps -ef | grep test 查看包含test的進程,其中ps可以繼續查看更多用法
  • kill -9 pid 強制殺死進程

VIM:主要是熟悉一些常用的操作。

額外的命令:

  • 前言:
  1. 掃描本地ip地址: ifconfig eth0 | grep "inet addr:" | awk '{print $2}' | sed 's/addr://g'
  2. 掃描端口號被哪個進程占用: netstat -anp | awk '{print $4, $7}' | grep 31006 | sed -n '1p' | awk '{print $2}' | awk -F'/''{print $1}' | xargs ps -lfp | sed -n '2p' | awk '{print $17}'
  3. 獲取某個進程的堆棧: ps -elf | grep -v grep | grep necomm_agent | awk '{print $4}' | xargs gstack > yp.txt
  4. 批量重命名網元license備份的文件名:for i in `ls`; do mv -f $i `echo $i | sed 's/^[a-zA-Z0-9].*_[a-zA-Z0-9].*_\([0-9]\{8\}\)\(_\)|([0-9]\{6\}\)\(\.txt\)$/Lic_Esn_\1\2\3/'`;done
  5. 統計某個文件夾下的文件占用的字節數:ls -l | awk 'BEGIN {size=0;} {size = size + $5;} END{print "[end]size is ", size/1024,1024, "M"}'
  • 何時需要xargs?

    • 有些命令本身不支持管道,這時候要加xargs,本身支持管道命令有限如 cut grep sort uniq wc tee join split等。比如例子:echo "/opt" | ls -l 其中,ls 本身不支持管道,所以對于前面管道輸出的內容會忽略,不會輸出/opt目錄下的內容;而 echo "/opt" | xargs ls -l 加上xargs,執行的結果就是輸出/opt下目錄的內容
    • 命令雖然支持管道,但是加不加xargs意義不同。比如:在某個目錄下查找某個abc字符串:find ./ | grep "abc" 這個命令不會在目錄下文件查找,而是把find出來的內容查找,相當于在一群文件名中查找是否包含abc文件名。而 find ./ xargs grep "abc" 這個命令則是把find出來的東西當作參數傳遞給管道后的內容,相當于find出來的文件內容中查找是否包含字符串abc。
  • 正則表達式:
    POSIX正則表達式分為基本正則表達式(BRE)和擴展表達式(ERE)。目前很多UNIX工具程序沿用某一種正則表達式形式來強化本身的功能。常用的包括:1)grep和egrep;2)sed;3)awk;4)more/less;5)vi

比如:

  • grep 'a\{3\}' test.txt 查找包含3個a的行,
  • grep '^aa' test.txt 查找以aa開頭的行,
  • grep '^$' test.txt 查找空行
  • 后向引用:用\(\)包裹子表達式,然后用\digit來引用, 比如:

  • grep `\(why\).*\1` test.txt 匹配why..why

  • grep `\(ab\)\(cd\)[def]*\2\1` test.txt 匹配abcddcdab

  • grep:主打“查找”,常用的選項:

    • -v 過濾指定字符串內容的行
    • -i 不區分大小寫
    • -n 順便打印出行號
    • -c 計算出符合行的次數
    • -E 默認grep只支持基本的正則表達式,加上-E支持擴展的正則表達式,grep -E和egrep意義一樣,擴展的正則有'+', '?', '|', '()'

常用的命令:

  • ps -elf | grep -v grep | grep "necomm_agent" 如果不加grep -v grep則輸出2條內容。

  • grep -i 'abc' test.txt 忽略大小寫,找出test.txt包含abc的行

  • grep -v '^&' test.txt > testnew.txt 過濾test.txt的空行

  • sed:主打“編輯”,工作原理:從文件或管道中讀取一行,放在模式空間(sed內部的一個臨時緩存)中,進行處理,處理完輸出一行;再讀取一行,再處理一行。

    1. 增(a追加文本到指定行后,i插入文本到指定行前)
    • 單行增加:
      sed '2a abc' test.txt
      sed '2i abc' test.txt
    • 增加多行
    sed '2a abc\ 
    cde' test.txt 
    

執行指定的地址范圍:

  • sed可以對單行或多行進行處理,如果在sed命令前面不指定地址范圍,那么默認會匹配所有行。
    /abc/,/fff/{sed-commands} 對匹配abc的行到匹配fff的行操作


    1. 刪除指定的行
      sed '/aaa/d' test.txt


    2. 用新行取代舊行
      sed '2c abc' test.txt
      文本替換:
      sed 's/abc/bcdd/g' test.txt g表示全局替換,如果不加g,則替換每行第一個匹配的字符串
      sed 's/^/abc /' test.txt 在test.txt每行前插入abc
      sed -i '/aaa/s/abc/bcd/g' test.txt 加上-i代表修改了文件test.txt
      替換部分有幾個特殊的元字符,分別是:
      &: 被pattern匹配的內容
      \num: 被pattern匹配的第num個分組(正則表達式的概念,\(...\)括起來的部分成為分組)
      sed '/d/s/ab/&jj/' test.txt 將匹配d內容的行中的ab替換為abjj
      echo this is digit 7 in a number | sed 's/digit \([0-9]\)/\1/'

    3. 查:

    • p輸出指定內容,默認會輸出2次匹配的結果,用n取消默認輸出
      按行查詢
      sed -n '2p' test.txt
      按字符串查詢
      sed -n '/abc/p' test.txt
      混合查詢
      sed -n '2,/abc/p' test.txt
    1. 多命令編輯:
      sed -e '1,5d' -e 's/test/check/' test.txt
  • awk:主打“分割處理“:文件逐行輸入,空格默認分割,切片后再分析

awk

不是很懂這些進階的命令,仍需要更多理解和學習。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • find:搜索工具 列出當前目錄及子目錄下所有文件和文件夾 find . 在/home目錄下查找以.txt結尾的文...
    多彩海洋閱讀 1,038評論 0 1
  • ????linux下的命令非常多,但常用的就那么幾個,掌握基本命令以后,不常用的只要在用的時候搜一下就行,事實上也...
    程序大飛閱讀 2,541評論 1 5
  • 本文筆記源自這里——[實驗樓]歡迎大家在下面交流其中有問題的地方喜歡請點收藏,每日更新(全部已親自實踐). 一. ...
    東皇Amrzs閱讀 4,037評論 7 54
  • 基本概念及操作 常用快捷鍵 常用通配符 所有的手冊頁遵循一個常見的布局,為了通過簡單的 ASCII 文本展示而被優...
    Jachin111閱讀 233評論 0 1
  • 1. 最普通的命令 最普通、簡單的命令,平時肯定用過很多,但是有些非常有用,但平時不多用的,本次列出來,如下: s...
    求索77閱讀 425評論 0 0