2021-05-12 14:32:11
Linux bash初識,特性,用法
2020-06-16 16:35:08
一、Bash初識
Bash Shell介紹
Bash Shell是一個命令直譯器,它在作業系統的最外層,負責使用者程式與核心進行互動操作的一種介面,把使用者輸入的命令翻譯給作業系統,並將處理後的結果輸出至螢幕。
Bash Shell的作用
使用shell
實現對linux
系統的大部分管理,例如:date
-
檔案管理
-
使用者管理
-
許可權管理
-
磁碟管理
-
網路管理
-
軟體管理
-
應用管理
? ...
Bash 兩種方式
1.輸入命令方式:
? 效率低,適合少量工作
2. shell script (指令碼方式):
? 效率高,適合大量工作
命令方式:
[root@CentOS7 ~]# date #獲取當前時間
2019年 06月 14日 星期五 15:47 CST
[root@centos7 ~]# useradd gjy #增加使用者名稱
bash -version
命令:
(GNU GPL標示,如下圖)
用指令碼方式:
例如:如果要建立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
鍵快速補全。
-
命令補全
-
引數補全:yum install -y bash-completion
-
選項補全:主要是補全路徑
備註: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
相關文章