Sagar Sharma 发布的文章

Firefox 浏览器内置了截屏工具,你可以用它对整个网页进行截屏。Chrome 浏览器也有同样的功能。

截屏来捕获信息是很常见的。

但你知道你可以在 Firefox 中截取整个网页的截图吗?Firefox 附带一个内置的截图工具,允许你截取选定区域、可见屏幕区域甚至整个网页的截图。

这意味着如果你想保存网页供以后参考,你可以快速捕获整个网页。

Chrome 也有截图功能,但稍微复杂一些。

在本教程中,我将引导你完成以下内容:

  • 如何在 Firefox 中截图
  • 如何在 Chrome 中截图
  • 使用 Nimbus 扩展获得比内置的截屏更多的功能

那么让我们从第一个开始。

在 Firefox 中截取网页截图

Firefox 的内置工具可让你通过单击选择整个屏幕、整个页面,甚至特定段落。

步骤 1:访问截图工具

要启动截图程序,请在使用 Firefox 时按 Ctrl + Shift + s

如果你不总是能记住快捷方式,也可以从右键单击菜单访问该工具。

Screenshot tool can also be accessed from right-click context menu

如果你经常截图,那么将该程序添加到工具栏将是一个好主意。为此,你只需执行三个简单步骤:

  1. 首先,右键单击工具栏并选择 “ 自定义工具栏 Customize Toolbar ” 选项
  2. 找到 “ 截图 Screenshot ” 程序并将其拖至工具栏
  3. 点击 “ 完成 Done ” 按钮即可

还困惑吗? 操作方法如下:

启用后,你可以单击刚刚拖动到工具栏的截图图标。

步骤 2:在 Firefox 中截图

当你启动截图工具时,它会提示两个选项:“ 保存整页 Save full page ” 和 “ 保存可见 Save visible ”。这里:

  • 保存整页将捕获整个网页
  • 保存可见只会捕获当前帧中可见的内容

但如果你想捕获特定部分,你可以使用鼠标光标选择该部分并保存:

如你所见,有两个选项: 下载 Download 复制 Copy (到剪贴板,以便你可以将其粘贴到文档或编辑工具中)。你可以根据你的场景使用其中之一。

在 Chrome 中截取网页截图

在 Chrome 中截取全部网页截图比在 Firefox 中要复杂一些,因为它隐藏在开发人员选项下。

不用担心!你将通过以下步骤做到:

  • 打开菜单,进入 “ 更多工具 More Tools -> 开发者工具 Developer tools ”。或者,你可以按 Ctrl + Shift + l 进入开发者工具目录。
  • Ctrl + Shift + p 并输入 screenshot(LCTT 译注:在中文环境中请输入 “屏幕截图”)
  • 选择区域或整个页面,然后回下载截图。

让我向你展示如何做到这一点:

Chrome 基本提供的就是这些。

如何使用扩展程序截图

✋ 非自由和开源软件警告!这里讨论的 Nimbus 扩展不是开源的。

如果你想要更多功能,例如添加延迟、水印或符号,那么你必须使用扩展程序。

为此,我建议使用 Nimbus,它几乎可以让你执行任何本地安装的截图工具可以执行的所有操作。

下载 Firefox 版 Nimbus:

Firefox 版 Nimbus

下载 Chrome 版 Nimbus:

Chrome 版 Nimbus
? 只有 Nimbus 的 Chrome 扩展具有视频录制功能。

完成安装后,请务必注册 Nimbus 以启用所有功能。

单击 Nimbus 扩展图标,你会看到多个选项:

你可以选择任何显示的功能,完成后,根据捕获后进行的操作(我选择编辑),它将直接下载截图,打开编辑器或将其发送到任何选定的云提供商。

如果你也将 “ 编辑 Edit ” 作为捕获后的操作,那么它将打开一个编辑器,你可以在其中对捕获的截图进行编辑:

如果你想添加水印、了解/更改快捷方式、更改截图的格式等,请打开 Nimbus 并点击小齿轮按钮:

只是一个扩展却有非常酷的功能。不是吗?

? 如果你经常截屏,你可能需要将 Nimbus 扩展固定到任务栏。

想要更多功能吗?使用截图工具

如果你不想受到扩展功能的束缚,那么需要尝试具有更多功能的截图工具,这些工具可以在整个系统的任何地方使用。

如果你是 Linux 用户,那么我们有一份关于 Linux 中截取和编辑截图的最佳工具 的专门指南:

Linux 中截取和编辑截图的最佳工具

我希望你喜欢这个快速技巧。

(题图:MJ/76cc0d02-fb37-4bd0-94ec-fc249c1f537e)


via: https://itsfoss.com/firefox-screenshot/

作者:Sagar Sharma 选题:lujun9972 译者:geekpi 校对:wxy

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

Thunar 是 Xfce 提供的一款优秀文件管理器,通过这些技巧和调整,你的使用体验可以得到提升。

Thunar 是 Xfce 桌面环境的默认文件管理器,它实现了轻量级与优秀的用户体验的完美平衡。

但是,像其他任何尚未深入探索的工具一样,你对 Thunar 的掌握会在你深入了解它之后变得更多。

我大胆地说,一系列的特性将会改善你的 Linux 体验。

在这个指南中,我会分享可以让 Thunar 体验更上一层楼的以下技巧:

  • Thunar 的通用快捷键
  • 添加 Thunar 插件
  • 从你上次离开的地方继续
  • 使用图标进行更好的识别
  • 高亮显示文件/文件夹
  • 在双窗口模式下轻松复制或移动文件
  • 自定义操作

那就让我们从第一条开始吧。

1、利用键盘快捷键

毫无疑问,利用键盘快捷键可以提升你的工作效率。

以下是一些在 Thunar 中使用的简单快捷键,可以帮助减少鼠标点击操作:

快捷键描述
Ctrl + T新加标签页
Ctrl + N新建窗口
F3切换至双窗格模式
Alt + ←后退
Alt + →前进
Ctrl + F搜索文件
Ctrl + S按模式选取文件
Ctrl + H显示隐藏文件
Ctrl + E侧边栏启用树视图
Alt + ↑打开父目录
Alt + Home前往主目录

虽然看似简单,但请相信我,这些快捷键一旦融入你的日常工作流,你就会离不开它。

2、从你离开的地方重新打开 Thunar

? 此功能只在 Thunar 4.18 或更高版本中可用。

打开文件管理器时,默认打开上次关闭时的所有标签页,这是一个令人振奋的功能。

我就是那种喜欢深入 Linux 目录进行探索的人,所以从我离开的地方重新打开 Thunar 是一项重要功能。

若要启用此功能,只需遵循以下三个简单的步骤:

  • 点击 “ 编辑 Edit ” 菜单并选择 “ 偏好设定 Preferences
  • 切换至 “ 行为 Behavior ” 标签页
  • 勾选 “ 启动时还原标签 Restore tabs on startup ” 选项

3、为文件或文件夹添加徽章

你可以把徽章看作是一个特殊标记,它可以帮助你更快地识别出特定的文件或文件夹。

另外,你也可以通过添加徽章使目录名更加直观。例如,将一个 “▶️” 徽章添加到“视频”目录上。

要添加徽章,遵循下面的步骤:

  • 右键点击需要添加徽章的文件/文件夹,从上下文菜单中选择 “ 属性 Properties
  • 进入 “ 徽章 Emblem ” 标签页,为选定项选择一个或多个徽章

我添加徽章后的样子就像这样:

4、使用突出颜色高亮文件/文件夹

? 这项功能只在 Thunar 4.18 及更高版本中可用。

如果仅通过添加徽章仍无法使文件/文件夹在众多文件中突显出来,你可以改变它的背景或前景颜色。

注意:改变前景颜色只会改变选定项目的字体颜色。

要突出高亮一个文件或文件夹,你需要按照以下步骤操作:

  • 将鼠标悬停在需要高亮的项目上,右键并选择 “属性”。
  • 进入 “ 高亮 Highlight ” 部分,选择改变前景或背景(或两者都选,但要一次进行一项操作)。
  • 接着,选择你想要的颜色,它会展示结果。如果满意,点击 “ 应用 Apply ” 按钮,不满意就通过 “ 重置 Reset ” 按钮恢复默认设置。

5、探索 Thunar 插件

不同于那些知名的文件管理器,Thunar 的插件相对较少,因为很多操作都可以通过自定义动作实现,其他的功能如内置一样与生俱来。

但是,也有一些实用的插件供你选择。

如要了解更多,你可以 访问官方网站 查看详情。

在这里,我将向你展示如何添加一个归档插件,让你可直接在右键菜单中创建和解压归档文件:

在 Ubuntu 中安装 Thunar 归档插件,可以使用以下命令:

sudo apt install thunar-archive-plugin

在 Fedora 中安装:

sudo dnf install thunar-archive-plugin

在 Arch Linux 中安装:

sudo pacman -S thunar-archive-plugin

6、利用双窗格特性进行文件传输

这是几乎所有的文件管理器都具备、而又被大多数人所忽视的一个重要特性。

那为什么我要将此特性列为 Thunar 的优化建议呢?答案很简单。因为 Thunar 的双窗格特性非常好用,它使得文件的复制和移动变得轻而易举。

移动文件

接下来我们看一下如何将文件从一个目录动态一个目录:

  • 首先,按下 F3 键开启双窗格模式。
  • 打开两边窗格中的目录。一边导航到需要被移动的文件所在,另一边则打开目标位置。
  • 接着,选中需要移动的项目。
  • 移动文件很简单,只需选中它们,并拖动到另一侧窗格中(即你已打开的目标位置)。

移动文件

复制文件

复制文件的操作非常类似移动文件,只是在拖曳并释放文件时需要按下 Ctrl 键。

  • 使用 F3 键切换到双窗格模式。
  • 打开两边窗格中的源文件和目标位置。
  • 选中需要复制的文件,然后按下 Ctrl 键,将它们拖到第二窗格中,释放鼠标后再放开 Ctrl 键。

复制文件

如果你仔细看,会发现在移动文件时,鼠标指针呈现一个箭头 “↗”,而在复制文件时,它会显示一个加号 “➕”。

7、在 Thunar 中使用自定义操作(针对进阶用户)

到现在为止,Thunar 中最实用的功能无疑是你能创建属于自己的行为,比如使选定的文件变为可执行文件,以 root 用户身份打开 Thunar 等等。

因此,这也意味着这将是本教程中最详细的一节!

首先,点击 “编辑” 菜单,你会找到一个 “ 配置自定义操作 configure custom actions ” 的选项,这是倒数第二个:

如你所见,所有可用的操作都在列表中显示。

要添加操作,点击加号 “➕” 按钮,你会看到多个选项:

这些选项包括:

  • 名称 Name ”:为自定义操作命名。
  • 描述 Description ”:该操作的信息说明(以帮助用户理解该操作的功能)。
  • 子菜单 Submenu ”:用于将多个操作整合到一起。
  • 命令 Command ”:关键的一步,你需要为这个操作分配一条命令使其可以工作。

如果你仔细看,你会发现还有另一个名为 “ 出现条件 Appearance Conditions ” 的选项卡,在这里你可以指定在哪些文件(以及目录)类型的右键菜单中这个动作会出现。

例如,如果一个动作只应在所选文件是文本文件时才显示,那么你就需要勾选 “文本文件Text Files” 选项:

接下来,我要向你展示如何设置一个以 root 身份打开 Thunar 的自定义动作。

创建自定义操作以 root 身份打开 Thunar

你一定经历过这种情况:你想操作一个文件,但是只有 root 用户能够访问。于是你打开终端,执行命令以 root 身份启动文件管理器。

但如果用这个自定义操作,只需轻点一下鼠标就可以了。

具体方法是,在 “ 基本 Basic ” 选项卡的数据区域输入以下内容:

  • 名称:以 root 身份打开 Thunar
  • 命令:pkexec thunar %F

你能选择任何相关的图标,我在这里选择了一个简单的终端图标。

接着,在 “出现条件” 区域,输入如下内容:

  • 如果所选内容包含: 目录 Directories

完成后,数据区域会如下所示:

看一下最后的结果:

以 root 身份打开 Thunar

看起来很酷,对吧?

以下是一些其他可能有用的自定义操作:

创建创建符号链接的自定义操作

创建符号链接 是访问深度嵌套在文件系统中的文件的一种简便手段。它同时也被用来重定向到特定的包的路径。

要创建一个创建符号链接的自定义操作,你可以输入以下指令:

  • 名称:创建链接
  • 描述:创建一个符号链接
  • 命令:ln -s %f 'Link to %n'
  • 若选择包含:框全部都要勾选

直接查找文件

点击一个目录,选择搜索,输入你想要查找的内容。

这是在目录内搜索文件最为手边的方式了。

首先,在你的系统中安装 catfish,如果你是 Ubuntu/Debian 系的用户,可以使用如下命令:

sudo apt install catfish

然后,创建一个自定义操作,输入以下信息:

  • 名称:在该目录中查找文件
  • 描述:在选中的目录中搜索文件
  • 命令:catfish %f
  • 若选择包含:仅勾选 “目录”。

一键安装多个图像转换的自定义操作

在我写作的过程中,我找到了一款令人惊艳的包,着包中包含了以下几种自定义操作:

  • 旋转图像
  • 缩小图像
  • 图像灰度处理
  • 将图像转换为 PDF
  • 将图像转换为任意格式
  • 合并 PDF 文件
  • 缩小 PDF 文件的大小
  • 创建符号链接
  • 显示校验和
  • 往图像的透明区域填充颜色
  • 加密/解密文件

首先,在你的系统中安装以下软件包:

sudo apt install make imagemagick gnupg2 m4 build-essential pandoc gettext python3-lxml ubuntu-dev-tools git

接着,克隆这个库并切换到这个新的目录:

git clone https://gitlab.com/nobodyinperson/thunar-custom-actions.git && cd thunar-custom-actions

然后,运行以下命令来确认所有的依赖项都已就绪:

./configure --prefix=$HOME/.local PASSWDFILE=/etc/passwd

如果提示你缺少某个包,那你可能需要手动安装它(但大部分情况下不需要)。

接着,运行以下命令从源代码建立这个包:

make

然后,运行以下命令安装这个包:

sudo make install

要将更改合并进 Thunar,使用以下命令:

uca-apply update

完成以上操作后,记得登出并重新登录以使改变生效。

这样你就会看到系统中增加了多种新的自定义操作:

如果你觉得这些太多了,你也可以通过选择它并点击减号按钮来去除不需要的操作。

只要你有足够的想象力,你就可以创造出无数的自定义操作。欢迎你分享你最喜欢的(和命令),这样新用户也能受益。

进一步自定义 Xfce

有人可能觉得 Xfce 显示得有些传统。实际上,你完全可以为它带来现代化的感受。

使 Xfce 看起来现代化和漂亮的四种方法

进行主题设计是最主要的自定义方式。这里有一些 Xfce 主题建议 你可以参考。

使 Xfce 看起来现代化和漂亮的 11 个主题

我希望你觉得这些关于 Thunar 的改进很有用。

你能在 Linux 桌面上尝试到更多的乐趣,不妨开始你的探索之旅吧 ?

(题图:MJ/0bd19051-a95f-41f8-839a-47c1ce84ac83)


via: https://itsfoss.com/thunar-tweaks/

作者:Sagar Sharma 选题:lujun9972 译者:ChatGPT 校对:wxy

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

想知道 ls 命令输出中的颜色是什么?它们从何而来,又该如何设置?本文将为您一一解答。

相信你一定使用过 ls 命令来 列出目录的内容。在 Ubuntu 和许多其他发行版中,你将看到不同颜色的 ls 命令输出。

如果你没有看到过,你可以这样获得如下所示的彩色输出:

ls --color=auto

但是你有没有想过这些颜色在 ls 命令输出中意味着什么?

我将回答本文中的问题。如果你的终端默认情况下不显示它,我还将展示如何使用 ls 命令获取彩色输出

Ubuntu 中 ls 命令中使用的颜色的含义

? ls 命令输出的颜色没有固定的标准。不同的终端和发行版使用不同的颜色编码,你也可以根据自己的喜好进行修改。换句话说,不要依赖颜色。

我在本节中使用默认的 Ubuntu 终端及其颜色配置文件。

当你 使用 ls 命令列出文件 时,它会使用不同的颜色来指示不同类型的文件。

大多数终端都会以不同的颜色显示可执行文件、链接、常规文件和目录,以便你可以轻松区分它们。

有些终端(例如 Ubuntu 中的默认终端)将其提升到一个新的水平,并为音乐文件、图像和视频添加更多颜色。

为了演示,我列出了来自不同目录的文件,这些文件在 Ubuntu 中用不同的颜色填充了我的终端窗口:

different colors used by the ls command

看起来很混乱? 让我一一为你解密吧!

颜色描述
粗体蓝色目录
无色文件或硬链接
粗体青色指向文件的符号链接。
粗体绿色可执行文件(.sh 扩展名的脚本)
粗体红色归档文件(主要是 tarball 或 zip 文件)
洋红色表示图像和视频文件
青色音频文件
黄色配黑色背景管道文件(称为 FIFO)
粗体红色配黑色背景损坏的符号链接
无色(白色)配红色背景表示设置用户 ID 文件
黑色配黄色背景表示设置组 ID 文件
白色与蓝色背景显示粘滞位目录
蓝色配绿色背景指向其他可写目录
黑色配绿色背景当目录同时具有粘滞位和其他可写目录的特征时
? 再次强调,上述颜色数据基于终端的默认设置,如果更改调色板,将不会得到类似的结果。

但是如果你的终端不显示任何颜色怎么办? 好吧,这是有原因和解决方案的。

如果 ls 命令不显示彩色输出怎么办?

事情是这样的。默认情况下,ls 命令不应在输出中显示颜色。如果你使用 --color=auto 标志,它将显示颜色。

ls --color=auto

那么为什么 ls 命令在 Ubuntu 和其他一些发行版中默认添加颜色呢? 这是因为你的发行版为 ls 命令设置了别名,以便在执行 ls 命令时使用 --color=auto 标志:

alias

因此,如果 ls 命令未显示彩色输出,则是因为默认情况下没有设置别名。

现在,每当你使用 ls 命令时,你都可以使用 --color=auto 标志。

Use  --color=auto flag with the ls command to get the colored output

但这不太方便。相反,你应该创建别名并将其添加到 .bashrc 中,以便 ls 命令默认显示颜色。

为 ls 创建一个永久别名来显示颜色

要创建永久别名,首先,使用以下命令打开 .bashrc 文件:

nano ~/.bashrc

使用 Alt + / 跳到文件末尾粘贴如下行到终端:

alias ls='ls --color=auto'

完成后,保存更改并退出 nano 文本编辑器。

要使你刚刚所做的更改生效,请 源引 source .bashrc 文件:

source ~/.bashrc

就是这样! 从现在开始,你可以使用彩色输出。

ls 命令从哪里获取颜色?

现在有趣的部分来了。ls 命令的颜色在哪里定义? 答案是 LS_COLORS 环境变量。

是的。这是名为 LS_COLORS 的特殊环境变量,它定义 ls 命令使用的颜色。

Value of the LS_COLORS env variable in Ubuntu

这很好,但是谁定义了这个变量呢? 如果你想做出一些改变怎么办? 我也来回答一下这些问题。

实际上,你有一个专门的 dircolors 命令来为 ls 命令设置颜色。

不同的 Shell 有不同的颜色配置文件格式。这就是为什么在使用此命令时应指定 Shell。

dircolors command output for bash

如你所见,它定义了 LS_COLORS 环境变量并将其导出,以便该变量可用于子 Shell。

现在,如果你想使用它,你可以将其复制粘贴到你的 .bashrc 文件或像这样重定向输出:

dircolors -b >> .bashrc

源引 source 该文件,以便效果立即可见。你只需要做一次。

理解颜色配置文件

LS_COLORS 包含由冒号(:)分隔的键值对数据。如果该值有多个部分,则它们之间用分号(;)分隔。

键通常是预定义的。值部分代表颜色。

因此,如果显示 ln=01;36,则表示对于符号链接,字体为粗体,颜色(36)为青色。

00 为正常,01 为粗体,4 为下划线。31 代表红色,32 代表绿色等。颜色代码遵循 ANSI 转义代码

另一个例子。or=40;31;01 表示链接到不存在的文件(键为 or),使用黑色背景(颜色代码 40)、红色(31)和粗体字体(代码 01)。

我认为顺序并不重要,因为代码不重叠。31 是前景色红色的代码,41 是背景红色的颜色。因此,如果使用 41,你就知道它用于背景颜色。

使用 ls 命令执行更多操作

ls 命令可以做更多的事情,为此,我们制作了有关如何使用 ls 命令的详细教程:

在 Linux 中使用 ls 命令

Abhishek Prakash 提供资料。

(题图:MJ/4d0f1f66-259f-4671-a3a8-158f61a38b10)


via: https://itsfoss.com/ls-color-output/

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

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

需要在虚拟机中访问 GRUB 菜单吗?以下是做法。

大多数现代虚拟机都配置为跳过 GRUB 引导加载程序 以获得无缝体验。

但是,你有时可能需要访问 GRUB 菜单。例如,如果你想切换回旧内核或进入恢复模式以 重置密码

? TLDR:重启虚拟机并在再次启动时按住 Shift 键。这将为你提供 GRUB 菜单。

在这篇简短的文章中,我将向你展示两种访问虚拟机中运行的 Linux 中的 GRUB 菜单的方法:

  • 临时方案(当你需要访问 GRUB 一两次时)
  • 永久方案(每次启动时都会显示 GRUB)

由于大多数用户不会每天与 GRUB 交互,因此我将从一个临时解决方案开始,你可以无需任何调整即可访问 GRUB。

? 我在此处的教程中使用了 Ubuntu,但这些步骤也适用于其他 Linux 发行版。

在虚拟机中访问 GRUB 引导加载程序(快速方式)

如果你偶尔想访问 GRUB,这应该是最好的方法,因为它不需要任何配置。

只需重新启动系统并按住 shift 键即可。

就是这样!

你将拥有没有任何时间限制的 GRUB 菜单:

Accessing grub menu in VM using shift key

很简单的方法。不是吗?

但它仅适用于特定的启动。那么如果你想在每次启动时都进入 GRUB 该怎么办呢? 请参考下面的方法。

永久在虚拟机中启用 GRUB 菜单(如果你愿意)

? 此方法需要在命令行中更改 GRUB 配置文件。请确保你能够轻松地在终端中进行编辑。

如果你需要处理 GRUB 菜单来访问其他操作系统或经常更改 从旧内核启动,那么此方法非常适合你。

要使 GRUB 在每次引导时都可访问,你必须在配置文件中进行更改。

首先,使用以下命令打开 GRUB 配置文件:

sudo nano /etc/default/grub

在这里,将 GRUB_TIMEOUT_STYLE=hidden 更改为 GRUB_TIMEOUT_STYLE=menu

change grub timeout style

接下来,在同一个配置文件中,指定你希望 GRUB 显示的秒数。

我建议 5 秒,因为它似乎在太长和太短之间取得了平衡(是的,非常相关):

GRUB_TIMEOUT=5

configure grub timeout in ubuntu

最后,你可以 保存更改并退出 nano 编辑器。

要激活对配置文件所做的更改,请使用以下命令更新 GRUB:

sudo update-grub

就是这样。重启系统,GRUB 应该会显示 5 秒钟。

将 GRUB 主题化如何?

大多数 Linux 发行版都会使用 GRUB 引导加载程序,因为它的配置非常简单,而且能完成工作。

但在默认情况下,除了黑色背景和纯文本外,它没什么样式。因此,我们制作了一份指南,教你如何让它看起来更漂亮:

定制 GRUB 以获得更好的体验

希望本指南对你有所帮助,如果你有任何疑问,请在评论中告诉我。

(题图:MJ/f75daf37-20c2-4bae-8a68-dc6a82ad0d61)


via: https://itsfoss.com/access-grub-virtual-machine/

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

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

在终端基础知识系列的这一部分中,学习如何在 Linux 中使用命令行复制文件和目录。

复制文件是你经常执行的最基本但最重要的任务之一。

Linux 有一个专门的 cp 命令用于复制文件和目录(文件夹)。

在终端基础知识系列的这一部分中,你将学习在终端中复制文件和文件夹。

? 回想一下,以下是你迄今为止在本终端基础知识系列中所学到的内容:

让我们继续该系列的第七章。

在 Linux 命令行中复制文件

让我向你展示一些复制文件的示例。

将文件复制到另一个目录

要将一个文件复制到另一目录,你所要做的就是遵循给定的命令语法:

cp 源文件 目标目录

例如,在这里,我将名为 Hello.txt 的文件复制到名为 Tux 的目录中:

copy file to another directory in linux command line

正如你所看到的,文件已成功复制到 Tux 目录中。

复制文件但重命名

你可以选择在复制文件时重命名该文件。只需为“目标文件”指定一个不同的名称即可。

cp 源文件 改名的文件

作为参考,在这里,我将名为 Hello.txt 的文件复制到同一目录,并将其重命名为 Renamed_Hello.txt

rename a file while copying in a same directory in linux terminal

为什么要这么做? 比如说,你必须编辑配置文件。一个好的做法是在编辑配置文件之前在同一位置对其进行备份。这样,如果事情没有按计划进行,你可以恢复到旧配置。

将多个文件复制到另一个位置

要将多个文件复制到另一个目录,请按以下方式执行命令:

cp File1 File2 File3 FileN Target_directory

在这里,我将多个文件复制到新位置。

copy multiple files using the cp command in linux

? 当你复制多个文件时,仅使用 cp 命令无法重命名它们。

复制时处理重复文件

默认情况下,如果目标目录中存在同名文件,cp 命令将覆盖该文件。

为了避免覆盖,你可以在 cp 命令中使用 -n 选项,它不会覆盖现有文件:

cp -n 源文件 目标目录

例如,在这里,我尝试复制目标目录中已有的两个文件,并使用 -v 选项来展示该命令正在执行的操作:

cp -n -v itsFOSS.txt LHB.txt LU.txt ~/Tux

how not to override files while copying in linux using the cp command

交互式复制文件

但是,当你想要覆盖某些文件,而某些文件应该保持不变时该怎么办?

好吧,你可以使用 -i 选项在交互模式下使用 cp 命令,它每次都会询问你是否应该覆盖该文件:

cp -i 源文件 目标目录

how to use cp command in interactive mode

?️ 自己练习上述所有示例。你已经了解如何创建文件和文件夹,因此请重新创建所有内容。

在 Linux 命令行中复制目录

mkdir 命令用于创建新目录,rmdir 命令用于删除(空)目录。但没有用于复制目录的 cpdir 命令。

你必须使用相同的 cp 命令,但使用递归选项 -r 将目录及其所有内容复制到另一个位置:

cp -r 源目录 目标目录

例如,在这里,我将名为 IF 的目录复制到 LHB

how to copy a directory in linux command line

但它复制了整个目录。?

那么,当你只想复制目录内容而不是目录本身时该怎么办?

你可以执行以下操作:

仅复制目录的内容(不是目录)

要仅复制目录的内容,而不复制目录本身,请在源目录名称的末尾附加 /.

cp -r 源目录/. 目标目录

在这里,我想复制名为 IF 的目录的内容,其中包含以下三个文件:

check the file contents of directory using the tree command

我将执行以下命令将 IF 目录的文件内容复制到 LHB

cp -r IF/. LHB

copy the file contents of directory not a directory itself in linux command line

你还可以在此处使用 源目录/*

复制多个目录

要复制多个目录,你必须按以下方式执行命令:

cp -r 目录1 目录2 目录3 目录N 目标目录

例如,在这里,我将两个名为 IFLU 的目录复制到 LHB

cp -r IF LU ~/LHB

copy multiple directories using the cp command in linux command line

当你想要从多个目录复制文件但不复制目录本身时,你可以执行相同的操作:

cp -r 目录1/. 目录2/. 目录3/. 目录N/. 目标目录

copy files from multiple directories but not directories their self using the cp command

?️ 你还可以像重命名文件一样重命名目录。

测试你的知识

现在,让我们看看你对到目前为止所学到的知识还记得多少。

  • 创建一个名为 copy_practice 的目录。
  • 将文件 /etc/services 复制到这个新创建的文件夹。
  • 在此目录下创建一个名为 secrets 的文件夹,并将文件 /etc/passwd/etc/services 复制到其中。
  • copy_practice 中的 services 文件复制到 secrets 文件夹中,但不要覆盖它。
  • secrets 文件夹复制到你的主目录。
  • 删除 secretscopy_practice 目录。

这会给你一些练习。

到目前为止进展顺利。你已经学到了很多东西。在下一章中,你将了解如何使用 mv 命令移动文件和文件夹。


via: https://itsfoss.com/copy-files-directory-linux/

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

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

cat 命令的用途不仅仅是显示文件内容。

cat 命令用于打印文本文件的文件内容。至少,大多数 Linux 用户都是这么做的,而且没有什么问题。

cat 实际上代表 “ 连接 concatenate ”,创建它是为了 合并文本文件。但只要有一个参数,它就会打印文件内容。因此,它是用户在终端中读取文件而无需任何其他选项的首选。

在 Linux 中使用 cat 命令

要使用 cat 命令,你必须遵循给定的命令语法:

cat [options] Filename(s)

这里:

  • [options] 用于修改 cat 命令的默认行为,例如使用 -n 选项获取每行的数字。
  • Filename 是你输入要使用的文件的文件名的位置。

为了简单起见,我将在本指南中使用名为 Haruki.txt 的文本文件,其中包含以下文本行:

Hear the Wind Sing (1979)
Pinball, 1973 (1980)
A Wild Sheep Chase (1982)
Hard-Boiled Wonderland and the End of the World (1985)
Norwegian Wood (1987)
Dance Dance Dance (1990)
South of the Border, West of the Sun (1992)
The Wind-Up Bird Chronicle (1994)
Sputnik Sweetheart (1999)
Kafka on the Shore (2002)
After Dark (2004)
1Q84 (2009-2010)
Colorless Tsukuru Tazaki and His Years of Pilgrimage (2013)
Men Without Women (2014)
Killing Commendatore (2017)

那么,在没有任何选项的情况下使用时,输出会是什么? 好吧,让我们看一下:

cat Haruki.txt

use cat command in Linux

正如你所看到的,它打印了整个文本文件!

但你可以做的远不止这些。让我向你展示一些实际例子。

1、创建新文件

大多数 Linux 用户使用 touch 命令来 创建新文件,但使用 cat 命令也可以完成相同的操作!

在这种场景下,cat 命令比 touch 命令有一个优势,因为你可以在创建文件时向文件添加文本。听起来很酷。不是吗?

为此,你需要使用 cat 命令,将文件名附加到 > 后面,如下所示:

cat > Filename

例如,在这里,我创建了一个名为 NewFile.txt 的文件:

cat > NewFile.txt

当你这样做了,就会有一个闪烁的光标要求你写一些东西,最后,你可以使用 Ctrl + d 来保存更改。

如果你想创建一个空文件,则只需按 Ctrl + d 而不进行任何更改。

Using cat command

这就好了!现在,你可以使用 ls 命令来显示 当前工作目录的内容

use the ls command to list the contents of the current working directory

2、将文件内容复制到另一个文件

考虑一个场景,你要将 FileA 的文件内容重定向到 FileB

当然,你可以复制和粘贴。但是如果有几百或几千行怎么办?

简单。你可以使用 cat 命令来重定向数据流。为此,你必须遵循给定的命令语法:

cat FileA > FileB
? 如果使用上述语法重定向文件内容,它将删除 FileB 的文件内容,然后重定向 FileA 的文件内容。

例如,我将使用两个文本文件 FileAFileB,其中包含以下内容:

check the file contents using the cat command

现在,如果我使用从 FileAFileB 的重定向,它将删除 FileB 的数据,然后重定向 FileA 的数据:

cat FileA > FileB

redirect the file content using the cat command

同样,你可以对多个文件执行相同的操作:

cat FileA FileB > FileC

redirect file content of multiple files using the cat command

可以看到,上面的命令删除了 FileC 的数据,然后重定向了 FileAFileB 的数据。

3、将一个文件的内容附加到另一个文件

有时你想要将数据附加到现有数据,在这种情况下,你必须使用 >> 而不是单个 >

cat FileA >> FileB

例如,在这里,我将把两个文件 FileAFileB 重定向到 FileC

cat FileA.txt FileB.txt >> FileC.txt

redirect file content without overriding using the cat command

如你所见,它保留了 FileC.txt 的数据,并将数据附加在末尾。

? 你可以使用 >> 向现有文件添加新行。使用 cat >> filename 并开始添加所需的文本,最后使用 Ctrl+D 保存更改。

4、显示行数

你可能会遇到这样的情况,你想查看行数,这可以使用 -n 选项来实现:

cat -n File

例如,在这里,我将 -n 选项与 Haruki.txt 一起使用:

get the number of the lines in the cat command

5、删除空行

在文本文档中留下多个空白行? cat 命令将为你修复它!

为此,你所要做的就是使用 -s 标志。

但使用 -s 标志有一个缺点。你仍然留有一行空白:

remove blank lines with the cat command

正如你所看到的,它有效,但结果接近预期。

那么如何删除所有空行呢? 通过管道将其传递给 grep 命令:

cat File | grep -v '^$'

这里,-v 标志将根据指定的模式过滤掉结果,'^$' 是匹配空行的正则表达式。

以下是我在 Haruki.txt 上使用它时的结果:

cat Haruki.txt | grep -v '^$'

remove all the blank lines in text files using the cat command piped with grep regular expression

当获得完美的输出,你可以将其重定向到文件以保存输出:

cat Haruki.txt | grep -v '^$' > File

save output of cat command by redirection

这就是你到目前为止所学到的

以下是我在本教程中解释的内容的快速摘要:

命令描述
cat <Filename>将文件内容打印到终端。
cat >File创建一个新文件。
cat FileA > FileBFileB 的文件内容将被 FileA 覆盖。
cat FileA >> FileBFileA 的文件内容将附加到 FileB 的末尾。
cat -n File显示行数,同时省略文件的文件内容。
`cat Filemore`cat 命令通过管道连接到 more 命令以处理大文件。请记住,它不能让你向上滚动!
`cat Fileless`cat 命令通过管道传输到 less 命令,这与上面类似,但它允许你双向滚动。
`cat Filegrep -v '^$'`从文件中删除所有空行。

?️ 练习时间

如果你学到了新东西,用不同的可能性来执行它是最好的记忆方式。

为此,你可以使用 cat 命令进行一些简单的练习。它们将是超级基本的,就像 cat 一样是最基本的命令之一

出于练习目的,你可以 使用 GitHub 上的文本文件

  • 如何使用 cat 命令创建空文件?
  • cat 命令生成的输出重定向到新文件 IF.txt
  • 能否将三个或更多文件输入重定向到一个文件? 如果是,该如何做?

(题图:MJ/f06c9b9c-689e-4a67-abe9-0487e26bd34b)


via: https://itsfoss.com/cat-command/

作者:Sagar Sharma 选题:lkxed 译者:geekpi 校对:wxy

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