重定向和管道的应用与用户、组的创建及更改

    

一.输入、输出重定向与tr指令的应用

   程序的数据流有三种,分为标准输入,标准输出和错误输出。其中的文件描述符fd(file descripter)分别使用0,1,2表示。数据流的输入输出依靠于鼠标键盘和显示器这些终端设备连接。但是当我们想要将这些数据流导向(或被导向)指定的文件或设备时,就需要重定向的概念了。

    1.输入重定向

  输入重定向的符号为:<  将符号后面的设备或文件导入前面的命令中。

举例:~]#cat < /etc/issue  此命令表示显示/etc/issue的文件内容


    2.输出重定向

  输出重定向的符号位:>  将符号前面的命令输出导入后面的设备或文件中,其中如果被导入的文件内存在内容,> 默认覆盖原内容。如果不想将原内容覆盖,使用 >> 符号(表示追加输出特性)即可。当输出流为错误输出流时,如果想将其重定向至指定文件时,需要使用2>或2>>才可以。如果想要合并正常输出流与错误输出流,CentOS6和以前的版本使用2>&1,用法如下:

  COMMAND >(>>) /path/to/somefiles  2>&1

而CentOS7可以使用&>(>>)的形式,用法如下:

  COMMAND &> /path/to/somefiles


    3.tr指令的相关使用方法

  tr:translate or delete characters 转换或删除字符命令。

  使用格式:tr [option]...  SET1 [SET2]  把输入的数据当中的字符,凡是在SET1定义范围内出现的,

统统对未转换为SET2出现的字符,用法如下:

  tr [a-z] [A-Z] < /etc/issue   /etc/issue内容小写字母全部变为大写字母。

  其最常见选项的用法为-d,表示删除字符:tr -d SET1 < /path/from/simefile.  当我们更改字符时,tr命令常常与glob通配符一起使用,用以达到更方便的用途。

举例:~]#tr -d [[:digit:]] < /etc/issue >/testdir/file1 表示删除/etc/issue内的所有数字字符,将新内容重定向输出至新文件/testdir/file1中,如果/testdir目录下不存在名为file1的文件,就新创建一个。

  tr命令的选项具有多种形式,具体使用方式可以参考man tr在帮助手册中查询。


二.管道的使用以及其灵活性

    当系统执行一个命令得出结果显示在终端设备上后,用户如果需要这个结果输出并再次使用就会显得非常麻烦。为了解决这一问题,系统定义管道的概念:连接程序,实现将前一个命令的输出直接向至后一个程序当输入,符号用 | 来表示。

举例:~]#echo “dafeigezuishuai”| tr [a-z] [A-Z] 的输出结果为:DAFEIGEZUISHUAI


三.用户、组的创建、修改以及删除命令

    linux系统众所周知是一个可以多用户操作的系统,为了更好的管理文件的使用权限,系统定义了文件的属主以及属组的概念。当用户使用 ll(ls -l的别名) 指令时,能够显示目录下文件的详细信息,其中显示了文件的类型,权限,以及属主和属组,大小,创建日期以及名称。其用户与所属组的信息都记录在/etc/passwd下,使用cat或tail可以快速查看。

    1.用户添加、修改与删除

  用户的创建、修改与删除的命令分别为:useradd、usermod、userdel.其命令格式都为如下:

  useradd [option]... USERNAME

  usermod [option]... USERNAME

  userdel [option]... USERNAME

  其中选项有多种,下面列出常用选项:

  -u:指定(更改)UID;

  -g:指定(更改)基本组(此组必须存在)

  -c:指定(更改)注释信息

  -d:指定(更改)家目录

  -s:指定(更改)用户的默认shell

  -G:指定(更改)用户所属的附加组

  useradd -r :创建系统用户

  usermod -l :修改用户名 eg:usermod -l mcgeewang mcgee表示将mcgee用户名改为mcgeewang,前提时mcgee用户一定要存在

  usermod -o:忽略重复信息修改

  userdel -r :删除用户时一并删除其家目录


    2.组的添加修改以及用户的归纳

  组的创建以及修改删除与用户基本相同,其命令为:groupadd、groupmod、groupdel.其中注意的是修改组名称选项为-n而非-l:

  groupmod -n newname oldname

  查看组所包含的用户信息配置文件位置在/etc/group中,其显示格式为:

  admins:123:1003:natasha,harry  表示admins组包含natasha,harry两个组,组密码为123,GID为1003