扫盲
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.变量通过" "引号引起来
1 2 3 4 5 6 7 | #!/bin/sh para1= if [ ! -n "$para1" ]; then echo "IS NULL" else echo "NOT NULL" fi |
1 2 3 4 5 6 7 8 | #!/bin/sh dmin= if [ "$dmin" = "" ] then echo "dmin is not set!" else echo "dmin is set !" fi |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #自动挂载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,并同步时间
1 2 3 4 5 6 7 8 9 10 11 | 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 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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
打印字段分割符
1 2 3 | awk -F ":" '{print FS}' /etc/passwd : : |
打印字段数量
1 2 3 | awk -F ":" '{print NF}' /etc/passwd 7 7 |
打印记录的行数
1 2 3 4 | awk '{print NR}' /etc/passwd 1 2 3 |
加上说明进行打印 ; \t Tab键
1 2 3 | [root@localhost ~] # awk -F":" '{ print "username: " $1 "\t\tuid:" $3 }' /etc/passwd username: root uid:0 username: bin uid:1 |
1 2 3 | awk -F ":" '{if(NR>=20 && NR<=30) print $1}' /etc/passwd tss postfix |
从该文件中过滤出'Poe'字符串与33794712,最后输出的结果为:Poe 33794712
1 2 3 4 5 | [root@localhost ~] # cat test.txt I am Poe,my qq is 33794712 [root@localhost ~] # awk -F '[ ,]+' '{print $3" "$7}' test.txt Poe 33794712 |
1 2 3 4 5 6 | 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<br> #分割 info,动态创建数组 tA,awk for …in 循环,是一个无序的循环。 并不是从数组下标 |
1 | ++s[$NF] <br> #y[x]定义一个数组s,<br>下标的名称设置为最后一列($NF),<br>++ 以最后一列($NF)为标准计数,遇到一个加一,最后将统计出的数字赋值给[键或者说是下标名称,这里是最后一列的名称]<br>#总结:以最后一列分类统计。键为最后一列的名称,值为最后一列出现的次数。 |
1 | netstat -an| awk '/^tcp/{++s[$NF]}END{for(a in s)print a,s[a]}' |
1 2 3 4 | [root@localhost nginx] # awk 'BEGIN{citie[1]="beijin"} {print citie[1]}' /etc/hosts beijin beijin beijin |
1 2 | [root@localhost nginx] # awk 'BEGIN{citie[1]="beijin"} END{print citie[1]}' /etc/hosts beijin |
1 2 3 4 5 | [root@localhost nginx] # awk 'BEGIN{citie[1]="beijin"} {print "a"} END{print citie[1]}' /etc/hosts a a a beijin |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现