淺談bash、sh、腳本語言等概念

Shell 簡介

早期計算機沒有圖形界面,用戶是通過命令行(比如windows的cmd,linux下的shell)操作計算機的,而真正實際操作計算的是kernel(操作系統內核),圖形界面亦或命令行都是間接操作內核以控制系統的。

在linux下,Shell就是這個命令行程序。
因此,shell 是一個程序,是一個建立在內核基礎上的程序,而不是內核的一部分,在linux中用戶通過Shell來使用linux,不啓動shell則無法使用。

在shell中輸入東西的時候,Shell會調用內核的接口函數,內核一頓操作後再返回給Shell,Shell除了可以使用自帶的內置命令,也可以使用外置命令。

在這裏插入圖片描述

Shell編程

編程語言可以分爲:

  1. 編譯型語言: C/C++ Pacal Go 彙編等等,運行前都需要先編譯成二進制可執行文件,依靠編譯器。
  2. 解釋型語言(腳本語言) : Shell Javascript Python Php等,即時翻譯,邊執行邊翻譯,依靠解釋器。

注: 這種分類方法並不嚴謹,比如java語言是屬於編譯型還是解釋型一直有爭論,因爲java先要編譯爲字節碼,再再jvm上解釋執行,我認爲糾結於這種爭論沒有意義,一般認爲java是一種編譯型語言。

Shell是一種腳本語言,可以執行源碼。

不同的Shell

常見的Shell 有 sh,bah,csh等等
其中bash shell是Linux默認的shell程序。
程序一般在/bin 或 /usr/bin目錄下,可用的shell記錄在/etc/shells中

DOS簡介

dos,是磁盤操作系統(Disk Operating System)的縮寫,是一類操作系統,早期dos分爲多種,以微軟旗下MS_DOS使用人數最多,而後微軟放棄該系統,轉而開發windows,1998後windos徹底脫離dos,但是留下了命令行的批處理程序。

cmd與dos

一般認爲cmd屬於windows的一部分,只是保留了一部分dos中的命令。

cmd與bash

cmd是Command shell的簡寫,微軟的定義是:The command shell is a separate software program that provides direct communication between the user and the operating system. The non-graphical command shell user interface provides the environment in which you run character-based applications and utilities. The command shell executes programs and displays their output on the screen by using individual characters similar to the MS-DOS command interpreter Command.com.(CommandShell是一個獨立的應用程序,它爲用戶提供對操作系統直接通信的功能,它爲基於字符的應用程序和工具提供了非圖形界面的運行環境,它執行命令並在屏幕上回顯MS-DOS風格的字符。)所以,可以近似地認爲linux shell=bash而windows=cmd,都是命令行解釋器,都是用戶與操作系統的交互接口。但是bash要比cmd強大很多,windows也有強大的shell叫windows power shell。

鏈接:https://blog.csdn.net/qq_34719188/article/details/84073200#linux_shellbashwindows_cmd_29

批處理

批量處理即爲批處理,是一種簡化的腳本語言,應用於windows系統中,類似於shell腳本,批處理文件是由類dos命令組成的文本文件,可在windows系統中運行,一般以.bat爲後綴

教程鏈接:https://www.w3cschool.cn/dosmlxxsc1/wvqyr9.html

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