1. Linux常用命令

基础

  • 路径类
    • 查看当前路径:pwd
    • 退回初始目录:cd /
    • 退回上级目录:cd ..
    • 进入某个目录:cd xxx
  • 属性类
    • 查看cpu使用率:sar
    • 查看进程cpu使用率:top
    • 查看硬盘内存使用率:df -lh
    • 查看开机自启:systemctl list-unit-files|grep enabled
  • 常用
    • 重启:reboot
    • 清屏:clear
    • 重新加载:reset
    • 退出命令行:ctrl + d
    • ls
      • 列出所有文件:ls(使用lls会列出的更加详细)
      • 按照名称搜索:ls -d /s*(s开头文件,-d:本级目录文件)

    • 退出:按了ESC后,直接按shift+zz,或者切换到大写模式按ZZ(编辑模式下保存并退出)
    • 重新加载配置文件:source /etc/profile
    • 管理员模式:su root
    • 更改密码:sudo passwd root
  • 文件
    • 删除文件:rm xxx
    • 删除文件夹:rm -rf xxx
    • 创建文件:touch xxx
    • 创建文件夹:mkdir xxx
    • 搜索文件夹:# find / -type d -iname “文件夹名字”
    • 搜索文件:# find / -iname “文件名字”
    • 移动文件:mv xx yy(将xx移动到yy,也可以重命名)
    • 打开文本:# cat filename
    • 打开文本并实时显示:# tail -f filename
    • 解压文件:tar zxvf FileName.tar.gz [-C 目标位置]
    • 复制文件:cp 源.. 目标..
      • 源可以是一个或多个文件
      • 源为一个文件时,目标为一个文件则替代
      • 源为多个文件时,目标必须为文件夹,移入
  • 编辑文本
    • 打开文件:vim /xx/xx/name
    • 退出
      • 按esc退出编辑
      • 按shift+:出现输入命令界面
      • 输入wq退出编辑
    • 刷新配置:source /etc/profile
    • 实时日志:sudo tail -f /var/log/access.log
  • 压缩类
    • 解压zip:unzip line.zip
  • 共享文件
    • 固定分配共享文件之后
    • 挂载:mount -t vboxsf 被挂载的文件名 /挂载到的目录

      辅助插件

  • 插件操作
    • 安装:yum -y install xxx
    • 卸载:yum -y uninstall xxx
  • 树目录
    • 安装:yum -y install tree
    • 使用:tree -a -d -L 1
      • tree:显示目录树
      • -a:显示所有文件目录
      • -d:只显示目录
      • -L:选择显示的目录深度
      • 1:只显示一层深度,即不递归子目录
  • 后台运行

    • 参考:https://zhuanlan.zhihu.com/p/430070264
    • 安装:yum install tmux
    • 使用:

      • 创建
        • tmux (创建会话,名字默认)
        • tmux new -s test(创建会话,名字为test)
        • tmux new -s test -d(创建会话,名字为test,但不进入会话)
      • 分离(放到后台)
        • ctrl +b 松开后输入d
        • tmux detach(两种方法都可以)
      • 列出会话
        • tmux ls
        • tmux list -session
      • 进入会话
        • tmux attach -t 0
        • tmux attach -t
        • tmux a(进入第一个会话)
        • tmux a -t test(进入test会话)
      • 切换会话
        • ctrl + b ,松开后输入 s 上下箭头选择
      • 杀死会话
        • tmux kill-session -t test(杀死test会话,attach同)
        • tmux kill-session(杀死所有会话,不杀死sttach会话)
      • exit:退出

      • 环境

    • 用户相关

      • 切换root:su(先用sudo passwd root设置密码)
    • 环境变量
      • 文件位置:etc/profile(或者etc/profile.d/xx)
      • 查看所有:env
      • 查看单一:echo ${变量名}
      • 自身赋值:变量名=${变量名}xxx
      • 导入全局:export 变量名
      • 更新环境变量:source /etc/profile
    • 快捷命令(贼好用)
      • 文件位置:/root/.bashrc
      • 配置说明:alias rm=’rm -i’
    • 防火墙
      • 状态:systemctl status firewalld
      • 关闭:systemctl stop firewalld
      • 自启:systemctl disable firewalld.service

        网络类

  • 域名host

    • 参考详解:http://www.eepw.com.cn/zhuanlan/238897.html
    • 通常三部分:ip地址 主机名/域名 (主机别名)
      • ip地址表明最终映射,127.0.0.1表示本机
      • 主机名/域名表示互联网唯一标识,主机名用于局域网,域名用于互联网
      • 主机别名用于本机快捷访问
  • 端口

    • 端口转发:
      • iptables -t nat -A PREROUTING -p tcp —dport 新端口 -j REDIRECT —to-ports 旧端口
    • 服务器中转
      • firewall-cmd —add-forward-port=port=1433:proto=tcp:toaddr=113.88.12.56:toport=1433
      • firewall-cmd —reload
      • firewall-cmd —list-all
    • 查看被占用的端口:netstat -tln | grep 8899(去掉|后边的可查看全部端口)
      • image.png
      • netstat -lntp
      • image.png
    • 查看被占用的端口的PID:sudo lsof -i:8899
      • image.png
    • 杀死进程:sudo kill -9 850
      • image.png
    • 杀死占用某端口的进程
      • image.png

        脚本类

  • 同步脚本

    • 用途
      • 多个服务器进行文件同步,其中同步的文件路径相同
    • 配置host(便于记忆与登录)
      • vim /etc/hosts
      • 添加以下内容(ip为本机就改为127.0.0.1需要改为0.0.0.0否则只对内网开放
        • 117.50.180.247 mykj
        • 47.106.103.145 myali
        • 124.222.199.221 mytx
      • 别名一定不能含有特殊字符(包括_)
      • 其中如果ip是目前服务器时需要改为0.0.0.0 xxx映射
    • 配置hostname
      • 按照host对应的mykj等对每个服务器各自配置
    • 原理
      • 前提是要ssh登录到对方服务器
      • ssh xxx(可以是host也可以是ip)
      • 使用rsync同步文件
      • rsync -av /etc/xxx my_kj:/tmp/1.txt(如果没有免密则要输密码)
    • 配置公钥私钥(此步骤所有机器都要执行一遍)
      • 如果是root用户,进入root/.ssh 如果是其他用户,进入home/user/.ssh
      • 输入:ssh-keygen -t rsa(然后敲三个回车)
      • 将公钥拷贝到要免密登录的机器
        • ssh-copy-id my_kj
        • ssh-copy-id my_ali
        • ssh-copy-id my_tx
      • 配完就可以直接使用ssh host进行登录拉
    • 文件内容
      • xsync.txt
      • 使用时需要将txt后缀去掉,只剩xsync即可
      • 修改文件权限:chmod +x xsync
      • 将脚本移动到 /root/bin/ 目录方便调用(位置在环境变量即可,echo $PATH看)
      • 同时为了方便非root调用,将其移动到/bin目录(cp xx /bin)
    • 使用方法
      • xsync /xxx/xxx/x.x (也可以是目录)
      • sudo /bin/xsync /xxx/xxx/x.x(非root用户移动权限文件时)

        项目相关

  • project start

    • springboot项目的启动命令
    • SpringBoot整合命令(文件传输到/root下,最后一条命令执行两次)
      • kill -9 $(lsof -i tcp:8899 -t)
      • cd /
      • cd root
      • nohup java -jar ccyl-0.0.1-SNAPSHOT.jar > catalina.out 2>&1 &
      • nohup java -jar ccyl-0.0.1-SNAPSHOT.jar > catalina.out 2>&1 &
      • image.png
    • tomcat整合命令
      • 传输目录是:/var/lib/tomcat/webapps
      • 启动命令:sh /usr/sh/restart-tomcat.sh
  • Tomcat

    • 启动tomcat
      • systemctl start tomcat.service
      • systemctl start tomcat
    • 停止tomcat
      • systemctl stop tomcat.service
      • systemctl stop tomcat
    • 重启tomcat
      • systemctl restart tomcat.service
      • systemctl restart tomcat
    • 开机自启
      • systemctl enable tomcat
    • 状态
      • ps -ef|grep tomcat
  • MySQL

    • 启动mysql
      • systemctl start mysqld.service
    • 关闭mysql
      • service mysqld stop
    • 查看mysql
      • systemctl status mysqld.service
    • 开机自启列表
      • systemctl list-unit-files|grep enabled
    • 登录mysql
      • mysql -uroot -p(password)
    • 导出数据库
  • 防火墙

    • 防火墙开放端口
      • firewall-cmd —zone=public —add-port=8080/tcp —permanent
    • 已经开放的端口
      • firewall-cmd —list-ports
    • 开启
      • systemctl start firewalld.service
    • 关闭
      • systemctl stop firewalld.service
    • 重启
      • systemctl reload firewalld
    • 状态
      • service iptables status

2. 阿里云

项目

对象存储

  • 前提
    • 镜像
      • 我选的是pressword
    • 其他
      • 一路next,没怎么管
  • JDK安装
    • 下载
    • 安装
      • image.png
      • 将下载好的压缩包放到此处
      • cd到此目录:cd /usr/local/JDK
      • 解压文件:tar zxvf jdk-8u181-linux-x64.tar.gz
    • 配置
      • 打开配置文件
      • vim /etc/profile
      • 在末尾添加相关代码
        image.png
      • 注意:
        • 进入文件之后任意按键都能触发修改,找个空白的地方按键
        • 修改的时候下边会显示insert
        • 修改完毕之后先esc
        • 然后shift + :
        • 出现输入命令界面,然后输入wq回车即可保存
      • 重载配置
        • source /etc/profile
  • mysql配置
    • 获取密码:
      • 登录服务器,输入
      • sudo grep mysql_root_passwd /root/env.txt
    • 配置环境:
      • 无环境
        • wordpress镜像自带数据库,但无全局环境
        • image.png
        • 无环境登录👆
      • 配置
        • vim /etc/profile
        • 末尾添加代码
        • image.png
        • 保存
          • esc
          • ctrl+:
          • wq
          • 回车
        • 刷新配置:
          • source /etc/profile
        • 注意
          • 其中PATH变量最好放在最后,其中用到的HOME要比自己靠前声明
    • 修改密码
      • 不改密码
        • image.png
        • 默认密码需要修改,否则第一次登录之后下次登录就gg
      • 改密码
        • 登录服务器
        • 停止mysql监测
          • /etc/init.d/mysqld stop
        • 设置无密码登录
          • mysqld_safe —user=mysql —skip-grant-tables —skip-networking &
          • 设置之后无需密码直接回车就能登陆
        • 改安全更新模式
          • 查询
            • show variables like ‘SQL_SAFE_UPDATES’;
            • image.png
          • 修改:
            • set sql_safe_updates=off;
            • image.png
          • 注意:
            • 如果不修改这个安全更新模式出现先以下情况
            • image.png
            • 即安全模式下必须指定主键来更新
        • 密码更改
          • use mysql
          • UPDATE user SET authentication_string = password ( ‘123456’ ) WHERE User = ‘root’;
          • image.png
        • 配置生效
          • 刷新:flush privileges;
          • 退出:quit;
          • 重启:/etc/init.d/mysqld restart
      • 允许远程连接
        • 登录数据库
        • use mysql;
        • 查询
          • select host from user where user=’root’;
          • image.png
        • 修改
          • update user set host = ‘%’ where user =’root’;
          • 若不能修改执行 set sql_safe_updates=off; 之后重新进行
        • 刷新配置
          • flush privileges;
        • 即可远程客户端连接数据库
      • WordPress更新数据库密码
        • 他不会检测到数据库密码更改了,所以要重新配置一下
        • 进入服务器目录
        • image.png
        • 在目录/home/www/htdocs下找到wp-config.php文件
        • image.png
        • 修改密码即可

5. 腾讯云

轻量服务器

4. 环境配置

Mysql

  • 版本8(慎用)
    • 下载
    • 安装
      • yum -y install mysql80-community-release-el7-3.noarch.rpm
      • yum install -y mysql-community-server —nogpgcheck
      • 其中第二个是强制安装,不检查证书(上边是mysql8,下边是mysql5.7)
    • 命令
      • 启动:systemctl start mysqld.service
      • 停止:systemctl stop mysqld.service
      • 查看:systemctl status mysqld.service
      • 重启:systemctl restart mysqld.service
      • 版本:
    • 登录
      • 获取初始密码:grep “password” /var/log/mysqld.log
      • 登录:mysql -uroot -p(然后输入密码,密码不显示,最后回车即可)
    • 修改密码
      • 登陆后直接修改
        • ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘Left@zuo123.’;
        • 此密码必须遵循规范,较复杂
      • 修改密码规范
        • set global validate_password.policy=0;
        • set global validate_password.length=1;
        • ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘741748’;
        • 这样就可以用比较简单的密码了
    • 远程登陆权限
      • 创建用户admin:CREATE USER ‘admin’@’%’ IDENTIFIED BY ‘123456’;
      • 允许远程连接:GRANT ALL ON . TO ‘admin’@’%’;
    • 错误
      • 客户端plugin caching_sha2_password
        • 修改策略:
          • use mysql;
          • ALTER USER ‘admin’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
        • 查看策略:select host,user,plugin fromuser;
        • 修改全部策略:update user set plugin=’mysql_native_password’;
      • 记得关防火墙以及开放端口
    • 卸载
      • 千万不要用mysql8,使用的时候如果已存在的数据较多而且有多个索引甚至有fulltext索引的情况下,一个插入会逐渐消耗掉所有内存,个人猜测是因为mysql把所有索引都放到了内存,其实本来所有数据量不大,但是加上fulltext里边的索引是重复出现的,所以直接爆满了
      • 查包名:rpm -qa|grep -i mysql
      • 删除:rpm -e —nodeps 包名
  • 版本5.7(常用)

    • 参考
    • 检测是否含
      • rpm -qa | grep mysql
    • 卸载
      • rpm -e mysql(普通删除模式)
      • rpm -e —nodeps mysql(强力删除模式)
    • 下载+更新
    • 安装mysql
    • 更改密码
      • 获取初始密码:grep “password” /var/log/mysqld.log
      • 登录:mysql -uroot -p
      • 修改密码1:ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘Left@zuo123.’;
      • 修改规范:
        • set global validate_password_policy=LOW;
        • set global validate_password_length=6;
      • 修改密码2:ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘741748’;
    • 允许远程连接
      • grant all privileges on . to ‘root’@’%’ identified by ‘741748’ with grant option;
      • flush privileges;
    • 错误
  • 依赖安装

    • yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
  • 下载nginx
  • 安装
    • 教程:https://www.cnblogs.com/517cn/p/14701039.html
    • 移动到:usr/local
    • 解压:tar -zxvf nginx-1.9.9.tar.gz
    • 进入目录:cd nginx-1.9.9
    • 配置:
      • 如果make失败:
        • 依赖问题:yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
        • 编译失败
          • /usr/local/nginx/nginx-1.9.9/objs找到Makefile打开
          • 将前几行内的-Werror -g删掉
          • 上述删除原位置新增:-Wno-implicit-fallthrough
          • /usr/local/nginx/nginx-1.9.9/src/os/unix找到ngx_user.c打开
          • cd.current_salt[0] = ~salt[0];注释掉
      • ./configure —prefix=/usr/local/nginx —with-http_stub_status_module —with-http_ssl_module
    • 编译
      • make
      • make install
  • 测试
    • 移动目录:/usr/loca/nginx/
    • 测试:./sbin/nginx -t
  • 环境变量
    • cd /
    • vim /etc/profile
    • 添加环境变量
    • image.png
    • 保存
      • esc
      • ctrl + :
      • wq
      • 回车
    • 然后就可以直接nginx启动,其他命令看下边常用命令处
  • 问题

    • 如果是最新版本启动时可能会报错无client文件(创建文件夹即可)

      Java

  • 下载

  • 安装
    • image.png
    • 将下载好的压缩包放到此处
    • cd到此目录:cd /usr/local/JDK
    • 解压文件:tar zxvf jdk-8u181-linux-x64.tar.gz
  • 配置

    • 打开配置文件
    • vim /etc/profile
    • 在末尾添加相关代码
      image.png
    • 注意:
      • 进入文件之后任意按键都能触发修改,找个空白的地方按键
      • 修改的时候下边会显示insert
      • 修改完毕之后先esc
      • 然后shift + :
      • 出现输入命令界面,然后输入wq回车即可保存
    • 重载配置
      • source /etc/profile

        Python

  • 参考

  • 相关命令
    • 查看版本信息:python —version
  • 前置
    • wget工具:yum -y install wget
    • GCC环境:yum -y install gcc
    • 相关组件
      • yum install openssl-devel bzip2-devel expat-develgdbm-devel
      • yum install readline-develsqlite*-develmysql-devellibffi-devel
  • 安装