Linux-基础学习(3)
一、输入输出的管理
在linux中,正确的输出编号为1,错误的输出编号为2。
我切换到普通用户时,执行find /etc -name passwd 命令后会输出如下(find /etc -name passwd : 在/etc文件夹下查找所有文件名中含有passwd字 符的文件)
find: ‘/etc/pki/CA/private’: Permission denied ##没有进入权力,报错 find: ‘/etc/pki/rsyslog’: Permission denied find: ‘/etc/audit’: Permission denied /etc/passwd ##正确输出 find: ‘/etc/polkit-1/rules.d’: Permission denied find: ‘/etc/polkit-1/localauthority’: Permission denied find: ‘/etc/dhcp’: Permission denied find: ‘/etc/selinux/targeted/modules/active’: Permission denied find: ‘/etc/lvm/archive’: Permission denied find: ‘/etc/lvm/backup’: Permission denied find: ‘/etc/lvm/cache’: Permission denied find: ‘/etc/grub.d’: Permission denied /etc/pam.d/passwd ##正确输出 find: ‘/etc/audisp’: Permission denied find: ‘/etc/firewalld’: Permission denied find: ‘/etc/cups/ssl’: Permission denied find: ‘/etc/ipsec.d’: Permission denied find: ‘/etc/libvirt’: Permission denied find: ‘/etc/sudoers.d’: Permission denied find: ‘/etc/named’: Permission denied
上面显示所有的查找信息,其中有28条是因为所在路径该用户没有权限导致查找失败,2条是正确的输出。
我们可以使用下面的命令对我们查找结果进行过滤显示。
1、find /etc -name passwd > flie #重定向正确输出
说明:将所有正确输出放入文件file中,将所有的错误结果显示出来,与find /etc -name passwd 1> flie
相同( 1 可以省略)。
2、find /etc -name passwd 2> file #重定向错误输出
说明:将所有错误信息放入文件file中,将所有的正确结果显示出来
3、find /etc -name passwd &> file #重定向所有输出
说明:将所有查找信息不论错与对全部放入放入文件file中。
注意:当我们执行find /etc -name passwd &>file 时我们并没有显示任何输出信息,但是我们cat file 后会发现废了文件中的所有内容
4、find /etc -name passwd >>file #追加正确输出
将输出的正确信息追加放入 file文件中,绝对不会是覆盖原文件
5、find /etc -name passwd 2>>file #追加错误输出
将所有的输出信息追加放入 file中
6、find /etc -name passwd &>>file #追加所有输出
将所有的输出信息追加输入到 file文件中
7、当我们不想将信息输出到一个文件中,也不想显示他,可以使用下面命令
find /etc -name passwd &>> /dev/null
这样我们可以将所有的信息全部放入垃圾箱中
8、 2>&1 #把错误的输出编号由2变成1
在管理输出的时候我们可以使用管道 ,管道的作用是将前一条命令的输出变成管道后命令的输入,例如:
ls /bin | wc -l #统计ls /bin 命令输出的行数
date |tee file |wc -l #tee命令复制date命令的输出到file中,并统计输出行数
系统中错误的输出是无法通过管道的。但是我们可以使用 2>&1 将错误的编码变为正确的编码1 进行输出
练习:
我们需要只使用一条命令来统计所有的错误的命令总共有多少条?(即在本例中 使其输出28)
解答 : find /etc -name passwd 2>&1 >file | wc - l
二、用户及用户的管理
(一)用户的理解
GID:为GroupId,即组ID,用来标识用户组的唯一标识符
UID:为UserId,即用户ID,用来标识每个用户的唯一标示符
用户:密码:uid:gid:说明:家目录:用户使用的shell
useradd 参数 参数 用户名
-u uid student #指定student用户的uid
-g 组名 student #指定student用户的初始组信息,这个组必须存在
-G 家族 student #指定student用户家族,这组必须存在
-c 说明 student #student用户说明
-d 家目录 student #student用户的家目录
-s student #student用户所使用的shell, /etcshells记录了用户能使用shell的名字
练习:创建一个uid=1003 属于student组的 用户说明为teacher的 用户家族为student的 不支持登录的teachertest用户
2)、用户删除
suerdel -r student #删除student用户的信息和系统配置
注意:删除用户时 一定要使用 -r命令 不然一些写属于该用户的系统设置和文件会不能完全删除,导致再次创建同名用户时可能会失败
(3)、组的建立
groupadd -g [gid] groupname #建立一个组名为groupname的组
groupdel 组名字 #删除组
(4)、用户id信息查看
id 参数 用户
-u student ##用户uid
-g student ##用户初始组id
-G student ##用户所有所在组id
-n student ##显示名称而不是id数字
-a student ##显示所有信息
(5).用户信息更改
usermod 参数 参数 用户
-l 用户新名称 student #更改用户名称
-u uid student #更改uid
-g gid student #更改gid
-G 附加组 student #更改附加组
-aG 附加组 student #添加附加组
-c 说明 student #更改说明
-d 家目录 student #更改家目录指定
-md 家目录 student #更改家目录指定及家目录名称
-s student #更改shell
-L student ##冻结帐号
-U student ##解锁
三、小练习
这里的练习答案及操作流程日后还有待完善,待续...