当前位置:   article > 正文

CentOS 常用操作_centos操作

centos操作

一、常用命令
    1:跟踪日志
        tail -f -n 100 xxx
    2:文件编辑
        vi/vim(编辑);shift+:wq(退出编辑保存);shift+:q(退出编辑);shift+:q!(强制退出);Esc->/关键字(查找关键字)  n(下一条)  shift+n(上一条)
    3:翻页查看
        less -N(显示行号) xxx;history|less;ps -ef|less;q(退出) d/b(上) u/y(下)
    4:cat命令
        -n 或 --number:由 1 开始对所有输出的行数编号
        -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号
        -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行
        -v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外
        -E 或 --show-ends : 在每行结束处显示 $
        -T 或 --show-tabs: 将 TAB 字符显示为 ^I
        -A, --show-all:等价于 -vET
        -e:等价于"-vE"选项
        -t:等价于"-vT"选项
    5:复制文件/文件夹到某路径下
        cp -rf(迭代) xx /xx/xx;mv /xx/* /xx
    6:文件查找
        find / -name xxx
    7:chown指定所有者
        chown -R(迭代) 所有者:所有组 xxx
    8:chmod权限指令(权限分为三级 : 拥有者、群组、其他)
        使用方式 : chmod [-cfvR] [--help] [--version] mode file...
        mode:权限设定字串 [ugoa...][[+-=][rwxX]...][,...],表示[拥有者/群体/其他/所有][增加/取消/赋值][可读/可写/可执行]
        -c:若该档案权限确实已经更改,才显示其更改动作
        -f:若该档案权限无法被更改也不要显示错误讯息
        -v:显示权限变更的详细资料
        -R:对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
        --help:显示辅助说明
        --version : 显示版本
        范例:chmod ugo+r xx(所有人可读);chmod a+r file1.txt;chmod ug+w,o-w xx xx;chmod u+x xx;chmod -R a+r *;chmod 777 file(r=4,w=2,x=1,rwx=7,rw-=6,r-x=5)
    9:删除
        rm -rf /xx 删除目录以及其下所有文件、文件夹
        rm -f xx 将会强制删除xx这个文件
    10:压缩解压
        zip -r myfile.zip xx
        zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.
        unzip -o -d /xx myfile.zip 把myfile.zip文件解压到 /xx  -o:不提示的情况下覆盖文件;
        unzip -v text.zip 查看
        tar zcvf xx.tar.gz (-C) xx
        tar zxvf xx.tar.gz 解压缩后的文件只能放在当前的目录。
        tar -tf all.tar 这条命令是列出all.tar包中所有文件,-t是列出文件的意思
        安装:yum install -y unzip zip
    11:创建
        文件夹:mkdir 权限 xx;mkdir xx;mkdir 777 xx
        文件:vi/vim xx :wq
    12:touch
        更新xx.txt的存取和修改时间。touch xx.txt
    13:进程查看
        ps -ef | grep
        netstat -ntlp查看端口netstat –tunlp
        netstat –apn | grep 8080
        ps -aux | grep pid查看
        kill -9 [PID]
        pwdx pid 查看路径
    14:查看磁盘剩余空间
        lsblk 查看分区和磁盘fdisk -l
        cfdisk /dev/sda 查看分区
        df -hl
        du -bs dir_name
    15:linux查看80端口的连接数
        netstat -pnt | grep :80 | wc -l 去掉后面的 "| wc -l"就能看到详细信息了
        netstat -an|grep 22
    16:top 监控使用情况
    17:rpm&yum
        卸载 rpm -e --nodeps
        查询是否安装 rpm -qa | grep java
        安装 rpm -ivh
        yum list installed|grep wget
    18:防火墙
        systemctl start firewalld.service#启动firewall
        systemctl stop firewalld.service#停止firewall
        systemctl disable firewalld.service#禁止firewall开机启动
        systemctl status firewalld.service#查看状态
    19:开启端口
        firewall-cmd --zone=public --add-port=80/tcp --permanent
        命令含义:
            --zone #作用域
            --add-port=80/tcp  #添加端口,格式为:端口/通讯协议
            --permanent   #永久生效,没有此参数重启后失效
        重新载入:firewall-cmd --reload
        查看:firewall-cmd --zone=public --query-port=80/tcp
        删除:firewall-cmd --zone=public --remove-port=80/tcp --permanent
    20:Linux防火墙(Iptables) 即时生效,重启后失效
        开启: service iptables start  
        关闭: service iptables stop
        在开启了Linux防火墙(Iptables)时,做如下设置,开启25和110端口,
        修改/etc/sysconfig/iptables 文件,添加以下内容:
            -A RH-Firewall-1-INPUT -m state --state NEW -p tcp -m tcp --dport 25 --syn -j ACCEPT
            -A RH-Firewall-1-INPUT -m state --state NEW -p tcp -m tcp --dport 110 --syn -j ACCEPT
    21:配置firewalld-cmd
        查看版本: firewall-cmd --version
        查看帮助: firewall-cmd --help
        显示状态: firewall-cmd --state
        查看所有打开的端口: firewall-cmd --zone=public --list-ports
        更新防火墙规则: firewall-cmd --reload
        查看区域信息:  firewall-cmd --get-active-zones
        查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
        拒绝所有包:firewall-cmd --panic-on
        取消拒绝状态: firewall-cmd --panic-off
        查看是否拒绝: firewall-cmd --query-panic
    22:systemctl
        systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
        启动一个服务:systemctl start firewalld.service
        关闭一个服务:systemctl stop firewalld.service
        重启一个服务:systemctl restart firewalld.service
        显示一个服务的状态:systemctl status firewalld.service
        在开机时启用一个服务:systemctl enable firewalld.service
        在开机时禁用一个服务:systemctl disable firewalld.service
        查看服务是否开机启动:systemctl is-enabled firewalld.service
        查看已启动的服务列表:systemctl list-unit-files|grep enabled
        查看启动失败的服务列表:systemctl --failed
    23:telnet安装
        yum install telnet;yum install telnet-server
        将telnet服务加入开机自启动
        systemctl enable xinetd.service
        systemctl enable telnet.socket
        systemctl start telnet.socket
        systemctl start xinetd(或service xinetd start)
        service xinetd restart
        telnet localhost
    24. nohup后台运行
        语法格式为 nohup [argument...] &
        在当shell中提示了nohup成功后还需要按终端上键盘任意键退回到 shell输入命令窗口,然后通过在shell中输入exit来退出终端;如果在nohup执行成功后直接点关闭程序按钮关闭终端这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown。
        当在后台运行了程序的时候,可以用jobs命令来查看后台作业的状态。在有多个后台程序时,要使用参数的fg命令将不同序号的后台作业切换到前台上运行。
        $ jobs [1]+ Running fetch ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &
        $ fg %1
        /dev/null文件的作用?
            这是一个无底洞,任何东西都可以定向到这里,但是却无法打开。?
            所以一般很大的stdout和stderr当你不关心的时候可以利用stdout和stderr定向到这里>./command.sh >/dev/null 2>&1
        2>&1的意思?
            这个意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。
    25:重启
        reboot;init 6(先shutdown)
    26:查看当前路径:pwd
    27:修改系统环境变量文件
        vi/vim /etc/profile
        source /etc/profile(使修改立即生效)
        echo $PATH(查看PATH值)
    28:CentOS 创建用户
        su 切换为root用户
        创建新用户并使用bash执行ssh:useradd -m xxx -s /bin/bash
        设置密码:passwd 用户名
        添加sudo执行权限
            visudo或vim /etc/sudoers(如不可编辑 chmod -v u+w /etc/sudoers 编辑后要收回)
            添加一行管理员权限:用户名 ALL=(ALL) ALL
            如果新用户sudo不用密码:用户名 ALL=(ALL) NOPASSWD:ALL
    29:检查远程登录是否安装  rpm -qa | grep ssh
        sudo yum install openssh-clients
        sudo yum install openssh-server
        登录:ssh localhost
    30:ssh免密码授权登录
        cd ~/.ssh/(若没有该目录,请先执行一次ssh localhost)
        ssh-keygen -t rsa(会有提示,都按回车就可以)
        cat id_rsa.pub >> authorized_keys(加入授权)
        chmod 600 ./authorized_keys(修改文件权限)
    31:jps查看java进程
    32:查看网卡信息 ip addr
    33:配置 ip
        动态获取ip:
            修改网卡配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens32(最后一个为网卡名称)
                bootproto=dhcp  onboot=yes
                systemctl restart network
        静态IP地址:
            bootproto=static  onboot=yes
            IPADDR=192.168.1.160
            NETMASK=255.255.255.0
            GATEWAY=192.168.1.1
            DNS1=119.29.29.29
            DNS2=8.8.8.8
        systemctl restart network
        centos8:nmcli c reload 网卡名(nmcli可查看)  或  nmcli c up 网卡名 或 nmcli d reapply/connect 网卡名
    34:mysql5.7 远程
        use mysql;
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root123@' WITH GRANT OPTION;
    35:查看系统版本
        cat /etc/redhat-release
    36:centos 查看系统信息
        系统:cat /etc/os-release 或 hostnamectl 或 cat /etc/issue
        cpu:cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
        内存:cat /proc/meminfo
        内核:uname -a
    37:查看软件安装信息
        rpm -qal |grep jenkins
    38:用户和组
        添加用户:adduser 用户名
        设置密码:passwd 用户名
        useradd -g 组名 用户名(-g 所属组 -d 家目录 -s 所用的SHELL)
        查看用户:vim /etc/passwd
        查看用户组: vim /etc/group     groups <user1> <user2>
        修改密码:passwd 用户名
        添加用户组:groupadd 组名
        将用户加入组同时从其他组移除:usermod -G 组名 用户名
        将用户加入组同时不从其他组移除:usermod -a  -G 组名 用户名
        关闭用户:passwd 用户名 -l
        恢复:passwd 用户名 -u
        删除用户:userdel 用户名
        删除用户组:groupdel 组名
        强制删除该用户的主目录和主目录下的所有文件和子目录:usermod -G 组名 用户名
        将用户移除组:gpasswd -d 用户名 组名
    39:centos7扩展分区
        fdisk -l查看是否有空余空间未使用
        fdisk /dev/sda 创建分区 -> p打印分区 -> n创建分区 -> t修改分区类型8e为lvm -> w保存
        pvcreate /dev/sda1 生成pv物理卷
        vgscan 查看vg卷组
        vgextend centos /dev/sda1扩容到当前卷组   vgcreate vg001 /dev/sda1创建vg
        vgdisplay 可以看到已经有剩余空间
        lvextend -L +200G /dev/mapper/centos-root  扩展到现有挂载点
        xfs_growfs /dev/mapper/centos-root 刷新挂载点
        lvscan 扩展成功
    40:centos7挂载点之间扩容
        df -h    将/dev/mapper/centos-home分区 分配一部分空间到 /dev/mapper/centos-root
        lvreduce -L 200G /dev/mapper/centos-home 设置 home 分区大小为 200G,释放 300G 空间
        lvextend -l +100%FREE /dev/mapper/centos-root 将空闲空间扩展到 root 分区
        xfs_growfs /dev/mapper/centos-root 使用 XFS 文件系统自带的命令集增加分区空间
        这样会导致home无法挂载但是root正常可以使用下面的方法
        umount /home/
        lvremove /dev/mapper/centos-home
        lvextend -L +10G  /dev/mapper/centos-root
        xfs_growfs /dev/mapper/centos-root
        lvcreate -L 10G -n home centos
        mkfs.xfs  /dev/mapper/centos-home
        mount  /dev/mapper/centos-home  /home
        df -h
        lsblk
    41:挂载云盘
        方式一不分区:
            fdisk -l 可以看到云盘信息 parted --list
            mkfs.ext4 /dev/vdb 格式化云盘mkfs.xfs /dev/vdb (如已存在加[-f])
            mount /dev/vdb  /data 挂载到data目录(删除挂载umount /data)
            配置开机自动挂载修改/etc/fstab文件,文件末尾添加:/dev/vdb(或UUID=通过blkid 查看)   /data ext4    defaults    0  0
            df -hl查看挂载情况lsblk
        方式二分区:
            fdisk -l 可以看到云盘挂载信息 parted --list
            fdisk /dev/vdb -> (p:查看分区,n:创建分区) -> 一直默认 -> w保存
            fdisk -l 可以看到已经有新分区/dev/vdb1
            格式化云盘分区 mkfs.xfs /dev/vdb1
            mount /dev/vdb1  /data 挂载到data目录(删除挂载umount /data)
            配置开机自动挂载修改/etc/fstab文件,文件末尾添加:/dev/vdb(或UUID=通过blkid 查看)   /data ext4    defaults    0  0
            df -hl查看挂载情况lsblk
    42:释放cache/buff
        sync
        echo 1 > /proc/sys/vm/drop_caches
        echo 2 > /proc/sys/vm/drop_caches
        echo 3 > /proc/sys/vm/drop_caches
        free -h
    43:定时任务 cron
        systemctl start/stop/restart/reload/status crond
        crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格。用户把需要执行的命令序列放到crontab文件中以获得执行。每个用户都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接创建或者直接修改。该crontab文件是通过crontab命令创建的。
        crontab -l 显示当前crontab
                     -r 删除当前crontab文件
                     -e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。当结束编辑离开时,编辑后的文件将自动安装。
        0 2 * * * sh /docker-services/mysql_bak/mysql_keyixiao_dumps.sh >> /docker-services/mysql_bak/mysql_keyixiao_dumps.log 2>&1

  1. #!/bin/bash
  2. docker_name=mysql8
  3. data_dir="/docker-services/mysql_bak/data/"
  4. dd=`date +%Y%m%d`
  5. user="xxx"
  6. upwd="xxx123"
  7. echo "start backmysql keyixiao... $dd"
  8. if [ ! -d $data_dir ];then
  9. mkdir -p $backup_dir;
  10. fi
  11. docker exec -i ${docker_name} mysqldump -u$user -p$upwd xxx > "$data_dir/xxx_$dd.sql"
  12. if [ $? -ne 0 ];then
  13. # 任务失败,发送邮件 echo -e "邮件正文" | mail -s '标题' 123456@gmail.com
  14. echo "backmysql xxx error"
  15. exit -1
  16. fi
  17. echo "backmysql xxx success path:$data_dir/xxx_$dd.sql"
  18. echo "backmysql xxx del !7days files..."
  19. find $data_dir -mtime +7 -name 'xxx_*.sql' -exec rm -rf {} \;
  20. echo "backmysql xxx del !7days files success"
  21. echo "end backmysql xxx"

    44:>和>>的区别 >覆盖 >>追加
    45:进程管理工具Supervisor
        安装:
            yum方式:yum install supervisor
            apt方式:apt-get install supervisor
            pip方式:sudo yum install python-setuptools-devel;pip install supervisor
            easy_install方式:sudo yum install python-setuptools-devel;easy_install supervisor
            安装成功后 /usr/bin下会有echo_supervisord_conf、supervisorctl、supervisord三个命令可通过ls |grep super查看
            安装完成后在 /etc 目录下存在supervisord.d(存放配置文件)和supervisord.conf(没有通过echo_supervisord_conf > /etc/supervisord.conf 生成)
        配置:
            vim supervisord.conf 在[incloude]下增加files = supervisord.d/*.ini
        命令:
            启动:supervisord -c /etc/supervisord.conf 或 supervisord
            停止:supervisorctl shutdown
            重新加载配置:supervisorctl reload/update如有密码supervisorctl -u user -p 123 reload/update
            其他:supervisorctl status/start/stop/restart/clear 进程名
        把要管理的进程放到 /etc/supervisord.d/*.ini
        进程管理:
            supervisorctl start/stop/restart/status all/xxx
            supervisorctl进入shell界面来管理
    46:systemctl
        加入系统开机启动服务:
            vim /usr/lib/systemd/system/supervisor.service 内容:
                [Unit]
                Description=supervisor
                After=network.target
                [Service]
                Type=forking
                ExecStart=/usr/bin/supervisord -c /usr/local/supervisord.conf
                ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
                ExecReload=/usr/bin/supervisorctl $OPTIONS reload
                KillMode=process
                Restart=on-failure
                RestartSec=42s
                [Install]
                WantedBy=multi-user.target
            vim /etc/vim /etc/supervisord.d/nginx.ini 内容:
                [program:nginx]
                command=/usr/sbin/nginx -g 'daemon off;'
                autostart=true ;自动启动
                autorestart=true ;自动重启
                user=root ;以哪个用户执行
                stdout_logfile=/tmp/supervisor_nginx.log ;日志路径
            vim /etc/vim /etc/supervisord.d/redis.ini 内容:
                [program:redis] command=redis-server
                autostart=true ;自动启动
                autorestart=true ; 自动重启
                user=root ;以哪个用户执行
                stdout_logfile=/tmp/supervisor_redis.log ;日志路径
        使用:
            systemctl start/stop/status/enable supervisor.service(enable加入开机自启动)
    47:免密登录
        ssh-keygen 默认几次回车
   ssh
-copy-id  user@ip1
   ssh
-copy-id  user@ip2
 
48:清除当前会话输入历史
   history -c 清楚所有历史 rm ~/.bash_history

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/87980?site
推荐阅读
相关标签
  

闽ICP备14008679号