linux 指令 sh 是什麼意思
linux命令sh是linux中執行shell的命令,是shell的解釋器,shell腳本是linux中殼層與命令列介面,使用者可以在shell腳本輸入命令中執行各種各樣的任務。
#本教學操作環境:linux5.9.8系統、Dell G3電腦。
linux 指令 sh 是什麼意思?
linux sh指令簡述
1. 可能需要的執行方式
linux下執行.sh檔案的方法
.sh檔案就是文字文件,如果要執行,需要使用chmod a x xxx.sh來給予可執行權限。
2. 開頭:#!/bin/sh
shell程式必須以「#!/bin/sh」開始。 shell中#一般表示註解的意思,所以很多時候認為"#!"也是註釋,但其實不是。
"#!/bin/sh"是對shell的聲明,說明你所使用的是哪一種類型的shell及其路徑所在。
#!/bin/是指此腳本使用.bin/sh來執行。
#!是特殊的表示符,後面接著的是解釋此腳本的shell的路徑,如果沒有聲明,則腳本將在預設的shell中執行,預設shell是由使用者所在的系統定義要執行shell腳本,如果腳本被編寫為在Kornshell ksh中運行,而預設運行shell腳本的為C shell csh,則腳本在執行過程中很可能失敗。所以建議大家就把"#!/bin/sh"當成C 語言的main函數一樣,寫shell必須有,以使shell程式更嚴密。
3. 變數
在其他程式語言中必須使用變數。在shell程式設計中,所有變數都由字串組成,且不需要對變數進行宣告。要賦值給一個變數,可以這樣寫:
#!/bin/sh #对变量赋值: a=”hello world”# 现在打印变量a的内容: echo “A is:” echo $a
有時候變數名稱很容易與其他文字混淆,例如:
num=2 echo “this is the $numnd”
這並不會印出」this is the 2nd",而只印出"this is the ",因為shell會去搜尋變數numnd的值,但這個變數是沒有值的。因此,可以使用花括號來告訴shell我們要印的是num變數:
num=2 echo “this is the ${num}nd”
這樣才會列印」this is the 2nd"
4. Shell指令和流程控制
在shell腳本中可以使用以下指令:
Unix指令
雖然在shell腳本中可以使用任意的unix指令,但還是有一些相對較常用的指令。這些命令通常是用來進行文件和文字操作的。
如:
echo "some text" #将文字内容打印在屏幕上 ls #文件列表 cp sourcefile destfile #文件拷贝 mv oldname newname #重命名文件或移动文件 rm file #删除文件 grep 'pattern' file #在文件内搜索字符串,如:grep 'searchstring' file.txt cat file.txt #输出文件内容到标准输出设备(屏幕)上 read var #显示用户输入,并将输入赋值给变量
概念:管道,重定向和backtick(反斜線)
- 管道
|
將一個命令的輸出作為另外一個命令的輸入。
grep "hello" file.txt | wc -l
上述程式碼表示為:在 file.txt 中搜尋包含有 “hello” 的行併計算其行數。在這裡grep指令的輸出作為wc指令的輸入。
要注意的是,管道後面的指令是子指令,不會出現在接下來的指令中(有點像C 在{}
內和{}
外賦值的差異),如下列指令:
#!/bin/shecho 1 2 3 | { read a b c ; echo $a $b $c ; } # 打印结果为: 1 2 3echo $a $b $c # 打印结果为空
重定向
:將指令的結果輸出到文件,而不是標準輸出(螢幕)。
>寫入檔案並覆蓋舊檔案
>>追加到檔案的尾部,保留舊檔案內容。反短橫線“`”:使用反短橫線可以將一個指令的輸出當作另一個指令的一個命令列參數。
find . -mtime -1 -type f -print
上述語句用來找出過去24小時(-mtime -2則表示過去48小時)內修改過的檔案。如果想要將所有查找到的檔案打一個包,則可以使用一下linux腳本:
#!/bin/sh # The ticks are backticks (`) not normal quotes (‘): tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`
#流程控制
##if
if 表達式,如果條件為真則執行
then 後面的部分:
if ….; then …. elif ….; then …. else …. fi #注意是以fi结尾
比較字串、判斷檔案時都存在以及是否可讀等等…
#while
while 迴圈的語法結構為:
# expression 1# while循环:当expresssion成立的时候,执行cmdwhile (expresssion)do cmddone# expression 2,可以直接使用truewhile true(或 :)do cmddone
# 寻找 ${path} 路径下唯一首字母为‘E’的子目录,并 cd 到该目录find ${path}/E* -type d | while read corresp_pathdo cd ${corresp_path}done
測試條件 通常使用
「[ ]」來表示測試條件。注意這裡的空格很重要,要確保方括號裡的空格。
[ -f "somefile" ] #判断文件是否存在 [ -d "testResults/" ] #判断目录testResults/是否存在 [ -x "/bin/ls" ] #判断/bin/ls文件是否存在并有可执行权限 [ -n "$var" ] #判断$var变量是否有值 [ "$a" = "$b" ] #判断$a和$b是否相等
快速運算元 熟悉C語言可能會喜歡表達式:
[ -f "/etc/shadow" ] && echo “This computer uses shadow passwors”
「&&」就是一個快速操作符,如果左邊的表達式為真則執行右邊的語句。當然也可以將上述表達式認為是邏輯運算中的與運算。
同樣或運算「||」在shell程式設計中也是可用的:
#!/bin/sh mailfolder=/var/spool/mail/james [ -r "$mailfolder" ]‘ ‘{ echo “Can not read $mailfolder” ; exit 1; } #感觉这里的‘’应该是|| echo “$mailfolder has mail from:” grep “^From ” $mailfolder
该脚本首先判断mailfolder是否可读。如果可读则打印该文件中的”From” 一行。如果不可读则或操作生效,打印错误信息后脚本退出。这里有个问题,那就是我们必须有两个命令:
◆打印错误信息
◆退出程序
我们使用花括号以匿名函数的形式将两个命令放到一起作为一个命令使用。一般函数将在下文提及。
不用‘与’和‘或’操作符,我们也可以用if表达式作任何事情,但是使用与或操作符会更便利很多。
推荐学习:《linux视频教程》
以上是linux 指令 sh 是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

VS Code 一步/下一步快捷鍵的使用方法:一步(向後):Windows/Linux:Ctrl ←;macOS:Cmd ←下一步(向前):Windows/Linux:Ctrl →;macOS:Cmd →

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

在 Sublime 中運行代碼的方法有六種:通過熱鍵、菜單、構建系統、命令行、設置默認構建系統和自定義構建命令,並可通過右鍵單擊項目/文件運行單個文件/項目,構建系統可用性取決於 Sublime Text 的安裝情況。

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

要安裝 Laravel,需依序進行以下步驟:安裝 Composer(適用於 macOS/Linux 和 Windows)安裝 Laravel 安裝器創建新項目啟動服務訪問應用程序(網址:http://127.0.0.1:8000)設置數據庫連接(如果需要)
