Time of Update: 2018-12-06
history 顯示命令曆史列表↑(Ctrl+p) 顯示上一條命令↓(Ctrl+n) 顯示下一條命令!num 執行命令曆史列表的第num條命令!! 執行上一條命令!?string? 執行含有string字串的最新命令Ctrl+r 然後輸入若干字元,開始向上搜尋包含該字元的命令,繼續按Ctrl+r,搜尋上一條匹配的命令Ctrl+s 與Ctrl+r類似,只是正向檢索Alt+< 曆史列表第一項Alt+> 曆史列表最後一項Ctrl+f 游標向前移動一個字元,相當與->Ctrl+b
Time of Update: 2018-12-06
先寫一些基本文法:1、字串判斷str1 = str2 當兩個串有相同內容、長度時為真str1 != str2 當串str1和str2不等時為真-n str1 當串的長度大於0時為真(串非空)-z str1 當串的長度為0時為真(空串)str1 當串str1為非空時為真2、數位判斷int1 -eq int2 兩數相等為真int1 -ne int2 兩數不等為真int1 -gt
Time of Update: 2018-12-06
距離第一次post上一直在改變系列已經有段時間了,那時我,剛接觸shell指令碼,工作中臨時要用到。學一樣,愛一樣吧,一步一步來。1,單引號和雙引號單引號告訴shell忽略所有特殊字元,而雙引號只要求忽略大多數,具體說,括在雙引號中的三種特殊字元不被忽略:$,\,` ,即雙引號會解釋字串的特別意思,而單引號直接使用字串.2,使用sh,./和source跑指令碼的區別:前者指令碼中如果出現非內建指令碼比如子shell,會在建立一個子shell環境,後者則不會。3,編譯型語言和解釋型語言編譯型語言:
Time of Update: 2018-12-06
四則運算和比較1.操作符(let 標誌符)+ 加法- 減法* 乘法/ 除法** 冪運算 3 let "z=5**3"% 模數 bash$ expr 5 % 32.比較符 (注意[ ]和變數之間需要空格" ") 整型比較符 -eq
Time of Update: 2018-12-06
mac上的eclipse經常需要手動的去關閉java進程,略麻煩。在.bash_profile裡寫了段簡單的shell,用連接埠號碼關閉進程,主要用的是lsof -ti:9001.之後$source .bash_Profile即可使用killps命令。 1 killprocess() { 2 pid=`lsof -n -i4TCP:9001 | grep LISTEN | awk '{print $2}'` 3 if [ $pid ] 4 then 5 kill -9
Time of Update: 2018-12-06
wc命令的功能為統計指定檔案中的位元組數、字數、行數, 並將統計結果顯示輸出。 文法:wc [選項] 檔案… 說明:該命令統計給定檔案中的位元組數、字數、行數。如果沒有給出檔案名稱,則從標準輸入讀取。wc同時也給出所有指定檔案的總統計數。字是由空白字元區分開的最大字串。 該命令各選項含義如下: - c 統計位元組數。 - l 統計行數。 - w 統計字數。 這些選項可以組合使用。 輸出資料行的順序和數目不受選項的順序和數目的影響。總是按下述順序顯示並且每項最多一列。
Time of Update: 2018-12-06
.tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (註:tar是打包,不是壓縮!) ——————————————— .gz 解壓1:gunzip FileName.gz 解壓2:gzip -d FileName.gz 壓縮:gzip FileName.tar.gz 和 .tgz 解壓:tar zxvf FileName.tar.gz 壓縮:tar zcvf FileName.tar.gz DirName —————————
Time of Update: 2018-12-06
在命令列(就是開始——運行——輸入cmd)模式下輸入adb shell命令一般會報兩種錯誤,一是“adb不是內部命令或外部命令,也不是可啟動並執行程式或批次檔”,二是“error:device not found”。
Time of Update: 2018-12-06
1. 二進位輸出檔案cat可以開啟文字檔,不能輸出檔案的二進位形式。od命令和hexdump都可以完成二進位輸出的任務,具體如下:(1)od命令od -tx4 -An -v -w1 Dos_setenv.sh-t表示輸出類型 -tx表示輸出十六進位 -tx4表示4個位元組一組-A表示輸出地址位移 -An表示不在輸出中包含地址位移資料,這個一般需要-v表示不用*省略,這個一般需要-w表示一行輸出幾個位元組,注意是-tx後數位倍數即可Dos_setenv.sh表示檔案名稱 其他具體看od
Time of Update: 2018-12-06
假設有log-XXX1,log-XXX2,log-XXX3....等檔案,但是由於開發板空間有限,因此要控制檔案的數量為3個,而且保留最新的那一個,因此想寫一個指令碼在每次系統啟動時執行一些操作。1 #!/bin/sh2 3 4 if [ $(ls -l | grep "log-*" | wc -l) > 3 ]5 then6 echo "file > 3"7 rm -r $(ls -rt | head -n2)8 fils -l:目的是按行列出檔案grep
Time of Update: 2018-12-06
寫一個Shell指令碼檢測某個進程是否在運行 1 #!/bin/sh 2 3 CMD=pgrep 4 #進程名 5 PPROC=test 6 #迴圈,為了讓指令碼一直運行監控 7 while : 8 do 9 if [ -n "`$CMD $PPROC`" ]10 then echo "test is ok"11 else12 echo "test is killed"13 fi14 # 每次監測時間60秒15 sleep 6016
Time of Update: 2018-12-06
大家是否有過這樣的經曆,在命令列裡輸入adb shell,然後使用命令操作你的手機或模擬器,但是那些命令都是常見Linux命令的閹割縮水版,用起來很不爽。是否想過在Android上使用較完整的shell呢?用BusyBox吧。不論使用adb串連裝置使用命令列還是在手機上直接用terminal emulator都可以。一、什麼是BusyBox ?BusyBox 是標準 Linux 工具的一個單個可執行實現。BusyBox 包含了一些簡單的工具,例如 cat 和
Time of Update: 2018-12-06
mac上的終端使用的是Bourne-Again Shell命令,簡稱bashbash是GNU組織開發和推廣的一個項目,是對Bourne shell的擴充Bourne shell是 UNIX 最初使用的 Shell,作者Steven Bournebash是許多Linux平台的內定Shell,傳統UNIX上還有許多Shell,包括tcsh、csh、ash、bsh、kshShell Script大致都類同,一個Shell
Time of Update: 2018-12-06
#!/bin/bash#code by xiaodao 2012-06-05sourceipaname="test.ipa"appname="test.app"targetName="test"version="1_2_0"zipTime=`date
Time of Update: 2018-12-06
linux bash shell之變數替換::=句法、=句法、:-句法、-句法、=?句法、?句法、:+句法、+句法變數替換和變數預設值設定是緊密相關的,至少從概念出發是如此。參數擴張是將類似於變數的參數用它的值來替換。例如以“echo $VAR”的形式調用一個簡單的變數。此外還有更多的特性可以訪問。這個句法還包含一些沒有擴充的特性,雖然這些特性自身很有意義。首先,這類特性執行預設變數賦值。使用這些特性時,整個運算式需要用花括弧括起來。: ${VAR:=”some
Time of Update: 2018-12-06
編寫代碼在計劃好要程式幹什麼以及如何使用程式的使用變得更加簡單易學之後,程式員就必須以電腦能夠理解的方式把他的想法記錄下來,告訴電腦他想幹什麼。這就是要用到的所謂的代碼。一般按照如下順序組織自己的思維:1. 決定讓電腦做哪些任務2. 確定電腦執行任務的順序3. 從shell指令碼語言中選擇適當的命令來執行那些任務4. 用linux文字編輯器編輯一個shell指令碼,並按任務的執行順序來組織命令關於編程的幾個術語輸送給電腦的單一一條指令稱之為命令——command集合在一起的多個命令稱之為代碼——
Time of Update: 2018-12-06
摘抄自:ABS_GUIDE:http://www.tldp.org/LDP/abs/abs-guide.pdflinux中shell變數$#,$@,$0,$1,$2的含義解釋: 變數說明: $$ Shell本身的PID(ProcessID) $! Shell最後啟動並執行後台Process的PID $? 最後啟動並執行命令的結束代碼(傳回值) $- 使用Set命令設定的Flag一覽 $* 所有參數列表。如"$*"用「"」括起來的情況、以"$1 $2 …
Time of Update: 2018-12-06
declare或typeset內建命令(它們是完全相同的)可以用來限定變數的屬性.這是在某些程式設計語言中使用的定義類型不嚴格的方式。命令declare是bash版本2之後才有的。命令typeset也可以在ksh指令碼中運行。declare/typeset 選項-r 唯讀 1 declare -r var1(declare -r var1與readonly var1作用相同)這大致和C的const限定詞相同.一個試圖改變唯讀變數值的操作將會引起錯誤資訊而失敗.-i 整數
Time of Update: 2018-12-06
摘抄自:ABS_Guide 譯者 楊春敏 黃毅 什麼時候不使用 Shell 指令碼? 資源密集型的任務,尤其在需要考慮效率時(比如,排序,hash 等等)需要處理大任務的數學操作,尤其是浮點運算,精確運算,或者複雜的算術運算(這種情況一般使用 C++或 FORTRAN 來處理) 有跨平台移植需求(一般使用 C 或 Java)複雜的應用,在必須使用結構化編程的時候(需要變數的類型檢查,函數原型,等等) 對於影響系統全域性的關鍵任務應用。
Time of Update: 2018-12-06
for迴圈樣本for迴圈文法:for VARIABLE in 1 2 3 4 5 .. Ndo command1 command2 commandNdone #!/bin/bashfor i in 1 2 3 4 5doecho "Welcome $i times"donebash version 3.0+版本#!/bin/bash for i in {1..5}do echo "Welcome $i times"donebash