linux的學習之路 (五)bash及其特性

2022-05-03 21:12:09 字數 1735 閱讀 7134

作業系統組成作用shell是離使用者最近的程式

shell:外殼

兩類  

gui:gnome,kde,xfce

cli:sh, csh,ksh,bash(都是程式,就是功能支援的不同而已)

程序:在每個程序看來,當前主機只存在核心和當前程序

程序是程式的副本,程序是程式執行例項

不同的使用者,登陸系統的時候可以使用同乙個shell,也可以使用不同的shell  

同個使用者,多次登陸系統也可以使用不同的shell

使用者工作環境時可以各不相同

bash:

1.命令歷史

2.管道,重定向

3.命令別名

4.命令列展開

5.命令列編輯

游標跳轉

ctrl+a:跳到命令列首

ctrl+e:跳到命令行尾

ctrl+u:刪除游標至命令列行首的內容

ctrl+k:刪除游標至命令列行尾的內容

ctrl+l:清屏

命令歷史:

history

-c:刪除快取區中的歷史命令

-d:刪除第500個 history -d 500

history -d 500 10 從第500個開始刪除10個

-w:將快取去的命令寫入檔案

環境變數:

path:命令搜尋路徑

histsize:命令歷史大小,快取去大小

命令歷史命令的使用技巧

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

!-n:執行命令歷史中倒數第n條命令

!string:執行命令歷史中最近乙個以指定字串開頭的命令

定義別名

alias cmdalias='command [options] [arguments]'

在shell中定義的別名僅在當前shell生命週期有效,別名的有效範圍僅為當前的shell程序

取消別名

unlias cmdalis

命令替換

$(command),反引號 `command`

把命令中某個子命令替換為其執行結果的過程

echo "the current directory is $(pwd))"

touch ./file-$(date +%f-%h-%m-%s).txt

bash支援的引號

``:反引號,命令替換

"":雙引號,弱引用,可以實現變數替換

'':單引號,強引用,不完成變數替換

檔名通配:

man 7 glob

globbing

*:任意長度的任意字元

?:匹配任意單個字元

:匹配指定範圍內的任意單個字元

[abc],[a-m],[a-z],[a-z],[0-9],[a-za-z]

[^0-9]*:所有非數字開頭的檔案

[0-9a-za-z]:表示以數字或者大寫字母或者小寫字母開頭的檔案

[^]:匹配指定範圍之外的任意單個字元

[:space:]:表示所有的空白字元

[:punct:]:標點符號

[:lower:]:小寫字元

[:upper:]:大寫字母

[:alpha:]:大小寫字母

[:digit:]:數字

[:alnum:]:數字和大小寫字母

[[:alpha:]]*[[:space:]]*[[:alpha:]]:字母開頭,字母結尾,中間有空白字元

6.檔名通配

7.變數

8.程式設計

linux學習之路(五)

說來慚愧,已經乙個月沒有發學習linux的部落格了。當然,好像其實這乙個月也並沒有認知學linux。上次面試失利之後,給我的感觸還是蠻深刻的。接下來的我,要繼續好好學習啦。加油,向著每一天新的自我!今晚看了兩小節,是第九章檔案與檔案系統的壓縮與打包,學習了兩個命令,分別是dump和restore。d...

Linux學習之路8(3) 認識和學習bash

乙個命令有了別名的時候,比如 alias echo echo n 那麼執行echo的時候是執行echo還是echo n呢?type aecho 檢視命令的執行順序。進入linux的控制台後,會有提示資訊 這些資訊放在 etc issue這個檔案中。用vim編輯器編輯後儲存,就可以修改這些資訊。在控制...

Linux學習之路8(4) 學習和認識bash

在linux中有乙個容器,它會記入剛剛執行過得命令是否正確,這個容器的大小為1個字元。檢視方式 echo 如果正確,那麼是乙個0,如果不正確,那麼是乙個整數。命令的連線方式 作為連線符的時候,當其中乙個為假是,那麼這個命令不會執行,如果第乙個就錯了,那麼第二個命令直接不會執行。作為連線符的時候,如果...