Linux shell的输入输出

echo
--echo命令可以显示文本行或变量,或者把字符串输入到文件
--echo [option] string
  -e 解析转义字符    例如:echo -e "nimenhao\nasfdsaf"    打印发生换行
  -n 回车不换行        详解:一般在命令行打印字符串,光标会在下一行显示,但是使用echo -n参数,可以使打印的文字和光标在同一行

read
--read语句可以从键盘或文件的某一行文本中读取信息,并将其赋值给一个变量
--read var1 var2...    若只指定了一个变量,那么read将会把所有的输入赋给该变量,直至遇上第一个文件结束符或者回车。  如果给了多个变量,他们会按照顺序分别赋予不同的变量。shell将用空格作为变量之间的分隔符
--注意:当只有一个变量的时候,就算输入的时候加了空格,也会将所有输入赋值给这个变量
cat
--cat是一个简单而通用的命令,可用它显示文件内容、创建文件,还可以用它来显示控制字符
--cat [options] filename1 filename2
--"-v"    显示控制字符
--使用cat命令时注意,他不会在文件分页处停下来,他会一下子显示完 整个文件
  如果希望每次显示一页,可以使用more命令 或把cat命令的输出通过管道传递到另外一个具有分页功能的命令(more、less)中。
--例子:cat filename | more
--cat命令可以同时显示多个文件    cat filename1 filename2
管道(|)
--可以通过管道把一个命令的输出传递给另外一个命令做输入。
tee
--tee命令把结果输出到标准输出,另一个副本输出到相应文件
--tee -a file         -a:表示追加    不加-a表示覆盖
--该命令一般用于管道之后(一般是看到输出,并保存文件)
文件重定向
--改变程序运行的输入来源和输出地点
--command > filename    把标准输出重定向到一个新文件中
--command >> filename    把标准输出重定向到一个文件中(追加)
--command 1> filename    把标准输出重定向到一个新文件中
  注意"1>"这是数字1,并且数字1与">"之间不能有空格
--command > filename 2>$1(数字1)    把标准输出和标准错误一起重定向到一个文件中
  注意:对于命令"2>$1","2>&"中间不可以添加任何的空格,但是和数字1之间可以加空格,也可以不加空格
--command 2> filename    把标准错误重定向到一个文件中
--command 2>> filename    把标准输出重定向到一个文件中(追加)
--command >> filename 2>&1    把标准输出和标准错误一起重定向到一个文件中(追加)
--command < filename > filename    command命令以filename文件作为标准输入,以filename2文件作为标准输出
--command < filename    command命令以filename文件作为标准输入
--command << delimiter    从标准输入中读入,直到遇到delimiter分界符
--command <& m    把文件描述符m作为标准输入
--command >& m    把标准输出重定向到文件描述符m中
--command <&-    关闭标准输入
exec
--第一种用法:exec命令可以用来代替当前shell:换句话说,如果没有启动shell,使用这一命令时,任何现有环境都将被清除,并重新启动一个shell
--exec command command    command通常指的是一个shell脚本,exec执行一个shell脚本时,会用当前shell程序替换bash程序,导致当前bash退出
--第二种用法:exec对文件描述符进行操作时,也只有这个时候,它不会覆盖你的当前shell。

时间: 2024-12-17 13:01:30

Linux shell的输入输出的相关文章

Linux Shell系列教程之(十六) Shell输入输出重定向

本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为大家介绍下Shell输入输出重定向的相关知识. 一.Shell输入输出重定向概述 在了解重定向相关知识之前,我们先来看看Linux的文件描述符. Linux的文件描述符可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 用

linux shell数据重定向

linux shell下常用输入输出操作符是: 1.  标准输入   (stdin) :代码为 0 ,使用 < 或 << : /dev/stdin -> /proc/self/fd/0   0代表:/dev/stdin 2.  标准输出   (stdout):代码为 1 ,使用 > 或 >> : /dev/stdout -> /proc/self/fd/1  1代表:/dev/stdout3.  标准错误输出(stderr):代码为 2 ,使用 2>

Linux shell管道与重定向及实例分析

一.管道 管道命令操作符是:"|",它仅能处理由前面一个命令的正确输出信息,也就是standard output的信息,对于stdandard error信息没有直接处理能力:然后,传递给下一个命令,作为标准输入standard input. linux管道执行过程: 管道命令使用说明: command1正确输出,作为command2的输入,然后command2的输出作为command3的输入,command3的输出打印到屏幕上: 通过管道:command1.command2的正确输出

Linux Shell系列教程之(七)Shell输出

本文是Linux Shell系列教程的第(七)篇,更多shell教程请看:Linux Shell系列教程 与其他语言一样,Shell中也有输出操作,而且在实际应用中也是非常重要的,今天就为大家介绍下Shell输出操作. Shell echo命令 echo命令是Shell的一个内部指令,用于在屏幕上打印出指定的字符串. 命令格式: echo arg 转义字符 像其他高级语言一样,Shell也使用反斜杠“\”作为转义字符. 例子: echo "\"It is a test\"&q

Linux Shell常用技巧(十一) 交互式使用shell

Linux Shell常用技巧(十一) 交互式使用shell 二十二. 交互式使用Bash Shell:     1.  用set命令设置bash的选项:    下面为set主要选项的列表及其表述: 选项名 开关缩写 描述 allexport -a 打开此开关,所有变量都自动输出给子Shell. noclobber -C 防止重定向时文件被覆盖. noglob -d 在路径和文件名中,关闭通配符. #打开该选项    /> set -o allexport   #等同于set -a    #关闭

linux shell数据重定向(输入重定向与输出重定向)详细分析(转载)

本文为转载 原文链接 http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作. 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值. linux启动后,会

Linux Shell常用技巧(十一)

二十二. 交互式使用Bash Shell:     1.  用set命令设置bash的选项:    下面为set主要选项的列表及其表述: 选项名 开关缩写 描述 allexport -a 打开此开关,所有变量都自动输出给子Shell. noclobber -C 防止重定向时文件被覆盖. noglob -d 在路径和文件名中,关闭通配符. #打开该选项    /> set -o allexport   #等同于set -a    #关闭该选项    /> set +o allexport  #等

Linux Shell sort 指定排序第几列

ip.txt 里存储着ip信息 统计排序后取前10条 awk '{cnt[$1]++} END{for (ip in cnt) print ip":"cnt[ip]}' ip.txt | sort -k 2 -rn -t":" | head -n 10 awk '{cnt[$1]++} END{for (ip in cnt) print cnt[ip],ip}' ip.txt | sort -rn | head -n 10 sort -k  根据第几列排序  -n

linux shell脚本执行错误:bad substitution

脚本test.sh内容: #!/bin/bash read pressKey indexes=0 c=${pressKey:indexes:1} 使用调试方式执行:sh -x test.sh第3行总出现bad substitution提示信息. 百思不得其解: 于是百度,查到一条有用信息,这与linux shell使用的是/bin/sh,还是/bin/bash有关系.我的脚本中指定使用的是/bin/bash shell,但是我在调试的时候使用的是sh shell,因此调试时导致错误提示信息. 解