Chinaunix首页 | 论坛 | 博客
  • 博客访问: 293170
  • 博文数量: 33
  • 博客积分: 880
  • 博客等级: 准尉
  • 技术积分: 660
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-02 22:25
文章分类

全部博文(33)

文章存档

2011年(33)

分类: LINUX

2011-07-30 22:42:26

1、/bin/sh是/bin/bash的一个连接
2、重定向
  文件描述符0表示标准输入 符号为"<"或者"0<"
  文件描述符1表示标准输出 符号为">"或者"1>"
  文件描述符2表示标准错误输入  符号"2>"
  ">>"表示附加  将输入内容附加到一个文件
  可以单独的重定向这些文件描述符,如 ps>temp.txt 将标准输入重定向输出到temp.txt文件
  可以标准输出和标准错误输出到不同的文件,
如./startup.sh >"tomcatout.txt" 2>"tomcaterror.txt"
  使用"2>&1"将标准输出和标准错误输出到同一个文件
如  ./startup.sh > "tomcat.txt" 2>&1
  使用">/dev/null"直接丢弃不要的信息
3、管道
   LINUX下通过管道连接的进程能够同时运行,并随着数据流在他们之前的传递自动的进行协调。
   如果有一系列的命令需要执行,那么相应的输出文件将会在命令被创建的同时立刻被创建或者写入,因此一定不要再命令流中重复使用相同的文件。
   如:cat temp | sort | >temp  ,这样得到的只会是一个空文件,因为在命令被创建的时候,后一个temp文件已经覆盖了前一个temp文件的内容。
4、简单的几个正则规范
   * 匹配一个字符串
   ?匹配一个字符
   [set]匹配其中的一个字符
   [^set]匹配除[]内字符之外的其他字符
   {set}匹配{}内的任一个字符串
   如: ls my{study,work}.txt  匹配mystudy.txt和mywork.txt
5、SHELL中#!表示以#!后面的参数来执行整个脚本内容  如#!/bin/bash,以/bin/bash来执行整个脚本
   #号表示注释,#后面的内容将会被注释掉
   exit 命令将会返回一个有意义的退出码,假如你希望从一个脚本接收另一个脚本的退出码,这将是一个很不错的选择  shell中 退出码0 表示成功 
6、LINUX下shell脚本并没有什么特定的文件名后缀,要查看一个文件是否是shell脚本,简单的方法是file
   如:#file test
       test: Bourne-Again shell script text executable
       #file /bin/bash
       /bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),   for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
7、如何设置脚本权限和可执行
   chmod +x test 或者 chmod 711 test,1表示可执行
   chown root test 设置文件用户  chgrp root test 设置文件用户组
   chown root.root test 设置文件用户和用户组 
8、shell变量不用声明,直接使用,使用$符号来引用变量内容,所有变量都会被当做字符串来存储
   #temp="hello"
   #echo $temp
   hello
   如果字符串中含有空格,则应该使用引号括起来
   双引号内的变量会被直接转换为它的值,单引号内的变量不会扩展。
   #echo "$temp,world"
   hello,world
   #echo '$temp,world'
   $temp,world
9、一些常用的环境变量
   $HOME  用户主目录
   $PATH  用来搜索命令的目录列表
   $PS1   命令提示符,通常是"$",但是在bash有更复杂的值,如[\u@\h\w]$
   $PS2   二级提示符,通常是">"
   $IFS   输入域分隔符,当shell读取输入时,用来分隔一组字符串,通常是空格、制表符、换行符
   $0     脚本名称
   $#     脚本参数个数
   $$     脚本进程号
   $1,$2,…… 脚本参数
   $*     脚本所有参数,输出以$IFS的第一个字符分隔
   $@     同$*,但是不使用变量IFS进行分隔,所以IFS为空时对其无影响
 
阅读(1853) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~