Linux 曾经是许多新人的“噩梦”,当你真的面对它、了解它时你会发现命令的操作方式才是最纯粹最高效的操作方式。Linux并不复杂,只是不符合人类对实物操作的“直觉”,只要适应一段时间就好。这里梳理了我们在使用linux时常用的命令和这些命令的用法与使用场景,我们不用全部死记硬背,只需简单过目留个印象,并在遇到相同使用场景时来速查便可。只要稍微有一点计算机的基础、经过几次Linux的实践,你会发现它并没有那么可怕,反而会觉得它很高效,很直接,享受这个过程吧~
如果内容对大家有帮助,请大家【点赞】【收藏】,给予作者鼓励,感谢阅读。
10 磁盘和文件系统
mount- 挂载文件系统或设备到指定的挂载点
在 Linux 命令行中,"mount" 命令用于将文件系统挂载到指定的挂载点,使其可被访问和使用。它可以用于挂载本地文件系统、网络文件系统(如 NFS、SMB)以及其他类型的存储设备。下面是一些常见的 "mount" 命令的用法和代表性的例子:
-
挂载本地文件系统:
mount /dev/sdb1 /mnt这个命令将将设备 "/dev/sdb1" 上的文件系统挂载到 "/mnt" 目录。通过这个挂载点,你可以访问和操作该文件系统中的文件。
-
挂载网络文件系统(NFS):
mount -t nfs 192.168.1.100:/share /mnt/nfs这个命令将将位于 IP 地址 "192.168.1.100" 上的 NFS 共享目录 "/share" 挂载到 "/mnt/nfs" 目录。你可以通过 "/mnt/nfs" 访问和操作共享的文件。
-
挂载网络文件系统(SMB):
mount -t cifs //192.168.1.200/share /mnt/smb -o username=user,password=pass这个命令将将位于 IP 地址 "192.168.1.200" 上的 SMB 共享目录 "/share" 挂载到 "/mnt/smb" 目录。使用 "-o" 参数提供用户名和密码来进行身份验证。
-
以只读方式挂载文件系统:
mount -o ro /dev/sdb1 /mnt使用 "-o" 参数指定 "ro"(read-only)选项,以只读方式挂载文件系统。这样,该文件系统将只能被读取,而不能进行写操作。
-
挂载后自动检测文件系统类型:
mount -a这个命令将根据 "/etc/fstab" 文件中的配置,自动挂载所有未挂载的文件系统。它会自动检测文件系统类型,并使用相应的挂载选项进行挂载。
这些是 "mount" 命令的一些常见用法和示例。它是管理文件系统挂载的重要工具,允许你将不同类型的存储设备和文件系统连接到文件系统树中,以便访问和使用它们的内容。请注意,使用 "mount" 命令通常需要 root 权限或适当的用户权限。同时,要确保在挂载和卸载文件系统时,遵循正确的操作步骤,以防止数据损坏或丢失。
umount - 卸载已挂载的文件系统或设备
在 Linux 命令行中,"umount" 命令用于卸载已挂载的文件系统或设备。它允许你从文件系统树中移除挂载点,以便安全地断开与文件系统或设备的连接。下面是一些常见的 "umount" 命令的用法和代表性的例子:
-
卸载文件系统:
umount /mnt这个命令将卸载挂载点 "/mnt" 上的文件系统。确保在执行卸载操作前,没有任何进程正在使用该文件系统。
-
强制卸载文件系统:
umount -f /mnt使用 "-f" 参数强制卸载文件系统。这将终止正在使用文件系统的所有进程,并强制卸载它。请谨慎使用此选项,因为它可能导致数据丢失或文件系统损坏。
-
卸载设备:
umount /dev/sdb1这个命令将卸载设备 "/dev/sdb1" 上挂载的文件系统。在卸载前,请确保没有进程正在访问该设备上的文件系统。
-
卸载所有挂载的文件系统:
umount -a这个命令将卸载所有已挂载的文件系统。它会遍历 "/etc/mtab" 文件中的所有挂载点,并依次卸载它们。请注意,这将断开与所有挂载文件系统的连接,因此要谨慎使用。
这些是 "umount" 命令的一些常见用法和示例。它是管理文件系统卸载的重要工具,允许你安全地断开与文件系统或设备的连接。在卸载文件系统时,请确保没有任何进程在使用它,并确保按照正确的步骤进行操作,以避免数据损坏或丢失。请注意,使用 "umount" 命令通常需要 root 权限或适当的用户权限。
fsck- 文件系统检查和修复工具
在 Linux 命令行中,"fsck" 命令用于检查和修复文件系统错误。它可以扫描并修复文件系统中的逻辑和物理错误,以确保文件系统的一致性和完整性。下面是一些常见的 "fsck" 命令的用法和代表性的例子:
-
检查并修复文件系统:
fsck /dev/sda1这个命令将检查并修复设备 "/dev/sda1" 上的文件系统。如果文件系统有错误,"fsck" 将尝试自动修复它们。请注意,通常需要以单用户模式或从启动介质中运行 "fsck" 才能修复根文件系统。
-
强制检查文件系统:
fsck -f /dev/sdb1使用 "-f" 参数强制检查文件系统。即使文件系统似乎没有错误,也会进行检查和修复。请谨慎使用此选项,因为它可能导致数据丢失或文件系统损坏。
-
指定文件系统类型:
fsck -t ext4 /dev/sdc1使用 "-t" 参数指定文件系统类型。这个命令将检查 "/dev/sdc1" 上的 ext4 文件系统。如果你知道文件系统的类型,指定它可以加快检查的速度。
-
打印文件系统信息而不执行修复:
fsck -n /dev/sdd1使用 "-n" 参数可以打印文件系统的信息,而不执行实际的修复操作。这对于预览文件系统错误以及确定需要执行何种修复操作很有用。
这些是 "fsck" 命令的一些常见用法和示例。它是维护和修复文件系统的重要工具,用于检查和修复文件系统错误以确保数据的完整性和可用性。在运行 "fsck" 命令之前,请确保你知道正确的文件系统设备,并在必要时备份数据。运行 "fsck" 命令通常需要 root 权限或适当的用户权限。
dd - 数据复制工具
在 Linux 命令行中,"dd" 命令是一个强大的块设备复制工具,用于创建、转换和复制文件和设备。它可以在不同的设备之间进行数据块级别的复制,并且具有广泛的用途。下面是 "dd" 命令的一些常见用法和代表性的例子:
-
复制文件:
dd if=input_file of=output_file这个命令将输入文件 "input_file" 的内容复制到输出文件 "output_file" 中。你可以使用完整的文件路径或相对路径来指定文件。
-
复制设备:
dd if=/dev/sda of=/dev/sdb这个命令将设备 "/dev/sda" 的内容复制到设备 "/dev/sdb" 中。请注意,这是一个非常强大的操作,请确保你知道输入和输出设备的正确标识,以免造成数据丢失。
-
指定块大小:
dd if=input_file of=output_file bs=4k使用 "bs" 参数可以指定复制操作的块大小。在上面的示例中,块大小被设置为 4KB。通过调整块大小,可以改变复制过程的速度和效率。
-
显示复制进度:
dd if=input_file of=output_file status=progress使用 "status=progress" 参数可以显示复制进度。这对于大文件或长时间复制操作很有用,可以让你了解复制的当前状态和进度。
-
创建空文件:
dd if=/dev/zero of=output_file bs=1M count=100这个命令将使用 "/dev/zero" 设备的内容创建一个大小为 100MB 的空文件 "output_file"。通过调整 "count" 参数和块大小,你可以创建所需大小的空文件。
这些是 "dd" 命令的一些常见用法和示例。请注意,在运行 "dd" 命令时要非常小心,确保你知道正确的输入和输出设备,并避免造成数据丢失。使用 "dd" 命令时,请仔细阅读相关文档,并确保了解每个选项和参数的含义及其影响。
dumpe2fs- 显示 ext2/ext3/ext4 文件系统的详细信息
在 Linux 命令行中,"dumpe2fs" 命令用于显示 ext2、ext3、ext4 文件系统的详细信息。它允许你查看文件系统的各种属性,包括块大小、文件系统状态、超级块信息、inode 表、块组描述符以及其他与文件系统相关的元数据。下面是 "dumpe2fs" 命令的一些常见用法和代表性的例子:
-
显示文件系统的基本信息:
dumpe2fs /dev/sda1这个命令将显示设备 "/dev/sda1" 上的文件系统的基本信息,包括文件系统版本、状态、块大小、块组数量等。
-
显示超级块信息:
dumpe2fs -h /dev/sda1使用 "-h" 参数可以显示设备 "/dev/sda1" 上文件系统的超级块信息,包括文件系统创建时间、最后挂载时间、最后检查时间等。
-
显示文件系统的块组描述符:
dumpe2fs -g /dev/sda1使用 "-g" 参数可以显示设备 "/dev/sda1" 上文件系统的块组描述符信息,包括每个块组的起始块号、块位图和 inode 位图的位置等。
-
显示 inode 表的信息:
dumpe2fs -i /dev/sda1使用 "-i" 参数可以显示设备 "/dev/sda1" 上文件系统的 inode 表信息,包括 inode 数量、空闲 inode 数量、使用的 inode 数量等。
这些是 "dumpe2fs" 命令的一些常见用法和示例。请注意,"dumpe2fs" 命令需要以 root 用户或具有足够权限的用户身份运行,以便访问文件系统的底层信息。在使用该命令时,请确保你指定正确的设备,并仔细阅读输出以了解文件系统的详细信息。
dump- 创建文件系统备份
在 Linux 命令行中,"dump" 命令用于备份文件系统。它可以创建文件系统的完整备份,包括文件、目录和文件属性。"dump" 命令通常与文件系统的 "fsck" 命令一起使用,用于创建一致性的备份以供后续恢复。下面是 "dump" 命令的一些常见用法和代表性的例子:
-
创建文件系统的完整备份:
dump -0u -f /backup/backup.dump /dev/sda1这个命令将创建设备 "/dev/sda1" 上文件系统的完整备份,并将其保存到 "/backup/backup.dump" 文件中。选项 "-0u" 表示创建完整备份,而 "-f" 用于指定备份文件的路径。
-
创建增量备份:
dump -1u -f /backup/incremental.dump /dev/sda1使用 "-1u" 选项可以创建设备 "/dev/sda1" 上文件系统的增量备份。增量备份只包含自上次备份以来发生更改的文件和目录。
-
恢复文件系统备份:
restore -r -f /backup/backup.dump"dump" 命令创建的备份文件可以使用 "restore" 命令进行恢复。上述命令将恢复 "/backup/backup.dump" 文件中的备份到原始文件系统。
这些是 "dump" 命令的一些常见用法和示例。请注意,"dump" 命令需要以 root 用户或具有足够权限的用户身份运行,并且对于大型文件系统,备份可能需要一些时间和磁盘空间。在使用该命令时,请仔细阅读相关文档,并确保正确地指定备份目标和文件路径。
fdisk - 磁盘分区工具
在 Linux 命令行中,"fdisk" 命令用于创建、修改和管理磁盘分区。它是一个功能强大的工具,可以对磁盘进行分区、格式化和设置引导标志。下面是 "fdisk" 命令的一些常见用法和代表性的例子:
-
列出磁盘分区信息:
fdisk -l这个命令会列出系统中所有可用磁盘的分区信息,包括分区号、起始扇区、大小和文件系统类型等。
-
创建新的磁盘分区:
fdisk /dev/sdb n p <Enter> <Enter> w上述命令将进入与磁盘 "/dev/sdb" 相关联的 fdisk 交互模式。按下 "n" 创建新分区,然后选择主分区或扩展分区,按下回车键确认默认分区编号和起始扇区,最后使用 "w" 保存并退出。
-
删除磁盘分区:
fdisk /dev/sdb d <partition_number> w上述命令将进入与磁盘 "/dev/sdb" 相关联的 fdisk 交互模式。按下 "d" 删除分区,然后输入要删除的分区编号,最后使用 "w" 保存并退出。
-
更改磁盘分区类型:
fdisk /dev/sdb t <partition_number> <partition_type_code> w上述命令将进入与磁盘 "/dev/sdb" 相关联的 fdisk 交互模式。按下 "t" 更改分区类型,然后输入要更改的分区编号和相应的分区类型代码,最后使用 "w" 保存并退出。
这些是 "fdisk" 命令的一些常见用法和示例。请注意,使用 "fdisk" 命令对磁盘进行分区是一项敏感的操作,需要谨慎操作以避免数据丢失。在使用该命令时,请仔细阅读相关文档,并确保对分区操作有清晰的理解。
parted- 磁盘分区工具
在 Linux 命令行中,"parted" 命令用于创建、调整和管理磁盘分区。它提供了一个交互式的界面,可以进行分区操作、调整分区大小、创建新分区等。下面是 "parted" 命令的一些常见用法和代表性的例子:
-
列出磁盘分区信息:
parted /dev/sdb print这个命令将列出磁盘 "/dev/sdb" 的分区信息,包括分区号、起始位置、大小和文件系统类型等。
-
创建新的磁盘分区:
parted /dev/sdb mkpart primary ext4 0% 10G上述命令将在磁盘 "/dev/sdb" 上创建一个新的主分区,文件系统类型为 ext4,起始位置为磁盘的起始位置,大小为 10GB。
-
删除磁盘分区:
parted /dev/sdb rm <partition_number>上述命令将删除磁盘 "/dev/sdb" 上指定分区编号的分区。
-
调整磁盘分区大小:
parted /dev/sdb resizepart <partition_number> 20GB上述命令将调整磁盘 "/dev/sdb" 上指定分区编号的分区大小为 20GB。
-
切换到不同的磁盘:
parted select /dev/sdc上述命令将切换到磁盘 "/dev/sdc" 并进入交互模式,以便对其进行分区操作。
这些是 "parted" 命令的一些常见用法和示例。请注意,使用 "parted" 命令对磁盘进行分区是一项敏感的操作,需要谨慎操作以避免数据丢失。在使用该命令时,请仔细阅读相关文档,并确保对分区操作有清晰的理解。
mkfs - 创建文件系统
在 Linux 命令行中,"mkfs" 命令用于创建文件系统在指定的分区或设备上。它支持多种文件系统类型,如 ext4、XFS、FAT32 等。下面是 "mkfs" 命令的一些常见用法和代表性的例子:
-
创建 ext4 文件系统:
mkfs.ext4 /dev/sdb1上述命令将在 "/dev/sdb1" 分区上创建一个 ext4 文件系统。
-
创建 XFS 文件系统:
mkfs.xfs /dev/sdc1上述命令将在 "/dev/sdc1" 分区上创建一个 XFS 文件系统。
-
创建 FAT32 文件系统:
mkfs.fat -F32 /dev/sdd1上述命令将在 "/dev/sdd1" 分区上创建一个 FAT32 文件系统。
-
创建 Swap 分区:
mkswap /dev/sde1上述命令将在 "/dev/sde1" 分区上创建一个 Swap 分区。
这些是 "mkfs" 命令的一些常见用法和示例。请注意,在使用该命令时,请确保选择正确的分区或设备,并确认您了解所选文件系统的特性和限制。创建文件系统时,通常会丢失分区上的数据,请务必提前备份重要的数据。
partprobe- 通知内核重新读取分区表
在 Linux 命令行中,"partprobe" 命令用于通知内核重新读取分区表,以便立即生效对磁盘分区的更改,而无需重启系统。当您在运行时更改了磁盘分区表(例如创建、删除或调整分区),可以使用 "partprobe" 命令更新内核的分区信息。下面是 "partprobe" 命令的一些常见用法和代表性的例子:
-
更新所有磁盘的分区表:
partprobe上述命令将通知内核重新读取所有磁盘的分区表。
-
更新指定设备的分区表:
partprobe /dev/sdb上述命令将通知内核重新读取 "/dev/sdb" 设备的分区表。
-
更新多个设备的分区表:
partprobe /dev/sdc /dev/sdd上述命令将通知内核重新读取 "/dev/sdc" 和 "/dev/sdd" 设备的分区表。
请注意,"partprobe" 命令只是通知内核重新读取分区表,并不会对磁盘进行实际的更改。它适用于在运行时进行磁盘分区的更改,以便立即生效而无需重启系统。使用 "partprobe" 命令时,请确保具有足够的权限以执行该操作。
e2fsck- ext2/ext3/ext4 文件系统检查和修复工具
在 Linux 命令行中,"e2fsck" 命令用于检查和修复 ext2、ext3、ext4 文件系统的一致性和完整性。它会扫描文件系统中的块和节点,并执行必要的修复操作,以确保文件系统的健康状态。下面是 "e2fsck" 命令的一些常见用法和代表性的例子:
-
检查指定设备上的文件系统并打印错误信息(不进行修复):
e2fsck -n /dev/sda1上述命令将检查 "/dev/sda1" 设备上的文件系统,并输出错误信息,但不进行修复操作。
-
检查并自动修复指定设备上的文件系统:
e2fsck -y /dev/sdb1上述命令将检查 "/dev/sdb1" 设备上的文件系统,并自动修复发现的错误,不需要用户交互确认。
-
在文件系统检查前,先对设备进行只读模式挂载:
e2fsck -f -n /dev/sdc1上述命令将先将 "/dev/sdc1" 设备以只读模式挂载,然后对文件系统进行检查,但不进行修复操作。
-
强制进行文件系统检查,即使文件系统看起来没有错误:
e2fsck -f /dev/sdd1上述命令将强制对 "/dev/sdd1" 设备上的文件系统进行检查,并进行必要的修复。
请注意,执行 "e2fsck" 命令时,应确保要检查的文件系统未被挂载。如果要检查根文件系统,最好先使用 Live CD 或救援模式引导系统,并将要检查的文件系统卸载。对于大型文件系统或有损坏的文件系统,"e2fsck" 命令可能需要较长时间才能完成。使用 "e2fsck" 命令时,请确保具有足够的权限以执行该操作。
mkswap - 创建交换分区
在 Linux 命令行中,"mkswap" 命令用于创建交换分区。交换分区是一种特殊的分区,用于存储操作系统在物理内存不足时临时存储数据。下面是 "mkswap" 命令的一些常见用法和代表性的例子:
-
创建一个交换分区:
mkswap /dev/sdb1上述命令将在 "/dev/sdb1" 设备上创建一个交换分区。
-
创建带有指定标签的交换分区:
mkswap -L swap1 /dev/sdc1上述命令将在 "/dev/sdc1" 设备上创建一个交换分区,并将其标签设置为 "swap1"。
-
创建指定大小的交换分区:
mkswap -c -b 4096 -p 10 /dev/sdd1上述命令将在 "/dev/sdd1" 设备上创建一个交换分区,使用 4KB 的页大小,并设置为优先级 10。
-
创建交换文件:
mkswap /path/to/swapfile上述命令将在指定路径下创建一个交换文件,用作交换分区。
请注意,执行 "mkswap" 命令时,应确保要创建交换分区的设备没有被挂载。如果要将交换分区添加到系统中,需要在 "/etc/fstab" 文件中进行相应的配置。创建交换分区后,可以使用 "swapon" 命令将其激活,使其生效。例如:
swapon /dev/sdb1
以上命令将激活 "/dev/sdb1" 设备上的交换分区。
swapon - 启用交换分区
在 Linux 命令行中,"swapon" 命令用于激活交换分区,使其可以用作系统的虚拟内存。下面是 "swapon" 命令的一些常见用法和代表性的例子:
-
激活交换分区:
swapon /dev/sdb1上述命令将激活 "/dev/sdb1" 设备上的交换分区。
-
激活多个交换分区:
swapon /dev/sdb1 /dev/sdc1上述命令将同时激活 "/dev/sdb1" 和 "/dev/sdc1" 设备上的交换分区。
-
激活交换文件:
swapon /path/to/swapfile上述命令将激活指定路径下的交换文件,使其作为交换分区生效。
-
激活所有配置的交换分区:
swapon -a上述命令将激活 "/etc/fstab" 文件中配置的所有交换分区。
-
显示当前激活的交换分区:
swapon -s上述命令将显示当前激活的交换分区列表及其相关信息。
请注意,使用 "swapon" 命令激活交换分区后,系统将使用交换分区作为虚拟内存的一部分。可以使用 "swapoff" 命令来停用交换分区。例如,"swapoff /dev/sdb1" 将停用 "/dev/sdb1" 设备上的交换分区。
swapoff- 禁用交换分区
在 Linux 命令行中,"swapoff" 命令用于停用已激活的交换分区,从而将其从系统的虚拟内存中移除。下面是 "swapoff" 命令的一些常见用法和代表性的例子:
-
停用交换分区:
swapoff /dev/sdb1上述命令将停用 "/dev/sdb1" 设备上的交换分区。
-
停用多个交换分区:
swapoff /dev/sdb1 /dev/sdc1上述命令将同时停用 "/dev/sdb1" 和 "/dev/sdc1" 设备上的交换分区。
-
停用所有激活的交换分区:
swapoff -a上述命令将停用所有当前激活的交换分区。
请注意,使用 "swapoff" 命令停用交换分区后,系统将不再使用该交换分区作为虚拟内存。可以使用 "swapon" 命令来重新激活交换分区。例如,"swapon /dev/sdb1" 将重新激活 "/dev/sdb1" 设备上的交换分区。
sync - 同步数据到磁盘
在Linux中,sync 命令用于将文件系统的缓冲区数据刷新到磁盘中,以确保数据的持久性。它的主要作用是将内存中的写缓冲区中的数据同步到磁盘中,以防止数据丢失或损坏。以下是 sync 命令的用法说明和一些代表性的例子:
用法:sync [OPTION]...
- 没有特定选项的
sync命令会将所有挂载的文件系统的缓冲区数据刷新到磁盘中。 -f, --file-systems:只刷新指定文件系统的缓冲区数据。可以指定文件系统的名称或挂载点路径。-d, --data:只刷新数据缓冲区,不刷新文件系统的元数据缓冲区。-i, --inode:只刷新文件系统的元数据缓冲区,不刷新数据缓冲区。
示例:
-
刷新所有文件系统的缓冲区数据:
sync -
刷新特定文件系统的缓冲区数据:
sync -f /dev/sda1 -
只刷新数据缓冲区,不刷新元数据缓冲区:
sync -d -
只刷新元数据缓冲区,不刷新数据缓冲区:
sync -i
sync 命令通常在系统关机之前使用,以确保所有数据都被正确写入磁盘。它也可以在特定操作之后使用,例如在执行重要的文件操作或备份之后,以确保数据的持久性。
请注意,sync 命令只是将数据从缓冲区刷新到磁盘,它并不保证数据的完全写入和同步。因此,在执行磁盘操作之前,建议使用适当的命令(如 umount)卸载文件系统或等待磁盘操作完成,以确保数据的完整性和一致性。
resize2fs- 调整 ext2/ext3/ext4 文件系统的大小
在Linux中,resize2fs 命令用于调整 ext2、ext3 和 ext4 文件系统的大小。它可以增加或缩小文件系统的大小,以适应分区的变化或存储需求的变化。以下是 resize2fs 命令的用法说明和一些代表性的例子:
用法:resize2fs [OPTION]... DEVICE [SIZE]
DEVICE:指定要调整大小的设备或分区。SIZE:可选参数,指定新的文件系统大小。它可以是以块为单位的大小,也可以是带有单位(如K、M、G)的人类可读格式。
示例:
-
增加文件系统的大小到指定的设备上最大可用大小:
resize2fs /dev/sda1 -
增加文件系统的大小到指定的设备上的特定大小(例如,100GB):
resize2fs /dev/sda1 100G -
缩小文件系统的大小到指定的设备上的特定大小(例如,50GB):
resize2fs /dev/sda1 50G -
强制缩小文件系统的大小,即使目标大小比文件系统中的数据还要小:
resize2fs -f /dev/sda1 50G
resize2fs 命令在调整文件系统大小之前会检查设备上的文件系统一致性,并在需要时自动调用 e2fsck 命令进行修复。请注意,在调整文件系统大小之前,务必备份重要的数据,并确保对数据进行充分测试和验证。
请注意,调整文件系统大小是一个潜在的危险操作,可能会导致数据丢失或文件系统损坏。在执行 resize2fs 命令之前,请确保了解分区和文件系统的当前状态,并仔细阅读相关文档和指南。建议在生产环境中谨慎使用,并在必要时备份数据和进行测试。
11 权限相关
chmod- 修改文件或目录的权限
在Linux中,chmod 命令用于更改文件或目录的权限。它允许用户授予或撤销文件的读、写和执行权限,以及设置特殊权限如 SUID、SGID 和 sticky bit。以下是 chmod 命令的用法说明和一些代表性的例子:
用法:chmod [OPTION]... MODE[,MODE]... FILE...
MODE:权限模式,可以是八进制或符号模式。FILE:要更改权限的文件或目录。
符号模式示例:
-
授予文件所有者读、写和执行权限,仅授予组和其他用户读权限:
chmod u=rwx,g=r,o=r file.txt -
为目录及其所有内容授予所有者和组写权限以及其他用户读权限:
chmod u+rw,g+w,o+r directory/ -
撤销其他用户的执行权限:
chmod o-x file.txt -
授予所有用户执行权限,并设置 SUID 位:
chmod a+x,su file.txt
八进制模式示例:
-
授予所有者读、写和执行权限,组和其他用户只有读权限:
chmod 644 file.txt -
授予所有用户读和执行权限,并设置 SGID 位:
chmod 2755 directory/ -
授予所有用户读、写和执行权限,并设置 sticky bit:
chmod 1777 directory/
常用选项:
-R:递归地更改目录及其内容的权限。-v:显示详细的输出,列出每个更改的文件名。-c:仅在文件的权限发生更改时才显示输出。
请注意,使用 chmod 命令需要足够的权限。只有文件的所有者或超级用户(root)可以更改文件的权限。在使用 chmod 命令时,应谨慎操作,确保了解文件和目录的当前权限,并仔细考虑对文件权限的更改。
chown- 更改文件或目录的所有者
在Linux中,chown 命令用于更改文件或目录的所有者和所属组。它允许用户将文件的所有权转移给其他用户或更改文件的所属组。以下是 chown 命令的用法说明和一些代表性的例子:
用法:chown [OPTION]... [OWNER][:[GROUP]] FILE...
OWNER:新的所有者。GROUP:新的所属组(可选)。FILE:要更改所有者和所属组的文件或目录。
示例:
-
将文件的所有权转移给不同的用户:
chown newuser file.txt -
将文件的所有权和所属组同时更改为不同的用户和组:
chown newuser:newgroup file.txt -
只更改文件的所属组:
chown :newgroup file.txt -
递归地更改目录及其内容的所有者和所属组:
chown -R newuser:newgroup directory/
常用选项:
-R:递归地更改目录及其内容的所有者和所属组。-v:显示详细的输出,列出每个更改的文件名。-c:仅在文件的所有者或所属组发生更改时才显示输出。
请注意,使用 chown 命令需要足够的权限。只有文件的所有者、超级用户(root)或具有特权的用户才能更改文件的所有者和所属组。在使用 chown 命令时,请确保了解文件和目录的当前所有者和所属组,并仔细考虑对文件所有权的更改。
chgrp- 更改文件或目录的所属组
在Linux中,chgrp 命令用于更改文件或目录的所属组。它允许用户将文件的所属组更改为其他组。以下是 chgrp 命令的用法说明和一些代表性的例子:
用法:chgrp [OPTION]... GROUP FILE...
GROUP:新的所属组。FILE:要更改所属组的文件或目录。
示例:
-
将文件的所属组更改为不同的组:
chgrp newgroup file.txt -
递归地更改目录及其内容的所属组:
chgrp -R newgroup directory/ -
使用符号链接(软链接)来更改链接文件的所属组而不是目标文件:
chgrp -h newgroup symlink
常用选项:
-R:递归地更改目录及其内容的所属组。-v:显示详细的输出,列出每个更改的文件名。-c:仅在文件的所属组发生更改时才显示输出。
请注意,使用 chgrp 命令需要足够的权限。只有文件的所有者、超级用户(root)或具有特权的用户才能更改文件的所属组。在使用 chgrp 命令时,请确保了解文件和目录的当前所属组,并仔细考虑对所属组的更改。
umask- 设置新创建文件的默认权限掩码
在Linux中,umask 命令用于设置文件和目录的默认权限掩码。默认权限掩码确定新创建文件和目录的权限。它指示操作系统在创建新文件或目录时要从文件系统默认权限中屏蔽哪些权限位。以下是 umask 命令的用法说明和一些代表性的例子:
用法:umask [OPTION] [VALUE]
OPTION:可选参数。VALUE:新的权限掩码值。如果未提供该值,则显示当前的权限掩码。
示例:
-
显示当前的权限掩码值:
umask -
设置权限掩码为
022:umask 022 -
设置权限掩码为
007:umask 007
常用选项:
- 无选项:显示当前的权限掩码值。
-S:以符号形式显示权限掩码(例如u=rwx,g=rwx,o=rx)。-p:以八进制形式显示权限掩码(例如022)。
权限掩码的值由三个八进制数字表示,分别对应于所有者、组和其他用户的权限。每个数字表示可以屏蔽的权限位。常见的权限位为:
4:读权限2:写权限1:执行权限
因此,如果权限掩码的值为 022,表示默认情况下,新创建的文件将具有所有者读写权限,组读权限,其他用户读权限。请注意,权限掩码会与默认权限相反,因此需要指定要屏蔽的权限位。
使用 umask 命令时,建议根据安全需求和最佳实践选择适当的权限掩码值。
12 查看登录信息
whoami-显示当前用户
在Linux命令中,whoami 命令用于查找当前登录用户的用户名。它返回当前用户的有效用户名。以下是whoami命令的用法说明和一些代表性的例子:
用法:whoami
示例:
-
显示当前登录用户的用户名:
whoami -
在脚本中使用
whoami命令来获取当前用户的用户名:#!/bin/bash username=$(whoami) echo "当前用户为:$username"
whoami命令不需要任何参数或选项,它只返回当前用户的用户名。该命令通常用于脚本或需要根据当前用户执行不同操作的情况下。
who-显示登录用户
在Linux命令中,who命令用于显示当前登录系统的用户信息。它会列出登录到系统的用户列表,并显示每个用户的用户名、终端、登录时间等详细信息。以下是who命令的用法说明和一些代表性的例子:
用法:who [选项]
常用选项:
-a:显示更详细的信息,包括系统启动时间和闲置时间。-b:显示系统的启动时间。-r:显示当前运行级别。-H:显示列标题。-q:仅显示登录用户的数量。-s:仅显示用户名和登录时间。
示例:
-
显示当前登录用户的列表:
who -
显示当前登录用户的数量:
who -q -
显示系统的启动时间:
who -b -
显示更详细的用户信息,包括启动时间和闲置时间:
who -a -
仅显示用户名和登录时间:
who -s
who命令可以提供关于当前登录用户的有用信息,如用户名、终端、登录时间等。它对于系统管理员来说是一个很有用的工具,可以帮助他们了解当前系统的状态和用户活动情况。
w-显示活动用户
在Linux命令中,w命令用于显示当前登录系统的用户信息以及他们正在做的活动。它会列出登录到系统的用户列表,并显示每个用户的用户名、终端、登录时间、运行时间、当前执行的命令等详细信息。以下是w命令的用法说明和一些代表性的例子:
用法:w [选项] [用户名]
常用选项:
-h:以简洁格式显示输出结果,省略列标题。-s:仅显示当前登录用户的摘要信息,包括用户名、终端、登录时间、运行时间。-f:显示完整的输出信息,包括用户名、终端、远程主机、登录时间、运行时间、当前执行的命令。
示例:
-
显示当前登录用户的列表及其详细信息:
w -
以简洁格式显示当前登录用户的列表:
w -h -
仅显示当前登录用户的摘要信息:
w -s -
显示指定用户的信息:
w username
w命令提供了更详细的用户信息,包括用户的活动、终端、登录时间、运行时间等。它对于系统管理员来说是一个很有用的工具,可以帮助他们了解当前系统的用户活动情况,监控系统的使用情况,以及识别可能存在的问题。
last-显示最近登录用户
在Linux命令中,last命令用于显示系统中最近登录的用户列表和登录历史记录。它读取并显示/var/log/wtmp文件中的内容,该文件记录了用户登录和注销的信息。以下是last命令的用法说明和一些代表性的例子:
用法:last [选项] [用户名]
常用选项:
-n <行数>:指定要显示的登录记录行数,默认为全部显示。-f <文件>:指定要读取的登录记录文件,默认为/var/log/wtmp。-x:显示更多详细的信息,包括系统关机和重启的记录。-w:显示记录中的IP地址和主机名。
示例:
-
显示最近的登录记录:
last -
显示指定用户的登录记录:
last username -
显示最近10条登录记录:
last -n 10 -
显示指定登录记录文件的内容:
last -f /path/to/file -
显示更详细的登录记录信息:
last -x
last命令显示了用户登录和注销的时间、终端、IP地址、主机名等信息。它对于系统管理员来说是一个有用的工具,可以帮助他们了解用户的登录行为、追踪安全事件、排查问题等。请注意,last命令需要root权限才能查看完整的登录历史记录。
lastlog-显示最近登录记录
在Linux命令中,lastlog命令用于显示系统中所有用户最后一次登录的信息。它读取并显示/var/log/lastlog文件中的内容,该文件记录了用户最后一次登录的时间、终端和IP地址等信息。以下是lastlog命令的用法说明和一些代表性的例子:
用法:lastlog [选项] [用户名]
常用选项:
-b <时间>:指定起始时间,只显示在该时间之后登录的用户。-t <时间>:指定结束时间,只显示在该时间之前登录的用户。
示例:
-
显示所有用户最后一次登录的信息:
lastlog -
显示指定用户最后一次登录的信息:
lastlog username -
显示在指定时间之后登录的用户信息:
lastlog -b "2022-01-01" -
显示在指定时间之前登录的用户信息:
lastlog -t "2022-12-31"
lastlog命令会显示用户的登录名称、登录时间、登录位置等信息。它对于系统管理员来说是一个有用的工具,可以帮助他们追踪用户的最后一次登录情况,检查用户活动,以及了解系统的使用情况。请注意,lastlog命令需要root权限才能查看完整的登录信息。
users-显示登录用户
在Linux命令中,users命令用于显示当前登录系统的用户列表。它会读取/var/run/utmp文件中的登录记录,并列出当前活动的用户。以下是users命令的用法说明和一些代表性的例子:
用法:users [选项]
常用选项:
-q:仅显示用户数量,而不显示用户名列表。-o:显示用户列表,以逗号分隔。
示例:
-
显示当前登录系统的用户列表:
users输出可能类似于:
user1 user2 user3 -
仅显示当前登录系统的用户数量:
users -q输出为用户数量,例如:
3 -
显示当前登录系统的用户列表,并以逗号分隔:
users -o输出为逗号分隔的用户名列表,例如:
user1,user2,user3
users命令对于查看当前系统上活动的用户非常有用。它可以帮助管理员了解系统的使用情况,例如查看有多少用户同时登录,以及这些用户是谁。注意,users命令仅显示当前登录系统的用户信息,不包括过去的登录记录。
finger-显示用户信息
在Linux命令中,finger命令用于查看关于用户的信息,包括登录状态、终端信息、最近登录时间等。它可以提供用户的详细信息,如用户名、真实姓名、登录shell、登录时间等。以下是finger命令的用法说明和一些代表性的例子:
用法:finger [选项] [用户名]
常用选项:
-l:显示详细信息,包括用户的真实姓名、登录shell、最近登录时间等。-s:显示简要信息,包括用户的登录状态和登录时间。-m:显示用户的邮件信息,包括未读邮件的数量和邮件摘要。-p:显示用户的计划任务。
示例:
-
显示用户的详细信息:
finger -l username该命令将显示指定用户的详细信息,包括真实姓名、登录shell、登录时间等。
-
显示用户的简要信息:
finger -s username该命令将显示指定用户的简要信息,包括登录状态和登录时间。
-
显示用户的邮件信息:
finger -m username该命令将显示指定用户的邮件信息,包括未读邮件的数量和邮件摘要。
-
显示用户的计划任务:
finger -p username该命令将显示指定用户的计划任务。
finger命令可以帮助管理员或用户获取其他用户的信息,例如了解用户的登录状态、联系方式、计划任务等。请注意,某些系统可能限制普通用户对finger命令的访问权限,因此可能需要以管理员身份运行该命令或进行其他配置才能正常使用。