2018年9月

mDNS( 多播 DNS Multicast DNS )允许系统在局域网中广播查询其他资源的名称。Fedora 用户经常在没有复杂名称服务的路由器上接有多个 Linux 系统。在这种情况下,mDNS 允许你按名称与多个系统通信 —— 多数情况下不用路由器。你也不必在所有本地系统上同步类似 /etc/hosts 之类的文件。本文介绍如何设置它。

mDNS 是一个零配置网络服务,它已经诞生了很长一段时间。Fedora Workstation 带有零配置系统 Avahi(它包含 mDNS)。 (mDNS 也是 Bonjour 的一部分,可在 Mac OS 上找到。)

本文假设你有两个系统运行受支持的 Fedora 版本(27 或 28)。它们的主机名是 castor 和 pollux。

安装包

确保系统上安装了 nss-mdns 和 avahi 软件包。你可能是不同的版本,这也没问题:

$ rpm -q nss-mdns avahi
nss-mdns-0.14.1-1.fc28.x86_64
avahi-0.7-13.fc28.x86_64

Fedora Workstation 默认提供这两个包。如果不存在,请安装它们:

$ sudo dnf install nss-mdns avahi

确保 avahi-daemon.service 单元已启用并正在运行。同样,这是 Fedora Workstation 的默认设置。

$ sudo systemctl enable --now avahi-daemon.service

虽然是可选的,但你可能还需要安装 avahi-tools 软件包。该软件包包括许多方便的程序,用于检查系统上的零配置服务的工作情况。使用这个 sudo 命令:

$ sudo dnf install avahi-tools

/etc/nsswitch.conf 控制系统使用哪个服务用于解析,以及它们的顺序。你应该在那个文件中看到这样的一行:

hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

注意命令 mdns4_minimal [NOTFOUND=return]。它们告诉你的系统使用多播 DNS 解析程序将主机名解析为 IP 地址。即使该服务有效,如果名称无法解析,也会尝试其余服务。

如果你没有看到与此类似的配置,则可以(以 root 用户身份)对其进行编辑。但是,nss-mdns 包会为你处理此问题。如果你对自己编辑它感到不舒服,请删除并重新安装该软件包以修复该文件。

两个系统中执行同样的步骤 。

设置主机名并测试

现在你已完成常见的配置工作,请使用以下方法之一设置每个主机的名称:

  1. 如果你正在使用 Fedora Workstation,你可以使用这个步骤
  2. 如果没有,请使用 hostnamectl 来做。在第一台机器上这么做:$ hostnamectl set-hostname castor
  3. 你还可以编辑 /etc/avahi/avahi-daemon.conf,删除主机名设置行上的注释,并在那里设置名称。但是,默认情况下,Avahi 使用系统提供的主机名,因此你不应该需要此方法。

接下来,重启 Avahi 守护进程,以便它接收更改:

$ sudo systemctl restart avahi-daemon.service

然后正确设置另一台机器:

$ hostnamectl set-hostname pollux
$ sudo systemctl restart avahi-daemon.service

只要你的路由器没有禁止 mDNS 流量,你现在应该能够登录到 castor 并 ping 通另一台机器。你应该使用默认的 .local 域名,以便解析正常工作:

$ ping pollux.local
PING pollux.local (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1 (192.168.0.1): icmp_seq=1 ttl=64 time=3.17 ms
64 bytes from 192.168.0.1 (192.168.0.1): icmp_seq=2 ttl=64 time=1.24 ms
...

如果你在 pollux ping castor.local,同样的技巧也适用。现在在网络中访问你的系统更方便了!

此外,如果你的路由器也支持这个服务,请不要感到惊讶。现代 WiFi 和有线路由器通常提供这些服务,以使消费者的生活更轻松。

此过程适用于大多数系统。但是,如果遇到麻烦,请使用 avahi-browse 和 avahi-tools 软件包中的其他工具来查看可用的服务。


via: https://fedoramagazine.org/find-systems-easily-lan-mdns/

作者:Paul W. Frields 选题:lujun9972 译者:geekpi 校对:wxy

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

我使用 Oracle VirtualBox 来测试各种类 Unix 操作系统。我的大多数虚拟机都是 无头 headless 服务器,它们没有图形桌面环境。很长一段时间,我一直想知道如何在无头 Linux 服务器的基于文本的终端中使用鼠标。感谢 GPM,今天我了解到我们可以在虚拟控制台中使用鼠标进行复制和粘贴操作。 GPM,是 通用鼠标 General Purpose Mouse 的首字母缩写,它是一个守护程序,可以帮助你配置 Linux 虚拟控制台的鼠标支持。请不要将 GPM 与 GDM GNOME 显示管理器 GNOME Display manager )混淆。两者有完全不同的用途。

GPM 在以下场景中特别有用:

  • 新的 Linux 服务器安装或默认情况下不能或不使用 X Windows 的系统,如 Arch Linux 和 Gentoo。
  • 在虚拟终端/控制台中使用复制/粘贴操作。
  • 在基于文本的编辑器和浏览器中使用复制/粘贴(例如,emacs、lynx)。
  • 在文本文件管理器中使用复制/粘贴(例如 Ranger、Midnight commander)。

在这个简短的教程中,我们将看到如何在类 Unix 操作系统中在基于文本的终端中使用鼠标。

安装 GPM

要在纯文本 Linux 系统中启用鼠标支持,请安装 GPM 包。它在大多数 Linux 发行版的默认仓库中都有。

在 Arch Linux 及其变体如 Antergos、Manjaro Linux 上,运行以下命令来安装 GPM:

$ sudo pacman -S gpm

在 Debian、Ubuntu、Linux Mint 中:

$ sudo apt install gpm

在 Fedora 上:

$ sudo dnf install gpm

在 openSUSE 上:

$ sudo zypper install gpm

安装后,使用以下命令启用并启动 GPM 服务:

$ sudo systemctl enable gpm
$ sudo systemctl start gpm

在基于 Debian 的系统中,gpm 服务将在你安装后自动启动,因此你无需如上所示手动启动服务。

为 Linux 虚拟控制台配置鼠标支持

无需特殊配置。GPM 将在你安装并启动 gpm 服务后立即开始工作。

在安装 GPM 之前,看下我的 Ubuntu 18.04 LTS 服务器的屏幕截图:

正如你在上面的截图中看到的,我的 Ubuntu 18.04 LTS 无头服务器中没有可见的鼠标指针。只有一个闪烁的光标,它不能让我选择文本,使用鼠标复制/粘贴文本。在仅限 CLI 的 Linux 服务器中,鼠标根本没用。

在安装 GPM 后查看 Ubuntu 18.04 LTS 服务器的以下截图:

看见了吗?我现在可以选择文字了。

要选择,复制和粘贴文本,请执行以下操作:

  • 要选择文本,请按下鼠标左键并拖动鼠标。
  • 选择文本后,放开鼠标左键,并按下中键在同一个或另一个控制台中粘贴文本。
  • 右键用于扩展选择,就像在 xterm 中。
  • 如果你使用的是双键鼠标,请使用右键粘贴文本。

就这么简单!

就像我已经说过的那样,GPM 工作得很好,并且不需要额外的配置。以下是 GPM 配置文件 /etc/gpm.conf(或在某些发行版中是 /etc/conf.d/gpm)的示例内容:

# protected from evaluation (i.e. by quoting them).
#
# This file is used by /etc/init.d/gpm and can be modified by
# "dpkg-reconfigure gpm" or by hand at your option.
#
device=/dev/input/mice
responsiveness=
repeat_type=none
type=exps2
append=''
sample_rate=

在我的例子中,我使用 USB 鼠标。如果你使用的是其他鼠标,则可能需要更改 device=/dev/input/micetype=exps2 参数的值。

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

$ man gpm

就是这些了。希望这个有用。还有更多的好东西。敬请期待!

干杯!


via: https://www.ostechnix.com/how-to-configure-mouse-support-for-linux-virtual-consoles/

作者:SK 
选题:lujun9972 
译者:geekpi 
校对:wxy

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

我将向你介绍让 Git 的启动、运行,并和 GitHub 一起使用的基础知识。

如果你是一个开发者,那你应该熟悉许多开发工具。你已经花了多年时间来学习一种或者多种编程语言并打磨你的技巧。你可以熟练运用图形工具或者命令行工具开发。在你看来,没有任何事可以阻挡你。你的代码, 好像你的思想和你的手指一样,将会创建一个优雅的,完美评价的应用程序,并会风靡世界。

然而,如果你和其他人共同开发一个项目会发生什么呢?或者,你开发的应用程序变地越来越大,下一步你将如何去做?如果你想成功地和其他开发者合作,你定会想用一个分布式版本控制系统。使用这样一个系统,合作开发一个项目变得非常高效和可靠。这样的一个系统便是 Git。还有一个叫 GitHub 的方便的存储仓库,用来存储你的项目代码,这样你的团队可以检查和修改代码。

我将向你介绍让 Git 的启动、运行,并和 GitHub 一起使用的基础知识,可以让你的应用程序的开发可以提升到一个新的水平。我将在 Ubuntu 18.04 上进行演示,因此如果您选择的发行版本不同,您只需要修改 Git 安装命令以适合你的发行版的软件包管理器。

Git 和 GitHub

第一件事就是创建一个免费的 GitHub 账号,打开 GitHub 注册页面,然后填上需要的信息。完成这个之后,你就注备好开始安装 Git 了(这两件事谁先谁后都可以)。

安装 Git 非常简单,打开一个命令行终端,并输入命令:

sudo apt install git-all

这将会安装大量依赖包,但是你将了解使用 Git 和 GitHub 所需的一切。

附注:我使用 Git 来下载程序的安装源码。有许多时候,内置的软件管理器不提供某个软件,除了去第三方库中下载源码,我经常去这个软件项目的 Git 主页,像这样克隆:

git clone ADDRESS

“ADDRESS” 就是那个软件项目的 Git 主页。这样我就可以确保自己安装那个软件的最新发行版了。

创建一个本地仓库并添加一个文件

下一步就是在你的电脑里创建一个本地仓库(本文称之为 newproject,位于 ~/ 目录下),打开一个命令行终端,并输入下面的命令:

cd ~/
mkdir newproject
cd newproject

现在你需要初始化这个仓库。在 ~/newproject 目录下,输入命令 git init,当命令运行完,你就可以看到一个刚刚创建的空的 Git 仓库了(图1)。

 title=

图 1: 初始化完成的新仓库

下一步就是往项目里添加文件。我们在项目根目录(~/newproject)输入下面的命令:

touch readme.txt

现在项目里多了个空文件。输入 git status 来验证 Git 已经检测到多了个新文件(图2)。

 title=

图 2: Git 检测到新文件readme.txt

即使 Git 检测到新的文件,但它并没有被真正的加入这个项目仓库。为此,你要输入下面的命令:

git add readme.txt

一旦完成这个命令,再输入 git status 命令,可以看到,readme.txt 已经是这个项目里的新文件了(图3)。

 title=

图 3: 我们的文件已经被添加进临时环境

第一次提交

当新文件添加进临时环境之后,我们现在就准备好创建第一个 提交 commit 了。什么是提交呢?简单的说,一个提交就是你更改的项目的文件的记录。创建一个提交也是非常简单的。但是,为提交包含一个描述信息非常重要。通过这样做,你可以添加有关该提交包含的内容的注释,比如你对文件做出的何种修改。然而,在这样做之前,我们需要告知 Git 我们的账户,输入以下命令:

git config --global user.email EMAIL
git config --global user.name “FULL NAME”

“EMAIL” 即你的 email 地址,“FULL NAME” 则是你的姓名。

现在你可以通过以下命令创建一个提交:

git commit -m “Descriptive Message”

“Descriptive Message” 即为你的提交的描述性信息。比如,当你第一个提交是提交一个 readme.txt 文件,你可以这样提交:

git commit -m “First draft of readme.txt file”

你可以看到输出表明一个文件已经修改,并且,为 readme.txt 创建了一个新的文件模式(图4)

 title=

图4:提交成功

创建分支并推送至 GitHub

分支是很重要的,它允许你在项目状态间中移动。假如,你想给你的应用创建一个新的特性。为了这样做,你创建了个新分支。一旦你完成你的新特性,你可以把这个新分支合并到你的主分支中去,使用以下命令创建一个新分支:

git checkout -b BRANCH

“BRANCH” 即为你新分支的名字,一旦执行完命令,输入 git branch 命令来查看是否创建了新分支(图5)

 title=

图5:名为 featureX 的新分支

接下来,我们需要在 GitHub 上创建一个仓库。 登录 GitHub 帐户,请单击帐户主页上的“New Repository”按钮。 填写必要的信息,然后单击 “Create repository”(图6)。

 title=

图6:在 GitHub 上新建一个仓库

在创建完一个仓库之后,你可以看到一个用于推送本地仓库的地址。若要推送,返回命令行窗口(~/newproject 目录中),输入以下命令:

git remote add origin URL
git push -u origin master

“URL” 即为我们 GitHub 上新建的仓库地址。

系统会提示您,输入 GitHub 的用户名和密码,一旦授权成功,你的项目将会被推送到 GitHub 仓库中。

拉取项目

如果你的同事改变了你们 GitHub 上项目的代码,并且已经合并那些更改,你可以拉取那些项目文件到你的本地机器,这样,你系统中的文件就可以和远程用户的文件保持匹配。你可以输入以下命令来做这件事(~/newproject 在目录中),

git pull origin master

以上的命令可以拉取任何新文件或修改过的文件到你的本地仓库。

基础

这就是从命令行使用 Git 来处理存储在 GitHub 上的项目的基础知识。 还有很多东西需要学习,所以我强烈建议你使用 man gitman git-pushman git-pull 命令来更深入地了解 git 命令可以做什么。

开发快乐!

了解更多关于 Linux 的 内容,请访问来自 Linux 基金会和 edX 的免费的 Introduction to Linux课程。


via: https://www.linux.com/learn/intro-to-linux/2018/7/introduction-using-git

作者:Jack Wallen 选题:lujun9972 译者:distant1219 校对:wxy

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

本文由高级咨询师薛亮据自由软件基金会(FSF)的英文原文翻译而成,这篇常见问题解答澄清了在使用 GNU 许可证中遇到许多问题,对于企业和软件开发者在实际应用许可证和解决许可证问题时具有很强的实践指导意义。

  1. 关于 GNU 项目、自由软件基金会(FSF)及其许可证的基本问题
  2. 对于 GNU 许可证的一般了解
  3. 在您的程序中使用 GNU 许可证
  4. 依据GNU许可证分发程序
  5. 在编写其他程序时采用依据 GNU 许可证发布的程序
  6. 将作品与依据 GNU 许可证发布的代码相结合
  7. 关于违反 GNU 许可证的问题

7 关于违反 GNU 许可证的问题

7.1 如果发现了可能违反 GPL 许可证的行为,我该怎么办?

您应该进行报告。 首先,尽可能检查事实。然后告诉发行者或版权所有者涉及的具体 GPL 程序。如果是自由软件基金会,请写信给 mailto:[email protected]。此外,程序的维护者可能是版权所有者,他可能会告诉您如何联系版权所有者,因此将其报告给维护者。

7.2 谁有权力执行 GPL 许可证?(同 1.10)

由于 GPL 是版权许可,软件的版权所有者将是有权执行 GPL 的人。如果您发现违反 GPL 的行为,您应该向遵循 GPL 的该软件的开发人员通报。他们是版权所有者,或与版权所有者有关。若要详细了解如何报告 GPL 违规,请参阅“如果发现了可能违反 GPL 许可证的行为,我该怎么办?”。

7.3 我听说有人依据另一个许可证获得了 GPL 程序的副本。这可能吗?

GNU GPL 不允许用户将其他许可证附加到程序。但是,程序的版权持有人可以依据几个不同的许可证并行发布。其中一个可能是 GNU GPL。

对于您的副本中的许可证来说,假设由版权所有者放置,并且您合法地获得该副本,则是适用于您的副本的许可证。

7.4 遵循 GPL 的程序的开发者是否受 GPL 的约束?开发者的行为是否会违反 GPL?

严格来说,GPL 是开发者授予其他人使用、分发和更改程序的许可。开发者本身并不受其约束,所以无论开发者做什么,都不是 GPL 的“违规”。

但是,如果开发者做某些违反 GPL 的行为,那么开发者一定会失去在社区的道德地位。

7.5 我刚刚发现一家公司有一份 GPL 程序的副本,获取该副本需支付费用。他们会因为不能在互联网上提供副本而违反 GPL 吗?(同 4.12)

不会,GPL 不要求任何人使用互联网进行分发。它也不要求任何人特意去再分发程序。而且(一个特殊情况之外),即使有人决定再分发该程序,GPL 也不会要求他必须特意向您或其他人分发副本。

GPL 要求的是,如果他愿意,他必须有权将副本分发给你。一旦版权所有者将程序的副本分发给某人,如果某人认为合适,那么该人可以将程序再分发给您或任何其他人。

7.6 我可以在如果客户不继续支付订阅费用就停止运行的设备上使用遵循 GPL 的软件吗?

不可以。在这种情况下,继续支付费用的要求限制了用户运行程序的能力。 这是在 GPL 之上的额外要求,GPL 禁止这种行为。

7.7 “纠正” cure 违反 GPL v3 的行为意味着什么?

纠正违规行为意味着调整您的做法以符合许可证的要求。

7.8 如果有人在笔记本电脑上安装遵循 GPL 的软件,然后将笔记本电脑借给朋友,而不提供软件的源代码,他们是否违反了 GPL?

在我们调查这个问题的司法管辖区,这种借用不会被算作、 传递 convey 。笔记本电脑的所有者不会依据 GPL 承担任何义务。

7.9 假设两家公司试图通过让一家公司发布已签约的软件,另一家公司发布仅运行第一家公司签约软件的用户产品,以此来规避提供安装信息的要求。这是否违反了 GPL v3?

是的。如果双方通过一起工作来逃避 GPL 的要求,就可以追究它们的侵权行为。这是特别真实的情形,因为 传递 convey 的定义明确地包括会使某人对二次侵权负责的活动。


译者介绍:薛亮,集慧智佳知识产权咨询公司高级咨询师,擅长专利检索、专利分析、竞争对手跟踪、FTO 分析、开源软件知识产权风险分析,致力于为互联网企业、高科技公司提供知识产权咨询服务。

这 20 多个有用的命令可以增强你使用 Vim 的体验。

编者注:标题和文章最初称呼的 vi 编辑器,现已更新为编辑器的正确名称:Vim

Vim 作为一款功能强大、选项丰富的编辑器,为许多用户所热爱。本文介绍了一些在 Vim 中默认未启用但实际非常有用的选项。虽然可以在每个 Vim 会话中单独启用,但为了创建一个开箱即用的高效编辑环境,还是建议在 Vim 的配置文件中配置这些命令。

开始前的准备

这里所说的选项或配置均位于用户主目录中的 Vim 启动配置文件 .vimrc。 按照下面的说明在 .vimrc 中设置选项:

(注意:vimrc 文件也用于 Linux 中的全局配置,如 /etc/vimrc/etc/vim/vimrc。本文所说的 .vimrc 均是指位于用户主目录中的 .vimrc 文件。)

Linux 系统中:

  • Vim 打开 .vimrc 文件: vim ~/.vimrc
  • 复制本文最后的 选项列表 粘贴到 .vimrc 文件
  • 保存并关闭 (:wq)

(LCTT 译注:此处不建议使用 Vim 编辑 .vimrc 文件,因为很可能无法粘贴成功,可以选择 gedit 编辑器编辑 .vimrc 文件。)

Windows 系统中:

  • 首先,安装 gvim
  • 打开 gvim
  • 单击 “编辑” -> “启动设置”,打开 _vimrc 文件
  • 复制本文最后的 “选项列表” 粘贴到 _vimrc 文件
  • 单击 “文件” -> “保存”

(LCTT 译注:此处应注意不要使用 Windows 自带的记事本编辑该 _vimrc 文件,否则可能会因为行结束符不同而导致问题。)

下面,我们将深入研究提高 Vim 编辑效率的选项。主要分为以下几类:

  1. 缩进 & 制表符
  2. 显示 & 格式化
  3. 搜索
  4. 浏览 & 滚动
  5. 拼写
  6. 其他选项

1. 缩进 & 制表符

使 Vim 在创建新行的时候使用与上一行同样的缩进:

set autoindent

创建新行时使用智能缩进,主要用于 C 语言一类的程序。通常,打开 smartindent 时也应该打开 autoindent

set smartindent

注意:Vim 具有语言感知功能,且其默认设置可以基于文件中的编程语言来改变配置以提高效率。有许多默认的配置选项,包括 axs cindentcinoptionsindentexpr 等,没有在这里说明。 syn 是一个非常有用的命令,用于设置文件的语法以更改显示模式。

(LCTT 译注:这里的 syn 是指 syntax,可用于设置文件所用的编程语言,开启对应的语法高亮,以及执行自动事件 (autocmd)。)

设置文件里的制表符 (TAB) 的宽度(以空格的数量表示):

set tabstop=4

设置移位操作 >><< 的缩进长度(以空格的数量表示):

set shiftwidth=4

如果你更喜欢在编辑文件时使用空格而不是制表符,设置以下选项可以使 Vim 在你按下 Tab 键时用空格代替制表符。

set expandtab

注意:这可能会导致依赖于制表符的 Python 等编程语言出现问题。这时,你可以根据文件类型设置该选项(请参考 autocmd)。

2. 显示 & 格式化

要在每行的前面显示行号:

set number

要在文本行超过一定长度时自动换行:

set textwidth=80

要根据从窗口右侧向左数的列数来自动换行:

set wrapmargin=2

(LCTT 译注:如果 textwidth 选项不等于零,本选项无效。)

当光标遍历文件时经过括号时,高亮标识匹配的括号:

set showmatch

3. 搜索

高亮搜索内容的所有匹配位置:

set hlsearch

搜索过程中动态显示匹配内容:

set incsearch

搜索时忽略大小写:

set ignorecase

在打开 ignorecase 选项的条件下,搜索内容包含部分大写字符时,要使搜索大小写敏感:

set smartcase

例如,如果文件内容是:

test
Test

当打开 ignorecasesmartcase 选项时,搜索 test 时的突出显示:

test
Test

搜索 Test 时的突出显示:

test
Test

4. 浏览 & 滚动

为获得更好的视觉体验,你可能希望将光标放在窗口中间而不是第一行,以下选项使光标距窗口上下保留 5 行。

set scrolloff=5

一个例子:

第一张图中 scrolloff=0,第二张图中 scrolloff=5

提示:如果你没有设置选项 nowrap,那么设置 sidescrolloff 将非常有用。

Vim 窗口底部显示一个永久状态栏,可以显示文件名、行号和列号等内容:

set laststatus=2

5. 拼写

Vim 有一个内置的拼写检查器,对于文本编辑和编码非常有用。Vim 可以识别文件类型并仅对代码中的注释进行拼写检查。使用下面的选项打开英语拼写检查:

set spell spelllang=en_us

(LCTT 译注:中文、日文或其它东亚语字符通常会在打开拼写检查时被标为拼写错误,因为拼写检查不支持这些语种,可以在 spelllang 选项中加入 cjk 来忽略这些错误标注。)

6. 其他选项

禁止创建备份文件:启用此选项后,Vim 将在覆盖文件前创建一个备份,文件成功写入后保留该备份。如果不想保留该备份文件,可以按下面的方式关闭:

set nobackup

禁止创建交换文件:启用此选项后,Vim 将在编辑该文件时创建一个交换文件。 交换文件用于在崩溃或发生使用冲突时恢复文件。交换文件是以 . 开头并以 .swp 结尾的隐藏文件。

set noswapfile

如果需要在同一个 Vim 窗口中编辑多个文件并进行切换。默认情况下,工作目录是打开的第一个文件的目录。而将工作目录自动切换到正在编辑的文件的目录是非常有用的。要自动切换工作目录:

set autochdir

Vim 自动维护编辑的历史记录,允许撤消更改。默认情况下,该历史记录仅在文件关闭之前有效。Vim 包含一个增强功能,使得即使在文件关闭后也可以维护撤消历史记录,这意味着即使在保存、关闭和重新打开文件后,也可以撤消之前的更改。历史记录文件是使用 .un~ 扩展名保存的隐藏文件。

set undofile

错误信息响铃,只对错误信息起作用:

set errorbells

如果你愿意,还可以设置错误视觉提示:

set visualbell

惊喜

Vim 提供长格式和短格式命令,两种格式都可用于设置或取消选项配置。

autoindent 选项的长格式是:

set autoindent

autoindent 选项的短格式是:

set ai

要在不更改选项当前值的情况下查看其当前设置,可以在 Vim 的命令行上使用在末尾加上 ? 的命令:

set autoindent?

在大多数选项前加上 no 前缀可以取消或关闭选项:

set noautoindent

可以为单独的文件配置选项,而不必修改全局配置文件。需要的话,请打开文件并输入 :,然后键入 set命令。这样的话,配置仅对当前的文件编辑会话有效。

使用命令行获取帮助:

:help autoindent

注意:此处列出的命令仅对 Linux 上的 Vim 7.4 版本和 Windows 上的 Vim 8.0 版本进行了测试。

这些有用的命令肯定会增强您的 Vim 使用体验。你会推荐哪些其他有用的命令?

选项列表

复制该选项列表粘贴到 .vimrc 文件中:

" Indentation & Tabs
set autoindent
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set smarttab
" Display & format
set number
set textwidth=80
set wrapmargin=2
set showmatch
" Search
set hlsearch
set incsearch
set ignorecase
set smartcase
" Browse & Scroll
set scrolloff=5
set laststatus=2
" Spell
set spell spelllang=en_us
" Miscellaneous
set nobackup
set noswapfile
set autochdir
set undofile
set visualbell
set errorbells

via: https://opensource.com/article/18/9/vi-editor-productivity-powerhouse

作者:Girish Managoli 选题:lujun9972 译者:idea2act 校对:apemost, wxy

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

Autotrash 是一个命令行程序,它用于自动清除旧的已删除文件。它将清除超过指定天数的在回收站中的文件。你不需要清空回收站或执行 SHIFT+DELETE 以永久清除文件/文件夹。Autortrash 将处理回收站中的内容,并在特定时间段后自动删除它们。简而言之,Autotrash 永远不会让你的垃圾变得太大。

安装 Autotrash

Autotrash 默认存在于基于 Debian 系统的仓库中。要在 Debian、Ubuntu、Linux Mint 上安装 autotrash,请运行:

$ sudo apt-get install autotrash

在 Fedora 上:

$ sudo dnf install autotrash

对于 Arch linux 及其变体,你可以使用任何 AUR 助手程序, 如 Yay 安装它。

$ yay -S autotrash-git

自动清除旧的垃圾文件

每当你运行 autotrash 时,它会扫描你的 ~/.local/share/Trash/info 目录并读取 .trashinfo 以找出它们的删除日期。如果文件已在回收站中超过指定的日期,那么就会删除它们。

让我举几个例子。

要删除回收站中超过 30 天的文件,请运行:

$ autotrash -d 30

如上例所示,如果回收站中的文件超过 30 天,Autotrash 会自动将其从回收站中删除。你无需手动删除它们。只需将没用的文件放到回收站即可忘记。Autotrash 将处理已删除的文件。

以上命令仅处理当前登录用户的垃圾目录。如果要使 autotrash 处理所有用户的垃圾目录(不仅仅是在你的家目录中),请使用 -t 选项,如下所示。

$ autotrash -td 30

Autotrash 还允许你根据回收站可用容量或磁盘可用空间来删除已删除的文件。

例如,看下下面的例子:

$ autotrash --max-free 1024 -d 30

根据上面的命令,如果回收站的剩余的空间少于 1GB,那么 autotrash 将从回收站中清除超过 30 天的已删除文件。如果你的回收站空间不足,这可能很有用。

我们还可以从回收站中按最早的时间清除文件直到回收站至少有 1GB 的空间。

$ autotrash --min-free 1024

在这种情况下,对旧的已删除文件没有限制。

你可以将这两个选项(--min-free--max-free)组合在一个命令中,如下所示。

$ autotrash --max-free 2048 --min-free 1024 -d 30

根据上面的命令,如果可用空间小于 2GBautotrash 将读取回收站,接着关注容量。此时,删除超过 30 天的文件,如果少于 1GB 的可用空间,则删除更新的文件。

如你所见,所有命令都应由用户手动运行。你可能想知道,我该如何自动执行此任务?这很容易!只需将 autotrash 添加为 crontab 任务即可。现在,命令将在计划的时间自动运行,并根据定义的选项清除回收站中的文件。

要在 crontab 中添加这些命令,请运行:

$ crontab -e

添加任务,例如:

@daily /usr/bin/autotrash -d 30

现在,autotrash 将每天清除回收站中超过 30 天的文件。

有关计划任务的更多详细信息,请参阅以下链接。

  • [Cron 任务的初学者指南]]2
  • [如何在 Linux 中轻松安全地管理 Cron 作业]]3

请注意,如果你无意中删除了任何重要文件,它们将在规定的日期后永久消失,所以请小心。

请参阅手册页以了解有关 Autotrash 的更多信息。

$ man autotrash

清空回收站或按 SHIFT+DELETE 永久删除 Linux 系统中没用的东西没什么大不了的。它只需要几秒钟。但是,如果你需要额外的程序来处理垃圾文件,Autotrash 可能会有所帮助。试一下,看看它是如何工作的。

就是这些了。希望这个有用。还有更多的好东西。

干杯!


via: https://www.ostechnix.com/autotrash-a-cli-tool-to-automatically-purge-old-trashed-files/

作者:SK 选题:lujun9972 译者:geekpi 校对:wxy

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