Linux常用命令

按需更新。

一些命令整理:

查看linux系统:cat /etc/*release*

查看某目录下文件夹(目录)的个数(包括子目录)

         ls -lR|grep "^-"|wc -l 

解决 mv无法移动大量文件,报错mv: Argument list too long

用这个命令:find 原目录/ -name "*.png" -exec mv {} 目标目录/ \;

1.文件内容包含指定字符串

find . | xargs grep string #查找当前目录下文件内容包含字符串string的文件

为什么要这样写,因为管道命令符是把上一部的结果传递给下一步来处理,在 find . | grep string中虽然看似和find . | xargs grep string差不多,但是实际上还是有区别的。应为find .得到的结果是一串文件名集合,如果直接传递给grep的话,grep会把这些文件名看作一些无意义的字符串来处理。但是传递给xargs,他会把他当作一个有意义的文件来处理。
2.文件名包含指定字符串

find . -name '*string*' #查找当前目录下文件名包含字符串string的文件

如果要查找文件名中不包含字符串string的文件,可以使用!(取非,也就是取反)。

find . ! -name '*string*'

3.根据进程名查看端口

netstat -nlpt | grep 进程名

4.生成md5

openssl dgst -md5 文件名

5. 查看目录下所占空间

比如查看/var 目录下,所有子目录所占空间,cd /var;du -sh *

6.    grep   -v:显示不包含匹配文本的所有行。反向查找

7.  根据进程ID查询进程完整路径

1)ps -ef|grep 进程名

拿到进程ID

ps aux | grep 进程ID      根据进程ID查询对应的进程

2) ls  -lrt  /proc/进程ID      确定进程所在的目录

例如:

8. linux查看是物理机器还是虚拟机器

 cat /proc/scsi/scsi

很容易区别是不是虚拟机

9.  停止脚本

pid=`ps -ef|grep 进程名| grep -v grep | awk '{print $2}'`
#kill -9  $pid
echo $pid

10. du-查看文件夹大小-并按大小进行排序

du -s * | sort -nr 

du -s * | sort -nr | head 选出排在前面的10个,

du -s * | sort -nr | tail 选出排在后面的10个。

筛选出大小为MB和GB级别的目录和文件,并降序排序

11.查看cpu和内存配置

物理CPU个数: cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
每个CPU物理核数: cat /proc/cpuinfo | grep "cpu cores" | uniq | wc -l
每个CPU逻辑核数:  cat /proc/cpuinfo | grep "processor" | uniq | wc -l
查看CPU频率: cat /proc/cpuinfo | grep MHz

按M,按G,按K查看内存大小:free -m,  free  -g,  free -k

查看系统版本:

cat /proc/version 

cat /etc/redhat-release

cat /etc/*release*

12.linux删除文件没有释放空间

例如删除了 /tmp 目录下的文件,但是空间没有释放,

首先执行  lsof | grep delete | grep  /tmp

查出进程后kill掉,就可以释放空间

原因:使用rm 删除的文件原理:rm命令只是把链接解除(unlink),假设文件是被打开的(有一个进程正在使用),进程仍然可以读取已删除的文件,所以并不释放磁盘空间。

13.根据进程名杀死进程

ps -ef | grep 进程名 | grep -v grep | awk '{print $2}' | xargs kill

14.统计文件中字符串数量

grep -o '字符串' file |wc -l

shell笔记

1. echo “${array[@]}”获取所有数组元素的值
${#array[@]}  数组元素个数

2. 命令格式1:sed 's/原字符串/新字符串/' 文件

命令格式2:sed 's/原字符串/新字符串/g' 文件

这两种命令格式的区别在于是否有个“g”。没有“g”表示只替换第一个匹配到的字符串,有“g”表示替换所有能匹配到的字符串,“g”可以认为是“global”(全局的)的缩写

sed  -r  支持正则表达式

3. curl只返回http状态码

命令:curl -sL -w "%{http_code}"  "此处填写url"   -o /dev/null

例如:curl -sL -w "%{http_code}"  "www.baidu.com"   -o /dev/null

4. 监控端口

while [[ true ]]; do
        netstat -ano | grep $SERVICE_PORT | grep 'LISTEN' 2>&1 > /dev/null
        status=$?
        #echo  'status:'${status} 
        if [[ $status != "0" ]]; then
            echo "warning  port not exist "        
        fi
        sleep ${MONITOR_FREQUENCY}
    done

5. 监控进程

    while [[ true ]]; do
        ps -fe|grep $supervise_process |grep -v grep
        if [ $? -ne 0 ]
        then
            echo "warning  process not exist "  
        fi
        sleep ${MONITOR_FREQUENCY}
    done

6. 根据shell脚本执行结果判断

    while [[ true ]]; do
                sh check-service.sh | grep "Service OK!" 2>&1 > /dev/null
        status=$?
        if [ $status -ne 0 ]; then
            echo  "warning!!!  upload monitor!"  
        fi
        sleep ${MONITOR_FREQUENCY}
    done

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值