shell 常用

./sss xxx

$1 $2

$#

$0

$?

tail -1

head -1

awk '{ if ($1=="FIND") print $2 }'

如何调试bash脚本

#!/bin/bash -xv

function aa(){

echo "xx"

}

let $a=$b+$c

$a=(($b+$c))

if[ -f /xx/xx ]

then

xxx

fi


for i in $(ls)

do

ccc

done


head -10 xx|tail -1

命令“export” 有什么用 ?

使变量在子shell 中可用。


nohup command&

'和" 引号有什么区别 ?

' - 当我们不希望把变量转换为值的时候使用它。

" - 会计算所有变量的值并用值代替。

exec >xxx.txt 2>&1

echo ${variable:x:y} 

 如果给定字符串variable="User:123:321:/home/dir",如何只用echo命令获取home_dir ?

echo ${variable#*:*:*:}

echo ${variable##*:}

 如何从上面的字符串中获取“User” ?

echo ${variable%:*:*:*}

echo ${variable%%:*}

awk -F: '$3<100' /etc/passwd

IFS=":"

OFS=":"


${#variable}

${variable:-10}和${variable: -10} 有什么区别?

${variable:-10} - 如果之前没有给 variable 赋值则输出 10;如果有赋值则输出该变量

${variable: -10} - 输出 variable 的最后 10 个字符


如何只用echo 命令替换字符串的一部分 ?

echo ${variable//pattern/replacement}

tr '{:lower:}' '{:upper:}'


cat /etc/passwd|wc -l

 不用 wc 命令如何计算字符串中的单词数目 ?

set ${string}

echo $#


"export $variable"或"export variable" 哪个正确 ?

export variable

ls ?[ab]*

echo $string|tr -d ""

for((i=0;i<=100;i=i+3));doecho"Welcome $i times";done

for ((i=0;i<=100;i=i+3))

do

echo $i

done

如何打印传递给脚本的所有参数 ?

echo $*

[ $a == $b ]和[ $a -eq $b ] 有什么区别

[ $a == $b ] - 用于字符串比较

[ $a -eq $b ] - 用于数字比较

[ $a -gt 12]

$a -lt 12

$a -le 12

[[ == abc*]]

egrep"^ab|^xy"/etc/passwd|cut-d:-f1

cut -d: -f1

$*和$@ 有什么区别*

$* - 以一个字符串形式输出所有传递到脚本的参数

$@ - 以 $IFS 为分隔符列出所有传递到脚本中的参数

array=("" "" "")

echo $(array[0])

echo $(array[@])

unset array[2]

array[333]="New_element"

read -p "xxx" aa

/usr/bin/expect<

EOD


cat a.txt|awk '{ print $1}'|sort|uniq >aip.txt

cat a.txt|awk '{ print $1}'|sort|uniq >bip.txt

wc -l aip.txt

cat aip.txt bip.txt>cip.txt

cat cip.txt|sort|uniq

diff ipA.txt ipB.txt | grep \>


cata.txt b.txt | awk'{print $2}'> name.txt


sed -i '23s/test/tests/g' xx.txt

awk -F " " 'NR=25{print $3}' /xxx

   head–n25 /web.log | tail –n1 | cut –d “ ” –f3

sed -i "1,3d" /xxx

#!/bin/bash

   i=1

   while[ $i -le 100 ];do

       ret=1

       for(( j=2;j<$i;j++ ));do

   if [ $(($i%$j))-eq 0  ];then

ret=0

break

   fi

       done

       if[ $ret -eq 1 ];then

           echo-n "$i "

       fi

       i=$((i+1 ))

   done


echo 0 23,1,3,5,7 * * * date>>/etc/crontab

find . -size +10k -exec mv /tmp {} \;

find . -size +10k -print0|xargs -0 mv  {} /tmp;


iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.2.1:8080

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080


echo "2 6-12/2 * * * root /usr/bin/httpd.sh">>/etc/crontab

ps aux|grep|cut -f?


awk -F "," 'if($2>56789){print $0}' file.txt

sed -n "1p;3p;5p;" file.txt

awk 'NR==1|NR==2|NR==3{print $0}' file.txt


sed -i "s#\t#\|#g" xxx.txt

find . -name  "*.sh" -exec mv {}

useradd stu

iptables -A input -p tcp --dport 22 -s 10xxxx -j ACCEPT

iptables -A input -t udp --dport 22 -s xx   -j ACCEPT

iptables -A input -j DROP


grep -n ^$ file1

grep abc$ file1

head -n 3 file1

sed -n "1,3p" file1


vim 

:%d

:%s/shutdown/reboot/g


iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to xxxx

find / -size +50k -size -100k


b=${a/123/321};将${a}里的第一个123替换为321

b=${a//123/321};将${a}里的所有123替换为321

${a//sss/ggg}

${a/sss/ggg}

Q:4 如何将标准输出和错误输出同时重定向到同一位置?

答:这里有两个方法来实现:

方法一:

2>&1 (# ls /usr/share/doc > out.txt 2>&1 )

方法二:

&> (# ls /usr/share/doc &> out.txt )

10 告诉我shell脚本中Case语句的语法 ?

答:基础语法如下:

如何调试shell脚本 ?

答:使用’-x’参数(sh -x myscript.sh)可以调试shell脚本。另一个种方法是使用‘-nv’参数( sh -nv myscript.sh)。

rename "oldboy" "oldgirl" *.html|rename "html" "HTML" *.html

#!/bin/bash

cd /oldboy

for i in `ls *.HTML`

do

mv $i `echo $i|sed -e 's#oldboy#oldgirl#g;s#html#HTML#g'`

done


echo $a|cut -c1-8

$ MYVAR=foodforthought.jpg

$ echo ${MYVAR##*fo}

rthought.jpg

$ echo ${MYVAR#*fo}

odforthought.jpg


echo ${string:4}//2342341  从第4位开始截取后面所有字符串    

echo ${string:3:3}//123      从第3位开始截取后面3位    

echo ${string:3:6}//123423   从第3位开始截取后面6位    

echo ${string: -4}//2341  :右边有空格   截取后4位   


echo ${string#a*3}//42341  从$string左边开始,去掉最短匹配子串    

echo ${string#c*3}//abc12342341  这样什么也没有匹配到    

echo ${string#*c1*3}//42341  从$string左边开始,去掉最短匹配子串    

echo ${string##a*3}//41     从$string左边开始,去掉最长匹配子串    

echo ${string%3*1}//abc12342  从$string右边开始,去掉最短匹配子串    

echo ${string%%3*1}//abc12     从$string右边开始,去掉最长匹配子串  


mount –t cifs –ousername=“”,passwd=“”//192.168.1.1/共享文件夹/ /mnt/

[root@new-web7 ~17:39:55]#netstat -na | awk'/^tcp/ {++S[$NF]} END {for(i in S) print i, S[i]}'TIME_WAIT 3460FIN_WAIT1 17FIN_WAIT2 6ESTABLISHED 430LAST_ACK 24LISTEN 18

查看IP连接数(访问本机的远程主机数量):

netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' |sort | uniq -c | sort –rn

1)netstat –n:列出本机的所有网络连接,包括TCP/UDP和Unix socket两部分。

2)awk '/^tcp/ {print $5}':/^tcp/:条件是以tcp开头的行,^:在此处代表行首的意思。{print $5:将第5个字段打印出来,代表远程主机的IP和port,默认是以tab作为分隔域。

3)awk -F: '{print $1}':“-F:”:以:作为分隔域;打印第一个字段,将port去掉,只显示IP。

4)sort:将IP进行排序。

5)uniq –c:将相同行合并,并统计相同行的数量。

6)sort –nr:以相同行数量进行排序,反向排序,最大的放在最前面。

cat /proc/sys/kernel/random/uuid| md5sum| cut –c 1 -32

cat /proc/sys/kernel/random/uuid|md5sum|cut -c 1-32

cat xx|awk '{print $1}'|uniq -c|sort -rn|head -n 5

e2fsck -p xxx

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容

  • shell中各种括号的使用方法(摘自网络) 在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命...
    草中人阅读 522评论 0 0
  • 系统巡检脚本:Version 2016.08.09 ############################ 系统...
    NamasAmitabha阅读 1,301评论 0 0
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,070评论 1 19
  • 我奔跑在风中呐喊, 我蜷缩在雨中哭泣, 只为掩盖我的不易。 你听不到我的哀怨, 你看不到我的疾患, 只为减轻你的负...
    王双凤阅读 291评论 1 3
  • 请以你的名字呼唤我,这个一般看到都会想到春光乍泄里的那个片段吧。 平淡又很有深度。这是很难看懂的片子,虽然故事没有...
    愿如期团聚于冰岛阅读 1,219评论 0 0