Time of Update: 2017-01-18
Ctrl + a 切換到命令列開始 Ctrl + e 切換到命令列末尾 Ctrl + l 清除螢幕內容 Ctrl + u 清除剪下游標之前的內容 Ctrl + k 剪下清除游標之後的內容 Ctrl + y 複製剪下板裡的內容 Ctrl + h 類似於退格鍵 Ctrl + r 在曆史命令中尋找 (這個非常好用,輸入關鍵字就調出以前的命令了) Ctrl + c 終止命令 Ctrl + d 退出shell Ctrl + z 轉入後台運行.. alt鍵比較少用,因為很多地方與遠程登陸工具是有衝突的..
Time of Update: 2017-01-18
我看了下,linux下的/proc/net/dev記錄了每塊網卡發送和接受的包和位元組數。因此萌生想法,寫了一個。運行效果: 複製代碼 代碼如下: [root@74-82-173-217 ~]# ./net.sh Current Ip: inet addr:74.82.173.217 Bcast:74.82.173.223 Mask:255.255.255.224 Summry info: RX bytes:203692709 (194.2 MiB) TX bytes:93525930 (89.
Time of Update: 2017-01-18
•深入淺出Shell編程: Shell 變數 ◦1 系統變數 ◦2 Shell使用者變數 ■2.1 基礎 ■2.2 提示 ■2.3 shell 中的數組 ◦3 shell 環境變數 先不要管Shell的版本,來看看Shell 變數,在Shell中有三種變數:系統變數,環境變數,使用者變數。其中使用者變數在編程過程中使用最多,系統變數在對參數判斷和命令傳回值判斷會使用,環境變數主要是在程式啟動並執行時候需要設定。 1 系統變數
Time of Update: 2017-01-18
複製代碼 代碼如下: #!/bin/bash SEND_THREAD_NUM=13 tmp_fifofile="/tmp/$$.fifo" # 指令碼啟動並執行當前進程ID號作為檔案名稱 mkfifo “$tmp_fifofile" # 建立一個隨機fifo管道檔案 exec 6<>"$tmp_fifofile" # 定義檔案描述符6指向這個fifo管道檔案 rm $tmp_fifofile for ((i=0;i<$SEND_THREAD_NUM;i++));do echo
Time of Update: 2017-01-18
大部分人在寫Shell 過濾進程的時候 都會使用 grep 在 ps aux 的輸出結果中尋找指定的進程,但此時也會把 grep 進程也顯示出來 比如尋找 pptpd 進程,會匹配出來兩條: 複製代碼 代碼如下: [root@selboo ~]# ps aux | grep pptp root 20191 0.0 0.2 5108 704 pts/2 R+ 16:58 0:00 grep pptp root 22054 0.0 0.1 1952 608 ? Ss Oct22 0:00 /usr/
Time of Update: 2017-01-18
1 利用pgrep 匹配名字 複製代碼 代碼如下: if test $( pgrep -f $1 | wc -l ) -eq 0 then echo "進程不存在" else echo "存在進程" fi 以下是補充內容: 當前系統中的進程: apple@ubuntu:~$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 13:57 ? 00:00:02 /sbin/init root 2 0 0 13:57 ? 00:00:00
Time of Update: 2017-01-18
第一個指令檔複製代碼 代碼如下:#!/bin/bashecho "This is my first bash code!"exit 0重新導向符號和數學計算複製代碼 代碼如下:#!/bin/bashecho -n "The time and date are: "datevalue1=100 #等號前後不允許出現空格value2=$value1echo -n "value1="echo $value1echo -n "value2="echo $value2ls -l | sort
Time of Update: 2017-01-18
複製代碼 代碼如下:工作中字串操作舉例 filename='/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg' #下面是使用shell字串操作 buName1=${filename#*/jobs/} #去除'/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg'首碼得到'CnClickstat/DFSLoader/loader.cfg' buName1=${buName1%%/*}
Time of Update: 2017-01-18
1、錯誤方法舉例 a) var=1+1 echo $var 輸出的結果是1+1,悲劇,呵呵 b) var=1 var=$var+1 echo $var 輸出結果是1+1,依然悲劇,呵呵 2、正確方法 1)使用let var=1 let "var+=1" echo $var 輸出結果為2,這次沒有悲劇 注意: a)經我測試let幾乎支援所有的運算子,在網上看到一篇文章說“let不支援++、--和逗號、(、)”,但經我測試自加、自減、以及括弧的優先順序都得到了很好的支援 b)方冪運算應使用“**”
Time of Update: 2017-01-18
HBase是Google Bigtable的開源實現,它利用Hadoop HDFS作為其檔案儲存體系統,利用Hadoop MapReduce來處理HBase中的海量資料,利用Zookeeper作為協同服務。 1. 簡介 HBase是一個分布式的、面向列的開來源資料庫,源於google的一篇論文《bigtable:一個結構化資料的分布式儲存系統》。HBase是Google Bigtable的開源實現,它利用Hadoop HDFS作為其檔案儲存體系統,利用Hadoop
Time of Update: 2017-01-18
以下面的格式提供運算運算式:$(( expression )) $ echo $((5*(3+3))) 30 $ result = $(($myvar-10)) shell提供方便的數之間的進位轉換: $ echo $((013))#八進位 $ echo $((0xA4))#十六進位 還可以使用以下格式指定 2 到 64 之間的任意進位: $((BASE#NUMBER)) echo $((8#377)) echo $((16#D8)) 在 Shell 中進行進位轉換的另一個訣竅是使用 bc,
Time of Update: 2017-01-18
一、先說一下Shell指令碼語言自身的局限性 作為解釋型的指令碼語言,天生就有效率上邊的缺陷。儘管它調用的其他命令可能效率上是不錯的。 Shell指令碼程式的執行是順序執行,而非並存執行的。這很大程度上浪費了可能能利用上的系統資源。 Shell每執行一個命令就建立一個新的進程,如果指令碼編寫者沒有這方面意識,編寫指令碼不當的話,是非常浪費系統資源的。 二、我們在Shell指令碼語言的局限性上儘可能的通過我們有經驗的編碼來提高指令碼的效率。
Time of Update: 2017-01-18
#尋找目前的目錄中是否存在指定目錄,若不存在,則建立之複製代碼 代碼如下:function mkdir_1{ if test ! -d $1 then mkdir $1 fi}#指定檔案中的"prefix = .*"串替換為"prefix=/home/gnome-unicore-install2/usr/" #可以用來作為sed用法的參考複製代碼 代碼如下:function modify_
Time of Update: 2017-01-18
1、列印一些頭資訊command << dilimiter…………dilimiter以分界符號dilimiter中的內容作為命令的標準輸入常用在echo命令中,這樣就避免了沒輸出一行就要使用一個echo命令,同時,輸出格式的調整也相應變得簡單了。例如: echo << something_message**********************hello, welcome to use my shell script*********
Time of Update: 2017-01-18
3.1 尋找文本grep:使用POSIX定義的基本Regex(BRE)。egrep:使用擴充Regex(ERE)。fgrep:快速grep。使用最佳化的演算法,匹配固定字串而非Regex。1992 POSIX標準將這三個改版整合成一個grep程式。$ who | grep -F austen使用-F選項尋找固定字串。事實上,只要匹配的模式裡未含有Regex的meta字元,則grep預設行為模式就等同於使用了-F。3.2.6 在文字檔裡進行替換一般來說,執行文本替換的正確程式應該是sed -
Time of Update: 2017-01-18
4.1 排序文本4.1.1 行的排序未提供命令列選項時,整個記錄會根據當前locale所定義的次序排序。在傳統的C locale中,也就是ASCII順序。4.1.2
Time of Update: 2017-01-18
1、backup_run.sh複製代碼 代碼如下: #!/bin/sh # backup_run # script to run the backups # loads in a setting file for the user to change
Time of Update: 2017-01-18
在部署一個任務時,其中有一項必須的過程就是將一些檔案,如安裝包發送到大量的伺服器上去。雖然已有宇哥的指令碼可用:通過paramiko模組提供的ssh和scp功能編寫的python指令碼。但我到現在還在對python的恐懼之中(雖然已經在空閑時間努力去學習了),所以使用了shell和expect指令碼結合的方式,寫了這個批量scp的指令碼工具。
Time of Update: 2017-01-18
比較兩個字串是否相等的辦法是: if [ "$test"x = "test"x ]; then 這裡的關鍵有幾點: 1 使用單個等號 2 注意到等號兩邊各有一個空格:這是unix shell的要求 3 注意到"$test"x最後的x,這是特意安排的,因為當$test為空白的時候,上面的運算式就變成了x = testx,顯然是不相等的。而如果沒有這個x,運算式就會報錯:[: =: unary operator expected 二元比較操作符,比較變數或者比較數字.注意數字與字串的區別.
Time of Update: 2017-01-18
1、查看主機網卡流量複製代碼 代碼如下:#!/bin/bash#network#Mike.Xuwhile : ; do time='date +%m"-"%d" "%k":"%M' day='date +%m"-"%d' rx_before='ifconfig eth0|sed -n "8"p|awk '{print