[Centos系统] Linux CentOS常用命令

717 0
Honkers 2025-10-11 08:37:44 来自手机 | 显示全部楼层 |阅读模式

一、用户操作

1.添加用户

  1. #adduser test #添加一个名为test的用户
  2. #passwd test #修改密码
  3. Changing password for user test.
  4. New password: #在这里输入新密码(输入状态是不显示密码的)
  5. Retype new password: #在这里二次输入确认密码
  6. passwd: all authentication tokens updated successfully. #已修改成功的提示
复制代码

2.编辑用户

  1. usermod –l test123 test #将用户test登录名改为test123
  2. usermod –g users test123 #将用户test123加入到users组中
  3. usermod –d /users/test test123 #将用户test123目录改为/users/test
复制代码

3.删除用户

  1. userdel test #删除用户test
  2. userdel –r test #删除用户test,同时删除它的工作目录
复制代码

4.切换用户

  1. su test #用户root切换到用户test,无需输入密码直接切换
  2. su #用户test切换到用户root,需要输入root用户密码
复制代码

5.sudo切换用户权限
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。

经由 sudo 所执行的指令就好像是 root 亲自执行,切换到root用户权限:

  1. sudo su
复制代码

6.赋予普通用户root权限
方法一:
修改 /etc/sudoers 文件,找到下面这两行代码,在后面添加一行:

  1. ## Allow root to run any commands anywhere
  2. root ALL=(ALL) ALL
  3. test ALL=(ALL) ALL (添加这一行)
复制代码

保存退出

方法二:
修改用户,使其属于root组,命令如下:

  1. usermod -g root test
复制代码

修改/etc/passwd文件,到最末尾找到如名为test的行,把用户ID修改为0,保存退出

二、查看目录

1.ls只显示目录

  1. ls -d *
复制代码

2.如果不加-maxdepth 参数的话那么将会有无穷多目录被列出

  1. find . -type d -maxdepth 1
复制代码

从根目录下查找所有名称为file.txt的文件

  1. find / -name file.txt
复制代码

3.使用linux管道命令,grep查找 ‘/$’ 以/结尾的,也即是目录

  1. ls -F | grep '/$'
复制代码

4

  1. ls -l | grep '^d'
复制代码

ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在…代表存在着父目录)

ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等

ls -F 在每一个文件的末尾加上一个字符说明该文件的类型。"@“表示符号链接、”|“表示FIFOS、”/“表示目录、”="表示套接字

ls -s 在每个文件的后面打印出文件的大小

ls -t 按时间进行文件的排序
ls -A 列出除了".“和”…"以外的文件

ls -R 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现

ls -L 列出文件的链接名

ls -S 以文件的大小进行排序

三、目录切换

cd xxx 进入到某个目录
cd www 进入到www目录;
cd .. 返回上一级目录;
cd - 返回到上次的目录,类似windows返回 ;
cd / 回到根目录。

四、目录文件操作

mkdir xxx 创建目录
rm -rf xxx 删除目录,-r表示递归处理子目录和文件,-f表示无提示强制删除
mv xxx www 把xxx目录移动到www目录,或者把xxx目录重命名为www (mv既可以重命名又可以移动文件或文件夹)

命令功能
ls查看当前目录列表
ll查看当前目录列表详情
pwd查看当前路径
mkdir xxx创建目录
touch创建文件 touch xxx.txt
>创建文件
> xxx.txt (如果当前目录已有此文件,直接覆盖原文件,不会有任何提示)
ls > xxx.txt 将ls查询的列表结果写入文件
ps -ef | grep java >test.ini 将结果写入文件
echo $PATH > test.ini 将结果写入文件
>>创建文件
>> xxx.txt (如果当前目录已有此文件,追加在原文件末尾,不会覆盖原文件的内容)
ls >> xxx.txt 将ls查询的列表结果追加到文件
ps -ef | grep java >>test.ini 将结果追加到文件
echo $PATH >> test.ini 将结果追加到文件
cat其实用的也是 > 和 >>
cat > test.ini
cat >> test.ini
区别是敲完命令会进入test.ini的编辑模式,可以直接输入内容,最后按ctrl+z退出编辑模式自动保存
cat还可以结合eof,eof可以作为一个分界符,遇到下一个分界符时停止输入
cat结合exit,和eof同理
vi xxx.txt 或 vim xxx.txt创建文件
cp复制目录或文件
cp -r aaa/ bbb 复制文件夹(包括子目录)
rm删除目录或文件
rm -rf xxx 强制删除当前目录下所有内容
-r表示递归处理子目录和文件,-f表示无提示强制删除
mv移动或重命名目录文件
mv xxx www 把xxx目录移动到www目录
diff a b比较a文件与b文件的差异

五、查看系统版本是CentOS还是Ubuntu

lsb_release -a 如果有版本信息为Ubuntu,提示“command not found”为CentOS
cat /etc/redhat-release 有版本信息为CentOS,无版本信息为Ubuntu

六、端口控制

安装netstat工具

  1. yum install net-tools
复制代码

netstat -ntlp 列出所有端口
netstat -lnp|grep 80 查看80端口被哪个进程占用
netstat -anp|grep 80 查看80端口被哪个进程占用,下面的例子表示80端口被nginx占用


参数说明
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

查看端口是否开放

查看80端口是否开放,无信息表示未开放,有信息表示开放并显示占用端口的进程号

lsof -i:80 或 lsof -i tcp:80

开放指定端口

开启8888端口(前提是服务器有装iptables)
/sbin/iptables -I INPUT -p tcp --dport 8888 -j ACCEPT

查看进程详情

查看1777进程的详细信息
ps 1777

杀死进程

kill掉占用端口的1777进程
kill -9 1777

批量杀死占用端口的进程,释放端口

如果8001端口下面进程较多,可以用批量杀掉进程
sudo kill -9 $(lsof -i:8001 -t)

kill -9 $(sudo lsof -i tcp:进程号 -t)

持续监听端口信息

这个命令会每秒钟运行一次 netstat -anotlp | grep 20000

  1. watch -n 1 "netstat -anotlp | grep 20000"
复制代码

七、防火墙控制

1.iptables防火墙控制方式

service方式
service iptables status 查看防火墙状态,如果为空则未运行防火墙。
service iptables start 开启防火墙
service iptables stop 关闭防火墙

iptables方式

先进入init.d目录,命令如下:
cd /etc/init.d/
然后
/etc/init.d/iptables status 查看防火墙状态
/etc/init.d/iptables stop 暂时关闭防火墙
/etc/init.d/iptables restart 重启iptables

2.Firewall防火墙控制方式

firewall-cmd --state 查看防火墙运行状态
firewall-cmd --zone=public --list-ports 查询哪些端口已经开放

开启端口
firewall-cmd --zone=public --add-port=9999/tcp --permanent 设置开放9999端口,其中–permanent的作用是使设置永久生效,不加的话机器重启之后失效

关闭端口
firewall-cmd --zone=public --remove-port=9999/tcp --permanent 设置关闭9999端口

开启//关闭端口需要重新载入
firewall-cmd --reload 重新载入一下防火墙设置,使端口设置生效

查询端口生效状态
firewall-cmd --zone=public --query-port=9999/tcp 查看端口开放是否生效,yes为生效,no为未生效

systemctl 控制
systemctl status firewalld 查看防火墙打开状态
systemctl start firewalld 开启防火墙
systemctl stop firewalld 关闭防火墙
systemctl enable firewalld 开机自启动防火墙
systemctl disable firewalld 禁止开机自启动,永久关闭防火墙

Firewall设置参考链接
https://blog.csdn.net/ywd1992/article/details/80401630
api文档: http://man.linuxde.net/

八、进入编辑模式

  1. vim test.txt
复制代码
VIM编辑器,可以新建文件也可以修改文件

进入编辑器后先按i切换到INSERT(插入)状态,可以通过上下左右移动光标,或空格、退格及回车等进行编辑内容。
当文本编辑结束之后,退出编辑器分为4种情况:保存退出、正常退出、不保存退出及强制退出。

保存修改退出:
方法一:
首先按键盘左上角的"ESC"退出INSERT(插入)状态,然后输入:,再输入命令WQ或x,回车就保存退出了。
命令含义:W:write(写入) Q:quit(退出),x=WQ

如果在root权限下保存提示错误:E45: 'readonly' option is set (add ! to override),可以输入:wq! 强行保存退出。

方法二:
最快捷的方法:先按ESC,再按shift+zz,或者切换到大写模式按ZZ(即是按2下大写的Z),保存退出。

无修改退出: 先按ESC,再输入:q
不保存退出: 先按ESC,再输入:q!
强制退出: 先按ESC,再输入:!

清除所有内容
用 vim 打开目标文件,输入:%d回车就可以清空。
% 是匹配所有行
d 是删除的意思

editor编辑器

进入编辑模式

  1. editor test.txt
复制代码

保存:ctrl+s
退出:ctrl+x

九、网卡相关

查看内网ip

方法一:

  1. ifconfig -a
复制代码

红色框内是ip地址

方法二:

  1. ip addr
复制代码

红色框内是ip地址


如果查不到IP,编辑/etc/sysconfig/network-scripts/ifcfg-eth0或者ifcfg-ens33文件,两个只会存在一个,找到对应的就好

  1. vi /etc/sysconfig/network-scripts/ifcfg-eth0
复制代码

  1. vi /etc/sysconfig/network-scripts/ifcfg-ens33
复制代码

配置文件中的noBoot=“no” (默认是不启动网卡),修改为noBoot=“yes”
然后按ESC,输入:wq保存并退出,执行下面命令重启网卡

  1. service network restart
复制代码

再重新输入查看ip命令就可以了

重新配置IP

ifconfig 网卡名 IP

  1. ifconfig enp0s3 10.10.90.243
复制代码

十、查看配置

配置项命令
CPU信息(详细)cat /proc/cpuinfo
CPU信息(简单)grep “model name” /proc/cpuinfo | cut -f2 -d:
CPU信息(极简)cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
CPU位数getconf LONG_BIT
物理CPU的个数cat /proc/cpuinfo |grep “physical id”|sort |uniq|wc -l
逻辑CPU的个数cat /proc/cpuinfo |grep “processor”|wc -l
CPU核数cat /proc/cpuinfo |grep “cores”|uniq
CPU主频cat /proc/cpuinfo |grep MHz|uniq
内存信息(详细)cat /proc/meminfo
内存信息(简单)free -m
总内存grep MemTotal /proc/meminfo
磁盘信息df -h
磁盘总量fdisk -l
磁盘分区信息fdisk -l
磁盘全部占用空间du -sh
操作系统内核uname -a
监控系统cpu、内存的使用状况top (按q退出监控状态)

十一、压缩解压

tar命令

参数说明:z:gzip文件,x:解压文件, v:显示过程,f:指定文件

解包解压
1.解包语法:tar xvf xxx.tar

  1. tar xvf xxx.tar
复制代码

2.解压语法: tar -zxvf xxx.tar.gz

  1. tar -zxvf xxx.tar.gz
复制代码

打包压缩
1.打包语法:tar -cvf xxx.tar /xxx/

  1. tar -cvf xxx.tar /xxx/
复制代码

2.打包压缩语法:tar -czvf xxx.tar.gz /xxx/

  1. tar -czvf xxx.tar.gz /xxx/
复制代码

3.打包时修改压缩包的文件夹名称
示例:打包改名成yyy包

  1. tar -czvf yyy.tar.gz --transform='s|^xxx|yyy|' xxx
复制代码
gzip工具

安装gzip

  1. yum install -y gzip
复制代码

参数

参数说明
-c–stdout在标准输出上写入,保持原始文件不变
-d–decompress解压缩
-f–force强制覆盖输出文件并压缩链接
-h–help提供此帮助
-l–list列出压缩文件的内容
-L-许可证显示软件许可证
-n–no-name不保存或恢复原始名称和时间戳
-N–name保存或恢复原始名称和时间戳
-q–quiet禁止所有警告
-r–recursive在目录上递归操作
-S–suffix = SUF在压缩文件上使用后缀SUF
-t–test测试压缩文件的完整性
-v–verbose详细模式
-V–version显示版本号
-1–fast快速压缩
-9-最佳压缩效果更好
-rsyncable制作对rsync友好的存档

压缩、解压

  1. gzip xxx.txt
  2. gzip -d xxx.txt
复制代码

保留源文件压缩、解压

  1. gzip -c xxx.txt > xxx.txt.gz
  2. gunzip -c xxx.txt.gz > xxx.txt
复制代码
zip、unzip工具

参数

参数说明
-c添加注释到压缩文件。
-jjunk paths,丢弃路径信息,只压缩文件名。
-l将压缩文件中的所有文件列表输出到控制台。
-m移动文件到压缩文件中,压缩后原始文件将被删除。
-n不要压缩具有特定扩展名的文件(后面跟随扩展名列表)。
-o只添加指定的文件到压缩文件(覆盖压缩文件中已有的文件)。
-r递归地添加目录和子目录到压缩文件。
-u更新现有的压缩文件,添加新文件或更新已存在的文件。
-v详细模式,显示命令执行的详细信息。
-x排除路径列表中的文件或目录(后面跟随路径列表)。
-y假设所有答案为“是”,不提示任何问题。
-z创建压缩文件后直接退出(用于脚本中)。

打包压缩文件

  1. zip -q -r html.zip /home/html
复制代码

从压缩包中删除指定文件

  1. zip -dv html.zip index.html
复制代码

更新压缩包中指定文件

  1. zip -f html.zip index.html
复制代码

解压压缩包

  1. unzip html.zip
复制代码

菜鸟教程 Linux zip 命令

十二、网卡管理

切换网络后更新IP地址
  1. dhclient -r #释放IP
  2. dhclient #获取IP
复制代码
配置网卡固定IP地址

编辑配置文件

  1. vim /etc/netplan/00-installer-config.yaml
复制代码

00-installer-config.yaml内容

  1. # Let NetworkManager manage all devices on this system
  2. network:
  3. ethernets:
  4. enp0s3:
  5. dhcp4: yes
  6. version: 2
  7. renderer: networkd
复制代码

改为

  1. # Let NetworkManager manage all devices on this system
  2. network:
  3. ethernets:
  4. enp0s3:
  5. dhcp4: yes
  6. addresses: [10.20.60.235/24]
  7. version: 2
  8. renderer: networkd
复制代码

更新发布后就完成了

  1. netplan apply
复制代码

【扩展方案】
虚拟机里中配置访问宿主机上的DNS服务器地址
在主机网卡中查看网络连接详细信息:控制面板\网络和 Internet\网络连接>网卡 > 右键>状态>详细信息

00-installer-config.yaml 示例:

  1. # Let NetworkManager manage all devices on this system
  2. network:
  3. ethernets:
  4. enp0s3:
  5. dhcp4: no
  6. addresses: [10.20.60.235/24]
  7. gateway4: 10.20.60.254
  8. nameservers:
  9. addresses: [10.20.0.253,114.114.114.114]
  10. version: 2
  11. renderer: networkd
复制代码

十三、chmod命令权限

命令权限
chmod a+x 文件名a 所有用户(all)
u 文件所有者,即创建文件的人(owner)
g 和文件所有者相同组的用户(group)
o 非文件所有者和相同group的用户(other)

+ 给指定的用户授权指定的权限
- 撤销指定用户的某个权限
= 将指定用户的指定权限重新设置

r 可读权限
w 可写权限
x 可执行权限
chmod 777 文件名777表示用八进制数来指定权限,使所有用户(ugo)都拥有读、写、执行(rwx)权限

扩展资料:Linux 中的 -rwxr-xr-x 权限代表什么意思?

十四、nohup命令

nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
语法格式:nohup Command [ Arg … ] [ & ]

参数说明
Command要执行的命令
Arg一些参数,可以指定输出文件
&让命令在后台执行,终端退出后命令仍旧执行

启动脚本示例:

  1. nohup /root/runoob.sh &
复制代码
  1. nohup node index.js &
复制代码

在终端如果看到以下输出说明运行成功:appending output to nohup.out

如果要停止运行,你需要使用以下命令查找到 nohup 运行脚本到 PID

  1. ps -aux | grep "runoob.sh"
复制代码

然后使用 kill 命令来删除:

  1. kill -9 进程号PID
复制代码

十五、服务查询

1.查看所有服务

  1. systemctl list-unit-files --type=service
复制代码

2.模糊查看指定名称的服务

  1. systemctl list-unit-files | grep "hr_"
复制代码

十六、系统配置

时区管理

1.查看系统时区

  1. timedatectl
复制代码

2.修改时区,比如上海

  1. sudo timedatectl set-timezone Asia/Shanghai
复制代码

其他

命令功能
clear清屏,windows下cmd的是cls
history -c清除历史命令记录
echo $PATH查看系统环境变量
ln -s [源文件] [目标文件]创建软链接,[目标文件]相当于快捷方式
xdg-open .在终端中打开文件管理器(Ubuntu)
nautilus .在终端中打开文件管理器 (Ubuntu)
ps -ef | grep node查看进程并筛选,这个命令组合会列出当前系统中所有与 node 相关的进程信息。
ps 是 “process status” 的缩写,用于显示当前系统中的活动进程。
-e 选项表示显示所有进程。
-f 选项表示全格式显示,这将提供关于每个进程的详细信息
| 管道符,用于将一个命令的输出作为另一个命令的输入。
grep 是用于文本搜索的命令,它会搜索并显示包含指定模式的行。
node 指定模式的字符
ps -ef >> a 将进程记录保存到a文件
dhclient动态获取或释放IP地址
dhclient -r 释放IP
dhclient 获取IP
rzXshell可用,MobaXterm不可用
使用ZMODEM协议,将本地文件批量上传到远程Linux/Unix服务器(不能上传文件夹)。
rz -y 存在同名文件则替换
rz -E 已存在同名文件则重命名新上传的文件,以点和数字作为后缀
tail查看日志文件动态
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

常见问题处理

【Ubuntu系统】ubuntu18.04磁盘空间满了无法进入系统(3种方式,已解决)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行