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文件描述符是可以被我们使用的