Linux与Windows系统管理常用命令

126 阅读8分钟

在日常的系统管理和网络配置中,Linux 提供了一系列强大的命令行工具,帮助管理员高效地完成任务。本文将为你总结一些常用的命令和技巧,从用户管理到网络配置,助你轻松掌握 Linux 的核心操作。

1. 用户和组管理

  • Linux

    • 用户管理

      • useradd:用于创建新用户。例如,useradd -m username,其中-m表示创建用户主目录。
      • passwd:为用户设置密码,如passwd username,然后按提示输入新密码。
      • userdel:删除用户,userdel -r username中的-r选项会同时删除用户主目录。
    • 组管理

      • groupadd:创建新组,例如groupadd groupname
      • usermod:修改用户所属组,usermod -a -G groupname username将用户添加到组,-a是附加组的意思。
      • groupdel:删除组,但组内不能有用户。
    • 查询命令

      • id:查询用户的 UID、GID 和所属组,如id username
      • groups:查看用户所属的组,例如groups username
      • cat /etc/passwd:显示系统所有用户信息。
      • cat /etc/group:显示系统所有组信息。
  • Windows

    • 用户管理(命令提示符)

      • net user:用于添加、删除和修改用户。如net user newuser password /add添加用户,net user newuser /delete删除用户。
      • wmic useraccount:可以查询用户账户信息,例如wmic useraccount get name获取用户名称列表。
    • 组管理(命令提示符)

      • net localgroup:添加、删除和查询本地组。如net localgroup newgroup /add添加组,net localgroup newgroup /delete删除组。
      • 将用户添加到组net localgroup groupname username /add
      • 查询用户所属组net user username可查看用户所属组信息。

2. 远程连接协议与端口

  • Windows

    • 远程协议:主要是远程桌面协议(RDP)。
    • 默认远程端口:3389,用于通过远程桌面连接访问 Windows 系统。
  • Linux

    • 远程协议:常用的是 SSH(Secure Shell)。
    • 默认远程端口:22,用于安全地远程登录和管理 Linux 系统。

3. 测试端口连通性

  • Linux

    • telnet:如telnet IP地址 端口号,如果能连接,会出现相关信息;若不能连接,会提示连接失败。不过有些系统可能没有安装 telnet 客户端,需要先安装。
    • nc(netcat)nc -vz IP地址 端口号-v显示详细信息,-z表示扫描端口是否开放。
  • Windows

    • telnet:用法和 Linux 类似,在命令提示符中输入telnet IP地址 端口号,可能需要先开启 telnet 客户端功能。
    • PowerShell 中的 Test - NetConnection:例如Test - NetConnection -ComputerName IP地址 -Port 端口号,可查看端口连接状态。

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:显示更详细的系统信息,包括内核版本、主机名等。
  • 查看系统路由

    • 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(静态设为nonestatic)、IPADDR(新 IP)、NETMASK等,然后用systemctl restart network使配置生效。
  • eth0 网卡配置文件名称及路径(CentOS)

    • 名称:ifcfg -eth0
    • 路径:/etc/sysconfig/network -scripts/
  • 配置多个 IP(CentOS)

    • 网卡别名方式:创建新配置文件如ifcfg -eth0:1,修改DEVICEeth0:1IPADDR为新 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 bytesTX bytes
    • ip -s link show 网卡名:更详细地显示网卡流量统计,如字节数、数据包数等。
    • nload 网卡名(需安装):实时动态显示网卡入站和出站流量。
  • 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清除所有环境变量后运行)。
  • 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功能类似,是较新的工具,输出可能更简洁。
  • Windows

    • netstat -a -n:显示所有连接和监听端口,-a表示所有,-n表示以数字形式显示。
    • PowerShell 中的 Get -NetTCPConnection 和 Get -NetUDPEndpoint:可以获取 TCP 和 UDP 端口相关信息。

15. iptables 规则保存与恢复

  • 保存 iptables 规则(Linux)

    • 在 CentOS 或 RHEL 中,使用service iptables save将规则保存到/etc/sysconfig/iptables文件。
    • 在 Ubuntu 或 Debian 中,使用iptables -save > 文件名,如iptables -save > /home/user/iptables_rules
  • 恢复 iptables 规则

    • 在 CentOS 或 RHEL 中,使用service iptables restart来恢复之前保存的规则。
    • 在 Ubuntu 或 Debian 中,使用iptables -restore < 文件名,如iptables -restore < /home/user/iptables_rules

16. 查看目录大小

  • Linux

    • du -sh 目录名-s表示汇总,-h表示以人类可读格式显示,如du -sh /home会显示/home目录的总大小。
    • du -h --max -depth = 1 目录名:显示目录下一级子目录和文件的大小,--max -depth = 1限制显示深度为 1。
  • Windows

    • 在命令提示符中:使用dir /s可以查看目录及其子目录的文件大小等信息,但显示格式不太直观。可以使用一些第三方工具如 TreeSize 等更方便地查看目录大小。

以上就是一些常用的系统管理和网络配置的命令汇总,希望对你的日常工作有所帮助。如果你有更多问题或需要进一步的帮助,请随时留言讨论! 🚀