注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

云之南

风声,雨声,读书声,声声入耳;家事,国事,天下事,事事关心

 
 
 

日志

 
 
关于我

专业背景:计算机科学 研究方向与兴趣: JavaEE-Web软件开发, 生物信息学, 数据挖掘与机器学习, 智能信息系统 目前工作: 基因组, 转录组, NGS高通量数据分析, 生物数据挖掘, 植物系统发育和比较进化基因组学

网易考拉推荐

LINUX-Shell输入与输出  

2012-05-17 22:44:03|  分类: linux&shell |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

echo
使用echo命令可以显示文本行或变量,或者把字符串输入到文件。它的一般形式为:
echo string
echo命令有很多功能,其中最常用的是下面几个:
\c 不换行。
\f 进纸。
\t 跳格。
\n 换行。

linux中使用转义符时,需要使用-e参数,否则转义符不生效
# echo -e “aaa \n bbb”
aaa
 bbb
# echo “aaa \n bbb”
aaa \n bbb

可以用echo输出系统变量,或者系统命令的结果
# echo “my home is : $HOME”
my home is : /root

# echo “The time is : `date`”
The time is : Sun Jun 13 13:03:47 CST 2010

注意date命令两边的符号不是单引号!

引号是一个特殊字符,所以必须要使用反斜杠\来使shell忽略它的特殊含义
# echo “\”/dev/rmt0″\”
“/dev/rmt0″

read
使用r e a d语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。如果只指定了一个变量,那么r e a d

将会把所有的输入赋给该变量,直至遇到第一个文件结束符或回车。

read varible1 varible2 …
例如:
# read firstname lastname
Arthur MR Liu
# echo $firstname
Arthur
# echo $lastname
MR Liu

cat

cat是一个简单而通用的命令,可以用它来显示文件内容,创建文件,还可以用它来显示控制字符。

cat命令的一般形式为:
cat [options] filename1 … filename2 …
cat命令最有用的选项就是:
-v 显示控制字符
显示文件
$ cat myfile
创建文件
$ cat > myfile
结束按< C T R L – D >

合并文件
$ cat myfile1 myfile2 myfile3 > bigfile
管道
可以通过管道把一个命令的输出传递给另一个命令作为输入。管道用竖杠|表示。

命令1 |命令2
其中|是管道符号。

sed、awk和grep都很适合用管道,特别是在简单的一行命令中。在下面的例子中, who命令的输出通过管道传递给awk命令,以便只显示用户名和所在的终端。
# who | awk ‘{print $1″\t”$2}’
root    pts/1

# df -k | awk ‘{print $1}’ | grep -v “Filesystem”
/dev/mapper/VolGroup00-LogVol00
8030648
/dev/sda1
tmpfs
tee
t e e命令作用可以用字母T来形象地表示,即水管中的三通。
# who | tee who.out
root     pts/1        2010-06-13 11:45 (192.168.164.1)
# cat who.out
root     pts/1        2010-06-13 11:45 (192.168.164.1)

标准输入输出
输入文件—标准输入0
输出文件—标准输出1
错误输出文件—标准错误2

为什么会有一个专门针对错误的特殊文件?这是由于很多人喜欢把错误单独保存到
一个文件中,特别是在处理大的数据文件时,可能会产生很多错误。

command > filename 把把标准输出重定向到一个新文件中
command >> filename 把把标准输出重定向到一个文件中(追加)
command 1 > fielname 把把标准输出重定向到一个文件中
command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中
command 2 > filename 把把标准错误重定向到一个文件中
command 2 >> filename 把把标准输出重定向到一个文件中(追加)
command >> filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中(追加)
command < filename >filename2 把command命令以f i l e n a m e文件作为标准输入,以f i l e n a m e 2文件为标准输出
command < filename 把command命令以f i l e n a m e文件作为标准输入
command << delimiter 把从标准输入中读入,直至遇到d e l i m i t e r分界符
command <&m 把把文件描述符m作为标准输入
command >&m 把把标准输出重定向到文件描述符m中
command <&- 把关闭标准输入

cat passwd | awk -F: ‘{print $1}’ | sort >sort.out

root将收到一个邮件,其中含有文件contents.txt中的内容:
#mail root < contents.txt

重定向操作符command << delimiter是一种非常有用的命令,通常都被称为“此处”文挡。
shell将分界符d e l i m i t e r之后直至下一个同样的分界符之前的所有内容都作为输入,遇到下一个分界符,

shell就知道输入结束了# cat >> myfile1 << EOF
> aaa
> bbb
> ccc
> eof
> EOF
# cat myfile1
aaa
bbb
ccc
eof
# grep “standard” > grep.out 2>&1
在上面的例子中, grep命令的标准输出和标准错误都被重定向到grep.out文件中
exec
exec命令可以用来替代当前shell
exec命令的一个常见用法就是在用户的.profile最后执行时,用它来执行一些用于增强安全性的脚本。

文件描述符
可以理解为文件的代号

# vi readtest
exec 4<&0 0<myfile1
read line1
read line2
exec 0<&4
echo $line1
echo $line2

# cat myfile1
aaa
bbb
ccc
eof

# chmod 744 readtest
# ./readtest
aaa
bbb

  评论这张
 
阅读(1610)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016