① shell 讀取配置文件
比如file是哪個配置文件
a=(`awk -F'=' '{print $2}' file`)
讀取後存成一個數組a
② 與shell有關的配置文件有哪些
在Ubuntu中有如下幾個文件可以設置環境 變數
1、/etc/profile:在登錄時,操作系統定製用戶環境時使用的第一個文件,此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行。
2、/etc/environment:在登錄時操作系統使用的第 二個文件,系統在讀取你自己的profile前,設置環境文件的環境變數。
3、~/.bash_profile:在 登錄時用到的第三個文件是.profile文件,每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該 文件僅僅執行一次!默 認情況下,他設置一些環境變游戲量,執行用戶的.bashrc文件。/etc/bashrc:為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.
4、~/.bashrc:該 文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該 該文件被讀取。
http://www.blogjava.net/jasmine214--love/archive/2010/11/25/339006.html
③ 寫一個shell腳本,讀取配置文件算出配置文件中是數字的和。 配置文件sum.conf 1 a 2
給你舉個例子吧,下面是我寫的一個讀取配置參數的問題
其中 for i in `cat $V_CFG_DIR/tab_tmp2.cfg` 是讀取配置文件tab_tmp2.cfg
如果你參數的名字需要通過參數來傳遞的話那就改下,添加一個參數並把tab_tmp2.cfg換成你添加的參數(就像參數V_DATA_DATE一樣通過外部傳入),另外加法求和你網路下就可以搞定了,快看看吧,有詳細的注釋
#############################################################
#功能:裝載指定目錄數據
#作者:PENGWEI
#時間:2015-11-18
#############################################################
# 數據日期參數,待傳入
V_DATA_DATE=$1
#FTP完成後數據存放路徑
V_DATA_DIR=/home/almusr/data/odsdata/FTP/$V_DATA_DATE
# FTP完成後生成的標志文件所在路徑
V_FTP_FLAG=/home/almusr/data/etl_load/FTPOK
# 解壓數據前備份數據的存放路徑
V_DATA_BAK=/home/almusr/data/odsdata/odsdata_bak
# 配置文件存放路徑
V_CFG_DIR=/home/almusr/cfg
#日誌文件
LOGDIR=/home/almusr/log/Loaddata_log
LOGFILE=$LOGDIR/LoadData_$V_DATA_DATE.log
# 初始化系統參數
DBNAME=ALMDB
USER=almusr
PASSword=almusr
SCHEMA=ODSUSR
#如果 日誌目錄不存在
if [ ! -d "${LOGDIR}" ]
then
#建立目錄
mkdir -p "${LOGDIR}"
fi
#\n --回車
echo "\n日誌文件[$LOGFILE]\n"
#日誌函數
recordLog()
{
echo `date +"%Y-%m-%d %T"`": $1" | tee -a $LOGFILE
return 0
}
#判斷參數個數
if [ $# -ne 1 ]
then
recordLog "Usage:$0 directory"
exit 1
fi
# $?表示上述命令執行後返回的狀態(執行成功返回0 執行不成功返回非0)
if [ $? -ne 0 ]
then
recordLog "cd $V_DATA_DIR error !"
exit 1
fi
#連接資料庫
db2 connect to $DBNAME user $USER using $PASSWORD
if [ $? -ne 0 ]
then
recordLog "connect[$DBNAME] fail!"
exit 1
fi
#載入數據
RETVAL=0
for i in `cat $V_CFG_DIR/tab_tmp2.cfg`
do
#讀取表名並輸出
TABLE_NAME=`echo $i | awk -F "," '{print $1}'`
#讀取文件後綴名並輸出
echo " the table_name is $TABLE_NAME"
#拼接文件名
FILENAME=${TABLE_NAME}.del
#解壓縮 臨時變數
FILENAME_TMP=$FILENAME.gz
echo "the FILENAME is $FILENAME"
recordLog "the FILENAME $FILENAME!"
# 第一步:對壓縮文件備份,先掃描FTP完成標志,如果存在就說明FTP過程已結束,開始備份,否則等待繼續掃描
#進去FTP完成標志所在目錄
cd $V_FTP_FLAG
#掃描FTP完成標志
if [[ ! -e "${V_DATA_DATE}.ok" ]]; then
sleep 1800
else
cd $V_DATA_BAK
#備份文件
cp -r $V_DATA_DIR ${V_DATA_DATE}_bak
cd ${V_DATA_DATE}_bak
rm -rf ${V_DATA_DATE}
fi
recordLog "Copy data was finished"
# 第二步:刪除30天前的備份數據
v_BakFileDate=`date -d "- 30 day ${V_DATA_DATE}" +%Y%m%d`
cd $V_DATA_BAK
rm -rf ${v_BakFileDate}_bak
recordLog "Removed the bak_data of 30 days before!"
# 第三步:對文件進行解壓
cd $V_DATA_DIR
if [ -f $FILENAME_TMP ]
then
echo "$FILENAME_TMP must gunzip"
#解壓文件
gunzip $FILENAME_TMP
echo "$FILENAME_TMP ,gunzip success"
else
echo "$FILENAME exist,next step"
recordLog "$FILENAME exist,next step!"
fi
# 第四步:數據載入
if [ -f $FILENAME ]
then
# CMD="db2 \"load from $FILENAME of del MODIFIED BY coldel0x23 usedefaults keepblanks decpt. replace into ODSUSR.$TABLE_NAME data buffer 10000\" > $LOGDIR/$TABLE_NAME_XX.log 2>&1"
CMD="db2 \"load from $FILENAME of del replace into ODSUSR.$TABLE_NAME data buffer 10000\" > $LOGDIR/$TABLE_NAME.log 2>&1"
echo "$FILENAME is loading"
eval $CMD
fi
echo "load data is over"
recordLog "load data is over"
# 第五步:判斷載入是否正確
#判斷是否正常載入
read_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows read" | awk -F'=' '{print $2}'`
skip_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows skipped" | awk -F'=' '{print $2}'`
load_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows loaded" | awk -F'=' '{print $2}'`
reject_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows rejected" | awk -F'=' '{print $2}'`
delete_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows deleted" | awk -F'=' '{print $2}'`
commit_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows committed" | awk -F'=' '{print $2}'`
echo "$read_num,$skip_num,$load_num,$reject_num,$delete_num,$commit_num"
#條件判斷載入是否正確
if [[ "$read_num" -eq "$load_num" && "$load_num" -eq "$commit_num" ]]
then
echo "Data loading is perfect!"
else
cat $LOGDIR/$TABLE_NAME.log
recordLog "loading [$V_DATA_DIR/$TABLE_NAME] error!"
RETVAL=1
continue
fi
done
db2 connect reset >/dev/null 2>&1
if [ $RETVAL != 0 ]
then
recordLog "load data directory [$V_DATA_DIR] error!!!"
else
recordLog "load data directory [$V_DATA_DIR] successful!!!"
fi
# 第五步:完成退出
exit 0
你把這個問題看懂了估計你那個就沒問題了
有什麼問題再交流
④ xshell如何備份導出配置\xshell怎麼導入配置
xshell如何備份導出配置
1
如圖如果是新建,或者之前連接過的會話設置會自動記錄到xshell會話裡面
2
導出\備份xshell配置
點擊xhsell4 文件菜單--- 導出功能選項
3
然後出現導出會話對話框,依次選擇需要保存的目標文件,建議勾選 導出密碼
4
導出會話之後,如圖結果顯示正常的文件才能使用
5
導出的xshell4配置文件都是如圖,xts的文件名。
6
由於是特有的格式文件,使用記事本文件打開會是加密的無法識別
END
xshell怎麼導入配置
1
對於新安裝的xhsell4軟體是沒有配置的,如何把之前備份的配置導入,找到 文件--導入
2
瀏覽到之前的會話文件,如圖 默認的配置選項是相同會話名的重命名
3
然後接著顯示導入的賬號信息,比如xshell會話記錄有34個
4
導入成功之後,點擊完成結束。你會發現之前備份的會話都進來了
5
特別提醒一下
如果對於本身就有配置的xshell4導入之前的配置,如果是相同內容建議勾選【覆蓋】
⑤ linux下環境變數配置文件
環境變數配置的兩個方法:
在/etc/profile里設置系統環境變數時,路徑末尾不能以"/"結尾,否則將導致整個PATH變數出錯
各個配置文件作用
家目錄中配置文件裡面默認有shell來判斷如果父配置文件不存在才讀取此文件
/etc/profile: 此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.並從/etc/profile.d目錄的配置文件中搜集shell的設置.
/etc/bashrc: 為每一個運行bash shell的用戶執行此文件.當bash shell被打開時,該文件被讀取.
~/.bash_profile: 每個用戶都可使用該文件輸入專用於自己使用的shell信息,當用戶登錄時,該文件僅僅執行一次!默認情況下,他設置一些環境變數,執行用戶的.bashrc文件.
~/.bashrc: 該文件包含專用於你的bash shell的bash信息,當登錄時以及每次打開新的shell時,該該文件被讀取.
~/.bash_logout: 當每次退出系統(退出bash shell)時,執行該文件.
另外,/etc/profile中設定的變數(全局)的可以作用於任何用戶,而~/.bashrc等中設定的變數(局部)只能繼承/etc/profile中的變數,他們是"父子"關系.
⑥ shell鑴氭湰璇誨彇閰嶇疆鏂囦歡鍙傛暟
1銆 璇誨彇閰嶇疆鏂囦歡鏃訛紝灝嗘敞閲婄#鏍囪扮殑琛屽拰絀鴻屽叏閮ㄨ繃婊 sed -E '/^#.*|^ *$/d' $env_file 銆
2銆 鍖歸厤鎸囧畾鍙傛暟鐩哥︾殑琛屽苟鎴鍙栧瑰簲鐨勫 awk -F "${param}=" "/${param}=/{print \$2}" 銆
3銆 鑾峰緱鐨勭粨鏋滃彲鑳芥湁澶氫釜錛屽彇鏈鍚庝竴涓鍊 tail -n1 銆
4銆佽繖3姝ラ兘鐢 | 綆¢亾絎﹁繛鎺ワ紝鍏朵綔鐢ㄦ槸灝嗗綋鍓嶇殑緇撴灉浣滀負涓嬩竴鏉″懡浠ょ殑杈撳叆錛岃繛緇澶勭悊浠ヨ揪鍒拌幏鍙栧弬鏁扮殑鏈緇堢洰鐨勩
⑦ linux鐨.sh鏂囦歡
Linux緋葷粺涓嬪備綍榪愯.sh鏂囦歡錛
1.濡傛灉filename.sh鏂囦歡鏈夋墽琛屾潈闄./filename.sh2.濡傛灉filename.sh鏂囦歡娌℃湁鎵ц屾潈闄恠hfilename.sh
鎵╁睍鍚嶄負sh鏄浠涔堢紪璇戝櫒緙栧啓鐨勪唬鐮侊紵
鏄痩inux/unix涓嬬殑shell鑴氭湰鏂囦歡錛屾槸綰鏂囨湰鏂囦歡銆
鐢ㄤ換浣曟枃鏈緙栬緫鍣ㄩ兘鍙浠ユ墦寮銆linux鍛戒護涓鐨剆h鏄浠涔堟剰鎬濓紵
Bourneshell(sh)鍙浠ヨ存槸涓涓騫沖彴.鐩存帴閫氬悜鍐呮牳鐨.浣犺緭鍏SH絳変簬鏀瑰彉浜嗕綘鐨剆helllinux榛樿ょ殑shell鏄痓ash浣犳敼鎴愪簡,bourneshell浣犺緭浜哹ash灝辨敼鍥炴潵鍟.$絎︿唬琛ㄦ櫘閫氱敤鎴.
linuxsh鏀句粈涔堜綅緗錛
榪欐槸shell鑴氭湰鏂囦歡錛岃繖涓鏄娌℃湁鍥哄畾鐨勭洰褰曠殑錛屼絾鏄鍙浠ヤ嬌鐢ㄦ煡鎵懼懡浠ゆ壘鍒扮浉搴旂殑鏂囦歡鐨勶紝鍙浠ヤ嬌鐢╨ocate鎴栬協ind鍛戒護鏌ユ壘鏂囦歡錛
linuxshell璇誨彇涓涓閰嶇疆鏂囦歡騫惰幏鍙栧叾涓鐨勫叏閮ㄥ唴瀹癸紝鎬ワ紵
涓嬮潰鏄璇誨彇閰嶇疆鏂囦歡錛屼綔涓哄彉閲忔樉紺哄嚭鏉ワ紝瀹炰緥濡備笅錛$catboot.inipath='/data/source'username='myuser'password='mypassword'$cattest.sh#!/bin/sheval`cat./boot.ini`echo"$username"echo"$path"echo"$password"$./test.shmyuser/data/sourcemypassword