Linux之認識BASH和Shell

前序:在Linux的環境下,如果你不清楚什麼是Bash,那麼我就只能說:兄弟,其他的東西先別學了,去趕緊補習一下這方面的知識吧,接下來,我要講的關於BASH的內容,幾乎是所有命令行格式與未來主機維護與管理的重要基礎。加油吧老鐵!!!**小二,給客人上硬菜!!!
**
一、硬件、內核與Shell
只要稍微有些計算機基礎的人都知道,管理計算機硬件的是操作系統的內核(Kernel),這個內核是需要保護的,爲什麼需要保護?因爲操作系統實際上是一些軟件的集合體,由於這組軟件在控制整個硬件與管理系統的活動檢測,所以不是一般人可以去碰的,碰壞了怎麼辦?就像你的小女朋友一樣,家裏的事情是她做主,而你還要負有保護她的義務。既然內核被保護着,所以我們就需要一個媒介來與之溝通,這個時候我們普通用戶就只能通過shell來跟內核進行溝通,藉以讓內核完成我們所要實現的任務。
簡單舉個例子,大家都會用電腦放音樂聽歌對吧,那麼對於電腦來說想要把一首歌放出來都需要什麼呢?一是硬件,也即是聲卡、揚聲器等設備;二是操作系統的內核,它可以支持這個芯片組,同時提供芯片的驅動程序;三是應用程序,這個簡單,可以理解爲用戶輸入發出聲音的命令。現在的問題是系統如何識別你的命令呢,硬件如何知道需要執行你的命令了呢?這個時候,就需要通過Shell將我們輸入的命令與內核進行溝通,好讓內核可以控制硬件準確地放出音樂。現在你應該知道爲什莫會有應用程序了吧,因爲無論如何總要給人去用,不可能所有人都有直接在系統中操作的權力,於是就開發出了應用程序,讓廣大用戶通過使用應用程序來調用內核完成我們所需的硬件任務。
二、查看自己使用的Shell
咱們探討一個比較深奧的問題,Linux使用的是哪種Shell?什麼?哪種?難道不是一種?我也是懵逼了。哈哈,不要急,我給大家講一講。在早年,很久很久以前,UNIX年代發展着衆多,所以Shell一句發展者的不同就有很多版本,比如C Shell,Bourne shell,以及K Shell等等,至於Linux使用的Shell就是Bourne Again Shell(bash),這個Shell是Bourne Shell的升級版。假如此刻你想要知道自己的Linux支持的Shell,那麼我告訴你一個辦法,進入系統然後檢查一下/etc/shells這個文件
在這裏插入圖片描述
上圖就是本人的系統輸出的結果,有一點需要知道,/bin/sh已經被/bin/bash取代了。還有就是如果你想知道自己的這個用戶默認的是使用什麼shell該怎麼辦呢?再教你一次,同樣是再/etc下,輸入cat /passwd,在輸出結果的每一行的最後一個數據,就是你登陸後可以使用的默認shell.這裏有一個“怪怪的”Shell
在這裏插入圖片描述
三、Shell的功能
1)存儲歷史命令:他能記錄使用過的命令,因爲你只需要按【上下鍵】就可以調出之前使用過命令,就不用反反覆覆一直去敲了,是不是很爽,要不然遇到那種很長的命令,你就去自殺吧。在這個功能裏面,默認記錄的條目能達到1000條,幾乎能記錄下你在本次使用中的所有命令了,是不是很厲害?是不是又要問一下這個命令的記錄存在哪裏?存在你家目錄下的.bash_history,特別要注意的是隻有當本次登錄結束註銷之後,這些執行過的命令纔會存儲到這個文件裏面,而在本次還沒有註銷的操作中,這些命令是暫時存儲在內存中的。下圖展示的就是我在自己的家目錄中下的該文件中查到的部分信息。
在這裏插入圖片描述
但是有一點是要主義的,因爲一旦被黑客入侵了,他能看到這個文件內的命令,恰恰又有與你的系統有關的命令,那你就慘了。所以這個文件裏面是多存命令好一些還是少存好一些,沒有定論。
2)命令與文件補充功能
【Tab】:接在一串命令的第一個字後面則爲命令補全
【Tab】:接在一串命令的第二個字後面則爲文件補全
3)別名設置功能
使用alias命令來給某個命令取別名,方便使用
在這裏插入圖片描述
4)通配符功能(*)
比如,我想要知道/usr/bin下有多少以x開頭的文件
在這裏插入圖片描述
5)程序化腳本(極爲重要)
關於腳本這部分不去細說了,後面會有大篇幅的講解
關於shell的初級知識就講到這裏,下一篇內容會給大家講解Shell的變量功能,欲知後事如何,請聽下回分解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章