Time of Update: 2017-01-18
此處的敏感使用者是指這個使用者屬於多個組,或者這個使用者屬於的組名跟這個使用者名稱不一樣#! /bin/bash #list user who belong to more than one group #and list user who belong to the group which isn't the same as the username #w is whitelist,we will not think user in this whitelist is special or
Time of Update: 2017-01-18
1、編輯使用者Home目錄下的.muttrc檔案,設定發信環境。複製代碼 代碼如下:# cat /root/.muttrc set envelope_from=yesset from=owinux@sina.cnset realname="Owinux"set use_from=yesset rfc2047_parameters=yesset charset="utf-8"2、發信指令碼複製代碼 代碼如下:# cat automail.sh #!/bin/sh# automail.shDIR=/
Time of Update: 2017-01-18
自己寫了一下小的shell執行個體,雖然很小,但所有的大的程式都是由小的模組堆積起來的,程式員一定要懂得一種指令碼的書寫,而我,只會在linux下工作,所以就只能寫linux的shell指令碼了,呵呵,本文會陸續更新,給自己加油!1.類比linnux登入shell複製代碼 代碼如下:#/bin/bashecho -n "login:" read nameecho -n "password:"read passwdif [ $name = "cht" -a $passwd = "abc"
Time of Update: 2017-01-18
在awk中並未直接提供ord函數,所以在將某個字元轉換為碼時,需要自己來實現複製代碼 代碼如下:awk 'BEGIN{for (i = 0; i < 256; ++i) {ord[sprintf("%c", i)] = i;} }' ' { print ord['a']; ord ['b']; }'這裡主要是構造了ord為key,val的資料結構,key為char字元,val對應的ascii碼附:awk得到字母的ASC值實現複製代碼 代碼如下:-(dearvoid@
Time of Update: 2017-01-18
本文收集了一堆的shell指令碼技巧,我說過,我寫部落客要是作一些學習筆記,方便自己查閱,所以,我會搞出這麼一篇文章,也沒有什麼不可理解的。關於這些技巧的出處,誒,我也忘了,可能來自theunixschool、 commandlinefu、酷勤網和igigo.net,當然了,也有部分是我自己的經驗心得,管他呢,進了我的腦子就是我的了。0. shell 調試複製代碼 代碼如下:sh -x somefile.sh在somefile.sh 檔案裡加上set+x set-x1. 用 && ||
Time of Update: 2017-01-18
bash shell 指令碼的方法有多種,現在作個小結。假設我們編寫好的shell指令碼的檔案名稱為hello.sh,檔案位置在/data/shell目錄中並已有執行許可權。方法一:切換到shell指令碼所在的目錄(此時,稱為工作目錄)執行shell指令碼:複製代碼 代碼如下:cd
Time of Update: 2017-01-18
一、簡單版參考stackoverflow的例子,改了一個出來:複製代碼 代碼如下:while IFS='= ' read var valdo if [[ $var == \[*] ]] then section=$(echo $var | sed 's/^\[\(.*\)\]$/\1/') elif [[
Time of Update: 2017-01-18
這篇文章主要介紹了編寫shell指令碼,使用iconv批量改變檔案編碼的指令碼代碼,需要的朋友可以參考下。用法樣本:cd ~/workspace/XXXProject~/iconv_shell.sh ./ *java好了,直接上代碼~~#!/bin/bashif [ "$#" != "2" ]; thenecho "Usage: `basename $0` dir filter"exitfidir=$1filter=$2echo $1for file in `find $dir -name "$
Time of Update: 2017-01-18
在開發中,我們經常需要對N多檔案編碼變更,iconv只能對單檔案的變更,怎麼辦呢?我們寫一個shell指令碼來解決這個問題。例子一:使用shell指令碼實現批量轉碼的操作。#!/bin/sh #convertCodeFilePath=$1 fromCode=$2 toCode=$3 for i in {1..1} do [ -f $convertCodeFilePath ] if [ $? -eq 0 ] then iconv -f $fromCode -t
Time of Update: 2017-01-18
一,什麼是awkawk是linux下的一個命令,他對其他命令的輸出,對檔案的處理都十分強大,其實他更像一門程式設計語言,他可以自訂變數,有條件陳述式,有迴圈,有數組,有正則,有函數等。他讀取輸出,或者檔案的方式是一行,一行的讀,根據你給出的條件進行尋找,並在找出來的行中進行操作,感覺他的設計思想,真的很簡單,但是結合實際情況,具體操作起來就沒有那麼簡單了。他有三種形勢,awk,gawk,nawk,平時所說的awk其實就是gawk。二,awk中的記錄,域,分割符當我們讀取輸出時,或者讀取檔案時,讀
Time of Update: 2017-01-18
一,NR和FNR的不同NR:表示目前記錄數FNR:也表示目前記錄數,但是FNR的範圍只在一個檔案內.如果重新開啟檔案,FNR會從1開始.二,執行個體說明1,測試檔案aaa,cccc複製代碼 代碼如下:[root@Blackghost test2]# cat aaa //測試檔案aaa1111:23434:zhanghoadsf:asdf:ccc[root@Blackghost test2]# cat ccc
Time of Update: 2017-01-18
每一種語言都有他獨自的字串操作方法,shell也一樣,下面以以例子的方式,簡單介紹常用方法。1,取得字串長度複製代碼 代碼如下:string=abc12342341 //等號二邊不要有空格echo ${#string} //結果11expr
Time of Update: 2017-01-18
最近系統的學習了一下shell的函數,總體感覺根其他語言的函數差不多,不過它也有自身的特點一,調用函數必須在定義函數的後,不然會報錯的複製代碼 代碼如下:funfun (){ echo "aaaaaa"}fun返回結果如下:複製代碼 代碼如下:[root@krlcgcms01 mytest]# sh fun.sh fun.sh: line 1: fun: command not found
Time of Update: 2017-01-18
最近看到論壇裡面有幾個不錯的小例子,對於學習awk還是有協助,在這兒詳細的說一下一、類似資料庫中的left join查詢複製代碼 代碼如下:[root@krlcgcms01 mytest]# cat a.txt //a.txt111 aaa222 bbb333 cccc444 ddd[root@krlcgcms01 mytest]# cat b.txt &
Time of Update: 2017-01-18
shell的迴圈主要有3種,for,while,untilshell的分支判斷主要有2種,if,case一,for迴圈複製代碼 代碼如下:#!/bin/bashfor file in $(ls /tmp/test/mytest |grep sh) //for in格式是shell for的基本格式,根js的for
Time of Update: 2017-01-18
學習awk時,一定要記得動手去實踐,只有在實踐中才能發現問題,以下就我在學習中和實踐中的經驗,總結一下RS,ORS,FS,OFS的區別和聯絡。一,RS與ORS1,RS是記錄分隔字元,預設的分隔字元是\n,具體用法看下複製代碼 代碼如下:[root@krlcgcms01 mytest]# cat test1 //測試檔案 111 222 333 444 555 6662,RS預設分割符\n複製代碼 代碼如下:[root@
Time of Update: 2017-01-18
每個開啟的檔案都會被分配一個檔案描述符.stdin (鍵盤), stdout (螢幕), 和 stderr (錯誤訊息輸出到螢幕上)的檔案描述符分別是0, 1, 和 2. 對於正在開啟的額外檔案, 保留了描述符3到9.檔案描述符是檔案系統為了跟蹤這個開啟的檔案而分配給它的一個數字。下面以執行個體說明1,>的用法複製代碼 代碼如下:[zhangy@localhost ~]$ echo "11111" > 1.txt[zhangy@localhost ~]$ cat 1.txt11111
Time of Update: 2017-01-18
這是我寫BASH程式的招式。這裡本沒有什麼新的內容,但是從我的經驗來看,人們愛濫用BASH。他們忽略了電腦科學,而從他們的程式中創造的是“大泥球”(譯註:指架構不清晰的軟體系統)。在此我告訴你方法,以保護你的程式免於障礙,並保持代碼的整潔。一、不可改變的全域變數1.盡量少用全域變數2.以大寫命名3.唯讀聲明4.用全域變數來代替隱晦的$0,$1等在我的程式中常使用的全域變數:複製代碼 代碼如下:readonly PROGNAME=$(basename $0)readonly
Time of Update: 2017-01-18
一、Shell函數本教程目前為止所有指令碼都是從頭到尾執行。這樣做很好,但你也許已經注意到有些指令碼段間互相重複。shell允許將一組命令集或語句形成一個可用塊,這些塊稱為shell函數。shell中函數的定義格式如下:複製代碼 代碼如下:函數名(){ command1 command2 ... commandN [
Time of Update: 2017-01-18
一、while迴圈while迴圈用於不斷執行一系列命令,也用於從輸入檔案中讀取資料;命令通常為測試條件。其格式為: 複製代碼 代碼如下:while 命令do command1 command2 ...