博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年7月17日

摘要: exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息。bash shell的命令分为两类:外部命令和内部命令。外部命令是通过系统调用或独立的程序实现的,如sed、awk等等。内部命令是由特殊的文件格式(.def)所实现,如cd、history、exec等等。在说明exec和source的区别之前,先说明一下fork的概念。fork是linux的系统调用,用来创建子进程(child process)。子进程是父进程(parent process)的一个副本,从父进程那里获得一定的资源分 阅读全文

posted @ 2013-07-17 15:49 飞向半人马 阅读(281) 评论(0) 推荐(0) 编辑

2013年5月26日

摘要: 一. trap捕捉到信号之后,可以有三种反应方式: (1)执行一段程序来处理这一信号 (2)接受信号的默认操作 (3)忽视这一信号 二. trap对上面三种方式提供了三种基本形式: 第一种形式的trap命令在shell接收到signal list清单中数值相同的信号时,将执行双 引号中的命令串。 trap 'commands' signal-list trap "commands" signal-list 为了恢复信号的默认操作,使用第二种形式的trap命令: trap signal-list 第三种形式的trap命令允许忽视信号 trap " & 阅读全文

posted @ 2013-05-26 01:44 飞向半人马 阅读(296) 评论(0) 推荐(0) 编辑

摘要: $( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的。所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行。例如:[code]$ echo the last sunday is $(date -d "last sunday" +%Y-%m-%d)[/code]如此便可方便得到上一星期天的日期了… ^_^用 $( ) 的理由:1, ` ` 很容易与 ' ' ( 单引号)搞混乱,尤 阅读全文

posted @ 2013-05-26 01:03 飞向半人马 阅读(165) 评论(0) 推荐(0) 编辑

摘要: 1、基本读取read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说)。得到输入后,read命令将数据放入一个标准变量中。下面是read命令的最简单形式::#!/bin/bashecho -n "Enter your name:" //参数-n的作用是不换行,echo默认是换行read name //从键盘输入echo "hello $name,welcome to my program" //显示信息exit 0 //退出shell程序。//********************************由于read命令提供了-p参数, 阅读全文

posted @ 2013-05-26 00:19 飞向半人马 阅读(316) 评论(0) 推荐(0) 编辑

2013年5月25日

摘要: 一、dd命令的解释dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。 obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。 bs=bytes: 阅读全文

posted @ 2013-05-25 23:54 飞向半人马 阅读(249) 评论(0) 推荐(0) 编辑

摘要: exec <&- 2>&- 是IO重定向中的 关闭 标准输入 和 错误输出>&n 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出;<&n 标准输入复制自文件描述符 n;<&- 关闭标准输入(键盘);>&- 关闭标准输出;n<&- 表示将 n 号输入关闭;n>&- 表示将 n 号输出关闭;exec 1>outfilename # 打开文件outfilename作为stdout。exec 2>errfilename # 打开文件errfilename作 阅读全文

posted @ 2013-05-25 00:49 飞向半人马 阅读(527) 评论(0) 推荐(1) 编辑

2013年5月23日

摘要: 1、 for((i=1;i<=10;i++));do echo $(expr $i \* 4);done2、在shell中常用的是 for i in $(seq 10)3、for i in `ls`4、for i in ${arr[@]} 5、for i in $* ; do6、for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do7、for i in f1 f2 f3 ;do8、for i in *.txt9、for i in $(ls *.txt)for in语句与` `和$( )合用,利用` `或$( )的将多行合为一行 阅读全文

posted @ 2013-05-23 18:36 飞向半人马 阅读(893) 评论(0) 推荐(0) 编辑

摘要: 在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。在/home/admin/test/下新建test.sh内容如下:cd `dirname $0`echo `pwd` 然后返回到/home/admin/执行sh test/test.sh 运行结果:/home/admin/test 这样就可以知道一些和脚本一起部署的文件的位置了,只要知道相对位置就可以根据这个目录来定位,而可以不用关心绝对位置。这样脚 阅读全文

posted @ 2013-05-23 09:23 飞向半人马 阅读(552) 评论(0) 推荐(0) 编辑

2013年5月22日

摘要: 你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连 接,否则这个任务就会被杀掉,一切半途而废了。元凶:SIGHUP 信号让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。在Linux/Unix中,有这样几个概念:进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。会话期(session) 阅读全文

posted @ 2013-05-22 13:10 飞向半人马 阅读(278) 评论(0) 推荐(0) 编辑

2013年5月16日

摘要: 作者:阮一峰日期:2011年12月 4日inode是一个重要概念,是理解Unix/Linux文件系统和硬盘储存的基础。我觉得,理解inode,不仅有助于提高系统操作水平,还有助于体会Unix设计哲学,即如何把底层的复杂性抽象成一个简单概念,从而大大简化用户接口。下面就是我的inode学习笔记,尽量保持简单。===================================理解inode作者:阮一峰一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读 阅读全文

posted @ 2013-05-16 10:40 飞向半人马 阅读(193) 评论(0) 推荐(0) 编辑