Time of Update: 2018-12-07
scripts 在運行之前,最怕的就是出現語法錯誤的問題了!那麼我們如何 debug 呢?有沒有辦法不需要透過直接運行該 scripts 就可以來判斷是否有問題呢?呵呵!當然是有的!我們就直接以 bash 的相關參數來進行判斷吧![root@www ~]# sh [-nvx] scripts.sh選項與參數:-n :不要運行 script,僅查詢文法的問題;-v :再運行 sccript 前,先將 scripts 的內容輸出到螢幕上;-x :將使用到的 script
Time of Update: 2018-12-07
> 數組NAMES=(max helen sam zach)NAMES[*] 取出所有資料,然後作為一個元素返回NAMES[@] 取出所有資料,但是返回的仍然是一個數組,可以用來完成數組的賦值> export使父進程的變數對子進程可見、可用;一旦利用expert生命一個變數作為參數,shell就會把變數的值傳遞到子進程得到調用環境中,使用的是傳值調用 每個子進程在使用變數時得到變數的副本。eg. export cheese=american或 cheese=american
Time of Update: 2018-12-07
1. Linux 指令碼編寫基礎1.1 文法基本介紹1.1.1 開頭程式必須以下面的行開始(必須方在檔案的第一行): #!/bin/sh 符號#!用來告訴系統它後面的參數是用來執行該檔案的程式。在這個例子中我們使用/bin/sh來執行程式。 當編輯好指令碼時,如果要執行該指令碼,還必須使其可執行。 要使指令碼可執行:編譯 chmod +x filename 這樣才能用./filename 來運行1.1.2 注釋
Time of Update: 2018-12-07
1. ftp自動登入批量下載檔案。#####從ftp伺服器上的/home/data 到 本地的/home/databackup#####!/bin/bashftp -n<<!open 192.168.1.171user guest 123456binarycd /home/datalcd /home/databackuppromptmget *closebye!2. ftp自動登入上傳檔案。####本地的/home/databackup to ftp伺服器上的/home/data##
Time of Update: 2018-12-07
作業管理舉例來說,我們在登陸 bash 後, 想要一邊複製檔案、一邊進行資料搜尋、一邊進行編譯,還可以一邊進行 vi 程式撰寫! 當然我們可以重複登陸那六個文字介面的終端機環境中,不過,能不能在一個 bash 內達成? 當然可以啊!就是使用 job control 啦!進行工作管理的行為中, 其實每個工作都是目前 bash 的子程式,亦即彼此之間是有相關性的。 我們無法以 job control 的方式由 tty1 的環境去管理 tty2 的 bash
Time of Update: 2018-12-07
變數的取用: echo[root@www ~]# echo $variable[root@www ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[root@www ~]# echo ${PATH} 變數的配置[root@www ~]# echo $myname <==這裡並沒有任何資料~因為這個變數尚未被配置!是空的![root@www ~]#
Time of Update: 2018-12-07
while do done, until do done (不定迴圈)一般來說,不定迴圈最常見的就是底下這兩種狀態了:while [ condition ] <==中括弧內的狀態就是判斷式do <==do 是迴圈的開始! 程式段落done <==done 是迴圈的結束while 的中文是『當....時』,所以,這種方式說的是『當 condition 條件成立時,就進行迴圈,直到 condition
Time of Update: 2018-12-07
什麼是 Shell scripts什麼是 shell script (程式化指令碼) 呢?就字面上的意義,我們將他分為兩部份。 在『 shell 』部分,我們在bash當中已經提過了,那是一個文字介面底下讓我們與系統溝通的一個工具介面。那麼『 script 』是啥? 字面上的意義, script 是『指令碼、劇本』的意思。整句話是說, shell script 是針對 shell 所寫的『劇本!』什麼東西啊?其實, shell script 是利用 shell 的功能所寫的一個『程式
Time of Update: 2018-12-07
什麼是資料流重導向什麼是資料流重導向啊?這得要由命令的運行結果談起!一般來說,如果你要運行一個命令,通常他會是這樣的:圖 5.1.1、命令運行過程的資料轉送情況我們運行一個命令的時候,這個命令可能會由檔案讀入資料,經過處理之後,再將資料輸出到螢幕上。 在當中, standard output 與 standard error output 分別代表『標準輸出』與『標準錯誤輸出』, 這兩個玩意兒預設都是輸出到螢幕上面來的啊!那麼什麼是標準輸出與標準錯誤輸出呢? standard output 與
Time of Update: 2018-12-07
條件判斷式只要講到『程式』的話,那麼條件判斷式,亦即是『 if then 』這種判別式肯定一定要學習的! 因為很多時候,我們都必須要依據某些資料來判斷程式該如何進行。if .... then這個 if .... then 是最常見的條件判斷式了~簡單的說,就是當符合某個條件判斷的時候, 就予以進行某項工作就是了。這個 if ... then 的判斷還有多層次的情況!我們分別介紹如下: 單層、簡單條件判斷式如果你只有一個判斷式要進行,那麼我們可以簡單的這樣看:if [ 條件判斷式 ]; then
Time of Update: 2018-12-07
一. 特殊檔案: /dev/null和/dev/tty Linux系統提供了兩個對Shell編程非常有用的特殊檔案,/dev/null和/dev/tty。其中/dev/null將會丟掉所有寫入它的資料,換句換說,當程式將資料寫入到此檔案時,會認為它已經成功完成寫入資料的操作,但實際上什麼事都沒有做。如果你需要的是命令的退出狀態,而非它的輸出,此功能會非常有用,見如下Shell代碼: /> vi test_dev_null.sh #!/bin/bash
Time of Update: 2018-12-07
http://rimuhosting.com/howto/profile.jsp Linux Shell Environment Setup Using /etc/profile.d/* When a user logs in, environment variables are set from various places. That includes: /etc/profile (for all users).Then all the files in the /etc/profile.
Time of Update: 2018-12-07
轉自:http://www.cnbeta.com/modules.php?name=News&file=article&sid=5313這絕對是一款會讓Gmail使用者100%驚奇和驚喜的軟體.這款只有100多k的軟體會在你的硬碟上產生一個虛擬硬碟分區GMail Drive,檔案系統為GMailFS(哈,好像微軟在Longhorn裡的是WinFS吧.)這樣你的硬碟上就多出了1個G的空間了.你可以在GMail
Time of Update: 2018-12-07
如果沒有本文檔案的話,就用echo直接把本文打出來就行了,如:echo "this is content" | mutt -s "this is subject" -a /path/yourfile abc@local.domain -c bbb@local.domain如果有本文檔案的話就用cat /path/contentfile | mutt -s "this is subject" -a /path/yourfile abc@local.domain -c
Time of Update: 2018-12-07
1.使用指派陳述式:格式:let 賦值運算式【tip】賦值運算式可以省略為: ((賦值運算式))例:給自變數i加1let i=i+1或((i=i+1)) -----------效率高或#!/bin/bash let "t1 = ((a = 5 + 3, b = 7 - 1, c = 15 - 4))"echo "t1 = $t1, a = $a, b = $b"2.使用expr命令:例:給自變數i加1i=`expr $i + 1`
Time of Update: 2018-12-07
例如我們統計sid,access 日誌如下:203.142.196.181 - - [07/Jan/2009:06:02:58 +0900] "GET /ad/queryphp.jsp?v=1.5&ct=i02&tos=A&key=%3F%3F%3F&sid=100575311&enc=SJIS HTTP/1.0" 200 944 "-" "{KDDI-SN3B UP.Browser/6.2.0.13.1.5 (GUI) MMP/2.0}" 113185
Time of Update: 2018-12-07
描述:雖然問題不大,但是確實挺噁心,我的目標是處理access日誌日誌為了方便處理,採用了\t作為分隔,資料需要過濾再處理不想先過濾成臨時檔案,再處理,這樣等於多讀了很多行採用讀取每行的資料,再處理的方式while read linedodone<$file問題:但是出現一個問題:read line後line中的\t不見了,導致我awk處理時找不到\t,這時預設的分隔字元是空格,可是資料本身也會有空格,就會混淆原因:尋找後得知read
Time of Update: 2018-12-07
shell基礎1:檔案安全與許可權 http://bbs.chinaunix.net/thread-434579-1-1.html附:Linux的使用者和使用者組管理 http://bbs.chinaunix.net/thread-438660-1-1.htmlshell基礎二:尋找技巧,find及xargs的使用http://bbs.chinaunix.net/thread-441883-1-1.htmlshell基礎三和四:後台(crontab,at,&,nohup)及(*,?,[]
Time of Update: 2018-12-07
> vi複製粘貼游標移動到要複製的部分的開頭,Esc退出插入模式,按v進入Visual模式,用hjkl選中要複製的部分按Y或者yy,複製移動游標到目標位置,按p,粘貼> echo –e 參數 –e 可以使echo解釋由反斜線“\”轉義的字元,逸出字元一定要由雙引號引起來echo –E與-e相反,禁止對逸出字元“\”的解釋,預設如此> echo –n禁止分行符號終止訊息> script=$(basename $0)這是替換的命令。可以理解為script=$basename,
Time of Update: 2018-12-07
網上找了個例子,簡單實用如下.可以有一個後台進程,在timer逾時採取一些操作. #!/bin/ksh#Delaytime=0AlarmHandler(){echo "Get SIGALAM"KillSubProcsexit 14}KillSubProcs(){#kill cbmecho "it's time out,kill cbm here"if [ $? -eq 0 ];thenecho "Sub-processes