介绍 Linux 中的管道和命名管道
要在命令间移动数据?使用管道可使此过程便捷。Media在 Linux 中,pipe 能让你将一个命令的输出发送给另一个命令。管道,如它的名称那样,能重定向一个进程的标准输出、输入和错误到另一个进程,以便于进一步处理。“管道”(或称“未命名管道”)命令的语法是在两个命令之间加上 | 字符:
via https://linux.cn/article-9992-1.html?utm_source=rss&utm_medium=rss
要在命令间移动数据?使用管道可使此过程便捷。Media在 Linux 中,pipe 能让你将一个命令的输出发送给另一个命令。管道,如它的名称那样,能重定向一个进程的标准输出、输入和错误到另一个进程,以便于进一步处理。“管道”(或称“未命名管道”)命令的语法是在两个命令之间加上 | 字符:
Command-1 | Command-2 | ...| Command-N这里,该管道不能通过另一个会话访问;它被临时创建用于接收 Command-1 的执行并重定向标准输出。它在成功执行之后删除。Media在上面的示例中,contents.txt 包含特定目录中所有文件的列表 —— 具体来说,就是 ls -al 命令的输出。我们首先通过管道(如图所示)使用 “file” 关键字从 contents.txt 中 grep 文件名,因此 cat 命令的输出作为 grep 命令的输入提供。接下来,我们添加管道来执行 awk 命令,该命令显示 grep 命令的过滤输出中的第 9 列。我们还可以使用 wc -l 命令计算 contents.txt 中的行数。只要系统启动并运行或直到它被删除,命名管道就可以持续使用。它是一个遵循 FIFO(先进先出)机制的特殊文件。它可以像普通文件一样使用。也就是,你可以写入,从中读取,然后打开或关闭它。要创建命名管道,命令为:
mkfifo <pipe-name>这将创建一个命名管道文件,它甚至可以在多个 shell 会话中使用。创建 FIFO 命名管道的另一种方法是使用此命令:
mknod p <pipe-name>要重定向任何命令的标准输出到其它命令,请使用 > 符号。要重定向任何命令的标准输入,请使用 < 符号。Media如上所示,ls -al 命令的输出被重定向到 contents.txt 并插入到文件中。类似地,tail 命令的输入通过 < 符号从 contents.txt 读取。MediaMedia这里,我们创建了一个命名管道 my-named-pipe,并将 ls -al 命令的输出重定向到命名管道。我们可以打开一个新的 shell 会话并 cat 命名管道的内容,如前所述,它显示了 ls -al 命令的输出。请注意,命名管道的大小为零,并有一个标志 “p”。因此,下次你在 Linux 终端上使用命令并在命令之间移动数据时,希望管道使这个过程快速简便。via: https://opensource.com/article/18/8/introduction-pipes-linux作者:Archit Modi 选题:lujun9972 译者:geekpi 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Media
via https://linux.cn/article-9992-1.html?utm_source=rss&utm_medium=rss
如何将 WordPress 博客发布到静态 GitLab Pages 上
通过 GitLab 或 GitHub Pages 来提供一个 WordPress 镜像站点, 从而最小化安全问题。Media
via https://linux.cn/article-9993-1.html
通过 GitLab 或 GitHub Pages 来提供一个 WordPress 镜像站点, 从而最小化安全问题。Media
via https://linux.cn/article-9993-1.html
10 个在 Linux 上也有的流行的 Windows 程序
许多仅在 Windows 和/或 Mac上 有的程序可在 Linux 平台上使用了,而且不用麻烦。向 Snap 和 Flatpak 技术致敬,这些技术已经为 Linux 用户带来了许多“受限制”的程序。Media
via https://linux.cn/article-9995-1.html
许多仅在 Windows 和/或 Mac上 有的程序可在 Linux 平台上使用了,而且不用麻烦。向 Snap 和 Flatpak 技术致敬,这些技术已经为 Linux 用户带来了许多“受限制”的程序。Media
via https://linux.cn/article-9995-1.html
如何在 Ubuntu 18.04 上更新固件
通常,Ubuntu 和其他 Linux 中的默认软件中心会处理系统固件的更新。但是如果你遇到了错误,你可以使用 fwupd 命令行工具更新系统的固件。Media
via https://linux.cn/article-10002-1.html
通常,Ubuntu 和其他 Linux 中的默认软件中心会处理系统固件的更新。但是如果你遇到了错误,你可以使用 fwupd 命令行工具更新系统的固件。Media
via https://linux.cn/article-10002-1.html
差异文件(diff)和补丁文件(patch)简介
这篇文章介绍差异文件(diff)和补丁文件(patch),以及它们如何在开源项目中使用的例子。Media
via https://linux.cn/article-10005-1.html
这篇文章介绍差异文件(diff)和补丁文件(patch),以及它们如何在开源项目中使用的例子。Media
via https://linux.cn/article-10005-1.html
如何 Docker 化 Python Django 应用程序
我们将学习如何 docker 化一个 Python Django 应用程序,然后使用一个 docker-compose 脚本将应用程序作为容器部署到 docker 环境。Media
via https://linux.cn/article-10006-1.html
我们将学习如何 docker 化一个 Python Django 应用程序,然后使用一个 docker-compose 脚本将应用程序作为容器部署到 docker 环境。Media
via https://linux.cn/article-10006-1.html
如何在 Ubuntu 或 Linux Mint 启用 Chromium 硬件加速的视频解码
Chrome/Chromium(Firefox 也是如此,但是 Firefox 的问题没有办法解决)在 Linux 上不支持硬件加速的视频解码。Media
via https://linux.cn/article-10007-1.html
Chrome/Chromium(Firefox 也是如此,但是 Firefox 的问题没有办法解决)在 Linux 上不支持硬件加速的视频解码。Media
via https://linux.cn/article-10007-1.html
如何学习以太坊的代码
以太坊是社区驱动的项目,并且一直在更新,以太坊基金会一直鼓励多种实现以避免网络故障。那么如何去实现一个以太坊?本次分享介绍如何去了解以太坊规范,以及实现以太坊的主要组件和功能。Media
via https://linux.cn/article-10010-1.html
以太坊是社区驱动的项目,并且一直在更新,以太坊基金会一直鼓励多种实现以避免网络故障。那么如何去实现一个以太坊?本次分享介绍如何去了解以太坊规范,以及实现以太坊的主要组件和功能。Media
via https://linux.cn/article-10010-1.html
面向敏捷开发团队的 7 个开源项目管理工具
在这篇开源项目管理工具的综述中,让我们来了解一下支持 Scrum、看板等敏捷开发模式的软件。Media
via https://linux.cn/article-10012-1.html
在这篇开源项目管理工具的综述中,让我们来了解一下支持 Scrum、看板等敏捷开发模式的软件。Media
via https://linux.cn/article-10012-1.html
我为什么喜欢 Xonsh
有没有想过用 Python 做你的 shell?MediaShell 语言对交互式使用很有用。但是在使用它们作为编程语言时这种优化就需要权衡,有时在编写 shell 脚本时会感觉到这点。如果你的 shell 也能理解一种更可伸缩的语言会怎样?比如说,Python?进入 Xonsh。安装 Xonsh 就像创建虚拟环境一样简单,运行 pip install xonsh [ptk,linux],然后运行 xonsh。首先,你可能奇怪为什么你的 Python shell 有一个奇怪的提示:
via https://linux.cn/article-10014-1.html?utm_source=rss&utm_medium=rss
有没有想过用 Python 做你的 shell?MediaShell 语言对交互式使用很有用。但是在使用它们作为编程语言时这种优化就需要权衡,有时在编写 shell 脚本时会感觉到这点。如果你的 shell 也能理解一种更可伸缩的语言会怎样?比如说,Python?进入 Xonsh。安装 Xonsh 就像创建虚拟环境一样简单,运行 pip install xonsh [ptk,linux],然后运行 xonsh。首先,你可能奇怪为什么你的 Python shell 有一个奇怪的提示:
$ 1+12好的,计算器!
$ print("hello world")hello world我们还可以调用其他函数:$ from antigravity import geohash$ geohash(37.421542, -122.085589, b'2005-05-26-10458.68')37.857713 -122.544543然而,我们仍然可以像常规 shell 一样使用它:
$ echo "hello world"hello world我们甚至可以混搭!
$ for i in range(3):. echo "hello world".hello worldhello worldhello worldXonsh 支持使用 Prompt Toolkit 补全 shell 命令和 Python 表达式。补全有可视化提示,会显示可能的补全并有下拉列表。它还支持访问环境变量。它使用简单但强大的启发式方法将 Python 类型应用于环境变量。默认值为 “string”,但是,例如,路径变量是自动列表。
$ '/usr/bin' in $PATHTrueXonsh 接受 shell 形式或 Python 形式的布尔快捷运算符:
$ cat thingsfoo$ grep -q foo things and echo "found"found$ grep -q bar things && echo "found"$ grep -q foo things or echo "found"$ grep -q bar things || echo "found"found这意味着 Python 关键字是被解释了。如果我们想要打印著名的《苏斯博士》书的标题,我们需要引用关键词。
$ echo green eggs "and" hamgreen eggs and ham如果我们不这样做,我们会感到惊讶:
$ echo green eggs and hamgreen eggsxonsh: For full traceback set: $XONSH_SHOW_TRACEBACK = Truexonsh: subprocess mode: command not found: hamDid you mean one of the following? as: Command (/usr/bin/as) ht: Command (/usr/bin/ht) mag: Command (/usr/bin/mag) ar: Command (/usr/bin/ar) nm: Command (/usr/bin/nm)虚拟环境可能会有点棘手。一般的虚拟环境(取决于它们类似 Bash 的语法)无法工作。但是,Xonsh 自带了一个名为 vox 的虚拟环境管理系统。vox 可以创建、激活和停用 ~/.virtualenvs 中的环境。如果你用过 virtualenvwrapper,这就是环境变量所在的地方。请注意,当前激活的环境不会影响 xonsh。它无法从激活的环境中导入任何内容。
$ xontrib load vox$ vox create my-environment ...$ vox activate my-environment Activated "my-environment". $ pip install money ...$ python ...>>> import money >>> money.Money('3.14') $ import moneyxonsh: For full traceback set: $XONSH_SHOW_TRACEBACK = TrueModuleNotFoundError: No module named 'money'第一行启用 vox:它是一个 xontrib,是 Xonsh 的一个第三方扩展。xontrib 管理器可以列出所有可能的 xontribs 及其当前状态(已安装、已加载或未加载)。可以编写一个 xontrib 并上传到 PyPi 以使其可用。但是,最好将它添加到 xontrib 索引中,以便 Xonsh 提前知道它。比如,这能让配置向导建议它。如果你曾经想过,&ldquoMediaython 可以成为我的 shell 吗?”,然后你只要 pip install xonsh 一下就能知道。via: https://opensource.com/article/18/9/xonsh-bash-alternative作者:Moshe Zadka 选题:lujun9972 译者:geekpi 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出Mediavia https://linux.cn/article-10014-1.html?utm_source=rss&utm_medium=rss