Linux 高手都是键盘侠,命令速查,命令学习,命令练习(四)用户管理、网络管理命令

1,075 阅读40分钟

Linux 曾经是许多新人的“噩梦”,当你真的面对它、了解它时你会发现命令的操作方式才是最纯粹最高效的操作方式。Linux并不复杂,只是不符合人类对实物操作的“直觉”,只要适应一段时间就好。这里梳理了我们在使用linux时常用的命令和这些命令的用法与使用场景,我们不用全部死记硬背,只需简单过目留个印象,并在遇到相同使用场景时来速查便可。只要稍微有一点计算机的基础、经过几次Linux的实践,你会发现它并没有那么可怕,反而会觉得它很高效,很直接,享受这个过程吧~

如果内容对大家有帮助,请大家【点赞】【收藏】,给予作者鼓励,感谢阅读。

7 用户管理命令

useradd- 创建新用户账号

在 Linux 命令行中,"useradd" 命令用于创建新的用户账号。它允许您在系统中添加新的用户,并设置相关的用户属性。下面是 "useradd" 命令的一些常见用法和代表性的例子:

  1. 创建一个新的用户账号:

    useradd username
    

    例如:useradd john 将创建一个名为 "john" 的新用户账号。

  2. 创建用户时指定用户的主目录:

    useradd -d /path/to/directory username
    

    例如:useradd -d /home/john john 将创建一个名为 "john" 的新用户账号,并将其主目录设置为 "/home/john"。

  3. 创建用户时指定用户的初始组:

    useradd -g groupname username
    

    例如:useradd -g developers john 将创建一个名为 "john" 的新用户账号,并将其初始组设置为 "developers"。

  4. 创建用户时设置用户的登录Shell:

    useradd -s /path/to/shell username
    

    例如:useradd -s /bin/bash john 将创建一个名为 "john" 的新用户账号,并将其登录Shell设置为 "/bin/bash"。

这些是 "useradd" 命令的一些常见用法和示例。"useradd" 命令允许您在 Linux 系统中创建新的用户账号,并设置相关的用户属性,如主目录、用户组和登录Shell。您可以使用 man useradd 命令查看更详细的文档和使用说明。

usermod- 修改用户账号的属性

在 Linux 命令行中,"usermod" 命令用于修改用户账号的属性和配置。它允许您对现有用户进行修改,如更改用户的用户名、主目录、用户组等。下面是 "usermod" 命令的一些常见用法和代表性的例子:

  1. 修改用户的用户名:

    usermod -l new_username old_username
    

    例如:usermod -l jsmith john 将将用户 "john" 的用户名修改为 "jsmith"。

  2. 修改用户的主目录:

    usermod -d /new/path/to/directory username
    

    例如:usermod -d /home/jsmith jsmith 将将用户 "jsmith" 的主目录修改为 "/home/jsmith"。

  3. 修改用户的登录Shell:

    usermod -s /path/to/shell username
    

    例如:usermod -s /bin/zsh jsmith 将将用户 "jsmith" 的登录Shell修改为 "/bin/zsh"。

  4. 修改用户的附加组:

    usermod -G group1,group2 username
    

    例如:usermod -G admins,developers jsmith 将将用户 "jsmith" 添加到 "admins" 和 "developers" 组。

  5. 修改用户的密码过期时间:

    usermod -e YYYY-MM-DD username
    

    例如:usermod -e 2023-12-31 jsmith 将将用户 "jsmith" 的密码过期时间设置为 2023 年 12 月 31 日。

这些是 "usermod" 命令的一些常见用法和示例。"usermod" 命令允许您对现有用户账号进行修改,包括用户名、主目录、用户组、登录Shell 等属性的更改。您可以使用 man usermod 命令查看更详细的文档和使用说明。

userdel- 删除用户账号

在 Linux 命令行中,"userdel" 命令用于删除用户账号及其相关的文件和目录。它允许您从系统中移除不再需要的用户账号。请注意,使用 "userdel" 命令删除用户账号是一个潜在的危险操作,请谨慎使用。下面是 "userdel" 命令的一些常见用法和代表性的例子:

  1. 删除用户账号:

    userdel username
    

    例如:userdel jsmith 将删除名为 "jsmith" 的用户账号。

  2. 删除用户账号及其主目录:

    userdel -r username
    

    例如:userdel -r jsmith 将删除名为 "jsmith" 的用户账号,并连同其主目录一起删除。

  3. 强制删除用户账号及其相关文件(忽略警告):

    userdel -f username
    

    例如:userdel -f jsmith 将强制删除名为 "jsmith" 的用户账号,忽略任何警告信息。

  4. 删除用户账号的同时移动其文件到另一个目录:

    userdel -m -r -d /new/path/to/directory username
    

    例如:userdel -m -r -d /backup/jsmith jsmith 将删除名为 "jsmith" 的用户账号,并将其主目录中的文件移动到 "/backup/jsmith" 目录下。

这些是 "userdel" 命令的一些常见用法和示例。请注意,在删除用户账号之前,应该仔细考虑并备份相关的文件和数据。使用 man userdel 命令可以查看更详细的文档和使用说明。

groupadd - 创建新用户组

在 Linux 命令行中,"groupadd" 命令用于创建新的用户组。它允许您在系统中添加新的用户组,并设置相关的组属性。下面是 "groupadd" 命令的一些常见用法和代表性的例子:

  1. 创建一个新的用户组:

    groupadd groupname
    

    例如:groupadd developers 将创建一个名为 "developers" 的新用户组。

  2. 创建用户组时指定组ID(GID):

    groupadd -g group_id groupname
    

    例如:groupadd -g 1001 developers 将创建一个名为 "developers" 的新用户组,并将其组ID设置为 1001。

  3. 创建用户组时指定初始用户(组的所有者):

    groupadd -o -g group_id -r groupname
    

    例如:groupadd -o -g 1001 -r developers 将创建一个名为 "developers" 的新用户组,并将其组ID设置为 1001,并且允许重复的组ID。

这些是 "groupadd" 命令的一些常见用法和示例。"groupadd" 命令允许您在 Linux 系统中创建新的用户组,并设置相关的组属性,如组ID等。您可以使用 man groupadd 命令查看更详细的文档和使用说明。

passwd- 设置用户密码

在 Linux 命令行中,"passwd" 命令用于更改用户的密码。它允许用户更改自己的密码或管理员更改其他用户的密码。下面是 "passwd" 命令的一些常见用法和代表性的例子:

  1. 更改当前用户的密码:

    passwd
    

    执行此命令后,系统会提示您输入当前用户的密码,并要求输入新的密码。

  2. 更改其他用户的密码(需要管理员权限):

    sudo passwd username
    

    例如:sudo passwd john 将允许管理员更改用户 "john" 的密码。执行此命令后,系统会提示管理员输入密码,并要求输入新的密码。

  3. 强制用户在下次登录时更改密码:

    sudo passwd -e username
    

    例如:sudo passwd -e john 将强制用户 "john" 在下次登录时更改密码。

  4. 设置密码过期时间:

    sudo passwd -x days username
    

    例如:sudo passwd -x 30 john 将设置用户 "john" 的密码在 30 天后过期。

这些是 "passwd" 命令的一些常见用法和示例。通过使用 "passwd" 命令,用户可以更改自己的密码或管理员可以更改其他用户的密码。您可以使用 man passwd 命令查看更详细的文档和使用说明。

chage- 修改用户账号的密码过期信息

在 Linux 命令行中,"chage" 命令用于修改用户账号的密码过期信息。它允许管理员管理用户账号的密码过期策略,包括密码过期时间、最大使用期限、最小使用期限等。下面是 "chage" 命令的一些常见用法和代表性的例子:

  1. 查看用户密码过期信息:

    chage -l username
    

    例如:chage -l jsmith 将显示用户 "jsmith" 的密码过期信息,包括最后更改密码的日期、密码过期日期等。

  2. 设置密码过期时间(以天数为单位):

    chage -M days username
    

    例如:chage -M 90 jsmith 将设置用户 "jsmith" 的密码过期时间为 90 天。

  3. 禁用密码过期:

    chage -E -1 username
    

    例如:chage -E -1 jsmith 将禁用用户 "jsmith" 的密码过期功能。

  4. 设置账号的最大使用期限:

    chage -M days username
    

    例如:chage -M 365 jsmith 将设置用户 "jsmith" 的账号最大使用期限为 365 天。

这些是 "chage" 命令的一些常见用法和示例。通过使用 "chage" 命令,管理员可以管理用户账号的密码过期策略和其他相关信息。您可以使用 man chage 命令查看更详细的文档和使用说明。

id- 显示用户或组的身份信息

在 Linux 命令行中,"id" 命令用于显示当前用户或指定用户的身份标识信息。它会显示用户的用户ID(UID)、组ID(GID)以及附属组ID。下面是 "id" 命令的一些常见用法和代表性的例子:

  1. 显示当前用户的身份标识信息:

    id
    

    执行此命令后,系统会显示当前用户的用户ID、组ID以及附属组ID。

  2. 显示指定用户的身份标识信息:

    id username
    

    例如:id jsmith 将显示用户 "jsmith" 的用户ID、组ID以及附属组ID。

  3. 显示用户的详细身份标识信息:

    id -u -n -G username
    

    例如:id -u -n -G jsmith 将显示用户 "jsmith" 的用户ID、用户名以及所属的所有附属组。

这些是 "id" 命令的一些常见用法和示例。通过使用 "id" 命令,您可以查看用户的身份标识信息,包括用户ID、组ID以及附属组ID。您可以使用 man id 命令查看更详细的文档和使用说明。

su- 切换用户身份

在 Linux 命令行中,"su" 命令用于切换到其他用户身份或者切换到超级用户(root)身份。它允许用户在登录后切换到其他用户,同时也可以使用它来获取超级用户的权限。下面是 "su" 命令的一些常见用法和代表性的例子:

  1. 切换到其他用户身份:

    su username
    

    例如:su jsmith 将切换到用户 "jsmith" 的身份。执行此命令后,系统会要求您输入该用户的密码。

  2. 切换到超级用户(root)身份:

    su
    

    或者

    su -
    

    执行这两个命令中的任意一个,将切换到超级用户(root)的身份。在切换到 root 身份后,系统会要求您输入 root 用户的密码。

  3. 切换到其他用户身份并执行命令:

    su -c "command" username
    

    例如:su -c "ls -l" jsmith 将切换到用户 "jsmith" 的身份,并执行 "ls -l" 命令。

  4. 切换到其他用户身份并保留环境变量:

    su -l username
    

    例如:su -l jsmith 将切换到用户 "jsmith" 的身份,并保留原始用户的环境变量。

这些是 "su" 命令的一些常见用法和示例。通过使用 "su" 命令,用户可以切换到其他用户身份或者切换到超级用户(root)身份。请注意,在切换到超级用户身份时要谨慎操作,以免造成系统安全问题。您可以使用 man su 命令查看更详细的文档和使用说明。

visudo- 编辑sudoers文件,控制sudo命令的使用权限

在 Linux 命令行中,"visudo" 命令用于编辑 "/etc/sudoers" 文件,它提供了一个安全的方式来编辑 sudoers 文件,以配置用户的权限和访问控制规则。sudoers 文件用于定义哪些用户或组可以以超级用户的权限执行特定的命令。下面是 "visudo" 命令的一些常见用法和代表性的例子:

  1. 打开 sudoers 文件进行编辑:

    sudo visudo
    

    执行此命令后,系统会使用默认的文本编辑器打开 sudoers 文件供您进行编辑。

  2. 检查 sudoers 文件的语法错误:

    sudo visudo -c
    

    例如:sudo visudo -c 将检查 sudoers 文件的语法错误,并在检查完毕后给出相应的提示。

  3. 添加用户到 sudoers 文件:

    sudo visudo
    

    执行此命令后,在打开的 sudoers 文件中添加以下行来授权用户具有sudo权限:

    username   ALL=(ALL:ALL) ALL
    

    将 "username" 替换为要授权的用户名。这样,该用户就可以使用 sudo 命令以超级用户的权限执行任意命令。

  4. 授权用户只能执行特定的命令:

    sudo visudo
    

    执行此命令后,在打开的 sudoers 文件中添加以下行来授权用户只能执行特定的命令:

    username   ALL=(ALL:ALL) /path/to/command
    

    将 "username" 替换为要授权的用户名,将 "/path/to/command" 替换为用户允许执行的特定命令的路径。

这些是 "visudo" 命令的一些常见用法和示例。通过使用 "visudo" 命令,您可以安全地编辑 sudoers 文件,配置用户的权限和访问控制规则。请注意,在编辑 sudoers 文件时要小心,以免破坏文件的正确性导致系统出现问题。您可以使用 man visudo 命令查看更详细的文档和使用说明。

sudo- 以其他用户身份执行命令

在 Linux 命令行中,"sudo" 命令用于以其他用户的身份执行命令,通常是以超级用户(root)的权限执行特权操作。它允许授权的用户在不直接使用超级用户账户的情况下执行需要特殊权限的命令。下面是 "sudo" 命令的一些常见用法和代表性的例子:

  1. 以超级用户权限执行命令:

    sudo command
    

    例如:sudo apt-get update 将使用超级用户的权限执行 "apt-get update" 命令。

  2. 以其他用户身份执行命令:

    sudo -u username command
    

    例如:sudo -u jsmith ls -l 将以用户 "jsmith" 的身份执行 "ls -l" 命令。

  3. 使用其他用户的环境变量执行命令:

    sudo -E command
    

    例如:sudo -E env 将使用当前用户的环境变量执行 "env" 命令。

  4. 在后台以超级用户权限执行命令:

    sudo -b command
    

    例如:sudo -b apt-get upgrade 将在后台使用超级用户的权限执行 "apt-get upgrade" 命令。

  5. 切换到超级用户(root)身份:

    sudo -i
    

    执行此命令后,将切换到超级用户的身份,并打开一个新的 shell 会话。

这些是 "sudo" 命令的一些常见用法和示例。通过使用 "sudo" 命令,授权的用户可以以其他用户的身份执行命令,以实现特权操作而无需直接使用超级用户账户。请谨慎使用 "sudo" 命令,以避免意外的系统操作和安全风险。您可以使用 man sudo 命令查看更详细的文档和使用说明。

8 基础网络命令

telnet- 远程登录到另一台主机

在 Linux 命令行中,"telnet" 命令用于建立与远程主机的 Telnet 连接。Telnet 是一种远程登录协议,它允许用户通过网络远程登录到远程主机并执行命令。以下是 "telnet" 命令的一些常见用法和代表性的例子:

  1. 建立 Telnet 连接:

    telnet hostname [port]
    

    例如:telnet example.com 将建立到 example.com 主机的默认 Telnet 连接。

  2. 指定端口号建立 Telnet 连接:

    telnet hostname port
    

    例如:telnet example.com 22 将建立到 example.com 主机的 SSH 连接(SSH 默认端口为 22)。

  3. 使用 Telnet 连接发送命令:

    telnet hostname [port]
    command
    

    例如:telnet example.com 80 连接到 example.com 的 HTTP 服务端口,并可以发送 HTTP 请求命令。

  4. 使用 Telnet 连接测试端口是否开放:

    telnet hostname port
    

    例如:telnet example.com 443 可以测试 example.com 的 443 端口是否处于开放状态。

  5. 在 Telnet 会话中执行 Telnet 命令:

    telnet hostname [port]
    telnet
    

    例如:telnet example.com 建立到 example.com 的 Telnet 连接后,可以在 Telnet 会话中继续使用 telnet 命令建立到其他主机的 Telnet 连接。

这些是 "telnet" 命令的一些常见用法和示例。通过使用 Telnet 连接,您可以远程登录到其他主机并执行命令,或者测试远程主机的端口是否开放。请注意,在使用 Telnet 连接时要小心,因为它是以明文方式传输数据,不提供加密和安全性。建议在可能的情况下使用更安全的协议,如 SSH。您可以使用 man telnet 命令查看更详细的文档和使用说明。

ssh- 安全远程登录到另一台主机

在 Linux 命令行中,"ssh" 命令用于建立安全的远程登录连接。SSH(Secure Shell)是一种加密的网络协议,它允许用户通过网络远程登录到远程主机并执行命令。以下是 "ssh" 命令的一些常见用法和代表性的例子:

  1. 建立 SSH 连接:

    ssh username@hostname
    

    例如:ssh jsmith@example.com 将以用户名 "jsmith" 连接到 example.com 主机。

  2. 指定端口号建立 SSH 连接:

    ssh -p port username@hostname
    

    例如:ssh -p 2222 jsmith@example.com 将以用户名 "jsmith" 连接到 example.com 主机的 SSH 服务端口 2222。

  3. 使用密钥文件进行身份验证:

    ssh -i private_key username@hostname
    

    例如:ssh -i ~/.ssh/id_rsa jsmith@example.com 将使用指定的私钥文件进行身份验证。

  4. 在 SSH 连接中执行命令:

    ssh username@hostname command
    

    例如:ssh jsmith@example.com ls -l 将在 example.com 主机上执行 "ls -l" 命令。

  5. 拷贝文件到远程主机:

    scp file username@hostname:destination
    

    例如:scp file.txt jsmith@example.com:/home/jsmith/ 将文件 "file.txt" 拷贝到 example.com 主机的 jsmith 用户的 "/home/jsmith/" 目录下。

这些是 "ssh" 命令的一些常见用法和示例。通过使用 SSH 连接,您可以远程登录到其他主机并执行命令,或者在本地和远程主机之间进行安全的文件传输。SSH 提供了加密和身份验证机制,使远程连接更加安全。您可以使用 man ssh 命令查看更详细的文档和使用说明。

scp- 在本地主机和远程主机之间复制文件

在 Linux 命令行中,"scp" 命令用于在本地主机和远程主机之间进行安全的文件传输。SCP(Secure Copy)通过使用 SSH 协议进行加密,提供了对文件的安全拷贝。以下是 "scp" 命令的一些常见用法和代表性的例子:

  1. 从本地主机拷贝文件到远程主机:

    scp local_file username@hostname:destination
    

    例如:scp file.txt jsmith@example.com:/home/jsmith/ 将本地的 "file.txt" 文件拷贝到 example.com 主机的 jsmith 用户的 "/home/jsmith/" 目录下。

  2. 从远程主机拷贝文件到本地主机:

    scp username@hostname:remote_file destination
    

    例如:scp jsmith@example.com:/var/log/syslog . 将 example.com 主机上的 "/var/log/syslog" 文件拷贝到当前目录下。

  3. 拷贝目录及其内容:

    scp -r local_directory username@hostname:destination
    

    例如:scp -r mydir jsmith@example.com:/home/jsmith/ 将本地的 "mydir" 目录及其内容拷贝到 example.com 主机的 jsmith 用户的 "/home/jsmith/" 目录下。

  4. 从远程主机拷贝文件到本地主机,并指定端口号:

    scp -P port username@hostname:remote_file destination
    

    例如:scp -P 2222 jsmith@example.com:/var/log/syslog . 将 example.com 主机上的 "/var/log/syslog" 文件通过 SSH 服务端口 2222 拷贝到当前目录下。

这些是 "scp" 命令的一些常见用法和示例。通过使用 SCP 命令,您可以在本地主机和远程主机之间安全地拷贝文件和目录。SCP 使用 SSH 协议进行加密传输,提供了对数据的保护和身份验证。您可以使用 man scp 命令查看更详细的文档和使用说明。

wget- 下载文件或网页

在 Linux 命令行中,"wget" 命令用于下载文件或网页。它是一个非交互式的工具,可以通过 URL 从网络上获取文件。以下是 "wget" 命令的一些常见用法和代表性的例子:

  1. 下载单个文件:

    wget URL
    

    例如:wget https://example.com/file.txt 将下载 "example.com/file.txt" 的文件到当前目录。

  2. 下载并保存为指定文件名:

    wget -O filename URL
    

    例如:wget -O myfile.zip https://example.com/archive.zip 将下载 "example.com/archive.zip" 的文件并保存为 "myfile.zip"。

  3. 后台下载文件:

    wget -b URL
    

    例如:wget -b https://example.com/bigfile.iso 将在后台下载 "example.com/bigfile.iso" 的文件。

  4. 递归下载整个网站:

    wget -r URL
    

    例如:wget -r https://example.com 将递归下载 "example.com" 网站的所有页面和资源。

  5. 断点续传下载:

    wget -c URL
    

    例如:wget -c https://example.com/bigfile.zip 将从上次下载中断的位置继续下载 "example.com/bigfile.zip" 的文件。

这些是 "wget" 命令的一些常见用法和示例。通过使用 wget,您可以方便地从网络上获取文件,支持下载单个文件、整个网站、后台下载以及断点续传等功能。您可以使用 man wget 命令查看更详细的文档和使用说明。

ping- 测试与另一台主机的网络连接

在 Linux 命令行中,"ping" 命令用于测试与目标主机之间的网络连接。它发送 ICMP Echo 请求到目标主机,并等待响应。以下是 "ping" 命令的一些常见用法和代表性的例子:

  1. Ping 目标主机:

    ping hostname
    

    例如:ping example.com 将向 "example.com" 发送 ICMP Echo 请求并显示响应。

  2. Ping 指定次数:

    ping -c count hostname
    

    例如:ping -c 5 example.com 将向 "example.com" 发送 5 个 ICMP Echo 请求并显示响应。

  3. Ping 指定时间间隔:

    ping -i interval hostname
    

    例如:ping -i 2 example.com 将向 "example.com" 发送 ICMP Echo 请求,每隔 2 秒发送一次。

  4. Ping 持续发送请求:

    ping -f hostname
    

    例如:ping -f example.com 将以持续的方式向 "example.com" 发送 ICMP Echo 请求,直到手动停止。

  5. 使用特定的数据包大小:

    ping -s packetsize hostname
    

    例如:ping -s 1000 example.com 将发送数据包大小为 1000 字节的 ICMP Echo 请求。

这些是 "ping" 命令的一些常见用法和示例。通过使用 ping 命令,您可以测试与目标主机之间的网络连接,检查主机的可达性和延迟情况。ping 命令是网络故障排查中常用的工具之一。您可以使用 man ping 命令查看更详细的文档和使用说明。

route- 查看和管理网络路由表

在 Linux 命令行中,"route" 命令用于查看和配置系统的 IP 路由表。它可以显示和操作网络路由信息,包括默认网关、子网路由和静态路由等。以下是 "route" 命令的一些常见用法和代表性的例子:

  1. 查看当前路由表:

    route -n
    

    该命令将显示系统当前的 IP 路由表,包括目标网络、网关、子网掩码和接口等信息。

  2. 添加默认网关:

    route add default gw gateway
    

    例如:route add default gw 192.168.1.1 将添加一个默认网关为 "192.168.1.1"。

  3. 添加子网路由:

    route add -net network netmask gateway
    

    例如:route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 将添加一个针对子网 "192.168.2.0" 的路由,网关为 "192.168.1.1"。

  4. 删除路由:

    route del target
    

    例如:route del default 将删除默认网关。

  5. 查看接口的路由表:

    route -n -A inet -e
    

    该命令将显示指定接口的路由表,包括目标网络、网关、子网掩码和接口等信息。

这些是 "route" 命令的一些常见用法和示例。通过使用 route 命令,您可以查看和配置系统的 IP 路由表,添加或删除路由,以及管理网络连接的路由信息。您可以使用 man route 命令查看更详细的文档和使用说明。

ifconfig - 显示和配置网络接口信息

在 Linux 命令行中,"ifconfig" 命令用于配置和显示网络接口的信息,包括 IP 地址、子网掩码、MAC 地址和网络状态等。它还可以用于启用或禁用网络接口。以下是 "ifconfig" 命令的一些常见用法和代表性的例子:

  1. 显示所有网络接口信息:

    ifconfig
    

    该命令将显示系统中所有网络接口的详细信息,包括接口名称、IP 地址、MAC 地址、状态等。

  2. 显示指定网络接口信息:

    ifconfig interface
    

    例如:ifconfig eth0 将显示名为 "eth0" 的网络接口的详细信息。

  3. 启用网络接口:

    ifconfig interface up
    

    例如:ifconfig eth0 up 将启用名为 "eth0" 的网络接口。

  4. 禁用网络接口:

    ifconfig interface down
    

    例如:ifconfig eth0 down 将禁用名为 "eth0" 的网络接口。

  5. 配置 IP 地址和子网掩码:

    ifconfig interface ip_address netmask subnet_mask
    

    例如:ifconfig eth0 192.168.1.100 netmask 255.255.255.0 将为 "eth0" 接口配置 IP 地址为 "192.168.1.100",子网掩码为 "255.255.255.0"。

这些是 "ifconfig" 命令的一些常见用法和示例。通过使用 ifconfig 命令,您可以查看和配置系统中的网络接口信息,启用或禁用接口,以及配置 IP 地址和子网掩码等。然而,需要注意的是,随着现代 Linux 系统的发展,ip 命令已经逐渐取代了 ifconfig 命令。因此,在新的 Linux 发行版中,推荐使用 ip 命令来代替 ifconfig。您可以使用 man ifconfig 命令查看更详细的文档和使用说明。

ifup- 启动网络接口

在 Linux 命令行中,"ifup" 命令用于启用网络接口。它会根据网络配置文件中的配置信息来启动指定的网络接口。以下是 "ifup" 命令的一些常见用法和代表性的例子:

  1. 启用指定网络接口:

    ifup interface
    

    例如:ifup eth0 将启用名为 "eth0" 的网络接口。

  2. 启用所有配置的网络接口:

    ifup -a
    

    该命令将启用系统中所有在网络配置文件中配置的网络接口。

  3. 指定网络接口的配置文件:

    ifup -i filename interface
    

    例如:ifup -i /etc/network/interfaces eth0 将使用指定的配置文件 "/etc/network/interfaces" 启用名为 "eth0" 的网络接口。

这些是 "ifup" 命令的一些常见用法和示例。通过使用 ifup 命令,您可以根据网络配置文件中的配置信息来启用指定的网络接口。需要注意的是,ifup 命令通常与网络配置管理工具一起使用,如在 Debian 系统中使用的 ifupdown 工具。这些工具提供更高级的网络配置功能,如静态 IP 地址、DHCP、DNS 设置等。您可以参考您所使用的 Linux 发行版的文档来了解更多关于 ifup 命令和网络配置管理工具的信息。

ifdown - 关闭网络接口

在 Linux 命令行中,"ifdown" 命令用于禁用网络接口。它会根据网络配置文件中的配置信息来停止指定的网络接口。以下是 "ifdown" 命令的一些常见用法和代表性的例子:

  1. 禁用指定网络接口:

    ifdown interface
    

    例如:ifdown eth0 将禁用名为 "eth0" 的网络接口。

  2. 禁用所有配置的网络接口:

    ifdown -a
    

    该命令将停止系统中所有在网络配置文件中配置的网络接口。

  3. 指定网络接口的配置文件:

    ifdown -i filename interface
    

    例如:ifdown -i /etc/network/interfaces eth0 将使用指定的配置文件 "/etc/network/interfaces" 禁用名为 "eth0" 的网络接口。

这些是 "ifdown" 命令的一些常见用法和示例。通过使用 ifdown 命令,您可以根据网络配置文件中的配置信息来禁用指定的网络接口。需要注意的是,ifdown 命令通常与网络配置管理工具一起使用,如在 Debian 系统中使用的 ifupdown 工具。这些工具提供更高级的网络配置功能,如静态 IP 地址、DHCP、DNS 设置等。您可以参考您所使用的 Linux 发行版的文档来了解更多关于 ifdown 命令和网络配置管理工具的信息。

netstat- 显示网络连接、路由表和网络统计信息

在 Linux 命令行中,"netstat" 命令用于显示网络连接、路由表和网络接口等相关信息。它可以提供有关网络连接状态、协议统计、路由表和网络接口的详细信息。以下是 "netstat" 命令的一些常见用法和代表性的例子:

  1. 显示所有网络连接信息:

    netstat -a
    

    该命令将显示所有的网络连接信息,包括监听和已建立的连接。

  2. 显示指定协议的连接信息:

    netstat -t
    netstat -u
    

    -t 参数用于显示 TCP 连接信息,-u 参数用于显示 UDP 连接信息。

  3. 显示监听状态的连接信息:

    netstat -l
    

    该命令将显示所有处于监听状态的连接信息。

  4. 显示路由表信息:

    netstat -r
    

    该命令将显示系统的路由表信息,包括目标网络、网关、接口和路由标志等。

  5. 显示网络接口信息:

    netstat -i
    

    该命令将显示系统的网络接口信息,包括接口名称、接收和发送的数据包数量等。

这些是 "netstat" 命令的一些常见用法和示例。通过使用 netstat 命令,您可以获取有关网络连接、路由表和网络接口等方面的详细信息。需要注意的是,netstat 命令在最新版本的 Linux 中已逐渐被 ss 命令替代,因为 ss 命令提供更快速和更详细的输出。您可以参考您所使用的 Linux 发行版的文档来了解更多关于 netstat 命令和 ss 命令的信息。

ss- 显示当前套接字连接信息

在 Linux 命令行中,"ss" 命令用于显示网络连接、套接字统计和路由表等相关信息。它是 "netstat" 命令的现代替代工具,提供更快速和更详细的输出。以下是 "ss" 命令的一些常见用法和代表性的例子:

  1. 显示所有网络连接信息:

    ss -a
    

    该命令将显示所有的网络连接信息,包括监听和已建立的连接。

  2. 显示指定协议的连接信息:

    ss -t
    ss -u
    

    -t 参数用于显示 TCP 连接信息,-u 参数用于显示 UDP 连接信息。

  3. 显示监听状态的连接信息:

    ss -l
    

    该命令将显示所有处于监听状态的连接信息。

  4. 显示套接字统计信息:

    ss -s
    

    该命令将显示套接字的统计信息,包括各个协议的统计数据。

  5. 显示路由表信息:

    ss -r
    

    该命令将显示系统的路由表信息,包括目标网络、网关、接口和路由标志等。

  6. 显示进程与套接字关联信息:

    ss -p
    

    该命令将显示每个套接字关联的进程信息。

这些是 "ss" 命令的一些常见用法和示例。通过使用 ss 命令,您可以获取有关网络连接、套接字统计和路由表等方面的详细信息。相较于 netstat 命令,ss 命令提供更快速和更详细的输出,并支持更多的选项和过滤条件。您可以参考您所使用的 Linux 发行版的文档来了解更多关于 ss 命令的信息。

9 深入网络命令

nmap- 网络扫描工具,用于探测和识别网络上的主机和服务

在 Linux 命令行中,"nmap" 是一个功能强大的网络扫描工具,用于探测和识别网络上的主机和服务。它可以提供有关目标主机的端口状态、操作系统类型、开放的服务等信息。以下是 "nmap" 命令的一些常见用法和代表性的例子:

  1. 扫描单个主机的常见端口:

    nmap <target>
    

    <target> 是要扫描的目标主机的 IP 地址或主机名。该命令将扫描目标主机上的常见端口,并报告端口的状态。

  2. 扫描多个主机的常见端口:

    nmap <target1> <target2> <target3> ...
    

    在命令中指定多个目标主机,用空格分隔。该命令将同时扫描多个目标主机上的常见端口。

  3. 扫描指定端口范围:

    nmap -p <port-range> <target>
    

    -p 参数用于指定要扫描的端口范围,可以是单个端口号或端口范围,例如 "80"、"1-100"。该命令将只扫描指定范围内的端口。

  4. 扫描指定的端口类型:

    nmap -p <port-type> <target>
    

    -p 参数后跟一个端口类型,如 "U:53,111,137,T:21-25,80"。该命令将扫描指定类型的端口,"U" 表示 UDP 端口,"T" 表示 TCP 端口。

  5. 扫描所有端口(全面扫描):

    nmap -p- <target>
    

    -p- 参数用于扫描目标主机上的所有端口。该命令将进行全面的端口扫描。

  6. 扫描操作系统类型:

    nmap -O <target>
    

    -O 参数用于进行操作系统探测。该命令将尝试识别目标主机所运行的操作系统类型。

  7. 扫描服务和版本信息:

    nmap -sV <target>
    

    -sV 参数用于进行服务和版本扫描。该命令将尝试识别目标主机上开放的服务和相应的版本信息。

这些是 "nmap" 命令的一些常见用法和示例。请注意,在使用 "nmap" 命令时,请确保您对要扫描的目标主机具有合法的权限,并遵守适用的法律和政策。 "nmap" 是一个功能强大的工具,可以帮助您了解网络上主机和服务的情况,但也需要

lsof- 光盘映像文件创建和编辑工具

在 Linux 命令行中,"lsof" 是一个用于显示打开文件和进程信息的工具。它可以列出当前系统中打开的文件、网络连接和相关的进程信息。以下是 "lsof" 命令的一些常见用法和代表性的例子:

  1. 列出所有打开的文件:

    lsof
    

    这个简单的命令将列出系统中当前打开的所有文件,包括普通文件、目录、设备文件、网络连接等。

  2. 列出指定进程打开的文件:

    lsof -p <PID>
    

    使用 "-p" 参数和进程 ID(PID),可以列出指定进程打开的所有文件。例如,lsof -p 1234 将列出进程 ID 为 1234 的进程打开的文件。

  3. 列出指定用户打开的文件:

    lsof -u <username>
    

    使用 "-u" 参数和用户名,可以列出指定用户打开的所有文件。例如,lsof -u john 将列出用户名为 "john" 的用户打开的文件。

  4. 列出指定文件的打开者:

    lsof <file>
    

    在命令中指定文件的路径和名称,可以列出打开该文件的进程和用户信息。例如,lsof /var/log/syslog 将列出打开 "/var/log/syslog" 文件的进程信息。

  5. 列出网络连接:

    lsof -i
    

    使用 "-i" 参数,可以列出系统上的网络连接信息,包括 TCP、UDP 和 RAW 协议的连接。

  6. 列出指定端口的打开者:

    lsof -i :<port>
    

    使用 "-i" 参数和端口号,可以列出使用指定端口的进程和文件信息。例如,lsof -i :80 将列出使用端口 80 的进程信息。

这些是 "lsof" 命令的一些常见用法和示例。请注意,在使用 "lsof" 命令时,可能需要以 root 用户或具有适当权限的用户身份运行才能查看某些文件和进程的信息。

mail - 发送邮件到指定的用户或邮件列表

在 Linux 命令行中,"mail" 是一个用于发送和接收电子邮件的基本命令行工具。它允许你发送电子邮件消息给其他用户或外部邮件服务器,并接收来自其他用户或邮件服务器的邮件。以下是 "mail" 命令的一些常见用法和代表性的例子:

  1. 发送邮件给其他用户:

    mail -s "Subject" username
    

    使用 "-s" 参数指定邮件主题,然后输入邮件正文。当你按下 Ctrl+D 结束输入时,邮件将被发送给指定的用户名。你可以在邮件正文中输入多行文本,并使用 Ctrl+D 结束。

  2. 发送邮件给外部邮件服务器:

    echo "Message" | mail -s "Subject" recipient@example.com
    

    使用管道符(|)将文本消息发送给 "mail" 命令,并使用 "-s" 参数指定邮件主题。邮件将被发送到指定的收件人邮箱地址。

  3. 查看收件箱中的邮件:

    mail
    

    这个简单的命令将显示你的收件箱中的邮件列表。你可以使用箭头键浏览邮件列表,并选择特定的邮件查看详细内容。

  4. 查看邮件的详细内容:

    mail -f mailbox
    

    使用 "-f" 参数和邮箱文件名,可以打开指定的邮箱文件,并查看邮件的详细内容。例如,mail -f /var/mail/username 将打开名为 "username" 的用户邮箱文件。

  5. 删除邮件:

    mail -d message_number
    

    使用 "-d" 参数和邮件编号,可以删除收件箱中的特定邮件。邮件编号可以在查看邮件列表时获得。

这些是 "mail" 命令的一些常见用法和示例。请注意,使用 "mail" 命令发送和接收邮件通常需要系统配置正确,并且邮件服务器的设置和访问权限正确配置。

mutt- 命令行邮件客户端,用于查看、发送和管理电子邮件

在 Linux 命令行中,"mutt" 是一个功能强大的文本模式邮件客户端工具,它提供了发送、接收和管理电子邮件的功能。下面是一些常见的 "mutt" 命令的用法和代表性的例子:

  1. 启动 Mutt:

    mutt
    

    这个简单的命令将启动 Mutt 邮件客户端。

  2. 查看收件箱:

    mutt
    

    在 Mutt 中,你将看到收件箱的邮件列表。使用上下箭头键来浏览邮件列表。按下 Enter 键可以查看选定邮件的详细内容。

  3. 发送邮件:

    mutt -s "Subject" recipient@example.com < message.txt
    

    使用 "-s" 参数指定邮件主题,通过重定向 < 将邮件正文从文本文件中读取。邮件将被发送到指定的收件人邮箱地址。

  4. 回复邮件:

    mutt -R
    

    使用 "-R" 参数进入回复模式,你可以选择要回复的邮件,然后编辑回复的内容。

  5. 删除邮件:

    mutt -d message_number
    

    使用 "-d" 参数和邮件编号,可以删除收件箱中的特定邮件。邮件编号可以在查看邮件列表时获得。

  6. 附件操作:

    • 添加附件:
      mutt -a attachment.txt -- recipient@example.com
      
      使用 "-a" 参数指定要添加的附件文件。邮件将包含指定的附件,并发送到收件人。
    • 查看附件: 在 Mutt 中,当你选择一个包含附件的邮件时,你可以按下 v 键来查看附件,并选择保存或打开附件。
    • 保存附件: 在 Mutt 中,当你选择一个包含附件的邮件时,你可以按下 s 键来选择保存附件,并指定保存的目录和文件名。

这些是 "mutt" 命令的一些常见用法和示例。Mutt 提供了丰富的功能和配置选项,可以通过修改配置文件来自定义客户端的行为。请注意,使用 Mutt 发送和接收邮件通常需要系统配置正确,并且邮件服务器的设置和访问权限正确配置。

nslookup- 查询域名服务器,获取主机名或 IP 地址的信息

在 Linux 命令行中,"nslookup" 是一个用于查询 DNS(Domain Name System)信息的实用工具。它可以用来查找域名的 IP 地址、反向查找 IP 地址的域名,以及获取其他与域名解析相关的信息。下面是一些常见的 "nslookup" 命令的用法和代表性的例子:

  1. 查询域名的 IP 地址:

    nslookup example.com
    

    这个命令将查询域名 "example.com" 的 IP 地址,并显示结果。

  2. 查询指定类型的 DNS 记录:

    nslookup -type=mx example.com
    

    使用 "-type" 参数指定要查询的记录类型,例如 MX 记录(邮件交换记录)。这个命令将显示域名 "example.com" 的 MX 记录。

  3. 反向查找 IP 地址的域名:

    nslookup 192.0.2.1
    

    这个命令将查询 IP 地址 "192.0.2.1" 对应的域名,并显示结果。

  4. 设置特定的 DNS 服务器:

    nslookup example.com 8.8.8.8
    

    使用上述命令,你可以在查询过程中指定要使用的 DNS 服务器。上面的例子将使用 Google 的公共 DNS 服务器(8.8.8.8)进行查询。

  5. 交互式模式:

    nslookup
    > set type=ns
    > example.com
    

    这个示例演示了如何进入交互式模式并设置查询类型。首先,输入 "nslookup" 命令进入交互模式。然后,使用 "set type" 命令设置查询类型为 NS 记录(域名服务器记录)。最后,输入要查询的域名,它将显示域名的 NS 记录。

这些是 "nslookup" 命令的一些常见用法和示例。它是一个有用的工具,可用于进行 DNS 相关的查询和故障排除。请注意,在某些 Linux 发行版中,"nslookup" 命令可能已被替代为 "host" 或 "dig" 命令,这些命令也可以用于执行类似的 DNS 查询操作。

dig- DNS(域名系统)查询工具,用于获取域名相关信息

在 Linux 命令行中,"dig"(Domain Information Groper)是一个常用的 DNS(Domain Name System)工具,用于查询域名解析相关的信息。它提供了丰富的选项和功能,可以查询域名的各种记录类型、指定 DNS 服务器、执行递归或迭代查询等。下面是一些常见的 "dig" 命令的用法和代表性的例子:

  1. 查询域名的 A 记录(IPv4 地址):

    dig example.com A
    

    这个命令将查询域名 "example.com" 的 A 记录,并显示结果。

  2. 查询指定类型的 DNS 记录:

    dig example.com MX
    

    使用 "dig" 命令可以查询指定类型的 DNS 记录。这个例子将查询域名 "example.com" 的 MX 记录(邮件交换记录)。

  3. 查询域名的 AAAA 记录(IPv6 地址):

    dig example.com AAAA
    

    这个命令将查询域名 "example.com" 的 AAAA 记录(IPv6 地址)。

  4. 查询域名的 NS 记录(域名服务器记录):

    dig example.com NS
    

    这个命令将查询域名 "example.com" 的 NS 记录。

  5. 查询指定 DNS 服务器:

    dig example.com @8.8.8.8
    

    使用 "@DNS_IP" 参数可以指定要查询的 DNS 服务器。上面的例子将使用 Google 的公共 DNS 服务器(8.8.8.8)进行查询。

  6. 执行递归查询:

    dig example.com +recurse
    

    使用 "+recurse" 参数可以执行递归查询。递归查询会从根 DNS 服务器开始,一直追踪到目标域名的解析结果。

这些是 "dig" 命令的一些常见用法和示例。它是一个功能强大的工具,可用于深入了解域名解析和进行 DNS 相关的调试和故障排除。使用不同的选项和参数,你可以根据需要定制查询。

host- 查询主机名或 IP 地址的 DNS 信息

在 Linux 命令行中,"host" 命令用于查询域名解析相关的信息。它可以通过给定的域名或 IP 地址查询相关的 DNS 记录,例如 A 记录、CNAME 记录、MX 记录等。下面是一些常见的 "host" 命令的用法和代表性的例子:

  1. 查询域名的 A 记录(IPv4 地址):

    host example.com
    

    这个命令将查询域名 "example.com" 的 A 记录,并显示与之关联的 IPv4 地址。

  2. 查询域名的 AAAA 记录(IPv6 地址):

    host -t AAAA example.com
    

    使用 "-t" 参数指定查询的记录类型,这个例子将查询域名 "example.com" 的 AAAA 记录(IPv6 地址)。

  3. 查询指定类型的 DNS 记录:

    host -t MX example.com
    

    使用 "-t" 参数指定查询的记录类型,这个例子将查询域名 "example.com" 的 MX 记录(邮件交换记录)。

  4. 查询指定 DNS 服务器的结果:

    host example.com ns1.example.com
    

    在这个例子中,我们指定了要查询的 DNS 服务器为 "ns1.example.com"。命令将向该 DNS 服务器发送查询请求并显示结果。

  5. 查询域名的反向解析(PTR 记录):

    host 192.0.2.1
    

    这个命令将查询 IP 地址 "192.0.2.1" 的反向解析记录,显示与之关联的域名。

这些是 "host" 命令的一些常见用法和示例。它是一个简单而实用的工具,用于快速查询域名解析相关的信息。你可以根据需要使用不同的选项和参数来定制查询,以满足特定的需求。

traceroute- 跟踪数据包在网络上的路由路径

在 Linux 命令行中,"traceroute" 命令用于跟踪数据包在 IP 网络上的路径。它通过发送一系列的数据包,每个数据包的 TTL(Time to Live)逐渐增加,以确定到达目标主机的路径和每个中间节点的延迟。下面是一些常见的 "traceroute" 命令的用法和代表性的例子:

  1. 基本的 traceroute 命令:

    traceroute example.com
    

    这个命令将跟踪到达域名 "example.com" 的路径,并显示每个中间节点的 IP 地址和延迟信息。

  2. 指定最大跃点数:

    traceroute -m 30 example.com
    

    使用 "-m" 参数可以指定最大的跃点数。这个例子将限制跟踪的跃点数为 30。

  3. 使用 ICMP 数据包:

    traceroute -I example.com
    

    使用 "-I" 参数可以指定使用 ICMP 数据包进行跟踪。这个例子将使用 ICMP 数据包而不是默认的 UDP 数据包。

  4. 指定端口号:

    traceroute -p 80 example.com
    

    使用 "-p" 参数可以指定目标端口号。这个例子将跟踪到达域名 "example.com" 上端口号为 80 的路径。

  5. 显示每个节点的详细信息:

    traceroute -A example.com
    

    使用 "-A" 参数可以显示每个中间节点的 AS(Autonomous System)号码和 AS 名称。

这些是 "traceroute" 命令的一些常见用法和示例。通过跟踪数据包的路径和延迟,它可以帮助诊断网络连接问题,并提供有关到达目标主机所经过的中间节点的信息。请注意,由于网络环境的变化,跟踪结果可能会有所不同。你可以根据需要使用不同的选项和参数来定制跟踪过程,以满足特定的需求。

tcpdump- 抓取网络数据包,并显示其内容和详细信息

在 Linux 命令行中,"tcpdump" 命令用于捕获和分析网络数据包。它可以实时地监听网络接口,显示捕获到的数据包的详细信息,包括源地址、目标地址、协议类型、端口号等。下面是一些常见的 "tcpdump" 命令的用法和代表性的例子:

  1. 监听指定网络接口:

    tcpdump -i eth0
    

    这个命令将在接口 "eth0" 上监听并显示捕获到的数据包。

  2. 指定捕获数据包的数量:

    tcpdump -c 10
    

    使用 "-c" 参数可以指定捕获的数据包数量。这个例子将只捕获并显示前 10 个数据包。

  3. 显示详细的数据包信息:

    tcpdump -v
    

    使用 "-v" 参数可以显示更详细的数据包信息,包括协议头部的各个字段。

  4. 过滤指定源/目标 IP 地址的数据包:

    tcpdump src 192.168.1.10
    tcpdump dst 192.168.1.20
    

    这些命令将只显示源 IP 地址为 "192.168.1.10" 或目标 IP 地址为 "192.168.1.20" 的数据包。

  5. 过滤指定端口号的数据包:

    tcpdump port 80
    tcpdump udp port 53
    

    这些命令将只显示目标或源端口号为 80 或 UDP 端口号为 53 的数据包。

  6. 保存捕获的数据包到文件:

    tcpdump -w capture.pcap
    

    使用 "-w" 参数可以将捕获到的数据包保存到指定的文件中。你可以在之后使用其他工具对这些数据包进行分析。

这些是 "tcpdump" 命令的一些常见用法和示例。它是一个强大的网络抓包工具,可用于网络故障排除、网络安全分析和网络流量监控等方面。请注意,使用 "tcpdump" 命令需要以 root 权限运行,或者使用适当的用户权限来访问网络接口。同时,需要注意保护捕获到的数据包的隐私和安全性。