shell學習總結

2022-07-31 16:36:13 字數 2218 閱讀 8908

一.什麼是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程式設計。總體來說,該語言難度一般,關鍵要記住眾多的命令,採用思維導圖...