Time of Update: 2018-07-28
No.1:使用 expr eg. r=`expr 4 + 5` echo $r注意: 4 + 5 運算式中運算子和運算元之間要有空格 # 終於找到原因了,給力啊。 此外,對於乘法運算子 * ,使用expr需要加上\進行轉義 即 r=`expr 4 \* 5`又及:expr運算式中沒有乘冪**運算 No.2:使用 $(( )) eg. r=$(( 4 + 5 ))
Time of Update: 2018-07-29
最近項目中需要在在java中執行shell命令,用了最常見方式,代碼如下: public class ShellUtil { public static String runShell(String shStr) throws Exception { Process process; process = Runtime.getRuntime().exec(new
Time of Update: 2018-07-29
下面附上通過 shell命令列非互動操作資料庫的方法: mysql -hhostname -Pport -uusername -ppassword -e 相關mysql的sql語句,不用在mysql的提示符下運行mysql,即可以在shell中操作mysql的方法。 #!/bin/bash HOSTNAME="127.0.0.1" #資料庫資訊 PORT="3306"
Time of Update: 2018-07-29
set命令 set命令作用主要是顯示系統中已經存在的shell變數,以及設定shell變數的新變數值。使用set更改shell特性時,符號”+”和”-“的作用分別是開啟和關閉指定的模式。set命令不能夠定義新的shell變數。如果要定義新的變數,可以使用declare命令以變數名=值的格式進行定義即可。 文法 set(選項)(參數) 選項
Time of Update: 2018-07-29
#!/bin/bashfor_1 () { echo "for 1 show item" for var in item1 item2 ... itemN do echo ${var}; done}for_2 () { echo "for 2 show 1~5" for loop in 1 2 3 4 5 do echo "The value is :
Time of Update: 2018-07-29
Linux反選刪除檔案 最簡單的方法是 # shopt -s extglob (開啟extglob模式) # rm -fr !(file1) 如果是多個要排除的,可以這樣: # rm -rf !(file1|file2) Linuxrm刪除指定檔案外的其他檔案方法匯總
Time of Update: 2018-07-29
要獲得目錄下(包括子目錄)所有檔案名稱,路徑和檔案大小用shell應該是最簡便的shell指令碼: lsdir.sh #!/bin/bashfunction ergodic(){ for file in `ls $1` do if [ -d $1"/"$file ] then ergodic $1"/"$file else local path=$1"/"$file
Time of Update: 2018-07-29
最粗略版 Shell代碼 find . -name "*.java"|xargs wc -l|grep "total"|awk '{print $1}'
Time of Update: 2018-07-29
在linux下通過命令列或shell指令碼執行jar包時,如果該jar包沒有引用外部jar包,則非常容易,只需使用如下命令就可以實現: java -jar Test.jar #注意,如果在打包jar檔案時,沒有指定Main入口所在的類,則需要在後面加上類的命名,如com.test.HelloWord但是實際應用或者生產環境,根本不可能有如果容易的需求,那如果該jar需要引用外部jar包,那又當如何?。需要做一些設定工作,下面是實現步驟:
Time of Update: 2018-07-29
[root@node1 ~]# spark-shell --master yarn-clientWarning: Master yarn-client is deprecated since 2.0. Please use master "yarn" with specified deploy mode instead.Using Spark's default log4j profile:
Time of Update: 2018-07-29
shell中條件判斷if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在則為真。 [ -b FILE ] 如果 FILE 存在且是一個塊特殊檔案則為真。 [ -c FILE ] 如果 FILE 存在且是一個字特殊檔案則為真。 [ -d FILE ] 如果 FILE 存在且是一個目錄則為真。 [ -e FILE ] 如果 FILE 存在則為真。 [ -f FILE ] 如果 FILE 存在且是一個普通檔案則為真。 [ -g
Time of Update: 2018-07-29
在某個makefile檔案中通過include引入某個檔案進來 Include $(shell ./getname) 而getname中的內容即為: pwd=$(pwd); if [ "${pwd#*/zloader.}" = "$pwd" ];then echo Makefile.cpci else echo Makefile.${pwd#*/zloader.} fi 一直沒看懂${pwd#*/zloader.
Time of Update: 2018-07-29
如何?取出檔案****定的行內容 代碼: 如果你只想看檔案的前5行,可以使用head命令, 如: head -5 /etc/passwd 如果你想查看檔案的後10行,可以使用tail命令, 如: tail -10 /etc/passwd 你知道怎麼查看檔案中間一段嗎。你可以使用sed命令 如: sed -n '5,10p' /etc/passwd 這樣你就可以只查看檔案的第5行到第10行。 如何尋找含特定字串的檔案 代碼: 例如尋找目前的目錄下含有"the string you
Time of Update: 2018-07-29
由於Shell不支援直接多行注釋,總結了以下Shell注釋多行的變通方法 一、通過Here Documents和:實現 1、最簡單方法 :<<BLOCK ....注釋內容 BLOCK 把輸入重定義到前面的命令,但是:是空命令,所以就相當於注釋了。 如果注釋中有反引號的命令就會報錯。反引號部分沒被注釋掉,例如ab=`ls -l abc`就不會被注釋掉。 2、解決注釋中有反引號的問題 A、方法一 :<<BLOCK' ...
Time of Update: 2018-07-29
因實際開發需要,在叢集上多個機器上執行相同的命令,比如執行一個指定的指令碼、刪除相同目錄下的檔案(這個得謹慎~~)等,組內的成員開發了一個 allscp (可以批量執行scp 命令來同步線上代碼)非常好用,我自己也寫了一個,主要是使用ssh 登陸到一個伺服器上,然後執行一個指定的命令。 先貼Shell 代碼: #!/bin/bashif [ "$#" -ne 2 ] ; then echo "USAGE: $0 -f
Time of Update: 2018-07-29
有的時候運行shell指令碼出錯,一般是找不到該shell檔案,大部分是因為該指令碼是在windows下產生的再copy到linux下,用下面的命令檢查一下: $ head -1 yourscript | od -c and see how it ends: This is wrong 0000000 # ! / b i n / b a s h \r \n This is correct: 0000000 # !
Time of Update: 2018-07-29
在linux編寫shell程式並執行的步驟 簡介 我是第一次寫部落格,不知道應該有什麼格式和注意事項,請大家多多指教。 今天是要講講怎樣在linux命令列環境下建立一個指令碼程式並啟動並執行。 這對於稍有經驗的人來說都不是事,但對於初次接觸linux的新手來說可能會遇到一點麻煩,所以我今天詳細講講。 進入vim編輯器,寫代碼 vi編輯器是所有linux/UNIX作業系統中的標準編輯器,也是目前linux系統最基本的文字編輯器,主要工作在字元模式下,
Time of Update: 2018-07-29
轉載自: http://blog.csdn.net/askbai666888/article/details/9995837 (1)tree -a 顯示所有檔案和目錄 (2)tree -d 顯示目錄名稱而非內容 (3)tree -f 在每個檔案或目錄之前,顯示完整的相對路徑名稱 (4)tree -F 在執行檔案,目錄,Socket,符號串連,管道名稱名稱,各自加上”*”,”/”,”=”,”@”,”|”號。 (5)tree -r 以相反次序排列 (6)tree -t
Time of Update: 2018-07-29
匯入公開金鑰到信任認證 keytool -import -file catserver.cer -keystore "$JAVA_HOME/lib/security/cacerts" -alias catserver 刪除公開金鑰別名 keytool -delete -alias catserver -keystore cacerts -storepass changeit 遠端偵錯代碼 export
Time of Update: 2018-07-29
該工具Jar包可在: http://download.csdn.net/detail/shenjianox/7769783 ganymed-ssh2簡介: Ganymed SSH-2 for Java是用純Java實現SSH-2協議的一個包。在使用它的過程中非常容易,只需要指定合法的使用者名稱口令, 或者授權認證檔案,就可以建立到遠程Linux主機的串連,在建立起來的會話中調用該Linux主機上的指令檔,執行相關操作。 使用方法: 將