今天继续讲解history命令的用法和用户及组管理。
一、history命令
1.作用
history命令:用于显示历史记录和执行过的指令命令。history命令读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
history命令:是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量 HISTSIZE进行控制。默认是不显示命令的执行时间,命令的执行时间,history 已经记录,只是没有显示。
注:如想查询某个用户在系统上执行了什么命令,可以使用root用户身份登录系统,检查用户主目录下的“.bash_history”文件,该文件记录了用户所使用的命令和历史信息。
root用户查看路径为/root/.bash_history
普通用户查看路径为/home/user/.bash_history
2.常用参数
- history [n] 显示n条历史命令
- -a 把当前的历史命令记录追加到历史命令文件中
- -c 清空历史命令列表
- -w 把当前缓冲区内存写入历史命令文件,并且覆盖原来内容
3.举例
- history [n] 显示n条历史命令,例:显示最近的5条命令:
- !n 重新执行第n条命令,例:重新执行第1条命令:
- !ping 执行最近用到的以ping 开头的命令
- !! 重新执行上一条命令
二、用户管理
1.linux系统中的三种用户
- root用户:uid 是区分用户的唯一标志,root用户的uid是0
- 系统用户:大多数系统用户无法登陆,uid范围从1-999,系统账号的shell使用/sbin/nologin
- 普通用户:普通用户的uid范围从1000-60000
2.用户信息介绍
- 用户默认配置信息存放在:/etc/login.defs
- 用户的基本信息存放在 /etc/passwd 文件中
- 用户密码等安全信息保存 在:/etc/shadow中
3.创建用户
添加用户:使用 useradd 命令,常用选项 :
- -u 指定用户id号
- -d 指定用户家目录位置
- -g 指定用户基本组
- -G 指定用户附加组
- -s 指定用户使用的shell解释器
[root@rhel8 ~]# useradd laowang //创建用户
[root@rhel8 ~]# id laowang //查看用户
4.设置用户密码
使用passwd命令,命令格式:passwd 选项 用户名
常用选项有:
- -S 查看密码信息
- -l 锁定用户密码
- -u 解锁用户密码
- -d 删除密码
5.修改用户属性
使用 usermod 修改以存在的用户属性
命令格式:usermod 选项… 用户名
常用选项有:
- -u 修改用户uid
- -d 修改用户家目录
- -g 修改用户基本组
- -G 修改用户附加组
- -s 修改用户登录的解释器
三、用户组管理
1.关于用户组的说明
- 用户的主要组(primary group):用户必须属于一个且只有一个主组,默认创建用户时会自动创建 和用户名同名的组,做为用户的主要组,由于此组中只有一个用 户,又称为私有组;
- 用户的附加组(supplementary group): 一个用户可以属于零个或 多个辅助组,附属组
- 存放组账户信息的文件:/etc/group 文件,
[root@rhel8 ~]# cat /etc/group
- 存放组密码信息的文件:/etc/gshadow文件
2.添加组
groupadd 命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中 /etc/group 文件存放组账户信息
3.修改组属性
groupmod命令用于更改组ID和组名称 命令格式:groupmod 选项 组名,常用选项有:
- -g 修改组ID
- -n 修改组名
- groupmod -g 组ID 组名
- groupmod -n 新组名 原组名
[root@localhost ~]# groupadd centos8 //增加组centos8
[root@localhost ~]# cat /etc/group //查看centos8的组id,组id为1002
centos8:x:1002:
[root@localhost ~]# groupmod 1004 centos8 //修改centos8的组id为1004
[root@localhost ~]# cat -n /etc/group //验证组id的修改结果,已改为1004
71 centos8:x:1004:
[root@localhost ~]# groupmod -n centos88 centos8 //修改centos8名称为centos88
[root@localhost ~]# cat -n /etc/group //验证修改结果,已改为centos88
71 centos88:x:1004:
4.删除组
groupdel命令用于删除群组,若该组中仍有某户存在,必须先删除 这些用户后,才能删除组。
命令格式:groupdel 组名
[root@localhost ~]# groupdel centos88 //删除组centos88
[root@rhel8 ~]# grep centos88 /etc/group //确认结果,已经查不到centos88这个组