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