分类 技术 下的文章

使用“优化”和它的用户主题扩展来改变你的 Linux UI。

GNOME 是一个相当简单和精简的 Linux 图形用户界面(GUI),很多用户喜欢它的简约外观。虽然它基本上是开箱即用的,但你可以根据自己的喜好来定制 GNOME 。有了 GNOME “优化” 和用户主题扩展,你可以改变顶部栏、窗口标题栏、图标、光标和许多其他 UI 选项的外观。

开始使用

在你改变你的 GNOME 主题之前,你必须安装 “ 优化 Tweaks ” 并启用用户主题扩展。

安装 GNOME “优化”

你可以在 GNOME “软件”中找到“优化”,只需点击一个按钮就可以快速安装。

 title=

如果你喜欢命令行,请使用你的软件包管理器。例如,在 Fedora 或 CentOS 上:

$ sudo dnf install gnome-tweaks

在 Debian 或类似的发行版:

$ sudo apt install gnome-tweaks

启用用户主题

要启用用户主题扩展,启动“优化”并选择“ 扩展 Extensions ”。找到 “用户主题User themes”,点击滑块启用。

 title=

获取主题

现在你已经完成了这些预先条件,你已经准备好寻找和下载一些主题了。一个寻找新主题的好网站是 GNOME-Look.org

在页面的左侧有一个主题类别的列表。当你找到一个你想要的主题,你需要下载它。我直接把 .tar 文件下载到我的家目录下的 .themes 目录(你可能需要先创建这个目录)。

$ mkdir ~/.themes

如果你想让所有用户都能使用这个主题,请把它放在 /usr/share/themes 中。

$ tar xvf theme_archive.tar.xz

下载后,解压压缩包。你可以删除 .tar.xz 文件以节省一些磁盘空间。

应用主题

要应用你的新主题,在“优化”中进入“ 外观 Appearance ”。在这里,你可以为你的桌面的每个方面选择不同的选项。

 title=

多样性是生活的调剂品

自从第一个图形界面面市以来,能够用不同的墙纸、颜色、字体等个性化电脑桌面一直是一个受欢迎的功能。GNOME “优化”和用户主题扩展可以在所有 GNU/Linux 操作系统上的 GNOME 桌面环境中实现这种自定义。而且开源社区还在持续提供广泛的主题、图标、字体和壁纸,任何人都可以下载、尝试和定制。

你最喜欢的 GNOME 主题是什么,你为什么喜欢它们?请在评论中分享。


via: https://opensource.com/article/20/8/gnome-themes

作者:Alan Formy-Duval 选题:lujun9972 译者:geekpi 校对:wxy

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

使用 Termux 和 Flask 在你的移动设备上创建、开发和运行一个网页应用。

学习和使用 Python 是很有趣的。由于它越来越受欢迎,有越来越多的方式可以让计算世界比现在更好。

想象一下,只需一个 Android 移动设备和开源工具,就可以构建和运行一个 Python 应用,无论是开发一个命令行工具从互联网上获取你最喜欢的文章,还是启动一个直接在掌上设备运行的网页服务器,所有这些都可以实现。这将完全改变你对移动设备的看法,将它从一个仅仅让你消费内容的设备变成一个帮助你发挥创造力的设备。

在本文中,我将演示运行和测试一个简单的 Python 应用所需的所有的工具、软件包、步骤和各种零零散散的东西。我使用 Flask 框架来创建一个简单的 “Hello, World!” 应用,并在一个简单而强大的网页服务器上运行。最棒的是,这一切都发生在手机上。不需要笔记本或台式机。

在 Android 上安装 Termux

首先,安装 Termux 应用程序。Termux 是一个强大的终端仿真器,它提供了所有最流行的 Linux 命令,加上数百个额外的包,以便于安装。它不需要任何特殊的权限,你可以使用默认的 Google Play 商店或开源应用仓库 F-Droid 来安装。

安装 Termux 后,启动它并使用 Termux 的 pkg 命令执行一些必要的软件安装。

订阅附加仓库 root-repo

$ pkg install root-repo

执行更新,使所有安装的软件达到最新状态。

$ pkg update

最后,安装 Python:

$ pkg install python

安装和自动配置完成后,就可以构建你的应用了。

在 Android 上构建一个 Android 应用

现在你已经安装了一个终端,你可以在很大程度上像使用另一台 Linux 电脑一样使用你的 Android 手机。这很好地展示了终端到底有多强大。

首先创建一个项目目录:

$ mkdir Source
$ cd Source

接下来,创建一个 Python 虚拟环境。这是 Python 开发者的常见做法,它有助于让你的 Python 项目独立于你的开发系统(在本例中是你的手机)。在你的虚拟环境中,你将能够安装特定于你应用的 Python 模块。

$ python -m venv venv

激活你的新虚拟环境(注意,开头的两个点用空格隔开)

$ . ./venv/bin/activate
(env)$

请注意你的 shell 提示符现在以 (env) 开头,表示你在虚拟环境中。

现在使用 pip 安装 Flask Python 模块。

(env) $ pip install flask

在 Android 上写 Python 代码

你已经准备好了。现在你需要为你的应用编写代码。

要做到这一点,你需要有经典文本编辑器的经验。我使用的是 vi。如果你不熟悉 vi,请安装并试用 vimtutor,它(如其名称所暗示的)可以教你如何使用这个编辑器。如果你有其他你喜欢的编辑器,如 jovejedjoeemacs,你可以安装并使用其中一个。

现在,由于这个演示程序非常简单,你也可以直接使用 shell 的 heredoc 功能,它允许你直接在提示符中输入文本。

(env)$ cat << EOF >> hello_world.py
> from flask import Flask
> app = Flask(__name__)
>
> @app.route('/')
> def hello_world():
>     return 'Hello, World!'
> EOF
(env)$

这只有六行代码,但有了它,你可以导入 Flask,创建一个应用,并将传入流量路由到名为 hello_world 的函数。

现在你已经准备好了网页服务器的代码。现在是时候设置一些环境变量,并在你的手机上启动一个网页服务器了。

(env) $ export FLASK_APP=hello_world.py
(env) $ export FLASK_ENV=development
(evn) $ python hello_world.py

启动应用后,你会看到这条消息:

serving Flask app… running on http://127.0.0.1:5000/

这表明你现在在 localhost(也就是你的设备)上运行着一个微型网页服务器。该服务器正在监听来自 5000 端口的请求。

打开你的手机浏览器并进入到 http://localhost:5000,查看你的网页应用。

你并没有损害手机的安全性。你只运行了一个本地服务器,这意味着你的手机不接受来自外部世界的请求。只有你可以访问你的 Flask 服务器。

为了让别人看到你的服务器,你可以在 run 命令中加入 --host=0.0.0.0 来禁用 Flask 的调试模式。这会打开你的手机上的端口,所以要谨慎使用。

(env) $ export FLASK_ENV=””
(env) $ flask run –host=0.0.0.0

Ctrl+C 停止服务器(使用特殊的 Termux 键来作为 Ctrl 键)。

决定下一步怎么做

你的手机可能不是一个严肃的网页应用的理想服务器平台,但这个例子证明了可能性是无限的。你可能会在 Android 手机上编程,只是因为这是一种方便的实践方式,或者因为你有一个令人兴奋的本地化网页应用的新想法,或者你只是碰巧使用 Flask 应用来完成自己的日常任务。正如爱因斯坦曾经说过的“想象力比知识更重要”,对于任何一个新手编码者,或者一个经验丰富的 Linux 或 Android 爱好者来说,这是一个有趣的小项目。它可以扩展到无穷的层次,所以让你的好奇心接手,并做出一些令人兴奋的东西!


via: https://opensource.com/article/20/8/python-android-mobile

作者:Phani Adabala 选题:lujun9972 译者:geekpi 校对:wxy

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

设想一下,你正忙于一项任务且需要在浏览器中打开超过 20 个页面,大多数页面都和工作有关。

还有一些是 YouTube 或其他音乐流媒体网站。

完成任务后需要关闭浏览器,但这会将包括工作相关和听音乐的网页等所有网页一起关掉。

然后你需要再次打开这些网页并登录账号以回到原来的进度。

这看起来令人沮丧,对吧?Linux Mint 理解你的烦恼,因此有了下面这个新项目帮助你应对这些问题。

最近的一篇文章中,Linux Mint 团队披露了正在开发一个名叫“ 网页应用管理器 Web App Manager ”的新工具。

该工具让你能够像使用桌面程序那样以独立窗口运行你最喜爱的网页。

在将网页添加为网页应用程序的时候,你可以给这个程序取名字并添加图标。也可以将它添加到不同的分类,以便在菜单中搜索这个应用。还可以指定用什么浏览器打开应用。启用/禁用导航栏的选项也有。

在 Linux Mint 中添加网页应用程序

例如,将 YouTube 添加为网页应用程序:

Linux Mint 中的网页应用程序

运行 YouTube 程序将通过你所使用的浏览器打开一个独立的页面。

YouTube 网页应用程序

网页应用程序拥有常规桌面应用程序有的大多数功能特点,如使用 Alt+Tab 切换。

使用 Alt+Tab 切换网页应用

甚至还能将应用固定到面板/任务栏方便打开。

添加到面板的 YouTube 网页应用

该管理器目前处于 beta 开发阶段,但已经使用起来已经相对比较稳定了。不过目前还没有面向大众发放,因为翻译工作还未完成。

如果你在使用 Linux Mint 并想尝试这个工具,可在下方下载 beta 版本的 deb 文件:

网页应用的好处

有读者问到这个网页应用管理器与 Chrome 和其他一些网页浏览器中已有的其他类似功能相比的好处。让我来展开一下这个话题。

  • 你可以使用 URL 的特定部分(example.com/tool 而不是 example.com)作为应用程序。
  • 添加自定义图标的可能性对于没有清晰的 favicon 的网站来说非常方便。
  • 你可以使用一个没有任何扩展的轻量级浏览器来打开网页应用,而不是像 Chrome/Chromium 这样的常规网页浏览器。它的速度应该更快。
  • 你的网页应用可以被整合到应用菜单中。你可以像其他应用程序一样搜索它。

网页应用程序在桌面环境的 Linux 中不是什么新事物

网页应用程序不是由 Linux Mint 独创的,而是早在大约 10 年前就有了。

你可能还记得 Ubuntu 在 2013-2014 年向 Unity 桌面中加入了网页应用程序这项特性。

轻量级 Linux 发行版 PeppermintOS 自 2010 年起就将 ICE(网页应用程序工具)列为其主要特色之一。实际上,Linux Mint 的网页应用程序管理器也是基于 ICE 的。

我个人喜欢网页应用程序,因为有用。

你怎么看 Linux Mint 中的网页应用程序呢,这是你期待使用的吗?欢迎在下方评论。


via: https://itsfoss.com/web-app-manager-linux-mint/

作者:Abhishek Prakash 选题:lujun9972 译者:koolape 校对:wxy

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

在桌面 Linux 世界中,最常用的术语之一就是 桌面环境 Desktop Environment (DE)。如果你是 Linux 的新手,你应该了解一下这个经常使用的术语。

什么是 Linux 中的桌面环境?

桌面环境是一个组件的组合体,为你提供常见的 图形用户界面 graphical user interface (GUI)元素组件,如图标、工具栏、壁纸和桌面小部件。借助桌面环境,你可以像在 Windows 中一样使用鼠标和键盘使用 Linux。

有几种不同的桌面环境,这些桌面环境决定了你的 Linux 系统的样子以及你与它的交互方式。

大多数桌面环境都有自己的一套集成的应用程序和实用程序,这样用户在使用操作系统时就能得到统一的感受。所以,你会得到一个文件资源管理器、桌面搜索、应用程序菜单、壁纸和屏保实用程序、文本编辑器等。

如果没有桌面环境,你的 Linux 系统就只有一个类似于终端的实用程序,你只能用命令与之交互。

Screenshot of GNOME Desktop Environment

Linux 中各种桌面环境

桌面环境有时也被简称为 DE。

如前所述,Linux 有各种桌面环境可供选择。为什么这么说呢?

可以把桌面环境看成是衣服。衣服决定了你的样子。如果你穿紧身牛仔裤和平底鞋,你会很好看,但穿着这些衣服跑步或登山就不舒服了。

GNOME 这样桌面环境注重现代的外观和用户体验,而像 Xfce 这样的桌面环境更注重使用更少的计算资源,而不是花哨的图形。

Screenshot of Xfce Desktop Environment

你的衣服取决于你的需要,决定了你的外观,桌面环境也是如此。你必须决定你是想要一些好看的东西,还是让你的系统运行得更快。

一些流行的桌面环境有:

  • GNOME - 使用大量的系统资源,但给你一个现代的、精致的系统
  • Xfce - 外观复古但占用资源很少
  • KDE - 可高度定制的桌面,适度占用系统资源
  • LXDE - 唯一的重点是尽可能少地使用资源
  • Budgie - 现代的外观和适度占用系统资源

Linux 发行版及其桌面环境变体

同样的桌面环境可以在多个 Linux 发行版上使用,一个 Linux 发行版也可能提供多个桌面环境。

例如,Fedora 和 Ubuntu 都默认使用 GNOME 桌面,但 Fedora 和 Ubuntu 都提供了其他桌面环境。

Linux 的优点和灵活性在于,你可以自己在任何 Linux 发行版上安装桌面环境。但大多数 Linux 发行版都为你省去了这个麻烦,并为不同的桌面环境提供了随时安装的 ISO 镜像。

例如 Manjaro Linux 默认使用 Xfce,但如果你喜欢在 Manjaro 上使用 GNOME,也可以下载 GNOME 版本的 ISO。

最后...

桌面环境是 Linux 桌面计算机的重要组成部分,而 Linux 服务器通常依靠命令行界面。并不是说不能在 Linux 服务器上安装桌面环境,但这是画蛇添足,浪费了重要的系统资源,而这些资源可以被服务器上运行的应用程序所利用。

我希望你现在对 Linux 中的桌面环境有了一些了解。我强烈推荐你阅读我的关于什么是 Linux 以及为什么有这么多 Linux 发行版的解释文章。我很有预感,你会喜欢我用它做的比喻。


via: https://itsfoss.com/what-is-desktop-environment/

作者:Abhishek Prakash 选题:lujun9972 译者:wxy 校对:wxy

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

凭借广泛的语言支持,Graudit 可以让你在开发过程中的审计你的代码安全。

测试是软件开发生命周期(SDLC)的重要组成部分,它有几个阶段。今天,我想谈谈如何在代码中发现安全问题。

在开发软件的时候,你不能忽视安全问题。这就是为什么有一个术语叫 DevSecOps,它的基本职责是识别和解决应用中的安全漏洞。有一些用于检查 OWASP 漏洞的开源解决方案,它将通过创建源代码的威胁模型来得出结果。

处理安全问题有不同的方法,如静态应用安全测试(SAST)、动态应用安全测试(DAST)、交互式应用安全测试(IAST)、软件组成分析等。

静态应用安全测试在代码层面运行,通过发现编写好的代码中的错误来分析应用。这种方法不需要运行代码,所以叫静态分析。

我将重点介绍静态代码分析,并使用一个开源工具进行实际体验。

为什么要使用开源工具检查代码安全?

选择开源软件、工具和项目作为开发的一部分有很多理由。它不会花费任何金钱,因为你使用的是一个由志趣相投的开发者社区开发的工具,而他们希望帮助其他开发者。如果你有一个小团队或一个初创公司,找到开源软件来检查你的代码安全是很好的。这样可以让你不必单独雇佣一个 DevSecOps 团队,让你的成本降低。

好的开源工具总是考虑到灵活性,它们应该能够在任何环境中使用,覆盖尽可能多的情况。这让开发人员更容易将该软件与他们现有的系统连接起来。

但是有的时候,你可能需要一个功能,而这个功能在你选择的工具中是不可用的。那么你就可以选择复刻其代码,在其上开发自己的功能,并在你的系统中使用。

因为,大多数时候,开源软件是由社区驱动的,开发的速度往往是该工具的用户的加分项,因为他们会根据用户的反馈、问题或 bug 报告来迭代项目。

使用 Graudit 来确保你的代码安全

有各种开源的静态代码分析工具可供选择,但正如你所知道的,工具分析的是代码本身,这就是为什么没有通用的工具适用于所有的编程语言。但其中一些遵循 OWASP 指南,尽量覆盖更多的语言。

在这里,我们将使用 Graudit,它是一个简单的命令行工具,可以让我们找到代码库中的安全缺陷。它支持不同的语言,但有一个固定的签名集。

Graudit 使用的 grep 是 GNU 许可证下的工具,类似的静态代码分析工具还有 Rough Auditing Tool for Security(RATS)、Securitycompass Web Application Analysis Tool(SWAAT)、flawfinder 等。但 Graudit 的技术要求是最低的,并且非常灵活。不过,你可能还是有 Graudit 无法满足的要求。如果是这样,你可以看看这个列表的其他的选择。

我们可以将这个工具安装在特定的项目下,或者全局命名空间中,或者在特定的用户下,或者任何我们喜欢地方,它很灵活。我们先来克隆一下仓库。

$ git clone https://github.com/wireghoul/graudit

现在,我们需要创建一个 Graudit 的符号链接,以便我们可以将其作为一个命令使用。

$ cd ~/bin &amp;&amp; mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit

.bashrc (或者你使用的任何 shell 的配置文件)中添加一个别名。

#------ .bashrc ------

alias graudit="~/bin/graudit"

重新加载 shell:

$ source ~/.bashrc # 或
$ exex $SHELL

让我们通过运行这个来检查是否成功安装了这个工具。

$ graudit -h

如果你得到类似于这样的结果,那么就可以了。

 title=

图 1 Graudit 帮助页面

我正在使用我现有的一个项目来测试这个工具。要运行该工具,我们需要传递相应语言的数据库。你会在 signatures 文件夹下找到这些数据库。

$ graudit -d ~/gradit/signatures/js.db

我在现有项目中的两个 JavaScript 文件上运行了它,你可以看到它在控制台中抛出了易受攻击的代码。

 title=

 title=

你可以尝试在你的一个项目上运行这个,项目本身有一个长长的数据库列表,用于支持不同的语言。

Graudit 的优点和缺点

Graudit 支持很多语言,这使其成为许多不同系统上的用户的理想选择。由于它的使用简单和语言支持广泛,它可以与其他免费或付费工具相媲美。最重要的是,它们正在开发中,社区也支持其他用户。

虽然这是一个方便的工具,但你可能会发现很难将某个特定的代码识别为“易受攻击”。也许开发者会在未来版本的工具中加入这个功能。但是,通过使用这样的工具来关注代码中的安全问题总是好的。

总结

在本文中,我只介绍了众多安全测试类型中的一种:静态应用安全测试。从静态代码分析开始很容易,但这只是一个开始。你可以在你的应用开发流水线中添加其他类型的应用安全测试,以丰富你的整体安全意识。


via: https://opensource.com/article/20/8/static-code-security-analysis

作者:Ari Noman 选题:lujun9972 译者:geekpi 校对:wxy

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

SSH 8.0 预发布公告中,OpenSSH 项目表示,他们认为 scp 协议已经过时,不灵活,而且不容易修复,然后他们继而推荐使用 sftprsync 来进行文件传输。

然而,很多用户都是从小用着 scp 命令长大的,所以对 rsync 并不熟悉。此外,rsync 可以做的事情也远不止复制文件,这可能会给菜鸟们留下复杂和难以掌握的印象。尤其是,scp 命令的标志大体上可以直接对应到 cp 命令的标志,而 rsync 命令的标志却和它大相径庭。

本文将为熟悉 scp 的人提供一个介绍和过渡的指南。让我们跳进最常见的场景:复制文件和复制目录。

复制文件

对于复制单个文件而言,scprsync 命令实际上是等价的。比方说,你需要把 foo.txt 传到你在名为 server 的服务器上的主目录下:

$ scp foo.txt me@server:/home/me/

相应的 rsync 命令只需要输入 rsync 取代 scp

$ rsync foo.txt me@server:/home/me/

复制目录

对于复制目录,就有了很大的分歧,这也解释了为什么 rsync 会被认为比 scp 更复杂。如果你想把 bar 目录复制到 server 服务器上,除了指定 ssh 信息外,相应的 scp 命令和 cp 命令一模一样。

$ scp -r bar/ me@server:/home/me/

对于 rsync,考虑的因素比较多,因为它是一个比较强大的工具。首先,我们来看一下最简单的形式:

$ rsync -r bar/ me@server:/home/me/

看起来很简单吧?对于只包含目录和普通文件的简单情况,这就可以了。然而,rsync 更在意发送与主机系统中一模一样的文件。让我们来创建一个稍微复杂一些,但并不罕见的例子:

# 创建多级目录结构
$ mkdir -p bar/baz
# 在其根目录下创建文件
$ touch bar/foo.txt
# 现在创建一个符号链接指回到该文件
$ cd bar/baz
$ ln -s ../foo.txt link.txt
# 返回原位置
$ cd -

现在我们有了一个如下的目录树:

bar
├── baz
│   └── link.txt -> ../foo.txt
└── foo.txt

1 directory, 2 files

如果我们尝试上面的命令来复制 bar,我们会注意到非常不同的(并令人惊讶的)结果。首先,我们来试试 scp

$ scp -r bar/ me@server:/home/me/

如果你 ssh 进入你的服务器,看看 bar 的目录树,你会发现它和你的主机系统有一个重要而微妙的区别:

bar
├── baz
│   └── link.txt
└── foo.txt

1 directory, 2 files

请注意,link.txt 不再是一个符号链接,它现在是一个 foo.txt 的完整副本。如果你习惯于使用 cp,这可能会是令人惊讶的行为。如果你尝试使用 cp -r 复制 bar 目录,你会得到一个新的目录,里面的符号链接和 bar 的一样。现在如果我们尝试使用之前的 rsync 命令,我们会得到一个警告:

$ rsync -r bar/ me@server:/home/me/
skipping non-regular file "bar/baz/link.txt"

rsync 警告我们它发现了一个非常规文件,并正在跳过它。因为你没有告诉它可以复制符号链接,所以它忽略了它们。rsync 在手册中有一节“符号链接”,解释了所有可能的行为选项。在我们的例子中,我们需要添加 -links 标志:

$ rsync -r --links bar/ me@server:/home/me/

在远程服务器上,我们看到这个符号链接是作为一个符号链接复制过来的。请注意,这与 scp 复制符号链接的方式不同。

bar/
├── baz
│   └── link.txt -> ../foo.txt
└── foo.txt

1 directory, 2 files

为了省去一些打字工作,并利用更多的文件保护选项,在复制目录时可以使用归档标志 -archive(简称 -a)。该归档标志将做大多数人所期望的事情,因为它可以实现递归复制、符号链接复制和许多其他选项。

$ rsync -a bar/ me@server:/home/me/

如果你感兴趣的话,rsync 手册页有关于存档标志的深入解释。

注意事项

不过,使用 rsync 有一个注意事项。使用 scp 比使用 rsync 更容易指定一个非标准的 ssh 端口。例如,如果 server 使用 8022 端口的 SSH 连接,那么这些命令就会像这样:

$ scp -P 8022 foo.txt me@server:/home/me/

而在使用 rsync 时,你必须指定要使用的“远程 shell”命令,默认是 ssh。你可以使用 -e 标志来指定。

$ rsync -e 'ssh -p 8022' foo.txt me@server:/home/me/

rsync 会使用你的 ssh 配置;但是,如果你经常连接到这个服务器,你可以在你的 ~/.ssh/config 文件中添加以下代码。这样你就不需要再为 rsyncssh 命令指定端口了!

Host server
    Port 8022

另外,如果你连接的每一台服务器都在同一个非标准端口上运行,你还可以配置 RSYNC_RSH 环境变量。

为什么你还是应该切换到 rsync?

现在我们已经介绍了从 scp 切换到 rsync 的日常使用案例和注意事项,让我们花一些时间来探讨一下为什么你可能想要使用 rsync 的优点。很多人在很久以前就已经开始使用 rsync 了,就是因为这些优点。

即时压缩

如果你和服务器之间的网络连接速度较慢或有限,rsync 可以花费更多的 CPU 处理能力来节省网络带宽。它通过在发送数据之前对数据进行即时压缩来实现。压缩可以用 -z 标志来启用。

差量传输

rsync 也只在目标文件与源文件不同的情况下复制文件。这可以在目录中递归地工作。例如,如果你拿我们上面的最后一个 bar 的例子,并多次重新运行那个 rsync 命令,那么在最初的传输之后就不会有任何传输。如果你知道你会重复使用这些命令,例如备份到 U 盘,那么使用 rsync 即使是进行本地复制也是值得的,因为这个功能可以节省处理大型数据集的大量的时间。

同步

顾名思义,rsync 可以做的不仅仅是复制数据。到目前为止,我们只演示了如何使用 rsync 复制文件。如果你想让 rsync 把目标目录变成源目录的样子,你可以在 rsync 中添加删除标志 -delete。这个删除标志使得 rsync 将从源目录中复制不存在于目标目录中的文件,然后它将删除目标目录中不存在于源目录中的文件。结果就是目标目录和源目录完全一样。相比之下,scp 只会在目标目录下添加文件。

结论

对于简单的使用情况,rsync 并不比老牌的 scp 工具复杂多少。唯一显著的区别是在递归复制目录时使用 -a 而不是 -r。然而,正如我们看到的,rsync-a 标志比 scp-r 标志更像 cp-r 标志。

希望通过这些新命令,你可以加快你的文件传输工作流程。


via: https://fedoramagazine.org/scp-users-migration-guide-to-rsync/

作者:chasinglogic 选题:lujun9972 译者:wxy 校对:wxy

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