一、概念
????????shell是殼,是運行在終端中的文本互動程序。Shell相當(dāng)于是一個翻譯,把我們在計算機上的操作命令,翻譯為計算機可識別的二進制命令,傳遞給內(nèi)核,以便調(diào)用計算機硬件執(zhí)行相關(guān)的操作;同時,計算機執(zhí)行完命令后,再通過Shell翻譯成自然語言,呈現(xiàn)在我們面前。shell軟件有:sh、bash、ksh、rsh、csh等。
????????bash(GNU Bourne-Again Shell)是最常用的一種shell,是當(dāng)前大多數(shù)Linux發(fā)行版的默認Shell。最開始在Unix系統(tǒng)中流行的是sh,其全名是Bourne Shell,名字中的玻恩就是這個Shell的作者。而bash作為sh的改進版本,提供了更加豐富的功能。
????????查看系統(tǒng)當(dāng)前shell的類型:echo $SHELL
二、bash的特性
????????bash命令格式:命令 選項 參數(shù)
????????????????ls -a /home
????????bash有兩種使用方式:1、命令;2、腳本
(1)命令歷史 history
????????history -d OFFSET 刪除某條記錄
?????????????????-c 刪除所有歷史
????????????????n 顯示歷史中最近n條記錄
????????環(huán)境變量:
????????????????HISTSIZE:命令記錄的條數(shù)
????????????????HISTFILE:~/.bash_history
????????????????HISTFILESIZE:命令歷史文件記錄歷史的條數(shù)
? ? ? ? ?調(diào)用歷史中命令,輸入!表示調(diào)用歷史命令:
????????????????!字符串:執(zhí)行最近一條“字符串”開頭的命令
????????????????!!:執(zhí)行上條命令
????????ctrl+r:搜索歷史命令,根據(jù)關(guān)鍵字文章來源地址http://www.zghlxwxcb.cn/news/detail-627881.html
????????????????調(diào)用上一條命令的最后一個參數(shù):Esc . 或 !$
????????控制命令歷史的記錄方式:
????????????????環(huán)境變量:HISTCONTROL
????????????????ignoredups:忽略重復(fù)的 連續(xù)且相同
????????????????ignorespace:忽略空白開頭的命令
????????????????ignoreboth:上面兩個都生效
????????修改環(huán)境變量的方式:export 變量名=值
(2)命令補全功能
????????內(nèi)部命令:
????????外部命令:bash根據(jù)PATH環(huán)境變量定義的路徑,自左向右搜索;
????????直接補全:tab鍵,只有唯一對應(yīng)命令;不唯一在按tab會給出命令列表
(3)路徑補全功能:
????????把用戶給定的字符串當(dāng)做路徑的開頭;
(4)命令行展開
????????~:展開為用戶的主目錄
????????~USRNAME:展開為指定用戶下的主目錄
????????{}:可承載一個以逗號分隔的列表,并將其展開為多個路徑
(5)命令的執(zhí)行結(jié)果狀態(tài):成功or失敗
????????bash使用特殊變量$?保存最近一條命令執(zhí)行結(jié)果狀態(tài)
????????0:成功 1~255:失敗
????????程序執(zhí)行有兩類結(jié)果:
????????????????程序的返回值,
????????????????程序執(zhí)行的狀態(tài)結(jié)果。
(6)命令別名(alias):
????????通過alias命令別名
????????????????alias:不帶參數(shù)顯示系統(tǒng)所有別名
????????????????alias NAME=‘命名’ 定義別名,當(dāng)前會話有效
????????????????當(dāng)前用戶有效:~/.bashrc
????????????????所有用戶有效:/etc/bashrc
????????????????修改配置文件后讓文件生效需要:source FILENAME
????????????????撤銷別名:unalias
????????????????如果別名同原命令同名,要使用原命令通過:\ls
(7)glob(globing)通配符
????????bash中用于實現(xiàn)文件名通配的機制
????????通配符*、?、[]
????????????????*:任意長度的任意字符
?????????????????:任意單個字符
????????????????[]:匹配指定范圍的任意單個字符,不區(qū)分大小寫
????????????????取反:^
????????專用字符集:
????????[:alnum:] [:alpha:] [:blank:] [:cntrl:]
????????[:digit:] [:graph:] [:lower:] [:print:]
????????[:punct:] [:space:] [:upper:] [:xdigit:]
(8)bash的快捷鍵
????????ctrl+l:相當(dāng)于clear,清屏操作
????????ctrl+c:取消命令的執(zhí)行
????????ctrl+d:退出、exit
????????ctrl+a:光標(biāo)跳轉(zhuǎn)至命令首部
????????ctrl+e:跳轉(zhuǎn)至命令尾部
????????ctrl+u:刪除光標(biāo)前的內(nèi)容
????????ctrl+k:刪除光標(biāo)后的內(nèi)容文章來源:http://www.zghlxwxcb.cn/news/detail-627881.html
????????ctrl+r:搜索歷史命令,根據(jù)關(guān)鍵字
到了這里,關(guān)于shell、bash的關(guān)系及bash的特性(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!