Linux 常用命令汇总(四):信息显示 & 用户管理

简介: hostname是一个 Unix/Linux 命令行工具,用于显示或设置系统的主机名dmesg是一个在 Unix-like 系统中常用的命令行工具,用于显示内核缓冲区的消息uptime是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令,用于显示系统已经运行了多长时间,以及当前有多少用户登录和系统负载的平均值stat是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令行工具,用于显示文件或文件系统的状态信息du。

一、信息显示命令
1.1 uname
1.1.1 介绍
uname 是一个 Unix/Linux 命令行工具,用于打印当前系统的信息

1.1.2 使用方法
uname [选项]
1.1.3 参数详解
-a:显示所有信息。
-n:显示网络节点主机名。
-r:显示内核版本号。
-s:显示内核名称。
-m:显示机器硬件名称。
-p:显示处理器类型(不是所有系统都支持)。
-i:显示硬件平台(不是所有系统都支持)。
-o:显示操作系统名称(不是所有系统都支持)。
1.1.4 常见使用案例
1.1.4.1 显示所有信息
uname -a
输出可能类似于:

Linux myhostname 4.4.0-18362-Microsoft #476-Microsoft Mon Oct 14 17:39:00 PST 2019 x86_64 x86_64 x86_64 GNU/Linux
这里,Linux 是内核名称,myhostname 是网络节点主机名,4.4.0-18362-Microsoft 是内核版本号,#476-Microsoft 是内核编译信息,Mon Oct 14 17:39:00 PST 2019 是内核编译日期,x86_64 是机器硬件名称和操作系统类型

1.1.4.2 仅显示内核版本号
uname -r
输出可能是 4.4.0-18362-Microsoft

1.1.4.3 仅显示网络节点主机名
uname -n
输出可能是 myhostname

1.1.5 注意事项
uname 命令提供的信息主要是关于当前运行的 Unix/Linux 系统的,它不会显示任何关于用户或用户进程的信息。
输出的具体格式和内容可能会因不同的 Unix/Linux 发行版而异。
并非所有的选项都在所有系统上可用,这取决于特定的系统实现。
1.2 hostname
1.2.1 介绍
hostname 是一个 Unix/Linux 命令行工具,用于显示或设置系统的主机名

1.2.2 使用方法
1.2.2.1 显示当前主机名
hostname
执行此命令将打印出当前系统的主机名

1.2.2.2 设置主机名
hostname [新主机名]
这个命令将立即更改系统的主机名,但请注意,这并不会永久性地更改 /etc/hostname 文件中的主机名。要永久性地更改主机名,通常还需要编辑 /etc/hostname 文件或使用特定于发行版的命令(如 hostnamectl 在 systemd 系统上)

1.2.3 常见使用案例
1.2.3.1 显示当前主机名
$ hostname
mycomputer
输出将显示当前的主机名,例如 mycomputer

1.2.3.2 临时设置主机名
$ hostname newname
这会将主机名临时更改为 newname,但请注意,这只会影响当前会话和后续启动的进程

1.2.4 注意事项
更改主机名通常需要管理员权限。
在某些系统上,使用 hostname 命令更改的主机名可能不会持久化到系统重启后。对于使用 systemd 的系统,建议使用 hostnamectl 命令来更改和查询主机名。
主机名通常是唯一的,不应与网络上的其他计算机的主机名相同。
在设置主机名时,最好避免使用特殊字符和空格,因为这可能会导致网络通信问题。
1.3 dmesg
1.3.1 介绍
dmesg 是一个在 Unix-like 系统中常用的命令行工具,用于显示内核缓冲区的消息

1.3.2 使用方法
dmesg [选项]
1.3.3 参数详解
-c:清除内核缓冲区。
-n:设置消息级别。
-s:指定缓冲区大小。
-T:以可读的格式显示时间戳。
-H:以可读的格式显示硬件地址。
-r:以原始格式显示消息(不解析硬件地址和时间戳)。
-l 或 --level:指定要显示的最低消息级别(例如:err, warn, notice, info, debug)。
-C:不要清空内核缓冲区(与 -c 相反)。
1.3.4 常见使用案例
1.3.4.1 显示当前内核缓冲区的内容
dmesg
这将打印出内核缓冲区中的所有消息,通常包括从系统启动以来的所有消息

1.3.4.2 显示最新的内核消息
dmesg -n 10
这将仅显示最新的 10 条内核消息

1.3.4.3 以可读的格式显示时间戳
dmesg -T
这将使时间戳以人类可读的格式(例如:[ 0.000000])显示

1.3.4.4 清除内核缓冲区
dmesg -c
这将清除内核缓冲区中的所有消息

1.3.5 注意事项
dmesg 显示的消息数量和内容可能会非常庞大,特别是如果系统已经运行了很长时间。
某些消息可能是关于硬件问题的警告或错误,需要管理员关注。
由于 dmesg 显示的是内核消息,因此通常需要 root 权限才能查看所有消息。
内核消息可能会滚动,特别是在系统启动期间,因此使用 -n 选项来限制显示的消息数量可能很有用。
1.4 uptime
1.4.1 介绍
uptime 是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令,用于显示系统已经运行了多长时间,以及当前有多少用户登录和系统负载的平均值

1.4.2 使用方法
uptime
执行这个命令后,你将看到如下格式的输出:

10:20:15 up 23 days, 12:34, 2 users, load average: 0.05, 0.10, 0.15
这里的输出内容通常分为四部分:

当前时间(10:20:15):这是命令执行时的系统时间。

系统运行时间(up 23 days, 12:34):这显示了系统已经运行了多长时间。它会显示天数、小时和分钟。

登录用户数(2 users):这显示了当前有多少用户登录到了系统。

系统负载平均值(load average: 0.05, 0.10, 0.15):这是系统在过去1分钟、5分钟和15分钟内的平均负载。负载值表示在系统上运行的任务的数量,包括正在运行的任务和等待运行的任务(在队列中)。负载值越低,通常意味着系统的性能越好。然而,这个值也取决于系统的核心数量和配置。

1.4.3 注意事项
uptime 命令不需要任何参数或选项,直接运行即可。
在某些系统上,uptime 的输出格式可能略有不同,但基本的信息都是相同的。
如果你想要查看更详细的信息,比如各个进程的CPU使用情况,你可能需要使用其他命令,如 top 或 htop。
1.5 stat
1.5.1 介绍
stat 是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令行工具,用于显示文件或文件系统的状态信息

1.5.2 使用方法
stat [选项] 文件名
1.5.3 参数解析
-c:使用指定的格式字符串显示信息。
-f:显示文件系统状态,而不是文件状态(在支持的文件系统上)。
-L:如果指定了符号链接,则显示符号链接本身的信息,而不是链接指向的文件的信息。
-t:以简洁格式显示信息。
-x:显示文件的扩展属性。
1.5.4 常见使用案例
1.5.4.1 显示文件状态
stat filename.txt
这将显示 filename.txt 文件的详细信息,包括:

文件类型(例如:常规文件)
文件权限(例如:-rw-r--r--)
硬链接数
所有者

文件大小
最后访问时间
最后修改时间
最后状态改变时间
文件所在的设备、inode 号和块大小等信息
1.5.4.2 使用指定格式显示信息
stat -c "%a %n" filename.txt
这将仅显示文件的访问权限和文件名

1.5.5 注意事项
stat 命令需要文件系统的支持,并且不是所有文件系统都提供完整的 stat 信息。
如果你没有足够的权限查看某些文件的信息,stat 命令可能会返回 "Permission denied" 的错误消息。
在某些系统上,stat 命令可能具有不同的选项和行为,因此最好查阅你所使用的系统的手册页(通过 man stat 命令)以获取准确的信息。
1.6 du
1.6.1 介绍
du 是 "disk usage" 的缩写,是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令行工具,用于估算文件和目录占用的磁盘空间大小

1.6.2 使用方法
du [选项] [文件或目录]
1.6.3 参数详解
-a:显示所有文件和目录的大小。
-h:以人类可读的格式(例如 KB, MB, GB)显示大小。
-s:显示指定目录的总计大小,而不列出子目录的大小。
--max-depth=N:指定目录的遍历深度。
--exclude=模式:排除匹配指定模式的文件和目录。
1.6.4 常见使用案例
1.6.4.1 显示当前目录及其子目录的磁盘使用情况
du -h
这将显示当前目录及其所有子目录的磁盘使用情况,以人类可读的格式(如 MB 或 GB)表示

1.6.4.2 显示指定目录的总磁盘使用情况
du -sh /path/to/directory
这将显示 /path/to/directory 目录的总磁盘使用情况,以人类可读的格式表示

1.6.4.3 排除特定类型的文件
du -ah --exclude='*.log' | sort -rh | head -n 10
这将显示当前目录下所有文件的大小(包括隐藏文件),排除所有 .log 结尾的文件,并将结果按大小降序排序,最后显示前 10 个最大的文件

1.6.5 注意事项
du 命令可能需要一些时间来扫描大型目录或文件系统,因为它需要遍历所有文件和目录。
如果你在扫描非常大的目录或文件系统时遇到性能问题,可以考虑使用 --max-depth 选项来限制扫描的深度。
du 命令显示的磁盘使用情况可能包括已被删除但仍被进程占用的文件(也称为“僵尸文件”或“悬空文件”)。这些文件在磁盘上实际已经不存在,但仍然会被 du 命令计算在内。
1.7 df
1.7.1 介绍
df 是 "disk filesystem" 的缩写,是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令行工具,用于显示磁盘文件系统的整体磁盘使用情况

1.7.2 使用方法
df [选项] [文件或目录]
1.7.3 参数详解
-h:以人类可读的格式(例如 KB, MB, GB)显示大小。
-T:显示文件系统类型。
-a:显示所有文件系统,包括通常不显示的特殊文件系统。
--total:显示所有文件系统的总计行。
-i:以 inode 模式显示信息,而不是以块为单位。
1.7.4 常见使用案例
1.7.4.1 显示所有文件系统的磁盘使用情况
df -h
这将列出所有已挂载的文件系统,并显示它们的总空间、已用空间、可用空间以及已用百分比,以人类可读的格式显示

1.7.4.2 显示特定挂载点的磁盘使用情况
df -h /home
这将只显示 /home 挂载点的磁盘使用情况

1.7.4.3 显示所有文件系统的磁盘使用情况,包括总计
df -h --total
这将显示所有文件系统的磁盘使用情况,并在最后添加一行总计

1.7.5 注意事项
df 命令显示的是文件系统的整体磁盘使用情况,而不是单个文件或目录。
如果你在查看磁盘使用情况时发现空间不足,可能是因为文件系统已满,或者是因为有文件被删除但仍被进程占用(这种情况下,df 显示的可用空间不会增加,但 du 会显示这些空间已被使用)。
在某些情况下,df 和 du 显示的值可能会有所不同,这通常是由于文件系统保留了一些空间供超级用户使用,或者因为文件系统损坏等原因。
1.8 top
1.8.1 介绍
top 是 Unix 和类 Unix 系统(如 Linux)中的一个动态实时监控系统状态的命令行工具

1.8.2 使用方法
top
直接运行 top 命令将打开一个交互式的界面,该界面会定期更新以显示系统的最新状态

1.8.3 主要显示内容
系统整体状态:包括系统时间、已运行时间、登录用户数、平均负载等。
任务(进程)信息:按照 CPU 使用率排序的进程列表,包括进程 ID(PID)、用户、CPU 使用率、内存使用率、虚拟内存使用量、常驻内存使用量、启动时间、终端类型以及命令行等。
CPU 状态:显示 CPU 的使用率,包括用户空间使用率、系统使用率、空闲率以及等待 I/O 的时间等。
内存状态:显示系统的内存使用情况,包括总量、已用、空闲以及缓存和缓冲区的使用量等。
1.8.4 常见操作
P:按 CPU 使用率对进程进行排序。
M:按内存使用率对进程进行排序。
k:杀死一个进程。系统会提示你输入进程 ID,然后询问你是否真的要杀死该进程。
r:改变一个进程的优先级。系统会提示你输入进程 ID 和新的优先级值。
q:退出 top。
1.8.5 注意事项
top 显示的 CPU 使用率和内存使用情况都是实时的,因此你会看到这些值在不断变化。
top 提供了很多交互命令,可以通过按不同的键来切换显示模式、排序方式或执行其他操作。你可以通过按 h 键或查看 top 的手册页来获取更多关于这些交互命令的信息。
top 主要用于系统性能监控和故障排查。通过观察 CPU 使用率、内存使用情况以及各个进程的资源占用情况,你可以发现系统的瓶颈或异常行为,从而采取相应的措施进行优化或调试。
1.9 free
1.9.1 介绍
free 是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令行工具,用于显示系统的内存使用情况

1.9.2 使用方法
free [-b|-k|-m|-g] [-o] [-s delay] [-c count] [-t] [-V]
1.9.3 参数详解
-b:以字节为单位显示信息。
-k:以千字节为单位显示信息(默认)。
-m:以兆字节为单位显示信息。
-g:以吉字节为单位显示信息。
-o:不显示缓冲区调节列。
-s delay:每隔 delay 秒更新一次输出。
-c count:更新 count 次后退出。
-t:显示 Linux 内存管理信息(包括总内存、已用内存、空闲内存、缓存和缓冲等)。
-V:显示版本信息。
1.9.4 常见使用案例
1.9.4.1 显示系统的内存使用情况
free -m
这将以兆字节为单位显示系统的内存使用情况,包括总内存、已用内存、空闲内存、共享内存、缓冲和缓存等信息

1.9.4.2 持续监控内存使用情况
free -s 5 -c 10
1.9.5 注意事项
free 命令显示的内存使用情况仅代表某一时刻的快照,因此它提供的是瞬时信息。
在 free 命令的输出中,buff/cache 列表示被用作缓冲和缓存的内存量。这部分内存是可以被系统快速回收用于其他目的的,因此不应该被视为完全已用的内存。
free 命令显示的空闲内存(free 列)仅代表完全未被使用的内存量,而实际上系统可以利用的内存量通常还包括 buff/cache 列中的内存。
当系统内存不足时,Linux 会使用交换空间(swap space)来作为内存的补充。free 命令也会显示交换空间的使用情况。
1.10 date
1.10.1 介绍
date 是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令行工具,用于显示或设置系统的当前日期和时间

1.10.2 使用方法
date [选项] [+格式]
1.10.3 参数详解
-d 或 --date:显示指定字符串所表示的日期和时间,而不是当前日期和时间。
-s 或 --set:设置系统的当前日期和时间。
-u 或 --utc:显示或设置协调世界时(UTC)。
-r 或 --reference:显示指定文件的最后修改日期和时间。
-I 或 --iso-8601:以 ISO 8601 格式显示日期和时间。
+格式:指定日期和时间的输出格式。
1.10.4 常见使用案例
1.10.4.1 显示当前日期和时间
date
这将显示当前的日期和时间,格式通常为 Wed Sep 16 14:30:00 UTC 2020(取决于系统的区域设置)

1.10.4.2 显示特定格式的日期和时间
date +"%Y-%m-%d %H:%M:%S"
这将显示当前日期和时间,格式为 2020-09-16 14:30:00

1.10.4.3 设置系统的当前日期和时间
sudo date -s "2020-09-16 14:30:00"
这将把系统的当前日期和时间设置为 2020-09-16 14:30:00。请注意,通常需要超级用户权限(使用 sudo)来更改系统日期和时间

1.10.4.4 显示文件的最后修改时间
date -r filename
这将显示指定文件 filename 的最后修改日期和时间

1.10.5 注意事项
date 命令的默认输出格式取决于系统的区域设置(locale)。
使用 -s 选项设置系统日期和时间时,需要确保提供的时间戳是有效的,并且符合系统的日期和时间格式要求。
在某些系统上,更改系统日期和时间可能需要特定的权限或配置。
1.11 cal
1.11.1 介绍
cal 是 Unix 和类 Unix 系统(如 Linux)中的一个命令行工具,用于显示日历

1.11.2 使用方法
cal [选项] [[月] 年]
1.11.3 参数详解
-1 或 --month:显示一个月的日历。
-3 或 --three-month:显示三个月的日历(默认)。
-y 或 --year:显示一年的日历。
-j 或 --julian:显示朱利安日历。
-s 或 --sunday:将星期日作为一周的第一天(默认是星期一)。
-m 或 --monday:将星期一作为一周的第一天。
-w 或 --week:显示周数和周几。
1.11.4 常见使用案例
1.11.4.1 显示当前月份的日历
cal
这将显示当前月份的日历,默认是三个月的视图

1.11.4.2 显示特定月份的日历
cal 7 2020
这将显示 2020 年 7 月的日历

1.11.4.3 显示一年的日历
cal -y 2020
这将显示 2020 年全年的日历

1.11.4.4 将星期日作为一周的第一天显示
cal -s -m 7 2020
这将显示 2020 年 7 月的日历,并将星期日作为一周的第一天

1.11.5 注意事项
cal 命令的默认输出格式是三个月的日历视图,从当前月份开始。
你可以通过指定月份和年份来查看不同月份的日历。
使用 -s 和 -m 选项可以改变一周的第一天的设置。
cal 命令的输出是纯文本的,因此它可以在终端中直接显示,不需要任何额外的图形界面。
二、用户管理命令
2.1 useradd
2.1.1 介绍
useradd 是 Unix 和类 Unix 系统(如 Linux)中用于创建新用户的命令行工具

2.1.2 使用方法
useradd [选项] 用户名
2.1.3 参数详解
-c<备注>:加上备注文字,备注文字会保存在 passwd 的备注栏位中。
-d<登入目录>:指定用户登入时的目录。
-e<有效期限>:指定账号的有效期限。
-f<缓冲天数>:在账号过期后多少天即关闭该账号。
-g<群组>:指定用户所属的群组。
-G<群组>:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的 shell。
-u:指定用户 ID。
2.1.4 常见使用案例
2.1.4.1 创建一个新用户
useradd newuser
这将在系统中创建一个名为 newuser 的新用户,通常会自动在 /home 下创建一个同名的目录作为用户的主目录,并且会使用系统默认的 shell(通常是 /bin/bash)

2.1.4.2 创建一个新用户并指定主目录和 shell
useradd -d /home/myuser -s /bin/zsh myuser
这将创建一个名为 myuser 的新用户,其主目录为 /home/myuser,并使用 /bin/zsh 作为 shell

2.1.4.3 创建一个系统账号
useradd -r systemuser
这将创建一个名为 systemuser 的系统账号,这种账号通常用于运行系统服务,没有登录权限

2.1.5 注意事项
创建用户时,通常需要超级用户(root)权限。
用户的 ID(UID)和组 ID(GID)通常是自动分配的,除非使用 -u 和 -g 选项指定。
新用户的密码需要在创建后使用 passwd 命令单独设置。
创建用户时,要确保用户名符合系统规范,并且不与现有用户冲突。
2.2 usermod
2.2.1 介绍
usermod 是 Unix 和类 Unix 系统(如 Linux)中用于修改现有用户属性的命令行工具

2.2.2 使用方法
usermod [选项] 用户名
2.2.3 参数详解
-c<备注>:修改用户帐号的备注文字。
-d<登入目录>:修改用户登入时的目录。
-e<有效期限>:修改帐号的有效期限。
-f<缓冲天数>:在帐号过期后多少天即关闭该帐号。
-g<群组>:修改用户所属的群组。
-G<群组>:修改用户所属的附加群组。
-l<帐号名称>:修改用户帐号名称。
-L:锁定用户密码,使密码无效。
-s:修改用户登入后所使用的 shell。
-u:修改用户 ID。
-U:解除密码锁定。
2.2.4 常见使用案例
2.2.4.1 修改用户的主目录
usermod -d /home/newdir olduser
这将把 olduser 的主目录更改为 /home/newdir

2.2.4.2 修改用户的默认 shell
usermod -s /bin/zsh user1
这将把 user1 的默认 shell 更改为 /bin/zsh

2.2.4.3 修改用户所属的组
usermod -g newgroup user2
这将把 user2 移动到 newgroup 组

2.2.4.4 修改用户名
usermod -l newusername oldusername
这将把 oldusername 更改为 newusername

2.2.4.5 锁定用户账户
usermod -L lockeduser
这将锁定 lockeduser 的账户,使其不能登录

2.2.5 注意事项
修改用户属性通常需要超级用户(root)权限。
在修改用户的主目录时,需要确保新的目录存在,并且具有适当的权限。
修改用户名时,原有的用户目录通常不会自动重命名,需要手动处理。
锁定用户账户并不会删除用户,只是阻止其登录。
2.3 userdel
2.3.1 介绍
userdel 是 Unix 和类 Unix 系统(如 Linux)中用于删除用户账户及其相关文件的命令行工具

2.3.2 使用方法
userdel [选项] 用户名
2.3.3 参数详解
-f:强制删除用户,即使该用户当前已登录。
-r:删除用户的主目录以及邮件存储等。
2.3.4 常见使用案例
2.3.4.1 删除用户账户及其主目录
userdel -r username
这将删除名为 username 的用户账户,同时删除其主目录(通常位于 /home/username)以及与其相关的邮件存储等

2.3.4.2 仅删除用户账户
userdel username
这将仅删除名为 username 的用户账户,而不删除其主目录或其他相关文件

2.3.5 注意事项
删除用户账户通常需要超级用户(root)权限。
在使用 -r 选项删除用户的主目录时,请确保已备份任何重要数据,因为该操作将永久删除目录及其内容。
如果用户当前已登录,userdel 命令将不会删除该用户账户,除非使用 -f 选项强制删除。
在删除用户账户之前,请确保没有其他服务或进程正在使用该用户的身份运行。
2.4 groupadd
2.4.1 介绍
groupadd 是 Unix 和类 Unix 系统(如 Linux)中用于创建新组的命令行工具

2.4.2 使用方法
groupadd [选项] 组名
2.4.3 参数详解
-g GID:指定组 ID(GID)。
-o:允许使用与现有组同名的组。
-r:创建系统组。
-f:如果组已存在,则忽略错误。
2.4.4 常见使用案例
2.4.4.1 创建一个新组
groupadd newgroup
这将创建一个名为 newgroup 的新组

2.4.4.2 创建一个具有指定 GID 的新组
groupadd -g 1001 newgroup
这将创建一个名为 newgroup 的新组,并将其 GID 设置为 1001

2.4.4.3 创建一个系统组
groupadd -r systemgroup
这将创建一个名为 systemgroup 的系统组,通常用于运行系统服务

2.4.5 注意事项
创建新组通常需要超级用户(root)权限。
组名必须遵循系统规范,不能包含不允许的字符,并且不能与现有组名冲突。
使用 -g 选项时,确保指定的 GID 是唯一且未被其他组使用的。
2.5 passwd
2.5.1 介绍
passwd 是 Unix 和类 Unix 系统(如 Linux)中用于管理用户密码的命令行工具

2.5.2 使用方法
passwd [选项] [用户名]
2.5.3 参数详解
-d:删除用户的密码,使账户密码为空。
-e:账户过期,强制用户在下次登录时更改密码。
-f:禁用账户密码,账户将不能被用来登录。
-i:在密码过期后多少天禁用账户。
-l:锁定账户,使密码无效。
-s:显示账户当前的密码状态。
-u:解锁账户,允许使用密码登录。
2.5.4 常见使用案例
2.5.4.1 更改当前用户的密码
passwd
直接输入 passwd 会提示当前用户输入新密码并确认

2.5.4.2 更改指定用户的密码
passwd username
作为管理员,可以使用此命令来更改名为 username 的用户的密码

2.5.4.3 锁定用户账户
passwd -l username
这将锁定 username 的账户,使密码无效,用户将不能登录

2.5.4.4 解锁用户账户
passwd -u username
这将解锁 username 的账户,允许用户再次使用密码登录

2.5.5 注意事项
更改密码通常需要用户自己的权限,除非你是以超级用户(root)身份运行 passwd 命令来更改其他用户的密码。
密码应定期更改,并遵循强密码策略,以确保系统安全。
锁定和解锁账户不会删除或更改密码,只是使密码有效或无效。
2.6 chage
2.6.1 介绍
chage 是 Unix 和类 Unix 系统(如 Linux)中用于查看或修改用户账户密码策略的命令行工具

2.6.2 使用方法
chage [选项] 用户名
2.6.3 参数详解
-l:列出用户当前的密码策略信息。
-m:设置密码到期前多少天开始提醒用户更改密码。
-M:设置密码的最大有效期。
-W:设置密码过期后多少天内账户将被禁用。
-I:设置账户过期后多少天账户将被删除。
-E:设置账户到期日期。
2.6.4 常见使用案例
2.6.4.1 列出用户的密码策略信息
chage -l username
这将显示名为 username 的用户的密码策略,包括密码到期时间、账户到期时间等信息

2.6.4.2 设置密码到期前提醒天数
chage -m 10 username
这将为 username 设置密码到期前 10 天提醒用户更改密码

2.6.4.3 设置密码的最大有效期
chage -M 90 username
这将为 username 设置密码的最大有效期为 90 天

2.6.4.4 设置密码过期后禁用账户的天数
chage -W 7 username
这将为 username 设置密码过期后 7 天内账户将被禁用

2.6.5 注意事项
修改用户密码策略通常需要超级用户(root)权限。
密码策略的设置可以帮助系统管理员强制执行密码更改和账户过期的策略,以增加系统的安全性。
在设置密码策略时,需要确保设置的参数符合组织的安全要求。
2.7 id
2.7.1 介绍
id 是 Unix 和类 Unix 系统(如 Linux)中用于显示实际和有效的用户 ID(UID)和组 ID(GID)的命令行工具

2.7.2 使用方法
id [选项] [用户名]
2.7.3 参数详解
-u:仅打印有效用户 ID。
-g:仅打印有效组 ID。
-G:打印用户所属的所有组的 ID。
-n:与 -G 一起使用,打印组名而不是组 ID。
-r:打印实际用户 ID 和组 ID 而不是有效 ID。
2.7.4 常见使用案例
2.7.4.1 显示当前用户的用户 ID、组 ID 和所属的所有组
id
执行此命令将输出类似于以下内容的信息

uid=1000(username) gid=1000(username) groups=1000(username),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
2.7.4.2 仅显示当前用户的用户 ID
id -u
2.7.4.3 显示指定用户的用户 ID、组 ID 和所属的所有组
id anotheruser
2.7.4.4 显示当前用户所属的所有组的组名
id -Gn
2.7.5 注意事项
如果不指定用户名,id 命令默认显示当前用户的 ID 和组信息。
用户可以通过 id 命令查看自己的权限和所属组,这有助于了解自己在系统上的身份和访问限制。
2.8 su
2.8.1 介绍
su 是 Unix 和类 Unix 系统(如 Linux)中用于切换用户身份的命令行工具

2.8.2 使用方法
su [选项] [用户名]
2.8.3 参数详解
-c:执行指定的命令后退出,不启动新的 shell。
-l 或 --login:模拟目标用户的登录过程,加载相应的环境变量和配置文件。
-s:使用指定的 shell 来执行命令,而不是默认的 shell。
2.8.4 常见使用案例
2.8.4.1 切换到另一个用户(需要输入目标用户的密码)
su username
系统会提示你输入 username 的密码。成功验证后,你将切换到该用户账户,并且命令行提示符会改变以反映新的用户身份

2.8.4.2 以登录方式切换到另一个用户
su - username
使用 - 选项会加载 username 的环境变量和配置文件,如 .bashrc、.bash_profile 或 .profile,这通常用于确保命令行环境符合用户的期望

2.8.4.3 以指定 shell 切换到另一个用户
su -s /bin/zsh username
这将以 /bin/zsh 作为 shell 切换到 username 用户

2.8.4.4 执行单一命令后退出
su -c "command_to_run" username
这将以 username 用户的身份执行 command_to_run,然后立即退出

2.8.5 注意事项
切换到另一个用户时,通常需要输入目标用户的密码。
使用 su 命令时要格外小心,因为它允许你获得目标用户的所有权限,这包括执行系统级命令和访问敏感数据。
切换用户后,你会获得该用户的所有环境变量和权限,这可能会影响你的操作。
2.9 sudo
2.9.1 介绍
sudo 是 Unix 和类 Unix 系统(如 Linux)中用于允许系统管理员让普通用户执行一些或全部的 root(或其他用户)命令的程序

2.9.2 使用方法
sudo [选项] 命令
2.9.3 参数详解
-h:显示帮助信息。
-v:更新用户的时间戳,不执行任何命令。
-l:列出用户可以执行的命令。
-u 用户名:以指定用户的身份执行命令。
-i:以登录 shell 的方式执行命令。
-s:以当前 shell 的方式执行命令。
-p:更改提示信息。
-k:使时间戳无效,下次执行 sudo 时需要输入密码。
2.9.4 常见使用案例
2.9.4.1 以 root 权限执行命令
sudo ls /root
这将提示你输入当前用户的密码(如果当前用户被授权执行此操作),然后以 root 用户的权限执行 ls /root 命令

2.9.4.2 列出用户可执行的命令
sudo -l
这将显示当前用户有权执行的命令列表

2.9.4.3 以特定用户身份执行命令
sudo -u anotheruser somecommand
这将使 somecommand 以 anotheruser 的身份执行

2.9.4.4 以登录 shell 的方式执行命令
sudo -i
这将启动一个新的 shell,并以 root 用户的身份运行

2.9.5 注意事项
sudo 的配置存储在 /etc/sudoers 文件中,通常通过 visudo 工具进行编辑。
默认情况下,sudo 会在用户第一次尝试使用它时要求他们输入密码,以验证身份。
使用 sudo 时要小心,因为它允许你以其他用户的身份执行强大的命令,这可能会影响到系统的安全性和完整性。

相关文章
|
1天前
|
Shell Linux 程序员
【Linux】Shell 命令以及运行原理
【Linux】Shell 命令以及运行原理
|
2天前
|
Linux
【超全】Linux命令思维导图总结 值得收藏
【超全】Linux命令思维导图总结 值得收藏
9 0
|
2天前
|
Linux 文件存储 Windows
Linux常用的基础命令
Linux常用的基础命令
11 1
|
3天前
|
运维 关系型数据库 MySQL
day03-Linux运维-Xshell优化和Linux系统命令入门(2)
day03-Linux运维-Xshell优化和Linux系统命令入门(2)
day03-Linux运维-Xshell优化和Linux系统命令入门(2)
|
3天前
|
运维 Linux Shell
day03-Linux运维-Xshell优化和Linux系统命令入门(1)
day03-Linux运维-Xshell优化和Linux系统命令入门(1)
day03-Linux运维-Xshell优化和Linux系统命令入门(1)
|
3天前
|
运维 程序员 Linux
运维最全Linux 基本防火墙设置和开放端口命令,2024年最新程序员如何自我学习和成长
运维最全Linux 基本防火墙设置和开放端口命令,2024年最新程序员如何自我学习和成长
|
3天前
|
运维 Ubuntu 安全
运维最全linux 命令行操作串口_linux串口命令(2),2024年最新Linux运维源码的Binder权限是如何控制
运维最全linux 命令行操作串口_linux串口命令(2),2024年最新Linux运维源码的Binder权限是如何控制
运维最全linux 命令行操作串口_linux串口命令(2),2024年最新Linux运维源码的Binder权限是如何控制
|
3天前
|
运维 Linux Perl
运维最全linux 命令行操作串口_linux串口命令(1),21年Linux运维面经分享
运维最全linux 命令行操作串口_linux串口命令(1),21年Linux运维面经分享
运维最全linux 命令行操作串口_linux串口命令(1),21年Linux运维面经分享
|
3天前
|
消息中间件 运维 Linux
运维最全Linux 命令大全之scp命令_linux scp 指令(1),2024年最新从消息中间件看分布式系统的多种套路
运维最全Linux 命令大全之scp命令_linux scp 指令(1),2024年最新从消息中间件看分布式系统的多种套路
|
3天前
|
运维 Linux 程序员
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你
最全查看Linux系统状态脚本_linux查询所有服务器信息的脚本,墙都不扶就服你