linux從shell開始

來源:互聯網
上載者:User

標籤:

1:shell基礎:

     學過linux的都知道有shell這麼個概念,shell是介於user與kernel之間的,user的操作或是指令經過shell解釋傳遞給 kernel,kernel就能夠理解並執行相應的操作,我們為什麼要學習shell呢?因為shell很重要,有人說過linux的一切都可以使用命令列操作,那麼你所使用的命令列又是什麼呢?shell不僅包括命令列操作的命令,也包括圖形介面的軟體,而且據我看來,你只要是幹linux相關的,就要求會寫一定的指令碼,當然,你說我能用python,我只能呵呵。

查看系統能使用的shell與正在使用的shell:我們可以查看/etc/shells檔案,一般作業系統預設的是/bin/bash,你可以直接echo $SHELL,既然使用的是bash那就說明它肯定有優點唄,那它的優點是什麼:1:history,2:tab,3:alias,4:shell script,5:jobs,bg,fg,&,6:wildcard。那我們之前的linux有那麼多的conmands難道都是shell內建的,of course not,我們可以通過type來查看命令的類型,它可能是alias,可能是外部命令,然後才有可能是來自shell內建的,我們可以通過type查看,如type  –a  ls。

變數,就是可以變化的量,是用一串字元來替代一些設定或資料,我們比較常見的PATH, SHELL, HOME等,變數的顯示與設定:echo,unset,前者輸出,後者取消,另外有一點要注意的是export的使用,將變數設定為環境變數,變數一般使用大寫字母表示,還有一個子進程,我們使用bash之後,就相當於是開啟了一個新的進程,父進程的變數無法使用在子進程中,除非使用export設定,單引號與雙引號,env查看環境變數,set查看所有變數,$?,語系變數locale,read (-p),array,declare,變數的刪除,替換,alias,history。

命令的執行:1:以相對或絕對的路徑執行命令2:通過alias,3:bash內建命令4:通過$PATH,bash的登入歡迎介面/etc /motd,bash環境設定檔,login shell,取得bash時有完整的登入流程,non-login shell,這裡比較典型的是圖形介面登入,取得bash時不需要完整的登入。Login shell,每個使用者登入到bash是都會執行/etc/profile,然後是/etc/inputrc,同時/etc/profile.d/*.sh 都會被執行,這裡的LANG.sh會調用/etc/sysconfig/i18n,之後便到了使用者~/.bash_profileà~/.bashrc— >/etc/bashrc,假如是non-login的話直接會使用~/.bashrc。

萬用字元與特殊符號(這裡一定要嚴格區分萬用字元與Regex完全不搭邊)。資料流重新導向<,<<, >,>>, 2>,2>>;命令執行的依據;&& ||,

ls /tmp/sun && echo “exist” || echo “not exist”,管道命令會處理標準輸出,對於錯誤輸出忽略,另外,他把輸出結果當做標準輸入,關鍵詞搜尋grep,基於列的處理cut:last | grep “root” | cut –d “ ” –f 1

文本統計wc,文本排序sort,文本比較diff:last | cut –d “ ” –f 1 | sore | uniq –c;tee雙向重新導向 ls / | tee sun.txt | more,字元轉化命令:tr,col,join,paste,expand。切割檔案split。

2:Regex:

     通過一些特殊字元的排列,用以尋找,替換,刪除一行或多行文字字串,是一種字串處理依據,一種標記法,只要工具程式支援這個標記法,那麼該工具程式就可以用來作為Regex的字串處理了,RE分為基礎Regex,擴充Regex,先直接指明語系,特殊符號[:alnum:], [:alpha:],^,  .,  [-], [^], sed的使用,a,c,d,I,p,nl /etc/passwd | sed “2,5p”, 擴充Regex,egrep,

Grep –v “^$” file | grep –v “^#”,egrep –v “^$|^#” file, last –n 5 | awk ‘{print $1 “\t” $3}’.awk將一行分為若干個欄位。

3:shell script:

      Shell script就是利用shell功能寫“程式”,這個程式主要使用shell命令,Regex,重新導向,管道等功能達到我們處理的目的,有點類似於我們早期所寫的bat檔案,學習shell script的意義在於你可以實現自動化管理,配置防火牆之類,簡單的資料處理,跨平台等諸多特性。Shell的編寫與執行:從上到下從左至右,忽略空格,遇到enter就執行,“#”開頭為注釋;執行要看是相對路徑與絕對路徑或直接通過bash的進程來執行,編寫第一個shell:

聲明所使用後的shell,告知script的用途,曆史,聲明部分,執行部分,接下來就是你自己的練習了。

linux從shell開始

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.