乐趣区

关于linux:W2-文件管理和用户管理

1、总结 cpmv 命令的用法

cp 格局

cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

罕用参数

-i  # 如果指标已存在,笼罩前提醒是否笼罩
-n  #不笼罩,留神两者程序
-r, -R # 递归复制目录及外部的所有内容
-a 归档,相当于 -dR --preserv=all,# 罕用于备份性能, 罕用在复制目录时, 保留链接, 文件属性(owner,group), 并复制目录下的所有内容
-d --no-dereference --preserv=links  #不复制原文件,只复制链接名
--preserv[=ATTR_LIST] 
    mode: #权限 
    ownership: #属主属组 
    timestamp:
    links 
    xattr 
    context 
    all

-p # 等同 --preserv=mode,ownership,timestamp 保留原文件的属性, 包含所有者、所属组、权限和工夫
-v --verbose # 显示执行过程
-f --force 
-u --update #只复制源比指标更新文件或指标不存在的文件
-b #指标存在,笼罩前先备份,默认模式为 filename~ , 只保留最近的一个备份
--backup=numbered #指标存在,笼罩前先备份加数字后缀,模式为 filename.~#~,能够保留多 个版本

源文件指标文件不同状况解决

源文件 指标文件不存在 指标文件存在且为文件 指标存在且为目录
一个文件 会先创立 DEST(指标)文件, 再将 SRC(源)文件内入复制到 DEST 文件中 将 SRC 文件中的内容笼罩至 DEST 中, 指标文件中的原始数据将会失落. 倡议复制应用 -i 选项 在该目录下创立与 SRC 同名的文件, 并将 SRC 文件中的内容复制到 DEST 中
多个文件 提醒谬误 提醒谬误 在该目录下别离创立与原文件同名的文件, 并将 SRC 文件中的内容一一复制到对应的 DEST 中
目录文件 创立指定 DEST 同名目录, 复制 SRC 目录中所有文件至 DEST 下 提醒谬误 在 DEST 下创立与原目录同名的目录, 并将 SRC 中的内容复制到新目录中

mv 格局

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

罕用选项

-i # 交互式
-f # 强制
-b # 指标存在, 笼罩前先备份
源文件 指标文件不存在 指标文件存在且为文件 指标文件存在且为目录
一个文件 报错 源文件名会变成为指标文件名, 并笼罩曾经存在的同名文件, 如果两者在同一目录下则是改名 源文件会挪动到此目录, 且文件名不变
多个文件 报错 报错 源文件会挪动到此目录, 且文件名不变
目录文件 报错 报错 源文件会挪动到此目录, 且文件名不变

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

Linux 给程序提供三种 I/O 设施

  • 规范输出(STDIN) -0 默认承受来自终端窗口的输出
  • 规范输入(STDOUT)-1 默认输入到终端窗口
  • 规范谬误(STDERR) -2 默认输入到终端窗口

IO 重定向的类别:

  • 规范输入重定向
  • 标出谬误重定向

反对的操作符

1> 或 >     把 STDOUT 重定向到文件
2>          把 STDERR 重定向到文件
&>          把所有输入重定向到文件

重定向能够改写原文件内容, 能够用 set 来管制是否笼罩

set -C 禁止将内容笼罩已有文件, 但可追加,利用 >| 仍可强制笼罩 
set +C 容许笼罩,默认

也能够追加

>> 追加规范输入重定向至文件 
2>> 追加规范谬误重定向至文件

别离定位不同地位

COMMAND > /path/to/file.out 2> /path/to/error.out

能够合并规范输出和谬误输入为同一个数据流进行重定向

&> 笼罩重定向 
&>> 追加重定向
COMMAND > /path/to/file.out 2>&1 (程序很重要) 
COMMAND >> /path/to/file.out 2>&1

也能够合并多个程序

(cal 20019 ; cal 2020) > all.txt
{ls;hostname;} > /data/all.log
  • 规范输出重定向

从文件中导入STDIN,代替以后终端的输出设施,应用 < 来重定向规范输出

某些命令可能承受从文件中导入的STDIN

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

cat /etc/issue | tr a-z A-Z > /tmp/issue.out

4、请总结形容用户和组治理类命令的应用办法并实现以下练习:

查看 创立 批改 删除
用户 getent passwd user useradd user usermod user userdel user
groups user groupadd group groupmod group groupdel group

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

[root@acer /home/acer]#groupadd -g 2019 distro
[root@acer /home/acer]#getent group distro
distro:x:2019:

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

[root@acer /home/acer]#useradd mandrive -u 1005 -g distro
[root@acer /home/acer]#getent passwd mandrive
mandrive:x:1005:2019::/home/mandrive:/bin/bash

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

[root@acer /home/acer]#useradd -u 1100 -m -d /home/linux mageia
[root@acer /home/acer]#getent passwd mageia
mageia:x:1100:1100::/home/linux:/bin/bash

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

[root@acer /home/acer]#passwd -x 7 mageia
Adjusting aging data for user mageia.
passwd: Success
[root@acer /home/acer]#passwd mageia
Changing password for user mageia.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully
[root@acer /home/acer]#getent shadow mageia
mageia:$6$1U35dlDbUbxrK3pW$T5nifyPOFpZWAKburQCwpJUEs/rTVZqbbcKcyoefkK1ySIBmU8H8erceJ.JNYQj.z81elnWvWwOdGzOjASOZT1:18791:0:7:7:::

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

[root@acer /home/acer]#userdel mandrive
[root@acer /home/acer]#ll /home
total 4
drwx------. 15 acer   acer   4096 Jun 14 02:13 acer
drwx------.  3 mageia mageia   78 Jun 14 02:45 linux
drwx------.  3   1005 distro   78 Jun 14 02:29 mandrive
drwx------.  3 test   test     78 Jun 12 12:35 test
drwx------.  3 tt     tt       78 Jun 12 12:26 tt

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

[root@acer /home/acer]#useradd -u 2002 -g distro -G peguin slackware
[root@acer /home/acer]#getent passwd slackware
slackware:x:2002:2019::/home/slackware:/bin/bash
[root@acer /home/acer]#groups slackware
slackware : distro peguin

(7)、批改 slackware 的默认 shell 为/usr/bin/sh

[root@acer /home/acer]#chsh -s /usr/bin/sh slackware
Changing shell for slackware.
Shell changed.
[root@acer /home/acer]#getent passwd slackware
slackware:x:2002:2019::/home/slackware:/usr/bin/sh

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

[root@acer /home/acer]#groupadd admins
[root@acer /home/acer]#usermod -a -G admins -s /usr/sbin/nologin slackware
[root@acer /home/acer]#getent passwd slackware
slackware:x:2002:2019::/home/slackware:/usr/sbin/nologin
[root@acer /home/acer]#su slackware
This account is currently not available.

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

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

[root@acer ~]#chown user1:user1 /data/test
[root@acer ~]#ll /data
total 0
-rw-rw-r--. 1 acer  acer  0 Jun 14 02:13 fstab.bak
drwxr-xr-x. 2 user1 user1 6 Jun 14 03:04 test

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

chmod o+w /data/test
[root@acer ~]#ll /data
total 0
-rw-rw-r--. 1 acer  acer  0 Jun 14 02:13 fstab.bak
drwxr-xrwx. 2 user1 user1 6 Jun 14 03:04 test

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

[user1@acer root]$ touch /data/test/a{1..4}.sh
[root@acer ~]#chattr +i /data/test/a{1..4}.sh
[root@acer ~]#lsattr /data/test
----i--------------- /data/test/a1.sh
----i--------------- /data/test/a2.sh
----i--------------- /data/test/a3.sh
----i--------------- /data/test/a4.sh

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

[root@acer ~]#setfacl -b /data/test/a{1..4}.sh
退出移动版