Shell的一些基本概念

來源:互聯網
上載者:User

  

互動式shell和非互動式shell

互動式模式就是shell等待你的輸入, 並且立即執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的:登入、執行一些命令、簽退。當你簽 退後,shell也終止了。

shell也可以運行在另外一種模式:非互動式模式,以shell script(非互動)方式執行。在這種模式 下,shell不與你進行互動,而是讀取存放在檔案中的命令,並且執行它們。當它讀到檔案的結尾,shell也就終止了。

登入shell和非登入shell

當init3時,mingetty spawn出登入提示符的時候,你輸入帳號和密碼進入了,出現了shell提示符,這個過程就是登入shell

在Gnome圖形介面中開啟“終端”出來的那種視窗程序,和登入shell 相比,它是“非登入”的,你並不需要輸入使用者名稱和密碼。

在登入shell裡,唯讀取/etc/profile和~ /.bash_profile, ~/.bash_login 和 ~/.profile按順序最先的一個,並執行其中的命令。除非被 --noprofile選項禁止了;
在非登入shell裡,唯讀取 /etc/bash.bashrc和~/.bashrc

輸入輸出重新導向

命令從標準輸入讀入資料,從標準輸出、標準錯誤輸出資料,shell支援對命令的輸入、輸出進行重新導向。

重新導向到管道

使用 | 將兩個命令串連起來,就實現了將前一個命令的標準輸出內容作為後一個命令的標準輸入

ls –l | wc –l

以行方式列出目前的目錄檔案,並計算行數,即計算檔案數量

重新導向到檔案

< 將標準輸入定向到檔案(從檔案讀入資料)

> 將標準輸出定向到檔案(如果檔案存在,則覆蓋原檔案)

>> 將標準輸出定向到檔案,如果檔案存在,則將輸出內容添加到檔案末尾

cat abc.txt >> def.txt

將檔案abc.txt的內容合并到def.txt檔案

重新導向任意檔案描述符

對於 Linux 而言,所有對裝置和檔案的操作都使用檔案描述符來進行的。檔案描述符是一個非負的整數,它是一個索引值,並指向核心中每個進程開啟檔案的記錄表。當開啟一個現存檔案或建立一個新檔案時,核心就向進程返回一個檔案描述符;當需要讀寫檔案時,

也需要把檔案描述符作為參數傳遞給相應的函數。

n< 從檔案中接受檔案描述符n

n> n>> 將檔案描述符n定向到檔案

主要應用在重新導向標準錯誤

cat dddcat: ddd: 沒有那個檔案或目錄cat ddd 2> /dev/null

更多重新導向方法

command > file1 2> file2分別重新導向標準輸出和標準錯誤command 2>&1將標準錯誤發送到標準輸出同樣的位置command 2>&1 > file將標準錯誤發送到標準輸出同樣的位置,然後再重新導向到filecommand 2>&1 | tee file將命令的標準輸出、標準錯誤都發送到檔案file,同時輸出到終端

tee命令會從標準輸入裝置讀取資料,將其內容輸出到標準輸出裝置,同時儲存成檔案。我們可利用tee把管道匯入的資料存成檔案,甚至一次儲存數份檔案。

子shell

調用另外一個指令碼程式,自動產生一個新的shell環境,如果希望定義並使用一些變數,但不影響當前環境中,可以使用子shell。

格式:( 命令 )   (將要執行的命令用圓括弧括起來)

( export LANG=en_US; command )
臨時將變數LANG設定成en_US,然後執行命令
 

source命令

如果希望在本shell的環境中執行一些在指令檔中定義的文本,可以使用source命令,作為一種簡寫,也可以寫成:.  指令碼(注意圓點和指令碼名之間的空格)

source config.sh. config.shconfig.sh中的內容將在本shell環境中執行

如果不用source命令,則會在一個新的shell中執行config.sh指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.