在日常的系统管理和网络配置中,Linux 提供了一系列强大的命令行工具,帮助管理员高效地完成任务。本文将为你总结一些常用的命令和技巧,从用户管理到网络配置,助你轻松掌握 Linux 的核心操作。
1. 用户和组管理
-
Linux
-
用户管理
- useradd:用于创建新用户。例如,
useradd -m username,其中-m表示创建用户主目录。 - passwd:为用户设置密码,如
passwd username,然后按提示输入新密码。 - userdel:删除用户,
userdel -r username中的-r选项会同时删除用户主目录。
- useradd:用于创建新用户。例如,
-
组管理
- groupadd:创建新组,例如
groupadd groupname。 - usermod:修改用户所属组,
usermod -a -G groupname username将用户添加到组,-a是附加组的意思。 - groupdel:删除组,但组内不能有用户。
- groupadd:创建新组,例如
-
查询命令
- id:查询用户的 UID、GID 和所属组,如
id username。 - groups:查看用户所属的组,例如
groups username。 - cat /etc/passwd:显示系统所有用户信息。
- cat /etc/group:显示系统所有组信息。
- id:查询用户的 UID、GID 和所属组,如
-
-
Windows
-
用户管理(命令提示符)
- net user:用于添加、删除和修改用户。如
net user newuser password /add添加用户,net user newuser /delete删除用户。 - wmic useraccount:可以查询用户账户信息,例如
wmic useraccount get name获取用户名称列表。
- net user:用于添加、删除和修改用户。如
-
组管理(命令提示符)
- net localgroup:添加、删除和查询本地组。如
net localgroup newgroup /add添加组,net localgroup newgroup /delete删除组。 - 将用户添加到组:
net localgroup groupname username /add。 - 查询用户所属组:
net user username可查看用户所属组信息。
- net localgroup:添加、删除和查询本地组。如
-
2. 远程连接协议与端口
-
Windows
- 远程协议:主要是远程桌面协议(RDP)。
- 默认远程端口:3389,用于通过远程桌面连接访问 Windows 系统。
-
Linux
- 远程协议:常用的是 SSH(Secure Shell)。
- 默认远程端口:22,用于安全地远程登录和管理 Linux 系统。
3. 测试端口连通性
-
Linux
- telnet:如
telnet IP地址 端口号,如果能连接,会出现相关信息;若不能连接,会提示连接失败。不过有些系统可能没有安装 telnet 客户端,需要先安装。 - nc(netcat) :
nc -vz IP地址 端口号,-v显示详细信息,-z表示扫描端口是否开放。
- telnet:如
-
Windows
- telnet:用法和 Linux 类似,在命令提示符中输入
telnet IP地址 端口号,可能需要先开启 telnet 客户端功能。 - PowerShell 中的 Test - NetConnection:例如
Test - NetConnection -ComputerName IP地址 -Port 端口号,可查看端口连接状态。
- telnet:用法和 Linux 类似,在命令提示符中输入
4. 更改 Linux 远程 SSH 端口
- 编辑
/etc/ssh/sshd_config文件,找到#Port 22这一行,将 22 修改为想要的端口号(例如 2222)。 - 重启 SSH 服务,在 CentOS 或 RHEL 中使用
systemctl restart sshd,在 Ubuntu 或 Debian 中使用service ssh restart。 - 如果有防火墙,需要开放新的端口。如在 CentOS 或 RHEL 中使用
firewall -cmd --add -port = 2222/tcp --permanent添加端口并firewall -cmd --reload重新加载防火墙规则。
5. 定时任务与 Crontab
-
查看系统定时任务(Linux)
- crontab -l:查看当前用户的定时任务。
- cat /etc/crontab:查看系统级别的定时任务(需要 root 权限)。
-
crontab 中 * 号含义:在
crontab任务表达式中,格式为* * * * * 命令,从左到右依次代表分钟(0 - 59)、小时(0 - 23)、日期(1 - 31)、月份(1 - 12)、星期(0 - 6,0 代表星期日)。例如0 0 * * * 命令表示每天 0 点 0 分执行命令。
6. 内核版本、路由、DNS 查看
-
查看内核版本
- uname -r:显示内核版本号,如
5.10.0 - 11 -amd64。 - uname -a:显示更详细的系统信息,包括内核版本、主机名等。
- uname -r:显示内核版本号,如
-
查看系统路由
- route -n:以数字形式显示路由表,包括目标网络、网关等信息。
- ip route show:也可显示路由信息,格式可能不同,更灵活。
-
查看 DNS 地址
- 查看
/etc/resolv.conf文件,其中nameserver后的 IP 地址就是 DNS 服务器地址,如nameserver 8.8.8.8。
- 查看
7. 修改 IP 地址并使新 IP 生效
修改 CentOS 的 IP 地址可以通过编辑网卡配置文件(如 /etc/sysconfig/network-scripts/ifcfg-eth0),设置相关参数后,重启网络服务使更改生效。
8. CPU 和内存使用情况
-
修改 IP 并生效(CentOS)
- 临时修改:使用
ifconfig eth0 IP地址 netmask 子网掩码,如ifconfig eth0 192.168.1.100 netmask 255.255.255.0,但重启后失效。 - 永久修改:编辑
/etc/sysconfig/network -scripts/ifcfg -eth0,修改BOOTPROTO(静态设为none或static)、IPADDR(新 IP)、NETMASK等,然后用systemctl restart network使配置生效。
- 临时修改:使用
-
eth0 网卡配置文件名称及路径(CentOS)
- 名称:
ifcfg -eth0。 - 路径:
/etc/sysconfig/network -scripts/。
- 名称:
-
配置多个 IP(CentOS)
- 网卡别名方式:创建新配置文件如
ifcfg -eth0:1,修改DEVICE为eth0:1、IPADDR为新 IP,再用systemctl restart network生效。 - IP 别名方式(较新系统) :使用
ip addr add 新IP/子网掩码 dev 网卡名,如ip addr add 192.168.1.101/24 dev eth0,但重启后可能消失,可添加到开机脚本。
- 网卡别名方式:创建新配置文件如
9. 设置 DNS
-
Linux:主要是
/etc/resolv.conf,在其中添加或修改nameserver行来指定 DNS 服务器 IP,如nameserver 8.8.8.8。但部分系统网络管理工具可能会覆盖此文件。 -
Windows
- 网络连接属性方式:在控制面板 - 网络和共享中心 - 更改适配器设置,右键网络连接 - 属性,双击 “Internet 协议版本 4(TCP/IPv4)”,在下方填写 DNS 服务器 IP。
- 命令提示符方式(临时修改) :使用
netsh命令,如netsh interface ip set dns "本地连接" static 8.8.8.8(假设网络连接是 “本地连接”)。
10. 查看网卡流量
-
Linux
- ifconfig:显示网卡信息,包括接收和发送字节数等流量信息,如
RX bytes和TX bytes。 - ip -s link show 网卡名:更详细地显示网卡流量统计,如字节数、数据包数等。
- nload 网卡名(需安装):实时动态显示网卡入站和出站流量。
- ifconfig:显示网卡信息,包括接收和发送字节数等流量信息,如
-
Windows
- 任务管理器:在 “性能” 选项卡中查看网卡实时发送和接收速度。
- Resource Monitor(资源监视器) :在开始菜单搜索打开,在 “网络” 选项卡查看网卡总流量等信息。
11. 使用 sed 替换字符串
- 基本语法:
sed's/旧字符串/新字符串/g' 文件名,例如sed's/abc/def/g test.txt会将test.txt中所有abc替换为def。 - 若只想替换每行第一次出现的字符串,可省略
g(全局替换),如sed's/abc/def/ test.txt。 - 支持正则表达式替换,如
sed's/[0 - 9]+/number/g' test.txt会将文件中所有数字序列替换为number。
12. 打印环境变量
-
Linux 和 Unix - like 系统
- printenv:在命令提示符下输入可打印所有环境变量及其值,如
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin。 - env:功能类似 printenv,还可在指定环境下运行程序,如
env -i 命令(-i清除所有环境变量后运行)。
- printenv:在命令提示符下输入可打印所有环境变量及其值,如
-
Windows:在命令提示符中输入
set命令,会列出所有环境变量,如PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem。
13. 删除前询问确认
- Linux:使用
rm -i 目录名,例如rm -i myfolder,删除时会对每个文件或子目录询问是否删除,输入y确认,n取消。 - Windows:在图形界面操作时,一般会有确认提示。在命令提示符下,可以使用
del /P 目录名(部分版本支持)来询问是否删除。
14. 查看开启的端口
-
Linux
- netstat -tuln:显示所有监听(
LISTEN)的 TCP 和 UDP 端口,-t表示 TCP,-u表示 UDP,-l表示监听,-n表示以数字形式显示。 - ss -tuln:和
netstat功能类似,是较新的工具,输出可能更简洁。
- netstat -tuln:显示所有监听(
-
Windows
- netstat -a -n:显示所有连接和监听端口,
-a表示所有,-n表示以数字形式显示。 - PowerShell 中的 Get -NetTCPConnection 和 Get -NetUDPEndpoint:可以获取 TCP 和 UDP 端口相关信息。
- netstat -a -n:显示所有连接和监听端口,
15. iptables 规则保存与恢复
-
保存 iptables 规则(Linux)
- 在 CentOS 或 RHEL 中,使用
service iptables save将规则保存到/etc/sysconfig/iptables文件。 - 在 Ubuntu 或 Debian 中,使用
iptables -save > 文件名,如iptables -save > /home/user/iptables_rules。
- 在 CentOS 或 RHEL 中,使用
-
恢复 iptables 规则
- 在 CentOS 或 RHEL 中,使用
service iptables restart来恢复之前保存的规则。 - 在 Ubuntu 或 Debian 中,使用
iptables -restore < 文件名,如iptables -restore < /home/user/iptables_rules。
- 在 CentOS 或 RHEL 中,使用
16. 查看目录大小
-
Linux
- du -sh 目录名:
-s表示汇总,-h表示以人类可读格式显示,如du -sh /home会显示/home目录的总大小。 - du -h --max -depth = 1 目录名:显示目录下一级子目录和文件的大小,
--max -depth = 1限制显示深度为 1。
- du -sh 目录名:
-
Windows
- 在命令提示符中:使用
dir /s可以查看目录及其子目录的文件大小等信息,但显示格式不太直观。可以使用一些第三方工具如 TreeSize 等更方便地查看目录大小。
- 在命令提示符中:使用
以上就是一些常用的系统管理和网络配置的命令汇总,希望对你的日常工作有所帮助。如果你有更多问题或需要进一步的帮助,请随时留言讨论! 🚀