歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Linux操作系統學習筆記管理初識Shell(1)

Linux操作系統學習筆記管理初識Shell(1)

日期:2017/2/25 10:32:37   编辑:SHELL編程

初識Shell——bash

  Linux中的shell有點類似Windows下的cmd.exe或者.bat。管理整個計算機硬件的其實是操作系統的內核(Kernel),用戶無法與內核直接交互,所以通過shell來跟內核通信。即shell介於操作系統(Kernel)和用戶之間,它是用戶與內核的翻譯官,是一個命令解釋器。

  常見的shell種類有:Bsh、Csh、Ksh、Bash、Zsh

Bsh和Csh出現的較早,Ksh繼承了它兩的功能,Bash繼承了Bsh和Ksh的升級版,而且是Linux系統中默認的shell,Zsh則兼具了各種shell的程序有點,交互式操作效率更高,但仍不及bash應用廣泛。

  Shell環境的切換:

  登錄Shell:指用戶每次登錄系統後自動加載的Shell程序,大多數Linux系統采用 /bin/bash 作為默認登錄Shell;/etc/shells 文件記錄了系統支持的有效登錄Shell

[root@localhost ~]# cat /etc/shells   ==>使用chsh -l命令也可查看
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh 
[root@localhost ~]#

  默認的shell是bash,那麼如何切換shell環境呢?分為兩種,一種是臨時切換,即當此終端關閉時,下次啟動仍然是bash,方法很簡單,直接在終端輸入shell名稱;第二種則是更改用戶登錄Shell,需要修改/etc/passwd文件中用戶記錄的最後一個字段,或者像前面講到的使用修改用戶的命令:usermod -s shell程序路徑 用戶名,也可以使用chsh命令,下次登錄有效。

  查看當前shell可以通過/etc/passwd來查看,要查看系統默認使用的shell,可以使用echo $SHELL。

  bash的常用功能:

1)Tab鍵自動補齊

這個功能可以讓您少打很多字,並且確定輸入是正確的。tab鍵接在一串命令的第一個字後面,則為命令補全;若接在一串命令的第二個字後面,則為文件補全;直接在bash提示符後面按兩下tab鍵,則能顯示所有可執行的命令。

2)命令編輯快捷鍵

如之前提到的ctrl+D,ctrl+L,ctrl+U等

3)命令歷史

 保存用戶曾經執行過的命令操作;存放位置是:~/.bash_history隱藏文件;查看歷史命令只需使用history命令就行了。

 調用歷史命令:

  !n:執行歷史記錄中的第n條命令

  !str:執行歷史記錄中以“str”開頭的命令

 設置記錄歷史命令的條數:修改HISTSIZSE參數即可(在/etc/profile文件裡),默認為1000條。

(備注:正確使用歷史命令可以有效提高命令行輸入的效率,例如:如果之前不久執行過“service network restart”命令,則重新修改了網卡的配置文件以後,通常只需要執行“!ser”操作即可調用該歷史命令,以重啟network服務。合理控制歷史命令的條數可以提高安全性,root用戶的命令歷史一般建議設置為少於100條)

4)命令別名

為使用較高的復雜命令行設置間斷的調用名稱,存放位置是:~/.bashrc隱藏文件。查看命令別名只需用alias命令即可。

(備注:手動使用alias命令設置的別名只在當前Shell環境中有效,如alias rm='rm -i';若需每次登錄Shell環境時設置的別名都有效,需要修改宿主目錄中的“.bashrc”文件,添加相應別名設置)

5)標准輸入輸出

交互式硬件設備: 

標准輸入:從該設備接收用戶輸入的數據

標准輸出:通過該設備向用戶輸出數據

標准錯誤:通過該設備報告執行出錯信息

類型

設備文件

文件描述編號

默認設備

標准輸入

/dev/stdin

0

鍵盤

標准輸出

/dev/stdout

1

顯示器

標准錯誤輸出

/dev/stderr

2

顯示器

(備注:/dev/stdin、/dev/stdout、/dev/stderr這三個文件是一個符號鏈接,輸入輸出與重定向關系緊密)

6)重定向操作

改變標准輸入、標准輸出、標准錯誤的方向:

類型

操作符

用途

重定向標准輸入

<

將命令中接收輸入的途徑由默認的鍵盤更改為指定的文件

重定向標准輸出

>

將命令的執行結果輸出到指定的文件中,而不是直接顯示在屏幕上

>>

將命令執行的結果追加輸出到指定文件

重定向標准錯誤

2>

清空指定文件的內容,並將標准錯誤信息保存到該文件中

2>>

將標准錯誤信息追加輸出到指定的文件中

重定向標准輸出和

標准錯誤

&>

將標准輸出、標准錯誤的內容全部保存到指定的文件中,而不是直接顯示在屏幕上

7)管道操作

  管道操作符號是“|”,連接左右兩個命令,將左側的命令輸出的結果,作為右側命令的輸入(處理對象)。管道是腳本語言的特色,它可以講多個功能連接起來形成一個大的功能,這點與面向對象有很大的不同。

  例如我現在要查看歷史記錄命令的第4行:則可先將前4條命令顯示出來,在��示前4條命令的最後一條:history | head -4 | tail -1 這樣即取出了第四條命令。

Copyright © Linux教程網 All Rights Reserved