快速上手Linux核心命令:Linux用户相关命令
Posted xiezhr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速上手Linux核心命令:Linux用户相关命令相关的知识,希望对你有一定的参考价值。
前言
上一篇中已经预告,我们这篇主要说一说Linux中用户相关的命令。
可能各位小伙伴用的Windows会比较多一点,在Windows操作系统中,我们知道有Administrator用户,Administrator 是Windows系统中的管理员用户,有着最高的权限。
用户登录Administrator后可以创建Gust等用户,修改密码并且给Gust用户分配相应的权限。
同样的在Linux中,root就相当于Administrator用户,具有着最高权限。登录root 用户可以创建用户、修改用户密码、给用户分配角色等等。
下面思维导图中列出了我们需要掌握的19个命令
useradd 创建用户
1、简介
useradd 命令用户创建新的用户或者更改用户信息
2、原理
3、语法格式
useradd [参数选项] [用户名]
或
useradd -D [参数选项]
4、参数说明
① 不加选项-D参数
参数选项 | 参数说明 |
---|---|
-c comment | 加上备注信息,会保存到passwd备注栏中(第五列) |
-d home_dir | 新用户每次登录时使用的家目录 |
-e expire_date | 用户终止日期 |
-f inactive_days | 用户过期几日后永久停权 |
-g initial_group | 指定用户对应的用户组。用户组必须是系统现在已存在的名词 |
-G group,[...] | 定义此用户为多个不同组的成员。每个用户组使用逗号(,)分割 |
-m | 用户目录如不存在则自动建立 |
-M | 不建立家目录,优先于、etc/login.defs文件设定。【创建虚拟用户时一般不需要建立家目录,部署应用服务时则需要创建虚拟用户】 |
-n | 默认情况下用户的用户组和用户名称是相同的。通过该参数,就不会生成与用户名一样的用户组了 |
-s shell | 用户登录后使用的Shell名称。默认不填写,系统会使用配置文件(/etc/default/useradd)中的预设值 |
-u uid | 用户ID值。这个值是唯一的 |
② 加-D选项参数
参数选项 | 参数说明 |
---|---|
-b defalut_home | 定义用户家目录的基本目录,当用户家目录不存在时,此目录将作为家目录生效 |
-e defalut_expire_date | 用户账号停止日期 |
-f defalut_inactive | 用户过期几日后停权 |
-g defalut_group | 新用户起始用户组名或ID。用户组名必须为现已存在的名称 |
-s default_shell | 用户登录后使用Shell名称 |
5、实践操作
① 不加任何参数添加用户
# 创建xiezhrspace 用户
[root@xiezhr ~]# useradd xiezhrspace
# /home/ 路径下新生成一个xiezhrspace 目录。这个就是xiezhrspace用户的家目录
[root@xiezhr ~]# ls -ld /home/xiezhrspace
drwx------ 2 xiezhrspace xiezhrspace 4096 Aug 29 23:05 /home/xiezhrspace
在前面我们说过创建一个新用户会在/etc/shadow、/etc/group 和/etc/gshsdow 文件中生成相关信息,具体是不是这样的呢?
我们去看一看(●\'◡\'●)
# 在创建用户时候没有指定密码,但是shadow还是生成了一行信息
[root@xiezhr ~]# grep -w xiezhrspace /etc/shadow
xiezhrspace:!!:19233:0:99999:7:::
# 创建用户时,默认会创建与用户名同名的用户组
[root@xiezhr ~]# grep -w xiezhrspace /etc/group
xiezhrspace:x:1002:
#组密码文件中也会增加一条信息
[root@xiezhr ~]# grep -w xiezhrspace /etc/gshadow
xiezhrspace:!::
② 创建一个组,并将新建用户归于这个组
# 创建一个gid 为808 的用户组
[root@xiezhr ~]# groupadd -g 808 xiezhrgroup
# 创建一个uid为908的用户xietest,并将用户归于xiezhrgroup组
[root@xiezhr ~]# useradd -g xiezhrgroup -u 908 xietest
# 查看用户信息
[root@xiezhr ~]# id xietest
uid=908(xietest) gid=808(xiezhrgroup) groups=808(xiezhrgroup)
③ -M -s参数的使用(在生产环境中部署Nginx、MySQL等服务经常使用)
# -M 不创建见目录
# -s 指定登录后的Shell
# /sbin/nologin 表示禁止登陆
[root@xiezhr ~]# useradd -M -s /sbin/nologin xiaofang
[root@xiezhr ~]# ls -ld /home/xiaofang
ls: cannot access /home/xiaofang: No such file or directory
[root@xiezhr ~]# grep -w xiaofang /etc/passwd
xiaofang:x:1003:1003::/home/xiaofang:/sbin/nologin
/etc/passwd 文件说明
xiaofang | x | 1003 | 1003 | /home/xiaofang | /sbin/nologin | |
---|---|---|---|---|---|---|
用户名称 | 账号密码 | 账号UID | 账号组GID | 用户说明 | 用户家目录 | shell解释器 |
usermod 修改用户信息
1、简介
usermod 命令用于修改系统已经存在的用户账号信息
2、语法格式
usermod [参数选项] [用户名]
3、参数选项
参数 | 参数说明 |
---|---|
-c comment | 修改用户password文件中用户的说明栏,与useradd -c 功能相同 |
-d home_dir | 修改用户的家目录 与useradd -d 功能相同 |
-e expire_date | 修改用户终止日期 与useradd -e 功能相同 |
-f inactive_days | 修改用户过期后几日永久停权 与useradd -f 功能相同 |
-g initial_group | 修改用户对应的用户组 与useradd -g 功能相同 |
-G group,[......] | 修改此用户为多个不同组的成员 与useradd -G功能相同 |
-m | 用户目录如果不存在则自动建立 |
-M | 不建立用户家目录。一般创建虚拟用户时不建立家目录。不是nginx、redis等服务是需要创建虚拟用户 |
-n | 默认情况下,用户的用户组与用户的名称相同 |
-s shell | 修改用户登入后使用的Shell名称 与useradd -s 功能相同 |
-u uid | 修改用户的ID值 与useradd -u 功能相同 |
-a | 追加用户到用户组 仅与-G参数连用 |
-l | 修改用户账号名称 |
-L | 锁定用户密码,不让用户改密码 |
-U | 解除密码锁定 |
4、实践操作
将前面创建的xiezhr 用户的用户注释修改为“测试用户”,UID 修改为888,归属修改为用户组root、xiezhr 成员,其Shell类型为/sbin/nologin,设置家目录为/home/xiezhr 用户过期时间为2022-10-02 ,过期后15天停权
[root@xiezhr ~]# usermod -u 888 -s /sbin/nologin -c "测试用户" -G root -e "2022/10/02" -f 30 -d /home/xiezhr xiezhr
[root@xiezhr ~]# grep -w xiezhr /etc/passwd
xiezhr:x:888:1001:测试用户:/home/xiezhr:/sbin/nologin
[root@xiezhr ~]# id xiezhr
uid=888(xiezhr) gid=1001(xiezhr) groups=1001(xiezhr),0(root)
[root@xiezhr ~]# grep -w xiezhr /etc/shadow
xiezhr:!!:19233:0:99999:7:30:19267:
[root@xiezhr ~]# chage -l xiezhr
Last password change : Aug 29, 2022
Password expires : never
Password inactive : never
Account expires : Oct 02, 2022
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
userdel 删除用户
1、简介
userdel 命令用户删除指定的用户及与该用户相关的文件
2、语法格式
userdel [参属选项] [用户名]
3、参数选项
参数 | 参数说明 |
---|---|
-f | 强制删除用户,即使用户当前登录 |
-r | 删除用户的同时,删除与用户相关的所有文件 |
4、实践操作
① 不加参数删除用户
[root@xiezhr home]# tail -4 /etc/passwd
xiezhr:x:888:1001:测试用户:/home/xiezhr:/sbin/nologin
xiezhrspace:x:1002:1002::/home/xiezhrspace:/bin/bash
xietest:x:908:808::/home/xietest:/bin/bash
xiaofang:x:1003:1003::/home/xiaofang:/sbin/nologin
[root@xiezhr home]# ll /home/xietest/ -ld
drwx------ 2 xietest xiezhrgroup 4096 Aug 29 23:16 /home/xietest/
[root@xiezhr home]# userdel xietest
[root@xiezhr home]# grep -w xietest /etc/passwd
[root@xiezhr home]# ll /home/xietest/ -ld
drwx------ 2 908 xiezhrgroup 4096 Aug 29 23:16 /home/xietest/
② 加 -r 参数删除用户及加目录
[root@xiezhr home]# ls -ld /home/xiezhr001/
drwx------ 2 xiezhr001 xiezhr001 4096 Sep 4 19:50 /home/xiezhr001/
[root@xiezhr home]# grep -w xiezhr001 /etc/passwd
xiezhr001:x:1005:1005::/home/xiezhr001:/bin/bash
[root@xiezhr home]# userdel -r xiezhr001
[root@xiezhr home]# grep -w xiezhr001 /etc/passwd
[root@xiezhr home]# ls -ld /home/xiezhr001/
ls: cannot access /home/xiezhr001/: No such file or directory
注意
- 在实际工作中,尽量不要使用userdel删除用户,只需要在/etc/passwd里注释用户就可以了。
- 在使用-r参数一定要慎重,-r参数会将家目录下所有文件和目录都删除,该过程是不可逆的
groupadd 创建新的用户组
1、简介
groupadd 用于创建新的用户组。实际工作中一般也不用,因为useradd命令在创建用户的时候也会创建一个同名的用户组
2、语法格式
groupadd [参数选项] [用户组]
3、参数选项
参数 | 参数说明 |
---|---|
-g gid | 指定用户组的gid,除非接-o参数,否则ID值唯一且不为负,如果不指定-g参数,则gid从500开始 |
-f | 新增一个账户,强制覆盖一个已存在的组账号 |
4、实践操作
指定gid添加用户组
# 添加GID为123的test1用户组
[root@xiezhr ~]# groupadd -g 123 test
[root@xiezhr ~]# tail -l /etc/group
test:x:123:
[root@xiezhr ~]# tail -l /etc/gshadow
test:!::
groupdel 删除用户组
1、简介
groupdel 命令用户删除指定的用户组,一般不用
2、语法格式
groupdel [用户组]
3、实践操作
删除test用户组
[root@xiezhr ~]# groupdel test
[root@xiezhr ~]# grep -w test /etc/group
passwd 修改用户密码
1、简介
passwd 命令用于修改用户密码及密码过期使劲啊等,工作中会经常用到。
普通用户和超级用户都可以运行passwd命令,普通用户只能更改自身密码,超级用户root则可以设置或修改所有用户的密码
2、语法格式
passwd [参数选项] [用户名]
3、参数选项
参数 | 参数说明 |
---|---|
-k | 为密码已经过期的用户更新有效期 |
-l | 锁定用户,被锁定的用户不能登录。仅root用户有此权限 |
--stdin | 从标准输入读取密码字符串 |
-u | 解除对用户的锁定,仅root用户有此权限 |
-d | 删除用户密码,使密码为空。仅root用户有此权限 |
-e | 是用户密码立即过期,将用户下次登录时强制要求用户修改密码。仅root用户有此权限 |
-n | 设置修改该密码的最短天数 。仅root用户有此权限 |
-x | 设置修改密码的最长天数。仅root用户有此权限 |
-w | 设置用户在密码过期前收到警告信息的天数。仅root用户有此权限 |
-i | 设置密码过期多少天后禁用账户。仅root用户有此权限 |
-S | 显示用户密码相关的简单描述。仅root用户有此权限 |
4、实践操作
① 修改用户自身密码
[root@xiezhr ~]# passwd # 修改root用户自身密码
Changing password for user root.
New password: # 输入修改的密码,系统不会显示
Retype new password: # 再次输入密码
passwd: all authentication tokens updated successfully. # 设置成功了
② 设置及修改普通用户密码
[root@xiezhr ~]# passwd xiezhr
Changing password for user xiezhr.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
③ 显示账号密码信息
[root@xiezhr ~]# passwd -S xiezhr
xiezhr PS 2022-09-05 0 99999 7 30 (Password set, MD5 crypt.)
④一条命令修改密码
[root@xiezhr ~]# echo "123456"|passwd --stdin xiezhr
Changing password for user xiezhr.
passwd: all authentication tokens updated successfully.
⑤ 设置xiezhr用户7天内不能更改密码,60天以后必须修改密码,过期10天通知用户,过期30天后禁止用户登录
[root@xiezhr ~]# passwd -n 7 -x 60 -w 10 -i 30 xiezhr
Adjusting aging data for user xiezhr.
passwd: Success
chage 修改用户密码有效期
1、简介
chage 命令用于查看或修改用户密码有效期
2、语法格式
chage [参数选项] [用户名]
3 、参数选项
参数 | 参数说明 |
---|---|
-d | 设置上一次密码更改的日期 |
-E | 账号过期的日期。日期格式:YYYY-MM-DD |
-I | 设置密码过期多少天后禁用账户 |
-l | 显示账号有效期信息 |
-m | 密码可更改的最小天数。默认为0,即任何时候都可以修改 |
-M | 密码保持有效的最大天数 |
-W | 密码到期前,提前收到警告信息天数 |
4、实践操作 | |
设置xiezhr用户7天内不能更改密码,60天以后必须修改密码,过期10天通知xiezhr 用户,过期30天后禁止用户登录 |
[root@xiezhr ~]# chage -m 7 -M 60 -W 10 -I 30 xiezhr
批量更新用户密码
1、简介
chpasswd 命令用于从标准输入中读取一定格式的用户名、密码来批量更新用户的密码,格式为“用户名:密码“
2、语法格式
chpasswd [参数选项]
3、参数选项
参数 | 参数说明 |
---|---|
-c | 默认格式是明文密码,使用-e参数则需要加密的密码 |
4、实践操作 | |
批量修改密码 |
[root@xiezhr ~]# chpasswd # 输入chpasswd后,回车
xiezhr:123456 # 格式为用户名:密码
testxiezhr:123456 # 一行一个
# 新行按Ctrl+D 结束
su 切换用户
1、简介
su 命令用户将当前用户切换到指定用户或以指定用户的身份执行命令或程序
2、语法格式
su [参数选项] [用户名]
3、参数选项
参数 | 参数说明 |
---|---|
-, -l, --login | 切换用户的同时,将用户的家目录/系统环境等重新按切换后的用户初始化 |
-c | 向Shell 传递单个命令 |
4、实践操作
① 切换到普通用户
# 切换到testxiezhr用户,不用输入密码即可切换
[root@xiezhr ~]# su - testxiezhr
②切换到root用户
# 虽然已经切换到了root用户,但是家目录还是testxiezhr。环境变量还是testxiezhr用户的,**这种切换问题很严重**
[testxiezhr@xiezhr ~]$ su root
Password: # 普通用户切换到root用户需要输入密码
[root@xiezhr testxiezhr]# pwd
/home/testxiezhr
# 正确切换方式
[root@xiezhr testxiezhr]# exit
exit
[testxiezhr@xiezhr ~]$ su - root
Password: # 需要输入密码
Last login: Mon Sep 5 21:13:39 CST 2022 on pts/3
[root@xiezhr ~]# pwd
/root
注意:
[x] "su 用户名" 虽然能切换到对应用户,但切换后的环境变量信息还是切换之前用户的
[√] ** ”su - 用户名“ 不但可以切换到对应用户,还能将环境变量一起切换**
visudo 编辑sudoers文件
1、简介
visudo命令是专门用来编辑 /etc/sudoers这个文件的,同时提供语法检查等功能。 /etc/sudoers文件是sudo命令的配置文件。sudo命令在下一个命令你会看到。而为什么不用vi/vim来直接编辑/etc/sudoers文件呢? 因为如果使用vim 编辑sudoer文件时没有语法校验,编辑错了会导致授权无法生效
2、语法格式
visudo [参数选项]
3、参数选项
参数 | 参数说明 |
---|---|
-c | 手动执行语法检查 |
4、实践操作
①将xiezhr用户提权为root身份,testxiezhr 用户具有添加和删除用户的权限
# 以下命令相当于 vim /etc/sudoers 进行编辑sudoers文件
[root@xiezhr ~]# visudo
#在/etc/sudoers 文件中添加如下权限
xiezhr ALL=(ALL) ALL # 此行时将xiezhr用户提权为root身份
testxiezhr ALL=(ALL) /usr/sbin/useradd, /usr/sbin/userdel # 授予可以以root身份添加和删除用户权限
上面操作说明
待授权的用户或组 | 机器=(授权角色) | 可以执行的命令 |
---|---|---|
testxiezhr | ALL=(ALL) | /usr/sbin/useradd,/usr/sbin/userdel |
② 通过-c参数校验语法是否正确
通过① 我们已经对xiezhr用户和testxiezhr用户做了不同的授权,那么怎么判断授权的语法是否正确呢
[root@xiezhr ~]# visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/90-cloud-init-users: parsed OK
直接root用户下操作不就可以了么?为什么要通过sudo授权呢?
我们希望一个用户具有root权限去干活,但是又不希望这个用户威胁系统安全。
sudo 以另一个用户身份执行命令
1、简介
sudo 命令可以让普通用户拥有超级用户的权限去执行指定的命令或程序。普通用户不需要知道root密码就可以得到授权,授权我们在上面已经说过
2、语法格式
sudo [参数选项]
3、参数选项
参数 | 参数说明 |
---|---|
-l | 列出当前用户可以执行的命令。只有在sudoers 文件里的用户才能使用该选项 |
-h | 列出使用方法,并退出 |
-H | 将环境变量中的HOME(家目录)指定为要变更身份的使用者家目录 |
-V | 显示版本信息,并退出 |
-v | sudo在第一次执行时,或者在N分钟内没有执行,则会询问密码,参数用于重新做一次确认 |
-u | 以指定用户的身份执行命令 |
-k | 清除时间戳上的实践,下次再次使用sudo时要再此输入密码 |
-K | 与k类似,同时还删除时间戳文件 |
-b | 在后台执行指定命令 |
-p | 更改询问密码时的提示语 |
-e | 不执行命令,而是修改文件,相当于sudo edit |
4、sudo 工作原理
5、实践操作
创建一个testuser 用户,并对testuser进行sudo授权管理。授权完成后sudo操作
# 1、创建testuser 用户
[root@xiezhr ~]# useradd testuser
# 2、将testuser 用户密码修改为******
[root@xiezhr ~]# passwd testuser
Changing password for user testuser.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
# 3、执行以下命令后添加 `testuser ALL=(ALL) ALL ` 对testuser用户进行sudo授权 参照下图
[root@xiezhr ~]# visudo
testuser ALL=(ALL) ALL
# 4、登录testuser 用户,查看 当前用户被授予的sudo权限集合
[testuser@xiezhr ~]$ sudo -l
Matching Defaults entries for testuser on xiezhr:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\\:/bin\\:/usr/sbin\\:/usr/bin
User testuser may run the following commands on xiezhr:
(ALL) ALL
# 5、登录testuser用户,执行ls /root 发现时没有权限的
[testuser@xiezhr ~]$ ls /root
ls: cannot open directory /root: Permission denied
# 6、当加上sudo 后 再执行ls /root (第一次需要输入testuser用户密码,上面原理图介绍过),发现可以访问/root 路径了,此时testuser 具有了
[testuser@xiezhr ~]$ sudo ls /root
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for testuser:
bdcdb84c414c2493e5856597b89be9f0.gif
6、 sudo 小结
- 对用户进行sudo授权后,所有用户执行命令 格式为 sudo + [命令]
- sudo - l 命令可以查看当前用户被授予的sudo权限集合
- 当我们在授权用户下执行sudo时,如果需要输入密码。此时输入密码是当前用户的密码
id 显示用户与用户组信息
1、简介
id 命令可以显示指定用户的ID(UID)和组ID(GID)等有效信息
2、语法格式
id [参数选项] [用户名]
3、参数选项
参数 | 参数说明 |
---|---|
-g | 显示用户所属群组的ID |
-G | 显示用户所属附加群组的ID |
-n | 显示用户,所属群组或附加群组的名称 |
-r | 显示实际ID |
-u | 显示用户ID |
4、实践操作
显示用户的UID和GID
# id 后不跟用户,默认时当前登录用户
[root@xiezhr home]# id
uid=0(root) gid=0(root) groups=0(root)
# 显示指定用户信息
[root@xiezhr home]# id testxiezhr
uid=1006(testxiezhr) gid=1006(testxiezhr) groups=1006(testxiezhr)
# 显示当前登录用户名称
[root@xiezhr home]# id -gn
root
# 显示当前登录用户GID
[root@xiezhr home]# id -g
0
# 显示当前登录用户UID
[root@xiezhr home]# id -u
0
w 显示已登录用户信息
1、简介
w命令可以显示已经登录系统的用户,并显示用户正在执行的命令
2、语法格式
w [参数选项] [用户]
3、参数选项
参数 | 参数说明 |
---|---|
-h | 不显示前两行标题信息 |
-u | 忽略执行程序的名称以及CPU时间信息 |
-s | 使用短输出格式 |
4、实践操作
① 显示已登录用户信息
[testuser@xiezhr ~]$ w
21:21:42 up 609 days, 7 min, 4 users, load average: 2.66, 2.99, 3.17
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 39.130.60.62 20:33 48:22 0.02s 0.02s -bash
root pts/1 39.130.60.62 20:55 13:10 0.07s 0.02s -bash
root pts/2 39.130.60.62 21:04 16:54 0.02s 0.02s -bash
root pts/3 39.130.60.62 21:21 6.00s 0.04s 0.00s w
w命令执行结果说明
- 第一行依次显示当前的系统时间、系统从启动到现在已经运行的时间、登录到系统中的用户数和系统平均负载
列名 | 含义 |
---|---|
USER | 登录系统的用户 |
TTY | 用户使用的TTY名称 |
FROM | 用户从哪里登录进来,一般显示远程登录主机的IP地址或主机名 |
LOGIN@ | 用户登录的日期和时间 |
IDLE | 显示终端空闲的时间 |
JCPU | 表示该终端上的所有进程及子进程使用系统的总时间 |
PCPU | 当前活动进程使用的系统时间 |
WHAT | 当前用户执行的进程名称和选项 |
② -h 参数
[root@xiezhr ~]# w -h
root pts/0 39.130.60.62 20:33 1:04m 0.02s 0.02s -bash
root pts/1 39.130.60.62 20:55 28:55 0.07s 0.02s -bash
root pts/2 39.130.60.62 21:04 32:39 0.02s 0.02s -bash
root pts/3 39.130.60.62 21:21 15:51 0.04s 0.02s -bash
root pts/4 39.130.60.62 21:37 3.00s 0.02s 0.00s w -h
显示已登录用户信息
1、简介
who 命令用于显示已经登录系统的用户,以及系统的启动时间等信息
2、语法格式
who [参数选项]
3、参数选项
参数 | 参数说明 |
---|---|
-a | 显示所有信息 |
-b | 显示系统启动时间 |
-d | 显示已结束的进程 |
-H | 显示标题,默认是不显示的 |
-l | 显示登录进程 |
4、实践操作
① 不带参数显示所有信息
[root@xiezhr ~]# who
root pts/0 2022-09-11 20:33 (39.130.60.62)
root pts/1 2022-09-11 20:55 (39.130.60.62)
root pts/2 2022-09-11 21:04 (39.130.60.62)
root pts/3 2022-09-11 21:21 (39.130.60.62)
root pts/4 2022-09-11 21:37 (39.130.60.62)
root pts/5 2022-09-11 22:19 (39.130.60.62)
② 显示系统启动时间
[root@xiezhr ~]# who -b
system boot 2021-01-10 21:14
③ 显示已结束的进程
[root@xiezhr ~]# who -d
④ 显示标题
[root@xiezhr ~]# who -H
NAME LINE TIME COMMENT
root pts/0 2022-09-11 20:33 (39.130.60.62)
root pts/1 2022-09-11 20:55 (39.130.60.62)
root pts/2 2022-09-11 21:04 (39.130.60.62)
root pts/3 2022-09-11 21:21 (39.130.60.62)
root pts/4 2022-09-11 21:37 (39.130.60.62)
root pts/5 2022-09-11 22:19 (39.130.60.62)
⑤ 显示带标题的所有信息
[root@xiezhr ~]# who -H -a
NAME LINE TIME IDLE PID COMMENT EXIT
system boot 2021-01-10 21:14
run-level 3 2021-01-10 21:14
LOGIN ttyS0 2021-01-10 21:14 1009 id=tyS0
LOGIN tty1 2021-01-10 21:14 1008 id=tty1
root + pts/0 2022-09-11 20:33 01:50 23396 (39.130.60.62)
root + pts/1 2022-09-11 20:55 01:15 27638 (39.130.60.62)
root + pts/2 2022-09-11 21:04 01:19 29660 (39.130.60.62)
root + pts/3 2022-09-11 21:21 01:02 405 (39.130.60.62)
root + pts/4 2022-09-11 21:37 00:46 3587 (39.130.60.62)
root + pts/5 2022-09-11 22:19 . 11675 (39.130.60.62)
以上显示的各项含义
名称 [状态] 线路 时间 [活动] [进程标识] (主机名)
列名 | 说明 |
---|---|
NAME | 名称: 用户登录名 |
状态:表示线路对用户是否都是可写的 | |
LINE | 线路: pts/0 pts/1等等 |
TIME | 时间:用户登录系统的时间 |
IDLE | 活动:某用户最后一次活动到现在的时间;. 表示一分钟内线路活动 |
PID | 进程表示:用户进程id |
COMMENT | 主机名 |
users 显示已登录用户
1、简介
users 命令用于显示已经登录的用户。一个用户登录多次则会显示多次
2、实践操作
[root@xiezhr ~]# users
root root root root root root
whoami 显示当前登录的用户
1、简介
whoami 命令用于显示当前登录的用户。是英文who am i 的简写
2、实践操作
[root@xiezhr ~]# whoami
root
[root@xiezhr ~]# su - testuser
Last login: Sun Sep 11 21:21:40 CST 2022 on pts/3
[testuser@xiezhr ~]$ whoami
testuser
last 显示用户登录列表
1、简介
last命令用于显示最近登录的用户列表
2、语法格式
last [参数选项]
3、参数选项
参数 | 参数说明 |
---|---|
- num | 指定显示结果的行数 |
4、实践操作
① 不加参数显示
[root@xiezhr ~]# last
root pts/6 39.130.60.62 Sun Sep 11 22:42 still logged in
root pts/0 39.130.60.62 Sun Sep 11 22:37 still logged in
root pts/1 39.130.60.29 Sun Nov 29 09:09 - down (01:02)
root pts/0 39.130.60.29 Sun Nov 29 08:49 - down (01:23)
root pts/0 112.112.17.172 Fri Nov 6 12:50 - 15:45 (02:55)
wtmp begins Fri Nov 6 12:50:41 2020
② -num 参数,显示指定显示行数
[root@xiezhr ~]# last -5
root pts/6 39.130.60.62 Sun Sep 11 22:42 still logged in
root pts/0 39.130.60.62 Sun Sep 11 22:37 still logged in
root pts/5 39.130.60.62 Sun Sep 11 22:19 still logged in
root pts/4 39.130.60.62 Sun Sep 11 21:37 still logged in
root pts/3 39.130.60.62 Sun Sep 11 21:21 still logged in
wtmp begins Fri Nov 6 12:50:41 2020
lastb 显示用户登录失败的记录
1、简介
lastb命令用于显示用户登录失败的记录
2、语法格式
lastb [参数选项]
3、参数说明
参数 | 参数说明 |
---|---|
-num | 指定显示结果的行数 |
4、实践操作 |
[root@xiezhr ~]# lastb -5
ssh:notty 159.75.56.103 Sun Sep 11 21:18 - 21:18 (00:00)
ltecl4r0 ssh:notty 45.141.84.126 Sun Sep 11 20:33 - 20:33 (00:00)
ltecl4r0 ssh:notty 45.141.84.126 Sun Sep 11 20:33 - 20:33 (00:00)
1admin0 ssh:notty 45.141.84.126 Sun Sep 11 20:32 - 20:32 (00:00)
1admin0 ssh:notty 45.141.84.126 Sun Sep 11 20:32 - 20:32 (00:00)
btmp begins Thu Sep 1 03:31:03 2022
lastlog 显示所有用户最近登录记录
1、简介
lastlog 命令用于显示用户最近登录的记录,便于查看系统是否异常
2、实践操作
[root@xiezhr ~]# lastlog
Username Port From Latest
root pts/6 Sun Sep 11 22:45:57 +0800 2022
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
test **Never logged in**
testxiezhr pts/0 Thu Sep 8 21:53:58 +0800 2022
testuser pts/6 Sun Sep 11 22:42:24 +0800 2022
注意:
当有从不登录的用户突然登录系统了,就要考虑是不是有用户入侵系统了
这期内容就到这,下期根据思维导图就到Linux磁盘与文件系统相关命令的使用了。
涉及到的命令有: fdisk、df、mount、dd、unmount、sync、等等
敬请期待哦(●’◡’●)
专栏目录:快速上手Linux核心命令专栏目录
上一篇:快速上手Linux核心命令(十一):Linux安装软件
下一篇:快速上手Linux核心命令(十二):磁盘与文件系统相关命令(博主正在玩命更新中)
linux简单上手学习
文章目录
Linux简单学习
环境:vmware16.1和centos7 secure
centos的文件和目录介绍
在liunx中/没有盘符的概念,/是他的根目录
-
cd /进入根目录
-
ls -l查看所有文件
虚拟机的其他一些设置
-
设置虚拟机和windows时间同步
- 在crt中输入命令date即可打印centos中的时间
- 设置时间同步在vmwaretool中设置将客户机和主机时间同步
-
克隆与快照
克隆和快照就是备份功能
-
克隆
占用空间大
原系统不存在,克隆体还是能用的
右键虚拟机点击管理,找到克隆按照操作即可完成
-
快照
占用空间小
原系统不存在了,快照就不能用了
-
一些简单的liunx命令
账号管理命令
- 创建用户:useradd(选项) 用户名 注意:创建用户必须要切换到root用户下,否者权限不够
- 设置用户的口令:passwd 用户名
-
修改用户密码:usermod(选项)用户名
-
值得一提的是我们想要查看某条指令的细节我们只需要打出这条指令然后回车即可
-
ctrl+d表示退出当前用户
-
删除用户:usrdel 用户
用户组
- 创建用户组:groupadd(选项)用户组名
- 修改用户组:groupmod(选项)用户组名
- 查询用户所属组group用户名
- 删除用户组:groupdel用户组名
管理用户组内成员
语法:gpasswd(可选项) 组名
gpasswd是linux下的管理工具,用于将一个用户添加到组或者从组中删除。
- -a:添加用户到组
- -d:从组中删除用户
- -A:指定管理员
- -M:指定成员和-A的用途差不多
- -r:删除密码
- -R:限制用户登入组,只有组中成员才可以newgrp假如该组
日期管理
语法:date[参数选项]
- date 展示系统当前时间
- date -d:显示字符串展示的时间,字符串必须用双引号引起来
- date -s:根据字符串来设置系统的时间,同样字符串需要用双引号引起来
- –help:显示date命令的大全
- –version:显示版本信息
- logname:显示当前操作的用户名
- su 用户名切换到指定用户
sudo命令
可以用来提高用户的操作权限
参数选择
- -V 显示版本编号
- -h显示版本编号和指令的使用方式说明
- -l显示自己的权限
- -v超出N分钟没有使用要求再次输入密码(默认5分钟)
- -k下一次执行sudo时间密码
- -H将环境变数中的HOME指定为要变更身份的使用者HOME目录
- sudo command 要以系统管理者身份(或以 -u更改为其他人)执行指令
与系统进程相关的三个命令
- top命令可以查看操作系统的进程信息
- top -c实时显示所有的进程信息(显示完整指令)
- top -p PID实时显示指定进程的信息
- 结束监控的快捷键:q
- ps命令 查看进程信息和top相比而言top是实时查看进程信息,但是ps只能查看当前的进程信息
- kill命令是杀死进程
- kill 进程pid:杀死指定进程
- kill -9进程pid:彻底杀死指定进程
- kill -9¥(ps -ef|grep 用户名) 杀死指定用户所有进程
- killall -u 用户名
关机命令
- shutdown 在centos7中是延迟一分钟关机
- shutdown -h now 表示立马关机
- shutdown -c表示取消关机
- shutdown +x “警示信息” 表示延迟x分钟以后关机,并且警示信息是自定义的必须要写在双引号之间
- shutdown -r+1 “警告信息” 表示墨迹一分钟过后重启
who命令
- who 显示当前登录系统用户
- who -H 显示明细(标题)信息
- timedatectl status 显示系统的当前时间和日期
- timedatectl list-timezones 查看所有可用的时区
- timedatectl set-timezone “Asia/Shanghai” 设置本地时间
- timedatectl set-ntp false 禁用时间同步
- timedatectl set-time “2019-03-11 20:45:00” 设置时间
- timedatectl set-ntp true 启用时间同步
目录管理命令
-
ls 列出目录
-
ls:显示不隐藏的文件与文件夹(如果文件名字前面带点就代表这个文件夹是一个隐藏文件夹)
-
ls -l显示不隐藏的文件与文件夹的详细信息
-
ls -al显示所有文件与文件夹的详细信息
-
cd 切换目录
-
pwd 显示当前目录
-
mkdir创建新目录
-
mikdir 文件夹名 创建目录
-
mkdir -p aaa/bbb 创建多级目录
-
rmdir删除空目录(只能删除空的文件夹)
-
rmdir-p删除非空文件夹
-
cp 复制文件或目录
-
cp aaa/a.txt ccc 表示将当前路径下的aaa文件夹中的a.txt文件拷贝到ccc文件夹中
-
cp -r aaa/* ccc 将aaa文件夹中所有的内容拷贝到ccc文件夹中
-
rm 删除文件或目录
-
rm -r删除目录和目录中所有的内容
-
mv 移动文件或者目录,修改文件或者目录的名字(这玩意就相当于windows当中的剪切功能)
文件基本属性
- 第一位:d代表目录,-代表文件,l代表链接文档
- 权限:r代表可读,w代表可写,x代表可执行,-代表没有当前权限
- chgrp命令
- chgrp -v root aaa 表示将aaa的用户组改为root
- chown命令
- chown root aaa 将aaa的属主改为root
- chow root:root bbb 将bbb的属主和属组都改为root
- chown -R root:root aaa 将aaa文件夹和里面的所有的属主和属组都改为root
- chmod 更改权限命令
- chmod [参数选项] 数字权限文件或者目录- 参数选项 -R最常用表示对目录下的所有档案与子目录进行相同的权限更改- 数字权限:rwx对应数值相加的和 例如 5 就是 4+1 就是读和执行权限
文件管理
- touch 命令
- touch a.txt 创建文件,如果文件存在那么就修改文件的时间属性
- touch a1…10.txt 批量创建文件
- stat a.txt 表示查看文件的详细信息
vi/vim编辑器
vi 和 vim都很强大!!!
- 命令模式只能读
- 编辑模式就可以对文件进行编辑了
- 末行模式就是保存
- 保存:wq
- 退出:q
- cat 文件名表示查看文件内容
- cat -n 文件名表示给查看的文件内容带一个行号
- less 文件名 表示查看文件内容
- less -N文件名 表示将查看出来的文件内容带一个行号
- less 和 cat 和区别是less查看的是大文件,cat查看的是小文件
tail命令
- tail -3 文件名 显示文件最后三行
- tail -f 文件名 动态显示最后的十行
- tail -4f 文件名 动态显示文件最后4行
- tail -n +2 文件名 显示文件从第二行一直到行末的内容、
- tail -c 45 文件名 显示最后45个字符
grep命令
- grep 关键字 文件名 这个就相当于windoes中的ctrl+f查找功能 通过关键字查找
vim定位行
- 语法:vim 文件名 +行数 就可以直接定位到行
echo命令
- echo “字符串” 和java的输出语句差不多 是用来展示文本的
- echo “字符串” > 文件名 表示将字符串写到指定文件中去(但是会覆盖原先文件中的内容)
- echo"字符串">>将字符串写到文件中去(在源文件后面的内容增加,不会覆盖)
软连接
意思就是相当于给一个文件在桌面创建一个快捷方式,比如windows操作系统下,qq的启动程序是有很多的目录层级的,如果没有桌面快捷启动方式就很难快速打开,软连接就是linux操作系统的快捷方式
备份和压缩
- gzip 文件名 表示压缩指定文件
- gzip * 表示压缩当前目录下的所有文件
- gzip -dv * 表示解压当前目录下的所有文件
- gunzip * 表示解压当前目录下的所有压缩文件
- tar命令
- tar[必要参数] [选择参数] [文件] 打包、压缩和解压(文件\\文件夹)
- 注意:tar本身不具有压缩的功能。他是调用压缩功能实现的
网络管理
- ifconfig 显示激活的网卡信息
- ifconfig ens37 down 关闭网卡
- ifconfig ens37 up 启动网卡
- ifcongif ens37 192.168.23.199 配置ip地址
- ifconfig ens37 192.168.23.133 netmask 255.255.255.0配置ip地址和子网掩码
yum命令
- yum -y install tree 安装tree
- tree 表示执行tree这个程序
- yum remove tree 表示卸载tree这个程序
- yum list tom* 查找出以tom为开头的软件名称
以上是关于快速上手Linux核心命令:Linux用户相关命令的主要内容,如果未能解决你的问题,请参考以下文章