Linux 常见命令

  1. 基础命令
  2. 文本处理三剑客
  3. 线上项目常见使用的命令
  4. shell 脚本常见命令

一些命令的使用场景

  1. 如何从规范的日志中统计出你想要的信息

  2. 去重如何做

  3. 后台命令日志管理问题
    如果程序本书输出了日志那么控制台就不要输出日志了 > /dev/null

联系题目

LeetCode Shell的四道题目

Linux 服务器软件安装

如果你遵循规范的话

像java,tomcat 应安装在 /usr/local/ 目录下
像日志文件应该存放在 /var/log目录下
软件程序安装在 opt目录下

个人Shell实战场景汇总

  1. unzip 文件内容提取
unzip -l mysql.zip |sed -n '4-5p' |awk '{print $3}'
a=unzip -l mysql.zip | wc -l
b=$[a-3]

sort | uniq -c |sort -n
  1. jps 进程目录获取
#!/bin/bash

all=`jps |grep -v 'Jps'|awk '{print $1}'`

for o in $all
do
  echo $o "->" `ls -l /proc/$o |grep 'cwd' |awk '{print $11}'`
done
  1. grep -Inr 搜索

grep -Inr 'bash'

  1. 批量创建文件夹

mkdir /opt/bash/{a,b,c}

  1. tcpdump 使用
tcpdump -A -s0 -i lo -w a.cap

tcpdump -A -s0 'port 8080'

  1. 判断命令内容是否为空
if test !-z "$(rpm -qa | grep -i openJDK)"; then
	rpm -qa | grep -i openJDK
    echo "卸载系统自带 openJDK中... 请稍后"
    rpm -e --nodeps `rpm -qa | grep -i openJDK`
fi
  1. 判断是否存在某个命令
if $(command -v virsh  >/dev/null 2>&1); then
  virsh net-destroy default
fi

网抑云小工具

#! /bin/bash

## 定时任务去请求 wyy接口 然后输出到 /etc/motd文件汇总

API_URL=https://api.lo-li.icu/wyy/

echo "$(curl -s $API_URL)" > /etc/motd

crontab -e

0 */1 * * * /opt/cron/wyy.sh >/dev/null 2>&1 &

分、时、日、月、周 以上命令一小时执行一次

企业微信定时推送

周一至周五 每天下午6.30机器人推送日报提醒

crontab -e 30 18 * * 1,2,3,4,5 /opt/push_msg/webhook.sh >/dev/null 2>&1 &

#!/bin/sh

curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxx' \
   -H 'Content-Type: application/json' \
   -d '{
    "msgtype": "text",
    "text": {
        "mentioned_list":["@all"],
        "content": "兄弟们,记得提交今天的日报[抱拳] "
    }
}
'