0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux系統(tǒng)中shell命令解析

馬哥Linux運(yùn)維 ? 來源:博客園Yoob ? 2024-11-05 15:40 ? 次閱讀

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è)置主機(jī)名

# 臨時生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost

3 命令提示符

提示符格式說明:

e 控制符?33

u 當(dāng)前用戶

h 主機(jī)名簡稱

H 主機(jī)名

w 當(dāng)前工作目錄

W 當(dāng)前工作目錄基名

24小時時間格式

T 12小時時間格式

! 命令歷史數(shù)

開機(jī)后命令歷史數(shù)

# 查看提示符格式
cat $PS1

# 在CentOS系統(tǒng)實(shí)現(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

# 實(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,但是更易用,也更強(qiáng)大,Tmux 就是會話與窗口的"解綁"工具,將它們徹底分離,功能如下:

它允許在單個窗口中,同時訪問多個會話。這對于同時運(yùn)行多個命令行程序很有用。

它可以讓新窗口"接入"已經(jīng)存在的會話。

它允許每個會話有多個連接窗口,因此可以多人實(shí)時共享會話。

它還支持窗口任意的垂直和水平拆分

# 新建會話
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)前窗格拆分為一個獨(dú)立窗口
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] [字符串]

選項(xiàng):

-E (默認(rèn))不支持 解釋功能

-n 不自動換行

-e 啟用 字符的解釋功能

echo "$VAR_NAME"

啟用命令選項(xiàng)-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)點(diǎn)符號
[]:可打印字符
[]:控制(非打?。┳址?[]:圖形字符
[]:十六進(jìn)制字符

11 安全刪除文件

rm 雖然刪除了文件,但是被刪除的文件仍然可能被恢復(fù),在安全要求較高的場景下,可以使用shred安全刪除文件

-z 最后一次覆蓋添加0,以隱藏覆蓋操作

-v 能夠顯示操作進(jìn)度

-u 覆蓋后截?cái)嗖h除文件

-n # 指定覆蓋文件內(nèi)容的次數(shù)(默認(rèn)值是3次)

鏈接:https://www.cnblogs.com/yoob/p/18514938

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1359

    瀏覽量

    40179
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    590

    瀏覽量

    27303
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    674

    瀏覽量

    21962
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    363

    瀏覽量

    23252

原文標(biāo)題:開機(jī)后命令歷史數(shù)

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式Linux入門(三、Linux Shell及常用命令說明)

    嵌入式 Linux入 門第三課,熟悉掌握 Linux 常用 Shell 命令 ...... 矜辰所致
    的頭像 發(fā)表于 06-21 10:50 ?1235次閱讀
    嵌入式<b class='flag-5'>Linux</b>入門(三、<b class='flag-5'>Linux</b> <b class='flag-5'>Shell</b>及常用<b class='flag-5'>命令</b>說明)

    shell編程的簡單命令語句了解

    shell(腳本:批處理)適合職業(yè):Linux系統(tǒng)運(yùn)維工程師1.命令解析器(將用戶輸入的命令
    發(fā)表于 11-04 08:00

    linux shell命令/unix shell命令教程

    linux shell命令/unix shell命令教程:為了防止未授權(quán)用戶訪問你的文件,可以在文件和目錄上設(shè)置權(quán)限位。還可以設(shè)定文件在創(chuàng)建
    發(fā)表于 12-06 13:08 ?61次下載
    <b class='flag-5'>linux</b> <b class='flag-5'>shell</b><b class='flag-5'>命令</b>/unix <b class='flag-5'>shell</b><b class='flag-5'>命令</b>教程

    Linux系統(tǒng)管理命令整理及使用方法介紹

    linux命令是對Linux系統(tǒng)進(jìn)行管理的命令。對于Linux
    的頭像 發(fā)表于 09-23 14:55 ?6795次閱讀

    Linux教程之Linux命令、編程器、Shell編程、實(shí)例大全pdf免費(fèi)下載

    的實(shí)用程序。全書分上、、下3篇,共20章,內(nèi)容涵蓋了Linux簡介、Red Hat Linux基礎(chǔ)知識、系統(tǒng)管理與設(shè)置、用戶和用戶組管理、磁盤管理、文件和目錄管理、備份與壓縮、網(wǎng)絡(luò)管
    發(fā)表于 01-08 14:55 ?20次下載
    <b class='flag-5'>Linux</b>教程之<b class='flag-5'>Linux</b><b class='flag-5'>命令</b>、編程器、<b class='flag-5'>Shell</b>編程、實(shí)例大全pdf免費(fèi)下載

    Linux命令鏈接操作符的實(shí)際應(yīng)用

    Linux命令的鏈接的意思是,通過操作符的行為將幾個命令組合執(zhí)行。Linux的鏈接
    發(fā)表于 05-06 17:44 ?825次閱讀

    Linux系統(tǒng)命令shell腳本實(shí)踐指南

    Linux系統(tǒng)命令shell腳本實(shí)踐指南資料下載。
    發(fā)表于 06-01 14:47 ?28次下載

    嵌入式Linux開發(fā)工具——shell編程

    shell(腳本:批處理)適合職業(yè):Linux系統(tǒng)運(yùn)維工程師1.命令解析器(將用戶輸入的命令
    發(fā)表于 11-01 17:20 ?13次下載
    嵌入式<b class='flag-5'>Linux</b>開發(fā)工具——<b class='flag-5'>shell</b>編程

    Shell命令行解釋器簡介

    Shell 是一個命令行解釋器,Shell 為用戶提供了與設(shè)備進(jìn)行命令行交互的方式,用戶通過串口、以太網(wǎng)、無線等方式將命令傳輸給具有
    的頭像 發(fā)表于 08-19 17:20 ?3137次閱讀

    Linux命令行與shell腳本編寫

    Linux命令行與shell腳本編寫
    發(fā)表于 01-11 16:50 ?4次下載

    Linux基礎(chǔ)知識Shell

    Shell便是Linux命令行環(huán)境CLI,直觀意思是“外殼”,這一點(diǎn)與Linux內(nèi)核對應(yīng)。
    的頭像 發(fā)表于 02-15 10:54 ?786次閱讀

    shell命令linux命令一樣嗎

    結(jié)合在一起,形成一個相當(dāng)于面向過程的程序,即shell script,從而實(shí)現(xiàn)一些復(fù)雜的功能。 而Linux命令則是用來對Linux系統(tǒng)進(jìn)行
    的頭像 發(fā)表于 11-08 10:51 ?2681次閱讀

    linux命令shell編程有什么聯(lián)系

    命令,并提供了許多功能和特性,如變量、控制結(jié)構(gòu)、函數(shù)等,這些功能和特性使得Shell編程成為可能。 其次,Linux命令Shell編程的
    的頭像 發(fā)表于 11-08 10:53 ?863次閱讀

    linux命令行與shell編程實(shí)戰(zhàn)

    Linux命令行與Shell編程實(shí)戰(zhàn)主要涉及以下內(nèi)容: Linux命令行基礎(chǔ):學(xué)習(xí)Linux
    的頭像 發(fā)表于 11-08 10:57 ?708次閱讀

    linuxsource命令的用法

    Linux,source命令通常用于重新執(zhí)行剛修改的初始化文件,使之立即生效,而不必注銷并重新登錄。source命令可以用于讀取并執(zhí)行腳本文件
    的頭像 發(fā)表于 11-08 14:35 ?2169次閱讀