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
Linux 的字串截取很有用。有八種方法。假設有變數 var=http://www.aaa.com/123.htm.1. # 號截取,刪除左邊字元,保留右邊字元。複製代碼 代碼如下:echo ${var#*//}其中 var 是變數名,# 號是運算子,*// 表示從左邊開始刪除第一個 // 號及左邊的所有字元即刪除 http://結果是 :www.aaa.com/123.htm2. ## 號截取,刪除左邊字元,保留右邊字元。複製代碼 代碼如下:echo ${var##*/}##*/
Time of Update: 2017-01-18
#!/bin/sh#測試各種字串比較操作。#shell中對變數的值添加單引號,爽引號和不添加的區別:對類型來說是無關的,即不是添加了引號就變成了字串類型,#單引號不對相關量進行替換,如不對$符號解釋成變數引用,從而用對應變數的值替代,雙引號則會進行替代#author:tenfyguoA="$1"B="$2"echo "輸入的原始值:A=$A,B=$B"#判斷字串是否相等if [ "$A" = "$B" ];thenecho "[ = ]"fi#判斷字串是否相等,與上面的=等價if [ "$A"
Time of Update: 2017-01-18
我的一位同事曾經問過我這樣一個問題:在 Linux 下,如何 刪除目錄中除某些檔案之外的所有檔案?當時,我告訴他可 以通過模式比對的方法解決。但其實,除此之外,還有其他 的方法,正所謂“條條大路通羅馬”。讓我們來逐一看看。假設要刪除 ~/Downloads 目錄中除 *.iso 和 *.zip 外的 所有檔案,那麼在 bash 中可以按以下方法處理:方法1:模式比對法複製代碼 代碼如下:shopt -s extglob # 確認開啟 extglob 選項cd ~/Downloadsrm -v !
Time of Update: 2017-01-18
前言: 無論什麼程式設計語言都離不開條件判斷。SHELL也不例外。複製代碼 代碼如下: if list then do something here elif list then
Time of Update: 2017-01-18
1.判斷變數複製代碼 代碼如下:read -p "input a word :" wordif [ ! -n "$word" ] ;then echo "you have not input a word!"else echo "the word you input is $word"fi2.判斷輸入參數複製代碼 代碼如下:#!/bin/bashif [ ! -n "$1" ] ;then
Time of Update: 2017-01-18
$#代表了命令列的參數數量,可以看以下執行個體:複製代碼 代碼如下:if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit 1; fi 位置參數 $1, $2,..., $N,$#代表了命令列的參數數量, $0代表了指令碼的名字-ne 不等於-----------------------shell 編程中使用到得if語句內判斷參數 –b
Time of Update: 2017-01-18
在指令碼編寫過程中,通常會涉及到參數的輸入。譬如,sh 1.sh 10 20,在執行1.sh這個指令碼中,10即為第一個參數,20即為第二個參數。有時,就會有這個疑惑,即shell指令碼最多可以支援多少個變數呢?疑惑之餘,編寫了如下指令碼,可求出Shell指令碼中可輸入參數的最大個數。該指令碼涉及到三個小指令碼:1.sh 2.sh 3.sh
Time of Update: 2017-01-18
在日常生活中,隨機數實際上經常遇到,想丟骰子,抓鬮,還有抽籤。呵呵,非常簡單就可以實現。那麼在做程式設計,真的要通過自己程式設計出隨機數那還真的不簡單了。現在很多都是作業系統核心會提供相應的api,這些原始參數是擷取一些電腦運行原始資訊,如記憶體,電壓,物理訊號等等,它的值在一個時間段可以保證是唯一的了。好了,廢話我就不說了。呵呵。shell指令碼程式我們有那些獲得隨機數方法呢?一、通過時間獲得隨機數(date)這個也是我們經常用到的,可以說時間是唯一的,也不會重複的,從這個裡面獲得同一時間的唯
Time of Update: 2017-01-18
shell可以在不調用第3方命令,表示不同進位資料。這裡總結以下表示方法。shell 指令碼預設數值是由10 進位數處理,除非這個數字某種特殊的標記法或首碼開頭. 才可以表示其它進位類型數值。如:以 0 開頭就是 8 進位.以0x 開頭就是16 進位數.使用 BASE#NUMBER 這種形式可以表示其它進位.BASE值:2-64.使用方法:其它進位轉為10進位八進位轉十進位:複製代碼 代碼如下:[chengmo@centos5 ~]$ ((num=0123));[chengmo@centos5
Time of Update: 2017-01-18
在進行文字檔進行處理時,對檔案件中的行、單詞、字元進行迭代和遍曆是非常常用的操作。而將一個簡單的迴圈用於迭代,再加上來自stdin或檔案的重新導向,這就是對檔案中的行、單詞、和字元進行迭代的基本方法。廢話不多說,馬上來看看怎麼樣實現吧。1、迭代文中的每一行使用while迴圈從標準輸入中讀取,因為要在標準輸入中讀取,就要對檔案進行重新導向,使它重新導向到stdin中,代碼如下:複製代碼 代碼如下:while read line; do echo $line;
Time of Update: 2017-01-18
不久前在書上看到兩個很有趣的命令——script和srciptreplay,它可以把終端會話記錄到一個檔案中,即是說我們可以通過終端會話來來製作命令列技巧視頻教程,也可以與他人分享會話檔案,而且產生的檔案還只是一般的文字檔,檔案的大小非常小,真是非常有意思。下面是本人寫的兩個shell程式,來方便進行這個有趣並有意義的操作。一、實現代碼檔案:Record.sh複製代碼 代碼如下:#! /bin/bash # Filename:Record.sh read -
Time of Update: 2017-01-18
說起函數調用,相信大家也不會陌生,然而對於初學Shell的我來說,Shell中函數調用方式卻有點讓我不太習慣,自己也走了不少的彎路,因為傳遞參數時出了一個很“自然”的錯誤,也讓我吃了不少的苦頭,所以總結一下Shell中函數的調用方法。一、Shell中函數的定義為了方便程式和管理和模組化並減少代碼的重複,函數的確是一個好東西。而Shell中函數的定義有兩種方法,如下:複製代碼 代碼如下:function fname(){ statements;}或複製代碼
Time of Update: 2017-01-18
最近管理的一批機器,有個需求是要統一修改一個帳號的使用者名稱密碼,比如將qa帳號的密碼改為1234,後來還為了指令碼化,很方便的執行,還使用了非互動式地修改使用者的密碼。簡單記錄一下吧。1. 互動式配置本機使用者的密碼:passwd 命令複製代碼 代碼如下:[root@host_221-81 ~]# passwd qaChanging password for user qa.New password: BAD PASSWORD: it is too shortBAD PASSWORD: is
Time of Update: 2017-01-18
在*unix系統中,常用的shell有sh,bash,csh/tcsh, ksh.sh來自於systemV的Unix,是傳統的Unix的shell,直到現在很多的系統管理員仍然喜歡使用sh。bash來自於BSD
Time of Update: 2017-01-18
csh執行個體 參考:複製代碼 代碼如下:#!/bin/csh -vx#csh -vx show the command before running to help debug#just to check syntax#csh -n $0#argvif ($#argv < 2) then echo "Sorry, but you entered too few parameters" echo
Time of Update: 2017-01-18
函數可以在shell script當中做一個類似自訂執行命令,最大的功能就是可以簡化我們很多的程式碼。需要注意的是shell script的執行方式是由上而下/由左而右,因此在shellscript當中的function的設定一定要在程式的最前面,這樣才能夠在執行時被找到可用的程式段。複製代碼 代碼如下:#!/bin/bash# Program# This program is to show the use of "function"# History# 2
Time of Update: 2017-01-18
該指令碼主要是從定義好的NTP伺服器列表擷取伺服器位址進行同步,如果第一個不成功,會繼續換下一個地址進行同步!不完善之處還請指出!複製代碼 代碼如下:#!/bin/bash# NTP網路時間校正指令碼#
Time of Update: 2017-01-18
作為一名Linux SA,日常營運中很多地方都會用到指令碼,而伺服器的ip一般採用靜態ip或者MAC綁定,當然後者比較操作起來相對繁瑣,而前者我們可以設定主機名稱、ip資訊、網關等配置。修改成特定的主機名稱在維護和管理方面也比較方便。如下指令碼用途為:修改ip和主機名稱等相關資訊,可以根據實際需求修改,舉一反三!#!/bin/sh #auto Change ip netmask gateway scripts #wugk 2012-12-17 cat << EOF
Time of Update: 2017-01-18
#/usr/bin/env bash# Name: get_network_info.sh# Author: Purple_Grape# This is a script to gather network information of your Linux system.# Test under Ubuntu 10.04 only.#----------------------------NIC=eth0MAC=`LANG=C ifconfig $NIC | awk '/HWaddr/{