Time of Update: 2018-12-03
好久沒寫指令碼了,都開始忘記了,今天嘗試著寫了下,好多東西都要現查了,以後會每天寫點,簡單或者難的,有技術的沒技術的,總之,這東西多練習才好。今天寫的這個指令碼先放這,一點點完善. #!/usr/bin/env bashPROC_FILE="/proc/stat"function getline { #Original data, it looks like "cpu 391560 66418 112967 3144467 53328 10123 1642 0 0" local
Time of Update: 2018-12-03
一、概論殼出於程式作者想對程式資源壓縮、註冊保護的目的,把殼分為壓縮殼和加密殼兩種UPX ASPCAK TELOCK PELITE NSPACK ...ARMADILLO ASPROTECT ACPROTECT EPE SVKP ...顧名思義,壓縮殼只是為了減小程式體積對資源進行壓縮,加密殼是程式輸入表等等進行加密保護。當然加密殼的保護能力要強得多!二、常見脫殼方法 預備知識1.PUSHAD (壓棧) 代表程式的進入點, 2.POPAD (出棧)
Time of Update: 2018-12-03
shell指令碼程式需要注意的幾點:<1>變數使用前不需提前聲明,直接使用即可;<2>變數不存在任何資料類型的概念,統一預設為字串;<3>賦值操作等號的任何一邊不能加空格,如有在操作符兩邊加空格的編程習慣時,需要注意這點;<4>以#號開始的地方被理解為注釋。例一:如下為一個讀取指定檔案中變數值的簡單程式(有三個變數:HOME PATH SAVE):FILENAME=pathfileif [ ! -f $FILENAME
Time of Update: 2018-12-03
參考文章:http://baike.baidu.com/view/2959759.htmhttp://blog.sina.com.cn/s/blog_62945c360100ffvk.htmlhttp://www.51testing.com/?44957/action_viewspace_itemid_90758.htmlshell與export命令export命令功能說明:設定或顯示環境變數。語 法:export
Time of Update: 2018-12-03
利用FileZilla和SSH Secure Shell Client通過ssh上傳和下載Ubuntu上檔案 l 利用FileZilla首先要啟動Ubuntu上的ssh服務 sudo /etc/init.d/ssh restart 然後啟動windows上的FileZilla軟體:如虛擬機器裡的Ubuntu的IP地址是 192.168.1.120,有root使用者,密碼假如是1,連接埠固定是22 在主機一欄填寫 sftp://192.168.1.120,其他的看: 然後點擊快速串連即可。
Time of Update: 2018-12-03
概述Linux Shell環境中支援輸入輸出重新導向,用符號“<”和“>”來表示0表示標準輸入1表示標準輸出2表示標準錯誤資訊輸出0、1、2可以用來指定需要重新導向的標準輸入或輸出,例如 2 >
Time of Update: 2018-12-03
在bash中,可以用以下三種方式來處理命令列參數,每種方式都有自己的應用情境。1.直接處理,依次對$1,$2,...,$n進行解析,分別手工處理;2.getopts來處理,單個字元選項的情況(如:-n 10 -f
Time of Update: 2018-12-03
轉至:http://goward.jimdo.com/2010/06/15/linux-shell%E5%90%84%E7%A7%8D%E5%BC%95%E5%8F%B7%E7%9A%84%E7%94%A8%E6%B3%95/這些字元之間的區別在於它們如何影響變數(如$NAME)和Shell命令(如date)。對於任何一對引號,shell都會把引號內的內容發送給命令。在下面的執行個體中使用echo命令。詳細地講,它們的區別如下:單引號(single quote)
Time of Update: 2018-12-03
一、需求無論何時,當你在Explorer視窗中建立、刪除或重新命名一個檔案夾/檔案,或者插入拔除移動儲存空間時,Windows總是能非常快速地更新它所有的視圖。有時候我們的程式中也需要這樣的功能,以便當使用者在Shell中作出建立、刪除、重新命名或其他動作時,我們的應用程式也能快速地隨之更新。二、原理Windows內部有兩個未公開的函數(註:在最新的MSDN中,已經公開了這兩個函數),分別叫做SHChangeNotifyRegister和SHChangeNotifyDeregister,可以實現
Time of Update: 2018-12-03
#1 給指令碼加上執行許可權chmod u+x a.sh, 而後就可以直接用全路徑來執行指令碼了,比如當前檔案夾下用./a.sh,如果如果指令碼所在目錄在PATH環境變數之中, 則直接用a.sh即可(這和運行我們自己編寫的程式是一個道理)#2 sh/bash ./a.sh 這種情況不需要指令碼具有執行許可權以上兩種執行方式都是在子shell中執行的,也就是說當前shell需要啟動另外一個shell,用來執行a.sh內的命令 #1 source ./a.sh #2
Time of Update: 2018-12-03
The Bash Debugger Project (bashdb) lets you set breakpoints, inspect variables, perform a backtrace, and step through a bash script line by line. In other words, it provides the features you expect in a C/C++ debugger to anyone programming a bash
Time of Update: 2018-12-03
http://coolshell.cn/articles/4990.html前言你是否覺得自己從學校畢業的時候只做過小玩具一樣的程式?走入職場後哪怕沒有什麼經驗也可以把以下這些課外練習走一遍(朋友的抱怨:學校課程總是從理論出發,作業項目都看不出有什麼實際作用,不如從工作中的需求出發)建議:不要亂買書,不要亂追新技術新名詞,基礎的東西經過很長時間積累而且還會在未來至少10年通用。回顧一下曆史,看看曆史上時間軸上技術的發展,你才能明白明天會是什麼樣。一定要動手,例子不管多麼簡單,建議至少自己手敲一遍
Time of Update: 2018-12-03
選項與參數:如下一個命令列:./test.sh -f config.conf -v –prefix=/home我們稱-f為選項,它需要一個參數,即config.conf, -v 也是一個選項,但它不需要參數。–prefix我們稱之為一個長選項,即選項本身多於一個字元,它也需要一個參數,用等號串連,當然等號不是必須的,/home可以直接寫在–prefix後面,即–prefix/home,更多的限制後面具體會講到。在bash中,可以用以下三種方式來處理命令列參數,每種方式都有自己的應用情境。*
Time of Update: 2018-12-03
#!/bin/bash compile=gcctest_filename=driver.c test_filename_base=${test_filename%.*}test_basename=test# echo and run the specified commandecho_and_run(){ echo $@ eval $@ if [ $? -ne 0 ]; then exit 1 fi }#################################
Time of Update: 2018-12-03
往往一個軟體的IOS越獄包需要很多渠道,以前我是修改一次渠道號,然後再重新打包,但隨著越來越多的渠道號,讓我望而生畏,只能找個自動的打包語句了。用shell語句很輕鬆的搞定此問題。分析一下,多個渠道的越獄包的不同之處,就是有一個渠道號不一樣,其他的代碼都一樣。而自動產生多渠道越獄包,也只是修改包中的一個渠道號。思路:a、先準備越獄包(例如TableTest.ipa)。b、解壓此越獄包,將產生payload檔案夾。c、修改channelID.txt檔案中的渠道號。d、壓縮payload檔案夾,產生
Time of Update: 2018-12-03
製作android SD啟動卡shell指令碼#! /bin/bashexport LC_ALL=Cif [ $# -ne 1 ]; then echo "Usage: $0 <drive>" exit 1;fiDRIVE=$1SKIPMEDIA=0OUT_READY=0 ROOT_DIR=$(pwd)PRODUCT='s5pc110'#位移OFFSET_AUTHKEY=1OFFSET_BL1=9OFFSET_BL2=57OFFSET_KERNEL=108
Time of Update: 2018-12-03
本帖最後由 ps49324955 於 2010-9-2 15:53 編輯整數比較 -------------------------------------------------------------eq 等於,如:if [ "$a" -eq "$b" ] -ne 不等於,如:if [ "$a" -ne "$b" ] -gt 大於,如:if [ "$a" -gt "$b" ] -ge 大於等於,如:if [ "$a" -ge "$b"
Time of Update: 2018-12-03
還記得以前那個用算素數的Regex嗎?編程這個世界太有趣了,總是能看到一些即別出心裁的東西。你有沒有想過在寫Shell指令碼的時候可以把你的變數和函數放到一個類中?不要以為這不可能,這不,我在網上又看到了一個把Shell指令碼整成物件導向的東西。Shell本來是不支援的,需要自己做點東西,能搞出這個事事的人真的是hacker啊。當然,這裡並不是真正的物件導向,因為其只是封裝罷了,還沒有支援繼承和多態。最變態的是他居然還支援typeid,靠!下面讓我們看看他是怎麼來做的。下面的指令碼可能會有點費解
Time of Update: 2018-12-03
1. shell使用引號(單引號/雙引號)和反斜線("\")用於向shell解譯器屏蔽一些特殊字元. 反引號[h2] 對shell則有特殊意義.1.1 單引號和反斜線 [h1] 可以阻止shell代入變數的值;1.2 雙引號不能阻止代入例如: sles10i32-1:han$ person=hansles10i32-1:han$ echo $personhansles10i32-1:han$ echo "$person"hansles10i32-1:han$ echo '$person'
Time of Update: 2018-12-03
1. 擷取使用者輸入. 參數是輸入提示, 輸入值的正確檢查的Regex, 輸入預設值. 返回的是使用者的正確輸入. function get_input(){ PROMPT=$1 REGEX=$2 DEFAULT=$3 if [ "X${DEFAULT}" = "X" ]; then echo "${PROMPT}" 1>&2 read INPUT CHK_RESULT=`echo "${INPUT}" |