SK 发布的文章

如果我们经常在实际场景中使用 Linux 命令,我们就会更有效的学习和记忆它们。除非你经常使用 Linux 命令,否则你可能会在一段时间内忘记它们。无论你是新手还是老手,总会有一些趣味的方法来测试你的 BASH 技能。在本教程中,我将解释如何通过玩命令行游戏来测试你的 BASH 技能。其实从技术上讲,这些并不是像 Super TuxKart、极品飞车或 CS 等真正的游戏。这些只是 Linux 命令培训课程的游戏化版本。你将需要根据游戏本身的某些指示来完成一个任务。

现在,我们来看看几款能帮助你实时学习和练习 Linux 命令的游戏。这些游戏不是消磨时间或者令人惊诧的,这些游戏将帮助你获得终端命令的真实体验。请继续阅读:

使用 “Wargames” 来测试 BASH 技能

这是一个在线游戏,所以你必须联网。这些游戏可以帮助你以充满乐趣的游戏形式学习和练习 Linux 命令。Wargames 是一个 shell 游戏的集合,每款游戏有很多关卡。只有通过解决先前的关卡才能访问下一个关卡。不要担心!每个游戏都提供了有关如何进入下一关的清晰简洁说明。

要玩 Wargames,请点击以下链接:Wargames

如你所见,左边列出了许多 shell 游戏。每个 shell 游戏都有自己的 SSH 端口。所以,你必须通过本地系统配置 SSH 连接到游戏,你可以在 Wargames 网站的左上角找到关于如何使用 SSH 连接到每个游戏的信息。

例如,让我们来玩 Bandit 游戏吧。为此,单击 Wargames 主页上的 Bandit 链接。在左上角,你会看到 Bandit 游戏的 SSH 信息。

正如你在上面的屏幕截图中看到的,有很多关卡。要进入每个关卡,请单机左侧列中的相应链接。此外,右侧还有适合初学者的说明。如果你对如何玩此游戏有任何疑问,请阅读它们。

现在,让我们点击它进入关卡 0。在下一个屏幕中,你将获得该关卡的 SSH 信息。

正如你在上面的屏幕截图中看到的,你需要配置 SSH 端口 2220 连接 bandit.labs.overthewire.org,用户名是 bandit0,密码是 bandit0

让我们连接到 Bandit 游戏关卡 0。

$ ssh [email protected] -p 2220

输入密码 bandit0

示例输出将是:

登录后,输入 ls 命令查看内容或者进入关卡 1 页面,了解如何通过关卡 1 等等。建议的命令列表已在每个关卡提供。所以,你可以选择和使用任何合适的命令来解决每个关卡。

我必须承认,Wargames 是令人上瘾的,并且解决每个关卡是非常有趣的。 尽管有些关卡确实很具挑战性,你可能需要谷歌才能知道如何解决问题。 试一试,你会很喜欢它。

使用 “Terminus” 来测试 BASH 技能

这是另一个基于浏览器的在线 CLI 游戏,可用于改进或测试你的 Linux 命令技能。要玩这个游戏,请打开你的 web 浏览器并导航到以下 URL:Play Terminus Game

一旦你进入游戏,你会看到有关如何玩游戏的说明。与 Wargames 不同,你不需要连接到它们的游戏服务器来玩游戏。Terminus 有一个内置的 CLI,你可以在其中找到有关如何使用它的说明。

你可以使用命令 ls 查看周围的环境,使用命令 cd 位置 移动到新的位置,返回使用命令 cd ..,与这个世界进行交互使用命令 less 项目 等等。要知道你当前的位置,只需输入 pwd

使用 “clmystery” 来测试 BASH 技能

与上述游戏不同,你可以在本地玩这款游戏。你不需要连接任何远程系统,这是完全离线的游戏。

相信我,这家伙是一个有趣的游戏。按照给定的说明,你将扮演一个侦探角色来解决一个神秘案件。

首先,克隆仓库:

$ git clone https://github.com/veltman/clmystery.git

或者,从 这里 将其作为 zip 文件下载。解压缩并切换到下载文件的地方。最后,通过阅读 instructions 文件来开启宝箱。

[sk@sk]: clmystery-master>$ ls
cheatsheet.md cheatsheet.pdf encoded hint1 hint2 hint3 hint4 hint5 hint6 hint7 hint8 instructions LICENSE.md mystery README.md solution

这里是玩这个游戏的说明:

终端城发生了一起谋杀案,TCPD 需要你的帮助。你需要帮助它们弄清楚是谁犯罪了。

为了查明是谁干的,你需要到 mystery 子目录并从那里开始工作。你可能需要查看犯罪现场的所有线索( crimescene 文件)。现场的警官相当谨慎,所以他们在警官报告中写下了一切。幸运的是,警官以全部大写的 “CLUE” 一词把真正的线索标记了出来。

如果里遇到任何问题,请打开其中一个提示文件,例如 “hint1”,“hint2” 等。你可以使用下面的 cat 命令打开提示文件。

$ cat hint1
$ cat hint2

要检查你的答案或找出解决方案,请在 clmystery 目录中打开文件 solution

$ cat solution

要了解如何使用命令行,请参阅 cheatsheet.mdcheatsheet.pdf (在命令行中,你可以输入 ‘nano cheatsheet.md’)。请勿使用文本编辑器查看除 instructionscheatsheethint 以外的任何文件。

有关更多详细信息,请参阅 clmystery GitHub 页面。

推荐阅读:

而这就是我现在所知道的。如果将来遇到任何问题,我会继续添加更多游戏。将此链接加入书签并不时访问。如果你知道其他类似的游戏,请在下面的评论部分告诉我,我将测试和更新本指南。

还有更多好东西,敬请关注!

干杯!


via: https://www.ostechnix.com/test-your-bash-skills-by-playing-command-line-games/

作者:SK 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

就算是网费每天变得越来越便宜,你也不应该重复下载相同的东西来浪费你的流量。一个很好的例子就是下载 Ubuntu 或任何 Linux 镜像的开发版本。如你所知,Ubuntu 开发人员每隔几个月就会发布一次日常构建、alpha、beta 版 ISO 镜像以供测试。在过去,一旦发布我就会下载这些镜像,并审查每个版本。现在不用了!感谢 Zsync 文件传输程序。现在可以仅下载 ISO 镜像新的部分。这将为你节省大量时间和 Internet 带宽。不仅时间和带宽,它将为你节省服务端和客户端的资源。

Zsync 使用与 Rsync 相同​​的算法,如果你会得到一份已有文件旧版本,它只下载该文件新的部分。 Rsync 主要用于在计算机之间同步数据,而 Zsync 则用于分发数据。简单地说,可以使用 Zsync 将中心的一个文件分发给数千个下载者。它在 Artistic License V2 许可证下发布,完全免费且开源。

安装 Zsync

Zsync 在大多数 Linux 发行版的默认仓库中有。

在 Arch Linux 及其衍生版上,使用命令安装它:

$ sudo pacman -S zsync

在 Fedora 上,启用 Zsync 仓库:

$ sudo dnf copr enable ngompa/zsync

并使用命令安装它:

$ sudo dnf install zsync

在 Debian、Ubuntu、Linux Mint 上:

$ sudo apt-get install zsync

对于其他发行版,你可以从 Zsync 下载页面下载二进制打包文件,并手动编译安装它,如下所示。

$ wget http://zsync.moria.org.uk/download/zsync-0.6.2.tar.bz2
$ tar xjf zsync-0.6.2.tar.bz2
$ cd zsync-0.6.2/
$ configure
$ make
$ sudo make install

用法

请注意,只有当人们提供 zsync 下载方式时,zsync 才有用。目前,Debian、Ubuntu(所有版本)的 ISO 镜像都有 .zsync 下载链接。例如,请访问以下链接。

你可能注意到,Ubuntu 18.04 LTS 每日构建版有直接的 ISO 和 .zsync 文件。如果你下载 .ISO 文件,则必须在 ISO 更新时下载完整的 ISO 文件。但是,如果你下载的是 .zsync 文件,那么 Zsync 以后仅会下载新的更改。你不需要每次都下载整个 ISO 映像。

.zsync 文件包含 zsync 程序所需的元数据。该文件包含 rsync 算法的预先计算的校验和。它在服务器上生成一次,然后由任意数量的下载器使用。要使用 Zsync 客户端程序下载 .zsync 文件,你只需执行以下操作:

$ zsync <.zsync-file-URL>

例如:

$ zsync http://cdimage.ubuntu.com/ubuntu/daily-live/current/bionic-desktop-amd64.iso.zsync

如果你的系统中已有以前的镜像文件,那么 Zsync 将计算远程服务器中旧文件和新文件之间的差异,并仅下载新的部分。你将在终端看见计算过程一系列的点或星星。

如果你下载的文件的旧版本存在于当前工作目录,那么 Zsync 将只下载新的部分。下载完成后,你将看到两个镜像,一个你刚下载的镜像和以 .iso.zs-old 为扩展名的旧镜像。

如果没有找到相关的本地数据,Zsync 会下载整个文件。

你可以随时按 CTRL-C 取消下载过程。

试想一下,如果你直接下载 .ISO 文件或使用 torrent,每当你下载新镜像时,你将损失约 1.4GB 流量。因此,Zsync 不会下载整个 Alpha、beta 和日常构建映像,而只是在你的系统上下载了 ISO 文件的新部分,并在系统中有一个旧版本的拷贝。

今天就到这里。希望对你有帮助。我将很快另外写一篇有用的指南。在此之前,请保持关注!

干杯!


via: https://www.ostechnix.com/zsync-file-transfer-utility-download-new-parts-file/

作者:SK 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

现如今,我在终端上花的时间更多,尝试在命令行完成比在图形界面更多的工作。随着时间推移,我学了许多 BASH 的技巧。这是一份每个 Linux 用户都应该知道的 BASH 快捷键,这样在终端做事就会快很多。我不会说这是一份完全的 BASH 快捷键清单,但是这足够让你的 BASH shell 操作比以前更快了。学习更快地使用 BASH 不仅节省了更多时间,也让你因为学到了有用的知识而感到自豪。那么,让我们开始吧。

ALT 快捷键

  1. ALT+A – 光标移动到行首。
  2. ALT+B – 光标移动到所在单词词首。
  3. ALT+C – 终止正在运行的命令/进程。与 CTRL+C 相同。
  4. ALT+D – 关闭空的终端(也就是它会关闭没有输入的终端)。也删除光标后的全部字符。
  5. ALT+F – 移动到光标所在单词词末。
  6. ALT+T – 交换最后两个单词。
  7. ALT+U – 将单词内光标后的字母转为大写。
  8. ALT+L – 将单词内光标后的字母转为小写。
  9. ALT+R – 撤销对从历史记录中带来的命令的修改。
    正如你在上面输出所见,我使用反向搜索拉取了一个指令,并更改了那个指令的最后一个字母,并使用 ALT+R 撤销了更改。
  10. ALT+. (注意末尾的点号) – 使用上一条命令的最后一个单词。

如果你想要对多个命令进行相同的操作的话,你可以使用这个快捷键来获取前几个指令的最后一个单词。例如,我需要使用 ls -r 命令输出以文件名逆序排列的目录内容。同时,我也想使用 uname -r 命令来查看我的内核版本。在这两个命令中,相同的单词是 -r 。这就是需要 ALT+. 的地方。快捷键很顺手。首先运行 ls -r 来按文件名逆序输出,然后在其他命令,比如 uname 中使用最后一个单词 -r

CTRL 快捷键

  1. CTRL+A – 快速移动到行首。
    我们假设你输入了像下面这样的命令。当你在第 N 行时,你发现在行首字符有一个输入错误
$ gind . -mtime -1 -type

注意到了吗?上面的命令中我输入了 gind 而不是 find 。你可以通过一直按着左箭头键定位到第一个字母然后用 g 替换 f 。或者,仅通过 CTRL+AHOME 键来立刻定位到行首,并替换拼错的单词。这将节省你几秒钟的时间。

  1. CTRL+B – 光标向前移动一个字符。
    这个快捷键可以使光标向前移动一个字符,即光标前的一个字符。或者,你可以使用左箭头键来向前移动一个字符。
  2. CTRL+C – 停止当前运行的命令。
    如果一个命令运行时间过久,或者你误运行了,你可以通过使用 CTRL+C 来强制停止或退出。
  3. CTRL+D – 删除光标后的一个字符。
    如果你的系统退格键无法工作的话,你可以使用 CTRL+D 来删除光标后的一个字符。这个快捷键也可以让你退出当前会话,和 exit 类似。
  4. CTRL+E – 移动到行末。
    当你修正了行首拼写错误的单词,按下 CTRL+E 来快速移动到行末。或者,你也可以使用你键盘上的 END 键。
  5. CTRL+F – 光标向后移动一个字符。
    如果你想将光标向后移动一个字符的话,按 CTRL+F 来替代右箭头键。
  6. CTRL+G – 退出历史搜索模式,不运行命令。
    正如你在上面的截图看到的,我进行了反向搜索,但是我执行命令,并退出了历史搜索模式。
  7. CTRL+H – 删除光标前的一个字符,和退格键相同。
  8. CTRL+J – 和 ENTER/RETURN 键相同。
    回车键不工作?没问题! CTRL+JCTRL+M 可以用来替换回车键。
  9. CTRL+K – 删除光标后的所有字符。
    你不必一直按着删除键来删除光标后的字符。只要按 CTRL+K 就能删除光标后的所有字符。
  10. CTRL+L – 清空屏幕并重新显示当前行。
    别输入 clear 来清空屏幕了。只需按 CTRL+L 即可清空并重新显示当前行。
  11. CTRL+M – 和 CTRL+J 或 RETURN键相同。
  12. CTRL+N – 在命令历史中显示下一行。
    你也可以使用下箭头键。
  13. CTRL+O – 运行你使用反向搜索时发现的命令,即 CTRL+R。
  14. CTRL+P – 显示命令历史的上一条命令。
    你也可以使用上箭头键。
  15. CTRL+R – 向后搜索历史记录(反向搜索)。
  16. CTRL+S – 向前搜索历史记录。
  17. CTRL+T – 交换最后两个字符。
    这是我最喜欢的一个快捷键。假设你输入了 sl 而不是 ls 。没问题!这个快捷键会像下面这张截图一样交换字符。

  1. CTRL+U – 删除光标前的所有字符(从光标后的点删除到行首)。
    这个快捷键立刻删除前面的所有字符。
  2. CTRL+V – 逐字显示输入的下一个字符。
  3. CTRL+W – 删除光标前的一个单词。
    不要和 CTRL+U 弄混了。CTRL+W 不会删除光标前的所有东西,而是只删除一个单词。

  1. CTRL+X – 列出当前单词可能的文件名补全。
  2. CTRL+XX – 移动到行首位置(再移动回来)。
  3. CTRL+Y – 恢复你上一个删除或剪切的条目。
    记得吗,我们在第 21 个命令用 CTRL+W 删除了单词“-al”。你可以使用 CTRL+Y 立刻恢复。

看见了吧?我没有输入“-al”。取而代之,我按了 CTRL+Y 来恢复它。

  1. CTRL+Z – 停止当前的命令。
    你也许很了解这个快捷键。它终止了当前运行的命令。你可以在前台使用 fg 或在后台使用 bg 来恢复它。
  2. CTRL+[ – 和 ESC 键等同。

杂项

  1. !! – 重复上一个命令。
  2. ESC+t – 交换最后两个单词。

这就是我所能想到的了。将来我遇到 Bash 快捷键时我会持续添加的。如果你觉得文章有错的话,请在下方的评论区留言。我会尽快更新。

Cheers!


via: https://www.ostechnix.com/list-useful-bash-keyboard-shortcuts/

作者:SK 译者:heart4lor 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

毋庸置疑,Vim 是一款强大的文本文件处理的通用工具,能够管理系统配置文件和编写代码。通过插件,Vim 可以被拓展出不同层次的功能。通常,所有的插件和附属的配置文件都会存放在 ~/.vim 目录中。由于所有的插件文件都被存储在同一个目录下,所以当你安装更多插件时,不同的插件文件之间相互混淆。因而,跟踪和管理它们将是一个恐怖的任务。然而,这正是 Vundle 所能处理的。Vundle,分别是 Vim 和 Bundle 的缩写,它是一款能够管理 Vim 插件的极其实用的工具。

Vundle 为每一个你安装的插件创建一个独立的目录树,并在相应的插件目录中存储附加的配置文件。因此,相互之间没有混淆的文件。简言之,Vundle 允许你安装新的插件、配置已有的插件、更新插件配置、搜索安装的插件和清理不使用的插件。所有的操作都可以在一键交互模式下完成。在这个简易的教程中,让我告诉你如何安装 Vundle,如何在 GNU/Linux 中使用它来管理 Vim 插件。

Vundle 安装

如果你需要 Vundle,那我就当作你的系统中,已将安装好了 Vim。如果没有,请安装 Vim 和 git(以下载 Vundle)。在大部分 GNU/Linux 发行版中的官方仓库中都可以获取到这两个包。比如,在 Debian 系列系统中,你可以使用下面的命令安装这两个包。

sudo apt-get install vim git

下载 Vundle

复制 Vundle 的 GitHub 仓库地址:

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

配置 Vundle

创建 ~/.vimrc 文件,以通知 Vim 使用新的插件管理器。安装、更新、配置和移除插件需要这个文件。

vim ~/.vimrc

在此文件顶部,加入如下若干行内容:

set nocompatible " be iMproved, required
filetype off " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" plugin on GitHub repo
Plugin 'tpope/vim-fugitive'
" plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'
" Git plugin not hosted on GitHub
Plugin 'git://git.wincent.com/command-t.git'
" git repos on your local machine (i.e. when working on your own plugin)
Plugin 'file:///home/gmarik/path/to/plugin'
" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}

" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line

被标记为 “required” 的行是 Vundle 的所需配置。其余行仅是一些例子。如果你不想安装那些特定的插件,可以移除它们。完成后,键入 :wq 保存退出。

最后,打开 Vim:

vim

然后键入下列命令安装插件:

:PluginInstall

将会弹出一个新的分窗口,我们加在 .vimrc 文件中的所有插件都会自动安装。

安装完毕之后,键入下列命令,可以删除高速缓存区缓存并关闭窗口:

:bdelete

你也可以在终端上使用下面命令安装插件,而不用打开 Vim:

vim +PluginInstall +qall

使用 fish shell 的朋友,添加下面这行到你的 .vimrc 文件中。

set shell=/bin/bash

使用 Vundle 管理 Vim 插件

添加新的插件

首先,使用下面的命令搜索可以使用的插件:

:PluginSearch

要从 vimscripts 网站刷新本地的列表,请在命令之后添加 !

:PluginSearch!

会弹出一个列出可用插件列表的新分窗口:

你还可以通过直接指定插件名的方式,缩小搜索范围。

:PluginSearch vim

这样将会列出包含关键词 “vim” 的插件。

当然你也可以指定确切的插件名,比如:

:PluginSearch vim-dasm

移动焦点到正确的一行上,按下 i 键来安装插件。现在,被选择的插件将会被安装。

类似的,在你的系统中安装所有想要的插件。一旦安装成功,使用下列命令删除 Vundle 缓存:

:bdelete

现在,插件已经安装完成。为了让插件正确的自动加载,我们需要在 .vimrc 文件中添加安装好的插件名。

这样做:

:e ~/.vimrc

添加这一行:

[...]
Plugin 'vim-dasm'
[...]

用自己的插件名替换 vim-dasm。然后,敲击 ESC,键入 :wq 保存退出。

请注意,所有插件都必须在 .vimrc 文件中追加如下内容。

[...]
filetype plugin indent on

列出已安装的插件

键入下面命令列出所有已安装的插件:

:PluginList

更新插件

键入下列命令更新插件:

:PluginUpdate

键入下列命令重新安装所有插件:

:PluginInstall!

卸载插件

首先,列出所有已安装的插件:

:PluginList

之后将焦点置于正确的一行上,按下 SHITF+d 组合键。

然后编辑你的 .vimrc 文件:

:e ~/.vimrc

删除插件入口。最后,键入 :wq 保存退出。

或者,你可以通过移除插件所在 .vimrc 文件行,并且执行下列命令,卸载插件:

:PluginClean

这个命令将会移除所有不在你的 .vimrc 文件中但是存在于 bundle 目录中的插件。

你应该已经掌握了 Vundle 管理插件的基本方法了。在 Vim 中使用下列命令,查询帮助文档,获取更多细节。

:h vundle

现在我已经把所有内容都告诉你了。很快,我就会出下一篇教程。保持关注!

干杯!

资源

Vundle GitHub 仓库


via: https://www.ostechnix.com/manage-vim-plugins-using-vundle-linux/

作者:SK 译者:CYLeft 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我知道你可以按下向上箭头来调出你运行过的命令,然后使用左/右键移动到拼写错误的单词,并更正拼写错误的单词,最后按回车键再次运行它,对吗?可是等等。还有一种更简单的方法可以纠正 GNU/Linux 中拼写错误的 Bash 命令。这个教程解释了如何做到这一点。请继续阅读。

在 Linux 中纠正拼写错误的 Bash 命令

你有没有运行过类似于下面的错误输入命令?

$ unme -r
bash: unme: command not found

你注意到了吗?上面的命令中有一个错误。我在 uname 命令缺少了字母 a

我在很多时候犯过这种愚蠢的错误。在我知道这个技巧之前,我习惯按下向上箭头来调出命令,并转到命令中拼写错误的单词,纠正拼写错误,然后按回车键再次运行该命令。但相信我。下面的技巧非常易于纠正你刚刚运行的命令中的任何拼写错误。

要轻松更正上述拼写错误的命令,只需运行:

$ ^nm^nam^

这会将 uname 命令中将 nm 替换为 nam。很酷,是吗?它不仅纠正错别字,而且还能运行命令。查看下面的截图。

当你在命令中输入错字时使用这个技巧。请注意,它仅适用于 Bash shell。

额外提示:

你有没有想过在使用 cd 命令时如何自动纠正拼写错误?没有么?没关系!下面的技巧将解释如何做到这一点。

这个技巧只能纠正使用 cd 命令时的拼写错误。

比如说,你想使用命令切换到 Downloads 目录:

$ cd Donloads
bash: cd: Donloads: No such file or directory

哎呀!没有名称为 Donloads 的文件或目录。是的,正确的名称是 Downloads。上面的命令中缺少 w

要解决此问题并在使用 cd 命令时自动更正错误,请编辑你的 .bashrc 文件:

$ vi ~/.bashrc

最后添加以下行。

[...]
shopt -s cdspell

输入 :wq 保存并退出文件。

最后,运行以下命令更新更改。

$ source ~/.bashrc

现在,如果在使用 cd 命令时路径中存在任何拼写错误,它将自动更正并进入正确的目录。

正如你在上面的命令中看到的那样,我故意输错(Donloads 而不是 Downloads),但 Bash 自动检测到正确的目录名并 cd 进入它。

Fish 和 Zsh shell 内置的此功能。所以,如果你使用的是它们,那么你不需要这个技巧。

然而,这个技巧有一些局限性。它只适用于使用正确的大小写。在上面的例子中,如果你输入的是 cd donloads 而不是 cd Donloads,它将无法识别正确的路径。另外,如果路径中缺少多个字母,它也不起作用。


via: https://www.ostechnix.com/easily-correct-misspelled-bash-commands-linux/

作者:SK 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你有没有发现自己在某种情况下想要折叠或中断命令的输出,以适应特定的宽度?在运行虚拟机的时候,我遇到了几次这种的情况,特别是没有 GUI 的服务器。 以防万一,如果你想限制一个命令的输出为一个特定的宽度,现在看看这里! fold 命令在这里就能派的上用场了! fold 命令会以适合指定的宽度调整输入文件中的每一行,并将其打印到标准输出。

在这个简短的教程中,我们将看到 fold 命令的用法,带有实例。

fold 命令示例教程

fold 命令是 GNU coreutils 包的一部分,所以我们不用为安装的事情烦恼。

fold 命令的典型语法:

fold [OPTION]... [FILE]...

请允许我向您展示一些示例,以便您更好地了解 fold 命令。 我有一个名为 linux.txt 文件,内容是随机的。

要将上述文件中的每一行换行为默认宽度,请运行:

fold linux.txt

每行 80 列是默认的宽度。 这里是上述命令的输出:

正如你在上面的输出中看到的,fold 命令已经将输出限制为 80 个字符的宽度。

当然,我们可以指定您的首选宽度,例如 50,如下所示:

fold -w50 linux.txt

示例输出:

我们也可以将输出写入一个新的文件,如下所示:

fold -w50 linux.txt > linux1.txt

以上命令将把 linux.txt 的行宽度改为 50 个字符,并将输出写入到名为 linux1.txt 的新文件中。

让我们检查一下新文件的内容:

cat linux1.txt

你有没有注意到前面的命令的输出? 有些词在行之间被中断。 为了解决这个问题,我们可以使用 -s 标志来在空格处换行。

以下命令将给定文件中的每行调整为宽度 50,并在空格处换到新行:

fold -w50 -s linux.txt

示例输出:

看清楚了吗? 现在,输出很清楚。 换到新行中的单词都是用空格隔开的,所在行单词的长度大于 50 的时候就会被调整到下一行。

在所有上面的例子中,我们用列来限制输出宽度。 但是,我们可以使用 -b 选项将输出的宽度强制为指定的字节数。 以下命令以 20 个字节中断输出。

fold -b20 linux.txt

示例输出:

另请阅读:

有关更多详细信息,请参阅 man 手册页。

man fold

这些就是所有的内容了。 您现在知道如何使用 fold 命令以适应特定的宽度来限制命令的输出。 我希望这是有用的。 我们将每天发布更多有用的指南。 敬请关注!

干杯!


via: https://www.ostechnix.com/fold-command-tutorial-examples-beginners/

作者:SK 译者:Flowsnow 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出