INEWUP'S BLOG

Shell的输入与输出

输入输出的命令: 1.echo命令可以显示文本行货变量,或者把字符输出到文件。    -e 解析转义字符(转义符:c,f,t,n)    -n 回车不换行,linux系统默认回车换行 2.read语句可以从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。    read variable1 variable2....    如果只制定了一个变量,那么read将会把所有的输入赋给该变量,直至遇到第一个文件结束符或     回车;如果给出了多个变量,他们按顺序分别被赋予不同的变量。shell将用空格作为变量之间的    分隔符. 3.cat是一个简单而通用的命令,可以用它来显示文件内容、创建文件,还可以用它显示控制字符。    -v 显示控制字符    使用cat命令时要注意:他不会在文件分页符处停下来;他会一下显示完整文件。如果希望每次显    示一页,可以使用more或cat命令的输出通过管道传递到另外一个具有分页功能的命令more、less    中。    cat filename 显示文件内容】    cat filename1 filename2 filename3同时显示三个文件内容。    cat filename1 filename2 filename3 > myfile 把三个文件的内容输出到一个文件当中。    cat -v dos.txt 显示控制符(主要window中的一些控制符) 4.管道-可以通过管道把一个命令的输出传递给另一个命令作为输入。管道用竖杠|表示。    格式:命令1|命令2    5.tee命令把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中。    tee -a files(-a选项意思是把内容追加到一个文件后面,如果不加-a会替换文件的内容)    如果希望在看到输出的同时,也将其存入一个文件,那么这个命令再合适不过了。    一般用于管道之后,没有管道这个命令其实没有意义了。

输入输出的概念:    在shell中执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述来引用这些文件。    由于文件描述符不容易记忆,shell同时也给出了相应的文件名。    输入文件-标准输入 0(缺省是键盘,也可以是文件或其他命令的输出)    输出文件-标准输出 1(缺省是屏幕,也可以是文件)    错误输出文件-标准错误 2(缺省是屏幕,也可以是文件) 文件重定向:    command > filename 把标准输出重定向到一个新文件中    command >> filename 把标准输出重定向到一个文件中(追加)    command 1 > filename 把标准输出重定向到一个新文件中(等同于1)    command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中    command 2 > filename 把标准错误输出重定向到一个文件中    command 2 >> filename 把标准输出重定向到一个文件中(追加)    command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中(追加)    command filename2 command命令以filename文件作为标准输入,以filename2文件

作为标准输出。    command    command    实例:# cat >>test.txt          >hello,I am using a $TERM terminal          >and, myusername is $LOGNAME          >bye....          >ok          # cat test.txt          hello,I am using a $TERM terminal          and, myusername is $LOGNAME          bye....    command    command >&m 把标准输出重定向到文件描述符m中    command    exec命令可以用来替代当前shell;换句话说,并没有启动子shell,使用这一命令时任何现有环 境都将被清除,并重新启动一个shell。    exec./command    其中的command通常是一个shell脚本。    对文件描述符进行操作的时候(也只有在这时)他不会覆盖你当前的shell。

文件描述符:    系统中有12个文件描述符,启动0、1、2是固定的,代表标准输入、标准输出、标准错误输出。    3-9文件描述符是可以被我们使用的