一.什麼是shell
a) 只要能夠操作應用程式的介面
二.為什麼要學些shell
a) 命令列的shell:大家都是一樣的 (一法通,則萬法通)
b) 命令列的速度比較快
c) linux的任督二脈,是學習linux的基礎
三.為什麼我們系統合法的shell要寫入etc/shells這個檔案
a) 這是因為系統某些服務在執行過程中,會去檢查使用者能夠使用的shells,而這些shell的查詢就是借助/etc/shell這個檔案
四.為什麼使用bash這個shell呢?
a) 命令記憶功能 記錄的地方位於 ~/.bash_history
b) 命令補全功能 按tab 鍵(萬能鍵)
c) 命令別名設定功能 可以減少輸入
d) 作業控制,前後臺控制
e) 程式指令碼
f) 支援萬用字元
五.bash命令的種類
a) 內建命令
b) 外部命令
c) 別名
如何檢視乙個命令是不是內建命令呢,可以用type命令檢視
六.shell變數的功能
a) 變數的顯示和設定
i. 變數的顯示 :echo
ii. 變數設定的規則
1. 等號兩邊都不能有空格
2. 變數只能是字母和數字,但是開頭字元不能是數字
3. 變數中如果有空格可以使用「」或『』包含
a) 單引號裡面的特殊字元僅為一般字元
b) 雙引號中的特殊字元保持原有的屬性
4. 可以使用\將特殊字元變為一般字元
5. 一串命中中``中命令將先被執行
b) 取消變數的方法 :unset
c) 常用的環境變數
i. hoeme:代表使用者的主資料夾
ii. shell: 目前環境使用了shell哪個程式
iii. history 歷史命令
iv path 執行檔案查詢的路徑
v lang 語系資料
vi ps1 提示符的設定
1.\u 目前使用者的帳號
2.\t 顯示時間
3.\# 顯示第幾條命令
4.\$ 提示符
5.\w 完整工作名
vii $ 表示當前shell的執行緒號
vii ? 上條命令執行完後的回傳值
d) 變數鍵盤讀取:read
七.變數內容的刪除,替代和替換
a) 刪除
b) 替換
c) 替代
八.命令的別名和歷史命令
a) 別名:alias unalias
b) 歷史命令 history
i. 命令記錄的檔案位於 ~./bash_history
九.bash shell的操作環境
a) 命令執行的順序
i. 以相對路徑或絕對路勁執行
ii. 有alias 找到命令執行
iii. 有bash內建的命令執行
iv. 通過查詢$path這個變數的順序找到的第乙個命令來執行
b) bash的登入與歡迎資訊
i. 登入資訊 /etc/issue
ii. 歡迎資訊 /etc/motd
c) bash的環境的配置
i. login
1. 整體配置 /etc/profile
a) 會呼叫的檔案:/etc/inputrc /etc/profild.d/ /etc/sysconfig/i18n
2. 個人配置 ~./bash_profile
ii. non-login
1. 只會讀取./bashrc 中的內容
d) 其他的配置檔案
i. /etc/man.config 規定了使用man的時候 man page的路徑到**尋找
ii. ~./.bash_logout 當登出bash後系統在幫我做完什麼操作後才離開
十.管道命令
a) 管道命令的特點:
i. 只會處理標準輸出,不理會標註錯誤輸出
ii. 能夠接受前乙個命令的資料成為standard input 繼續處理才行
b) 常用的管道命令
十一.問題集錦
a) command>filename 2>&1的含義:將stderr輸出到stdout中,再將stdout輸出到指定檔案中。其實就是:stderr->stdout->filename.可以測試下:ls >err 2>&1這裡就不會生成1這個檔案,開啟err2可以看到bash:ls:command not found
Shell 程式設計學習總結
一 標註執行此shell 用的是那種版本的 shell 命令 比較常見的是 bin sh 二 shell 內部引數 0 shell 命令 傳遞給程式的引數數目 前乙個shell命令的執行結果,如果正常則為0,如下面講到的比較操作命令,如果比較是成立的則會正常退出,然會就是0,不成立則是不正常退出返回...
shell指令碼學習總結
看完了書 shell指令碼學習指南 順便總結一下 看了整本書,全部都是命令,但也確實很難記得命令的選項,所以學習方法就變了。學習嘛,要考慮到遺忘的可能,既然會忘,還不如不去記,能做的就是但用到的時候再去學,那麼現在學習的目的就是為了縮短以後用到時再去學習的學習時間,所以現在所應該學的,是將書本上的命...
Shell指令碼學習總結
最近一段時間研究語音識別 automatic speech recognition,asr 接觸到一款優秀的asr開源專案kaldi。學習過程中,發現kaldi大部分指令碼採用shell語音編寫,所以潛心學習了一段時間的shell程式設計。總體來說,該語言難度一般,關鍵要記住眾多的命令,採用思維導圖...