shell學(xué)習(xí)筆記之一(shell內(nèi)建命令)
來源:程序員人生 發(fā)布時間:2015-07-06 09:58:51 閱讀次數(shù):3165次
注釋:
#
注意:shell 文件開頭的#!/bin/bash 里的#不是注釋
運行:
1、bash shell.sh
2、chmod +x shell.sh -> ./shell.sh
3、添加到PATH 變量中
4、. ./shell.sh
排錯:
1、語法毛病
運行時會有提示
2、邏輯毛病
使用echo 打印,
sleep number:睡眠number 秒,下降循環(huán)速度
使用bash -x 來調(diào)試shell 腳本
第3方工具:bashdb
內(nèi)建命令:
1、判斷1個命令是不是是內(nèi)建的:type
2、履行程序:“.”,即便文件沒有履行權(quán)限,也能夠使之履行
例:. ./HelloWorld.sh
等價于source:source HelloWorld.sh
3、別名:alias
a、#alias
查看當(dāng)前shell 別名
b、#alias mycommand=’command’
c、為了保存alias,可以在家目錄的.bashrc 文件中添加
4、刪除別名:unalias
5、任務(wù)前后臺的切換:bg,fg,jobs
6、改變目錄:cd
7、聲明變量:declare、typeset
declare 命令的參數(shù):
-i:聲明變量是整型類型
-r:聲明變量是只讀類型
-a:聲明數(shù)組
-f/F:顯示腳本中定義的函數(shù)和函數(shù)體
-x:聲明1個變量作為腳本的環(huán)境變量而被導(dǎo)出
8、echo
-n:不打印換行符
-e:制止解釋打印反斜杠轉(zhuǎn)義的字符
例:
echo “
” 結(jié)果是
echo -e “
” 結(jié)果是1個空行
echo:換行
9、break
當(dāng)有數(shù)字參數(shù)number(必須大于1)時,表示跳出幾層循環(huán)
10、continue
當(dāng)有數(shù)字參數(shù)number(必須大于1)時,表示跳出幾層循環(huán)
11、eval
將所跟的參數(shù)作為Shell 的輸入,并履行產(chǎn)生的命令
12、exec
履行命令來取代當(dāng)前的shell,典型利用是與find 1起
內(nèi)建命令exec 其實不啟動新的shell,而是用被履行的命
令替換當(dāng)前的shell 進(jìn)程,并且將老進(jìn)程的環(huán)境變量清算掉,
而且exec 命令后的其他命令將不再履行。
例:
a、列出系統(tǒng)中所有的以.conf 結(jié)尾的文件
find / -name “*.conf” -exec ls -l {} ;
b、刪除系統(tǒng)中所有的臨時文件愛你
find / -name “*.tmp” -exec rm -f {} ;
13、退出exit
14、使變量能夠被子shell 辨認(rèn)export
15、kill
發(fā)送信號到指定的PID 或進(jìn)程
linux 中的3種進(jìn)程:Shell 交互進(jìn)程,批處理進(jìn)程,系
統(tǒng)守護(hù)進(jìn)程。
殺死進(jìn)程
16、整數(shù)運算let
例:
let I=2+2
let j=5⑷
let k=2*5
let l=17/5
let m=15%7
let n=2**4 -->n=2^4=16
let i++
let j--
let i+=10
let j-=10
17、顯示當(dāng)前工作目錄pwd
18、聲明局部變量local
19、從標(biāo)準(zhǔn)輸入讀取1行到變量:read
20、return
21、shift,向左移動位置參數(shù)
位置參數(shù):
$1...$N:順次表示第N 個參數(shù)
$@或$*:表示所有的參數(shù)
$0:表示腳本本身
$#:表示參數(shù)的總數(shù)
22、顯示并設(shè)置進(jìn)程資源限度ulimit
23、測試test
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈