linux centos生产环境常用命令 持续更新中~

2024-08-05更新

1.查看Linux系统版本

cat /etc/redhat-release (只有centos和redhat系统可以用)

 [root@cos7-zx-init dy]# cat /etc/redhat-release 
 CentOS Linux release 7.9.2009 (Core)
 [root@cos7-zx-init dy]# 

2.查看内核版本

uname -r

 [root@cos7-zx-init dy]# uname -r
 3.10.0-1160.el7.x86_64
 [root@cos7-zx-init dy]# uname -srm
 Linux 3.10.0-1160.el7.x86_64 x86_64
 ​
 内核参数解析例子:
 Linux 3.10.0-957.12.2.el7.x86_64 x86_64
 3 - 内核版本.
 10 - 主修订版本.
 0-957 - 次要修订版本.
 12 - 补丁版本.

3.一次性查看Linux系统和内核版本

 [root@cos7-zx-init proc]# hostnamectl
    Static hostname: cos7-zx-init
          Icon name: computer-vm
            Chassis: vm
         Machine ID: 3c6ef4dc99cc4b08ac56233d09d60210
            Boot ID: 22c62dabf7d54796a4d7ae41e15a7af9
     Virtualization: vmware
   Operating System: CentOS Linux 7 (Core)
        CPE OS Name: cpe:/o:centos:centos:7
             Kernel: Linux 3.10.0-1160.el7.x86_64
       Architecture: x86-64
 [root@cos7-zx-init proc]# 

4.查看自己的机器是32位还是64位

 getconf LONG_BIT

5.终端删除整行

 ctrl+u 删除命令行开始至光标处
 ctrl+k 删除光标处至命令行结尾
 ctrl+a 光标移动到最前面
 ctrl+e 光标移动到最后面

6.vim文本编辑相关命令

 dd  删除整行
 d$或D    删除至行尾
 d^  删除至行首
 dG  删除到文档结尾处
 d1G 删除至文档首部
 gg  游标移动到第一行
 G   游标移动到最后一行
 nG  游标移动到第n行(如果默认没有显示行号,请先进入命令行模式,输入:set nu以显示行号)
 yy  复制游标所在的整行
 3yy 向下复制3行,以此类推
 yG  复制至文本末
 y1G 复制至文本开头
 p   粘贴至光标后
 P   粘贴至光标前
 ~   反转游标所在字母大小写
 u(n)    撤销一次或n次操作
 U(大写)   撤销当前行的所有修改
 80gg 跳转到第80行
 :80  跳转到第80行
 shift + zz = :wq 保存退出
 shift + zq = :q! 不保存退出
 :%s/要替换的内容/替换后的内容/g    全局替换

7.内存和硬盘

 lsblk #查看硬盘和分区分布
 ​
 df -h #查看磁盘使用情况
 ​
 free -m #查看内存信息
 ​
 du -sh  #查看当前目录总大小
 du -sh * #列出当前文件夹下各内容的大小
 du -s * | sort -nr #由大到小排序
 du -s * | sort -nr | head #选出排在前面的10个
 du -s * | sort -nr | tail #选出排在后面的10个
 ​
 lscpu #查看cpu的相关信息
 ​
 fdisk -l |grep Disk #查看磁盘分区情况
 ​
 lspci|grep Ethernet #查看网卡硬件信息
 ​
 dmidecode -t bios #查看BIOS相关信息
 ​
 dmidecode |grep -A16 "System Information$" #查看主板型号
 ​
 cat /sys/block/sda/queue/rotational  #查看数值,1表示旋转就是机械硬盘,0非旋转就是固态硬盘。
 ​
 lsblk   #列出所有存储设备

8.修改主机名

 1.hostnamectl set-hostname 主机名    重新打开命令行即可
 2.vim /etc/hostname    重启后生效

9.修改ip地址

 vim /etc/sysconfig/network-scripts/ifcfg-eth33
 ​
 TYPE=Ethernet
 DEVICE=eth32
 BOOTPROTO=static
 ONBOOT=yes
 IPADDR=192.168.28.222
 NETMASK=255.255.255.0
 GATEWAY=192.168.28.1
 DNS1=114.114.114.114
 DNS2=8.8.8.8
 ​
 systemctl restart network
 ​

10.关闭SELinux

 (1)临时关闭(重启机器后失效)
 setenforce 0
 (2)永久关闭(需要重启机器)
 sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config
 (3)查看状态
 getenforce

11.rocky9重启网卡

 nmcli connection reload
 nmcli connection down ens160
 nmcli connection up ens160

12.目录及用户权限

 查看用户密码到期时间
 chage -l 用户名
 ​
 创建没有登录权限的用户
 useradd -d /home/dy -s /sbin/nologin dongyue
 ​
 chmod augo +_rwx 文件名
 chmod -R augo +_rwx 目录名
 ​
 完全删除用户
 userdel -r <用户名称>
     
 创建用户组
 groupadd <组名>
 ​
 删除组,用户组里面有用户,必须先把用户移动或删除了,才能删除组
 groupdel 组名
 ​
 只修改文件所属用户 (不使用 -R)
 chown <用户名称> <文件名称>
     
 只修改文件所属组 (不使用 -R)
 chown :<用户组名称> <文件名称>
     
 同时修改所属用户和组
 chown 用户:用户组 -R 你的目录
 ​
 修改用户的主组
 usermod -g [组名称] [用户名]
 ​
 将现有用户添加到新的组,保留原有组
 usermod -a -G <组名称> <用户名称>
 ​
 将用户从某个用户组中删除
 gpasswd -d <用户名称> <用户组名称>
 ​
 查看用户所属组
 groups <用户名称>
     
 查看组中的成员
 getent group <组名>
     
 查看有哪些组
 cat /etc/group
     
 查看有哪些用户
 cat /etc/passwd
     
 一行命令修改用户密码
 echo "用户名:密码" | chpasswd   或者    echo 密码 | passwd --stdin 用户名

13.服务相关

 systemctl is-enabled firewalld.service   查看服务是不是被开启
 systemctl list-units --type=service      查看本机开启的所有服务
 ​
 自己写服务
 1、手动创建nginx.service服务文件。并将其放入 /lib/systemd/system 文件夹中。
 vim /usr/lib/systemd/system/nginx.service
 [Unit]
 Description=nginx
 After=network.target
 ​
 [Service]
 Type=forking
 PIDFile=/var/run/nginx.pid #nginx.conf设置pid位置
 ExecStartPre=/usr/local/nginx/sbin/nginx -t
 ExecStart=/usr/local/nginx/sbin/nginx
 ExecReload=/usr/local/nginx/sbin/nginx -s reload
 ExecStop=/usr/local/nginx/sbin/nginx -s quit
 PrivateTmp=true
 ​
 [Install]
 WantedBy=multi-user.target
 ​
 #########################
 PS: 注意上面的ExecStart/ExecReload/ExecStop 必须 以自己的为主
 ##########################
 所对应的key说明
 Description:描述服务
 After:描述服务类别
 [Service]服务运行参数的设置
 Type=forking是后台运行的形式
 ExecStart为服务的具体运行命令
 ExecReload为重启命令
 ExecStop为停止命令
 PrivateTmp=True表示给服务分配独立的临时空间
 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
 [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
 ​
 2.设置开机启动enable
 systemctl start nginx.service (启动nginx服务)
 systemctl stop nginx.service (停止nginx服务)
 systemctl enable nginx.service (设置开机自启动)
 systemctl disable nginx.service (停止开机自启动)
 systemctl status nginx.service (查看服务当前状态)
 systemctl restart nginx.service (重新启动服务)
 systemctl list-units --type=service (查看所有已启动的服务)

14.SSH免密登录

 1.本地客户端生成公私钥:(一路回车默认即可)
 ssh-keygen
 下面这行不用点回车直接生成
 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa -q
 上面这个命令会在用户目录.ssh文件夹下创建公私钥
 cd ~/.ssh
 id_rsa (私钥)
 id_rsa.pub (公钥)
 ​
 2.上传公钥到服务器
 ssh-copy-id -i ~/.ssh/id_rsa.pub root@远端服务器IP
 会在远端服务器上的ssh目录下产生authorized_keys文件
 ​
 3.测试免密登录
 ssh root@远端服务器IP

15.通过pid号查服务目录

 ps -aux |grep -v grep|grep pid号

16.zip解压后乱码问题

 unzip -O gb18030 文件名.zip

17.vim中粘贴出现递归空格

 在使用vim时,有时候把数据粘贴进去会出现自动空格,导致格式不行,一个一个弄会很费时间,想保持原有的格式,可以这样做:
 shift+:进入命令模式
 输入:set paste
 再粘贴就可以保持和复制前的格式一样

18.rsync+crontab实现定时增量备份及删除

 实现免密传输:
 A机创建ssh免密登录,传输公钥给B机,C机用A机的私钥和known_hosts文件就可以免密连接B机。
 ​
 增量备份:
 #!/bin/bash
 source /etc/profile
 rsync -avuz -P -e 'ssh -p 22 -i /root/.ssh/id_rsa' --bwlimit=5000 /home/zxicetftp/ root@172.18.1.174:/home/zxicetftp/
 ​
 删除三天前的备份:
 #! /bin/bash
 source /etc/profile
 TMPDATE=`date +%Y_%m_%d_%H_%M_%S`
 cp -r /home/bfftp /opt/bfftpfullback/bfftp_$TMPDATE
 find /opt/bfftpfullback/ -type d -mtime +3 -exec rm -rf {} \;

19.java后台启动

 nohup /opt/jdk/bin/java -jar /home/jenkins.war >/home/jenkinsout.txt 2>&1 &

20.查看目录下的文件夹

 包含软连接过来的目录
 ls -d */
 不包含软连接过来的目录
 ls -l | grep "^d"

21.防火墙常用命令

 查看开放的端口有哪些
 firewall-cmd --list-ports
 ​
 开端口
 firewall-cmd --zone=public --add-port=端口号/tcp --permanent
 firewall-cmd --reload
 ​
 关端口
 firewall-cmd --zone=public --remove-port=端口号/tcp --permanent
 firewall-cmd --reload

22.windows调整敏感度

 在设置中搜uac

23.grep查找文件内容

 复制到浏览器打开
 https://blog.csdn.net/limanjihe/article/details/115263801

24.mount --bind

 n形式的软连接ftp不认,mount文件系统级别的软连接ftp认。
 目标文件夹可读写且所在分区不会增加占用,源文件夹所在分区会变化大小,其实就是一个快捷方式和ln一样。
 mount --bind 源文件夹地址 目标文件夹地址

25.parted创建分区

 当现有硬盘大小不够用时,可以添加新的硬盘进来,需要用parted命令来创建分区。
 步骤如下:
 1.进入到/dev下看新加入的硬盘是sdb还是sdc;
 2.输入parted /dev/sdb 命令回车;
 3.输入mktable gpt回车,将标记此驱动器以使用 GPT 方案;
 4.输入mkpart回车来创建分区,分区名称可以不写(类似于U盘的卷标),文件系统类型选择ext4,起始点0%,结束点100%;
 5.输入quit回车;
 6.输入mkfs.ext4 /dev/sdb回车来格式化分区;
 7.输入mount /dev/sdb /opt/aaa来挂载分区;
 8.这样就挂载完了,可以通过mount或者df -h查看;
 ​
 fdisk也可以进行磁盘分区

26.linux的vim中行末尾多了很多 ^M

进入vim的命令行模式输入   :%s/\r//gc
同理:如果出现^V则用:%s/^V//gc替换

27.网段划分

 域名
 顶级 .com    一级 sdea.com 或 sdea.com.cn      二级  www.sdea.com
 ​
 地址分类
 A:  1.0.0.0 - 126.255.255.255
 B:  128.0.0.0 - 191.255.255.255
 C:  192.0.0.0 - 223.255.255.255
 D:  224.0.0.0 - 239.255.255.255
 E:  240.0.0.0 - 255.255.255.255
 ​
 私有地址
 10.0.0.0 - 10.255.255.255
 172.16.0.0 - 172.31.255.255
 192.168.0.0 - 192.168.255.255
 ​

28.sudo命令

 1./etc/sudoers
 系统默认创建了一个名为 sudo 的组。只要把用户加入这个组,用户就具有了 sudo 的权限。
 至于如何把用户加入 sudo 组,您可以直接编辑 /etc/group 文件,当然您得使用一个有 sudo 权限的用户来干这件事:
 先创建用户并设置密码后,然后在sudo组中加入该用户,多个用户用逗号隔开。
 添加内容如下:
 我们把用户 testuser 添加到了 sudo 组中,所以当用户 testuser 登录后就可以通过 sudo 命令以 root 权限执行命令了!
 但是,用testuser执行root权限的命令时会报错:
 解决办法:
 1)、切换到root用户下
 普通用户切换到root用户下:sudo -i
 root用户切换到普通用户下:su testuser
 2)、添加sudo文件的写权限,命令是:
 chmod u+w /etc/sudoers
 3)、编辑sudoers文件
 vi /etc/sudoers
 找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
 ps:这里说下你可以sudoers添加下面四行中任意一条
 youuser ALL=(ALL) ALL
 %youuser ALL=(ALL) ALL
 youuser ALL=(ALL) NOPASSWD: ALL
 %youuser ALL=(ALL) NOPASSWD: ALL
 第一行:允许用户youuser执行sudo命令(需要输入密码).
 第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
 第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
 第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.
 4)、撤销sudoers文件写权限,命令:
 chmod u-w /etc/sudoers
 这样普通用户就可以使用sudo了。
 ​
 2./etc/sudoers.d
 系统文档推荐的做法是,修改/etc/sudoers.d 目录下的文件通过此方法修改sudoers ,需要在/etc/sudoers文件的最后行,加上
 #includedir /etc/sudoers.d
 注意;这里的指令#includedir是一个整体, 前面的#号不能丢,并非注释,也不能在#号后有空格。
 任何在/etc/sudoers.d/目录下,不以~号结尾的文件和不包含.号的文件,都会被解析成/etc/sudoers的内容。最好用用户名当文件名。
 比如我新创建的用户 hyc 想要实现root权限,可在/etc/sudoers.d /下新建一个文件userhyc 文件,输入以下语句
 hyc ALL=(ALL:ALL) NOPASSWD:ALL 。此时新建的用户就能获取root权限,ALL可以改成具体的命令,命令要用绝对路径。
 文件中也可以这样写,命令多的话可以用别名。
 Cmnd_Alias SWADMIN_START_SERVICES = /etc/init.d/nginx,/etc/init.d/tomcat*,/opt/scripts/updateBackendCode.sh,/opt/lucky/nginx/sbin/nginx,/usr/bin/kill,opt/scripts/*
 swadmin ALL=(ALL)NOPASSWD:SWADMIN_START_SERVICES
 ​

29.redis批量清理缓存

 ./redis-cli -h IP -p PORT -a PASSWORD -n NUM keys 'key*' | xargs  ./redis-cli -h IP  -p PORT -a PASSWORD -n NUM del
 ​
 IP:redis服务器的IP地址
 PORT:redis服务的端口
 PASSWORD :redis服务的密码
 NUM:redis库的下标
 注意:记得以上批量删除,需要退出redis的命令行模式下操作。必须要指定redis的路径。
 ​
 /usr/bin/redis-cli -n 1 -p 6379 -a 123456 keys 'UPLOAD_*'  |  xargs /usr/bin/redis-cli -n 1 -p 6585 -a 123456 del
 ​

30.top命令 iftop命令 iotop命令

 top命令用来查看进程占用的资源情况,浏览器打开下面链接查看
 https://blog.csdn.net/qq_31762741/article/details/119799402
 ​
 iftop命令用来查看网卡的流量情况,浏览器打开下面链接查看
 https://www.vpser.net/manage/iftop.html
 ​
 iotop命令用来查看磁盘的io情况,浏览器打开下面链接查看
 https://blog.csdn.net/ver_mouth__/article/details/125244352

31.查找变量所在位置

 find  .  -name "*.*" | xargs grep "test"
 上述信息请用查找的变量信息来替换test

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值