标准输入和标准输出:shell
类型 设备文件 文件描述编号 默认设备centos
标准输入 /dev/stdin 0 键盘bash
标准输出 /dev/stdout 1 显示器ide
标准错误输出 /dev/stderr 2 显示器翻译
> file :标准输出到文件字符串
2> file:标准错误输出到文件it
&> file:正确和错误的都输出到文件io
>> file:标准输出追加到文件,不覆盖文件原内容class
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
相关练习:
一、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
二、处理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的数字和空格
echo "xt.,l 1 jr#!$mn2 c*/fe3 uz4" | tr -d "xt.,ljr#!$mnc*/feuz"
三、将PATH变量每一个目录显示在独立的一行
echo $PATH | tr ":" "\n"
四、删除指定文件的空行
cat /root/1.sh | tr -s "\n"
五、将文件中每一个单词(字母)显示在独立的一行,并没有空行
cat /root/1.sh | tr " " "\n" | tr -s "\n"
六、建立用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"
useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo
七、建立下面的用户、组和组成员关系
名字为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