不會(huì)的,sh 文件是串行運(yùn)行的,執(zhí)行完A 才會(huì)執(zhí)行b,除非在一個(gè)命令后 加
創(chuàng)新互聯(lián)公司長(zhǎng)期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為新興企業(yè)提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站建設(shè),新興網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
編寫腳本文件sum.sh,內(nèi)容如下
#!/bin/bash
i=1
sum=0
while
[
$i
-le
100
]
do
sum=$(($sum+$i))
let
i++
done
echo
$sum
增加sum.sh可執(zhí)行權(quán)限,
執(zhí)行命令
chmod
+x
sum.sh
運(yùn)行腳本
sum.sh
./sum.sh
運(yùn)行結(jié)果:
5050
希望對(duì)你有幫助
1.常用指令
ls ? ? ? ?顯示文件或目錄
-l ? ? ? ? ? 列出文件詳細(xì)信息l(list)
-a ? ? ? ? ?列出當(dāng)前目錄下所有文件及目錄,包括隱藏的a(all)
mkdir ? ? ? ? 創(chuàng)建目錄
-p ? ? ? ? ? 創(chuàng)建目錄,若無父目錄,則創(chuàng)建p(parent)
cd ? ? ? ? ? ? ? 切換目錄
touch ? ? ? ? ?創(chuàng)建空文件
echo ? ? ? ? ? ?創(chuàng)建帶有內(nèi)容的文件。
cat ? ? ? ? ? ? ?查看文件內(nèi)容
cp ? ? ? ? ? ? ? ?拷貝
mv ? ? ? ? ? ? ? 移動(dòng)或重命名
rm ? ? ? ? ? ? ? 刪除文件
-r ? ? ? ? ? ?遞歸刪除,可刪除子目錄及文件
-f ? ? ? ? ? ?強(qiáng)制刪除
find ? ? ? ? ? ? ?在文件系統(tǒng)中搜索某文件
wc ? ? ? ? ? ? ? ?統(tǒng)計(jì)文本中行數(shù)、字?jǐn)?shù)、字符數(shù)
grep ? ? ? ? ? ? 在文本文件中查找某個(gè)字符串
rmdir ? ? ? ? ? 刪除空目錄
tree ? ? ? ? ? ? 樹形結(jié)構(gòu)顯示目錄,需要安裝tree包
pwd ? ? ? ? ? ? ?顯示當(dāng)前目錄
ln ? ? ? ? ? ? ? ? ?創(chuàng)建鏈接文件
more、less ?分頁顯示文本文件內(nèi)容
head、tail ? ?顯示文件頭、尾內(nèi)容
ctrl+alt+F1 ?命令行全屏模式
2.系統(tǒng)管理命令
stat ? ? ? ? ? ? ?顯示指定文件的詳細(xì)信息,比ls更詳細(xì)
who ? ? ? ? ? ? ? 顯示在線登陸用戶
whoami ? ? ? ? ?顯示當(dāng)前操作用戶
hostname ? ? ?顯示主機(jī)名
uname ? ? ? ? ? 顯示系統(tǒng)信息
top ? ? ? ? ? ? ? ?動(dòng)態(tài)顯示當(dāng)前耗費(fèi)資源最多進(jìn)程信息
ps ? ? ? ? ? ? ? ? ?顯示瞬間進(jìn)程狀態(tài) ps -aux
du ? ? ? ? ? ? ? ? ?查看目錄大小 du -h /home帶有單位顯示目錄信息
df ? ? ? ? ? ? ? ? ?查看磁盤大小 df -h 帶有單位顯示磁盤信息
ifconfig ? ? ? ? ?查看網(wǎng)絡(luò)情況
ping ? ? ? ? ? ? ? ?測(cè)試網(wǎng)絡(luò)連通
netstat ? ? ? ? ?顯示網(wǎng)絡(luò)狀態(tài)信息
man ? ? ? ? ? ? ? ?命令不會(huì)用了,找男人? 如:man ls
clear ? ? ? ? ? ? ?清屏
alias ? ? ? ? ? ? ? 對(duì)命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill ? ? ? ? ? ? ? ? 殺死進(jìn)程,可以先用ps 或 top命令查看進(jìn)程的id,然后再用kill命令殺死進(jìn)程。
3.打包壓縮相關(guān)命令
tar:? ? ? ? ? ? 打包壓縮
-c ? ? ? ? ? ? ?歸檔文件
-x ? ? ? ? ? ? ?壓縮文件
-z ? ? ? ? ? ? ?gzip壓縮文件
-j ? ? ? ? ? ? ?bzip2壓縮文件
-v ? ? ? ? ? ? ?顯示壓縮或解壓縮過程 v(view)
-f ? ? ? ? ? ? ?使用檔名
例:
tar -cvf /home/abc.tar /home/abc ? ? ? ? ? ? ?只打包,不壓縮
tar -zcvf /home/abc.tar.gz /home/abc ? ? ? ?打包,并用gzip壓縮
tar -jcvf /home/abc.tar.bz2 /home/abc ? ? ?打包,并用bzip2壓縮
當(dāng)然,如果想解壓縮,就直接替換上面的命令? tar -cvf? / tar -zcvf? / tar -jcvf 中的“c” 換成“x” 就可以了。
3.關(guān)機(jī)/重啟機(jī)器
shutdown
-r ? ? ? ? ? ? 關(guān)機(jī)重啟
-h ? ? ? ? ? ? 關(guān)機(jī)不重啟
now ? ? ? ? ?立刻關(guān)機(jī)
halt ? ? ? ? ? ? ? 關(guān)機(jī)
reboot ? ? ? ? ?重啟
4.Linux管道
將一個(gè)命令的標(biāo)準(zhǔn)輸出作為另一個(gè)命令的標(biāo)準(zhǔn)輸入。也就是把幾個(gè)命令組合起來使用,后一個(gè)命令除以前一個(gè)命令的結(jié)果。
例:grep -r "close" /home/* | more ? ? ? 在home目錄下所有文件中查找,包括close的文件,并分頁輸出。
5.Linux軟件包管理
dpkg?(Debian Package)管理工具,軟件包名以.deb后綴。這種方法適合系統(tǒng)不能聯(lián)網(wǎng)的情況下。
比如安裝tree命令的安裝包,先將tree.deb傳到Linux系統(tǒng)中。再使用如下命令安裝。
sudo dpkg -i tree_1.5.3-1_i386.deb ? ? ? ? 安裝軟件
sudo dpkg -r tree ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 卸載軟件
注:將tree.deb傳到Linux系統(tǒng)中,有多種方式。VMwareTool,使用掛載方式;使用winSCP工具等;
APT(Advanced Packaging Tool)高級(jí)軟件工具。這種方法適合系統(tǒng)能夠連接互聯(lián)網(wǎng)的情況。
依然以tree為例
sudo apt-get install tree ? ? ? ? ? ? ? ? ? ? ? ? 安裝tree
sudo apt-get remove tree ? ? ? ? ? ? ? ? ? ? ? 卸載tree
sudo apt-get update ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 更新軟件
sudo apt-get upgrade? ? ?
6.將.rpm文件轉(zhuǎn)為.deb文件
.rpm為RedHat使用的軟件格式。在Ubuntu下不能直接使用,所以需要轉(zhuǎn)換一下。
sudo alien abc.rpm
7.vim使用
vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。
命令模式下:
:q ? ? ? ? ? ? ? ? ? ? ?退出
:q! ? ? ? ? ? ? ? ? ? ? 強(qiáng)制退出
:wq ? ? ? ? ? ? ? ? ? 保存并退出
:set number ? ? 顯示行號(hào)
:set nonumber ?隱藏行號(hào)
/apache ? ? ? ? ? ?在文檔中查找apache 按n跳到下一個(gè),shift+n上一個(gè)
yyp ? ? ? ? ? ? ? ? ? 復(fù)制光標(biāo)所在行,并粘貼
h(左移一個(gè)字符←)、j(下一行↓)、k(上一行↑)、l(右移一個(gè)字符→)
8.用戶及用戶組管理
/etc/passwd ? ?存儲(chǔ)用戶賬號(hào)
/etc/group ? ? ? 存儲(chǔ)組賬號(hào)
/etc/shadow ? ?存儲(chǔ)用戶賬號(hào)的密碼
/etc/gshadow ?存儲(chǔ)用戶組賬號(hào)的密碼
useradd 用戶名
userdel 用戶名
adduser 用戶名
groupadd 組名
groupdel 組名
passwd root ? ? 給root設(shè)置密碼
/etc/profile ? ? 系統(tǒng)環(huán)境變量
bash_profile ? ? 用戶環(huán)境變量
.bashrc ? ? ? ? ? ? ?用戶環(huán)境變量
su user ? ? ? ? ? ? ?切換用戶,加載配置文件.bashrc
su - user ? ? ? ? ? ?切換用戶,加載配置文件/etc/profile ,加載bash_profile
更改文件的用戶及用戶組
sudo chown [-R] owner[:group] {File|Directory}
例如:還以jdk-7u21-linux-i586.tar.gz為例。屬于用戶hadoop,組hadoop
要想切換此文件所屬的用戶及組??梢允褂妹?。
sudo chown root:root?jdk-7u21-linux-i586.tar.gz
擴(kuò)展資料
Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個(gè)基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
UNIX操作系統(tǒng)(尤尼斯),是一個(gè)強(qiáng)大的多用戶、多任務(wù)操作系統(tǒng),支持多種處理器架構(gòu),按照操作系統(tǒng)的分類,屬于分時(shí)操作系統(tǒng),最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在ATT的貝爾實(shí)驗(yàn)室開發(fā)。目前它的商標(biāo)權(quán)由國(guó)際開放標(biāo)準(zhǔn)組織所擁有,只有符合單一UNIX規(guī)范的UNIX系統(tǒng)才能使用UNIX這個(gè)名稱,否則只能稱為類UNIX(UNIX-like)。
這個(gè)寫成腳本就可以實(shí)現(xiàn)了,你說的: goto是一個(gè)循環(huán),在shell里構(gòu)建循環(huán),例如
(linux執(zhí)行不了windows的程序,內(nèi)核不同,如果你要運(yùn)行exe,需要裝wine,我就用linux的程序來執(zhí)行了)
datetime=$(date +%H%M%S) (這里設(shè)定的是時(shí)間,你可以選擇參數(shù),我是時(shí)分秒)
loop (){
diff qsot.txt xuanpai.txt
}
sh zhushuju.sh
if [ $? -eq 0 ];then
echo “$datetime”
else
return (返回)
fi
sleep 10
sh qsort.sh qsort.txt (執(zhí)行后輸出到qsort.txt)
if [ $? -eq 0 ];then
echo "$datetime"
else
return
fi
sleep 10
sh xuanpai.sh xuanpai.txt
sleep 5
loop
read -p "end"
可能有什么錯(cuò)誤,呵呵。
Shell通常比喻是人與計(jì)算機(jī)硬件的“翻譯官”,Shell作為用戶與Linux系統(tǒng)通訊的媒介,自身也定義了各種變量與參數(shù),并提供了諸如循環(huán)、分支等高級(jí)語言才有的控制結(jié)構(gòu)特性。如何正確的使用這些功能,準(zhǔn)確下達(dá)命令就顯得尤為重要。
Shell的工作形式分為兩種
1.交互式(Interactive):用戶輸入一條命令,Shell解釋并執(zhí)行一條。
2.批處理(Batch):用戶事先編寫一個(gè)Shell腳本(Script),其中包含諸多命令,Shell會(huì)一次執(zhí)行完所有命令。
編譯簡(jiǎn)單的腳本
Shell腳本的編寫要使用到Vim文本編輯器,按照命令的執(zhí)行順序依次編寫,每行寫一條Linux命令。并且一個(gè)完整的Shell腳本則應(yīng)該包括“腳本聲明”、“注釋信息”和“可執(zhí)行語句”。
編寫腳步的規(guī)范:
腳本聲明(#!):告知系統(tǒng)用何種shell來解釋。
注釋信息(#):對(duì)可執(zhí)行語句或程序功能做介紹,可以不寫。
可執(zhí)行語句:執(zhí)行的具體命令。
編寫一個(gè)簡(jiǎn)單的Shell腳本吧,功能是顯示當(dāng)前的工作路徑并列出當(dāng)前目錄下的所有文件與屬性。
12345
[root@linuxprobe ~]# vim Example.sh#!/bin/bash#For Example BY linuxprobe.compwdls -al
執(zhí)行腳本有三種方法:
腳本文件路徑:./Example.sh
sh腳本文件路徑:sh Example.sh
source腳本文件路徑:source Example.sh
學(xué)習(xí)shell腳步入門,推薦你到《linux就該這么學(xué)》這本書上看看,講解的很詳細(xì),同時(shí)還能學(xué)到更得linux教程。
bat是批處理文件,在windows和linux上都可以使用.不過在linux的命令行中不可以直接敲"xxx.bat",系統(tǒng)會(huì)去找所有的命令,發(fā)現(xiàn)沒有叫"xxx.bat"的命令的時(shí)候就會(huì)返回:command not found.
想要調(diào)用bat文件,需要寫絕對(duì)路徑,比如"/home/myDir/xxx.bat",或者是切換到bat文件所在的目錄,然后鍵入:"./xxx.bat".這里的"./"是告訴系統(tǒng)在當(dāng)前目錄下找名為"xxx.bat"的文件執(zhí)行.
需要注意的是:
在bat文件中不可以使用windows特有的命令,比如,"call cmd.exe"之類的;
在執(zhí)行bat文件之前,確保bat文件的權(quán)限是可執(zhí)行的,如果沒改權(quán)限的話,很有可能會(huì)報(bào)錯(cuò)誤:Permission denied.更改權(quán)限的方式請(qǐng)自己查詢"chmod"命令的使用方法.