• Linux系统常用命令


    一、网络

    1、修改IP地址:ifconfig eth0 192.168.1.101 netmask 255.255.255.0       vi /etc/sysconfig/network-scripts/ifcfg-eth0(需重启网卡)
       修改网关地址:route add default gw 192.168.1.1        vi /etc/sysconfig/network-scripts/ifcfg-eth0(重启网卡)
       修改DNS:    vi /etc/resolv.conf (重启网卡) 
       修改主机名:hostname test1        vi /etc/sysconfig/network
    2、重启网络服务: service network restart    
                    /etc/init.d/network restart
                    systemctl restart network  
    3、增加一条路由: ip route add 10.0.0.0/8 via 10.12.26.1 dev eth0
      删除一条路由: ip route del 10.0.0.0/8 via 10.12.26.1

    4、网络诊断命令
    tcpdump -i ens33 -nn port 22:监听网卡ens33的22端口网络数据
    tcpdump -i eth0 -nn ’port 22 and src host 192.168.1.100’:监听网卡eth0网口22端口上目标来源为192.168.1.100的数据包
    nc 192.168.1.105 80:查看192.168.1.105的80端口是否打开
    netstat -nat |awk '{print $6}' |sort|uniq -c|sort -rn:查看TCP连接状态
    netstat -nlpt|grep php-fpm
    netstat -r:显示内核路由信息
    netstat -anlp | grep 80 | grep tcp | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n 20:查找请求数20个IP

    netstat中state状态解释:
    CLOSED:初始无状态连接;
    LISTEN:监听状态,等待远程机器连接请求;
    SYN_SEND:TCP握手期间,主动端发送SYN包后进入SYN_SEND状态,等待对方ACK包;
    SYN_RECV:TCP握手期间,主动端收到SYN包后进入SYN_RECV状态;
    ESTABLISHED:完成三次握手后,主动连接端进入ESTABLISTENED状态,此时TCP连接已经建立,可以进行通信了。
    FIN_WAIT_1:在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态;
    FIN_WAIT_2: 在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态;
    TIME_WAIT: 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包;
    CLOSING:在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的FIN包,此时,进入CLOSING状态;
    CLOSE_WAIT:在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态;
    LAST_ACK:在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。

    strace -cp <PID>:跟踪显示PID进程执行操作的时间
    strace -T -e clone -p <PID>:单独跟踪进程执行clone操作的情况
    strace -c -p $(pgrep -n php-cgi):查看php进程各操作执行情况

    5、cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 更改时区

    二、用户

    1、添加用户和用户组:groupadd mysql    useradd -g mysql mysql   
    groupadd esuser -g 2001 useradd -g esuser -u 2001 -d /home/esuser -s /bin/bash esuser
    删除用户及家目录文件:userdel -r
    显示所有属组:/etc/group
    显示用户所有用户名:/etc/shadow
    2、修改密码:passwd
      echo "123456" | passwd --stdin $USERNAME &>/dev/null 非交互式的方式设置密码

    三、开关机

    1、立刻关机:shutdown -h now    shutdown -h 0
       定时延时:shutdown -h +30    shutdown -h 10:00
       重启:shutdown -r now   reboot
       挂起:sudo pm-suspend
       休眠:sudo pm-hibernate

    四、Yum和RPM

       vim /etc/yum.repos.d/CentOS-Base.repo :查看yum源配置路径
       yum -y install packagename   安装指定软件
       yum update packagename   更新指定软件
       yum -y remove packagename   删除软件
       yum search packagename   查找软件
       yum list installed    列出所有已经安装的软件
       rpm -qa   列出所有已经安装的软件
       yum list extras   列出所有已安装但不在yum repository内的软件
       yum info packagename    列出软件信息
       yum clean packagename   清除缓存目录下的软件包
       yum clean all   清除缓存目录下所有的软件包
       yum check-update   更新包数据库

    五、基本命令

    1、cp 几种用法:-l 创建文件链接而非复制文件, -p复制过程中保留文件属性,-R递归复制文件,-s创建符号链接而非复制文件
    2、cat 几种用法:-n 每行前加行号, -b只在文本文件前加行号 
    3、sort -n file把文件中数字识别成数字而不是字符,并且将它们按值进行排序;
       sort -M file按照月份排序;    查看目录下文件大小时常用   du -s * | sort -nr
    4、rename '.txt' '.txt.bak' *.txt  重命名文件名
    5、chkconfig --list:查看当前所有服务;
       chkconfig --list atd:查询atd服务当前运行的状态;
       chkconfig --list |grep on:查看当前服务的运行状态;
       chkconfig NetworkManager off  :关闭NetworkManager开机自启动;
       service sshd stop:停止ssh服务;
    6、curl -sSL https://get.docker.com/ | sh     
    7、grep -E 'word1|word2' 文件名
    8、seq 1 10:产生1-10的数字
       seq -w 10:产生两位的01-10
       seq -f "str%03g" 1 10
    9、cat /proc/version 显示linux内核版本信息
    10、显示BIOS信息:dmidecode -t 0
    11、显示BMC信息:ipmitool -I open mc info
    12、显示IPMI地址:ipmitool lan print
    13、清理缓存
      
    页面缓存:echo 1 > /proc/sys/vm/drop_caches
    目录缓存:echo 2 > /proc/sys/vm/drop_caches
    所有缓存:echo 3 > /proc/sys/vm/drop_caches
    14、定时任务: */2 * * * * /bin/bash /home/package/leiwenhui/file_shell/example10.sh
    15、时间同步:/usr/sbin/ntpdate time.nist.gov rdate -s time-b.nist.gov
    16、时间格式:date "+%Y-%m-%d %H:%M:%S"
    17、大盘分区挂载
    parted /dev/adb
    yum -y install xfsprogs kmod-xfs
    mklabel gpt
    mkpart primary 0 -1
    mkfs.xfs /dev/sdb1
    mkdir -p /data
    18、zip压缩
    zip -s 800m java_pid32346.zip --out bj4006.zip

    六、DNS

    1、清理DNS缓存
    /etc/rc.d/init.d/nscd restart
    service nscd restart
    2、跟踪DNS解析过程
    dig +trace www.baidu.com

    七、防火墙

    IPTABLES:
    路由前:PREROUTING
    转发:FORWARD
    路由后:POSTROUTING
    到本机某进程的报文:PREROUTING --> INPUT
    由本机转发的报文:PREROUTING --> FORWARD --> POSTROUTING
    由本机某进程发出的报文:OUTPUT --> POSTROUTING

    表的概念:定义的所有规则都存在于这4张表中
    filter表:负责过滤功能,防火墙,对应内核模块:iptables_filter
    nat表:网络地址转化功能,对应内核模块:iptables_nat
    mangle表:拆解报文,做出修改,并重新封装的功能,对应内核模块:iptables_mangle
    raw表:关闭nat表上启用的连接跟踪机制,对应iptables_raw
    prerouting链中的规则存放与三张表中,而这三张表的规则执行的优先级如: raw --> mangle --> nat
    iptables为我们定义了4张表,当他们处于同一条链时,执行的优先级:raw --> mangle --> nat --> filter

    处理动作:
    ACCEPT:允许数据包通过
    DROP:直接丢弃数据包,不做任何回应信息
    REJECT:拒绝数据包通过,必要时会给数据发送端发送一个响应信息,客户端刚请求就会收到拒绝信息
    SNAT:源地址转换,解决内网用户使用同一个公网上网的问题
    DNAT:目标地址转换,
    REDIRECT:在本机做端口映射。

      1
    .允许https服务通过public区,要求立即生效或永久生效 firewall-cmd --zone=public -add-service=https firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload 2.不再允许http服务流量通过public区域,要求立即生效且永久生效: firewall-cmd --permanent --zone=public --remove-servicce=https firewall-cmd --reload 3.允许8080与8081端口流量通过public区域 firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp firewall-cmd --reload 4.查看端口操作是否成功 firewall-cmd --zone=public --list-port 5.将eno167网卡的区域修改为external,重启后生效 firewall-cmd --permanent --zone=external --change-interface=eno167 6.查看firewalld服务当前所使用的区域: firewall-cmd --get-default-zone firewall-cmd --get-zone-of-interface=eno1672228 7.把firewalld服务中eno16777728网卡的默认区域修改为external,并在系统重启后生效。 firewall-cmd --permanent --zone=external --change-eno1672228 firewall-cmd --get-zone-interface=eno1672228 firewall-cmd --permanent --get-zone-of-interface=eno1672228 iptables命令 1.iptables -L: 显示防火墙规则 2.iptables -F:清空防火墙规则 3.iptables -P INPUT DROP:把input规则链的默认策略设置为拒绝 4.iptables -I INPUT -p icmp -j ACCEPT:允许icmp协议通过 5.iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT:只允许指定网段的主机访问本机22端口,拒绝来自其它所有主机的流量。 6.iptables -A INPUT -p tcp --dport 22 -j REJECT 7.向INPUT规则链中添加拒绝所有人访问本机12345端口的策略规则 iptables -I INPUT -p tcp --dport 12345 -j REJECT iptables -I INPUT -p udp --dport 12345 -j REJECT
       iptables -A INPUT -p tcp --dport 22 -j ACCEPT
       iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT iptables
    -L 8.向INPUT规则链中添加拒绝192.168.10.5主机访问本机80端口(Web服务)的策略规则: iptables -I INPUT -p tcp -s 192.168.10.5 --dport 80 -j REJECT iptables -L 9.向INPUT规则链中添加拒绝所有主机访问本机1000-1024端口的策略规则: iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT iptables -A INPUT -p udp --dport 1000:1024 -j REJECT iptables -L service iptables save:永久保存 修改防火墙配置文件: /etc/sysconfig/iptables 重启并加载配置到内核: /etc/init.d/iptables restart; sysctl -p
      10、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1
    iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp -dport 80 -j DNAT-to-destination 192.168.2.1:8080

    八、nginx

        安装nginx,三大功能:反向代理、负载均衡、静态服务器。
        如上述配置文件所示,主要由6个部分组成:
        main:用于进行nginx全局信息的配置
        events:用于nginx工作模式的配置,表示事件驱动型配置项的
        http:用于进行http协议信息的一些配置
        server:用于进行服务器访问信息的配置
        location:用于进行URL访问属性的配置
        upstream:用于进行负载均衡的配置
        配置反向代理:proxy_pass
        server {
            listen 80;
            server_name localhost;
            location /
        }
        
        yum -y install pcre pcre-devel openssl openssl-devel
        groupadd nginx
        useradd -g nginx nginx
        chmod +x nginx-1.12.2.tar.gz
        cd nginx-1.12.2/
        ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
        make && make install
        ln -s /usr/local/nginx-1.12.2 /usr/local/nginx
        ./nginx -t 测试nginx配置是否正确
        ./nginx -s reload

    九、MySQL

    1、mysql数据库备份和导入数据库
      mysqldump -uroot -plwh0825 databasename > backup.sql
      mysql -uroot -plwh0825 target.sql < backup.sql
      备份所有数据库并打包
      30 1 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`date '+%m-%d-%Y'`.sql.gz
      只备份表结构
      mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump
    2、mqsql安装过程

        解压安装包:tar zxf mysql-5.6.17-linux-glibc2.5-i686.tar.gz
        复制解压后的目录到安装路径下:cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r
        添加系统mysql组和mysql用户:groupadd mysql useradd -r -g mysql mysql
        修改当前目录拥有者为mysql用户:chown -R mysql:mysql ./
        执行安装脚本(初始化数据库):./scripts/mysql_install_db --user=mysql
        修改当前目录拥有者为root用户:chown -R root:root ./
        修改data目录拥有者为mysql用户:chown -R mysql:mysql data
        为mysql客户端创建默认路径的软链接:ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
        为mysql用户设置密码:mysqladmin -u root password 'lwh0825'
        修改mysql的root密码:./bin/mysqladmin -u root password
        设置mysql服务自启动:
        chkconfig --add mysqld
        chkconfig mysqld on
        service mysqld start

    十、系统命令

    1、检查Linux日志
        /var/log/messages:系统日志
        /var/log/secure:系统访问日志
    2、查看cpu信息
        cat /etc/cpuinfo | grep "physical id" | sort | uniq | wc -l  :查看物理CPU的个数
        cat /etc/cpuinfo | grep "processor" | wc -l: 查看逻辑CPU的个数
        cat /etc/cpuinfo | grep "cores" | uniq :查看CPU核数
    3、cpu使用率
        top:实时显示系统当前负载、运行进程和CPU使用率,
             %us:表示用户空间程序的cpu使用率;
             %sy:表示系统空间cpu使用率,主要是内核程序;
             %ni:表示用户空间通过nice调度过的程序的cpu使用率;
             %id:空闲cpu
             按键1打开CPU列表
             shift+p:以CPU使用率进行排序         
        sar -u -o 1 5:采集cpu使用信息,共5次,每秒1次。
        sar -q 1:采集cpu信息,每秒一次。
        iostat -c 1 5:采集cpu使用信息,共5次,每秒1次。
        ps -aux | grep -v grep:查看占用cpu和内存最多的进程。
        dstat --top-mem --top-cpu --top-io:显示进程使用cpu的情况
        dstat -c:显示硬中断、软中断等信息。
        vmstat:
        ab -n 10000 -c 300 http://127.0.0.1/index.html:压力测试300并发。
        mpstat -P ALL 1:查看每个CPU负载是否均匀
        
    4、内存使用率
        free -m:内存 -> 缓存cache -> 交换分区swap
    5、磁盘使用率
        df -h

    6、获取不以#号开头的行
    cat /tmp/hehe|grep ^[^#] >> /tmp/rs

    7、获取主机SN
    dmidecode -t 1|grep 'Serial Number'|awk -F: '{print $2}'|sed 's/ //g'

    8、wget http://10.0.0.0/tools/deploy-agent-prod2.sh -O deploy-agent-prod.sh 

    9、du -h --max-depth=5 /data | awk '$1~/G/ {print $0}' | sort -nr

    10、python -m SimpleHTTPServer 8080 使用python启动一个临时的http服务进程

    11、cat /tmp/test | tr -d 'gb' | awk '{sum+=$1} END {print sum}'  求和

    十一、find命令

        find /alidata/www/shop -type f | xargs grep "用户记录"    
        find . -type f -atime -7 搜索最近七天内被访问过的所有文件
        find . -type f -atime 7 搜索恰好在七天前被访问过的所有文件
        find . -type f -atime +7 搜索超过七天内被访问过的所有文件
        find . -type f -amin +10 搜索访问时间超过10分钟的所有文件
        find . -type f -newer file.log 找出比file.log修改时间更长的所有文件
        find . -type f -size +10k 搜索大于10KB的文件
        find . -type f -size -10k 搜索小于10KB的文件
        find . -type f -name "*.txt" -delete 删除当前目录下所有.txt文件
        find . -type f -name "*.php" ! -perm 644 找出当前目录下权限不是644的php文件

    十二、IPMI

     1、IPMI获取服务器信息
        ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print |grep "MAC Address"  获取服务器网络信息
        ipmitool fru print 0
        ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power on
        ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power off
        ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power cycle
        ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power reset
        ipmitool -I lanplus -H 10.6.29.29 -U admin -P admin mc infofind
  • 相关阅读:
    周总结14
    周总结13
    周总结12
    周总结11
    周总结10
    Pytorch实现GCN、GraphSAGE、GAT
    pytorch在损失函数中为权重添加L1正则化
    conda安装虚拟环境或者软件包时一直报错
    各种报错
    Pytorch-torchtext的使用
  • 原文地址:https://www.cnblogs.com/lwhctv/p/10268990.html
Copyright © 2020-2023  润新知