#!/bin/bash
在寧河等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需求定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營(yíng)銷推廣,外貿(mào)網(wǎng)站制作,寧河網(wǎng)站建設(shè)費(fèi)用合理。
#echo hi
DEBUG=0
case $1 in
想要啟動(dòng)的程序名)
DEBUG=1 ;;
esac
if [[ ?$DEBUG -eq 1 ?]]; then
# 啟動(dòng)命令
./elasitcsearch -d
echo "程序已啟動(dòng)"
exit 10
else
echo 啟動(dòng)命令只能使用.想要啟動(dòng)的程序名)
exit 7
fi
不過(guò)我怎么覺(jué)得好奇怪呢。我沒(méi)寫過(guò)這種東西,我總感覺(jué)那里有問(wèn)題。case 可以自己添加某些進(jìn)程進(jìn)去。這樣子你不需要在程序目錄存放只需要在你的家目錄存放就行。沒(méi)需要添加一個(gè)程序 就在case下添加進(jìn)去就行。代碼都差不多
Linux cp命令主要用于復(fù)制文件或目錄
1.語(yǔ)法
2.參數(shù)說(shuō)明
3.案例
3.1. cp 命令基本用法
3.2 復(fù)制目錄
3.3 復(fù)制軟鏈接文件
3.4. 保留源文件屬性復(fù)制
3.5. "-l" 和 "-s" 選項(xiàng)
4.cat
6.linux快速刪除大量文件
在命令行里顯示文本文件內(nèi)容:
cat:在命令行里顯示文本文件內(nèi)容,可以滾屏的(但是不方便把內(nèi)容輸出到其他文件,所以一般腳本內(nèi)部都用cat,less可以在調(diào)用腳本的時(shí)候用)。
less:在命令行里編輯文本文件。
vi:在圖形界面打開文本文件。
gedit,kate等等:在圖形界面打開任意文件或者url(gnome)。
命令作用
grep、fgrep和egrep命令這組命令以指定模式搜索文件,并通知用戶在什么文件中搜索到與指定的模式匹配的字符串,并打印出所有包含該字符串的文本行,在該文本行的最前面是該行所在的文件名。grep命令一次只能搜索一個(gè)指定的模式;egrep命令檢索擴(kuò)展的正則表達(dá)式(包括表達(dá)式組和可選項(xiàng));fgrep命令檢索固定字符串,它不識(shí)別正則表達(dá)式,是快速搜索命令。
Linux運(yùn)行sql腳本的具體操作步驟如下:
1、使用shell工具登陸到安裝postgresql的服務(wù)器,切換到postgres用戶,postgresql默認(rèn)的操作用戶,命令是:su - postgres,查看當(dāng)前路徑是/var/lib/psql,創(chuàng)建一個(gè)test.sql腳本文件,命令是:vim test.sql。
2、sql腳本內(nèi)容是:create table test (id int not null primary key,name text);insert into test valus(1, 't1');
3、執(zhí)行test.sql腳本,命令是:psql -f test.sql
這里是因?yàn)閜ostgresql安裝本機(jī)上,在第一步中我們切換到了postgres用戶,因此這里默認(rèn)就是postgres用戶來(lái)操作,不用帶上用戶名和密碼。執(zhí)行結(jié)果如下,可以看到有兩個(gè)提示:
create table
insert 0 1
執(zhí)行完成后,我們登入數(shù)據(jù)庫(kù),命令是:psql
4、進(jìn)入psql交互式命令行后,我們執(zhí)行兩個(gè)查看命令:\d
可以看到表test確實(shí)已經(jīng)創(chuàng)建成功,然后執(zhí)行命令:\d test
可以看到表中字段是id和name,和我們創(chuàng)建語(yǔ)句中內(nèi)容一樣,說(shuō)明第一條語(yǔ)句執(zhí)行成功。
5、查看表中數(shù)據(jù),命令是:select * from test;
顯示出來(lái)的值是1,t1,說(shuō)明第二條執(zhí)行語(yǔ)句也執(zhí)行成功,說(shuō)明test.sql腳本執(zhí)行成功。
6、默認(rèn)是postgres用戶,本機(jī)操作是,不需要用戶和密碼,現(xiàn)在我們來(lái)試試操作遠(yuǎn)程linux服務(wù)器上的postgresql,也就是說(shuō)執(zhí)行本地的腳本文件,在遠(yuǎn)程服務(wù)器上創(chuàng)建表。如下面圖中所示,命令是:psql -U test1 -h 192.168.1.194 -f test.sql,輸入對(duì)應(yīng)用戶的密碼。
7、登陸到這個(gè)遠(yuǎn)程服務(wù)器上,命令是:psql -U test -h 192.168.194
執(zhí)行查看命令:\d,\d test
最后查詢數(shù)據(jù)庫(kù):select * from test;結(jié)果和上面都一致。
Shell是一種腳本語(yǔ)言,那么,就必須有解釋器來(lái)執(zhí)行這些腳本,常見(jiàn)的腳本解釋器有:
bash:是Linux標(biāo)準(zhǔn)默認(rèn)的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的縮寫,內(nèi)部命令一共有40個(gè)。
sh: 由Steve Bourne開發(fā),是Bourne Shell的縮寫,sh 是Unix 標(biāo)準(zhǔn)默認(rèn)的shell。
另外還有:ash、 csh、 ksh等。
擴(kuò)展資料:
常見(jiàn)的編程語(yǔ)言分為兩類:一個(gè)是編譯型語(yǔ)言,如:c/c++/java等,它們遠(yuǎn)行前全部一起要經(jīng)過(guò)編譯器的編譯。另一個(gè)解釋型語(yǔ)言,執(zhí)行時(shí),需要使用解釋器一行一行地轉(zhuǎn)換為代碼,如:awk, perl, python與shell等。
Shell 經(jīng)過(guò)了POSIX的標(biāo)準(zhǔn)化,所以它是可以在不同的linux系統(tǒng)上進(jìn)行移植。
關(guān)于注釋的問(wèn)題: 在shell中使用#進(jìn)行注釋,注意,sh里面沒(méi)有多行注釋,只能每一行加一個(gè)#號(hào);
Shell腳本基本知識(shí)
概述:shell其實(shí)是內(nèi)核與用戶之間的一個(gè)接口,
shell腳本
如果有一系列經(jīng)常使用的linux命令,你可以把它們存儲(chǔ)在一個(gè)文件腫。shenll可以讀取這個(gè)文件,并執(zhí)行其中的命令。這樣的文件成為腳本文件。
執(zhí)行shell腳本
要?jiǎng)?chuàng)建一個(gè)shell腳本,你要使用任何編輯器比如vi在文本文件中編寫他。
為了使用bash shell賴執(zhí)行腳本magic,其命令是:bash magic或者./magic
echo命令:
echo “this is an example of the echo command!”
屏幕上就會(huì)回顯“this is an example of the echo command!”
#符號(hào)
用于在shell腳本腫可以包含注解入口
echo “hello”
#this is a comment line. this would not produce any output!
echo “world!”
第二行是一個(gè)注解的例子。它將被shell忽略,而且不產(chǎn)生任何消息
變量:
可以在任何時(shí)間通過(guò)簡(jiǎn)單的賦值來(lái)創(chuàng)建。
語(yǔ)法:
variable name-value
Linux 中的所有變量都被當(dāng)作字符串
引用變量:
$符號(hào)用于引用一個(gè)變量的內(nèi)容
variable1 = ${variable2}
讀入值給變量
在執(zhí)行shell腳本時(shí),shell還允許用戶直接從鍵盤讀入一個(gè)值給變量,還可以使用read命令來(lái)作。
$read fname
本地和全局shell變量
局部變量
當(dāng)引用shell時(shí),只有創(chuàng)建它的shell能夠知道變量的存在
全局變量
稱為子shell
shell中創(chuàng)建的變量局部于創(chuàng)建它的shell,除非使用export命令特別指出是全局的。
環(huán)境變量:
通過(guò)改變這些變量的值,用戶能夠定制此環(huán)境
一些環(huán)境變量的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL
HOME變量
Linux系統(tǒng)中的每個(gè)用戶都有一個(gè)相關(guān)的稱作HOME的目錄
當(dāng)一個(gè)用戶登錄后,進(jìn)入相應(yīng)的HOME的目錄
$ echo $HOME
PATH變量
包含一列用冒號(hào)定界的目錄的路徑名字,便于可執(zhí)行程序的搜索。
PS1變量
PS1(Prompt String 1)變量包含了shell提示符,$符號(hào)
$ PS1 = “HELLO”
HELLO
PS2變量
是為第二個(gè)提示符設(shè)置值的環(huán)境變量
LOGNAME變量
包含用戶的注冊(cè)名字
$echo “${LOGNAME}”
SHLVL 變量
該變量包含當(dāng)前工作的shell level
SHELL變量
環(huán)境變量存儲(chǔ)了用戶缺省的shell
env命令
可用來(lái)查看所有的已移出的環(huán)境變量表和它們各自的值!
命令替換
在單個(gè)命令行中使用多個(gè)命令的另外一種方法(非Pipes)是通過(guò)命令替換
echo “the data is `date`”
expr命令
用于求之算術(shù)表達(dá)式。該命令的輸出被送到標(biāo)準(zhǔn)輸出
$ expr 4 + 5
將在屏幕上顯示9
算術(shù)展開:
你可以在$((…)) 中括一個(gè)表達(dá)式,用下面的命令來(lái)計(jì)算它的值;
$((expression))
example1
編寫一個(gè)shell腳本用于計(jì)算呼叫中心未應(yīng)答的詢問(wèn)的數(shù)量。該腳本應(yīng)該接受一天那所報(bào)告的詢問(wèn)的總數(shù)和應(yīng)答的詢問(wèn)的數(shù)量,以便計(jì)算未應(yīng)答的詢問(wèn)的數(shù)量。
所有未應(yīng)答的詢問(wèn)總數(shù)=所有詢問(wèn)的總數(shù)-應(yīng)答的詢問(wèn)的數(shù)量
!--[if !supportLists]--※ !--[endif]--※※※※※※※※※※※※※※※※※※※※※※※
條件執(zhí)行
test和[]
求值表達(dá)式,并返回true(0)或false()
數(shù)值測(cè)試:
-eq 等于則為真
-ne 不等于則為真
-gt 大于則為真
-ge 大于等于則為真
-lt 小于則為真
-le 小于等于則為真
if構(gòu)造
Linux shell提供了循環(huán)和判定的構(gòu)造,可以在shell腳本中使用
算術(shù)測(cè)試
結(jié)合if構(gòu)造,它可以用于測(cè)試變量的數(shù)字值
串測(cè)試
test命令也可以用于字符串
= 等于則為真
!= 不相等則為真
-z 字符串 長(zhǎng)度為零則為真
-n 字符串 長(zhǎng)度不為零則為真
文件測(cè)試
test命令也可以用于檢查文件的狀態(tài)
-e 文件存在則為真
-r 文件存在并且可讀則為真
-w 文件存在并且可寫則為真
-x 文件存在并且可執(zhí)行則為真
-s 文件存在并且至少有一個(gè)字符則為真
-d 文件存在并且為目錄則為真
-f 文件存在并且為普通文件則為真
-c 文件存在并且為字符型文件則為真
-b 文件存在并且為塊特殊文件則為真
-a并且 -o或者 !非
exit命令
用于終止shell腳本的執(zhí)行并返回到$提示符下
case 。。。esac
shell腳本中使用的這個(gè)構(gòu)造依據(jù)變量的值而執(zhí)行一組特定指令
當(dāng)變量的值和其中的一個(gè)值匹配的時(shí)候,就執(zhí)行寫在該值下的一組命令。
example3
迭代
while構(gòu)造
while 條件
do
命令(s)
done
只有條件為真的時(shí)候,才能執(zhí)行do與done之間的命令
until構(gòu)造
until循環(huán)構(gòu)造的求值模式于while循環(huán)相反
until循環(huán)將繼續(xù)執(zhí)行直到求值的條件為真的時(shí)候
for構(gòu)造
for variable_name in list_of_values
do
…
done
for循環(huán)取一列值作為輸入并對(duì)循環(huán)中每個(gè)值執(zhí)行循環(huán)
break和contineu命令
同其他語(yǔ)言中的用法
example4
控制進(jìn)程的執(zhí)行
請(qǐng)求后臺(tái)處理
用于請(qǐng)求后臺(tái)進(jìn)程的符號(hào)是 ()
$ wc tempfile
[1] 2082
$ vi newfile
檢查后臺(tái)進(jìn)程
ps(進(jìn)程狀態(tài))命令為每個(gè)當(dāng)前的活動(dòng)的每個(gè)進(jìn)程產(chǎn)生一行入口。
終止后臺(tái)進(jìn)程
可用kill,如下所示
kill 278
查看完成一個(gè)命令所花的時(shí)間
你可以使用time命令來(lái)查看一個(gè)命令從開始到結(jié)束所花的時(shí)間
time fine /etc –name “passwd” 2 /dev/null /dev/null表明忽略錯(cuò)誤信息。
管道的介紹
垂直條(|)是管道字符
它只是shell:“|”前面命令的輸出作為“|”之后命令的輸入發(fā)送
ls –l | more
用管道組合命令,功能強(qiáng)大