在Linux下,如果你需要執行shell腳本,那麼應該使用那個命令呢?下面由我為大家整理了linux shell腳本執行命令的相關知識,希望對大家有幫助!
linux shell腳本執行
linux shell腳本執行方法一: 切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:
cd /data/shell
./hello.sh
./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。
linux shell腳本執行方法二: 以絕對路徑的方式去執行bash shell腳本:
/data/shell/hello.sh
linux shell腳本執行方法三: 直接使用bash 或sh 來執行bash shell腳本:
cd /data/shell
bash hello.sh
或
cd /data/shell
sh hello.sh
注意,若是以方法三的方式來執行,那麼,可以不必事先設定shell的執行許可權,甚至都不用寫shell文件中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數傳給sh(bash)命令來執行的。這時不是hello.sh自己來執行,而是被人家調用執行,所以不要執行許可權。那麼不用指定bash路徑自然也好理解了啊。
linux shell腳本執行方法四: 在當前的shell環境中執行bash shell腳本:
cd /data/shell
. hello.sh
或
cd /data/shell
source hello.sh
前三種方法執行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的。
㈡ linux下shell腳本命令
Shell腳本基本知識
概述:shell其實是內核與用戶之間的一個介面,
shell腳本
如果有一系列經常使用的linux命令,你可以把它們存儲在一個文件腫。shenll可以讀取這個文件,並執行其中的命令。這樣的文件成為腳本文件。
執行shell腳本
要創建一個shell腳本,你要使用任何編輯器比如vi在文本文件中編寫他。
為了使用bash shell賴執行腳本magic,其命令是:bash magic或者./magic
echo命令:
echo 「this is an example of the echo command!」
屏幕上就會回顯「this is an example of the echo command!」
#符號
用於在shell腳本腫可以包含註解入口
echo 「hello」
#this is a comment line. this would not proce any output!
echo 「world!」
第二行是一個註解的例子。它將被shell忽略,而且不產生任何消息
變數:
可以在任何時間通過簡單的賦值來創建。
語法:
<variable name>-<value>
Linux 中的所有變數都被當作字元串
引用變數:
$符號用於引用一個變數的內容
variable1 = ${variable2}
讀入值給變數
在執行shell腳本時,shell還允許用戶直接從鍵盤讀入一個值給變數,還可以使用read命令來作。
$read fname
本地和全局shell變數
局部變數
當引用shell時,只有創建它的shell能夠知道變數的存在
全局變數
稱為子shell
shell中創建的變數局部於創建它的shell,除非使用export命令特別指出是全局的。
環境變數:
通過改變這些變數的值,用戶能夠定製此環境
一些環境變數的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL
HOME變數
Linux系統中的每個用戶都有一個相關的稱作HOME的目錄
當一個用戶登錄後,進入相應的HOME的目錄
$ echo $HOME
PATH變數
包含一列用冒號定界的目錄的路徑名字,便於可執行程序的搜索。
PS1變數
PS1(Prompt String 1)變數包含了shell提示符,$符號
$ PS1 = 「HELLO>」
HELLO>
PS2變數
是為第二個提示符設置值的環境變數
LOGNAME變數
包含用戶的注冊名字
$echo 「${LOGNAME}」
SHLVL 變數
該變數包含當前工作的shell level
SHELL變數
環境變數存儲了用戶預設的shell
env命令
可用來查看所有的已移出的環境變數表和它們各自的值!
命令替換
在單個命令行中使用多個命令的另外一種方法(非Pipes)是通過命令替換
echo 「the data is `date`」
expr命令
用於求之算術表達式。該命令的輸出被送到標准輸出
$ expr 4 + 5
將在屏幕上顯示9
算術展開:
你可以在$((…)) 中括一個表達式,用下面的命令來計算它的值;
$((expression))
example1
編寫一個shell腳本用於計算呼叫中心未應答的詢問的數量。該腳本應該接受一天那所報告的詢問的總數和應答的詢問的數量,以便計算未應答的詢問的數量。
所有未應答的詢問總數=所有詢問的總數-應答的詢問的數量
<!--[if !supportLists]-->※ <!--[endif]-->※※※※※※※※※※※※※※※※※※※※※※※
條件執行
test和[]
求值表達式,並返回true(0)或false()
數值測試:
-eq 等於則為真
-ne 不等於則為真
-gt 大於則為真
-ge 大於等於則為真
-lt 小於則為真
-le 小於等於則為真
if構造
Linux shell提供了循環和判定的構造,可以在shell腳本中使用
算術測試
結合if構造,它可以用於測試變數的數字值
串測試
test命令也可以用於字元串
= 等於則為真
!= 不相等則為真
-z 字元串 長度為零則為真
-n 字元串 長度不為零則為真
文件測試
test命令也可以用於檢查文件的狀態
-e 文件存在則為真
-r 文件存在並且可讀則為真
-w 文件存在並且可寫則為真
-x 文件存在並且可執行則為真
-s 文件存在並且至少有一個字元則為真
-d 文件存在並且為目錄則為真
-f 文件存在並且為普通文件則為真
-c 文件存在並且為字元型文件則為真
-b 文件存在並且為塊特殊文件則為真
-a並且 -o或者 !非
exit命令
用於終止shell腳本的執行並返回到$提示符下
case 。。。esac
shell腳本中使用的這個構造依據變數的值而執行一組特定指令
當變數的值和其中的一個值匹配的時候,就執行寫在該值下的一組命令。
example3
迭代
while構造
while <條件>
do
<命令(s)>
done
只有條件為真的時候,才能執行do與done之間的命令
until構造
until循環構造的求值模式於while循環相反
until循環將繼續執行直到求值的條件為真的時候
for構造
for variable_name in <list_of_values>
do
…
done
for循環取一列值作為輸入並對循環中每個值執行循環
break和contineu命令
同其他語言中的用法
example4
控制進程的執行
請求後台處理
用於請求後台進程的符號是 (&)
$ wc tempfile &
[1] 2082
$ vi newfile
檢查後台進程
ps(進程狀態)命令為每個當前的活動的每個進程產生一行入口。
終止後台進程
可用kill,如下所示
kill 278
查看完成一個命令所花的時間
你可以使用time命令來查看一個命令從開始到結束所花的時間
time fine /etc –name 「passwd」 2> /dev/null /dev/null表明忽略錯誤信息。
管道的介紹
垂直條(|)是管道字元
它只是shell:「|」前面命令的輸出作為「|」之後命令的輸入發送
ls –l | more
用管道組合命令,功能強大
㈢ 運行linux腳本,遇到要按回車鍵,怎麼讓它自動應答,繼續運行腳本
1、首先,連接相應linux主機,進入到linux命令行狀態下,等待輸入shell指令。
㈣ 如何通過Linux命令行使用和運行php腳本
1. 在安裝完PHP和Apache2後,我們需要安裝PHP命令行解釋器。
復制代碼 代碼如下:
# apt-get install php5-cli
[Debian 及類似系統]# yum install php-cli
[CentOS 及類似系統]
接下來我們通常要做的是,在 /var/www/html (這是 Apache2 在大多數發行版中的工作目錄)這個位置創建一個內容為 <?php phpinfo(); ?> ,名為 infophp.php 的文件來測試(PHP是否安裝正確),執行以下命令即可。
復制代碼 代碼如下:
# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
然後,將瀏覽器訪問 http://127.0.0.1/infophp.php ,這將會在網路瀏覽器中打開該文件。
檢查PHP信息
不需要任何瀏覽器,在Linux終端中也可以獲得相同的結果。在Linux命令行中執行 /var/www/html/infophp.php ,如:
復制代碼 代碼如下:
# php -f /var/www/html/infophp.php
從命令行檢查PHP信息
由於輸出結果太大,我們可以通過管道將上述輸出結果輸送給 less 命令,這樣就可以一次輸出一屏了,命令如下:
復制代碼 代碼如下:
# php -f /var/www/html/infophp.php | less
檢查所有PHP信息
這里,『-f『選項解析並執行命令後跟隨的文件。
2. 我們可以直接在Linux命令行使用 phpinfo() 這個十分有價值的調試工具而不需要從文件來調用,只需執行以下命令:
復制代碼 代碼如下:
# php -r 'phpinfo();'
PHP調試工具
這里,『-r『 選項會讓PHP代碼在Linux終端中不帶 < 和 > 標記直接執行。
3. 以交互模式運行PHP並做一些數學運算。這里,『-a『 選項用於以交互模式運行PHP。
復制代碼 代碼如下:
# php -aInteractive shellphp > echo 2+3;5php > echo 9-6;3php >
echo 5*4;20php > echo 12/3;4php > echo 12/5;2.4php > echo
2+3-1;4php > echo 2+3-1*3;2php > exit
輸入 『exit『 或者按下 『ctrl+c『 來關閉PHP交互模式。
啟用PHP交互模式
4. 你可以僅僅將PHP腳本作為shell腳本來運行。首先,創建在你當前工作目錄中創建一個PHP樣例腳本。
復制代碼 代碼如下:
# echo -e '#!/usr/bin/php\n<?php phpinfo(); ?>' > phpscript.php
注意,我們在該PHP腳本的第一行使用 #!/usr/bin/php ,就像在shell腳本中那樣( /bin/bash )。第一行的 #!/usr/bin/php 告訴Linux命令行用 PHP 解釋器來解析該腳本文件。
其次,讓該腳本可執行:
復制代碼 代碼如下:
# chmod 755 phpscript.php
接著來運行它,
復制代碼 代碼如下:
# ./phpscript.php
5. 你可以完全靠自己通過交互shell來創建簡單函數,這你一定會被驚到了。下面是循序漸進的指南。
開啟PHP交互模式。
復制代碼 代碼如下:
# php -a
創建一個函數,將它命名為 addition 。同時,聲明兩個變數 $a 和 $b 。
復制代碼 代碼如下:
php > function addition ($a, $b)
使用花括弧來在其間為該函數定義規則。
復制代碼 代碼如下:
php > {
定義規則。這里,該規則講的是添加這兩個變數。
復制代碼 代碼如下:
php { echo $a + $b;
所有規則定義完畢,通過閉合花括弧來封裝規則。
復制代碼 代碼如下:
php {}
測試函數,添加數字4和3,命令如下:
復制代碼 代碼如下:
php > var_mp (addition(4,3));
樣例輸出
復制代碼 代碼如下:
7NULL
你可以運行以下代碼來執行該函數,你可以測試不同的值,你想來多少次都行。將里頭的 a 和 b 替換成你自己的值。
復制代碼 代碼如下:
php > var_mp (addition(a,b));
php > var_mp (addition(9,3.3));
樣例輸出
復制代碼 代碼如下:
12.3NULL
創建PHP函數
你可以一直運行該函數,直至退出交互模式(ctrl+z)。同時,你也應該注意到了,上面輸出結果中返回的數據類型為 NULL。這個問題可以通過要求 php 交互 shell用 return 代替 echo 返回結果來修復。
只需要在上面的函數的中 『echo『 聲明用 『return『 來替換
替換
復制代碼 代碼如下:
php { echo $a + $b;
為
復制代碼 代碼如下:
php { return $a + $b;
剩下的東西和原理仍然一樣。
這里是一個樣例,在該樣例的輸出結果中返回了正確的數據類型。
PHP函數
永遠都記住,用戶定義的函數不會從一個shell會話保留到下一個shell會話,因此,一旦你退出交互shell,它就會丟失了。
㈤ Linux 命令 & shell 腳本之01(cp & scp命令)
Linux cp命令主要用於復制文件或目錄
1.語法
2.參數說明
3.案例
3.1. cp 命令基本用法
3.2 復制目錄
3.3 復制軟鏈接文件
3.4. 保留源文件屬性復制
3.5. "-l" 和 "-s" 選項
4.cat
6.linux快速刪除大量文件
㈥ 如何在 Linux 啟動時自動執行命令或腳本
Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。有用戶想要在Linux啟動時候自動執行命令腳本,應該怎麼設置呢?這篇文章主要介紹了詳解如何在 Linux 啟動時自動執行命令或腳本,主要有兩種方式,具有一定的參考價值,感興趣的小夥伴們可以參考一下。
方法步驟
在啟動時執行 Linux 腳本
有兩種傳統的方法可以實現在啟動時執行命令或腳本:
方法 #1 - 使用 cron 任務
除了常用格式(分 / 時 / 日 / 月 / 周)外,cron 調度器還支持 @reboot 指令。這個指令後面的參數是腳本(啟動時要執行的那個腳本)的絕對路徑。
然而,這種方法需要注意兩點:
a) cron 守護進程必須處於運行狀態(通常情況下都會運行),同時
b) 腳本或 crontab 文件必須包含需要的環境變數(如果有的話,參考 StackOverflow 獲取更多詳細內容)。
方法 #2 - 使用 /etc/rc.d/rc.local
這個方法對於 systemd-based 發行版 Linux 同樣有效。不過,使用這個方法,需要授予 /etc/rc.d/rc.local 文件執行許可權:
# chmod +x /etc/rc.d/rc.local
然後在這個文件底部添加腳本。
下圖說明如何分別使用 cron 任務和 rc.local 運行兩個示例腳本(/home/gacanepa/script1.sh 和 /home/gacanepa/script2.sh)。
script1.sh:
#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt
script2.sh:
#!/bin/bash
SITE="Tecmint.com"
DIR=/home/gacanepa
echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt
*啟動時執行 Linux 腳本 *
記住,一定要提前給兩個示例腳本授予執行許可權:
$ chmod +x /home/gacanepa/script1.sh
$ chmod +x /home/gacanepa/script2.sh
在登錄或注銷時執行 Linux 腳本
要在登錄或注銷時執行腳本,分別需要使用 ~.bash_profile 和 ~.bash_logout 文件。多數情況下,後者需要手動創建。在每個文件的底部,添加調用腳本代碼,如前面例中所示,就可以實現這個功能。
補充:Linux基本命令
1.ls命令:
格式::ls [選項] [目錄或文件]
功能:對於目錄,列出該目錄下的所有子目錄與文件;對於文件,列出文件名以及其他信息。
常用選項:
-a :列出目錄下的所有文件,包括以 . 開頭的隱含文件。
-d :將目錄像文件一樣顯示,而不是顯示其他文件。
-i :輸出文件的i節點的索引信息。
-k :以k位元組的形式表示文件的大小。
-l :列出文件的詳細信息。
-n :用數字的UID,GID代替名稱。
-F : 在每個文件名後面附上一個字元以說明該文件的類型,“*”表示可執行的普通文 件;“/”表示目錄;“@”表示符號鏈接;“l”表示FIFOS;“=”表示套接字。
2.cd命令
格式:cd [目錄名稱]
常用選項:
cd .. 返回上一級目錄。
cd ../.. 將當前目錄向上移動兩級。
cd - 返回最近訪問目錄。
3.pwd命令
格式: pwd
功能:顯示出當前工作目錄的絕對路徑。
相關閱讀:Linux主要特性
完全兼容POSIX1.0標准
這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。
多用戶、多任務
Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。
良好的界面
Linux同時具有字元界面和圖形界面。在字元界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,用戶可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。
支持多種平台
㈦ linux 中如何執行腳本
ash shell 腳本的方法有多種,現在作個小結。假設我們編寫好的shell腳本的文件名為hello.sh,文件位置在/data/shell目錄中並已有執行許可權。
方法一:切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:
cd /data/shell
./hello.sh
./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。
方法二:以絕對路徑的方式去執行bash shell腳本:
/data/shell/hello.sh
方法三:直接使用bash 或sh 來執行bash shell腳本:
cd /data/shell
bash hello.sh
或
cd /data/shell
sh hello.sh
注意,若是以方法三的方式來執行,那麼,可以不必事先設定shell的執行許可權,甚至都不用寫shell文件中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數傳給sh(bash)命令來執行的。這時不是hello.sh自己來執行,而是被人家調用執行,所以不要執行許可權。那麼不用指定bash路徑自然也好理解了啊,呵呵……。
方法四:在當前的shell環境中執行bash shell腳本:
cd /data/shell
. hello.sh
或
cd /data/shell
source hello.sh
前三種方法執行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的。
㈧ 如何通過Linux命令行使用和運行PHP腳本
在 Linux 命令行中運行 PHP 代碼
PHP的語法和C、Java以及帶有一些PHP特性的Perl變成語言中的語法十分相似,它當下大約正被2.6億個網站所使用,當前最新的穩定版本是PHP版本5.6.10。
PHP是HTML的嵌入腳本,它便於開發人員快速寫出動態生成的頁面。PHP主要用於伺服器端(而Javascript則用於客戶端)以通過HTTP生成動態網頁,然而,當你知道可以在Linux終端中不需要網頁瀏覽器來執行PHP時,你或許會大為驚訝。
本文將闡述PHP腳本語言的命令行方面。
1. 在安裝完PHP和Apache2後,我們需要安裝PHP命令行解釋器。
復制代碼 代碼如下:
# apt-get install php5-cli
[Debian 及類似系統]# yum install php-cli
[CentOS 及類似系統]
接下來我們通常要做的是,在 /var/www/html (這是 Apache2 在大多數發行版中的工作目錄)這個位置創建一個內容為 <?php phpinfo(); ?> ,名為 infophp.php 的文件來測試(PHP是否安裝正確),執行以下命令即可。
復制代碼 代碼如下:
# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php
然後,將瀏覽器訪問 http://127.0.0.1/infophp.php ,這將會在網路瀏覽器中打開該文件。
檢查PHP信息
不需要任何瀏覽器,在Linux終端中也可以獲得相同的結果。在Linux命令行中執行 /var/www/html/infophp.php ,如:
復制代碼 代碼如下:
# php -f /var/www/html/infophp.php
從命令行檢查PHP信息
由於輸出結果太大,我們可以通過管道將上述輸出結果輸送給 less 命令,這樣就可以一次輸出一屏了,命令如下:
復制代碼 代碼如下:
# php -f /var/www/html/infophp.php | less
檢查所有PHP信息
這里,『-f『選項解析並執行命令後跟隨的文件。
2. 我們可以直接在Linux命令行使用 phpinfo() 這個十分有價值的調試工具而不需要從文件來調用,只需執行以下命令:
復制代碼 代碼如下:
# php -r 'phpinfo();'
PHP調試工具
這里,『-r『 選項會讓PHP代碼在Linux終端中不帶 < 和 > 標記直接執行。
3. 以交互模式運行PHP並做一些數學運算。這里,『-a『 選項用於以交互模式運行PHP。
復制代碼 代碼如下:
# php -aInteractive shellphp > echo 2+3;5php > echo 9-6;3php >
echo 5*4;20php > echo 12/3;4php > echo 12/5;2.4php > echo
2+3-1;4php > echo 2+3-1*3;2php > exit
輸入 『exit『 或者按下 『ctrl+c『 來關閉PHP交互模式。
啟用PHP交互模式
4. 你可以僅僅將PHP腳本作為shell腳本來運行。首先,創建在你當前工作目錄中創建一個PHP樣例腳本。
復制代碼 代碼如下:
# echo -e '#!/usr/bin/php\n<?php phpinfo(); ?>' > phpscript.php
注意,我們在該PHP腳本的第一行使用 #!/usr/bin/php ,就像在shell腳本中那樣( /bin/bash )。第一行的 #!/usr/bin/php 告訴Linux命令行用 PHP 解釋器來解析該腳本文件。
其次,讓該腳本可執行:
復制代碼 代碼如下:
# chmod 755 phpscript.php
接著來運行它,
復制代碼 代碼如下:
# ./phpscript.php
5. 你可以完全靠自己通過交互shell來創建簡單函數,這你一定會被驚到了。下面是循序漸進的指南。
開啟PHP交互模式。
復制代碼 代碼如下:
# php -a
創建一個函數,將它命名為 addition 。同時,聲明兩個變數 $a 和 $b 。
復制代碼 代碼如下:
php > function addition ($a, $b)
使用花括弧來在其間為該函數定義規則。
復制代碼 代碼如下:
php > {
定義規則。這里,該規則講的是添加這兩個變數。
復制代碼 代碼如下:
php { echo $a + $b;
所有規則定義完畢,通過閉合花括弧來封裝規則。
復制代碼 代碼如下:
php {}
測試函數,添加數字4和3,命令如下:
復制代碼 代碼如下:
php > var_mp (addition(4,3));
樣例輸出
復制代碼 代碼如下:
7NULL
你可以運行以下代碼來執行該函數,你可以測試不同的值,你想來多少次都行。將里頭的 a 和 b 替換成你自己的值。
復制代碼 代碼如下:
php > var_mp (addition(a,b));
php > var_mp (addition(9,3.3));
樣例輸出
復制代碼 代碼如下:
12.3NULL
創建PHP函數
你可以一直運行該函數,直至退出交互模式(ctrl+z)。同時,你也應該注意到了,上面輸出結果中返回的數據類型為 NULL。這個問題可以通過要求 php 交互 shell用 return 代替 echo 返回結果來修復。
只需要在上面的函數的中 『echo『 聲明用 『return『 來替換
替換
復制代碼 代碼如下:
php { echo $a + $b;
為
復制代碼 代碼如下:
php { return $a + $b;
剩下的東西和原理仍然一樣。
這里是一個樣例,在該樣例的輸出結果中返回了正確的數據類型。
PHP函數
永遠都記住,用戶定義的函數不會從一個shell會話保留到下一個shell會話,因此,一旦你退出交互shell,它就會丟失了。