初步認識和學習BASH和shell
簡單的說:bash包括:
變量的設置與使用
bash操作環境的構建
數據流重定向功能
管道命令
bash中的命令行對主機維護和管理有不可缺少的幫助
1.1認識bash這個shell
管理計算機硬件的其實是操作系統的內核kernel,內核被保護,所以一般的用戶只能
通過shell(殼)來和內核通信。
我們要想讓計算機做一件事情,就必須要通過“Shell”將我們輸入的命令與內核通信,
好讓內核可以控制硬件來正確無誤的工作。真正在控制硬件工作的是CPU進程,內存
管理、磁盤輸出輸入等工作。硬件是實體的工作者,包括硬盤:顯示卡網絡卡CPU等。
操作系統的本質就是:一組軟件
shell的功能:提供用戶操作系統的一個接口,要使用shell需要用其他的軟件來調用,其實
我們使用的每個命令行都是一個獨立的應用程序。也就是說:只要能夠操作應用程序的接口
都能夠稱為shell。
狹義的shell指的是命令行方面的軟件。
廣義的shell包括圖形界面的軟件。
Unix中:Shell的分類:
Bourne SHell(sh)
Sun裡面的默認的C Shell
商業中常用到K Shell TCSH
請問問度娘或谷哥RHEL和CentOS用的是哪個?
至於Linux:他的shell就是Bourne Again SHell,小名叫bash。這個Shell是Bourne Shell
的增強版本。
CentOS中可以用的shell:/etc/sehlls(本人已經找到)
/bin/sh 被/bin/bash所代替
/bin/bash Linux默認的shell
/bin/ksh Kornshell 由AT&T Bell lab.發展出來的,兼容於bash
/bin/tcsh (整合C Shell,提供更多的功能)
/bin/csh (已經被/bin/tcsh所替代)
/bin/zsh (基於ksh發展出來的,功能強大的shell),沒有
使用/etc/shell文件的原因:因為系統服務器在運行過程中,回去檢查用戶能夠使用的shells
,而這個shell的查詢就是借助/etc/shells這個文件,shell什麼時候開始工作呢?
比如登陸的時候,shell記錄在/etc/password中,每行的最後一個數據就是默認的shell
Linux默認使用/bin/bash 這個shell。
shell的功能:
命令記憶功能(history)
命令與文件補全功能
命令別名的設置功能(alias) 很有用的哦!
eg:將lm設置成ls -al
alias lm='ls -al'
要設置直接打開一個路徑:
alias cdd='cd /home/angle/real'
記住有一些非bash規定的命令行輸入其實是通過這種方法設定的,並且每個用戶下面
都需要設置一遍如果你想用這個指令的話。原因很簡單,因為每個用戶擁有自己單獨
的bash。
作業控制、前台、後台控制(job control.foreground,background)(Chapter 17)
程序腳本(shell script)(Chapter 13)
通配符 (Wildcard)
eg:想要知道/usr/bin下面有多少以X開頭的文件用:
ls -l /usr/bin/X*
bash shell 的內置命令:type
利用type命令判斷每個命令是否為bash內置命令
eg:type -a ls
type cd
命令的執行:
eg:
cp /var/spool/mail/root /etc/crontab \
> /etc/fstab /root
這個命令的用途是將三個文件復制到/root這個目錄下,因為太長用\ENTER來將[ENTER]
這個按鍵“轉義開來”,讓ENTER不在具有“開始執行的功能”,好讓命令可以繼續在下
一行輸入。
特別注意:[ENTER]按鍵要緊跟反斜槓\,如果順利轉義的話就會出現>的符號,說明可以
繼續輸入命令,>是系統自動出現的,不需要手動輸入。
小結:當我們順利在終端機(tty)上登陸時,Linux就會依據/etc/password文件的設置給我們一個
shell(默認為bash),然後我們就可以依據上面的命令執行方式來操作shell,之後我們
可以通過man這個在線查詢命令的使用方式與參數說明。