shell中可能經常能看到:>/dev/null 2>&1 命令的結果可以通過%>的形式來定義輸出 /dev/null 代表空裝置檔案 > 代表重新導向到哪裡,例如:echo "123" > /home/123.txt 1 表示stdout標準輸出,系統預設值是1,所以">/dev/null"等同於"1>/dev/null" 2 表示stderr標準錯誤 & 表示等同於的意思,2>&1,表示2的輸出重新導向等同於1 那麼本文標題的語句: 1>
例如,在多個系統、應用程式安裝之後,我們往往需要對很多設定檔進行修改,用vi編輯器意味著耗費時間、重複勞動,而sed就可將我們從繁重的重複勞動中解放出來。sed的調用方式:1、sed [sed選項] 'sed命令' 要修改的檔案2、sed [sed選項] -f sed指令碼 要修改的檔案3、sed指令碼 [sed選項]
sed編輯器逐行處理檔案,並將輸出結果列印到螢幕上。sed命令將當前處理的行讀入模式空間(pattern space)進行處理,sed在該行上執行完所有命令後就將處理好的行列印到螢幕上(除非之前的命令刪除了該行),sed處理完一行就將其從模式空間中刪除,然後將下一行讀入模式空間,進行處理、顯示。處理完檔案的最後一行,sed便結束運行。sed在臨時緩衝區(模式空間)對檔案進行處理,所以不會修改原檔案,除非顯示指明-i選項。與模式空間和暫存空間(hold space)相關的命令:n 輸出模式空間行,
shell字串比較、判斷是否為數字 二元比較操作符,比較變數或者比較數字.注意數字與字串的區別. 整數比較 -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" ] <
* -b 當file存在並且是塊檔案時返回真 * -c 當file存在並且是字元檔案時返回真 * -d 當pathname存在並且是一個目錄時返回真 * -e 當pathname指定的檔案或目錄存在時返回真 * -f 當file存在並且是正規檔案時返回真 * -g 當由pathname指定的檔案或目錄存在並且設定了SGID位時返回為真 * -h 當file存在並且是符號連結檔案時返回真,該選項在一些老系統上無效 * -k 當由pathname指定的檔案或目錄存在並且設定了“粘滯”位時返回真 *
文本終端的顏色可以使用“ANSI非常規字元序列”來產生。舉例: echo -e "\033[44;37;5m ME \033[0m COOL" 以上命令設定背景成為藍色,前景白色,閃爍游標,輸出字元“ME”,然後重新設定螢幕到預設設定,輸出字元 “COOL”。“e”是命令 echo 的一個可選項,它用於啟用特殊字元的解析器。“\033”引導非常規字元序列。“m”意味著設定屬性然後結束非常規字元序列,這個例子裡真正有效字元是 “44;37;5” 和“0”。
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
複製代碼 代碼如下:#!/usr/bin/expect -fset timeout 30set host "192.168.1.198"spawn ssh $hostexpect_before "no)?" {send "yes\r" }sleep 1expect "password:"send "123456\r"expect "*#"send "echo my name is fivetrees > /root/fivetrees.txt\r"interact##-----------
一、通過定時收發email檢測網路連通性複製代碼 代碼如下:#/bin/bashecho "Daily test mail" > state.txtmail -s Server_State abc@jb51.net < state.txtrm -df
將bill 檔案夾下的檔案按一定規則(檔案名稱奇偶)拷貝至bill1,bill2 檔案夾下。更新bill1,bill2 處理進度標籤(更新file.max)file3 為bill 目錄下當前最新檔案的標籤,正常情況下每分鐘會更新(格式為:20121016122100)複製代碼 代碼如下:#!/bin/bash#for wanggy 2012/10/16bill1=/infosms/bill1bill2=/infosms/bill2file_max=`cat file3`cd
複製代碼 代碼如下:#!/bin/bash#********************************##2013-01-11 17:00:00 wanggy exp ##note:ping monitor ##********************************#set -uping_fun(){&
最近一段時間,在處理Shell 指令碼時候,遇到時間的處理問題。 時間的加減,以及時間差的計算。一、時間加減這裡處理方法,是將基礎的時間轉變為時間戳記,然後,需要增加或者改變時間,變成 秒。如:1990-01-01 01:01:01 加上 1小時 20分處理方法:a.將基礎時間轉為時間戳記 time1=$(date +%s -d '1990-01-01 01:01:01')echo $time1631126861
關於linux數組定義,以及產生方法,請看:linux shell 動態產生 數組系列 seq提示 。這裡我主要說的是高效產生list 字串,還有數組方法。 一、seq方法產生:[chengmo@centos5 shell]$ aNumList=$(seq 100);[chengmo@centos5 shell]$ echo $aNumList1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
在之前的部落格中,曾經寫了自動化測試程式的實現方法,現在開發人員需要知道被測試的進程(在此指運行在LINUX上的主進程的)在異常退出之前的進程的運行狀態,例如記憶體的使用率、CPU的使用率等。現用shell指令碼實現指定進程的運行狀態。直接上代碼。#!/bin/shecho "`date`"echo "Start $0---------"echo ""#每十秒監視一下sec=10#取得指定進程名為mainAPP,記憶體的使用率,進程運行狀態,進程名稱eval $(ps | grep
1.shell 指令碼是區分小寫2.Unix特殊字元有: ( ; $ ? & * () [] ` ‘ “ + 使用其時要進行轉義()3.Shell的注釋以#開頭4.函數的定義Function fuction_name(){Command to execute}調用時直接用function_name.5.控制結構1)If...then語句If [ test_command ]ThenCommandsif2)If...then...else語句If [ test_command
利用here文檔 複製代碼 代碼如下: #!/bin/sh ftp -ivn 210.29.28.124 <<EOF user yun yun2011 lcd /home/veyun cd /home/veyun/yhb get v bye EOF 解釋: -i :關閉多檔案傳輸過程中的互動提示,所以不會再有讓使用者輸入使用者名稱和密碼的提示 -n:阻止了初始串連時的自動登入 -v:將ftp命令設定為verbose模式,從而可以在會話時看到其中的命令
簡單Google了一下,未果,於是發郵件請教了一下,很快就有了回複。 複製代碼 代碼如下: Path = "C:\test.jpg" arr = Split(Path,"\") FileName = arr(Ubound(arr)) FolderPath = Left(Path, Len(Path) - Len(FileName) - 1) Set objShell = CreateObject("Shell.Application") Set objFolder =
經常會在部落格或者論壇看到類似下面的命令 大括弧擴充 Brace expansion { } shell 作用 cp /etc/httpd/httpd.{,.bakup}或者是 mv resume{z,}.doc那麼,在uinx / linux shell命令中是什麼意思?起什麼作用呢?{ } 並沒有什麼實際的含義,但是卻可以作為Brace
在Linux系統中進行日常營運或者是編寫指令碼時,變數是再熟悉不過的了,但這些變數都有哪些類型,具體的用法又有哪些差異呢?本文整理分享給大家:一、bash變數類型:本地變數局部變數環境變數位置變數特殊變數(內建)二、本地變數:varname=value:範圍為整個bash進程可以使用;變數命名規範:1. 只能含字母、數字和底線,並且以字母和底線開頭2. 最好不要跟系統已有的環境變數重名3. 見名知意三、局部變數:local
cat ipcalc.sh#!/bin/bashIP=$1if [ -z $IP ]thenecho -e “\e[31;42m sh ipcalc.sh IP \e[0m"exitfiwhile read MASKdomin=`/usr/bin/ipcalc $MASK|awk '/HostMin:/{print $2}'`max=`/usr/bin/ipcalc $MASK|awk '/HostMax:/{print $2}'`MIN=`echo $min|awk -F"."