Time of Update: 2018-12-07
1、說明strace - trace system calls and signals2、option1)strace -p pid 跟蹤某個後台進程2)strace -o filename 把跟蹤結果輸出到檔案3)strace -T 記錄每個系統調用花費的時間,可以看看哪個系統調用時間長參考4)strace -t(或者 -tt)記錄每個系統調用發生是的時間(時分秒的格式)5)strace -s 1024 顯示系統調用參數時,字串顯示的長度,預設是32,如果字串參數很長,很多資訊顯示不出來。6
Time of Update: 2018-12-07
1、運算式書寫:[2] regex_ip="(2[0-4][0-9]|25[0-5]|1[0-9][0-9]|[1-9]?[0-9])(\.(2[0-4][0-9]|25[0-5]|1[0-9][0-9]|[1-9]?[0-9])){3}"意思是 (0-255)(點號 0-255)3次echo "123.1.1.1" |grep -E "$regex_ip"方法二:read ipecho $ip |awk -F '.' '{ if ( ( $1 > 256 || $1 < 0 )
Time of Update: 2018-12-07
> 數組NAMES=(max helen sam zach)NAMES[*] 取出所有資料,然後作為一個元素返回NAMES[@] 取出所有資料,但是返回的仍然是一個數組,可以用來完成數組的賦值> export使父進程的變數對子進程可見、可用;一旦利用expert生命一個變數作為參數,shell就會把變數的值傳遞到子進程得到調用環境中,使用的是傳值調用 每個子進程在使用變數時得到變數的副本。eg. export cheese=american或 cheese=american
Time of Update: 2018-12-07
1. Linux 指令碼編寫基礎1.1 文法基本介紹1.1.1 開頭程式必須以下面的行開始(必須方在檔案的第一行): #!/bin/sh 符號#!用來告訴系統它後面的參數是用來執行該檔案的程式。在這個例子中我們使用/bin/sh來執行程式。 當編輯好指令碼時,如果要執行該指令碼,還必須使其可執行。 要使指令碼可執行:編譯 chmod +x filename 這樣才能用./filename 來運行1.1.2 注釋
Time of Update: 2018-12-07
1、whichwhich - shows the full path of (shell) commands.which [option]2、whereiswhereis - locate the binary, source, and manual page files for a commandwhereis [option] filename3、findfind - search for files in a directory hierarchyfind [option] [path]
Time of Update: 2018-12-07
1、重新導向相關檔案描述符1)檔案描述符① 0 標準輸入,/dev/stdin -> /proc/self/fd/0② 1 標準輸出,/dev/stdout -> /proc/self/fd/1③ 2 標準錯誤輸出,/dev/stderr -> /proc/self/fd/22)重新導向① > 是1>的簡寫② < 是0<的簡寫③ > 將命令輸出寫入到檔案或裝置(例如印表機)中,而不是寫在命令提示字元視窗中。④ >>
Time of Update: 2018-12-07
1、在執行crontab命令時,與直接在shell中執行程式有點區別,要引起注意。如ps aux | grep file直接在shell中執行,則搜尋範圍只在top中當前執行的進程,而寫入crontab執行,則crontab中所有語句也成為了搜尋範圍。count = `ps aux | grep file | wc -l`2、寫的指令碼前面加/bin/sh如果要用給指令碼執行許可權的話,第一行必須聲明該指令碼由什麼來解釋。比如:#! /usr/local/php/bin/php#!
Time of Update: 2018-12-07
Linux Shell中的延時函數在 linux shell 指令碼中經常需要做一些延時處理。所以經常要用到 sleep 或 usleep 函數。下面來說一下 sleep 和 usleep 的區別:sleep : 預設以秒為單位。usleep : 預設以微秒為單位。1s = 1000ms = 1000000ussleep 不但可以用秒為單位,還可以指定延遲的單位,例如:sleep 1s 表示延遲一秒sleep 1m 表示延遲一分鐘sleep 1h 表示延遲一小時sleep 1d
Time of Update: 2018-12-07
使用死迴圈消耗CPU資源,如果伺服器是有多顆CPU,可以選擇消耗多少顆CPU的資源:#! /bin/sh # filename killcpu.shif [ $# != 1 ] ; then echo "USAGE: $0 <CPUs>" exit 1;fifor i in `seq $1`do echo -ne " i=0; while true do i=i+1; done" | /bin/sh & pid_array[$i]=$! ;donefor i in "
Time of Update: 2018-12-07
二十. 通過管道組合Shell命令擷取系統運行資料: 1. 輸出當前系統中佔用記憶體最多的5條命令: #1) 通過ps命令列出當前主機正在啟動並執行所有進程。 #2) 按照第五個欄位基於數值的形式進行正常排序(由小到大)。 #3) 僅顯示最後5條輸出。 /> ps aux | sort -k 5n | tail -5 stephen 1861 0.2 2.0 96972 21596 ? S Nov11 2:24
Time of Update: 2018-12-07
該系列將重點介紹Linux Shell中的進階提示,其主要面向有一定經驗的Shell開發人員、Linux系統管理員,以及Linux的愛好者。部落格中的樣本主要來源於網路和一些經典書籍,在經過本人的收集和整理之後,以系列部落格的形式呈現給諸位。如果大家有更多更好的Shell指令碼經典樣本,且願意在這裡與我們一同分享的話,可以以郵件、部落格回複等形式與我聯絡,我將會盡量保證該系列的持續更新。一、將輸入資訊轉換為大寫字元後再進行條件判斷:
Time of Update: 2018-12-07
作業管理舉例來說,我們在登陸 bash 後, 想要一邊複製檔案、一邊進行資料搜尋、一邊進行編譯,還可以一邊進行 vi 程式撰寫! 當然我們可以重複登陸那六個文字介面的終端機環境中,不過,能不能在一個 bash 內達成? 當然可以啊!就是使用 job control 啦!進行工作管理的行為中, 其實每個工作都是目前 bash 的子程式,亦即彼此之間是有相關性的。 我們無法以 job control 的方式由 tty1 的環境去管理 tty2 的 bash
Time of Update: 2018-12-07
如果沒有本文檔案的話,就用echo直接把本文打出來就行了,如:echo "this is content" | mutt -s "this is subject" -a /path/yourfile abc@local.domain -c bbb@local.domain如果有本文檔案的話就用cat /path/contentfile | mutt -s "this is subject" -a /path/yourfile abc@local.domain -c
Time of Update: 2018-12-07
描述:雖然問題不大,但是確實挺噁心,我的目標是處理access日誌日誌為了方便處理,採用了\t作為分隔,資料需要過濾再處理不想先過濾成臨時檔案,再處理,這樣等於多讀了很多行採用讀取每行的資料,再處理的方式while read linedodone<$file問題:但是出現一個問題:read line後line中的\t不見了,導致我awk處理時找不到\t,這時預設的分隔字元是空格,可是資料本身也會有空格,就會混淆原因:尋找後得知read
Time of Update: 2018-12-07
網上找了個例子,簡單實用如下.可以有一個後台進程,在timer逾時採取一些操作. #!/bin/ksh#Delaytime=0AlarmHandler(){echo "Get SIGALAM"KillSubProcsexit 14}KillSubProcs(){#kill cbmecho "it's time out,kill cbm here"if [ $? -eq 0 ];thenecho "Sub-processes
Time of Update: 2018-12-07
目 錄1、 Shell簡介 1.1. 什麼是shell 1.2. shell分類 2、 Shell文法 2.1. 定義變數 2.2. 變數類型 2.2.1. 字元集變數 2.2.2. 數字常量定義 2.2.3. 數組 2.2.4. 系統變數 2.3. 運算子與運算式 2.3.1. 運算子 2.3.2. 字串運算式(判斷條件命令if) 2.3.3.
Time of Update: 2018-12-07
一個簡單的shell程式 下面直接來看一個shell程式。-----------------#!/bin/sh# This is to show what a example looks like.echo "Our first example"echo # This inserts an empty line in outputecho "We are
Time of Update: 2018-12-07
## check the pid of such program#checkPid() { if [ -z "`ps x | grep $1 | grep -v grep | grep -v $0 | awk '{print $1}'`" ]; then echo "The $1 program cant run well." fi} 簡單說明:ps 報告程式狀況。ps x 顯示所有程式,不以終端機來區分。$1 函數的第一個參數,如:
Time of Update: 2018-12-07
如下用實際檔案代替file1 1、查詢file1裡面空行的所在行號 grep -n "^$" stl_stable_sort.cc 參考:grep 常用命令2、查詢file1以abc結尾的行 grep -n "^.*abc$" stl_stable_sort.cc 參考:Regex30分鐘入門教程 grep 常用命令 3、列印出file1檔案第1到第三行 sed -n '1,3'p stl_stable_sort.cc 參考:sed 指令簡單使用二、如何將本地80
Time of Update: 2018-12-07
Microsoft Windows XP [Version 5.1.2600](C) Copyright 1985-2001 Microsoft Corp.D:\Documents and Settings\Administrator>%comspec% /c nbtstat -A 192.168.1.22 > c:mac.txtD:\Documents and Settings\Administrator>%comspec% /c nbtstat -A 192.168.1.2