作業系統組成作用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,如果不正確,那麼是乙個整數。命令的連線方式 作為連線符的時候,當其中乙個為假是,那麼這個命令不會執行,如果第乙個就錯了,那麼第二個命令直接不會執行。作為連線符的時候,如果...