标准输入和标准输出:

类型            设备文件            文件描述编号            默认设备

标准输入       /dev/stdin                0                    键盘

标准输出       /dev/stdout               1                   显示器

标准错误输出   /dev/stderr               2                   显示器


> file  :标准输出到文件

2>  file:标准错误输出到文件

&>  file:正确和错误的都输出到文件

>>  file:标准输出追加到文件,不覆盖文件原内容

2>/dev/null :将错误输出到“黑洞”

 

set -C  :禁止将内容覆盖已有文件,但可以追加

set +C  :开启将内容覆盖已有文件



(cal2007;cal2008)> all.txt

合并多个程序用小括号括起来,中间用分号隔开


tr命令:


     tr命令主要起到“翻译”的作用。例如:tr [a-z] [A-Z] 就是将所有的小写字母换成大写字母。

     tr命令常用的参数:

         -d  :删除所有使用第一个字符集的字符

[root@localhost ~]# tr -d 'abd' 

abcd

c

         -c  :取字符集的补集

[root@localhost ~]# tr -c 'n' 'c'<2.sh

cccccncccccccccccccccccccccccccccccccc


         -s  :把连续重复的字符以单独一个字符表示

[root@localhost ~]# tr -s 'xab'

xxxxxaaaaabbbbbcccc

xabcccc









相关练习:

1、file1文件的内容为:”1 2 3 4 5 6 7 8 9 10” 计算出所有数字的总和

    cat file1 | tr ' ' '+' | bc

    echo $[1+2+3+4+5+6+7+8+9+10]

    echo "1+2+3+4+5+6+7+8+9+10" | bc


2、处理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的数字和空格

     echo "xt.,l 1 jr#!$mn2 c*/fe3 uz4" | tr -d "xt.,ljr#!$mnc*/feuz"


3、将PATH变量每个目录显示在独立的一行

     echo $PATH | tr ":" "\n"


4、删除指定文件的空行

     cat /root/1.sh | tr -s "\n"


5、将文件中每个单词(字母)显示在独立的一行,并无空行

     cat /root/1.sh | tr " " "\n" | tr -s "\n"


6、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"

     useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo


7、创建下面的用户、组和组成员关系

名字为admins 的组

用户natasha,使用admins 作为附属组

用户harry,也使用admins 作为附属组

用户sarah,不可交互登录系统,且不是admins 的成员,natasha,harry,sarah密码都是centos

  

  1 #!/bin/bash

  2 groupadd admins

  3 useradd -G admins natasha

  4 useradd -G admins harry

  5 useradd -s /sbin/nologoin sarah

  6 echo "centos" | passwd --stdin natasha

  7 echo "centos" | passwd --stdin harry

  8 echo "centos" | passwd --stdin sarah