linux常用命令

CPU状态查看

  1. 命令格式

     top
    
  2. 执行结果

     # 统计信息:前五行是系统整体的统计信息
     # 进程信息:统计信息下方显示的是各个进程的详细信息,5秒刷新一次
    
  3. 参考链接https://www.linuxidc.com/Linux/2016-08/133871.htm

内存状态查看

  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                   显示版本信息
    

进程树查看

  1. 进程树查看
     # 只查看主进程
     pstree
     # 查看所有进程
     pstree -a
    

yum换源

  1. 备份并换源

     # 备份
     mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
     # 换源
     # CentOS 5
     wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
     # CentOS 6
     wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
     # CentOS 7
     wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
  2. 第三方源

     wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    

远程操作

  1. ssl登录服务器

     ssh -i [identity_file] -p [port] [user_name]@[ip_addess]
     yes
     password:********
    
  2. ssl拷贝文件到远程服务器

     scp -r -i [identity_file] -p [port] [file_name] [user_name]@[ip_addess]:[file_path]
     password:********
    

连接管理

  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. 把指定字符串替换为其它字符串

     # 替换单个文件中的字符串
     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 d -name *.sh -exec chmod 755 {} +
    
  7. 查找当前目录大于、小于、等于1000kb的文件

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

     [文件或目录查找命令] -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
    
  9. 查找路径下包含指定字符串的文件

     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
    
  10. 记录了多条IP的文件ip.txt,出现次数最多的前3个IP及次数

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

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

进程管理

  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. 计划任务图解

    计划任务

  4. 计划任务特殊符号

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

用户管理

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

ICMP管理

  1. 开启ICMP响应

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

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

XShell脚本

  1. xshell等工具通过内网跳转到其它服务器脚本
     Sub Main
         xsh.Screen.Send "ssh 用户@内网IP地址"
         xsh.Screen.Send VbCr
         xsh.Screen.WaitForString "password: "
         xsh.Screen.Send "密码"
         xsh.Screen.Send VbCr
     End Sub
    
@耿志环 2012-∞ 冀ICP备17033181号, powered by Gitbook修订: 2019-02-15 16:43:54

results matching ""

    No results matching ""