一、Bash Shell初步認識
1.什么是Bash Shell(殼)?
命令解釋器, 將用戶輸入的命令,翻譯給內(nèi)核程序.
將用戶輸入的指令翻譯給內(nèi)核程序,內(nèi)核處理完成之后將結(jié)果返回給bash
? Bash Shell是一個命令解釋器,它在操作系統(tǒng)的最外層,負責(zé)用戶程序與內(nèi)核進行交互操作的一種接口,將用戶輸入的命令翻譯給操作系統(tǒng),并將處理后的結(jié)果輸出至屏幕。當(dāng)我們使用遠程連接工具連接linux服務(wù),系統(tǒng)則會給打開一個默認的shell,我們可在這個界面執(zhí)行命令、比如:獲取系統(tǒng)當(dāng)前時間,創(chuàng)建一個用戶等等...
如何打開一個bash窗口:
通過Xshell連接,就算打開一個Bash程序的窗口.
2.Bash Shell能做什么?
? 幾乎能完成所有的操作:
? 文件管理 (創(chuàng)建 移動 復(fù)制 刪除 編輯 等等)
? 用戶管理 (創(chuàng)建 刪除 ....)
? 權(quán)限管理
? 磁盤管理
? 網(wǎng)絡(luò)管理
? 進程管理
? ......
3.平時我們是如何使用Bash Shell?
? 單條命令 --> 效率低 ---> 適合少量工作
[root@oldboy ~]# ls
anaconda-ks.cfg
? Shell Script --> 效率高 ---> 適合復(fù)雜 并且重復(fù)性的工作
[root@oldboy ~]# cat a.sh
#!bin/bash
for i in {1..10}
do
useradd test$i
echo "Create test$i is OK!"
done
[root@oldboy ~]# sh a.sh
Create test1 is OK!
Create test2 is OK!
Create test3 is OK!
Create test4 is OK!
Create test5 is OK!
Create test6 is OK!
Create test7 is OK!
Create test8 is OK!
Create test9 is OK!
Create test10 is OK!
4.Bash Shell提示符
5.Bash Shell基礎(chǔ)語法
? 命令 [選項] [參數(shù)]
? ls -a /tmp/
? 打針 重點|輕點 往哪打
?
? 命令: 主體
? 選項: 用來調(diào)節(jié)命令的輸出效果
? -a 以 “-”引導(dǎo)短格式選項(單個字符)
? --all 以“--”引導(dǎo)長格式選項(多個字符)
? 選擇使用短格式- , 在選項特別多的時候可以組合使用 -a -l -al
? 參數(shù):命令操作的對象,如文件或者路徑等
? PS: 命令必須開頭,選項和參數(shù)可以出現(xiàn)位置調(diào)換的情況
? ls #列出當(dāng)前目錄下的內(nèi)容
[root@oldboy ~]# ls bash_logout
ls: cannot access bash_logout: No such file or directory #沒有找到這個文件或目錄
PS:相信電腦: 不要相信自己 這個文件不存在,或者這個文件名稱寫錯了
[root@oldboy ~]# useraddttt
-bash: useraddttt: command not found #命令未找到
二、Bash Shell基本特性
1.命令補全 tab
? 命令補全 路徑補全 選項補全
?
? 輸入命令: 按下tab鍵 會自動補全;但是如果無法補全,按兩下tab鍵列出所有if開頭的命令。
? 路徑補全: 保證唯一就能實現(xiàn)補全功能,但如果輸入錯誤則不會補全成功。
? 選項補全: yum install bash-completion
?
? PS:輸入錯誤,tab鍵不好使/
2.命令快捷鍵
ctrl+c 終止當(dāng)前正在運行的程序
ctrl+l 清屏 === clear命令
ctrl+w 按單詞或者空格進行向前刪除
ctrl+ -> 快速右移
ctrl+ <- 快速左移
ctrl+a 光標(biāo)跳轉(zhuǎn)至行首
ctrl+e 光標(biāo)跳轉(zhuǎn)至行尾
ctrl+z 暫時放入后臺 幾乎不用
ctrl+u 刪除光標(biāo)以前的所有內(nèi)容
ctrl+k 刪除光標(biāo)以后的所有內(nèi)容
ctrl+r 搜索的此前執(zhí)行過的命令
3.歷史命令History,
? 追溯之前發(fā)生情況 (查找執(zhí)行的命令歷史記錄)
? -w 保存命令歷史到歷史文件
? -c 清空命令歷史記錄, 不會清空已保存的文件
? -d 刪除命令歷史的第 N 條行
? history 獲取當(dāng)前執(zhí)行的歷史記錄
? 使用雙 !! 可執(zhí)行上一條執(zhí)行過的命令
? !60 #調(diào)取history記錄中編號為60的命令
? ESC + . #調(diào)用上一條命令的最后參數(shù)或選項
? 1.保存歷史記錄 [root@oldboy ~]# cat .bash_history #當(dāng)前用戶的家目錄下
? [root@oldboy ~]# history -w
? 2.嘗試使用history -c 清除記錄
?
? 3.操作完成后,清楚記錄
[root@oldboy ~]# history -c
[root@oldboy ~]# > .bash_history
[root@oldboy ~]# cat .bash_history
?
4.命令別名 alias unalias
? 系統(tǒng)有很多內(nèi)置的別名
? 1.設(shè)置別名(臨時生效)
[root@oldboy ~]# alias wk='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@oldboy ~]# wk
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=e3ab73b9-4001-4639-bce2-9ff418143b13
DEVICE=eth0
ONBOOT=yes
IPADDR=10.0.0.200
PREFIX=24
GATEWAY=10.0.0.254
DNS1=223.5.5.5
IPV6_PRIVACY=no
? 2.取消別名(臨時生效)
[root@oldboy ~]# unalias wk
[root@oldboy ~]# wk
-bash: wk: command not found
? 3.永久添加別名
? /etc/bashrc
[root@oldboy ~]# echo "alias ifconfig='ifconfig eth0'" >> /etc/bashrc
三、Bash Shell獲取幫助
1.命令 --help幫助
# ls --help
2.命令 man手冊
# man ls #查看ls命令的手冊