要想知道什麼是shell,首先要清楚應用程式是如何有作業系統執行的?具體請看下圖:
首先,使用者層面上的應用程式如果只要執行,則對於計算機而言就是需要將應用程式執行的內容解釋或程式設計計算能識別的機器語言,或者是被稱為二進位制(程式猿口的01碼),再由作業系統核心呼叫計算硬體,完成程式的整個執行過程;而在過程中就存在乙個很重要的步驟就是:如何將應用程式(高階程式語言)轉換為機器語言?要想實現轉換則有2種方式:
(1)編譯:就是將使用者級的高階語言通過編譯器編譯為機器語言,在由作業系統中記憶體呼叫執行,完成程式的執行。
(2)解釋:就是將使用者級的高階語言通過直譯器解釋為機器語言執行。
在我們要目前實際生產開發中使用到的都是linux作業系統,而此作業系統之所以強大,源於其支援大量的內建命令或是擴充套件命令,而在執行命令後,作業系統如何能識別,則就需要【命令直譯器】,而shell就是其中的直譯器。
shell 就是實現使用者的應用程式到作業系統核心之間的這座橋梁,可以將使用者級的應用程式使用的高階語言 解釋為機器語言。
shell 是使用c語言編寫的一種命令語言。
使用者名稱:加密口令:uid:dig:使用者的描述資訊:主目錄:命令直譯器
# 使用【usermod】修改使用者 root 的直譯器為 sh
[root@vm-0-2-centos ~]# usermod -s /bin/sh root
[root@vm-0-2-centos ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/sh
operator:x:11:0:operator:/root:/sbin/nologin
# 使用【chsh】修改使用者 root 的直譯器為 bash
[root@vm-0-2-centos ~]# chsh -s /bin/bash root
changing shell for root.
shell changed.
[root@vm-0-2-centos ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
學習成長之路
首先最完美的學習成長之路應該是這樣的 保持線性的積累和成長,積累夠了在某段很短的時間能突破關鍵點上公升乙個高度。但是現實是什麼樣的?首先日常保持線性的成長都很難,因為你的一天時間是固定,扣除工作,吃喝拉撒睡,扣除生活家人朋友愛人的相處時間,所剩無幾。所以為了保證學習時間,你得有取捨。有了充足的時間,...
Nginx學習成長之路 二
nginx的反向 與負載均衡 1.什麼是反向 例如 a b 無法到達 但是c b 那麼我們可以從a c b 那麼 c 就是連線的點 也就是 伺服器 這種稱作正向 當我們有乙個伺服器集中,並且伺服器集群中的每台伺服器的內容一樣的時候,同樣我們要從個人電腦訪問到伺服器集中的伺服器的時候無法訪問,且此時第...
shell命令學習之路
當shell指令碼具有可執行許可權時,用sh filename與.filename執行指令碼是沒有區別得。filename是因為當前目錄沒有在path中,所有 是用來表示當前目錄的。sh filename 重新建立乙個子shell,在子shell中執行指令碼裡面的語句,該子shell繼承父shell...