linux 命令都是bash,Linux 命令分类_bash基础特性
1.歷史命令
history
在內存中緩存當前終端使用過的命令,
與其相關的幾個環境變量的配置:
HISTSIZE??? :在內存中緩存命令的個數(history 中命令的個數)
HISTFILE? ? :? 存在歷史命令的文件(~/.bash_history,存放命令的文件)
HISTFILESIZE:? 命令歷史文件中存放命令的個數(~/.bash_history存放命令個數)
history 10????? 顯示最近的10條記錄
history -a? 手動追加當前的歷史命令到記錄文件
hisroty命令的加載和~/.bash_history命令是怎么記錄的?
調用歷史中的命令:
!#: 重復執行第#條指令;
!!: 重復執行上一條命令
!string? :重復執行與string匹配的最近一條命令
調用上一條命令的最后一個參數:
!$:
ESC, .
Alt+.
控制歷史命令的記錄方式:
環境變量:HISTCONTROL
ignoredups:忽略重復的命令;連續且相同方為“重復”;
ignorespace:忽略所有以空白開頭的命令;
ignoreboth:ignoredups, ignorespace;
修改環境變量值的方式:export 變量名="值"
變量賦值:把賦值符號后面的數據存儲于變量名指向內存空間;
2.命令補全
bash命令執行:
內部命令:
外部命令:bash根據PATH定義的路徑,自左向右在每個路徑下搜索以給定命令開頭的文件,第一次找到即為要執行的命令;
TAB補全:使用Tab鍵,補全用戶給定字符串開頭的命令,只有一條命令的時候直接補全,有多條的時候,再次點擊Tab,則給提示所有相符的命令
3.路徑補全
路徑補全
把用戶給出的字符串當做路徑開頭,并在其指定上級目錄下搜索以指定的字符串開頭的文件名;
如果惟一:則直接補全;
否則:再次Tab,給出列表;
4.命令行展開
~:當前用戶的家目錄
~USERNAME:? 給定用戶的家目錄
{}?? :可承載一個以逗號分割的列表,將其展開為多個路徑
/tmp/{a,b}? = /tmp/a? ,? /tmp/b
5.命令執行狀態
成功
失敗
bash使用特殊變量$?保存最近一條命令的執行狀態結果:
0:成功
1-255:失敗
程序執行有兩類結果:
程序的返回值;
程序的執行狀態結果;
6.別名
1.命令別名 -alias
通過alias命令實現
(1)查看當前shell進程中可以使用的全部別名? alias
(2) alias? NAME = VALUE 定以別名,僅對當前shell或子shell有效
永久有效的命令,需要在配置文件中配置
(1)對當前用戶有效?? ~/.bashrc
(2) 對所有用戶有效?? /etc/bashrc (不是所有系統都一樣)
NOTE:
編輯配置文件后不是立即生效,如果想立即生效,需要重新讀取配置文件
source? /path/to/file
.?? /path/to/file
撤銷別名 unalias
unalias [-a] NAME [NAME...]
NOTE:
別名和原來的名稱相同,如果想要執行原來的命令,使用:"/COMMAND"
7.glob (globbing)
bash中實現文件名”通配“
通配符: *?? ?? [ ]
(1)? *? ? 任意數量的字符?? :? 0+
a*b??? a-b之間可以任意數量的字符,可以沒有,也可以很多個
(2)? 任意單個字符?? : 1
a?b??? a-b之間有且一個字符
(3)[ ] ? 匹配指定范圍內的任意單個字符 :? 指定范圍? 1
[0-9] :? 0-9之間任意單個字符
[a-z]:不區分字符大小寫
(4) [^]? 匹配指定范圍之外的任意單個字符 : 指定范圍之外 1
[^0-9]?? 0-9之外的字符
[^a-z] ?? 非大寫和小寫字母字符
專用字符集合:(使用的時候需要外加 '[ ]')
[:digit:]:任意數字,相當于0-9
[:lower:]:任意小寫字母
[:upper:]: 任意大寫字母
[:alpha:]: 任意大小寫字母
[:alnum:]:任意數字或字母
[:space:]:
[:punct:]:標點符號
練習:
1、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄;
# ls -d /var/l*[0-9]*[[:lower:]]
2、顯示/etc目錄下,以任意一位數字開頭,且以非數字結尾的文件或目錄;
# ls -d /etc/[0-9]*[^0-9]
3、顯示/etc/目錄下,以非字母開頭,后面跟了一個字母及其它任意長度任意字符的文件或目錄;
# ls /etc/[^[:alpha:]][[:alpha:]]*
4、復制/etc目錄下,所有以m開頭,以非數字結尾的文件或目錄至/tmp/mageedu目錄中;
# cp -a /etc/m*[^0-9] /tmp/mageedu
5、復制/etc目錄下,所有以.d結尾的文件或目錄至/tmp/magedu.com目錄中;
# cp -a /etc/*.d /tmp/magedu.com
6、復制/etc目錄下,所以有.conf結尾,且以m,n,r,p開頭的文件或目錄至/tmp/mageedu.com目錄中;
# cp -a /etc/[mnrp]*.conf? /tmp/mageedu.com
8、bash的快捷鍵
Ctrl+l: 清屏,相當于clear命令;
Ctrl+a:跳轉至命令開始處;
Ctrl+e:跳轉至命令結尾處;
Ctrl+c:取消命令的執行;
Ctrl+u: 刪除命令行首至光村所在處的所有內容;
Ctrl+k: 刪除光標所在處至命令行尾部的所有內容;
9、bash的的I/O重定向及管道
為了更好理解,我新建了一篇文章。
總結
以上是生活随笔為你收集整理的linux 命令都是bash,Linux 命令分类_bash基础特性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下启动solr命令,如何自动启
- 下一篇: linux基础概念