Linux學習之五(bash特性詳解)

2021-07-31 20:07:16 字數 2488 閱讀 7669

一、bash及其特性

1、shell:外殼

廣義shell包含:1、gui:gnome、kde、xfce

2、cli:sh,csh,ksh,bash

程序:在每個程序看來,當前主機上只存在核心和當前程序,程序是程式的副本,程序是程式執行例項。

2、bash:

1、支援命令歷史、命令補全

2、支援管道、重定向

3、支援命令別名

4、支援命令列編輯

5、支援命令列展開

6、支援檔名通配

7、支援變數

8、支援程式設計

3、命令歷史:

history:

檢視命令歷史:history

-c:清空命令歷史

-d offset[n]:刪除指定位置的命令

例1:history -d 500  #刪除第500個歷史命令

例2:history -d 500 3 #刪除第500個命令起3個歷史命令

-w:儲存命令歷史至歷史檔案(家目錄下.bash_history)中

4、命令歷史使用技巧:

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

例:root@localhost /]# !44

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

例:[root@localhost /]# !-44

!!:重新執行上一次命令

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

!$:引用前乙個命令的最後乙個引數

esc,.:引用前乙個命令的最後乙個引數

alt+.:引用前乙個命令的最後乙個引數

5、命令別名:

alias cmdalias=『command [options] [arguments]』

例:[root@localhost /]# alias cls=clear

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

unalias:撤銷別名

例:[root@localhost /]# unalias cls

\command:使用命令本身

6、命令替換:

$(command)

`command`:(反引號)

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

例1:[root@localhost ~]# echo "the current directory is $(pwd)."

the current directory is /root.

例2:[root@localhost ~]# touch ./file-$(date +%f-%h-%m-%s).txt

[root@localhost ~]# ls

anaconda-ks.cfg  file-2017-03-30-15-10-30.txt  install.log         sort.test

desktop          hello                         install.log.syslog

7、bash支援的引號:

``:命令替換

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

『』:強引用,不完成變數替換

8、檔名通配:globbing

*:匹配任意長度的任意字元

例:[root@localhost test]# ls a*

a  a123  ab123  abc

?:匹配任意單個字元

例:[root@localhost test]# ls ?y*

xyz  xyz123

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

#man 7 glob  #檢視萬用字元

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

[:space:]:空白字元

[:punct:]:標點符號

[:lower:]:小寫字母

[:upper:]:大寫字母

[:alpha:]:大小寫字母

[:digit:]:數字

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

例:[root@localhost test]# ls [a-za-z]*[0-9]

a123  ab123  x12  xyz123

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

例:[root@localhost test]# ls [^0-9]*

a  a123  ab123  abc  helloy  x12  xyz  xyz123

9、環境變數:

path:命令搜尋路徑

histsize:命令歷史緩衝區大小(預設1000條):

例:[root@localhost ~]# echo $histsize

1000

游標跳**

ctrl+a:跳到命令列首部

ctrl+e:跳到命令行尾

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

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

ctrl+l:清屏

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

作業系統組成作用shell是離使用者最近的程式 shell 外殼 兩類 gui gnome,kde,xfce cli sh,csh,ksh,bash 都是程式,就是功能支援的不同而已 程序 在每個程序看來,當前主機只存在核心和當前程序 程序是程式的副本,程序是程式執行例項 不同的使用者,登陸系統的時...

Linux學習 bash及其特性

shell 外殼 gui gnome,kde,xfce cli sh,csh,ksh,bash bourne again shell tcsh,zsh 不同使用者啟動相同sh程式,但是是不同的程序。程序 在每個程序看來,當前主機上只存在核心和當前程序。程序是程式的副本,也是程式執行的例項,具有生命週...

Linux之bash基礎特性一

命令補全 tab shell程式在接收到使用者執行命令的請求,分析完成後,最左側的字串會被當做命令 命令查詢機制 查詢內部命令 根據path環境變數中設定的目錄,自左而右逐個搜尋目錄下的檔名 給定的打頭字元如果能唯一標識某命令檔案程式,則直接補全 給定的打頭字元如果不能唯一標識某命令檔案程式,在一次...