6、将输出重定向到文件或程序

标准输入、标准输出和标准错误

一个运行的程序,需要从某个位置读取输入并将输出写入屏幕或者文件,从shell提示符运行的命令通常会从键盘中读取其输入,并将输出发送到终端窗口。

进程使用称为文件描述符的编号通道来获取输入并发送输出。所有进程在开始时需要三个文件的描述符,标准输入stdin(通道0)从键盘读取输入,标准输出stout(通道1)将正常输出发送到终端,标准错误stderr(通道2)将错误消息发送到终端。如果程序打开链接至其他文件的单独链接。则可能要使用编号的文件描述符。

重定向输出到文件:I/O重定向将默认目标位置替换为代表文件或设备的文件名

  >aa           重定向stdout 以覆盖文件

  >>aa           重定向stdout 以附加到文件

  2>AA           重定向stderr 以覆盖文件

  2>/dev/null     stderr错误消息重定向到/dev/null,从而将它丢弃

  2>AA    2>&1  或   &>aa    重定向stdoutstderr以覆盖同一个文件

  >>AA    2>&1  或   &>>AA  重定向stdoutstderr以追加到同一个文件

7、用户和组

用户:系统中每个进程都作为一个特定的用户运行。每个用户会一个特定的用户所有。对文件和目录的访问都受到用户的限制。

Id    显示当前已登录用户的信息

Ls   -l  查看与某一文件或目录项关联的用户。

Ps  au  查看与某一终端相关连的所有进程信息,及与进程相关连的用户

组:与用户一样,组也有名称和编号,本地组在/etc/group中定义

主要组:每个用户有且只有一个主要组,通常用户创建的新文件为主要组所有。新建用户的主要组是名称与用户相同的新建组。用户专用组的唯一成员。

补充组:用户可以是零个或多个补充组的成员。 

ROOT用户:大多数操作系统具有某种类型的超级用户,既具有系统的全部权限的用户,在linux中,该用户就是root用户,该用户的特权高于文件系统上的一般权限,用于管理系统。

大多数用户都仅受root控制,但USB设备等可移动的设备就可以有一般用户控制。

Su  -  切换用户

Sudo   可以使用户根据/etc/sudoers文件中的设置,而被允许以root或其他用户身份运行命令,sudo要求用户输入其自己的密码以身份验证,而不是输入他们正在尝试访问的账户的密码。不需要交出root密码。

Useradd  创建用户

Useradd  -g   为用户制指定主要组。

Useradd  -G   为用户指定一组补充组

Useradd  -a    将用户附加到所给的补充组而不该将该用户从其他组删除

Useradd  -d    为用户指定新的主目录

Useradd  -m    将目录移到新的位置与-d搭配使用

Useradd  -s     为用户账户指定新的登陆shell

Useradd   -L    锁定用户账户

Useradd   -U    解锁用户账户

Passwd  xx       给用户xx给密码

Groupadd  创建组

Groupadd  -g     指定具体GID

Groupadd  -n     制定新的名称

Groupadd  -r     使用/etc/login.defs 文件所列有效系统的GID编号范围内的GID创建系统组。

Groupdel         删除组

Usermod         变更组成员资格

Usermod     -g   改变用户的主要组

Usermod    -aG   aa  bb    将用户aa添加到补充组bb