常用指令碼命令集(轉)
常用指令碼命令集(轉)[@more@]如何用指令碼實現分割檔案程式碼:#!/bin/bashif [ $# -ne 2 ]; thenecho 'Usage: split file size(in bytes)'exitfifile=$1size=$2if [ ! -f $file ]; thenecho "$file doesn't exist"exitfi#TODO: test if $size is a valid integerfilesize=`/bin/ls -l $file | awk '{print $5}'`echo filesize: $filesizelet pieces=$filesize/$sizelet remain=$filesize-$pieces*$sizeif [ $remain -gt 0 ]; thenlet pieces=$pieces+1fiecho pieces: $piecesi=0while [ $i -lt $pieces ];doecho split: $file.$i:dd if=$file of=$file.$i bs=$size count=1 skip=$ilet i=$i+1doneecho "#!/bin/bash" > mergeecho "i=0" >> mergeecho "while [ $i -lt $pieces ];" >> mergeecho "do" >> mergeecho " echo merge: $file.$i" >> mergeecho " if [ ! -f $file.$i ]; then" >> mergeecho " echo merge: $file.$i missed" >> mergeecho " rm -f $file.merged" >> mergeecho " exit" >> mergeecho " fi" >> mergeecho " dd if=$file.$i of=$file.merged bs=$size count=1 seek=$i" >> mergeecho " let i=$i+1" >> mergeecho "done" >> mergechmod u+x merge'如何查詢日期為某一天的檔案程式碼:#!/bin/sh# The right of usage, distribution and modification is here by granted by the author.# The author deny any responsibilities and liabilities related to the code.#OK=0A=`find $1 -print`if expr $3 == 1 >/dev/null ; then M=Jan ; OK=1 ; fiif expr $3 == 2 >/dev/null ; then M=Feb ; OK=1 ; fiif expr $3 == 3 >/dev/null ; then M=Mar ; OK=1 ; fiif expr $3 == 4 >/dev/null ; then M=Apr ; OK=1 ; fiif expr $3 == 5 >/dev/null ; then M=May ; OK=1 ; fiif expr $3 == 6 >/dev/null ; then M=Jun ; OK=1 ; fiif expr $3 == 7 >/dev/null ; then M=Jul ; OK=1 ; fiif expr $3 == 8 >/dev/null ; then M=Aug ; OK=1 ; fiif expr $3 == 9 >/dev/null ; then M=Sep ; OK=1 ; fiif expr $3 == 10 >/dev/null ; then M=Oct ; OK=1 ; fiif expr $3 == 11 >/dev/null ; then M=Nov ; OK=1 ; fiif expr $3 == 12 >/dev/null ; then M=Dec ; OK=1 ; fiif expr $3 == 1 >/dev/null ; then M=Jan ; OK=1 ; fiif expr $OK == 1 > /dev/null ; thenls -l --full-time $A 2>/dev/null | grep "$M $4" | grep $2 ;elseecho Usage: $0 path Year Month Day;echo Example: $0 ~ 1998 6 30;fi如何計算當前目錄下的檔案數和目錄數程式碼:# ls -l * |grep "^-"|wc -l ---- to count files# ls -l * |grep "^d"|wc -l ----- to count dir如何只列子目錄?程式碼:ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux)ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solaris)如何實現取出檔案中特定的行內容程式碼:如果你只想看檔案的前5行,可以使用head命令,如: head -5 /etc/passwd如果你想檢視檔案的後10行,可以使用tail命令,如: tail -10 /etc/passwd你知道怎麼檢視檔案中間一段嗎?你可以使用sed命令如: sed -n '5,10p' /etc/passwd 這樣你就可以只檢視檔案的第5行到第10行。如何查詢含特定字串的檔案程式碼:例如查詢當前目錄下含有"the string you want find..."字串的檔案: $find . -type f -exec grep “the string you want find...” {} ; -print如何列出目錄樹程式碼:下面的短小的shell程式可以列出目錄樹, 充分利用了sed強大的模式匹配能力. 目錄樹形式如下: . `----shellp `----updates `----wu-ftpd-2.4 | `----doc | | `----examples | `----src | | `----config | | `----makefiles | `----support | | `----makefiles | | `----man | `----util 指令碼如下: #!/bin/sh # dtree: Usage: dtree [any directory] dir=${1:-.} (cd $dir; pwd) find $dir -type d -print | sort -f | sed -e "s,^$1,," -e "/^$/d" -e "s,[^/]*/([^/]*)$,`----1," -e "s,[^/]*/,| ,g"如何實現取出檔案中特定的列內容程式碼:我們經常會遇到需要取出分欄位的檔案的某些特定欄位,例如/etc/password就是透過“:”分隔各個欄位的。可以透過cut命令來實現。例如,我們希望將系統賬號名儲存到特定的檔案,就可以: cut -d: -f 1 /etc/passwd > /tmp/users -d用來定義分隔符,預設為tab鍵,-f表示需要取得哪個欄位。 當然也可以透過cut取得檔案中每行中特定的幾個字元,例如: cut -c3-5 /etc/passwd 就是輸出/etc/passwd檔案中每行的第三到第五個字元。 -c 和 -f 引數可以跟以下子引數: N 第N個字元或欄位 N- 從第一個字元或欄位到檔案結束 N-M 從第N個到第M個字元或欄位 -M 從第一個到第N個字元或欄位在vim中實現批次加密程式碼:密碼中還是不能帶空格,不管了,能加密就好,先這麼用著。============================================================#!/bin/bash# Encrypt file with vimif (test $# -lt 2) thenecho Usage: decrypt password filenameelsevim -e -s -c ":set key=$1" -c ':wq' $2echo "$2 encrypted."fi============================================================[weeder@SMTH weeder]$ for file in *.txt ; do encrypt test $file ; donetest2.txt encrypted.test4.txt encrypted.test9.txt encrypted.kick.txt encrypted.echo "$2 encrypted."fi[weeder@SMTH weeder]$ for file in *.txt ; do encrypt test $file ; donetest2.txt encrypted.test4.txt encrypted.test9.txt encrypted.kick.txt encrypted.too_old.txt encrypted.too_old_again.txt encrypted.bg5.txt encrypted.[weeder@SMTH weeder]$$@等特定shell變數的含義程式碼:在shell指令碼的實際編寫中,有一些特殊的變數十分有用:$# 傳遞到指令碼的引數個數$* 以一個單字串顯示所有向指令碼傳遞的引數。與位置變數不同,此選項引數可超過9個$$ 指令碼執行的當前程式ID號$! 後臺執行的最後一個程式的程式ID號$@ 與$#相同,但是使用時加引號,並在引號中返回每個引數$- 顯示shell使用的當前選項,與set命令功能相同$? 顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。如何使程式的執行結果同時定向到螢幕和檔案程式碼:program_name |tee logfile這樣程式執行期間的顯示都記錄到logfile同時顯示到標準輸出(螢幕)。如何用sendmail給系統所有使用者送信程式碼:首先在aliases檔案裡面建立一個alias:alluser: :include:/etc/mail/allusers並執行newaliases使之生效,然後在/etc/mail/allusers裡面列出所有使用者,可以使用下面的命令:awk -F: '$3 > 100 { print $1 }' /etc/passwd > /etc/mail/allusers如何查詢某條命令的相關庫檔案程式碼:在製作自己的發行版時經常需要判斷某條命令需要哪些庫檔案的支援,以確保指定的命令在獨立的系統內可以可靠的執行。在Linux環境下透過ldd命令即可實現,在控制檯執行:ldd /bin/ls即可得到/bin/ls命令的相關庫檔案列表。如何使用host命令獲得更多資訊程式碼:Host能夠用來查詢域名,然而它可以得到更多的資訊。host -t mx linux.com可以查詢出Linux.com的MX記錄,以及處理Mail的Host的名字。Host -l linux.com會返回所有註冊在linux.com下的域名。host -a linux.com則會顯示這個主機的所有域名資訊。如何停止終端多個程式程式碼:以下是指令碼: echo "系統當前使用者" echo "---------------" who | awk '{print $2}' echo "---------------" echo "輸入要殺死終端的終端號:" read $TTY kill -9 ${K}=`ps -t $TTY | grep [0-9] | awk '{print $1}'`
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-940269/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python 常用指令碼Python指令碼
- SQLServer 常用指令碼SQLServer指令碼
- 常用shell指令碼指令碼
- MySQL 常用指令碼MySql指令碼
- Linux 常用命令集合Linux
- Mac 常用命令集合Mac
- 常用指令碼學習手冊——Bat指令碼指令碼BAT
- Bash 常用指令碼片段指令碼
- MHA常用指令碼簡介指令碼
- linux常用的shell指令碼Linux指令碼
- sqlmap常用繞過指令碼SQL指令碼
- linux 常用Mysql指令碼命令LinuxMySql指令碼
- CentOS7常用命令集合CentOS
- Dynamics CRM 2013 常用JS指令碼JS指令碼
- bat批處理常用指令碼BAT指令碼
- Shell指令碼常用命令整理指令碼
- ORACLE常用定時備份指令碼Oracle指令碼
- redis常用資料型別操作命令集錦Redis資料型別
- Aircrack-ng工具集常用命令集合AI
- 常用指令
- 常用指令碼:獲取隱含引數指令碼
- 【Ubuntu】Ubuntu常用的更新、清理命令指令碼Ubuntu指令碼
- ubuntu常用指令Ubuntu
- git常用指令Git
- Sybase 常用指令
- npm常用指令NPM
- Windows常用指令Windows
- Git 常用指令Git
- Dockerfile常用指令Docker
- 【vue】常用指令Vue
- 常用 Git 指令Git
- elasticsearch 索引清理指令碼及常用命令Elasticsearch索引指令碼
- Python 常用的 50 個提效小指令碼Python指令碼
- Wifite工具常用命令集合大學霸IT達人WiFi
- 無線密碼離線破解工具Pyrit常用命令集合大學霸IT達人密碼
- Docker 常用操作指令Docker
- vue之常用指令Vue
- 常用的方便指令
- Xcode 常用 LLDB 指令XCodeLLDB