Day 6(云计算-zsn)
[root@localhost ~]# alias (补充)
alias cp='cp -i' -i交互式提示
1.hash 查看系统命令缓存
[root@localhost ~]# hash
hits command
1 /usr/bin/rm 前面的数值是匹配的缓存次数,后面是匹配的缓存路径
1 /usr/bin/vim
1 /usr/bin/date
4 /usr/bin/cat
2 /usr/bin/cp
3 /usr/bin/ls
2.清理缓存:
hash -d 命令 删除指定命令的缓存
[root@localhost ~]# hash -d 命令 清理缓存(删除指定命令的缓存)
[root@localhost ~]# hash (清理缓存前)
hits command
1 /usr/bin/rm
1 /usr/bin/vim
1 /usr/bin/date
4 /usr/bin/cat
2 /usr/bin/cp
3 /usr/bin/ls
[root@localhost ~]# hash -d cat
[root@localhost ~]# hash (清理缓存后)
hits command
1 /usr/bin/rm
1 /usr/bin/vim
1 /usr/bin/date
2 /usr/bin/cp
4 /usr/bin/ls
hash -r 清空所有命令缓存
[root@localhost /]# hash 在没有清理命令前可通过hash查看该主机缓存的命令
hits command
1 /usr/bin/rm
3 /usr/bin/ls
[root@localhost /]# hash -r
[root@localhost /]# hash
hash: hash table empty
exit 退出终端可以清空终端中的命令缓存
[root@localhost ~]#cat /etc/passwd
[root@localhost ~]#mv /usr/bin/cat /usr/local/bin
[root@localhost ~]# cat /A
-bash: /usr/bin/cat: No such file or directory --通过缓存路径匹配命令文件
3.date 时间
%Y-%m-%d %H-%M-%S
%F full date; same as %Y-%m-%d
%T time; same as %H:%M:%S
[root@localhost ~]# touch `date +'%H:%M:%S'file.txt`
(1)更改时间
[root@localhost ~]# date 101110122022.34 可以更改时间
Tue Oct 11 10:12:34 CST 2022
[root@localhost ~]# date -s '2022-11-30 17:34:56'
Wed Nov 30 17:34:56 CST 2022
[root@localhost ~]# timedatectl set-timezone Asia/Shanghai(时区名) 可以更改时区
[root@localhost ~]# timedatectl status 查看时区
Local time: Wed 2022-11-30 17:40:34 CST
Universal time: Wed 2022-11-30 09:40:34 UTC UTC世界时间
RTC time: Wed 2022-11-30 11:40:42 RTC硬件时钟的时间
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
[root@localhost ~]# timedatectl show 查看时区
Timezone=Asia/Shanghai
LocalRTC=no
CanNTP=yes
NTP=no
NTPSynchronized=no
TimeUSec=Wed 2022-11-30 17:41:27 CST
RTCTimeUSec=Wed 2022-11-30 19:41:34 CST
(2)查看日历
格式:cal[[[日]月]年]
cal -j 查看一年的儒略日
[root@localhost ~]# cal 2022 查看2022年的日历
2022
January February
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5
2 3 4 5 6 7 8 6 7 8 9 10 11 12
9 10 11 12 13 14 15 13 14 15 16 17 18 19
16 17 18 19 20 21 22 20 21 22 23 24 25 26
23 24 25 26 27 28 29 27 28
30 31
March April
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2
6 7 8 9 10 11 12 3 4 5 6 7 8 9
13 14 15 16 17 18 19 10 11 12 13 14 15 16
20 21 22 23 24 25 26 17 18 19 20 21 22 23
27 28 29 30 31 24 25 26 27 28 29 30
May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25
29 30 31 26 27 28 29 30
July August
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 1 2 3 4 5 6
3 4 5 6 7 8 9 7 8 9 10 11 12 13
10 11 12 13 14 15 16 14 15 16 17 18 19 20
17 18 19 20 21 22 23 21 22 23 24 25 26 27
24 25 26 27 28 29 30 28 29 30 31
31
September October
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 1
4 5 6 7 8 9 10 2 3 4 5 6 7 8
11 12 13 14 15 16 17 9 10 11 12 13 14 15
18 19 20 21 22 23 24 16 17 18 19 20 21 22
25 26 27 28 29 30 23 24 25 26 27 28 29
30 31
November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 3
6 7 8 9 10 11 12 4 5 6 7 8 9 10
13 14 15 16 17 18 19 11 12 13 14 15 16 17
20 21 22 23 24 25 26 18 19 20 21 22 23 24
27 28 29 30 25 26 27 28 29 30 31
[root@localhost ~]# cal 3 2022 查看2022年3月的日历
March 2022
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
[root@localhost ~]# cal 1 3 2022 对2022年3月1日特殊标记
March 2022
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
(3)查看时区
[root@localhost ~]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
4.用户、组
(创建用户目的:让主机知道当前用户身份;创建组的目的:后期可以更方便的管理用户)
(1)Linux管理模式
(Linux主机具有多用户多任务的特点)
私有模式(默认):每一个用户对应有一个和用户同名的组
共有模式:多个用户共用一个组
(2)用户类别(最多65535个用户)
A.管理员(仅有一个):root用户
B.普通用户(1–65535个):(例:redhat用户)
a. 系统用户:系统在安装时,默认所创建的用户身份(自动创建)
[root@localhost ~]# cat /etc/passwd 在该文件下,一行表示一个用户
root:x:0:0:root:/root:/bin/bash root是默认定义的管理员用户,因此在第一行
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
.......... (系统中的其他用户(在创建系统安装服务软件时,创建的对应的用户信息))
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
redhat:x:1000:1000:redhat:/home/redhat:/bin/bash redhat是用户自己创建的用户,所以在最后一行
b.一般用户:由用户自己手动添加创建的用户
C.创建(添加)用户
useradd 用户名(必须有字符信息,不能只有数字)
创建用户的路径: /usr/sbin/usaradd(唯一) sbin路径只有管理员能够使用
[root@localhost ~]# useradd xiaohua 以root身份创建了xiaohau这一用户
[root@localhost ~]#
[root@localhost ~]# su redhat 先通过su命令切换到redhat普通用户下
[redhat@localhost root]$ useradd xiaohua2 试创建xiaohua2用户
useradd: Permission denied. 创建失败,即普通用户不能用useradd命令创建用户
useradd: cannot lock /etc/passwd; try again later.
E.查看是否成功创建(添加)用户
方法:使用命令cat /etc/passwd
解释命令:/etc/passwd文件是系统中的用户配置文件,该文件中只放用户相关的参数信息
cat /etc/passwd 用户配置文件
[root@localhost ~]# useradd xiaohua 创建用户
[root@localhost ~]# cat /etc/passwd 查看用户
xiaohua:x:1001:1001::/home/xiaohua:/bin/bash 用户存在,则创建用户成功
F.grep ‘^用户名’ /etc/passwd
id 用户名 查看用户的id信息
[root@localhost ~]# grep '^xiao1' /etc/passwd
xiao1:x:1001:1001::/home/xiao1:/bin/bash
[root@localhost ~]# id xiao1 查看xiao1用户的id信息
uid=1001(xiao1) gid=1001(xiao1) groups=1001(xiao1)
[root@localhost ~]# grep '^xiaohua' /etc/passwd
[root@localhost ~]# id xiaohua 查看xiaohua用户的id信息
uid=1001(xiaohua) gid=1001(xiaohua) groups=1001(xiaohua)
(3)删除用户名
userdel -r 用户 删除用户以及创建用户相关的所有文件
[root@localhost ~]# userdel -r xiao1 删除xiao1用户
[root@localhost ~]# id xiao1 查看xiao1用户是否被成功删除
id: ‘xiao1’: no such user 没有xiao1用户,即表明xiao1用户删除成功
(4)组类别
A.管理组:root组
在私有模式下管理员所对应的组身份信息就是管理组。
B.普通组:
普通用户所对应的组身份信息就是普通组。
**系统组:**系统在安装时,默认所创建的组身份信息(自动创建)
**一般组:**由用户自己手动添加创建的组身份信息
C.主组,私有组,用户的默认组
主组:也叫初始组,是用户登录系统时的组
特点:a.创建新用户时,若未明确指定该用户所属的主组,会默认创建一个与用户名相同的组,作为该用户的主组
b.用户创建文件时,文件的所属权限组就是当前用户的主组
c.使用useradd
命令时用-g
参数可以指定主组,则不会默认创建同名的主组
d.用户有且只能所属一个主组,而且用户的主组不能被删除
e.用户不能直接被移出主组,但可以更换主组
f.用户被删除时它的主组若没有其他所属用户,则会自动删除该主组
私有组:任何用户都必须依赖一个用户组才能存在,所以如果我们在创建用户的时候没有指定用户组,那么系统会为该用户创建一个同名的组。
D.附加组(额外组):用户默认组之外的组
附加组:登录后可切换的其他组
特点:a.使用useradd
命令时用-G
参数可以指定附加组
b.用户可以所属零个或多个附加组
c.用户的附加组和主组可相同
d.附加组可以直接被删除而无需关心是否所属于用户
e.附加组可以新增和移除任意个所属用户
f.用户被删除时所属附属组不会受影响
E.创建,删除组
groupadd 组名 创建组
cat /etc/group 组配置文件
grep ‘^组名’ /etc/group 判断组信息是否存在
groupdel 组名 删除组
5.更改,设置,破解用户密码
(1)passwd [用户名]
不加用户名表示对当前用户的密码信息进行更改;
加用户名时,如该用户有密码及更改密码,没有密码及创建密码
管理员:可以指定用户名更改系统任意用户的密码,不需要输入之前的密码,不严格匹配密码等级设置
普通用户:不可以指定用户,只能更改自己的密码,需要输入之前的密码,严格匹配密码等级设置
(2)给用户设置密码
[root@localhost ~]# passwd xiao1
Changing password for user xiao1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# su -l xiao1
[xiao1@localhost ~]$
(3)更改当前用户密码
A.passwd 对当前用户更改密码
[root@localhost ~]# passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# su xiaohua 切换为普通用户
[xiaohua@localhost root]$ passwd redhat 给指定用户更改密码
passwd: Only root can specify a user name. 更改密码失败
[redhat@localhost root]$ passwd
Changing password for user redhat.
Current password: 输入原密码
New password: 输入新密码
BAD PASSWORD: The password contains the user name in some form
passwd: Authentication token manipulation error
B.echo 密码 | passwd --stdin 用户名 (非交互式)
通过passwd 后的–stdin把前一个的输出结果作为passwd命令的标准输入,即在命令执行后用户要进行一个标准输入。
C.chpasswd 更改密码
一次性可更改多个用户的密码
[root@localhost ~]# vim users
[root@localhost ~]# cat users | chpasswd
[root@localhost ~]# cat users
root:redhat
redhat:redhat
xiaohua:redhat
一次性也可只更改一个用户的密码
[root@localhost ~]# echo redhat:123456 | passwd
(4)删除用户的密码
[root@localhost ~]# passwd -d xiao1 -d表示删除
Removing password for user xiao1.
passwd: Success
(6)破解密码
步骤: 关机–>开机–>鼠标进入启动界面–>第一个引导菜单–>按一下e键–>找到linux这一行在行尾添加rd.break–>ctrl-x---->mount -o remount,rw /sysroot ---->chroot /sysroot—>passwd root—>设置密码–确认密码---->touch /.autorelabel -->exit --exit(等待)
开机,并将鼠标点进启动界面,以进入第一个引导菜单,然后用上下键控制选择(上下两个都可以)然后按一下e键进入下一步
进入下一步之后,控制光标到含有linux字样的一行
然后在倒数第二行末尾添加命令rd.break 来截止前面的启动命令
然后通过ctrl+x启动,进入内核层
然后通过mount命令对文件系统进行更改,挂载命令mount -a remount,rw /sysroot
成功(没有报错即为成功)以后,输入chroot /sysroot命令
然后通过输入passwd root命令为root用户更改密码
然后通过输入两次exit命令让虚拟机自动重启(一定不能手动点击虚拟机的重启按钮,不然原密码和破解后的密码都不能用)
最后等待虚拟机重新开启即可