shell基本知識
一、Linux 與 shell
shell(計算機殼層):在電腦科學中,shell 俗稱殼(區別於核),是指為使用者提供操作介面的軟體。它類似於DOS下的 command.com 和後來的 cmd.exe。它接收命令,然後呼叫相應的應用程式。
Linux 的系統結構如下。最內層的是硬體,然後是核心,shell 介於核心與使用者之間。
shell 的功能:接收使用者的輸入,並且解釋使用者的命令;然後將其傳給系統核心,核心再呼叫硬體來操作。
二、常見的shell
- Bourne Shell(/usr/bin/sh 或 /bin/sh):
是一個交換式的命令直譯器和命令程式語言。Bourne shell 可以執行為login shell或者login shell的子shell(subshell)。只有login命令可以呼叫Bourne shell作為一個login shell。此時,shell先讀取/etc/profile檔案和$HOME/.profile檔案。/etc/profile檔案為所有的使用者定製環境,$HOME/.profile檔案為本使用者定製環境。最後,shell會等待讀取你的輸入。
- Bourne Again Shell(/bin/bash):
它用於基於GNU的系統如Linux。大多數的Linux(Red Hat, Slackware, Caldera)都以bash作為預設的shell,並且執行sh時,其實呼叫的是bash。它的特點是免費、功能強大、易用性高。
- C Shell(/usr/bin/csh):
Bill Joy於20世紀80年代早期,在伯克利的加利福尼亞大學開發了C shell。它主要是為了讓使用者更容易的使用互動式功能,並把ALGOL風格的語法結構變成了C語言風格。它新增了命令歷史、別名、檔名替換、作業控制等功能。
- Korn Shell(/usr/bin/ksh):
Bourne shell用來程式設計,C shell用來互動。ksh結合了所有的C shell的互動式特性,並融入了Bourne shell的語法。它還新增了數學計算,程式協作(coprocess)、行內編輯(inline editing)等功能。Korn Shell 是一個互動式的命令直譯器和命令程式語言。
三、執行shell
- 方法一:
#!/bin/bash #指定shell的型別(在指令碼中指定)
chmod +x ./test.sh #使指令碼test.sh具有執行許可權
./test.sh #執行指令碼test.sh
test.sh的指令碼內容:
執行結果:
一定要寫成./test.sh,而不是test.sh。若直接寫成test.sh,Linux系統會去PATH裡尋找有沒有叫test.sh的檔案,而只有/bin、/sbin、/usr/bin、/usr/sbin等在PATH裡,我們的當前目錄通常不在PATH裡,所以寫成test.sh會找不到命令,要用./test.sh告訴系統:就在當前目錄尋找。
- 方法二:
直接在命令列指定shell型別,此時test.sh指令碼中指定的shell為bash會失效。執行結果與方法一相同。
/bin/sh test.sh #指定的shell為Bourne shell
相關文章
- Shell相關知識
- js 基本知識JS
- javaweb基本知識JavaWeb
- ldap基本知識LDA
- Thymeleaf基本知識
- Ajax基本知識
- NBU基本知識
- WiFi基本知識WiFi
- ORACLE基本知識Oracle
- 1、基本知識
- DAX 基本知識
- Uboot基本知識boot
- git基本知識Git
- shell相關知識點
- Vagrant (一) - 基本知識
- 影像的基本知識
- 基本網路知識
- Oracle 基本知識(轉)Oracle
- SYBASE IQ 基本知識
- 閥門基本知識
- 脫殼基本知識
- Shell指令碼知識簡述指令碼
- shell知識點小結2
- shell知識點小結1
- DBA需要掌握的Shell知識
- korn shell基礎知識(轉)
- C++基本知識點C++
- Javascript物件的基本知識JavaScript物件
- buffer cache基本知識點
- java 基本知識導航Java
- QuickReport基本知識 (轉)UI
- java基本知識備註Java
- 磁碟的基本知識和基本命令
- shell指令碼的基礎知識指令碼
- MySQL資料庫基本知識MySql資料庫
- 執行緒基本知識點執行緒
- 圖片的基本知識點
- WIFI6 基本知識(二)WiFi