Time of Update: 2017-01-18
裡提示一下:ubuntu的翻譯很多都是字面直譯,存在很多問題,所以建議大家參照我這裡的解釋。當然本來也是有些趕文的嫌疑,望指正。經常在linux上操作,有在不同的目錄下切換某幾個固定的命令,或者修改幾個固定的檔案,這時候,如果能在一個目錄下就操作他們,會是一件多麼輕鬆的事情。我們來看看連結命令ln全稱ln 全稱是link 顧名思義,這是一個建立一個連結。怎麼去理解呢?它的功能類似於Mac OS的別名或者Windows的捷徑,
Time of Update: 2017-01-18
二元比較操作符,比較變數或者比較數字.注意數字與字串的區別. 整數比較 -eq 等於,如:if [ "$a" -eq "$b" ] -ne 不等於,如:if [ "$a" -ne "$b" ] -gt 大於,如:if [ "$a" -gt "$b" ] -ge 大於等於,如:if [ "$a" -ge "$b" ] -lt 小於,如:if [ "$a" -lt "$b" ] -le 小於等於,如:if [ "$a" -le "$b" ] < 小於(需要雙括弧),如:(("$a" <
Time of Update: 2017-01-18
在日常生活中,隨機數實際上經常遇到,想丟骰子,抓鬮,還有抽籤。呵呵,非常簡單就可以實現。那麼在做程式設計,真的要通過自己程式設計出隨機數那還真的不簡單了。現在很多都是作業系統核心會提供相應的api,這些原始參數是擷取一些電腦運行原始資訊,如記憶體,電壓,物理訊號等等,它的值在一個時間段可以保證是唯一的了。好了,廢話我就不說了。呵呵。shell指令碼程式我們有那些獲得隨機數方法呢?一、通過時間獲得隨機數(date)這個也是我們經常用到的,可以說時間是唯一的,也不會重複的,從這個裡面獲得同一時間的唯
Time of Update: 2017-01-18
在做shell批次程式時候,經常會涉及到字串相關操作。有很多命令語句,如:awk,sed都可以做字串各種操作。 其實shell內建一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程式等時間,因此速度會非常的快。一、判斷讀取字串值 運算式 含義 ${var} 變數var的值, 與$var相同
Time of Update: 2017-01-18
首先建立一個expect指令碼ssh_expect,檔案內容如下:#!/usr/bin/expect -fset hostname [lindex $argv 0]set user [lindex $argv 1]set passwd [lindex $argv 2]set timeout 30set force_conservative 1if {$force_conservative} { set send_slow {128 .1}}spawn ssh
Time of Update: 2017-01-18
當兩台LINUX主機之間要互傳檔案時可使用SCP命令來實現,建立信任關係之後可不輸入密碼。把你的本地主機使用者的ssh公匙檔案複製到遠程主機使用者的~/.ssh/authorized_keys檔案中假設本地主機linux100,遠程主機linux200 一,在linux100主機裡的使用者 運行#ssh-keygen -t rsa結果如下QUOTE: Generating public/private rsa key pair. Enter file in which to save the
Time of Update: 2017-01-18
一、for迴圈1.數欄位形式複製代碼 代碼如下:for i in {1..10}do echo $idone2.詳細列出(字元且項數不多)複製代碼 代碼如下:for File in 1 2 3 4 5 do echo $File done3.對存在的檔案進行迴圈複製代碼 代碼如下:for shname in `ls *.sh`do
Time of Update: 2017-01-18
shell也有一個真實的偵錯模式。如果在指令碼"strangescript" 中有錯誤,您可以這樣來進行調試: sh -x strangescript 這將執行該指令碼並顯示所有變數的值。 shell還有一個不需要執行指令碼只是檢查文法的模式。可以這樣使用: sh -n your_script 這將返回所有語法錯誤。 linux/unix shell l指令碼調試方法 Shell提供了一些用於調試指令碼的選項,如下所示: -n
Time of Update: 2017-01-18
如果跟shell指令碼打交道,遍曆一個時間範圍是很常見的事情,那麼今天就跟大家分享一下:複製代碼 代碼如下:#!/usr/bin/env bashdate1="$1"date2="$2"echo "date1: $date1"echo "date2: $date2"tempdate=`date -d "-0 day $date1" +%F`enddate=`date -d "-0 day $date2" +%F`tempdateSec=`date -d "-0 day $date1"
Time of Update: 2017-01-18
擷取單個檔案行數檔案:test1.sh行數:20方法一複製代碼 代碼如下:awk '{print NR}' test1.sh|tail -n1如圖所示:方法二複製代碼 代碼如下:awk 'END{print NR}' test1.sh如圖所示:方法三複製代碼 代碼如下:grep -n "" test1.sh|awk -F: '{print '}|tail -n1如圖所示:方法四複製代碼 代碼如下:sed -n '$=' test1.sh如圖所示:方法五複製代碼 代碼如下:wc -l test1.
Time of Update: 2017-01-18
查詢ip地址所用的組件複製代碼 代碼如下:wget http://rfyiamcool.googlecode.com/files/nali-0.1.tar.gz tar zxvf nali-0.1.tar.gz cd nali-0.1 ./configure && make && make install 步驟和nginx是差不多的,只是取日誌裡面的ip地址的方法不一樣~~~複製代碼 代碼如下:#!/bin/bash
Time of Update: 2017-01-18
第一種方法(gzexe):這種加密方式不是非常保險的方法,但是能夠滿足一般的加密用途,可以隱蔽指令碼中的密碼等資訊。它是使用系統內建的gzexe程式,它不但加密,同時壓縮檔。使用方法:複製代碼 代碼如下:gzexe file.sh它會把原來沒有加密的檔案備份為 file.sh~ ,同時 file.sh 即被變成加密檔案;第二種方法(shc):使用 shc 對 Linux shell
Time of Update: 2017-01-18
在shell指令碼中,發現case語句的一個問題。就是指定小寫字母[a-z]和大寫字母[A-Z]的這種方法不管用了。出現如下情況:複製代碼 代碼如下:[root@station1 ~]# cat case.sh#!/bin/bashwhile :doecho -n "input a letter: "read varcase "$var" in [a-z]) echo "Lowercase letter";; [A-Z]) echo "Uppercase letter";
Time of Update: 2017-01-18
一、Linux shell 截取字元變數的前8位,有方法如下:複製代碼 代碼如下:1.expr substr “$a” 1 82.echo $a|awk ‘{print substr(,1,8)}'3.echo $a|cut -c1-84.echo $5.expr $a : ‘\(.\\).*'6.echo $a|dd bs=1 count=8 2>/dev/null二、按指定的字串截取1、第一種方法:${varible##*string}
Time of Update: 2017-01-18
1、shell變數聲明的判斷 運算式含義${var}變數var的值, 與$var相同${var-DEFAULT}如果var沒有被聲明, 那麼就以$DEFAULT作為其值 *${var:-DEFAULT}如果var沒有被聲明, 或者其值為空白, 那麼就以$DEFAULT作為其值 *${var=DEFAULT}如果var沒有被聲明, 那麼就以$DEFAULT作為其值 *${var:=DEFAULT}如果var沒有被聲明, 或者其值為空白, 那麼就以$DEFAULT作為其值 *${var+OTHER}
Time of Update: 2017-01-18
linux的硬體裝置在/dev目錄下,光碟機也是其中。/dev/cdrom表示光碟機,掛載光碟機的方法如下(以root身份):複製代碼 代碼如下:mkdir /mnt/cdrommount -t auto -o ro /dev/cdrom /mnt/cdrom #不加參數也能自動掛上。以下是操作的螢幕複製內容:複製代碼 代碼如下:linux@cdyemail:/$ ls /mnt
Time of Update: 2017-01-18
使用文法:chkconfig[--add][--del][--list][系統服務] 或chkconfig[--level < 等級代號>][系統服務][on/off/reset]chkconfig在沒有參數運行時,顯示用法。如果加上服務名,那麼就檢查這個服務是否在當前運行級啟動。如果是,返回true,否則返回false。如果在服務名後面指定了on,off或者reset,那麼chkconfi
Time of Update: 2017-01-18
功能:把指定的輸入檔案拷貝到指定的輸出檔案中,並且在拷貝過程中可以進行格式轉換。可以用該命令實現DOS下的 diskcopy命令的作用。先用dd命令把磁碟片上的資料寫成硬碟的一個寄存檔案,再把這個寄存檔案寫入第二張磁碟片上,完成diskcopy的功能。需要注意的是,應該將硬碟上的寄存檔案用rm命令刪除掉。系統預設使用標準輸入檔案和標準輸出檔案。 文法:dd [選項] 複製代碼 代碼如下:if =輸入檔案(或裝置名稱)。 of =輸出檔案(或裝置名稱)。 ibs = bytes
Time of Update: 2017-01-18
方法一:複製代碼 代碼如下:/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"or/sbin/ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p'方法二: 複製代碼 代碼如下:local_host="`hostname --fqdn`"local_ip=`host $local_host 2&
Time of Update: 2017-01-18
一行就能搞定,輸出32或者64。可以用“getconf WORD_BIT”和“getconf LONG_BIT”獲得word和long的位元,64位系統中應該分別得到32和64。參考代碼如下:複製代碼 代碼如下:ldconfigif [ $(getconf WORD_BIT) = '32' ] && [ $(getconf LONG_BIT) = '64' ] ; then ln -s /usr/local/mysql/lib/mysql /usr/lib64