七、附录


返回

起步

  • 查看服务器运行了哪些程序

    $ ps -ef
    $ ps -ef | grep uwsgi
    $ ps -ef | grep django
    $ ps -ef | grep tornado
    
  • 查看运行的程序

    $ netstat -tunlp
    $ netstat -tunlp | grep 80
    80:http默认端口
    8080:自定义端口
    3306:mysql数据库默认端口
    443:https默认端口
    6379:redis数据库默认端口
    22:ssh远程连接服务器默认端口
    
  • 查看定时任务

    $ crontab -l
    

linux基本命令

  • cd 进入上次访问目录

    $ cd -
    
  • mkdir -p 递归创建目录

    $ mkdir -p /a/b/c1 /a/b/c2
    $ mkdir -p /a/b/{c1,c2}  # 批量创建
    $ mkdir -p a/b/{1..7}  # 批量迭代创建
    
  • 重定向 <<

    $ cat >> q.txt << EOF
    >> 第一行
    >> 第二行
    >> EOF
    
  • cp 备份

    $ cp nginx.conf nginx.conf.old
    
  • 重命名

    $ mv nginx.conf.old nginx.conf
    
  • 查看当前系统 alias 别名

    $ alias
    
  • find 查找

    $ find / -type f -name "python" -size +15M  # 参数:[type:f 普通文件  d 文件夹]
    
  • 管道符和grep

    # 过滤settings.py有价值信息(仅查看)
    $ cat ./settings.py | grep -v "^#" | grep -v "^$"  # 参数:-v,取反
    $ grep -v "^#" ./settings.py | grep -v "^$"  # grep加引号,支持正则
    $ cat /etc/passwd | grep -i root  # 参数:-i 忽略大小写
    
  • sed文本编辑器

    # 过滤settings.py有价值信息(修改)
    $ sed -i "/#/d" nginx.conf  # 删除行:sed -i '/匹配的规则/d' 路径
    $ sed -i "/^$/d" nginx.conf
    # 取出IP地址的命令:sed 's/替换签到的内容/替换后的内容/g'
    $ ifconfig | sed -n '2p' | sed 's/.*inet//g' | sed 's/netmask.*//g'  
    # 查看2-4行
    $ sed -n '2,4p' nginx.conf
    
  • awk切割

    # 取出IP地址的命令:awk -F '指定分隔符,默认空格' 'NR==行号 {print $列号}'
    $ ifconfig | awk 'NR==2 {print $2}'
    $ ifconfig | awk -F ' ' 'NR==2 {print $2}'
    
  • du 查看文件夹大小

    $ du -sh /etc/  # 文件夹总大小
    $ du -h /etc/  # 文件详情大小,h表示带Kb、Mb单位
    
  • top 系统监视器

    $ top
    
  • free查看内存、交换内存

    $ free -m  # 参数m,以Mb为单位显示
    
  • ps 查看进程

    $ ps -ef  # 查看所有进程
    $ ps -ef | grep "vim"  # 过滤进程
    $ kill PID  # 杀死进程
    $ kill -9 PID  # -9 强制
    $ pkill -9 nginx  # 强制杀死nginx进程
    
  • netstat 查看网络

    $ netstat -tunlp # 参数:t:tcp、u:udp
    $ netstat -tunlp | grep 80  # 过滤80端口是否运行
    
  • history查看指令的历史记录

    $ history
    $ !77  # !+行数,运行当前行的历史指令
    
  • tail动态检测日志

    $ tail -f log.txt
    
  • ln软连接:连接文件 或 文件夹

    $ ln -s /opt/ ./my_opt  # ln -s 目标文件/文件夹绝对路径 软连接后的路径
    
  • vim指令

    $ d+G  # 清空光标以下的所有内容
    

    vim命令

单引号与双引号

  • 单引号

    $ echo '$PATH'  # 内部仅仅识别成字符串
    >> $PATH
    
  • 双引号

    $ echo '$PATH'  # 内部可以识别特殊字符
    >> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    

用户

  • 添加

    $ useradd 用户名  # 创建了一个用户在/etc/passwd,且创建了一个同名的组/etc/group
    $ passwd 用户名  # 添加密码
    
  • 查看

    $ id 用户名
    >> uid=0(root) gid=0(root) 组=0(root)
    $ ll
    >> -rw-r--r--.  1          root  root   115   1221 03:19   a.txt
    >> 读写执行权限   文件连接数   用户   组     大小   时间            文件名
    
  • 删除

    $ userdel -rf 用户名  # 删除用户且删除家目录
    
  • 切换

    $ su - root  # 参数:- 完全的环境变量切换
    

权限

  • sudo

    $ vim /etc/sudoers  # 修改配置文件
    $ visudo  # 修改配置文件,提供了语法检测(推荐)
    >> ## Allow root to run any commands anywhere
    >> root    ALL=(ALL)       ALL
    >> xjn     ALL=(ALL)       ALL  # 新增用户
    
  • 文件权限

    # -    rw-   r--  r-- .   1          root  root   115   12月 21 03:19   a.txt
    # 类型  用户  组   其他     文件连接数   user  group  大小   时间            文件名
    # 类型:-文件,d文件,l软连接
    
  • chmod 修改权限

    $ chmod u+r
    $ chmod g-w
    $ chmod o+r,o+w,o+x
    $ chmod 000  # --- --- ---
    $ chmod 777  # 421 421 421
    
  • chown 修改拥有者

    $ chown root 文件
    
  • chgrp 修改拥有组

    $ chgrp root 文件
    

DNS

  • 配置DNS域名服务器

    $ vim /etc/resolv.conf 
    nameserver 192.168.199.1  # 域名解析服务器地址
    nameserver 119.29.29.29  # 腾讯
    nameserver 223.5.5.5  # 阿里
    nameserver 223.6.6.6  # 阿里
    
  • 域名查找

    $ yum -y install bind-utils  # 依赖包
    $ nslookup www.baidu.com  # 域名查找
    
  • 配置本地host

    $ vim /etc/hosts
    

systemctl命令管理服务

  • centos7:systemctl

    $ systemctl start redis  # 开启
    $ systemctl status redis  # 状态
    $ systemctl restart redis  # 重启
    $ systemctl stop redis  # 停止
    $ systemctl enable redis  # 开机自启
    $ systemctl disable redis  # 禁止开机自启
    
  • centos7以下:service

    $ service redis start
    

PATH环境变量

  • 查看安装路径

    $ which python
    >> /usr/bin/python
    
  • 查看环境变量

    $ echo $PATH
    >> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin  # 从左往右依次找
    
  • 配置环境变量

    $ vim /etc/profile  # 全局环境变量
    $ PATH="/opt/python3.7.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin" # 新增环境变量,在字符串前增加新的路径,以:分隔
    $ source /etc/profile  # 生效
    $ which python3  # 检测
    $ which pip3
    

tar解压缩

  • 命令

    """
    tar 命令
    -z 调用gzip命令,对文件压缩
    -c 打包
    -x 解包
    -v 显示过程
    -f 必须写在参数结尾,指定压缩文件名字
    """
    
  • 注意

    # 最好要用相对路径
    
  • 打包

    $ tar -cvf all.tar ./*  # tar -cvf 打包名称 被打包的文件的相对路径
    
  • 解包

    $ tar -xvf all.tar ./  # tar -xvf 解包名称 存放路径
    
  • 压缩

    $ tar -zcvf all.tar.gz ./*  # tar -zcvf 打包名称 被打包的文件的相对路径
    
  • 解压

    $ tar -zxvf all.tar.gz ./  # tar -zxvf 解包名称 存放路径
    $ tar xf 压缩文件 # 通用
    

zip解压缩

  • unzip 文件路径

定时任务

  • 编辑

    $ crontab -e  # 命令存储到的临时路径:/var/spool/cron/root
    $ vim /etc/crontab
    """
    *      *     *     *     *     命令的绝对路径
    分     时    日     月    周     命令的绝对路径
    0-59  0-23  1-31  1-12  0-6    命令的绝对路径
    *:每一个
    ,:多个,如 1,3,5
    -:几到几,如 1-5 代表 1,2,3,4,5
    /:每几个,如 0-12/2 代表 0-12点的每两个小时,如  */5 代表 每5分钟
    """
    $ 0 1 * * *  /usr/bin/rm  /tmp/*  # 必须用绝对路径,因为crontab环境变量可能不够全
    
  • 查看

    $ rontab -l
    
  • 删除

    $ sed -i '/tmp/d' /var/spool/cron/root  # sed -i '/匹配的规则/d' 路径
    
返回