1、总结cp、mv命令的用法(要求列出源及目标各种情况的表格)

用法: cp [选项] 源文件 目录

cp mv
源文件不存在 报错 报错
目标文件不存在 创建备份文件 重命名文件
目标文件已存在 提示是否覆盖 提示是否覆盖

2、总结IO重定向的类别和区别。

重定向分为:

标准输入(STDIN)-0 默认接受来自键盘的输入
标准输出(STDOUT)-1 默认输出到终端窗口
标准错误(STDERR)-2 默认输出到终端窗口
I/O重定向:改变默认输入、输出的位置

区别:

标准输入: 将输入内容打印至屏幕上 标准输出: 将正常无报错内容输出至文件内 标准错误: 将报错内容输出至文件内

示例:

[root@tianpp ~]# cat <<EOF #标准输入
> 1231
> 123
> EOF
1231
123
[root@tianpp ~]# ls -lrt 1.txt 
-rw-r--r--. 1 root root 0 6月  14 01:20 1.txt
[root@tianpp ~]# ls -lrt 1.txt > a.txt ##标准输出
[root@tianpp ~]# cat a.txt 
-rw-r--r--. 1 root root 0 6月  14 01:20 1.txt
[root@tianpp ~]# 
[root@tianpp ~]# ls -lrt 2.txt
ls: 无法访问'2.txt': 没有那个文件或目录
[root@tianpp ~]# ls -lrt 2.txt 2> b.txt ##标准错误
[root@tianpp ~]# cat b.txt 
ls: 无法访问'2.txt': 没有那个文件或目录
[root@tianpp ~]#

3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

[root@tianpp ~]# cat /etc/issue
\S
Kernel \r on an \m

[root@tianpp ~]# cat /etc/issue | tr 'a-z' 'A-Z' >/tmp/issue.out
[root@tianpp ~]# cat /tmp/issue.out 
\S
KERNEL \R ON AN \M

[root@tianpp ~]#

4、请总结描述用户和组管理类命令的使用方法并完成以下练习:

(1)、创建组distro,其GID为2019;

[root@tianpp ~]# groupadd distro -g 2019
[root@tianpp ~]# grep distro /etc/group
distro:x:2019:
[root@tianpp ~]#

(2)、创建用户mandriva, 其ID号为1005;基本组为distro;

[root@tianpp ~]# useradd mandriva -u 1005 -g distro
[root@tianpp ~]# id mandriva 
uid=1005(mandriva) gid=2019(distro) 组=2019(distro)
[root@tianpp ~]#

(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;

[root@tianpp ~]# useradd mageia -u 1100 -d /home/linux
[root@tianpp ~]# id mageia 
uid=1100(mageia) gid=1100(mageia) 组=1100(mageia)
[root@tianpp ~]# grep mageia /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash

(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期

[root@tianpp ~]# echo mageedu |passwd --stdin mageia
更改用户 mageia 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@tianpp ~]# chage -M 7 mageia
[root@tianpp ~]# chage -l mageia
最近一次密码修改时间					:6月 14, 2021
密码过期时间					:6月 21, 2021
密码失效时间					:从不
帐户过期时间						:从不
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:7
在密码过期之前警告的天数	:7
[root@tianpp ~]# date
2021年 06月 14日 星期一 01:30:59 EDT

(5)、删除mandriva,但保留其家目录;

[root@tianpp ~]# userdel mandriva
[root@tianpp ~]# ll -d /home/mandriva/
drwx------. 3 1005 distro 78 6月  14 01:26 /home/mandriva/

(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;

[root@tianpp ~]# groupadd peguin
[root@tianpp ~]# useradd slackware -u 2002 -g distro -G peguin
[root@tianpp ~]# id slackware 
uid=2002(slackware) gid=2019(distro) 组=2019(distro),2020(peguin)
[root@tianpp ~]#

(7)、修改slackware的默认shell为/bin/tcsh;

[root@tianpp ~]# grep slackware /etc/passwd
slackware:x:2002:2019::/home/slackware:/bin/bash
[root@tianpp ~]# usermod slackware -s /bin/tcsh
[root@tianpp ~]# grep slackware /etc/passwd
slackware:x:2002:2019::/home/slackware:/bin/tcsh

(8)、为用户slackware新增附加组admins,并设置不可登陆。

[root@tianpp ~]# grep admins /etc/group
[root@tianpp ~]# groupadd admins
[root@tianpp ~]# usermod slackware -G admins -s /sbin/nologin
[root@tianpp ~]# id slackware 
uid=2002(slackware) gid=2019(distro) 组=2019(distro),2021(admins)
[root@tianpp ~]# grep slackware /etc/passwd
slackware:x:2002:2019::/home/slackware:/sbin/nologin
[root@tianpp ~]# su - slackware
This account is currently not available.

创建用户user1、user2、user3。在/data/下创建目录test

[root@tianpp ~]# name=user;for i in {1..3};do useradd $name$i;done
[root@tianpp ~]# tail -3 /etc/passwd
user1:x:2004:2004::/home/user1:/bin/bash
user2:x:2005:2005::/home/user2:/bin/bash
user3:x:2006:2006::/home/user3:/bin/bash
[root@tianpp ~]# mkdir -p /data/test

(1)、设置目录/data/test属主、属组为user1

[root@tianpp ~]# cd /data/
[root@tianpp data]# ls -lrt
总用量 0
drwxr-xr-x. 2 root root 6 6月  14 01:42 test
[root@tianpp data]# chown -R user1:user1 test
[root@tianpp data]# ls -lrt
总用量 0
drwxr-xr-x. 2 user1 user1 6 6月  14 01:42 test

(2)、在目录属主、属组不变的情况下,user2对test及其子目录有读写权限

[root@tianpp data]# setfacl -m u:user2:rwx test/
[root@tianpp data]# getfacl test/
# file: test/
# owner: user1
# group: user1
user::rwx
user:user2:rwx
group::r-x
mask::rwx
other::r-x

[root@tianpp data]# ls -lrtd test/
drwxrwxr-x+ 2 user1 user1 6 6月  14 01:42 test/

(3)、user1在/data/test目录下创建文件a1.sh, a2.sh, a3.sh, a4.sh,设置所有用户都不可删除1.sh,2.sh文件。

[root@tianpp test]# su - user1
[user1@tianpp ~]$ cd /data/test/
[user1@tianpp test]$ ls
[user1@tianpp test]$ touch a{1..4}.sh
[user1@tianpp test]$ ls -lrt
总用量 0
-rw-rw-r--. 1 user1 user1 0 6月  14 01:46 a4.sh
-rw-rw-r--. 1 user1 user1 0 6月  14 01:46 a3.sh
-rw-rw-r--. 1 user1 user1 0 6月  14 01:46 a2.sh
-rw-rw-r--. 1 user1 user1 0 6月  14 01:46 a1.sh
[user1@tianpp test]$ chmod 000 a1.sh  a2.sh 
[user1@tianpp test]$ ls -lrt
总用量 0
-rw-rw-r--. 1 user1 user1 0 6月  14 01:46 a4.sh
-rw-rw-r--. 1 user1 user1 0 6月  14 01:46 a3.sh
----------. 1 user1 user1 0 6月  14 01:46 a2.sh
----------. 1 user1 user1 0 6月  14 01:46 a1.sh

(4)、清理/data/test目录及其下所有文件的acl权限

[root@tianpp data]# ls -rlt
总用量 0
drwxrwxr-x+ 2 user1 user1 58 6月  14 01:46 test
[root@tianpp data]# setfacl -bR test
[root@tianpp data]# ls -lrt
总用量 0
drwxr-xr-x. 2 user1 user1 58 6月  14 01:46 test