導航:首頁 > 程序命令 > linux命令腳本

linux命令腳本

發布時間:2022-11-25 04:09:06

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腳本中執行命令

#!/bin/bash

#echo hi

DEBUG=0

case $1 in

想要啟動的程序名)

DEBUG=1 ;;

esac

if [[ $DEBUG -eq 1 ]]; then

# 啟動命令

./elasitcsearch -d

echo "程序已啟動"

exit 10

else

echo 啟動命令只能使用.想要啟動的程序名)

exit 7

fi

不過我怎麼覺得好奇怪呢。我沒寫過這種東西,我總感覺那裡有問題。case 可以自己添加某些進程進去。這樣子你不需要在程序目錄存放只需要在你的家目錄存放就行。沒需要添加一個程序 就在case下添加進去就行。代碼都差不多


③ linux中的命令在shell腳本中怎麼寫

執行「nano function.sh」命令,創建新的shell腳本文件,名字為「function.sh」。

編輯新創建的shell腳本文件「function.sh"。函數必須先定義後使用。

shell腳本的內容如下:
#!/bin/bash
add(){

sum_1=$1;
sum_2=$2;
sum=`expr $sum_1 + $sum_2`;
echo "the sum is ${sum}";
}

add $1 $2

4
給新創建的function.sh賦可執行許可權,命令為「chmod 755 function.sh」。

5
使用「./function.sh 1 2」調用腳本,並給腳本傳遞兩個數字。

6
執行命令的結果為「the sum is 3」。

④ 如何在 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 中如何執行腳本

首先腳本需要有執行許可權
chmod u+x file.sh
執行腳本有三種方法:
1. ./file.sh
特點:開啟bash子進程來執行,也就是開啟額外的進程來進行,不影響原進程的變數、配置等
2. bash file.sh
特點:和./file.sh相同
3. source file.sh 或者 . file.sh
特點:在原bash進程中執行腳本。
第三種方法主要用於在腳本中切換用戶su、切換目錄cd等命令。
source 和 . 命令是相同的。
你可以搜索 source

補充,如何查看腳本運行是否開啟了bash子進程
1.
vim
file.sh
2.
寫入
#!/bin/bash
#echo
$$命令會輸出bash進程id
echo
$$
3.
保存並賦予可執行許可權chmod
u+x
file.sh
4.
在你的shell中輸入,echo
$$
屏幕輸出4176
5.
./file.sh
屏幕輸出3600
6.
bash
file.sh
屏幕輸出3984
7.
source
file.sh
屏幕輸出4176

你直接在shell中輸出的一樣,說明是在同一個bash進程

⑥ Linux 命令 & shell 腳本之06(for、while、until 命令)

1.1 讀取數組中的值

1.2 讀取字典中的值

6.bash中C語言風格的for循環

10.2 跳出內部循環

10.3 跳出外部循環

⑦ 如何執行linux下的腳本


linux
下執行
php
腳本時通常是可以使用以下命令:
#/usr/local/php/bin/php test.php為簡化輸入可把此php執行程序

到系統命令目錄下:
#cp /usr/local/php/bin/php /usr/sbin/驗證:輸入以下命令,如正確獲取
php
版本,說明操作成功。
#php -v這樣,以後再執行php腳本時可直接採用以下輸入方式即可。
#php a.php

⑧ Linux集群命令分發執行腳本

    如果沒有運維人員或運維軟體,但是又面臨在一個集群中每台機器都執行一個命令時,總不能真的登錄每一台吧。那這里就起一個簡單的命令分發執行腳本。

0、確保腳本所在的機器能夠免密登錄到集群其他機器

    SSH免密登錄配置

1、將集群的IP都寫入一個文件中

2、編寫命令分發腳本

如果機器數量少,可以替換第三行語句為

如果機器IP配置的映射名有規律,也可以替換第三行語句為

同時後面的 $i 替換為 hadoop$i 

3、測試

⑨ 如何查看linux外部命令腳本

您好,以deepin linux為例,查看腳本是否運行,需要在系統監視器中查看。
具體的操作步驟和方法如下:
1、首先,單擊deepin功能選項中的啟動器,
2、其次,完成上述步驟後,單擊啟動器中的「系統管理」選項,
3、接著,完成上述步驟後,單擊「系統管理」中的「系統監視器」圖標,
4、最後,完成上述步驟後,就可以在「系統監視器」中檢查運行狀態,這樣,問題就解決了。

⑩ 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命令腳本相關的資料

熱點內容
簡訊刪除助手文件夾 瀏覽:686
java辦公自動化 瀏覽:340
php中超鏈接 瀏覽:253
linux默認路由設置 瀏覽:36
linux如何掛載iso 瀏覽:432
vs程序換文件夾後不能編譯 瀏覽:557
安卓源碼編譯輸入腳本沒反應 瀏覽:47
phpmysql自增 瀏覽:167
把ppt保存為pdf 瀏覽:533
汽車密封件加密配件 瀏覽:887
黑馬程序員15天基礎班 瀏覽:560
java調整格式 瀏覽:521
香港雲伺服器租用價 瀏覽:78
linuxsublime3 瀏覽:560
imac混合硬碟命令 瀏覽:277
沈陽用什麼app租房車 瀏覽:857
00後高中生都用什麼app 瀏覽:238
戴爾塔式伺服器怎麼打開獨立顯卡 瀏覽:807
醫療程序員招聘 瀏覽:598
住宿app可砍價是什麼意思 瀏覽:133