Time of Update: 2018-12-04
1 你想過sed為什麼叫sed嗎?sed是stream editor的縮寫,sed就是一個流編輯器,說白了,就是我們往sed裡輸入一串資訊,它給我們處理,然後輸出來。就這麼簡單。sed和cut類似,是一個面向行處理的工具,它以“行”為處理單位,處理後的結果會輸出到標準輸出。所以說其實sed命令很安全的,它不會對行本身所在檔案做任何修改的。sed的命令格式是:sed command
Time of Update: 2018-12-04
#!/bin/bash#Add the hostnameread -p "Please input your hostname:" Hostnameold=`cat /etc/sysconfig/network | grep HOSTNAME | awk -F= '{print $2}'`sed -i "s/$old/$Hostname/g" /etc/sysconfig/networkecho "The /etc/sysconfig/network has changed,please
Time of Update: 2018-12-04
學習Linux已經有一周半了,在馬哥的強壓下,寫了二十幾個shell指令碼。。。shellRegex,awk語句,程式執行流,test語句,sed語句,函數還有一些其他的小命令,如tr,grep,cut,wc等等。越發覺得shell指令碼的可愛,沒錯,是可愛!因為它的快速上手,迷人的Regex,變換莫測的程式執行流和awk語句,還有強大的功能,很難想象這麼簡單的語言和linux如此完美的結合在一起,好像是linux的可愛的“妻子”。
Time of Update: 2018-12-04
本文轉載於:http://blog.sina.com.cn/s/blog_674b5aae0100o2mn.htmlBash shell 的算術運算有四種方式:1:使用 expr 外部程式加法 r=`expr 4 + 5`echo $r注意! 4 + 5 這三者之間要有空白`expr 4 + 5`語句開始和結束都有一個`,和~位於同一個鍵r=`expr 4 * 5` #錯誤乘法 r=`expr 4 \* 5`2:使用 $(( ))r=$(( 4 + 5 ))echo $r3:使用 $[ ]r=$
Time of Update: 2018-12-04
產生原因:在手機上 /system/xbin 檔案夾下面沒有sqlite3檔案解決辦法:一般在模擬器下面是有的,所以要做的就是從模擬器中將sqlite3拖到手機裝置上。1. 首選掛載手機,使 /system/ 成為可讀寫狀態 (rw)$ adb shell# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system2. 開啟另外一個終端,將sqlite3檔案從目標目錄拖到 /system/xbin 目錄下面$ adb push E:/
Time of Update: 2018-12-05
UNIX系統變數$? 前一個命令或函數的返回碼 $# 參數數目$0,1,2,3 $0是程式本體,從$1,$2,$3是參數$* 字串:以"參數1 參數2 ... " 形式儲存所有參數 $@ 字串數組:以"參數1" "參數2" ... 的字串數組形式儲存所有參數 $$ 本程式的(進程ID號)PID $? 最後一條命令的返回碼 (成功0,失敗1)$ ls 111.txt111.txt$ echo $?0
Time of Update: 2018-12-05
#!/bin/bash( echo "user" sleep 2 echo "passwd" sleep 3 echo "do something in remote device" sleep 3 echo "exit") | telnet IP以上是非互動式用法. 如果需要互動式用法, 可以使用expect, 以後再補充#!/bin/sh ( echo sybase sleep 2 echo sybase sleep 3 echo "\n"
Time of Update: 2018-12-05
公司網路太不給力,sync代碼居然只有可伶的15kB/s的速度。。。,更讓人罵娘的是------- 還總斷線!!! 忍無可忍去網上找了一個shell指令碼: #!/bin/bashecho "======start repo sync======"repo syncwhile [ $? = 1 ]; doecho “======sync failed, re-sync again======”sleep 3repo syncdone 指令碼先執行一次 repo sync命令,然後迴圈判斷$?
Time of Update: 2018-12-05
UNIX Shell 編程(5) 過濾器tr用來轉換來自標準輸入的字元。格式:tr from-chars to-charsfrom-chars 和 to-chars 是一個或多個字元。例如:[root@localhost programs]# cat introThe Unix operating system was pioneered by Ken Thompson and Dennis Ritchie at Bell Laboratories in the late 1960s. One
Time of Update: 2018-12-05
UNIX Shell 編程(3)-UNIX Shell的Regex 匹配任何單個字元:句點(.)比如:r.表示匹配r後跟任一個字元的模式。匹配行首符號:^比如:^George表示匹配以George開頭的行匹配行尾符號:$比如:contents$表示匹配在行尾的字串contents。GNU Ed 0.8的用法[root@localhost programs]# ed intro 253/.../
Time of Update: 2018-12-05
UNIX Shell 編程(4) cut命令可以從資料檔案或者命令的輸出中截取所需的資料域。命令格式:cut -cchars filechars表示要截取哪些文字,可以是數字。file表示檔案,如果不指定file,cut從標準輸出讀入輸入,即可把cut命令作為管道的過濾器。如:[root@localhost misc]# whoroot pts/1 2009-04-15 09:15 (10.3.34.117)fedora tty7 2009-04-15
Time of Update: 2018-12-05
UNIX Shell指令碼基礎考試 1、下列哪個程式碼將把你先前的工作目錄列印到螢幕上?cA、echo ~ B、echo $PWD C、echo ~- D、echo * 2、使用下列哪個符號可以把命令的輸出重新定向到某個檔案,如果該檔案存在,就覆蓋這個檔案?cA、>> B、<<- C、> D、n> 3、下列哪個命令語句使shell在1月10下午5:30運行pkgsetup指令碼?cA、pkgsetup at 5:30pm Jan 10 B、cron
Time of Update: 2018-12-05
tr tracslate 的簡寫例1 替換字元,把小寫r替換成大寫的Rshuohailhl@shuohailhl-PC /cygdrive/d$ cat pass.txtroot:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinshuohailhl@shuohailhl-PC
Time of Update: 2018-12-05
去掉字串最左邊的字元[admin@v035114 ~]$ vi test.sh 1 STR="abcd" 2 STR=${STR#"a"} 3 echo $STR 4 STR=${STR%"d"} 5 echo $STR執行指令碼[admin@v035114 ~]$ ./test.sh
Time of Update: 2018-12-05
ss的含義 Socket State1 查看連結[admin@v035114 ~]$ ssState Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 10.232.35.114:43583 1
Time of Update: 2018-12-05
和awk差不多的功能例1$ a=`echo root:x:0:0:root:/root:/bin/bash | cut -d : -f 1,5`shuohailhl@shuohailhl-PC /cygdrive/d$ echo $aroot:root上面的例子中,把 root:x:0:0:root:/root:/bin/bash 重新導向到cut命令裡,-d表示分隔字元,這裡使用冒號: 作為分隔字元,-f 表示欄位,選擇了第1,和第5個欄位,例 2,只列印第一個欄位field$
Time of Update: 2018-12-05
標準輸入標準輸入是檔案描述符0.它是命令的輸入,預設是鍵盤,也可以是檔案或其它的命令輸出標準輸出標準輸出是檔案描述符1.它是命令的輸出,預設是螢幕,也可以是檔案標準錯誤標準錯誤是檔案件描述符2。它是命令錯誤碼率的輸出,預設是螢幕,同樣也可以是檔案.重新導向操作符 描述 > 將命令輸出寫入到檔案或裝置(如印表機),而不是命令提示字元視窗或控制代碼。< 從檔案而不是從鍵盤或控制代碼讀入命令輸入。>>
Time of Update: 2018-12-05
basename 是去除目錄後剩下的名字example:shell>temp=/home/temp/1.test shell>base=`basename $temp`(反引號) shell>echo $base結果為:1.testdirname 是取目錄example:shell>temp=/home/temp/1.test shell>dir=`dirname $temp`
Time of Update: 2018-12-05
1. ctrl+A 返回最前邊的字元。2. ctrl+R 查詢history時,提示用過的command3. vi中移動到行頭,按 數字0 ,移動到行尾按 $ 即可!4. wget httpd://afdasfd.com 或者 svn co httpd.//name.com 或者 svn export url都可以下載5. vi&vim copy: :1,6yàEnter (複製1-6行) y=yankdelete:
Time of Update: 2018-12-05
每一個在UNIX/Linux上工作的程式員可能都擅長shell指令碼編程。但大家解決問題的方式卻不盡相同,這要取決於對專業知識的掌握程度、使用命令的種類、看待問題的方式等等。對於那些處在shell指令碼編程初級階段的程式員來說,遵循一些恰當的做法可以協助你更快、更好的學習這些編程技巧。下面,我們就來討論這些能協助你學習shell指令碼編程的方法吧。1、多動手你想學習shell指令碼編程,這很不錯。於是你拿了一本書開始學習。一些人會首先通讀整本教材後再上機練習。這種方法可能適用於一些人,但我卻不太