linux 下的 mkfifo、exec 命令使用

MKFIFO
Section: User Commands (1)
Updated: 1998年11月
Index Return to Main Contents  
NAME(名称)
mkfifo - 创建FIFO(命名管道)  
SYNOPSIS(总览)
mkfifo [options] file...

POSIX options(选项): [-m mode]

GNU options(选项)(最短格式): [-m mode] [--help] [--version] [--]  
DESCRIPTION(描述)
mkfifo 使用指定的文件名创建FIFO(也称为"命名管道").

"FIFO"是一种特殊的文件类型,它允许独立的进程通讯. 一个进程打开FIFO文件进行写操作,而另一个进程对之进行读操作, 然后数据便可以如同在shell或者其它地方常见的的匿名管道一样流线执行.

默认情况下,创建的FIFO的模式为0666(‘a+rw‘)减去umask中设置的位.  
OPTIONS(选项)

-m mode, --mode=mode
    设置创建的FIFO的模式为 mode, 这可以是 chmod(1) 中的符号模式,并使用默认模式作为起始点.

GNU STANDARD OPTIONS(GNU标准选项)

--help
    在标准输出上打印一条用法信息,并以成功状态退出. 
--version
    在标准输出上打印版本信息,然后以成功状态退出. 
-- 
    终止选项列表.



Linux中exec的用法总结

exec 相关:http://blog.csdn.net/cyberrusher/article/details/7253385

先总结一个表:


exec命令


作用


exec ls


在shell中执行ls,ls结束后不返回原来的shell中了


exec <file< span="">


将file中的内容作为exec的标准输入


exec >file


将file中的内容作为标准写出


exec 3<file< span="">


将file读入到fd3中


sort <&3


fd3中读入的内容被分类


exec 4>file


将写入fd4中的内容写入file中


ls >&4


Ls将不会有显示,直接写入fd4中了,即上面的file中


exec 5<&4


创建fd4的拷贝fd5


exec 3<&-


关闭fd3

1. exec 执行程序

虽然exec和source都是在父进程中直接执行,但exec这个与source有很大的区别,source是执行shell脚本,而且执行后会返回以前的shell。而exec的执行不会返回以前的shell了,而是直接把以前登陆shell作为一个程序看待,在其上经行复制。

举例说明:

[email protected]:~/test#exec ls

exp1  exp5  linux-2.6.27.54  ngis_post.sh  test  xen-3.0.1-install

[email protected]:~/test#exec >text

[email protected]:~/test#ls

[email protected]:~/test#pwd

[email protected]:~/test#echo "hello"

[email protected]:~/test#exec>/dev/tty

[email protected]:~/test#cat text

exp1

exp5

linux-2.6.27.54

ngis_post.sh

test

text

xen-3.0.1-install

/root/test

hello

[email protected]:~/test#

Exec >text 是将当前shell的标准输出都打开到text文件中

[email protected]:~/test#cat test

ls

Pwd

[email protected]:~/test#bash

[email protected]:~/test#exec <test< span="">

[email protected]:~/test#ls

exp1  exp5  linux-2.6.27.54  ngis_post.sh  test  text  xen-3.0.1-install

[email protected]:~/test#pwd

/root/test

[email protected]:~/test#

[email protected]:~/test#exit       #自动执行

2. exec的重定向

先上我们进如/dev/fd/目录下看一下:

[email protected]:~/test#cd /dev/fd

[email protected]:/dev/fd#ls

0  1  2  255

默认会有这四个项:0是标准输入,默认是键盘。

1是标准输出,默认是屏幕/dev/tty

2是标准错误,默认也是屏幕

255

当我们执行exec 3>test时:

[email protected]:/dev/fd#exec 3>/root/test/test

[email protected]:/dev/fd#ls

0  1  2  255  3

[email protected]:/dev/fd#

看到了吧,多了个3,也就是又增加了一个设备,这里也可以体会下linux设备即文件的理念。这时候fd3就相当于一个管道了,重定向到fd3中的文件会被写在test中。关闭这个重定向可以用exec 3>&-。

[email protected]:/dev/fd#who >&3

[email protected]:/dev/fd#ls >&3

[email protected]:/dev/fd#exec 3>&-

[email protected]:/dev/fd#cat /root/test/te

test  text

[email protected]:/dev/fd#cat /root/test/test

root     tty1         2010-11-16 01:13

root     pts/0        2010-11-15 22:01 (192.168.0.1)

root     pts/2        2010-11-16 01:02 (192.168.0.1)

0

1

2

255

3

3. 应用举例:

exec 3<test< span="">

while read -u 3 pkg

do

echo "$pkg"

done

时间: 2024-12-15 08:00:46

linux 下的 mkfifo、exec 命令使用的相关文章

Linux下Fork与Exec使用

http://www.cnblogs.com/hicjiajia/archive/2011/01/20/1940154.html Linux下Fork与Exec使用 一.引言 对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值.fork函数是Unix系统最杰出的成就之一,它是七十年代UNIX早期的开发者经过长期在理论和实践上的艰苦探索后取得的成果,一方面,它使操作系统在进程管理上付出了最小的代价,另一方面,又为程序员提供了一个简洁明了的多进程

linux下oralcle11g使用edit命令默认调用vi编辑器

linux下oralcle11g使用edit命令默认调用vi编辑器: 在        $ORACLE_HOME/sqlplus/admin/glogin.sql   最后一行添加   define_editor=vi  即可. linux下oralcle11g使用edit命令默认调用vi编辑器,布布扣,bubuko.com

Linux下静态路由配置命令

linux下静态路由修改命令 方法一: 添加路由 route add -net 192.168.1.0/24 gw 192.168.1.1 route add -host 192.168.1.8 dev 192.168.1.1 删除路由 route del -net 192.168.0.0/24 gw 192.168.0.1 add 增加路由 del 删除路由 -net 设置到某个网段的路由 -host 设置到某台主机的路由 gw 出口网关 IP地址 dev 出口网关 物理设备名 增加默认路由

Linux下那些奇葩的命令

相信喜爱编程,痴迷技术的你,肯定接触过甚至深爱着linux,甚至可能已经非常熟悉linux了,但是linux那逗比的一面,你又知道多少. 本文!纯粹娱乐!不喜勿喷! 1.程序员的愤怒! yes 当我们再终端输入yes命令,你就回看到愤怒地y怒刷屏! 2.小火车sl 我相信ls你每天输入无数次,但是sl你又知道不知道? 我们需要安装一下 sudo yum install sl ubuntu用户: sudo apt-get install sl 之后,再输入sl命令,哈哈,看到小火车没有! 3.无聊

实现Linux下的ls -l命令

基本实现了Linux下的ls -l命令,对于不同的文件显示不同的颜色和显示符号链接暂时没有实现: 1 /************************************************************************* 2 > File Name: dirwalk.c 3 > Author: 4 > Mail: 5 > Created Time: Tue 31 Mar 2015 11:56:38 AM CST 6 ******************

linux下的性能查询命令

(1)查看各个CPU核的使用情况 sudo top -d 1 进入之后,按1,会出现下面的CPU使用情况,其中us列反映了各个CPU核的使用情况,百分比大说明该核在进行紧张的任务. (2)查看哪个进程在哪个CPU核上运行 sudo top -d 1 进入之后,依次按f.j和空格,会出现如下(其中P列指示的是该进程最近使用的CPU核,如进程mencoder的P列为7,则表示mencoder最近在核7上运行,对于多线程甚至单线程的进程,在不同时刻会使用不同的CPU Core): (3)vmstat查

Linux下的目录创建命令使用实践

[文章摘要] 本文以实际的C源程序为例子,介绍了Linux下的目录创建命令(mkdir)的使用方法,为相关开发工作的开展提供了有益的参考. [关键词] C语言  Linux  目录创建  makefile  开发 一.mkdir命令简介 mkdir命令用来创建指定名称的目录,其命令格式为:mkdir [选项] 目录... 其中,[选项]可以是"-m"."-p"或"-v".此外,目录名是区分大小写的. 二.本程序流程 本文中的程序用于实现创建目录的

Linux下vi替换字符命令操作实例

在Linux下的开发中,经常涉及到对文件里的字符进行处理,当中,对字符的替换操作也是非常的频繁. 本文以一个实际的文件为例,具体介绍了Linux下经常使用的vi替换字符命令,为相关的开发工作提供给了參考. 本文中被操作的文件为TestFile.txt,当中的内容例如以下: [email protected]:~/zhouzx/Test> cat TestFile.txt 12345678907890 ABCDABCDEFGHIJ 12345^&*()() 98765432103210 abc

二十七、Linux下常用的shell命令记录

本文章记录我在linux系统下常用或有用的系统级命令,包括软硬件查看.修改命令,有CPU.内存.硬盘.网络.系统管理等命令.但本文不打算介绍生僻命令,也不介绍各个linux发行版下的特有命令,且以后会持续更新. 说明,我是在一个Centos 6.4 64位的虚拟机系统进行测试.本文介绍的命令都会在此Centos下运行验证(也有部分命令会在我的suse/ubuntu系统里测试的,会做特明说明),但运行结果就不再列出了. 硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /pro

二十八、Linux下Vim工具常用命令

在linux下做开发,甚至是只做管理维护工作,也少不了Vim的使用.作为一个新手,我也是刚刚接触,本节将我日常使用或收集的Vim常用命令记录下来. 当然,直接在命令行上输入:vimtutor,就可以学习到Vim的所有命令了.Vim很强大,很多牛人在vim里集成很多插件什么的,但这里只介绍基本vim命令 移动命令 h "左 j "下 k "上 l "右 w "光标移动到下一个单词的首字符 a word forward b "光标移动到上一个单词的首