Chinaunix首页 | 论坛 | 博客
  • 博客访问: 407368
  • 博文数量: 101
  • 博客积分: 2207
  • 博客等级: 大尉
  • 技术积分: 2508
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-19 20:45
文章分类

全部博文(101)

文章存档

2013年(15)

2012年(86)

我的朋友

分类: LINUX

2012-11-13 17:26:31

转载自http://blog.csdn.net/z237654601/article/details/6336951

数据重定向shell基础(2)2011-04-20

   linux中有对数据的重定向的操作有:标准输入、标准输出、错误输出。

 

代码表示

字符表示

标注输入

0

<(覆盖输入)或<<(追加输入)

标准输出

1

>>>(同上)

错误输出

2

2>2>>(同上)

 

   输出重定向使用示例:

      1  eg ls l /etc > /home/redhat/etc.dir 意为:以ls 方式列出/etc 下的内容,然后覆盖输出到/home/redhat/etc.dir中,如果把>改为>>就表示追加输入到/etc/redhat/etc.dir中。如果为了防止追加输出地内容覆盖掉原来的文件可以用命令 set 执行该命令后输出文件如果存在,则会提示:cannot overwrite existing file   set +C取消上述命令。

     2  ls /tec >/tmp/etc.out 2>/tmp/etc.err   意为:列出/tec下的文件,如结果正确输出到/tmp/etc.out中,如果结果错误则输出到/tmp/etc.err中。

      3  &> 表示把1 2重定向到一个位置,即:&>=2>&1,&>后面可以直接加文件,而2>&1后面不能加文件。

      在上面表格中,分别用1 2 3代表不同的含义,为了方便,我们也可以定义数字代替一定的含义(数字只能为3-9),但通常只能定义为文件描述符,其方法为: exec N>>/filename 如:exec 3>>/etc/issue。表示用数字3代替/etc/issue 。使用方法:cat /etc/issue>&3。但这样使用的前提是:必须set +C

      在数据重定向时,有时想让输出的内容输入到文件中,同时在屏幕上显示可用命令 tee 使用方法:ls /etc | tee /tmp/etc.out。这里使用到了 | 这是管道命令,在下面介绍。

输入重定向使用:通常在一般操作中很少使用到输入重定向,但在shell编程中可能会用到。1 cat 。将多行键盘输入的内容重定向到某一输出中,eg cat <表示:输入内容,直到输入END才结束。cat <>/tmp/a.txt或者cat <>END都表示输入文件直到END结束并把内容保存在/tmp/a.txt中。

      管道命令的使用:

      管道命令的意义是将前一个命令的输出结果作为后一个命令的出入内容。使用方法 command1 | command2 | command3 | ……。应用示例:echo redhat | passwd stdin student。表示把student用户的密码改为redhat

      tr命令使用 tr [option] set1 [set2] set1set2的字符应该尽量相同。应用示例:ls /var | tr a-z’ ‘A-Z’意为:列出/var下的文件名字,并把小写转化为大写。

      同时执行两个命令的方法为: command1;command2;……。

shell编程基础(2

我们最常用的bash有以下特点:

   1. command history

   2. 命令编辑

   3. 命令别名

   4. 命令扩展 eg{}${}``(反斜杠)

   5. 管道

   6. 编辑

 

脚本第一行都为#!/bin/bash说明该脚本使用的bash

 

shell中的加法

   shell中的加法有以下四种:

前提 A=3 B=4

   1. let C=$A+$B

   2. C=$[$A+$B]

   3. $(($A+$B))

   4. expr $A+$B

 shell中循环 forwhelluntil

   for 的使用方法:

              for 变量 in 变量取值列表

                 do

                    ………

                 done

        eg:

              let SUM=0

              for I in 1 2 3 4

                 do

                    let SUM=$I+SUM

                 done

                 echo $SUM

   shell中表示从1-100的方法有

1. `seq 1 100`${seq 1 100}

2. {1..100}

   cat /etc/shells查看当前系统可用shell

阅读(657) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~