ubuntu命令行语法_Linux中重定向命令行的总结(ubuntu学习第三讲)
1. 标准输入的控制
语法:命令< 文件将文件做为命令的输入。
例如:
mail -s
“mail test” test@gzu521.com <
file1 将文件file1 当做信件的内容,主
题名称为mail
test,送给收信人。
2.
标准输出的控制
语法:命令> 文件将命令的执行结果送至指定的文件中。
例如:
ls -l
> list 将执行“ls -l” 命令的结果写入文件list 中。
语法:命令>! 文件将命令的执行结果送至指定的文件中,若文件已经存在,则覆盖。
例如:
ls -lg
>! list 将执行“ls - lg” 命令的结果覆盖写入文件list 中。
语法:命令>&
文件将命令执行时屏幕上所产生的任何信息写入指定的文件中。
例如:
cc file1.c
>& error 将编译file1.c
文件时所产生的任何信息写入文件error 中。
语法:命令》
文件将命令执行的结果附加到指定的文件中。
例如:
ls - lag 》
list 将执行“ls - lag” 命令的结果附加到文件list 中。
语法:命令》& 文件将命令执行时屏幕上所产生的任何信息附加到指定的文件中。
例如:
cc file2.c
》& error 将编译file2.c 文件时屏幕所产生的任何信息附加到文件error 中。
关于输入、输出和错误输出
在字符终端环境中,标准输入/标准输出的概念很好理解。输入即指对一个应用程序或命令的输入,无论是从键盘输入还是从别的文件输入;输出即指应用程序或命令产生的一些信息;与 Windows 系统下不同的是,Linux
系统下还有一个标准错误输出的概念,这个概念主要是为程序调试和系统维护目的而设置的,错误输出于标准输出分开可以让一些高级的错误信息不干扰正常的输出信息,从而方便一般用户的使用。
在 Linux
系统中:标准输入(stdin)默认为键盘输入;标准输出(stdout)默认为屏幕输出;标准错误输出(stderr)默认也是输出到屏幕(上面的
std 表示 standard)。在 BASH 中使用这些概念时一般将标准输出表示为 1,将标准错误输出表示为
2。下面我们举例来说明如何使用他们,特别是标准输出和标准错误输出。
输入、输出及标准错误输出主要用于 I/O 的重定向,就是说需要改变他们的默认设置。先看这个例子:
$ ls
> ls_result
$ ls -l 》
ls_result
上面这两个命令分别将
ls 命令的结果输出重定向到 ls_result 文件中和追加到 ls_result
文件中,而不是输出到屏幕上。">"就是输出(标准输出和标准错误输出)重定向的代表符号,连续两个
">" 符号,即 "》" 则表示不清除原来的而追加输出。下面再来看一个稍微复杂的例子:
$ find /home
-name lost* 2> err_result
这个命令在
">" 符号之前多了一个 "2","2>" 表示将标准错误输出重定向。由于
/home 目录下有些目录由于权限限制不能访问,因此会产生一些标准错误输出被存放在 err_result 文件中。大家可以设想一下
find /home -name lost* 2》err_result 命令会产生什么结果?
如果直接执行 find
/home -name lost* > all_result ,其结果是只有标准输出被存入
all_result 文件中,要想让标准错误输出和标准输入一样都被存入到文件中,那该怎么办呢?看下面这个例子:
$ find /home
-name lost* > all_result
2>& 1
上面这个例子中将首先将标准错误输出也重定向到标准输出中,再将标准输出重定向到 all_result
这个文件中。这样我们就可以将所有的输出都存储到文件中了。为实现上述功能,还有一种简便的写法如下:
$ find /home
-name lost* >& all_result
如果那些出错信息并不重要,下面这个命令可以让你避开众多无用出错信息的干扰:
$ find /home
-name lost* 2> /dev/null
同学们回去后还可以再试验一下如下几种重定向方式,看看会出什么结果,为什么?
$ find /home
-name lost* > all_result
1>& 2
$ find /home
-name lost* 2> all_result
1>& 2
$ find /home
-name lost* 2>& 1 >
all_result
另外一个非常有用的重定向操作符是 "-",请看下面这个例子:
$ (cd
/source/directory && tar cf - . ) |
(cd /dest/directory && tar xvfp
-)
该命令表示把
/source/directory 目录下的所有文件通过压缩和解压,快速的全部移动到 /dest/directory
目录下去,这个命令在 /source/directory 和 /dest/directory
不处在同一个文件系统下时将显示出特别的优势。
下面还几种不常见的用法:
n
n>&- 表示将 n 号输出关闭
>&- 表示将标准输出关闭
通过编写适当的shell程序,可以方便的管理系统重要程序运行情况的日志,方便日后问题 排查:
date +/%Y/%m/%d_/%H/%M/%S
#日志时间设置
top
>>
/ect/log/sysRun.log #将系统资源使用情况写入日志文件
ubuntu命令行语法_Linux中重定向命令行的总结(ubuntu学习第三讲)相关推荐
- Linux中重定向的实验总结,Linux中重定向命令行的总结
1. 标准输入的控制 语法:命令< 文件将文件做为命令的输入. 例如: mail -s "mail test" < file1 将文件file1 当做信件的内容,主 题 ...
- linux wget返回值_Linux中curl命令和wget命令的使用介绍与比较
原文链接: 这篇文章主要给大家介绍了Linux中curl命令和wget命令使用以及这两者之间的区别比较,curl和wget命令都是Linux下的工具,可以用来下载文件.文中介绍的非常详细,相信对大家具 ...
- wget 和scp对比_Linux中curl命令和wget命令的使用介绍与比较
本文介绍的是Linux中curl命令和wget命令,这两者都是用来下载文件的工具,下面来看看详细的介绍: 一.wget wget是linux最常用的下载命令, 一般的使用方法是: wget + 空格 ...
- java中的命令行参数_Java中的命令行参数
java中的命令行参数 Command-line arguments in Java are used to pass arguments to the main program. If you lo ...
- vgs是什么意思有什么用_Linux中vgs命令起什么作用呢?
摘要: 下文讲述Linux中vgs的功能说明,如下所示: vgs命令功能: 用于返回卷组的信息 vgs命令注意事项: 通常我们将一个硬盘或一个建立一个物理卷 然后将物理卷组合在一起,形成一个卷组 vg ...
- java 接收命令行参数_java中的命令行参数_Java中的命令行参数
java中的命令行参数 Command-line arguments in Java are used to pass arguments to the main program. If you lo ...
- macos xampp mysql 命令_MAC系统XAMPP 中 MySQL命令行client配置使用
在PHP的学习过程中.MySQL预计是必定会接触的. MySQL的管理相信大家也会使用phpmyadmin: 好吧.phpmyadmin的确是MySQL管理的神器,你想要的.他好多都有,在开发的过程中 ...
- [转载] c语言中检查命令行参数_C中的命令行参数
参考链接: Java中的命令行参数 c语言中检查命令行参数 Command line argument is a parameter supplied to the program when it i ...
- linux中mtools工具_Linux中mtools命令起什么作用呢?
摘要: 下文讲述Linux中mtools命令的功能说明,如下所示: mtools命令功能: 显示出linux下可模拟MS-DOS工具集的命令集合 mtools命令的语法格式: mtools [参数] ...
最新文章
- Python中将pandas的dataframe拷贝到剪切板并保持格式实战:to_clipboard()函数、复制到Excel文件、复制到文本文件(默认是tsv格式)、复制到文本文件(设置逗号分隔符)
- 数据仓库项目管理面试题整理(十一)
- ExecutableNotFound: failed to execute ['dot', '-Tsvg'], make sure the Graphviz executables are on yo
- 使用CreateFile函数打开COM10及以上串行口
- Dev XtraReport 正在打印弹出框如何隐藏 批量打印 静默打印
- 原生及jq方式使用ajax
- jQuery 请指出'$'和'$.fn'的区别?或者说出'$.fn'的用途。
- @font-face
- HugeGraph Server/Hubble安装使用
- mysql 索引合并_MySQL 索引合并(Index Merge)优化
- 霆智服务器安装步骤_阿里云服务器安装MySql数据库详细步骤
- Kotlin 的静态代码分析工具
- 为何天搜科技这些互联网企业对杭州情有独钟?
- 电脑显示受限制无连接应该怎么办
- R语言之长宽数据转换
- 开发板与PC直连还是交叉,关于直连网线交叉网线做法
- 最好的降噪蓝牙耳机有哪些?目前最好的降噪蓝牙耳机推荐
- 我对M4A文件格式的理解
- K8S 生态周报| Helm v3.4 发布
- 纯真ip数据库 转mysql_如何把纯真ip数据库导入到MySQL数据表中
热门文章
- 计算机一级综合第九套试题及答案,2012年计算机一级B第九套选择题精选及参考答案...
- python给女朋友_【转】python实战——教你用微信每天给女朋友说晚安
- 【写作技巧】如何给自己的毕业论文开个好头?
- drain open 线与_再转一个:push-pull and open-drain,开漏(open drain)和开集(open collector...
- 我用Python采集了班花的空间数据集,除了美照竟然再一次发现了她另外的秘密!
- mysql热块争用_Oracle 索引热块引起的latch争用实例分析(转)
- html文本框中有一个叉号标志,html 输入框显示“小叉叉”的清空方法
- VC静态加载DLL和动态加载DLL
- backgroundworker 在执行dowork事件时该如何取消_澳航官宣!明年上半年起,机场所有售票处和服务台永久取消,订票改签等只能“自助”...
- linux rz上传文件及出错解决方案