linux shell命令常用方法總結

來源:互聯網
上載者:User

日期
# 取前一天
date -d ’1 days ago’ +%Y-%m-%d

命令?e名?定功能: (alias)
alias ll=’ls -al’

一些特殊值
$$:(?於本 shell 的 PID)
$!:得到子進程的進程PID,例如nohup的命令可以通過這個擷取PID
$?:(?於上???絛兄噶畹幕?髦?
$#: 參數個數

$@ :代表『 “$1″ “$2″ “$3″ “$4″ 』
$* :代表『 “$1c$2c$3c$4″ 』,其中 c ?櫸指餱衷?/p>

declare
數值計算要用 declare -i sum=100+12
也可以用sum=$((100+12))計算
[root@www ~]# declare [-aixr] variable
?????擔?br />-a :?⑨崦婷? variable 的??刀?x成?殛?列 (array) ?型
-i :?⑨崦婷? variable 的??刀?x成?檎??底 (integer) ?型
-x :用法? export 一?櫻?褪?⑨崦嫻 variable ?成?境??擔?br />-r :?⒆??翟O定成? readonly ?型,???擋豢殺桓??熱藎?膊荒 unset

數組
var[1]=”small min”
echo $(var[1])

刪除/替換字元
echo ${PATH#/usr*:} #從前到後開始刪除掉第一個合格字元
echo ${PATH##/usr*:} #從前到後開始刪除掉所有合格字元
也可以從後面開始,就是把#號替換成%號
echo ${PATH/usr/USR} #替換
echo ${PATH//usr/USR} #替換所有

&&和||
可以把多條命令串起來,例如
ls ./test/||mkdir ./test/ #如果目錄不存在,建立一個

判斷
使用中括弧時注意空格必須要有[ -e "xxx" ]

文法

if [ "$name" == "Fatkun" ]; then
    echo "Hi!Fatkun"
elif [ ... ]; then
    echo "..."
else
    echo "..."
fi
 

?y?的?蘇I 代表意?
1. ?於某???n名的『?n案?型』判?啵? test -e filename 表示存在否
-e ?『?n名』是否存在?(常用)
-f ?『?n名』是否存在且??n案(file)?(常用)
-d ?『?n名』是否存在且?檳誇?(directory)?(常用)
-b ?『?n名』是否存在且?橐?? block device ?置?
-c ?『?n名』是否存在且?橐?? character device ?置?
-S ?『?n名』是否存在且?橐?? Socket ?n案?
-p ?『?n名』是否存在且?橐?? FIFO (pipe) ?n案?
-L ?『?n名』是否存在且?橐?????n?
2. ?於?n案的?嘞??y,如 test -r filename 表示可?否 (但 root ?嘞蕹S欣??
-r ??y??n名是否存在且具有『可?』的?嘞蓿
-w ??y??n名是否存在且具有『可??』的?嘞蓿
-x ??y??n名是否存在且具有『可?絛小壞?嘞蓿
-u ??y??n名是否存在且具有『SUID』的?儺裕
-g ??y??n名是否存在且具有『SGID』的?儺裕
-k ??y??n名是否存在且具有『Sticky bit』的?儺裕
-s ??y??n名是否存在且?欏悍強瞻?n案』?
3. ????n案之?的比?,如: test file1 -nt file2
-nt (newer than)判? file1 是否比 file2 新
-ot (older than)判? file1 是否比 file2 ?
-ef 判? file1 ? file2 是否?櫫??n案,可用在判? hard link 的判定上。 主要意?在判定,????n案是否均指向同一?? inode 哩!
4. ?於???整?抵?g的判定,例如 test n1 -eq n2
-eq ??抵迪嗟 (equal)
-ne ??抵擋壞 (not equal)
-gt n1 大於 n2 (greater than)
-lt n1 小於 n2 (less than)
-ge n1 大於等於 n2 (greater than or equal)
-le n1 小於等於 n2 (less than or equal)
5. 判定字串的?料
test -z string 判定字串是否? 0 ?若 string ?榭兆執??t? true
test -n string 判定字串是否非? 0 ?若 string ?榭兆執??t? false。
?: -n 亦可省略
test str1 = str2 判定 str1 是否等於 str2 ,若相等,?t回? true
test str1 != str2 判定 str1 是否不等於 str2 ,若相等,?t回? false
6. 多重?l件判定,例如: test -r filename -a -x filename
-a (and)???r同?r成立!例如 test -r file -a -x file,?t file 同?r具有 r ? x ?嘞?r,才回? true。
-o (or)???r任何一??成立!例如 test -r file -o -x file,?t file 具有 r 或 x ?嘞?r,就可回? true。
! 反相??B,如 test ! -x file ,? file 不具有 x ?r,回? true

case文法
case  $??得?Q in   <==??字? case ,?有??登壩繡X字?
  "第一?????熱?quot;)   <==每?????熱萁ㄗh用?引?括起?恚?P?字?t?樾±ㄌ? )
 程式段
 ;;            <==每????e?尾使用?????的分??硤?理!
  "第二?????熱?quot;)
 程式段
 ;;
  *)                  <==最後一?????熱荻?? * ?澩?硭?釁淥??br /> 不包含第一?????熱菖c第二?????熱蕕鈉淥?淌?絛卸?br /> exit 1
 ;;
esac                  <==最?的 case ?尾!『反????』思考一下!
while文法
while [ condition ]  <==中括??鵲??B就是判?嗍?br />do            <==do 是?圈的?始!
 程式段落
done          <==done 是?圈的?束
for…do…done文法
for var in con1 con2 con3 ...
do
 程式段
done
for((i=1;i<100;i++));do
echo $i
done
軟連結替換
ln -snf ./hive-0.7.1/ hive

利用grep和gawk,xargs來kill
xargs會把gawk的每一行變成kill的參數,如 kill 1 2 3

grep -v 是排除

ps -ef|grep scott|grep -v grep|gawk {‘print $1′}|xargs kill

sed命令替換文本
sed -i "s/oldstring/newstring/g" `grep oldstring -l yourdir` #在原檔案修改
sed "s/oldstring/newstring/g" file >file.new # 輸出到其他檔案
tar
tar --exclude=./xxx/Cache --exclude=*/log/*  -cvzf xxx_`date +"%Y-%m-%d_%H_%M"`.tar.gz ./xxx

擷取機器IP

 

/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.