软件相关

使用阿里云开源镜像

  • 备份旧的配置文件

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

  • 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/

    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

  • 并替换部分字段(非阿里云机器需要做)

    sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

  • 生成缓存

    yum makecache

rpm

  • 查看软件是否安装

    rpm -qa | grep 软件名

  • 查看软件安装路径

    rpm -ql 软件名

  • 安装软件

    rpm -ivh 软件包

  • 卸载软件

    rpm -e --nodeps 软件包

yum

  • 查看软件是否安装

    yum list installed | grep 软件名

  • 查看软件是否已安装以及相关软件包

    yum list 软件包*

  • 查看yum源软件包版本等信息

    yum info 软件包

  • 本地查找不到时

    yum search 软件包*

  • 安装软件

    yum install 软件包

  • 卸载软件

    yum remove 软件包

  • 软件依赖

    yum deplist 软件包

  • repo源文件位置

    cd /etc/yum.repos.d

进程相关

  • 进程信息排序

    top

  • 查看进程信息

    ps 进程id

  • 进入进程运行信息文件夹

    /proc/进程id

  • 查看进程源文件位置,其中"exe ->"指向的就是源文件位置

    ls -la /proc/进程id

  • 强制终止进程

    kill -9 进程id

  • 查看端口占用

    netstat -ntlp | grep 端口号/程序名

  • 后台运行任务

    nohup 任务命令 > log.txt &

  • 查看任务运行情况

    ps -ef | grep 任务命令 | grep -v grep

系统相关

  • 查看历史启动时间

    last reboot

ssh端口修改

  • 编辑配置文件

    vi /etc/ssh/sshd_config

  • 找到 #Port 22 一行,去除 # 号,并将 22 改为新的端口

  • 防火墙开放新端口

  • 重启sshd服务

    systemctl restart sshd

使用fail2ban

  • yum 安装

    yum install fail2ban

  • 自定义配置

    vi /etc/fail2ban/jail.local

        [DEFAULT]
        # 以空格分隔的列表,可以是 IP 地址、CIDR 前缀或者 DNS 主机名
        # 用于指定哪些地址可以忽略 fail2ban 防御
        ignoreip = 127.0.0.1/8
        logencoding=utf-8
        # 客户端主机被禁止的时长(秒)
        bantime  = 36000
        # 查找失败次数的时长(秒)
        findtime  = 36000
        # 客户端主机被禁止前允许失败的次数
        maxretry = 3
    
        #一分钟内ssh密码错误3次禁止2小时
        [ssh-iptables]
        enabled  = true
        filter   = sshd
        action   = iptables[name=SSH, port=ssh, protocol=tcp]
        # Debian 系的发行版
        logpath = /var/log/auth.log
        # Red Hat 系的发行版
        logpath = /var/log/secure
        maxretry = 3
        findtime = 60
        bantime = 7200
  • 重启服务

    systemctl restart fail2ban

  • 测试是否服务正常运行

    fail2ban-client ping
    Server replied: pong

  • 开机启动

    systemctl enable fail2ban

  • 版本查看

    fail2ban-client version

  • 查看sshd状态

    fail2ban-client status sshd

防火墙相关

  • 查看防火墙状态

    systemctl status firewalld

  • 查看开放的所有端口及协议

    firewall-cmd --zone=public --list-ports

  • 查看指定端口是否已开放

    firewall-cmd --query-port=端口号/协议(tcp/udp)

  • 永久开放指定端口号

    firewall-cmd --permanent --add-port=端口号/协议(tcp/udp)
    success表示成功

  • 永久移除指定端口号

    firewall-cmd --permanent --remove-port=端口号/协议(tcp/udp)

  • 重新载入防火墙配置(修改规则后,须执行此命令)

    firewall-cmd --reload

文件相关

  • 创建文件夹

    mkdir 文件加名称

  • 递归删除文件夹

    rm -rf 文件夹路径

  • 创建文件

    touch 文件名

  • 查看文件

    cat 文件名

  • 删除文件

    rm -f 文件名

  • 添加可执行权限

    chmod +x 文件夹或文件

  • 删除可执行权限

    chmod -x 文件夹或文件

vi相关

  • 打开文件

    vi 文件路径

  • 进入insert模式

    按i键

  • 进入command模式

    按esc键

  • 强制保存文件,并退出vi

    :wq!

  • 不保存文件,退出vi

    :q!

  • 保存文件但不退出vi

    :w!

  • 将修改另外保存到file中,不退出vi

    :w file

  • 放弃所有修改,从上次保存文件开始再编辑

    :e!

硬盘与文件系统

  • 查看硬盘label(别名)

    blkid

  • 查看硬盘大小

    lsblk

  • 查看分区信息

    fdisk -l

  • 查看硬盘占用

    df -h

  • 查看文件夹占用空间

    du -sh

  • 查看文件夹及下级文件占用空间(参数--max-depth用来指定深入目录的层数)

    du -h --mxa-depth=1

刷新DNS缓存

yum -y install nscd
systemctl start nscd
nscd -i hosts

无线网络配置

  • 安装 nmcli 工具

    yum install NetworkManager*

  • 重启网络服务

    systemctl restart NetworkManager

  • 查看网卡别名和网卡信息

    nmcli

  • 将无限网卡加入托管(命名可能不是wlp1s0)

    nmcli dev set wlp1s0

  • 开启wifi

    nmcli r wifi on

  • 扫描wifi

    nmcli dev wifi

  • 连接ssid

    nmcli --ask dev wifi connect SSID_NAME

  • 查看网卡状态

    nmcli dev status

  • 网卡命名规则

    en: eethernet 以太网-双绞线
    wl: wirelessLAN 无线网卡
    ww:WAN广域网 串行线缆
    
    o:on-board 板载网卡
    s: hotplug 热插拔
    p:PCI接口
    
    N:序号或者ID

替换openjdk

  • Oracle官网下载rpm安装包

  • 用rpm命令安装jkd

    rpm -ivh 安装包名称.rpm

  • 使用update-alternative配置java

    update-alternatives --config java
    update-alternatives --config javac

  • 查看当前jdk版本

    java -version
    javac -version

  • 查看jdk位置

    which java
    ls -lrt /usr/bin/java
    ls -lrt /etc/alternatives/java

  • 配置环境变量

    vim /etc/profile

  • 在末尾添加以下内容

    export JAVA_HOME="上面输出的路径,截止到jdk目录"
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
  • 更新profile

    source /etc/profile

  • 测试javahome

    echo $JAVA_HOME

使用tar.gz方式安装jdk

安装debug版本jdk,以支持更多命令

  yum install -y java-1.8.0-openjdk-devel && yum install -y java-1.8.0-openjdk-debuginfo --enablerepo=*debug*

进程莫名停止,没异常信息

  • 查看message信息,是否内存不足被杀了

    cat /var/log/message

  • 解决方法:添加交换分区

  • 创建交换分区

    dd if=/dev/zero of=/usr/swap bs=1M count=2048 #在/usr目录下创建2g的文件swap,文件的大小是count的大小乘以bs大小
    mkswap /usr/swap #把新建的文件做成swap分区
    swapon /usr/swap #启用交换分区

  • 设置开机自动挂载

    vi /etc/fstab
    /usr/swap swap swap defaults 0 0

  • 查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成10或者30

    cat /proc/sys/vm/swappiness
    sysctl -w vm.swappiness=10

这里需要简单说明下,在Linux系统中,可以通过查看/proc/sys/vm/swappiness内容的值来确定系统对SWAP分区的使用原则。当swappiness内容的值为0时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用SWAP分区。当swappiness内容的值为100时,表示积极地使用SWAP分区,并且把内存中的数据及时地置换到SWAP分区。注:若想永久修改,则编辑/etc/sysctl.conf文件
我们这里设置的30,就表示当物理内存少于30%时便使用交换分区。

  • 关闭交换分区

    swapoff /usr/swap

  • 最重要一点,java项目不建议启用交换分区