Chinaunix首页 | 论坛 | 博客
  • 博客访问: 376259
  • 博文数量: 96
  • 博客积分: 647
  • 博客等级: 上士
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-29 22:15
文章分类
文章存档

2015年(1)

2014年(10)

2013年(26)

2012年(59)

我的朋友

分类: LINUX

2012-09-30 15:38:39

1.echo 命令可以显示文本行或者变量,或者把字符串输入到文件
  echo [option] string
  -e 解析转义字符,
    转义符包括(
  \c,回车不换行
  \f,禁止
  \t,跳格
  \n)回车换行
  -n 回车不换行,linux系统默认回车换行
2.read 从键盘或者文件的某一行文本中读如信息,并将其赋给一个变量
read varible1 varible2
如果只指定了一个变量,那么read将会把所有的输入赋给该变量,直到遇到第一个文件结束符或回车;如果给出了多个变量,它们按吮吸分别赋给不同的变量,。shell将用空格作为变量之间的分隔符
举例说明:在shell脚本中有read A B C命令行,而在提示的命令行中输入1 2 3,则A=1,B=2,C=3(注意:若直接在命令行中输入read A B C,则表示只有一个变量A)
     
3.cat 可以用来显示文件内容、创建文件,还可以用它来显示控制字符。
  cat |options|filename1..filename2...
  -v显示控制字符
  使用cat命令时要注意,它不会在文件分页符处停下来,它会一下显示完整个文件。如果希望每次显示一页,可以使用more命令或者把cat命令的输出通过管道传递给另外一个具有分页功能的命令(如more,less)中。
  cat命令举例:
  cat myfile1 myfile2 myfile3>myfile123;
  cat myfile123|more 分页显示
  cat -v dos.txt 会出现“^M”等控制字符,这是在windows下的编辑器留下的

4.管道 可以通过管道把一个命令的输出作为另一个命令的输入
举例说明:df -k |awk '{print $1}'|grep -v "Filesystem"
  df:显示所有文件系统对i节点和磁盘块的使用情况
  awk:浏览和抽取信息
  grep:文本过滤
  显示所有文件系统对i接点和磁盘块的使用情况信息中的第一列并不含有"Filesystem"的信息

5.tee
把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中
tee -a file 这个命令一般用于管道之后。
举例说明:
cat file|tee file.out 将file中的信息输出到屏幕并拷贝到file.out中

6.exec
exec命令可以用来代替当前shell;换句话说,并没有启动子shell,使用这一命令时任何现有环境都会被清除,并重新启动一个shell
exec command其中的command通常是一个shell脚本
对文件描述符操作的时候(也只有在这时),它不会覆盖你当前的shell
举例说明:
exec **.sh 会重新登录并清除环境变量

7.标准输入、输出和错误
在shell中执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件。由于文件描述符不容易记忆,shell同时也给出了相应的文件名。
      文件               文件描述符      
输入文件----标准输入             0(缺省是键盘,也可以是文件或者其他命令的输出)      
输出文件---标准输出             1(缺省是屏幕,也可以是文件)      
错误输出文件--标准错误     2(缺省是屏幕,也可以是文件)      
系统中实际有12个文件描述符,可以任意使用文件描述符3-9

8.文件重定向 改变程序运行的输入来源或输出地点
     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命令以filename文件作为标准输入,以filename2文件作为标准输出
     command < filename 把command命令以filename文件作为标准输入
     command << delimiter 把从标准输入中读入,直至遇到delimiter分界符
     command <&m 把把文件描述符m作为标准输入
     command >&m 把把标准输出重定向到文件描述符m中
     command <&- 把关闭标准输入
     重定向的几个注意点:
     重定向中为保护原来的文件不被覆盖可以用 set -o noclobber 命令来限制
     用 set +o noclobber来取消限制,如果不取消的话也可以强制重定向
     command >| file
     cat file 会清空file中的内容,因为shell会先清空stdout和stderr的管道。
      cat >file会造成死循环,因为它是一行行读出来的,永远都没有结束符
9.合并标准输出和标准错误
     合并标准输出和标准错误的时候,切记shell是用左至右分析相应的命令
举例说明:
grep "hi" test.txt >test.out 2>&1 标准输出和错误输出都输入到标准输出中
10.使用文件描述符
     举例说明:
     exec 3<&0 0     此时的exec不会清除环境变量,也不会重新登录,覆盖当前的sehll 

 
 
尊重原创!
阅读(1187) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~