首頁 > 軟體

Linux bash初識,特性,用法

2020-06-16 16:35:08

一、Bash初識

Bash Shell介紹

Bash Shell是一個命令直譯器,它在作業系統的最外層,負責使用者程式與核心進行互動操作的一種介面,把使用者輸入的命令翻譯給作業系統,並將處理後的結果輸出至螢幕。

Bash Shell的作用

使用shell實現對linux系統的大部分管理,例如:date

  1. 檔案管理

  2. 使用者管理

  3. 許可權管理

  4. 磁碟管理

  5. 網路管理

  6. 軟體管理

  7. 應用管理

? ...

Bash 兩種方式

 1.輸入命令方式:

? 效率低,適合少量工作

2. shell script (指令碼方式):

? 效率高,適合大量工作

命令方式:
[root@CentOS7 ~]# date          #獲取當前時間
2019年 06月 14日  星期五 15:47 CST
    
[root@centos7 ~]# useradd gjy      #增加使用者名稱

bash -version命令:

(GNU GPL標示,如下圖)

1560499330904

用指令碼方式:
例如:如果要建立100個使用者,使用shell script
for n in `seq100`;do
        useradd oldboy$n && 
        echo "使用者 oldboy$n 已建立成功"
done

[root@centos7 ~]#  bash user.sh
表示100個0ldboy使用者已建立成功

命令提示字元

例如:[root@centos7 ~]# 
 [root         @     centos7    ~   ]#     #超級管理員
 [oldboy       @     centos7    ~   ]#      #普通使用者
#當前登入的使用者       主機名      當前登入的位置
#後是注釋,不執行
home/oldboy:普通使用者家目錄
/root:root使用者的家目錄
檢視當前命令解釋符
[root@centos7 ~]# echo $ps1
[u@h w]$
echo:在bash shell中呼叫變數 $

檢視當前使用者(whoamai:檢視當前登入的使用者)
[root@centos7 ~]# whoamai
root

root:超級系統使用者名稱,也是當前系統的使用者

PS1的常用引數以及含義:(了解)

d: 代表日期,date
H: 完整的主機名稱
h: 僅取主機名中的第一個名字
t: 顯示時間為24小時格式  如:HH:MM:SS
T: 顯示時間為12小時格式
A: 顯示時間為24小時格式:HH:MM
u: 當前使用者的賬號名稱
v: BASH的版本資訊
w: 完整的工作目錄名稱
W: 利用bashname取得工作目錄名稱,只顯示最後一個目錄名
#: 下達的第幾個命令
$: 提示字元,如果是root使用者,提示符為#,普通使用者則為$
  
顏色:
30 40黑色
31 41紅色
......

固定改變顏色的格式:(了解)

PS1='[e[32;40m] [[u@h w t]$ [e[0m]'

PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@h [e[36;40m]w[e[0m]]$ "

PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@[e[35;40m]h[e[0m] [e[36;40m]w[e[0m]]$ "

二、Shell的基本語法

命令          選項        引數
command   [-options]  [arguments]     中括號可有可無

[root@centos7 ~]# ls            //命令
[root@centos7 ~]# ls -l       //命令+選項   
[root@centos7 ~]# ls -l /home/   //命令+選項+引數
命令:整條shell命令的主體
選項:用於調節命令的具體功能
引數:如檔案、目錄等
命令必須開頭,選項和引數位置可以發生變化

echo:所見即所得,輸出echo後面引數的內容
-e  :識別換行符等特殊符號
  :跳脫符
$  :呼叫變數
echo 'gjy'
echo -e 'gjyn123'    

三、Shell的基本特性

1.命令補全 tab

當使用windows查詢一個目錄層級特別多的檔案時,開啟的效率會非常的慢,linux查詢這樣檔案時,可以用tab鍵快速補全。

  1. 命令補全

  2. 引數補全:yum install -y bash-completion

  3. 選項補全:主要是補全路徑

備註:tab鍵可以實行命令補全,路徑補全,在實際生產中tab補全用的最多,可以減少執行命令以及路徑出錯率,還能提高輸入效率。

例如:、
[root@centos7 ~]# ifc  
  #按下tab鍵會自動補全,若按一下tab沒反應,就需要按兩下tab鍵,列出所有if開頭的命令
ifcfg   ifcconfig
[root@centos7 ~]# ifconfig

[root@centos7 ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0

如果無法補全選項,那麼需要一個安裝一個擴充套件包

[root@centos7 ~]# yum install -y bash-completion
-y是確定執行,不加'-y',系統會傳送指令給你再確定下

2. Linux的快捷鍵

ctrl + a:將游標跳轉到行首
ctrl + e:將游標跳轉到行末
Ctrl + w:以空格為單位,將當前游標位置之前的內容刪除
ctrl + u:將當前游標位置之前的內容全部刪除
ctrl + l:清屏
ctrl + c:終止當前命令
ctrl + d:退出,斷開當前連線(exit,logout)
ctrl + z:掛起,放後台執行
ctrl + r:搜尋歷史命令
ctrl + s:鎖屏
ctrl + q:解鎖
ctrl +左右:按照單詞跳轉游標
esc + . :瞬間顯示出上一條命令,最後的內容,以空格分隔

3.歷史命令history

歷史命令的作用:追溯之前的發生情況,記錄歷史命令,非常重要,也就是紀錄檔審計

-w : 儲存歷史命令到檔案中write

-d : 刪除歷史命令中的 第n行 delete(刪除)

-c : 清空命令歷史記錄,不會清空檔案 clear(清除)

歷史命令儲存到檔案,當前使用者的家目錄下有一個隱藏檔案:.bash_history

檢視歷史記錄:
[root@gong ~]# history

清空歷史記錄
[root@gong ~]# history -c

指定一條歷史記錄刪除
[root@gong ~]# history -d 23

儲存歷史命令
[root@gong ~]# history -w

執行上一條命令
[root@gong ~]# !!

執行上一條ls相關命令
[root@gong ~]# !ls

執行歷史命令中的第23條命令
[root@gong ~]# !23

4.命令的別名alias

命令別名就是把使用者經常使用的複雜命令簡單化,建立出屬於自己的命令別名

建立語法:alias 別名=“命令”
取消語法:unlias 別名
定義臨時別名,檢視網路是否可以通,ping 百度,只對當前shell 生效
[root@gong ~]# alias tong="ping baidu.com"         #需用雙引號,單引號輸出的結果是引號內的字串
PING baidu.com (123.125.114.144) 56(84) bytes of data.
64 bytes from 123.125.114.144: icmp_seq=1 ttl=128 time=44.2 ms
64 bytes from 123.125.114.144: icmp_seq=2 ttl=128 time=47.5 ms
64 bytes from 123.125.114.144: icmp_seq=3 ttl=128 time=46.3 ms
......
檢視所有定義的別名
[root@gong ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias tong='ping baidu.com'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' 

取消別名
[root@gong ~]# unalias oldboy
[root@gong ~]# oldboy
-bash: tong: command not found
        
永久生效
[root@gong ~]# vim /etc/bashrc
alias oldboy="ping baidu.com"

5.獲取命令幫助help

獲取ls命令的幫助
[root@gong ~]# ls --help
用法:ls[選項]...[檔案]...

ls常見選項
-a  #檢視目錄下的所有檔案,包括隱藏檔案
-l  #以長格式的方式顯示檔案的詳細內容
-h  #以人性化的方式顯示內容,配合 -l 使用
-d  #只列出目錄名,不列出目錄以下的內容
-t  #按修改時間進行排序
-i  #顯示檔案的inode(該檔案在該分割區的一個編號)
-r  #倒敘

[root@gong ~]# man ls

IT145.com E-mail:sddin#qq.com