• 工作中用到的一些linux命令


    linux常用命令

    常用软件安装

    1. rz,sz

    yum install lrzsz
    

    2. ifconfig

    # 1. 先搜索ifconfig
    yum search ifconfig
    
    # 2. 具体执行安装
    yum install net-tools.x86_64
    

    3. nc

    yum -y install nc
    

    常用命令

    cp

    打 tar 包时,路径下有软连接,无法正常归档。

    cp source dist -Lvr
    

    设置主机名

    hostnamectl set-hostname [主机名]
    

    创建用户

    useradd -m test4(用户)
    

    创建用户

    useradd -M(不创建主目录) -s(不允许登录) /sbin/nologin mysql -g(加入mysql组) mysql
    

    把user添加到组group中

    usermod -a -G group_name user_name
    

    进程

    寻找最占CPU的进程

    top -c (按键P按CPU占有资源排序)
    

    查看进程

    ps -ef | grep processname
    
    ps -aux|grep processname
    

    查看进程打开的端口

    ss -tnlp | grep 25178
    
    或
    
    ss -tnlp | grep ssh
    
    或者
    
     netstat -tnlp | grep ssh
    
    或者
    netstat -lntp | grep 860
    

    sleep

    sleep 3s
    

    监听端口

    netstat -anp | grep 2888
    

    查看文件被那个进程占用

    fuser <filename>
    

    umask权限掩码

    查看默认权限

    默认创建文件夹的权限为755,文件为644
    注意:创建文件要比创建文件夹默认权限都少1(可执行)也就是 755 - 111 = 644

    umask
    
    //或者
    
    umask -S
    

    设置权限

    umask 022
    

    date

    时间戳和时间相互转换

    时间戳转化为时间

    date -d @1562641547
    

    时间转化为时间戳

    // date +%s
     date -d '06/12/2018 07:21:22' +"%s"
    

    ll

    查看目录的隐藏文件

    ll -a
    

    文件按修改时间顺序倒序查看

    ls -lrt *
    

    文件按修改时间正序倒序查看

    ls -lt *
    

    find

    查找根目录下student前缀的文件并展示

    find / -name student* -exec ls -l {} \;
    

    查找根目录下student前缀的文件并移动到/opt目录下

    find / -name student* -exec mv {} /opt \;
    

    查找/mnt目录下student前缀的文件并删除

    find /mnt -name student* -exec rm {} \;
    

    查找/mnt 目录下大于10M的文件

    find /mnt -size 10M -exec ls -l {} \;
    

    查找/mnt 目录下的文件并展示

    find /mnt -type f -exec ls -l {} \;
    

    查找并打印

    find path /mnt/disk01/es7_log_online/nodes/0/ -name "index" -print
    

    awk

    转大写为小写

    echo "abcdefg" | awk '{print toupper($0)}'  #转大写为小写
    

    转小写为大写

    echo "ABCDEF" | awk '{print tolower($0)}'  #转小写为大写
    

    grep

    只查找当前文件夹的目录

    ls -al |grep "^d"
    

    只查找当前文件夹的文件

    ls -al |grep "^-"
    

    反向匹配

    grep -v grep
    

    过滤多个字段

    例如: 滚动打印日志 并匹配ERROR和WARN级别的日志

    tailf /var/log/kafka/server.log | grep -E "ERROR| WARN"
    

    完全匹配

    docker inspect container | grep "\<Memory\>"
    

    忽略大小写

    例如: 滚动打印日志 忽略大小写匹配关键字error

    tailf /var/log/kafka/server.log | grep -i "error"
    

    还有一些别的参数

    • -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
    • -n :显示行号
    • -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
      这篇博文中对grep总结的很到位可以直接参考 转载地址:https://www.cnblogs.com/flyor/p/6411140.html

    sed命令

    匹配文件内容

    sed '/^FLINK_URL/!d;s/.*=//' properties
    

    文件内容

    FLINK_URL=https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.9.2/flink-1.9.2-bin-scala_2.11.tgz
    匹配结果
    
    https://mirrors.tuna.tsinghua.edu.cn/apache/flink/flink-1.9.2/flink-1.9.2-bin-scala_2.11.tgz
    
    • ^ 行首匹配 (匹配FLINK_URL 开头的行)

    • d 删除行 (删除上面匹配的行)

    • ! 反向匹配 (删除 不是以FLINK_URL 开头的行)

    • ; 连接两个命令

    • s 替换

    • . 字符通配

      • 任意个数量

    所以连起来为 匹配以FLINK_URL 开头的行,然后匹配 “=” 后面的内容

    awk

    • 案例一:累加第一列的和
    vim test
    1
    2
    3
    4
    5
    
    cat test |awk '{a+=$1}END{print a}'
    21
    
    • 案例二:match
    df -h |awk '{if(match($6, "mnt")) print $6}'|wc -l
    
    • 案例三:if else
    df -h |awk '{if(match($6, "mnt")) print $6;else if (match($6, "home")) print $6; else print $6}'
    

    分区文件系统类型

    查看磁盘挂载

    df -h
    

    查看磁盘挂载(默认树形方式显示)

    lsblk
    
    df -T
    或者
    
    blkid
    或者
    
    lsblk -f
    

    对磁盘进行操作(添加,删除分区)

    fdisk /dev/sdb
    

    定时任务

    查看定时任务

    crontab -l
    

    编辑定时任务

    crontab -e
    

    删除定时任务(慎用)

    crontab -r
    

    查看定时脚本存放位置

    ll /var/spool/cron/crontabs
    

    cpu、内存、磁盘、IO

    cpu

    • 查看cpu物理核数
    cat /proc/cpuinfo | grep "physical id"
    
    • 查看cpu逻辑核数
    cat /proc/cpuinfo | grep "processor"
    

    内存

    free -g
    free -m
    free -h
    

    cpu

    top
    

    网络io负载

    ifstat
    
    iftop -i eth1 -P
    

    磁盘io负载

    iostat
    
    iostat -dx
    

    一些场景

    列出访问次数前十的ip地址

    last | awk '{print $3}'| sort| uniq -c |sort -rn | head -10
    
    1. last显示服务器上用户最近登录信息

    2. 第三列为登录主机ip

    3. 第一次sort排序来让 unip -c 显示重复行出现次数

    4. sort -rn 依据显示的次数降序排序,

    5. head -10 显示前10行

    干掉某一进程(脚本)

    ps -ef | grep processname | grep username | grep -v grep  | awk {'print $2'} | xargs kill -9
    

    挂载iso镜像文件

    mount  -o  loop  /centos-iso/centos-7iso    /mnt/yum/
    

    清除缓存

    echo 3 > /proc/sys/vm/drop_caches
    

    统计行数

    ll | wc -l
    

    获取uuid

    blkid /dev/sda4 | awk '{print $2}'|awk -F\" '{print $2}'
    

    获取uuid(cut)

    blkid /dev/sda4 | cut -d "\"" -f 2
    

    开启nc服务

    nc -lk 9999
    

    wget下载文件

    wget --user user --password pass http://example.com/
    

    查看使用swap的应用

    echo -e "PID\t\tSwap\t\tProc_Name"
    

    ping 大包

    ping -l 5000 ip
    

    shell执行linux命令

    两种方式
    执行linux命令,将执行命令返回的值,赋给shell中的变量

    • 第一种
    data=`command`
    
    • 第二种
    data=$(command)
    

    查看系统各个进程打开的文件描述符数量

    lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr
    

    结果是以 打开的文件描述符数量:进程号 的格式排序的 。降序排序

    lvm 磁盘扩容

    xfs_growfs /dev/nvme2n1
    

    date

    查看7天前的日期,并且格式化

    date -d '7 day ago' '+%Y.%m.%d'
    

    压缩文件

    gzip

    压缩

    gzip -r 目录
    

    解压

    gzip -d xxx.gz
    
  • 相关阅读:
    三范式
    作用域
    函数传参
    js数据类型
    纯css小图标
    js生成div
    js模拟微信聊天窗口
    js图片切换
    js this指向
    常用实体字符
  • 原文地址:https://www.cnblogs.com/erlou96/p/16878383.html
Copyright © 2020-2023  润新知