作业要求:
文件查找
(1)目录及其子目录中,查找2天前被更改过的文件
[root@localhost ~]# find $HOME -mtime +1
/root/.bash_logout
/root/.bash_profile
/root/.bashrc
/root/.cshrc
/root/.tcshrc
/root/anaconda-ks.cfg
/root/.cache
(2)在/etc/目录下查找以host开头的文件
[root@localhost ~]# find /etc/ -name "host*" -print
/etc/host.conf
/etc/hosts
/etc/avahi/hosts
/etc/hostname
/etc/nvme/hostnqn
/etc/nvme/hostid
(3)在/test下面查找目录文件
[root@localhost ~]# find /test/ -type d
/test/
/test/fff
/test/ggg
/test/hhh
/test/jjj
[root@localhost ~]#
(4)在/test目录及子目录中,查找超过2kb的文件
[root@localhost ~]# find /test -size +2k
打包压缩
(1)将/test目录下的所有文件和文件夹全部压缩成myfile.zip文件
[root@localhost ~]# zip -r myfile.zip /test
adding: test/ (stored 0%)
adding: test/aaa (stored 0%)
adding: test/bbb (stored 0%)
adding: test/ccc (stored 0%)
adding: test/eee (stored 0%)
adding: test/fff/ (stored 0%)
adding: test/ggg/ (stored 0%)
adding: test/hhh/ (stored 0%)
adding: test/jjj/ (stored 0%)
(2)把myfile.zip文件解压到/opt
[root@localhost ~]# unzip myfile.zip -d /opt
Archive: myfile.zip
creating: /opt/test/
extracting: /opt/test/aaa
extracting: /opt/test/bbb
extracting: /opt/test/ccc
extracting: /opt/test/eee
creating: /opt/test/fff/
creating: /opt/test/ggg/
creating: /opt/test/hhh/
creating: /opt/test/jjj/
(3)将/opt目录下的文件全部打包并用gzip压缩成/test/newfile.tar.gz
[root@localhost ~]# tar -cavf /test/newfile.tar.gz /opt
tar: 从成员名中删除开头的“/”
/opt/
/opt/test/
/opt/test/aaa
/opt/test/bbb
/opt/test/ccc
/opt/test/eee
/opt/test/fff/
/opt/test/ggg/
/opt/test/hhh/
/opt/test/jjj/
(4)查看/test/newfile.tar.gz文件中有哪些文件?
[root@localhost test]# zcat newfile.tar.gz
opt/0000755000000000000000000000000014272220265010360 5ustar
rootrootopt/test/0000755000000000000000000000000014272217431011340 5ustar
rootrootopt/test/aaa0000644000000000000000000000000014272217365012001 0ustar
rootrootopt/test/bbb0000644000000000000000000000000014272217372012002 0ustar
rootrootopt/test/ccc0000644000000000000000000000000014272217376012011 0ustar
rootrootopt/test/eee0000644000000000000000000000000014272217402012005 0ustar
rootrootopt/test/fff/0000755000000000000000000000000014272217413012101 5ustar
rootrootopt/test/ggg/0000755000000000000000000000000014272217423012105 5ustar
rootrootopt/test/hhh/0000755000000000000000000000000014272217426012113 5ustar
rootrootopt/test/jjj/0000755000000000000000000000000014272217431012115 5ustar rootr
[root@localhost test]#
(5)在/test目录内,备份/etc下所有的文件并保留其权限
[root@localhost test]# cp -r /test /etc
[root@localhost test]# ll /test
总用量 16
-rw-r--r--. 1 root root 0 8月 2 08:56 aaa
-rw-r--r--. 1 root root 0 8月 2 08:56 bbb
-rw-r--r--. 1 root root 0 8月 2 08:56 ccc
-rw-r--r--. 1 root root 0 8月 2 08:56 eee
drwxr-xr-x. 145 root root 8192 8月 2 09:32 etc
drwxr-xr-x. 2 root root 6 8月 2 08:56 fff
drwxr-xr-x. 2 root root 6 8月 2 08:56 ggg
drwxr-xr-x. 2 root root 6 8月 2 08:56 hhh
drwxr-xr-x. 2 root root 6 8月 2 08:56 jjj
-rw-r--r--. 1 root root 265 8月 2 09:17 newfile.tar.gz
别名
1.当前用户永久生效的命令别名
(1)写一个命令命为hello,实现的功能为每输入一次hello命令,就有hello,everyone写入文件/file.txt中。
alias hello='echo "hello,everyone" >> /file.txt'
[root@localhost ~]# hello
[root@localhost ~]# cat /file.txt
hello,everyone
(2)写一个命令别名为shiuaxin,实现的功能为每输入一次该命令,file.txt文件的所有时间就更新为当前时间。
alias gengxin='chmod a+rw /file.txt;cat /file.txt;echo " " >> /file.txt'
[root@localhost /]# gengxin
hello,everyone
hello,everyone
hello,everyone
hello,everyone
hello,everyone
[root@localhost /]# stat /file.txt
文件:/file.txt
大小:79 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:1229309 硬链接:1
权限:(0666/-rw-rw-rw-) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:etc_runtime_t:s0
最近访问:2022-08-02 07:44:53.511632255 -0400
最近更改:2022-08-02 07:44:53.512632264 -0400
最近改动:2022-08-02 07:44:53.512632264 -0400
创建时间:2022-08-02 06:52:48.287536885 -0400
[root@localhost /]# gengxin
hello,everyone
hello,everyone
hello,everyone
hello,everyone
hello,everyone
[root@localhost /]# stat /file.txt
文件:/file.txt
大小:81 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:1229309 硬链接:1
权限:(0666/-rw-rw-rw-) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:etc_runtime_t:s0
最近访问:2022-08-02 07:46:00.263268416 -0400
最近更改:2022-08-02 07:46:00.263268416 -0400
最近改动:2022-08-02 07:46:00.263268416 -0400
创建时间:2022-08-02 06:52:48.287536885 -0400
2.所有用户生效的命令别名
写一个所有用户都生效的命令别名为hh,每一个用户输入这个命令之后可以在该用户家目录下创建一个file1文件
[root@localhost ~]# vim /etc/bashrc
alias hh='touch file1'
[root@localhost ~]# su redhat
[redhat@localhost root]$ hh
touch: 无法创建 'file1': 权限不够
用户管理
1.新建一个名为sarah的用户,不属于adminuser组,并将其设置为不可登录shell
[root@localhost ~]# useradd -s /sbin/nologin sarsh
[root@localhost ~]# su sarsh
此帐户目前不可用。
2.创建alex用户,使其满足以下要求:用户id为3456,描述名为alian,密码为glegunge
[root@localhost ~]# useradd -u 3456 -c alian alex
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
正在创建信箱文件: 文件已存在
[root@localhost ~]# cat /etc/passwd
alex:x:3456:3456:alian:/home/alex:/bin/bash
[root@localhost ~]# passwd alex
更改用户 alex 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
总结
1、查找文件的路径
which:基于环境变量路径,查找可执行文件
where is:基于环境变量路径,查找所有文件,可以找到对应文件,配置文件以及帮助手册文件
locate:按照字符查找而非文件名,基于系统中的数据库查找,全局查找
find:可以实现全局搜索。
-name:根据文件名搜索
-size:根据文件大小搜索
-newer f1 !f2:查找比文件 f1 新但比 f2 旧的文件
-user:查找用户文件
-perm:以权限查找(mode为完全匹配,-mode为包含)
-group:以组查找
-exec ......{}\; :把前面命令的输出结果交给后面的命令处理
2、压缩和解压缩
zip:压缩 例:zip a.txt.zip a.txt
unzip:解压缩
zip -d
zip -m
unzip -v:显示压缩包详细信息,但不解压
gzip: 将原文件直接压缩,原文件不在
-r:压缩目录下的文件,并不压缩目录
gunzip:将文件解压,原文件不在
zcat:查看压缩包里的文件,对 gzip 文件
3、tar归档命令
-c 创建.tar格式的包文件
-x 释放.tar格式的包文件
-t 查看包中的文件列表
打包后压缩
tar -czvf 12345.tar.gz 1 2 3 4 5
4、shell
取消变量:unset +变量名
查看变量:echo $+变量名
定义别名:alias 别名 = '原命令'
查看别名:alias
删除别名:unalias
要使别名永久生效,可以将其写入配置文件/etc/bashrc或者,要使别名对指定用户生效,就将别名写入~/.bashrc。写入配置文件后运行bash命令使其生效。
5、命令历史
history:查看命令历史
清空历史文件:history -c (清空缓存区历史命令文件)
history -w (保存缓存区历史文件,即将当 前历史命令缓存区命令写入历史命令文件中)
命令匹配顺序:alias---> hash---->$PATH
6、清楚当前终端所有命令缓存:hash -r
查看命令缓存:hash
7、AAA认证:认证机制,授权机制,审计机制。
8、用户类别
管理员:uid=0
普通用户:1-65535个用户
系统用户:1-999个用户
一般用户:1000-60000个用户
添加用户:useradd 用户名
adduser 用户名
查看对应用户的id值:id 用户名
查看用户:cat /etc/passwd
组:
管理组:gid=0
普通组:gid=1-65535
主组,默认组,基本组
附加组
/bin/bash(交互式验证登录shell)
/sbin/nonlgin(非交互式验证登录shell)
更改用户名:usermod -l 新名 旧名
usermod 旧名 -l 新名
更改uid,组id,附加组,注释:usermod -u 1111 -g 1002 -G redhat -c tashizhangsan
useradd:
-u 更改uid
-g 更改基本组
-G 更改附加组
-d 更改家目录
-c 更改描述信息
-s 更改shell
-r 添加为系统用户1-999
usermod:
-u 更改uid
-g 更改基本组
-G 更改附加组
-d 更改家目录
-c 更改描述信息
-s 更改shell
-r 添加为系统用户1-999
-l 新用户名--更改用户名称
-L 锁定用户账户,使其不能登录使用
-U 解锁用户账户
删除用户:userdel
-r(递归删除)
设置密码:passwd 用户名
echo 密码 | passwd -- stdin 用户名