热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux复制粘贴_通过重定向在Linux终端任意读写数据|Linux中国

本文字数:2467,阅读时长大约:3分钟导读:重定向是一种十分高效的数据流动方式,它能帮你减少很多鼠标和键盘上
0f8bc976158729f8291af15f54e2c4be.png本文字数:2467,阅读时长大约:3分钟导读:重定向是一种十分高效的数据流动方式,它能帮你减少很多鼠标和键盘上的操作。https://linux.cn/article-12385-1.html作者:Seth Kenlon译者:jx.zeng

对于任何编程或脚本语言,输入与输出重定向都是很自然的功能。严格来说,当你使用电脑时,数据自然而然地在发生着重定向。从 stdin(标准输入,通常是你的键盘或者鼠标)读取输入,输入则发往 stdout(标准输出,一段文本或者数据流),最后错误信息送至 stderr。如果你使用 Bash 或 Zsh 之类的 shell,那么理解这些数据流能够让你更好地控制信息流向。

标准输入、标准输出以及标准错误输出都存在于 Linux 文件系统中。你可以在 /dev 查看:

$ ls /dev/std*/dev/stderr@  /dev/stdin@  /dev/stdout@

你可能没法直接使用它们,但将它们想象成你能传递数据的元位置,会很有帮助。

重定向的基础很简单&#xff1a;用一些 > 符号重定向输出&#xff0c;然后用另外一些 < 符号重定向输入。

ea7fdd9c-f12d-eb11-8da9-e4434bdf6706.svg

重定向输入

你也能将输入重定向“到”一个命令。可以说&#xff0c;它没有重定向输出那么有用&#xff0c;因为许多命令已经被硬编码&#xff0c;只从你的参数中接收输入。但是&#xff0c;如果某个命令需要一系列参数&#xff0c;而且你把这些参数写在文件里&#xff0c;想要快速“复制粘贴”到终端的时候(除非你并不想复制粘贴)&#xff0c;它就帮得上忙了。

$ sudo dnf install $(

重定向输入得常规用法是嵌入文档(here-document)(简写成 here-doc)和嵌入字符串(here-string) 技巧。这种输入方法将一整块文本重定向至标准输入流&#xff0c;直到碰见一个特殊的文件结束标记(许多人习惯用 EOF&#xff0c;实际上你可以使用任何字符串&#xff0c;只要它是唯一的)。试着把这些(在第二个 EOF 标记之前)敲进你的终端&#xff1a;

$ echo <> foo> bar> baz> EOF

输出结果&#xff1a;

foobarbaz

使用 Bash 编写脚本的人常常用这个技巧&#xff0c;将数行文本一次性写入文件或者打印到屏幕上。只要你别忘了末尾的文件结束标记&#xff0c;这会是一个帮你避免大量繁琐 echo 或 printf 语句的好办法。

嵌入字符串类似于嵌入文档&#xff0c;但是它只含有一个字符串(或者用引号包裹的几个字符串&#xff0c;同样会被当成一个字符串)

$ cat <<<"foo bar baz"foo bar bazea7fdd9c-f12d-eb11-8da9-e4434bdf6706.svg

重定向错误信息

错误信息流叫做 stderr&#xff0c;通过 2> 实现这个目的。下面这个命令把错误信息定向到 output.log 文件&#xff1a;

$ ls /nope 2> output.logea7fdd9c-f12d-eb11-8da9-e4434bdf6706.svg

将数据送往 /dev/null

既然标准输入、标准输出和错误输出都有自己的位置&#xff0c;那么“空空如也”也应该在 Linux 文件系统占有一席之地。没错&#xff0c;它叫做 null&#xff0c;位于 /dev&#xff0c;频繁使用的人懒得说 “slash dev slash null”&#xff0c;于是索性叫它 “devnull”。

通过重定向&#xff0c;你可以把数据发送到 /dev/null。比如&#xff0c;find 命令常常会输出很多具体信息&#xff0c;而且在搜索文件遇到权限冲突时&#xff0c;会事无巨细地报告&#xff1a;

$ find ~ -type f/home/seth/actual.filefind: &#96;/home/seth/foggy&#39;: Permission deniedfind: &#96;/home/seth/groggy&#39;: Permission deniedfind: &#96;/home/seth/soggy&#39;: Permission denied/home/seth/zzz.file

find 命令把那些当作错误&#xff0c;所以你可以只把错误信息重定向至 /dev/null&#xff1a;

$ find ~ -type f 2> /dev/null/home/seth/actual.file/home/seth/zzz.fileea7fdd9c-f12d-eb11-8da9-e4434bdf6706.svg

使用重定向

在 Bash 中&#xff0c;重定向是转移数据的有效方法。你可能不会频繁使用重定向&#xff0c;但是学会如何使用它&#xff0c;能帮你在打开文件、复制粘贴数据这类需要移动鼠标、大量按键操作上&#xff0c;节省很多不必要的时间。不要做如此浪费时间的事情。使用重定向&#xff0c;好好享受生活。


via: https://opensource.com/article/20/6/redirection-bash

作者&#xff1a;Seth Kenlon 选题&#xff1a;lujun9972 译者&#xff1a;nophDog 校对&#xff1a;wxy

本文由 LCTT 原创编译&#xff0c;Linux中国 荣誉推出

f37fdd9c-f12d-eb11-8da9-e4434bdf6706.svg



推荐阅读
  • Linux Shell基础脚本执行方式和Bash基本功能
    一概述1Shell是一个命令行解释器,它为用户提供了一个向内核发送请求以便运行程序的界面系统级程序Shell还是一个功能强大的编程语言,易编写,易调试,灵活性较强,Shell是解释 ... [详细]
  • 之前项目在windows2003服务器上设置定时任务,每天执行。现在把项目移植到linux系统。也要在linux系统上设置计划任务。但是之前我从来没有做过。所以多得不 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 下载maven:http:maven.apache.orgdownload.cgi解压缩,然后配置环境变量:echo$SHELL  ——-查看当前MacOSX是什么样的Shell如 ... [详细]
  • 20145216《信息安全系统设计基础》第一周学习总结教材学习内容总结Linux基础1.ls命令ls或ls.显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的 ... [详细]
  • Centos7安装高版本zshzim框架安装powerlevel10k
    1.安装高版本zsh1.1卸载低版本zshsudoyumremovezsh-y1.2下载源码源码:https:zsh.sourceforge.ioArcsour ... [详细]
  • Linux磁盘的分区、格式化的观察和操作步骤
    本文介绍了如何观察Linux磁盘的分区状态,使用lsblk命令列出系统上的所有磁盘列表,并解释了列表中各个字段的含义。同时,还介绍了使用parted命令列出磁盘的分区表类型和分区信息的方法。在进行磁盘分区操作时,根据分区表类型选择使用fdisk或gdisk命令,并提供了具体的分区步骤。通过本文,读者可以了解到Linux磁盘分区和格式化的基本知识和操作步骤。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • Linux Shell脚步的格式
    Shell脚步等多个命令的组合,可以做成一个shell文件(1.sh)赋权执行执行命令的方式前两张新的进程中执行,对当前进程不产生影响(cdtmp;pwds ... [详细]
  • 和数|这一点_5 个让日常编码更简单的 Python 库
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了5个让日常编码更简单的Python库相关的知识,希望对你有一定的参考价值。今天我们一起来研究一些非常有用的第三方模 ... [详细]
  • C语言 文件 看这一篇就够了
    码字不易,对你有帮助点赞转发关注支持一下作者微信搜公众号:不会编程的程序圆看更多干货,获取第一时间更新想看更好排版,可以看原 ... [详细]
  • 为什么jupyterlab运行程序的时候会自动停止_JupyterLab史上最全详解,全网都在看,赶紧收藏...
    点击上方蓝字关注我们!Jupyter源于IpythonNotebook,是使用Python(也有R、Julia、Node等其他语言的内核)进行代码演示、 ... [详细]
author-avatar
超人懒懒_673
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有