1 什么是shell
shell是Linux系統(tǒng)的用戶界面,提供了用戶與內(nèi)核交互的一種接口,它接收用戶輸入的命令并到送到內(nèi)核去執(zhí)行,因此也被稱為Linux的命令解釋器。
顯示系統(tǒng)當(dāng)前使用的shell
echo ${SHELL} # /bin/bash
查看系統(tǒng)當(dāng)前使用的所有shell
cat /etc/shells # /bin/sh # /bin/bash # /usr/bin/sh # /usr/bin/bash # /bin/tcsh # /bin/csh
2 設(shè)置主機名
# 臨時生效 hostname localhost # 持久生效,支持CentOS7和Ubuntu18.04以上版本 hostnamectl set-hostname locahost
3 命令提示符
提示符格式說明:
e 控制符?33
u 當(dāng)前用戶
h 主機名簡稱
H 主機名
w 當(dāng)前工作目錄
W 當(dāng)前工作目錄基名
24小時時間格式
T 12小時時間格式
! 命令歷史數(shù)
開機后命令歷史數(shù)
# 查看提示符格式 cat $PS1 # 在CentOS系統(tǒng)實現(xiàn)持久保存提示符格式 echo 'PS1="[e[1;32m][ [e[1;33m]u[e[35m]@h[e[1;31m] W[e[1;32m]][e[0m]\$"' > /etc/profile.d/env.sh # 實現(xiàn)Ubuntu系統(tǒng)持久保存提示符格式 echo "PS1='[e[1;35m][u@h W]\$[e[0m]'" >> .bashrc
4 內(nèi)部命令與外部命令
內(nèi)部命令:由shell自帶的,而且通過某命令形式提供, ,用戶登錄后自動加載并常駐內(nèi)存中
外部命令:在文件系統(tǒng)路徑下有對應(yīng)的可執(zhí)行程序文件,當(dāng)執(zhí)行命令時才從磁盤加載至內(nèi)存中,執(zhí)行完畢后從內(nèi)存中刪除
區(qū)分內(nèi)部命令與外部命令
type commond
內(nèi)部命令管理
help# 查看所有內(nèi)部命令 enable commond# 啟用內(nèi)部命令 enable -n commond#禁用內(nèi)部命令 enable -n # 查看所有禁用的內(nèi)部命令
外部命令管理
# 查看外部命令文件執(zhí)行路徑 which -a --skip-alias ${commond}
Hash緩存表
系統(tǒng)初始hash表為空,當(dāng)外部命令執(zhí)行時,默認(rèn)會從PATH路徑下尋找該命令,找到后會將這條命令的路徑記錄到hash表中,當(dāng)再次使用該命令時,shell解釋器首先會查看hash表,存在將執(zhí)行之,如果不存在,將會去PATH路徑下尋找,利用hash緩存表可大大提高命令的調(diào)用速率
hash 命令常見用法
hash 顯示hash緩存
hash -l 顯示hash緩存,可作為輸入使用
hash -p path name 將命令全路徑path起別名為name
hash -t name 打印緩存中name的路徑
hash -d name 清除name緩存
hash -r 清除緩存
5 命令別名
對于經(jīng)常執(zhí)行的較長的命令,可以將其定義成較短的別名,以方便執(zhí)行
alias# 查看當(dāng)前定義的所有別名 alias name='commond'# 定義別名 alias name# 撤銷指定別名 unlias -a# 撤銷所有別名
注意:在命令行中定義的別名,只在當(dāng)前shell進(jìn)程中有效,如果想永久生效,要定義在配置文件中
~/.bashrc 僅對當(dāng)前用戶生效
/etc/bashrc 對所有用戶生效
編輯配置文件寫進(jìn)的新配置不會立即生效,需要bash進(jìn)程重新讀取配置文件
source ~/.bashrc source /etc/bashrc
6 常見命令
lscpu cat /proc/cpuinfo
free cat /proc/meminfo
lsblk cat /proc/partitions
arch
uname -r
cat /etc/os-release cat /etc/redhat-release lsb_release -a
cat /etc/os-release cat /etc/issue lsb_release -a
lsb_release -is lsb_release -cs lsb_release -rs
halt poweroff reboot shutdown -h/-r now/+n shutdown -h/-r hh:mm
whoami who w
7 會話管理
screen -ls# 查看所有會話 screen -Sname# 創(chuàng)建會話 ctrl+a,d# 剝離會話 screen -x name# 加入會話 exit# 退出并關(guān)閉會話 screen -r name # 恢復(fù)某會話
Tmux 是一個終端復(fù)用器(terminal multiplexer),類似 screen,但是更易用,也更強大,Tmux 就是會話與窗口的"解綁"工具,將它們徹底分離,功能如下:
它允許在單個窗口中,同時訪問多個會話。這對于同時運行多個命令行程序很有用。
它可以讓新窗口"接入"已經(jīng)存在的會話。
它允許每個會話有多個連接窗口,因此可以多人實時共享會話。
它還支持窗口任意的垂直和水平拆分
# 新建會話 tmux new -s session_name # 分離會話 tmux detach ctrl+b+d # 接入會話 tmux attach -t# 殺死會話 tmux kill-session -t # 切換會話 tmux switch -t # 上下切分窗格 tmux split-window # 左右切分窗格 tmux split-window -h # 列出所有快捷鍵,及其對應(yīng)命令 tmux list-keys # 列出tmux所有命令及其參數(shù) tmux list-commands
Ctrl+b %:#劃分左右兩個窗格 Ctrl+b ":#劃分上下兩個窗格" Ctrl+b:光標(biāo)切換到其他窗格。 是指向要切換到的窗格的方向鍵,比如切換 到下方窗格,就按方向鍵↓ Ctrl+b ;:光標(biāo)切換到上一個窗格 Ctrl+b o:光標(biāo)切換到下一個窗格。 Ctrl+b {:當(dāng)前窗格左移 Ctrl+b }:當(dāng)前窗格右移 Ctrl+b Ctrl+o:當(dāng)前窗格上移 Ctrl+b Alt+o:當(dāng)前窗格下移 Ctrl+b x:關(guān)閉當(dāng)前窗格 Ctrl+b !:將當(dāng)前窗格拆分為一個獨立窗口 Ctrl+b z:當(dāng)前窗格全屏顯示,再使用一次會變回原來大小 Ctrl+b Ctrl+ :按箭頭方向調(diào)整窗格大小 Ctrl+b q:顯示窗格編號
tmux new-window# 新建窗口 tmux new-window -n# 新建一個指定名的窗口 tmux select-window -t # 切換到指定窗口 tmux select-window -t # 切換到指定窗口
Ctrl+b c:創(chuàng)建一個新窗口,狀態(tài)欄會顯示多個窗口的信息。 Ctrl+b p:切換到上一個窗口(按照狀態(tài)欄上的順序)。 Ctrl+b n:切換到下一個窗口。 Ctrl+b:切換到指定編號的窗口,其中的 是狀態(tài)欄上的窗口編號 Ctrl+b w:從列表中選擇窗口 Ctrl+b ,:窗口重命名
8 echo輸出信息
echo [-neE] [字符串]
選項:
-E (默認(rèn))不支持 解釋功能
-n 不自動換行
-e 啟用 字符的解釋功能
echo "$VAR_NAME"
啟用命令選項-e,若字符串中出現(xiàn)以下字符,則特別加以處理,而不會將它當(dāng)成一般文字輸出
a 發(fā)出警告聲
退格鍵
c 最后不加上換行符號
e escape,相當(dāng)于?33
換行且光標(biāo)移至行首
回車,即光標(biāo)移至行首,但不換行
插入tab
插入字符
?nnn 插入nnn(八進(jìn)制)所代表的ASCII字符
xHH插入HH(十六進(jìn)制)所代表的ASCII數(shù)字(man 7 ascii)
在終端中,ANSI定義了用于屏幕顯示的Escape屏幕控制碼,具有顏色的字符,其格式如下:
"?33[字符背景顏色;字體顏色m字符串?33[0m"
?33[30m -- ?33[37m 設(shè)置前景色
?33[40m -- ?33[47m 設(shè)置背景色
#字符背景顏色范圍: 40--47 40:黑 41:紅 42:綠 43:黃 44:藍(lán) 45:紫 46:深綠 47:白色 #字體顏色: 30--37 30: 黑 31: 紅 32: 綠 33: 黃 34: 藍(lán) 35: 紫 36: 深綠 37: 白色
加顏色只是以下控制碼中的一種,下面是常見的一些ANSI控制碼:
?33[0m 關(guān)閉所有屬性 ?33[1m 設(shè)置高亮度 ?33[4m 下劃線 ?33[5m 閃爍 ?33[7m 反顯 ?33[8m 消隱 ?33[nA 光標(biāo)上移n行 ?33[nB 光標(biāo)下移n行 ?33[nC 光標(biāo)右移n列 ?33[nD 光標(biāo)左移n列 ?33[x;yH 設(shè)置光標(biāo)位置x行y列 ?33[2J 清屏 ?33[K 清除從光標(biāo)到行尾的內(nèi)容 ?33[s 保存光標(biāo)位置 ?33[u 恢復(fù)光標(biāo)位置 ?33[?25l 隱藏光標(biāo) ?33[?25h 顯示光標(biāo) ?33[2J?33[0;0H 清屏且將光標(biāo)置頂
9 bash快捷鍵
Ctrl + l 清屏,相當(dāng)于clear命令 Ctrl + o 執(zhí)行當(dāng)前命令,并重新顯示本命令 Ctrl + s 阻止屏幕輸出,鎖定 Ctrl + q 允許屏幕輸出,解鎖 Ctrl + c 終止命令 Ctrl + z 掛起命令 Ctrl + a 光標(biāo)移到命令行首,相當(dāng)于Home Ctrl + e 光標(biāo)移到命令行尾,相當(dāng)于End Ctrl + f 光標(biāo)向右移動一個字符 Ctrl + b 光標(biāo)向左移動一個字符 Ctrl + xx 光標(biāo)在命令行首和光標(biāo)之間移動 Alt + f 光標(biāo)向右移動一個單詞尾 Alt + b 光標(biāo)向左移動一個單詞首 Ctrl + u 從光標(biāo)處刪除至命令行首 Ctrl + k 從光標(biāo)處刪除至命令行尾 Alt + r 刪除當(dāng)前整行 Ctrl + w 從光標(biāo)處向左刪除至單詞首 Alt + d 從光標(biāo)處向右刪除至單詞尾 Alt + Backspace 刪除左邊單詞 Ctrl + d 刪除光標(biāo)處的一個字符 Ctrl + h 刪除光標(biāo)前的一個字符 Ctrl + y 將刪除的字符粘貼至光標(biāo)后 Alt + c 從光標(biāo)處開始向右更改為首字母大寫的單詞 Alt + u 從光標(biāo)處開始,將右邊一個單詞更改為大寫 Alt + l 從光標(biāo)處開始,將右邊一個單詞更改為小寫 Ctrl + t 交換光標(biāo)處和之前的字符位置 Alt + t 交換光標(biāo)處和之前的單詞位置 Alt + # 提示輸入指定字符后,重復(fù)顯示該字符#次
10 文件通配符
* 匹配零個或多個字符,但不匹配 "." 開頭的文件,即隱藏文件 ? 匹配任何單個字符,一個漢字也算一個字符 ~ 當(dāng)前用戶家目錄 ~mage 用戶mage家目錄 . 和 ~+ 當(dāng)前工作目錄 ~- 前一個工作目錄 [0-9] 匹配數(shù)字范圍 [a-z] 一個字母 [A-Z] 一個字母 [wang] 匹配列表中的任何的一個字符 [^wang] 匹配列表中的所有字符以外的字符 [^a-z] 匹配列表中的所有字符以外的字符
[]:任意數(shù)字,相當(dāng)于0-9 []:任意小寫字母,表示 a-z []: 任意大寫字母,表示 A-Z []: 任意大小寫字母 []:任意數(shù)字或字母 []:水平空白字符 []:水平或垂直空白字符 []:標(biāo)點符號 []:可打印字符 []:控制(非打?。┳址?[]:圖形字符 []:十六進(jìn)制字符
11 安全刪除文件
rm 雖然刪除了文件,但是被刪除的文件仍然可能被恢復(fù),在安全要求較高的場景下,可以使用shred安全刪除文件
-z 最后一次覆蓋添加0,以隱藏覆蓋操作
-v 能夠顯示操作進(jìn)度
-u 覆蓋后截斷并刪除文件
-n # 指定覆蓋文件內(nèi)容的次數(shù)(默認(rèn)值是3次)
鏈接:https://www.cnblogs.com/yoob/p/18514938
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1372瀏覽量
40275 -
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
593瀏覽量
27392 -
命令
+關(guān)注
關(guān)注
5文章
683瀏覽量
22011 -
Shell
+關(guān)注
關(guān)注
1文章
365瀏覽量
23354
原文標(biāo)題:開機后命令歷史數(shù)
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論