Linux運維第3天:Linux文本處理及bash

查看文本:
    cat,tac,more,less,head,tail
    
cat:
    -n: number
    -A:顯示特殊字符
    -E:顯示行尾
    
tac:
    反向顯示
    
more:
    到文件尾後就退出
    b:向前一屏
    space:向後一屏
    ENTER:向下一行
    
less:
    到文件尾後後不退出
    b:向前一屏
    space:向後一屏
    ENTER:向下一行
    
head:查看前n行
tail:查看後n行
    -n 2:查看前2行
    -f  :持續查看,等待更新,後續追加
    
文本處理:
    cut,join,sed,awk,sort,uniq,grep,paste
    
cut:
    -d:指定分隔符,默認是空格,可以加空格也可以不加
    -f:指定要顯示的字段
        -f 1,3
        -f 1-3
sort:
    -n:數值排序
    -r:降序
    -t:分隔符
    -k:指定排序字段
    -u:unique(去重)
    -f:忽略大小寫


uniq:
    必須相鄰的重複的纔會去重
    -d:只顯示重複的行
    -D:重複行全部都顯示
    -c:統計每行重複的次數


文本統計
wc:
    -w:word
    -c:character(看不到特殊字符也計算在內)
    -l:line
    -L:最長的一行包含多少字符


字符處理
tr:
    轉換,刪除字符,使用標準輸入
    tr 'a-z' 'A-Z' < /etc/passwd
    -d:刪除字符集中的所在字符
    
進程:是程序的副本,在每個進程看來,當前主機上只存在內核和當前進程,是程序執行的實例


export LANG=en
    
bash及其特性:
shell:外殼
GUI:Gnome,KDE,Xface
CLI:sh,csh,ksh,bash,tcsh,zsh 
    
用戶工作環境:
bash:
    shell,子shell
    #pstree


bash:
    1.命令歷史
    2.管道,重定向
    3.命令別名
    4.命令行編輯
    5.命令行展開
    6.文件名通配
    7.變量
    8.編程
    
命令行編輯:
    光標跳轉:
    Ctrl+a:跳到命令行首
    Ctrl+e:跳到命令行尾
    Ctrl+u:刪除光標至行首的內容
    Ctrl+k:刪除光標至行尾的內容
    Ctrl+左右方向鍵可以一次跳一個單詞
    Ctrl+l:清屏


命令歷史:
    查看命令歷史:history
    -c:清空命令歷史
    -d:從指定位置刪除指定個命令歷史 OFFSET [n]
    -w:保存命令歷史至歷史文件~/.bash_hostory
    HISTSIZE:命令歷史緩衝區大小


命令歷史使用技巧:
    !n:執行命令歷史中第n條命令
    !-n:執行命令歷史中倒數第n條命令
    !!:執行上一條命令
    !str:執行開頭匹配str的最近一個命令
    !$:引用上一個命令的最後一個參數
    esc,.:引用上一個命令的最後一個參數
    Alt+.:引用上一個命令的最後一個參數(遠程終端不支持)
    
命令補全:
    搜索PATH當唯一時自動補全,當不唯一時敲擊兩次tab會列出所有命令,如果命令太多會詢問是否顯示


路徑補全:
    同上


命令別名:
    alias commandstr='command'
    unalias commandstr
    只在當前shell中有效
    
命令替換:
    把命令中某個子命令替換爲其執行結果的過程
    $(command)
    `command`(反引號)


bash支持的引號:
    ``:命令替換
    "":弱引用,可以實現變量的替換
    '':強引用,不完成變量的替換


文件名通配,globbing
    *:任意長度的任意字符
    ?:單個任意字符
    []:匹配指定範圍內的任意單個字符 [abc] [a-m] [0-9] [0-9a-z]
    [^]:匹配指定範圍之外的任意單個字符
    [:space:]:空白字符
    [:punct:]:標點符號
    [:lower:]:小寫字母
    [:upper:]:大小字母
    [:alpha:]:字母
    [:digit:]:數字
    [:alnum:]:數字和大小寫母
    用的時候要再一層[]:即 [[:space:]]  [^[:sapce:]]


練習:
    1.創建a123, cd6, c78m, c1 my, m.z, k 67, 8yu, 789等文件;注意,以上文件是以逗號隔開的,其它符號都是文件名的組成部分;
    2.顯示所有以a或m開頭的文件;
    ls [am]*
    3.顯示所有文件名中包含了數字的文件;
    ls *[0-9]* 
    ls *[[:digit:]]*
    4.顯示所有以數字結尾且文件名中不包含空白的文件;
    ls *[^[:space:]]*[0-9]   ?????????
    5.顯示文件名中包含了非字母或數字的特殊符號的文件;
    ls *[^[:alnum:]]*
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章