Shell——基礎(chǔ)

查看使用的shell種類

echo $SHELL

centos ubuntu使用的bash

echo輸出命令

echo打印到屏幕上。

echo [選項] [輸出內(nèi)容]
選項: -e:支持反斜線控制的字符轉(zhuǎn)換
控制字符 作用
\a 輸出警告音
\b 退格鍵,向左刪除鍵
\n 換行符
\r 回車符
\t 制表符,Tab鍵
\v 垂直制表符
\0??? 按照八進(jìn)制ASCII碼表輸出字符
\x?? 按照十六進(jìn)制ASCII碼表輸出字符
echo "hello world"

[root@bogon ~]# echo -e "hello\b"
hello
[root@bogon ~]# echo -e "hell o\b"
hell o
[root@bogon ~]# echo -e "hell o\b a "
hell  a 
[root@bogon ~]# echo -e "\x68\x65\x6c\x6c\x6f"
hello

輸出顏色

# 30m:黑色 31m:紅色 32m:綠色 33m:黃色 34m:藍(lán)色 35m:洋紅 36m:青色 37m:白色
echo -e "\e[1;31m哈哈哈\e[0m"

第一個腳本

vi hello.sh

然后編輯腳本

# !/bin/bash
# 這是第一個shell腳本

echo -e ”\e[1;34m 天上掉下個豬八戒\e[0m“

腳本執(zhí)行

方法一:賦予執(zhí)行權(quán)限,直接運(yùn)行

chmod 755 hello.sh
./hello.sh

方法二:通過bash調(diào)用執(zhí)行腳本

bash hello.sh

命名別名

# 查看系統(tǒng)中所有的命令別名
alias
# 設(shè)定命令別名,重啟計算機(jī)之后失效
alias 別名 = '原命令'

alias ls = 'ls --color=never' 

# 別名永久生效與刪除別名
# 寫入環(huán)境變量配置文件
vi ~/.bashrc
# 刪除別名
unalis 別名(臨時刪除)

命令生效順序:

  • 第一順位執(zhí)行用絕對路徑或相對路徑執(zhí)行的命令
  • 第二順位執(zhí)行別名
  • 第三順位執(zhí)行bash的內(nèi)部命令
  • 第四順位執(zhí)行按照$PATH環(huán)境變量定義的目錄查找順序找到的第一個命令

常用快捷鍵

快捷鍵 作用
ctrl+c 強(qiáng)制終止當(dāng)前命令
ctrl+l 清屏
ctrl+a 將光標(biāo)移動到行首
ctrl+e 將光標(biāo)移動到行尾
ctrl+u 將光標(biāo)所在位置刪除到行首
ctrl+z 把命令放入后臺
ctrl+r 在歷史命令中搜索

歷史命令

查看歷史命令

history [選項] [歷史命令保存文件]
選項:
-c:清空歷史命令
-w:將緩存中的歷史命令寫入歷史命令保存文件~/.bash_history

歷史默認(rèn)命令會保存1000條,可以在環(huán)境變量配置文件/etc/profile中進(jìn)行修改(HISZIZE字段)

歷史命令的調(diào)用

  • 使用上下箭頭調(diào)用以前的歷史命令
  • 使用"!n" 重復(fù)執(zhí)行第n條歷史命令
  • 使用"!!"重復(fù)執(zhí)行上一條命令
  • 使用"!字串" 重復(fù)執(zhí)行最后一條以該字串開頭的命令

命令與文件補(bǔ)全

在bash中,命令與文件補(bǔ)全使用tab鍵,一次或兩次。

輸出輸入重定向

標(biāo)準(zhǔn)輸入輸出

設(shè)備 設(shè)備文件名 文件描述符 類型
鍵盤 /dev/stdin 0 標(biāo)準(zhǔn)輸入
顯示器 /dev/stdout/1 標(biāo)準(zhǔn)輸出
顯示器 /dev/stderr/2 標(biāo)準(zhǔn)錯誤輸出

輸出重定向

類型 符號 作用
標(biāo)準(zhǔn)輸出重定向 命令 > 文件 以覆蓋的方式,把命令的正確輸出輸出到指定的文件或設(shè)備當(dāng)中
標(biāo)準(zhǔn)輸出重定向 命令 >> 文件 以追加的方式,把命令的正確輸出輸出到指定的文件或設(shè)備當(dāng)中
標(biāo)準(zhǔn)錯誤輸出重定向 錯誤命令 2>文件 以覆蓋的方式,把命令的錯誤輸出輸出到指定的文件或設(shè)備當(dāng)中
標(biāo)準(zhǔn)錯誤輸出重定向 錯誤命令 2>>文件 以追加的方式,把命令的錯誤輸出輸出到指定的文件或設(shè)備當(dāng)中
正確輸出和錯誤輸出同時保存 命令>文件 2>&1 以覆蓋的方式,把正確輸出和錯誤輸出都保存在同一個文件當(dāng)中
正確輸出和錯誤輸出同時保存 命令>>文件 2>&1 以追加的方式,把正確輸出和錯誤輸出都保存在同一個文件當(dāng)中
正確輸出和錯誤輸出同時保存 命令&>文件 以覆蓋的方式,把正確輸出和錯誤輸出都保存在同一個文件當(dāng)中
正確輸出和錯誤輸出同時保存 命令&>>文件 以追加的方式,把正確輸出和錯誤輸出都保存在同一個文件當(dāng)中
正確輸出和錯誤輸出同時保存 命令>>文件1 2>>文件2 把正確輸出追加到文件1中,把錯誤輸出追加到文件

2中

輸入重定向

命令<文件,把文件作為命令的輸入
命令<<標(biāo)識符,把標(biāo)識符之前的內(nèi)容作為命令的輸入

wc [選項] [文件名]
選項:
-c:統(tǒng)計字節(jié)數(shù)
-w:統(tǒng)計單詞數(shù)
-l:統(tǒng)計行數(shù)

wc本身統(tǒng)計行數(shù),單詞數(shù),字節(jié)數(shù),ctrl+d

多命令順序執(zhí)行

多命令執(zhí)行符 格式 作用
; 命令1;命令2 多個命令順序執(zhí)行,命令之間沒有任何邏輯聯(lián)系
&& 命令1&&命令2 邏輯與
當(dāng)命令1執(zhí)行正確,命令2執(zhí)行
當(dāng)命令1執(zhí)行不正確,命令2不執(zhí)行
命令1 命令2 邏輯或
當(dāng)命令1執(zhí)行正確,命令2不執(zhí)行
當(dāng)命令1執(zhí)行不正確,命令2執(zhí)行
# 命令正確執(zhí)行打印yes,錯誤執(zhí)行打印no
命令 && echo yse || echo no
ls && echo yes || echo no

管道符

# 命令1的正確輸出作為命令2的操作對象
命令1 | 命令2

ll -a /etc/ | more
netstat -an |grep ESTABLISHED |wc -l

通配符

?,*,[abc],[0-9],[^0-9](非數(shù)字)
符號 作用
'' 單引號。單引號中的所有特殊符號都沒有含義
"" 雙引號。雙引號中特殊符號都沒有特殊含義,"$","`",""是例外
`` 反引號。反引號括起來的內(nèi)容是系統(tǒng)命令,在bash中會先執(zhí)行它。作用同$()
$() 引用系統(tǒng)命令
# 注釋
$ 用于調(diào)用變量的值,格式為 $name
轉(zhuǎn)義符。跟在\之后的特殊符號將失去特殊意義,變?yōu)槠胀ㄗ址?/td>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一節(jié) Shell概述 1.Shell是什么 Shell是一個命令行解釋器,它為用戶提供了一個向Linux內(nèi)核發(fā)送...
    littlexjing閱讀 2,154評論 0 1
  • 一、Shell概述 1. Shell是什么? Shell是一個命令行解釋器,它為用戶提供了一個向Linux內(nèi)核發(fā)送...
    魯克巴克詩閱讀 720評論 0 3
  • 概述 首先,咱們來了解一下,什么是Shell。操作系統(tǒng)內(nèi)核給我們提供了各種接口,同時也提供了各種用戶層的庫,理論上...
    keysaim閱讀 1,525評論 0 0
  • Shell是一個"命令行解釋器",它為用戶提供了一個向Linux內(nèi)核發(fā)送請求以便運(yùn)行程序的界面系統(tǒng)級程序,用戶可以...
    tf_dejs閱讀 469評論 0 1
  • 熬著夜等你 手機(jī)刷了又刷 紙張翻了又翻 你沒有回來 不等你 又能怎樣 不是有女兒 不是女兒的陪伴 我的笑都是我自己...
    湍河故事閱讀 220評論 4 2

友情鏈接更多精彩內(nèi)容