Linux常用命令

  1. 作者QQ:67065435 QQ群:821635552

用户管理

  1. 添加用户并创建密码
    # 添加用户
    useradd -mk /home/www -s /bin/bash www
    # 创建密码
    sudo passwd www
    密码: www
    重复密码: www
    # 删除用户
    sudo userdel www
    

远程连接

  1. ssh登录服务器
    # 修改私钥权限
    chmod -R 600 [私钥]
    ssh -p [端口] -i [私钥] [账号]@[IP]
    password:********
    

远程拷贝

  1. scp拷贝文件到远程服务器
    # 修改私钥权限
    chmod -R 600 [私钥]
    # 本地拷到远程
    scp -P [端口] -i [私钥] -r [本地路径] [账号]@[IP]:[远程路径]
    # 远程拷到本地
    scp -P [端口] -i [私钥] -r [账号]@[IP]:[远程路径] [本地路径]
    password:********
    

Shell切换

  1. 不同Shell之间切换

    # 切换到默认Shell
    chsh -s /bin/bash
    
    # 切换到oh my zsh
    chsh -s /bin/zsh
    

连接管理

  1. 服务器指定进程占用的端口

    netstat -nap|grep [进程名]
    
  2. 服务器TIME_WAIT和CLOSE_WAIT

    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
    
  3. 显示指定状态的连接列表

    netstat -lntap | grep LISTEN
    netstat -lntap | grep TIME_WAIT
    netstat -lntap | grep CLOSE_WAIT
    netstat -lntap | grep ESTABLISHED
    

进程管理

  1. pstree

    # 进程树查看
    yum install psmisc -y
    # 查看所有进程
    pstree -a
    # 只查看主进程
    pstree
    
  2. systemctl

    systemctl status|grep service
    
  3. 后台运行程序

    # 无输出类型命令
    `命令` &
    
    # 有输出类型命令
    nohup `命令` &
    

计划任务

  1. 查看计划任务

    crontab -l
    
  2. 添加计划任务

    (实际上就是在vi模式下编辑计划任务文件)
    crontab -e
    
  3. 计划任务特殊符号

    *:用来表示所有可能的值,如月份month处用*,表示每个月执行指定任务
    ,:用来指定一个列表范围,如月份month处用1,4,7,10,表示在这4个月里执行指定任务
    -:用来指定一个区间范围,如月份month处用1-10,表示在1-10月里执行指定任务
    /:用来指定一个间隔频率,如月份month处用1-12/2或*/2,表示每两个月执行指定任务
    
  4. 计划任务取值范围

    分(0-59)
    时(0-23)
    日(1-31)
    月(1-12)
    周(0-7)【0和7为周日】
    
  5. 计划任务详细图解

    计划任务

ICMP管理(管理ping)

  1. 开启ICMP响应(允许ping)

    vim /etc/sysctl.conf
    
    net.ipv4.icmp_echo_ignore_all=0
    
    ESC
    :wq
    
    sysctl -p
    
  2. 关闭ICMP响应(关闭ping)

    vim /etc/sysctl.conf
    
    net.ipv4.icmp_echo_ignore_all=1
    
    ESC
    :wq
    
    sysctl -p
    

文件管理

  1. 把指定字符串替换为其它字符串

    # 替换单个文件中的字符串
    sed -i s/"查找字符串"/"替换字符串"/g [文件路径]
    sed -i s/"查找字符串"/"替换字符串"/g /www/test.txt
    
    # 替换正则路径文件中的字符串
    sed -i s/"查找字符串"/"替换字符串"/g [正则路径]
    sed -i s/"查找字符串"/"替换字符串"/g /www/[a-zA-Z0-9]{1-5}.txt
    
    # 先通过grep查找含有指定字符串的文件,再替换文件中的字符串
    sed -i s/"查找字符串"/"替换字符串"/g `grep -rl "查找字符串" ./`
    
  2. 动态查看指定文件

    tail -f /logs/prod.log
    
  3. 清空指定文件

    echo "" > /logs/prod.log
    
  4. 创建文件连接

    # 软连接
    ln -s [文件、目录路径] [软连接路径]
    # 硬连接
    ln  [文件、目录路径] [硬连接路径]
    
  5. 打包和解包

    # 解包
    tar -zxvf xxx.tar.gz
    # 打包
    tar -zcvf xxx.tar.gz ./xxx/
    # 校验
    tar -tf xxx.tar.gz
    
  6. 目录下文件被批量改成了0777,怎么恢复

    # 文件批量改为0644
    find . -type f -exec chmod 644 {} +
    # 目录批量改为0755
    find . -type d -exec chmod 755 {} +
    # 可执行文件批量改为0755
    find . -type f -name *.sh -exec chmod 755 {} +
    
  7. 修改文件最后编辑时间

    # 修改xxx.sh最后编辑时间为2012-12-31 12:00:00
    touch -d "2012-12-31 12:00:00" xxx.sh
    # 修改所有文件最后编辑时间为2012-12-31 12:00:00
    find . -type f -exec touch -d "2012-12-31 12:00:00" {} +
    # 修改所有文件夹最后编辑时间为2012-12-31 12:00:00
    find . -type d -exec touch -d "2012-12-31 12:00:00" {} +
    
  8. 查找当前目录大于、小于、等于1000kb的文件

    find . -size +1000k
    find . -size -1000k
    find . -size 1000k
    
  9. 删除符合指定规则的文件或目录

    [文件或目录查找命令] -exec [查到的文件或目录被执行该操作] {} +
    # 例如
    # 将当前路径下的所有文件权限改为644
    find . -type f -exec chmod 644 {} +
    
    # 将当前路径下的所有目录权限改为755
    find . -type d -exec chmod 755 {} +
    
    # find -type [type参数]:
    f   //文件
    d   //目录
    l   //链接
    p   //管道
    b   //块设备
    c   //字符设备
    s   //套接字socket
    
  10. 查找路径下包含指定字符串的文件

    grep -rn "[字符串]" [路径]
    grep -rn "test_str" *
    
    -An 目标结果前n行 ep: grep -A1 -rn "test_str" *
    -Bn 目标结果后n行 ep: grep -B1 -rn "test_str" *
    -Cn 目标结果前后n行 ep: grep -C1 -rn "test_str" *
    -i 忽略大小写 ep: grep -i -rn "test_str" *
    
    # grep相似的命令还有: awk sed
    
  11. 记录了多条IP的文件ip.txt,出现次数最多的前3个IP及次数

    cat ip.txt|uniq -c|sort -rn|head -n 3
    
  12. 找出一个文件属于哪个软件包

    # 以/etc/my.cnf为例
    rpm -qf /etc/my.cnf
    

CPU状态查看

  1. 命令格式

    top
    
  2. 执行结果

    # 统计信息:前五行是系统整体的统计信息
    # 进程信息:统计信息下方显示的是各个进程的详细信息,5秒刷新一次
    
  3. 参考链接

内存状态查看

  1. 命令格式

    free [参数]
    
  2. 命令参数

    -b 区块为1 byte(单位B)
    -k 区块为1024 byte(单位KB)
    -m 区块为1024*1024 byte(单位MB)
    -g 区块为1024*1024*1024 byte(单位GB)
    
    -t 显示内存总和列
    -o 不显示缓冲区调节列
    -s [两次取内存数据之间隔的秒数]
    -V 显示版本信息
    

硬盘状态查看

  1. 命令格式

    df [参数] [文件]
    
  2. 命令参数

    # 必要参数
    -k          区块为1024 byte(单位KB)
    -m          区块为 1024*1024 byte(单位MB)
    -h          区块为 1024*1024*1024 byte(单位GB)
    -H          区块为 1000*1000*1000 byte(单位GB)
    
    -l          只显示本地文件系统
    -a          全部文件系统
    -i          显示inode信息
    
    --sync      先执行sync命令
    --no-sync   不执行sync命令
    
    -P          输出格式为POSIX
    -T          文件系统类型
    
    # 可选参数
    --block-size=[区块大小]    指定区块大小
    
    -t [文件系统类型]         只显示选定文件系统的磁盘信息
    -x [文件系统类型]         不显示选定文件系统的磁盘信息
    
    --help                 显示帮助信息
    --version               显示版本信息
    
Copyright © 豆包嘿嘿~ 2012-∞ 冀ICP备17033181号 all right reserved,powered by Gitbook修订: 2020-07-16 17:26:52

results matching ""

    No results matching ""