pgrep tail | xargs kill -9 #xargs:通过缓冲方式并以前面命令行的输出作为参数
kill -9 `pgrep tail`
find /root -name 11.sh -exec rm {} ;
cat 22.sh 1>/dev/null 标准输出 :只输出错误信息。
cat 22.sh 2>/dev/null #标准错误输出 :只输出正确结果。
log=/tmp/`date "+%Y-%m-%d_%H_%M"`.top
echo "11" >> $log #生成日志
top -p 1 -b -d 1 -n 1|awk 'BEGIN{print strftime("%Y-%m-%d %H:%M:%S");}'
awk 'BEGIN{print strftime("%Y %m %d %H:%M:%S", 1324)}'
awk 'BEGIN{print strftime("%Y-%m-%d %H:%M:%S");}' >> asas.log
top -p 1 -b -d 1 -n 1 >> asas.log
ctrl + z 后台运行
jobs 查看后台运行的进程
fg 将后台运行的进程调到前台。
返回值为字符,会报错:
return "my name is bixiaopeng"
Shell自定义函数总结.sh: line 6: return: my: numeric argument required
1.变量通过" "引号引起来
#!/bin/sh para1= if [ ! -n "$para1" ]; then echo "IS NULL" else echo "NOT NULL" fi
#!/bin/sh dmin= if [ "$dmin" = "" ] then echo "dmin is not set!" else echo "dmin is set !" fi
#自动挂载Swap autoSwap() { swap=`free |grep Swap|awk '{print $2}'` if [ $swap -gt 1 ];then echo "Swap total sizse: $swap"; return; fi if [ ! -d /www ];then mkdir /www fi swapFile='/www/swap' dd if=/dev/zero of=$swapFile bs=1M count=1025 mkswap -f $swapFile swapon $swapFile echo "$swapFile swap swap defaults 0 0" >> /etc/fstab swap=`free |grep Swap|awk '{print $2}'` if [ $swap -gt 1 ];then echo "Swap total sizse: $swap"; return; fi sed -i "//www/swap/d" /etc/fstab rm -f $swapFile } autoSwap #判断kernel-headers组件是否安装 rpm -qa | grep kernel-headers > kernel-headers.pl kernelStatus=`cat kernel-headers.pl` #判断华为云 huaweiLogin=`cat /etc/motd |grep 4000-955-988` huaweiSys=`cat /etc/redhat-release | grep ' 7.'` if [ "$kernelStatus" = "" ]; then if [ "$huaweiLogin" != "" ] && [ "$huaweiSys" != "" ]; then wget $download_Url/src/kernel-headers-3.10.0-514.el7.x86_64.rpm rpm -ivh kernel-headers-3.10.0-514.el7.x86_64.rpm rm -f kernel-headers-3.10.0-514.el7.x86_64.rpm else yum install kernel-headers -y fi fi rm -f kernel-headers.pl
安装ntp,并同步时间
yum install ntp -y rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #尝试同步时间(从bt.cn) echo 'Synchronizing system time...' v1=$(curl http://www.bt.cn/api/index/get_time) date -s "$(date -d @$v1 +"%Y-%m-%d %H:%M:%S")" #尝试同步国际时间(从ntp服务器) ntpdate 0.asia.pool.ntp.org
startTime=`date +%s` setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config for pace in python-devel python-imaging zip unzip openssl openssl-devel gcc libxml2 libxml2-devel libxslt* zlib zlib-devel libjpeg-devel libpng-devel libwebp libwebp-devel freetype freetype-devel lsof pcre pcre-devel vixie-cron crontabs icu libicu-devel c-ares; do yum -y install ${pace}; done if [ -f "/usr/bin/dnf" ]; then dnf install -y redhat-rpm-config fi yum install python-devel -y py26=$(python -V 2>&1|grep '2.6.') if [ "$py26" != "" ];then if [ ! -f /etc/yum.repos.d/epel.repo ];then wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo fi if [ ! -f /usr/bin/python3 ];then yum install python34 python34-devel -y if [ ! -f /usr/bin/python3 ];then echo "python3.4 install error!" exit 0; fi isSed=$(cat /usr/bin/yum|grep /usr/bin/python2.6) if [ "$isSed" == "" ];then sed -i "s#/usr/bin/python#/usr/bin/python2.6#" /usr/bin/yum fi #rm -f /usr/bin/python2 mv -f /usr/bin/python /usr/bin/python2_backup ln -sf /usr/bin/python3 /usr/bin/python fi if [ ! -f /usr/bin/pip3 ];then wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py python3 get-pip.py mv -f /usr/bin/pip /usr/bin/pip_backup ln -sf /usr/bin/pip3.4 /usr/bin/pip fi fi
awk
https://www.cnblogs.com/ginvip/p/6352157.html
打印字段分割符
awk -F ":" '{print FS}' /etc/passwd : :
打印字段数量
awk -F ":" '{print NF}' /etc/passwd 7 7
打印记录的行数
awk '{print NR}' /etc/passwd 1 2 3
加上说明进行打印 ; Tab键
[root@localhost ~]# awk -F":" '{ print "username: " $1 " uid:" $3 }' /etc/passwd username: root uid:0 username: bin uid:1
awk -F ":" '{if(NR>=20 && NR<=30) print $1}' /etc/passwd tss postfix
从该文件中过滤出'Poe'字符串与33794712,最后输出的结果为:Poe 33794712
[root@localhost ~]# cat test.txt I am Poe,my qq is 33794712 [root@localhost ~]# awk -F '[ ,]+' '{print $3" "$7}' test.txt Poe 33794712
awk 'BEGIN{info="this is a test";split(info,tA," ");print length(tA);for(k in tA){print k,tA[k];}}' 4 #length(tA) tA数组的长度 4 test #下标为4的值 1 this 2 is 3 a
#分割 info,动态创建数组 tA,awk for …in 循环,是一个无序的循环。 并不是从数组下标
++s[$NF]
#y[x]定义一个数组s,
下标的名称设置为最后一列($NF),
++ 以最后一列($NF)为标准计数,遇到一个加一,最后将统计出的数字赋值给[键或者说是下标名称,这里是最后一列的名称]
#总结:以最后一列分类统计。键为最后一列的名称,值为最后一列出现的次数。
netstat -an|awk '/^tcp/{++s[$NF]}END{for(a in s)print a,s[a]}'
[root@localhost nginx]# awk 'BEGIN{citie[1]="beijin"} {print citie[1]}' /etc/hosts beijin beijin beijin
[root@localhost nginx]# awk 'BEGIN{citie[1]="beijin"} END{print citie[1]}' /etc/hosts beijin
[root@localhost nginx]# awk 'BEGIN{citie[1]="beijin"} {print "a"} END{print citie[1]}' /etc/hosts a a a beijin