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作为一个程序看待,在其上经行复制。
举例说明:
root@localhost:~/test#exec ls
exp1 exp5 linux-2.6.27.54 ngis_post.sh test xen-3.0.1-install
root@localhost:~/test#exec >text
root@localhost:~/test#ls
root@localhost:~/test#pwd
root@localhost:~/test#echo "hello"
root@localhost:~/test#exec>/dev/tty
root@localhost:~/test#cat text
exp1
exp5
linux-2.6.27.54
ngis_post.sh
test
text
xen-3.0.1-install
/root/test
hello
root@localhost:~/test#
Exec >text 是将当前shell的标准输出都打开到text文件中
root@localhost:~/test#cat test
ls
Pwd
root@localhost:~/test#bash
root@localhost:~/test#exec <test< span="">
root@localhost:~/test#ls
exp1 exp5 linux-2.6.27.54 ngis_post.sh test text xen-3.0.1-install
root@localhost:~/test#pwd
/root/test
root@localhost:~/test#
root@localhost:~/test#exit #自动执行
2. exec的重定向
先上我们进如/dev/fd/目录下看一下:
root@localhost:~/test#cd /dev/fd
root@localhost:/dev/fd#ls
0 1 2 255
默认会有这四个项:0是标准输入,默认是键盘。
1是标准输出,默认是屏幕/dev/tty
2是标准错误,默认也是屏幕
255
当我们执行exec 3>test时:
root@localhost:/dev/fd#exec 3>/root/test/test
root@localhost:/dev/fd#ls
0 1 2 255 3
root@localhost:/dev/fd#
看到了吧,多了个3,也就是又增加了一个设备,这里也可以体会下linux设备即文件的理念。这时候fd3就相当于一个管道了,重定向到fd3中的文件会被写在test中。关闭这个重定向可以用exec 3>&-。
root@localhost:/dev/fd#who >&3
root@localhost:/dev/fd#ls >&3
root@localhost:/dev/fd#exec 3>&-
root@localhost:/dev/fd#cat /root/test/te
test text
root@localhost:/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
linux 下的 mkfifo、exec 命令使用的更多相关文章
- 【转】Linux下Fork与Exec使用
Linux下Fork与Exec使用 转自 Linux下Fork与Exec使用 一.引言 对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值.for ...
- Linux下Fork与Exec使用
Linux下Fork与Exec使用 一.引言 对于没有接触过Unix/Linux操作系统的人来说,fork是最难理解的概念之一:它执行一次却返回两个值.fork函数是Unix系统最杰出的成就之一, ...
- Linux下tomcat的shutdown命令可以关闭服务但是杀不死进程
Linux下tomcat的shutdown命令可以关闭服务但是杀不死进程 原因: 一般造成这种原因是因为项目中有非守护线程的存在: 解决方案: 一.从Tomcat上解决 方案1:(推荐的方案:因为一台 ...
- Linux下find与exec的联手干大事
在Linux下工作,find命令绝对是一个非常高频的命令.我们可以用find命令来找到符合某些关键词的文件,找到某些日期的文件,也可以设定一些正则表达式,找到一系列满足该条件的文件. 但是,如果只有一 ...
- linux下如何使用sftp命令【转】
linux下如何使用sftp命令 from: http://www.cnblogs.com/chen1987lei/archive/2010/11/26/1888391.html sftp 是一个 ...
- 【转】Linux下patch打补丁命令
[转]Linux下patch打补丁命令 转自:http://www.cnblogs.com/noaming1900/archive/2010/10/28/1863282.html 此命令用于为特定软件 ...
- linux下mysql操作的命令
最近在学习mysql,还是只菜鸟,找到下面篇文章对初学者挺有用的,所以共享下 1.linux下启动mysql的命令: mysqladmin start /ect/init.d/mysql star ...
- 实现Linux下的ls -l命令
基本实现了Linux下的ls -l命令,对于不同的文件显示不同的颜色和显示符号链接暂时没有实现: /************************************************** ...
- Linux下su与su -命令的区别
在启动服务器ntpd服务时遇到一个问题 使用 su root 切换到root用户后,不可以使用service命令: 使用 su - 后,就可以使用service命令了. 原因: su命令和su -命令 ...
- Linux下 rz 和 sz 命令的安装与使用
目录 Linux下 rz 和 sz 命令的安装与使用 rz/sz命令的安装 sz命令-发送文件到本地(下载): rz命令-本地上传文件到服务器(上传): 声明 Linux下 rz 和 sz 命令的安装 ...
随机推荐
- 从C#到TypeScript - function
总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript ...
- ABP框架 - 嵌入资源
文档目录 本节内容: 简介 创建嵌入文件 xproj/project.json 格式 csproj 格式 添加到嵌入式资源管理器 使用嵌入式视图 使用嵌入式资源 ASP.NET Core 配置 忽略文 ...
- E. Devu and Flowers
E. Devu and Flowers time limit per test 4 seconds memory limit per test 256 megabytes input standard ...
- C++用new创建对象和不用new创建对象的区别解析
在C++用new创建对象和不用new创建对象是有区别的,不知你是否清楚的了解它们到底有什么样的区别呢?下面小编就用示例来告诉大家吧,需要的朋友可以过来参考下 我们都知道C++中有三种创建对象的方法 ...
- UWP: ListView 中与滚动有关的两个需求的实现
在 App 的开发过程中,ListView 控件是比较常用的控件之一.掌握它的用法,能帮助我们在一定程度上提高开发效率.本文将会介绍 ListView 的一种用法--获取并设置 ListView 的滚 ...
- [转]云计算之hadoop、hive、hue、oozie、sqoop、hbase、zookeeper环境搭建及配置文件
云计算之hadoop.hive.hue.oozie.sqoop.hbase.zookeeper环境搭建及配置文件已经托管到githubhttps://github.com/sxyx2008/clou ...
- jquery的ajax提交后,会跳转页面
今天在写代码的时候,遇到一个很奇怪的问题,一个form表单,用的是ajax的方式提交.结果,在服务器端php中,使用exit(),函数后都不能停止,并且继续跳转到本页.请求如下: 第一个请求中,其实我 ...
- 手把手教你webpack、react和node.js环境配置(下篇)
上篇我介绍了前端下webpack和react.redux等环境的配置,这篇将继续重点介绍后台node.js的配置. 这里是上篇链接:手把手教你webpack.react和node.js环境配置(上篇) ...
- FineUIMvc随笔(5)UIHelper是个什么梗?
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. UIHelper.Result 在 FineUIMvc 的每一个 HttpPost 的控制器方法里面,你都会看到 UIHelpe ...
- iOS 图片裁剪 + 旋转
iOS 图片裁剪 + 旋转 之前分别介绍了图片裁剪和图片旋转方法 <iOS 图片裁剪方法> 地址:http://www.cnblogs.com/silence-cnblogs/p/6490 ...