Shell 是什么
shell 是一個(gè)命令行解釋器泛源,它為用戶提供了一個(gè)向linux內(nèi)涵發(fā)送請求以便運(yùn)行程序的界面系統(tǒng)級程序篙挽。用戶可以用shell 來啟動(dòng),掛起舍咖,停止矩父,深圳編寫一些程序。
shell 還是一個(gè)功能相當(dāng)強(qiáng)大的編程語言排霉,易編寫窍株,易調(diào)試,靈活性比較強(qiáng)攻柠。shell 是解釋執(zhí)行的腳本語言球订。在shell中可以直接調(diào)用linux 系統(tǒng)命令。
查看當(dāng)前系統(tǒng)使用的是什么shell
兼容shell
腳本的執(zhí)行方法
1:echo 輸出命令
echo [選項(xiàng)][輸出內(nèi)容]
-e :支持反斜杠控制的字符轉(zhuǎn)換
控制字符 | 作用 |
---|---|
\a | 輸出警告 |
\b | 退格鍵瑰钮,也就算向左刪除鍵 |
\n | 換行符號(hào) |
\r | 回車 |
\t | 制表符冒滩,也就是tab鍵 |
\v | 垂直制表符 |
\0nnn | 按照八進(jìn)制ASCII碼表輸出字符 ,其中0為數(shù)字零浪谴,nnn是三位八進(jìn)制數(shù) |
\xhh | 按照十六進(jìn)制ASCII碼表輸出字符开睡,其中hh是兩位十六進(jìn)制數(shù) |
帶顏色輸出
echo -e "\e[1;31m woc \e[0m"
第一個(gè)腳本
vim hello.sh
#!/bin/bahs
#第一個(gè)shell 腳本
echo -e "\e[1;34m 第一個(gè)腳本\e[0m"
執(zhí)行腳本
賦予執(zhí)行權(quán)限,直接運(yùn)行
chmod 755 hello.sh
hello.sh
通過bash 調(diào)用執(zhí)行腳本
bash hello.sh
Bash的基本功能
1:命令別命與快捷鍵 alias 查看系統(tǒng)中的所有的命令別名
alias
alias 別名 =‘原命令’ 設(shè)定命令別名
別命永久生效與刪除
vi ~/.bashrc 寫入環(huán)境變量配置文件
~ 表示家目錄 :root 用戶就root/.bashrc
vi /root/.bahsrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
#新加別命
alias vi='vim'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
~
~
需要直接生效執(zhí)行
source .bashrc
命令生效順序
1.第一順位執(zhí)行用絕對路徑或相對路徑執(zhí)行的命令
2.第二順位執(zhí)行別名
3.第三順位執(zhí)行Bash的內(nèi)部命令
4.第四順位執(zhí)行按照$PATH環(huán)境變量定義的目錄查找順序找到的第一個(gè)命令苟耻。
刪除名別 命令格式: unalias 別名
常用快捷鍵
快捷鍵組合 | 作用 |
---|---|
ctrl+c | 強(qiáng)制終止當(dāng)前命令 |
ctrl+l | 清屏 |
ctrl+a | 光標(biāo)移動(dòng)到命令行首 |
ctrl+e | 光標(biāo)移動(dòng)到命令行尾 |
ctrl+u | 從光標(biāo)所在位置刪除到行首 |
ctrl+z | 把命令放入后臺(tái) |
ctrl+r | 在歷史命令中搜索 |
歷史命令
history [選項(xiàng)][歷史命令保存文件]
選項(xiàng):-c 清空歷史命令
-w 把緩存中的歷史命令寫入歷史命令保存文件 ~/.bahs_history
wc [選項(xiàng)][文件名]
選項(xiàng):
-c 統(tǒng)計(jì)字節(jié)數(shù)篇恒。
-l 統(tǒng)計(jì)行數(shù)。
-m 統(tǒng)計(jì)字符數(shù)凶杖。這個(gè)標(biāo)志不能與 -c 標(biāo)志一起使用胁艰。
-w 統(tǒng)計(jì)字?jǐn)?shù)。一個(gè)字被定義為由空白智蝠、跳格或換行字符分隔的字符串蝗茁。(統(tǒng)計(jì)單詞數(shù))
-L 打印最長行的長度。
-help 顯示幫助信息
--version 顯示版本信息
管道符
多命令執(zhí)行符 | 格式 | 作用 |
---|---|---|
: | 命令1:命令2 | 多個(gè)命令順序執(zhí)行寻咒,命令之間沒有任何邏輯聯(lián)系 |
&& | 命令1&&命令2 | 邏輯與:當(dāng)命令1正確執(zhí)行哮翘,則命令2才會(huì)執(zhí)行,當(dāng)命令1執(zhí)行不正確毛秘,則命令2不會(huì)執(zhí)行 |
|| | 命令1&&命令2 | 邏輯或:當(dāng)命令1執(zhí)行不正確饭寺,則命令2才會(huì)執(zhí)行阻课,當(dāng)命令1執(zhí)行正確執(zhí)行,則命令2不會(huì)執(zhí)行 |
netstat -an 命令能看到所有和本地計(jì)算機(jī)建立連接的IP
netstat -an
通過| grep ESTABLISHED 代表一個(gè)打開的連接
netstat -an | grep ESTABLISHED
通配符
通配符 | 作用 |
---|---|
? | 匹配一個(gè)任意字符 |
* | 可以匹配任何內(nèi)容 |
[] | 匹配中括號(hào)中任意一個(gè)字符艰匙,列如:[abc]代表一定匹配一個(gè)字符限煞,或者是a或者b或者c |
[-] | 匹配中括號(hào)中任意一個(gè)字符,-代表一個(gè)范圍员凝。例如:[a-z]代表匹配一個(gè)小寫字母 |
[^] | 邏輯非署驻,表示匹配不是中括號(hào)內(nèi)的一個(gè)字符,例如:[^0-9]代表匹配一個(gè)不是數(shù)字的字符 |