linux處理shell
① linux中shell分多少種,都有什麼區別
Shell是一種腳本語言,那麼,就必須有解釋器來執行這些腳本,常見的腳本解釋器有:
bash:是Linux標准默認的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的縮寫,內部命令一共有40個。
sh: 由Steve Bourne開發,是Bourne Shell的縮寫,sh 是Unix 標准默認的shell。
另外還有:ash、 csh、 ksh等。
(1)linux處理shell擴展閱讀:
常見的編程語言分為兩類:一個是編譯型語言,如:c/c++/java等,它們遠行前全部一起要經過編譯器的編譯。另一個解釋型語言,執行時,需要使用解釋器一行一行地轉換為代碼,如:awk, perl, python與shell等。
Shell 經過了POSIX的標准化,所以它是可以在不同的linux系統上進行移植。
關於注釋的問題: 在shell中使用#進行注釋,注意,sh裡面沒有多行注釋,只能每一行加一個#號;
② linux常用的shell有哪些
最常用的當然是bash這個shell了,不需要多說,因為大部分Linux發行版都默認是這個shell;還有C shell用戶也很多,因為它的語法和C語言有點像;還有一個ash,念做A Shell,在智能路由器系統OpenWrt、LEDE上作為默認shell,話說玩路由器Linux系統OpenWrt的也不少啊,好多硬體論壇上都知道這個系統,所以ash也算是常用的Linux shell吧。
③ Linux shell 問題 求解
這是表示foo分別取值三次,並且分別列印出 三個值來,具體其他知識拓展如下:
for 命令
重復執行一系列命令在編程中很常見。通常你需要重復一組命令直至達到某個特定條件,比如處理某個目錄下的所有文件、系統上的所有用戶或是某個文本文件中的所有行。
bash shell提供了 for 命令,允許你創建一個遍歷一系列值的循環。每次迭代都使用其中一個值來執行已定義好的一組命令。下面是bash shell中 for 命令的基本格式。
for var in list
do
commands
done
在 list 參數中,你需要提供迭代中要用到的一系列值。可以通過幾種不同的方法指定列表中的值。
在每次迭代中,變數 var 會包含列表中的當前值。第一次迭代會使用列表中的第一個值,第二次迭代使用第二個值,以此類推,直到列表中的所有值都過一遍。在 do 和 done 語句之間輸入的命令可以是一條或多條標準的bash shell命令。在這些命令中,$var 變數包含著這次迭代對應的當前列表項中的值。
也可以將 do 語句和 for 語句放在同一行,但必須用分號將其同列表中的值分開: for var in list; do 。
1.1.讀取列表中的值
for 命令最基本的用法就是遍歷 for 命令自身所定義的一系列值。
[ceshi@jerry jghml]$ cat test1.sh
#!/bin/bash
# basic for command
for test in Alabama Alaska Arizona Arknsas California Colorado
do
echo The next state is $test
done
④ Linux主要shell命令詳解
命令替換
命令替換和重定向有些相似,但區別在於命令替換是將一個命令的輸出作為另外一個命令的參數。常用命令格式為:
command1
`command2`
其中,command2的輸出將作為command1的參數。需要注意的是這里的`符號,被它括起來的內容將作為命令執行,執行後的結果作為command1的參數。例如:
$
cd
`pwd`
該命令將pwd命令列出的目錄作為cd命令的參數,結果仍然是停留在當前目錄下。
⑤ Linux Shell是什麼
Shell,英文本意是外殼,Linux Shell 就是 Linux 操作系統的外殼,為用戶提供使用操作系統的介面,是 Linux 系統用戶交互的重要介面。登錄 Linux 系統或者打開 Linux 的終端,都將會啟動 Linux 所使用的 Shell。
Linux Shell 一個命令解釋器,是 Linux 下最重要的交互界面,從標准輸入接收用戶命令,將命令進行解析並傳遞給內核,內核則根據命令,作出相應的動作,如果有反饋信息,則輸出到標准輸出上,示意過程如下圖所示。嵌入式 Linux 的標准輸入和輸出都是串口終端。你可以去看一下M283-ARM9核心板
⑥ Linux的Shell腳本中是如何處理形如$i++ 這種語句的
shell本身就是個命令解釋器
,不會編譯成機器碼
,
命令解釋器這個名字就能解釋你的問題了
"命令解釋器用什麼把
1++
算成2的"
我覺得你鑽牛角尖了,
這是個黑箱
,shell作為命令解釋器的存在,對各種輸入都有對應的解釋方式
,至於具體如何實現,那要看shell的源碼了,
這是個黑箱情況
你的問題就好像C編譯器如何識別
i++的
一樣,只是不同的是
C編譯器將i++生成機器碼
,而shell內建$i++的處理方式
⑦ linux shell腳本 批處理
新建一個文件,名字為test(自己定義的名字)
nano test.sh在裡面編寫腳本
程序必須以下面的行開始(必須方在文件的第一行):
#!/bin/sh
符號#!用來告訴系統它後面的參數是用來執行該文件的程序。在這個例子中使用/bin/sh來執行程序。
(能寫一些shell普通命令,命令用分號隔開)
例子:
#! /bin/bash
# shutdown pc
sudo
shutdown +1執行方法
(1)在控制台輸入命令執行:
sh
test.sh
(2)先給腳本可執行許可權,雙擊執行:
右鍵此文件,選擇屬性->許可權,最下方會有一個「允許以程序執行文件」,將這一項勾選,就可以了。
或在命令行下附予許可權:
chmod 777
test.sh 或: chmod +x test.sh
⑧ 在Linux中,shell是什麼
補充下:
Shell是一種具備特殊功能的程序,它是介於使用者和
UNIX/Linux
操作系統之核心程序(kernel)間的一個介面。為什麼我們說
shell
是一種介於系統核心程序與使用者間的中介者呢?讀過操作系統概論的讀者們都知道操作系統是一個系統資源的管理者與分配者,當您有需求時,您得向系統提出;從操作系統的角度來看,它也必須防止使用者因為錯誤的操作而造成系統的傷害?眾所周知,對計算機下命令得透過命令(command)或是程序(program);程序有編譯器(compiler)將程序轉為二進制代碼,可是命令呢?其實shell
也是一支程序,它由輸入設備讀取命令,再將其轉為計算機可以了解的機械碼,然後執行它。
Shell
的功用
為了確保任何提示符號下輸入的命令都能夠適當地執行。shell
擔任的工作包括有:
1.
讀取輸入和語法分析命令列
2.
對特殊字元求值
3.
設立管線、轉向、和幕後處理
4.
處理訊號
5.
設立程序來執行
⑨ linux有幾種shell
Linux系統提供多種不同的Shell以供選擇。常用的有Bourne Shell(簡稱sh)、C-Shelll(簡稱csh)、Korn Shell(簡稱ksh)和Bourne Again Shell (簡稱bash)。Bourne Shell是AT&T Bell實驗室的 Steven Bourne為AT&T的Unix開發的,它是Unix的默認Shell,也是其它Shell的開發基礎。Bourne Shell在編程方面相當優秀,但在處理與用戶的交互方面不如其它幾種Shell。C Shell是加州伯克利大學的Bill Joy為BSD Unix開發的,與sh不同,它的語法與C語言很相似。它提供了Bourne Shell所不能處理的用戶交互特徵,如命令補全、命令別名、歷史命令替換等。但是,C Shell與BourneShell並不兼容。Korn Shell是AT&T Bell實驗室的David Korn開發的,它集合了C Shell和Bourne Shell的優點,並且與Bourne Shell向下完全兼容。Korn Shell的效率很高,其命令交互界面和編程交互界面都很好。Bourne Again Shell (即bash)是自由軟體基金會(GNU)開發的一個Shell,它是Linux系統中一個默認的Shell。Bash不但與Bourne Shell兼容,還繼承了C Shell、Korn Shell等優點,另外你是感興趣的話可以看下劉遄老師寫的《Linux就該這么學》作為入門的書籍,覺得不錯的話採納下哦~