0%

Centos常用命令

软件相关

使用阿里云开源镜像

  • 备份旧的配置文件
    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

  • 自定义配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    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

  • 在末尾添加以下内容

    1
    2
    3
    4
    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项目不建议启用交换分区