沈超:
微博:weibo.com/lampsc
一 shell簡介
1概念
命令解釋器
2常見shell
bash linux標(biāo)準(zhǔn)shell
附:她保存在/etc/bash里面,是一個二進(jìn)制可執(zhí)行文件,所以不能直接:
vim/bin/bash會是亂碼
sh早期shell,較簡單
csh(UNIX默認(rèn)的Shell?。? ksh tcsh unix shell
附:他們的大部分是相同的,但是也會有所區(qū)別,比如配置文件的保存位置
vi /etc/shells linux支持的shell
直接輸入csh并不報錯,因為他已經(jīng)從bash切換到了csh
(返回exit)
3 shell腳本
附:創(chuàng)建文件夾/文件目錄:mkdirsh
Linxu并不區(qū)分?jǐn)U展名,這點與Windows不同!
#!/bin/bash
例1:打印時間
#!/bin/bash
echo"hello world!"
腳本執(zhí)行方式:
1)賦予執(zhí)行權(quán)限(慣用法)
如:chmod755 hello.sh
路徑執(zhí)行 /root/shell/hello.sh#絕對路徑
./hello.sh #相對路徑
2)不賦予執(zhí)行權(quán)限
bash腳本名
如:bashecho.sh
4 bash常見功能
1)歷史命令
默認(rèn)保存1000條歷史命令:
vi /etc/profile修改環(huán)境變量配置文件,要生效,必須注銷
HISTSIZE=1000修改默認(rèn)歷史命令條數(shù)
history查詢系統(tǒng)歷史命令
歷史命令保存文件
~/.bash_history
history -w把內(nèi)存中命令歷史,保存入文件
history -c清空所有的歷史命令
重復(fù)歷史命令
!n重復(fù)第n條命令
!str重復(fù)最后一個以str開頭的命令
上箭頭調(diào)用上面的命令
2)別名
附:Linux默認(rèn)使用ls之后會以藍(lán)色顯示文件夾
但是也可以使用:ls-- color=never來取消顯示顏色
alias查看系統(tǒng)中生效的別名
附:
alias ls='ls --color=never'手工設(shè)定別名,臨時生效:相當(dāng)與個人操作習(xí)慣
aliasls='ls –color=tty' #改回來了
vi ~/.bashrc寫入別名,永久生效#第二個環(huán)境變量配置文件
5輸入輸出重定向
標(biāo)準(zhǔn)輸入 /dev/stdin 0鍵盤
標(biāo)準(zhǔn)輸出 /dev/stdout 1顯示器
標(biāo)準(zhǔn)錯誤輸出 /dev/stderr 2顯示器
#設(shè)備文件名 #文件描述符 #默認(rèn)設(shè)備
1)輸出重定向
把應(yīng)該輸出到屏幕的輸出,重定向到文件。
>覆蓋
>>追加
ls > aa覆蓋到aa
ls >> aa追加到aa
ls gdlslga 2>>aa錯誤信息輸出到aa強(qiáng)調(diào):錯誤輸出,不能有空格
ls &>aa錯誤和正確都輸入到aa
掌握(查看系統(tǒng)版本:uname -r)
ls >> aa 2>>bb正確信息輸入aa,錯誤信息輸入bb
ls >> aa 2>&1錯誤和正確都輸入到aa,可以追加
2>&1把標(biāo)準(zhǔn)錯誤重定向到標(biāo)準(zhǔn)正確輸出
6多命令順序執(zhí)行
1)命令1; 命令2;命令3命令123順序執(zhí)行。之間沒有任何關(guān)系如:cd;ls ;date #date用于打印當(dāng)前系統(tǒng)時間
2)命令1 &&命令2命令1正確執(zhí)行后,命令2才會執(zhí)行
3)命令1 ||命令2命令1執(zhí)行不正確,命令2才會執(zhí)行,也就是說:如果第一個命令正確執(zhí)行,那么第二個命令就不會執(zhí)行了!
類test測試:
a)ls && echo "Yes" || echo "No"
b)ls skdjfkdj && echo "Yes" || echo "No"
lsaa && echo "cunzai" || echo "bu cunzai!"執(zhí)行l(wèi)s aa,判斷如果正確,輸出“存在”。如果不存在,輸出“不存在”
7管道符:兩個命令之間有聯(lián)系,
命令1 |命令2命令1的執(zhí)行結(jié)果,作為命令2的執(zhí)行條件
注意:第一條命令一定得有輸出
netstat-tlun | grep 80查詢監(jiān)聽的端口號,并查看80端口是否啟動。
附:
netstat-tlun列出監(jiān)聽了多少個端口;
grep提取命令,如grep80 #提取包含有80的行
80是Apache的端口
ls -l /etc/ | more分屏顯示ls內(nèi)容
ls-l /etc/ | grep vim
附:more分屏顯示文件內(nèi)容
二變量:Linux將所有的變量都識別程字符串型#應(yīng)該是Shell吧?Idon‘t know!
設(shè)置變量的目的:像程序腳本中傳值。
1分類
本地變量
環(huán)境變量
位置參數(shù)變量
預(yù)定義變量
2本地變量
1)聲明變量名=變量值注意:=號左右不能有空格
aa=123
2)調(diào)用
echo$變量名
3)查看變量
set查看所有變量,包括環(huán)境變量和本地變量
4)刪除
unset變量名
3變量設(shè)定規(guī)則
1)變量以等號連接值,等號不能有空格
2)變量名由數(shù)字和字母和下劃線組成,不能以數(shù)字開頭
3)變量值中有空格,用引號括起來如:aa=”helloworld” #其中不能有符號?。?!
4)雙引號內(nèi),有特殊字符。如$
5)單引號中特殊字符無含義
6)在變量值中,可以使用\轉(zhuǎn)義符
7)變量值可以直接調(diào)用系統(tǒng)命令。 `命令` $(命令)
如cc=`ls/dev` # `是反引號,Esc鍵下的那個
或者:cc=$(ls/dev)作用相同,推薦!
調(diào)用:echo$cc
8)變量值可以累加 aa=123 aa="$aa"456 echo $aa --->123456
9)環(huán)境變量一定設(shè)為大寫
4環(huán)境變量:
附:pstree:查詢進(jìn)程樹
一般不要聲明環(huán)境變量
1)聲明
export變量名=變量值
export aa #變量已經(jīng)存在的情況
2)查看
set查看所有變量
env或者export只能查看環(huán)境變量,并且export能夠看清本質(zhì)-_-
declare聲明變量類型的,如果不特別聲明,所有變量為字符串型
-i聲明為int
-x聲明為環(huán)境變量
3)刪除
unset變量名
4)常見環(huán)境變量
echo$PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
系統(tǒng)查找命令的路徑
PATH="$PATH":/root/shell在系統(tǒng)默認(rèn)路徑后,追加/root/shell目錄作為命令查找路徑
5)環(huán)境變量配置文件
/etc/bashrc所有用戶生效
/etc/profile
~/.bashrc只對指定用戶生效
~/.bash_profile
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
本文標(biāo)題:四天精通shell編程(一)-創(chuàng)新互聯(lián)
文章源于:http://www.rwnh.cn/article16/ccjgdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、App設(shè)計、品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容