SK 发布的文章

我知道熬夜对健康不利。但谁在乎?多年来我一直是一只夜猫子。我通常在 12 点以后睡觉,有时在凌晨 1 点以后睡觉。第二天早上,我至少推迟三次闹钟,醒来后又累又有脾气。每天,我向自己保证早点睡觉,但最终会像平常一样晚睡。而且,这个循环还在继续!如果你和我一样,这有一个好消息。一个同学通宵开发了一个名为 “Kgotobed” 的内核模块,它迫使你在特定的时间上床睡觉。也就是说它会强制关闭你的系统。

你可能会问!我为什么要用这个?我有很多其他的选择。我可以设置一个 cron 作业来安排在特定时间关闭系统。我可以设置提醒或闹钟。我可以使用浏览器插件或软件。但是,它们都可以轻易忽略或绕过。Kgotobed 是你不能忽视的东西。即使您是 root 用户也无法禁用。是的,它会在指定的时间强制关闭你的系统。没有推迟选项。你不能推迟关机过程,也不能取消它。无论如何,系统都会在指定的时间停止运行。你被警告了!!

安装 Kgotobed

确保你已经安装了 dkms。它在大多数 Linux 发行版的默认仓库中都有。

例如在 Fedora 上,你可以使用以下命令安装它:

$ sudo dnf install kernel-devel-$(uname -r) dkms

在 Debian、Ubuntu、linux Mint 上:

$ sudo apt install dkms

安装完成后,git clone Kgotobed 项目。

$ git clone https://github.com/nikital/kgotobed.git

该命令会在当前工作目录中将所有 Kgotobed 仓库的内容克隆到名为 kgotobed 的文件夹中。进入到该目录:

$ cd kgotobed/

接着,使用命令安装 Kgotobed 驱动:

$ sudo make install

上面的命令将 kgotobed.ko 模块注册到 DKMS(这样它会为每个你运行的内核重建)并在 /usr/local/bin/ 目录下安装 gotobed,然后注册、启用并启动 kgotobed 服务。

如何运行

默认情况下,Kgotobed 将睡前时间设置为 1:00 AM。也就是说,无论你在做什么,你的电脑都会在凌晨 1 点关机。

要查看当前的睡前时间,请运行:

$ gotobed
Current bedtime is 2018-04-10 01:00:00

要提前睡眠时间,例如 22:00(晚上 10 点),请运行:

$ sudo gotobed 22:00
[sudo] password for sk:
Current bedtime is 2018-04-10 00:58:00
Setting bedtime to 2018-04-09 22:00:00
Bedtime will be in 2 hours 16 minutes

当你想早点睡觉时,这会很有帮助!

但是,你不能设置更晚的时间也就是凌晨 1 点以后。你无法卸载模块,并且调整系统时钟也无济于事。唯一的出路是重启!

要设置不同的默认时间,您需要自定义 kgotobed.service(通过编辑或使用 systemd 工具)。

卸载 Kgotobed

对 Kgotobed 不满意?别担心!进入我们先前克隆的 kgotobed 文件夹,然后运行以下命令将其卸载。

$ sudo make uninstall

再一次,我警告你,即使你是 root 用户,也没有办法推迟或取消关机过程。你的系统将在指定的时间强制关闭。这并不适合每个人!当你在做一项重要任务时,它可能会让你疯狂。在这种情况下,请确保你已经不时地保存工作,或使用下面链接中的一些高级工具来帮助你在特定时间自动关闭、重启、暂停和休眠系统。

就是这些了。希望你觉得这个指南有帮助。还有更好的东西。敬请关注!

干杯!

资源


via: https://www.ostechnix.com/kgotobed-a-kernel-module-that-forcibly-shutdown-your-system/

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

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

有时候,您可能需要修改多个文件,或要将一个文件的内容复制到另一个文件中。在图形用户界面中,您可以在任何图形文本编辑器(如 gedit)中打开文件,并使用 CTRL + CCTRL + V 复制和粘贴内容。在命令行模式下,您不能使用这种编辑器。不过别担心,只要有 vim 编辑器就有办法。在本教程中,我们将学习使用 vim 编辑器同时编辑多个文件。相信我,很有意思哒。

安装 Vim

Vim 编辑器可在大多数 Linux 发行版的官方软件仓库中找到,所以您可以用默认的软件包管理器来安装它。例如,在 Arch Linux 及其变体上,您可以使用如下命令:

$ sudo pacman -S vim

在 Debian 和 Ubuntu 上:

$ sudo apt-get install vim

在 RHEL 和 CentOS 上:

$ sudo yum install vim

在 Fedora 上:

$ sudo dnf install vim

在 openSUSE 上:

$ sudo zypper install vim

使用 Linux 的 Vim 编辑器同时编辑多个文件

现在让我们谈谈正事,我们可以用两种方法做到这一点。

方法一

有两个文件,即 file1.txtfile2.txt,带有一堆随机单词:

$ cat file1.txt
ostechnix
open source
technology
linux
unix

$ cat file2.txt
line1
line2
line3
line4
line5

现在,让我们同时编辑这两个文件。请运行:

$ vim file1.txt file2.txt

Vim 将按顺序显示文件的内容。首先显示第一个文件的内容,然后显示第二个文件,依此类推。

在文件中切换

要移至下一个文件,请键入:

:n

要返回到前一个文件,请键入:

:N

如果有任何未保存的更改,Vim 将不允许您移动到下一个文件。要保存当前文件中的更改,请键入:

ZZ

请注意,是两个大写字母 ZZSHIFT + zz)。

要放弃更改并移至上一个文件,请键入:

:N!

要查看当前正在编辑的文件,请键入:

:buffers

您将在底部看到加载文件的列表。

要切换到下一个文件,请输入 :buffer,后跟缓冲区编号。例如,要切换到第一个文件,请键入:

:buffer 1

打开其他文件进行编辑

目前我们正在编辑两个文件,即 file1.txtfile2.txt。我想打开另一个名为 file3.txt 的文件进行编辑。

您会怎么做?这很容易。只需键入 :e,然后输入如下所示的文件名即可:

:e file3.txt

现在你可以编辑 file3.txt 了。

要查看当前正在编辑的文件数量,请键入:

:buffers

请注意,对于使用 :e 打开的文件,您无法使用 :n:N 进行切换。要切换到另一个文件,请输入 :buffer,然后输入文件缓冲区编号。

将一个文件的内容复制到另一个文件中

您已经知道了如何同时打开和编辑多个文件。有时,您可能想要将一个文件的内容复制到另一个文件中。这也是可以做到的。切换到您选择的文件,例如,假设您想将 file1.txt 的内容复制到 file2.txt 中:

首先,请切换到 file1.txt

:buffer 1

将光标移动至在想要复制的行的前面,并键入yy 以抽出(复制)该行。然后,移至 file2.txt

:buffer 2

将光标移至要从 file1.txt 粘贴复制行的位置,然后键入 p。例如,您想要将复制的行粘贴到 line2line3 之间,请将鼠标光标置于行前并键入 p

输出示例:

line1
line2
ostechnix
line3
line4
line5

要保存当前文件中所做的更改,请键入:

ZZ

再次提醒,是两个大写字母 ZZ(SHIFT + z)。

保存所有文件的更改并退出 vim 编辑器,键入:

:wq

同样,您可以将任何文件的任何行复制到其他文件中。

将整个文件内容复制到另一个文件中

我们知道如何复制一行,那么整个文件的内容呢?也是可以的。比如说,您要将 file1.txt 的全部内容复制到 file2.txt 中。

先打开 file2.txt

$ vim file2.txt

如果文件已经加载,您可以通过输入以下命令切换到 file2.txt

:buffer 2

将光标移动到您想要粘贴 file1.txt 的内容的位置。我想在 file2.txt 的第 5 行之后粘贴 file1.txt 的内容,所以我将光标移动到第 5 行。然后,键入以下命令并按回车键:

:r file1.txt

这里,r 代表 “read”。

现在您会看到 file1.txt 的内容被粘贴在 file2.txt 的第 5 行之后。

line1
line2
line3
line4
line5
ostechnix
open source
technology
linux
unix

要保存当前文件中的更改,请键入:

ZZ

要保存所有文件的所有更改并退出 vim 编辑器,请输入:

:wq

方法二

另一种同时打开多个文件的方法是使用 -o-O 标志。

要在水平窗口中打开多个文件,请运行:

$ vim -o file1.txt file2.txt

要在窗口之间切换,请按 CTRL-w w(即按 CTRL + w 并再次按 w)。或者,您可以使用以下快捷方式在窗口之间移动:

  • CTRL-w k – 上面的窗口
  • CTRL-w j – 下面的窗口

要在垂直窗口中打开多个文件,请运行:

$ vim -O file1.txt file2.txt file3.txt

要在窗口之间切换,请按 CTRL-w w(即按 CTRL + w 并再次按 w)。或者,使用以下快捷方式在窗口之间移动:

  • CTRL-w l – 左面的窗口
  • CTRL-w h – 右面的窗口

其他的一切都与方法一的描述相同。

例如,要列出当前加载的文件,请运行:

:buffers

在文件之间切换:

:buffer 1

打开其他文件,请键入:

:e file3.txt

将文件的全部内容复制到另一个文件中:

:r file1.txt

方法二的唯一区别是,只要您使用 ZZ 保存对当前文件的更改,文件将自动关闭。然后,您需要依次键入 :wq 来关闭文件。但是,如果您按照方法一进行操作,输入 :wq 时,所有更改将保存在所有文件中,并且所有文件将立即关闭。

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

$ man vim

建议阅读

您现在掌握了如何在 Linux 中使用 vim 编辑器编辑多个文件。正如您所见,编辑多个文件并不难。Vim 编辑器还有更强大的功能。我们接下来会提供更多关于 Vim 编辑器的内容。

再见!


via: https://www.ostechnix.com/how-to-edit-multiple-files-using-vim-editor/

作者:SK 译者:jessie-pang 校对:wxy

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

前一段时间,我们发布了一个使用 pip 管理 Python 包的指南。今天,我们将讨论如何使用 npm 管理 NodeJS 包。npm 是最大的软件注册中心,包含 600,000 多个包。每天,世界各地的开发人员通过 npm 共享和下载软件包。在本指南中,我将解释使用 npm 基础知识,例如安装包(本地和全局)、安装特定版本的包、更新、删除和管理 NodeJS 包等等。

安装 npm

用于 npm 是用 NodeJS 编写的,我们需要安装 NodeJS 才能使用 npm。要在不同的 Linux 发行版上安装 NodeJS,请参考下面的链接。

检查 node 安装的位置:

$ which node
/home/sk/.nvm/versions/node/v9.4.0/bin/node

检查它的版本:

$ node -v
v9.4.0

进入 Node 交互式解释器:

$ node
> .help
.break Sometimes you get stuck, this gets you out
.clear Alias for .break
.editor Enter editor mode
.exit Exit the repl
.help Print this help message
.load Load JS from a file into the REPL session
.save Save all evaluated commands in this REPL session to a file
> .exit

检查 npm 安装的位置:

$ which npm
/home/sk/.nvm/versions/node/v9.4.0/bin/npm

还有版本:

$ npm -v
5.6.0

棒极了!Node 和 npm 已安装好!正如你可能已经注意到,我已经在我的 $HOME 目录中安装了 NodeJS 和 NPM,这样是为了避免在全局模块时出现权限问题。这是 NodeJS 团队推荐的方法。

那么,让我们继续看看如何使用 npm 管理 NodeJS 模块(或包)。

安装 NodeJS 模块

NodeJS 模块可以安装在本地或全局(系统范围)。现在我将演示如何在本地安装包(LCTT 译注:即将包安装到一个 NodeJS 项目当中,所以下面会先创建一个空项目做演示)。

在本地安装包

为了在本地管理包,我们通常使用 package.json 文件来管理。

首先,让我们创建我们的项目目录。

$ mkdir demo
$ cd demo

在项目目录中创建一个 package.json 文件。为此,运行:

$ npm init

输入你的包的详细信息,例如名称、版本、作者、GitHub 页面等等,或者按下回车键接受默认值并键入 yes 确认。

This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (demo)
version: (1.0.0)
description: demo nodejs app
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /home/sk/demo/package.json:

{
 "name": "demo",
 "version": "1.0.0",
 "description": "demo nodejs app",
 "main": "index.js",
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "",
 "license": "ISC"
}

Is this ok? (yes) yes

上面的命令初始化你的项目并创建了 package.json 文件。

你也可以使用命令以非交互式方式执行此操作:

npm init --y

现在让我们安装名为 commander 的包。

$ npm install commander

示例输出:

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] No repository field.

+ [email protected]
added 1 package in 2.519s

这将在项目的根目录中创建一个名为 node_modules 的目录(如果它不存在的话),并在其中下载包。

让我们检查 pachage.json 文件。

$ cat package.json 
{
 "name": "demo",
 "version": "1.0.0",
 "description": "demo nodejs app",
 "main": "index.js",
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "",
 "license": "ISC",
 "dependencies": {
 "commander": "^2.13.0"
 }
}

你会看到添加了依赖文件,版本号前面的插入符号 ( ^ ) 表示在安装时,npm 将取出它可以找到的最高版本的包。

$ ls node_modules/
commander

package.json 文件的优点是,如果你的项目目录中有 package.json 文件,只需键入 npm install,那么 npm 将查看文件中列出的依赖关系并下载它们。你甚至可以与其他开发人员共享它或将其推送到你的 GitHub 仓库。因此,当他们键入 npm install 时,他们将获得你拥有的所有相同的包。

你也可能会注意到另一个名为 package-lock.json 的文件,该文件确保在项目安装的所有系统上都保持相同的依赖关系。

要在你的程序中使用已安装的包,使用实际代码在项目目录中创建一个 index.js(或者其他任何名称)文件,然后使用以下命令运行它:

$ node index.js

在全局安装包

如果你想使用一个包作为命令行工具,那么最好在全局安装它。这样,无论你的当前目录是哪个目录,它都能正常工作。

$ npm install async -g
+ [email protected]
added 2 packages in 4.695s

或者

$ npm install async --global

要安装特定版本的包,我们可以:

$ npm install [email protected] --global

更新 NodeJS 模块

要更新本地包,转到 package.json 所在的项目目录并运行:

$ npm update

然后,运行以下命令确保所有包都更新了。

$ npm outdated

如果没有需要更新的,那么它返回空。

要找出哪一个全局包需要更新,运行:

$ npm outdated -g --depth=0

如果没有输出,意味着所有包都已更新。

更新单个全局包,运行:

$ npm update -g <package-name>

更新所有的全局包,运行:

$ npm update -g

列出 NodeJS 模块

列出本地包,转到项目目录并运行:

$ npm list
[email protected] /home/sk/demo
└── [email protected]

如你所见,我在本地安装了 commander 这个包。

要列出全局包,从任何位置都可以运行以下命令:

$ npm list -g

示例输出:

/home/sk/.nvm/versions/node/v9.4.0/lib
├─┬ [email protected]
│ └── [email protected]
└─┬ [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
 ├── [email protected]
[...]

该命令将列出所有模块及其依赖关系。

要仅仅列出顶级模块,使用 -depth=0 选项:

$ npm list -g --depth=0
/home/sk/.nvm/versions/node/v9.4.0/lib
├── [email protected]
└── [email protected]

寻找 NodeJS 模块

要搜索一个模块,使用 npm search 命令:

npm search <search-string>

例如:

$ npm search request

该命令将显示包含搜索字符串 request 的所有模块。

移除 NodeJS 模块

要删除本地包,转到项目目录并运行以下命令,这会从 node_modules 目录中删除包:

$ npm uninstall <package-name>

要从 package.json 文件中的依赖关系中删除它,使用如下所示的 save 选项:

$ npm uninstall --save <package-name>

要删除已安装的全局包,运行:

$ npm uninstall -g <package>

清除 npm 缓存

默认情况下,npm 在安装包时,会将其副本保存在 $HOME 目录中名为 .npm 的缓存文件夹中。所以,你可以在下次安装时不必再次下载。

查看缓存模块:

$ ls ~/.npm

随着时间的推移,缓存文件夹会充斥着大量旧的包。所以不时清理缓存会好一些。

从 npm@5 开始,npm 缓存可以从 corruption 问题中自行修复,并且保证从缓存中提取的数据有效。如果你想确保一切都一致,运行:

$ npm cache verify

清除整个缓存,运行:

$ npm cache clean --force

查看 npm 配置

要查看 npm 配置,键入:

$ npm config list

或者:

$ npm config ls

示例输出:

; cli configs
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/5.6.0 node/v9.4.0 linux x64"

; node bin location = /home/sk/.nvm/versions/node/v9.4.0/bin/node
; cwd = /home/sk
; HOME = /home/sk
; "npm config ls -l" to show all defaults.

要显示当前的全局位置:

$ npm config get prefix
/home/sk/.nvm/versions/node/v9.4.0

好吧,这就是全部了。我们刚才介绍的只是基础知识,npm 是一个广泛话题。有关更多详细信息,参阅 NPM Getting Started 指南。

希望这对你有帮助。更多好东西即将来临,敬请关注!

干杯!


via: https://www.ostechnix.com/manage-nodejs-packages-using-npm/

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

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

保持对你的工作小时数的追踪将让你知晓在一个特定时间区间内你所完成的工作总量。在网络上有大量的基于 GUI 的生产力工具可以用来追踪工作小时数。但我却不能找到一个基于 CLI 的工具。今天我偶然发现了一个简单而奏效的叫做 Moro 的追踪工作时间数的工具。Moro 是一个芬兰词汇,意为“Hello”。通过使用 Moro,你可以找到你在完成某项特定任务时花费了多少时间。这个工具是自由开源软件,它是通过 NodeJS 编写的。

Moro - 一个追踪工作时间的命令行生产力工具

由于 Moro 是使用 NodeJS 编写的,保证你的系统上已经安装了 NodeJS。如果你没有安装好 NodeJS,跟随下面的链接在你的 Linux 中安装 NodeJS 和 NPM。

NodeJS 和NPM一旦装好,运行下面的命令来安装 Moro。

$ npm install -g moro

用法

Moro 的工作概念非常简单。它记录了你的工作开始时间,结束时间和在你的系统上的休息时间。在每天结束时,它将会告知你已经工作了多少时间。

当你到达办公室时,只需键入:

$ moro

示例输出:

 Moro \o/
 You clocked in at: 9:20

Moro 将会把这个时间注册为你的开始时间。

当你离开办公室时,再次键入:

$ moro

示例输出:

 Moro \o/
 You clocked out at: 19:22
 Today looks like this so far:
┌──────────────────┬─────────────────────────┐
│ Today you worked │ 9 Hours and 72 Minutes │
├──────────────────┼─────────────────────────┤
│ Clock in │ 9:20 │
├──────────────────┼─────────────────────────┤
│ Clock out │ 19:22 │
├──────────────────┼─────────────────────────┤
│ Break duration │ 30 minutes │
├──────────────────┼─────────────────────────┤
│ Date │ 2018-03-19 │
└──────────────────┴─────────────────────────┘
 Run moro --help to learn how to edit your clock in, clock out or break duration for today

Moro 将会把这个时间注册为你的结束时间。

现在,Moro 将会从结束时间减去开始时间,然后从总的时间减去另外的 30 分钟作为休息时间,并给你在那天总的工作时间。抱歉,我的数学计算过程解释实在糟糕。假设你在早上 10:00 来工作并在晚上 17:30 离开。所以,你总共在办公室呆了 7:30 小时(例如 17:30-10)。然后在总的时间减去休息时间(默认是 30 分钟)。因此,你的总工作时间是 7 小时。明白了?很好!

注意:不要像我在写这个手册的时候一样把 “moro” 和 “more” 弄混了。

查看你注册的所有小时数,运行:

$ moro report --all

以防万一,如果你忘记注册开始时间或者结束时间,你一样可以在之后指定这些值。

例如,将上午 10 点注册为开始时间,运行:

$ moro hi 10:00
 Moro \o/
 You clocked in at: 10:00
 Working until 18:00 will make it a full (7.5 hours) day

注册 17:30 作为结束时间:

$ moro bye 17:30
 Moro \o/
 You clocked out at: 17:30
 Today looks like this so far:

┌──────────────────┬───────────────────────┐
│ Today you worked │ 7 Hours and 0 Minutes │
├──────────────────┼───────────────────────┤
│ Clock in │ 10:00 │
├──────────────────┼───────────────────────┤
│ Clock out │ 17:30 │
├──────────────────┼───────────────────────┤
│ Break duration │ 30 minutes │
├──────────────────┼───────────────────────┤
│ Date │ 2018-03-19 │
└──────────────────┴───────────────────────┘
 Run moro --help to learn how to edit your clock in, clock out or break duration for today

你已经知道 Moro 默认将会减去 30 分钟的休息时间。如果你需要设置一个自定义的休息时间,你可以简单使用以下命令:

$ moro break 45

现在,休息时间是 45 分钟了。

若要清除所有的数据:

$ moro clear --yes
 Moro \o/
 Database file deleted successfully

添加笔记

有时候,你想要在工作时添加笔记。不必去寻找一个独立的作笔记的应用。Moro 将会帮助你添加笔记。要添加笔记,只需运行:

$ moro note mynotes

要在之后搜索所有已经注册的笔记,只需做:

$ moro search mynotes

修改默认设置

默认的完整工作时间是 7.5 小时。这是因为开发者来自芬兰,这是官方的工作小时数。但是你也可以修改这个设置为你的国家的工作小时数。

举个例子,要将其设置为 7 小时,运行:

$ moro config --day 7

同样地,默认的休息时间也可以像下面这样从 30 分钟修改:

$ moro config --break 45

备份你的数据

正如我已经说了的,Moro 将时间追踪信息存储在你的家目录,文件名是 .moro-data.db

但是,你可以保存备份数据库到不同的位置。要这样做的话,像下面这样将 .moro-data.db 文件移到你选择的一个不同的位置并告知 Moro 使用那个数据库文件。

$ moro config --database-path /home/sk/personal/moro-data.db

在上面的每一个命令,我都已经把默认的数据库文件分配到了 /home/sk/personal 目录。

需要帮助的话,运行:

$ moro --help

正如你所见,Moro 是非常简单而又能用于追踪你完成你的工作使用了多少时间的。对于自由职业者和任何想要在一定时间范围内完成事情的人,它将会是有用的。

并且,这些只是今天的内容。希望这些内容能够有所帮助。更多的好东西将会出现。请保持关注!

干杯!


via: https://www.ostechnix.com/moro-a-command-line-productivity-tool-for-tracking-work-hours/

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

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

你已经知道 top 命令,对么?是的,它提供类 Unix 操作系统中运行中的进程的动态实时信息。一些开发人员为 top 命令构建了图形前端,因此用户可以在图形窗口中轻松找到他们系统的活动。其中之一是 Gotop。顾名思义,Gotop 是一个 TUI 图形活动监视器,使用 Go 语言编写。它是完全免费、开源的,受到了 gtopvtop 的启发。

在此简要的指南中,我们将讨论如何安装和使用 Gotop 来监视 Linux 系统的活动。

安装 Gotop

Gotop 是用 Go 编写的,所以我们需要先安装它。要在 Linux 中安装 Go 语言,请参阅以下指南。

安装 Go 之后,使用以下命令下载最新的 Gotop 二进制文件。

$ sh -c "$(curl https://raw.githubusercontent.com/cjbassi/gotop/master/download.sh)"

然后,将下载的二进制文件移动到您的 $PATH 中,例如 /usr/local/bin/

$ cp gotop /usr/local/bin

最后,用下面的命令使其可执行:

$ chmod +x /usr/local/bin/gotop

如果你使用的是基于 Arch 的系统,Gotop 存在于 AUR 中,所以你可以使用任何 AUR 助手程序进行安装。

使用 Cower

$ cower -S gotop

使用 Pacaur

$ pacaur -S gotop

使用 Packer

$ packer -S gotop

使用 Trizen

$ trizen -S gotop

使用 Yay

$ yay -S gotop

使用 yaourt

$ yaourt -S gotop

用法

Gotop 的使用非常简单!你所要做的就是从终端运行以下命令。

$ gotop

这样就行了!你将在简单的 TUI 窗口中看到系统 CPU、磁盘、内存、网络、CPU温度和进程列表的使用情况。

要仅显示CPU、内存和进程组件,请使用下面的 -m 标志:

$ gotop -m

你可以使用以下键盘快捷键对进程表进行排序。

  • c – CPU
  • m – 内存
  • p – PID

对于进程浏览,请使用以下键。

  • 上/下 箭头或者 j/k 键用于上移下移。
  • Ctrl-dCtrl-u – 上移和下移半页。
  • Ctrl-fCtrl-b – 上移和下移整页。
  • ggG – 跳转顶部和底部。

按下 TAB 切换进程分组。要杀死选定的进程或进程组,请输入 dd。要选择一个进程,只需点击它。要向下/向上滚动,请使用鼠标滚动按钮。要放大和缩小 CPU 和内存的图形,请使用 hl。要显示帮助菜单,只需按 ?

就是这些了。希望这有帮助。还有更多好东西。敬请关注!

资源


via: https://www.ostechnix.com/gotop-yet-another-tui-graphical-activity-monitor-written-in-go/

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

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

有一天,我在 Digital ocean 上读到一篇有趣的指南,它解释了自由和开源软件之间的区别。在此之前,我认为两者都差不多。但是,我错了。它们之间有一些显著差异。在阅读那篇文章时,我想知道如何在 Linux 中找到非自由软件,因此有了这篇文章。

向 “Virtual Richard M. Stallman” 问好,这是一个在 Debian 中查找非自由软件的 Perl 脚本

Virtual Richard M. Stallman ,简称 vrms,是一个用 Perl 编写的程序,它在你基于 Debian 的系统上分析已安装软件的列表,并报告所有来自非自由和 contrib 树的已安装软件包。对于那些不太清楚区别的人,自由软件应该符合以下四项基本自由

  • 自由 0 – 不管任何目的,随意运行程序的自由。
  • 自由 1 – 研究程序如何工作的自由,并根据你的需求进行调整。访问源代码是一个先决条件。
  • 自由 2 – 重新分发副本的自由,这样你可以帮助别人。
  • 自由 3 – 改进程序,并向公众发布改进的自由,以便整个社区获益。访问源代码是一个先决条件。

任何不满足上述四个条件的软件都不被视为自由软件。简而言之,自由软件意味着用户有运行、复制、分发、研究、修改和改进软件的自由。

现在让我们来看看安装的软件是自由的还是非自由的,好么?

vrms 包存在于 Debian 及其衍生版(如 Ubuntu)的默认仓库中。因此,你可以使用 apt 包管理器安装它,使用下面的命令。

$ sudo apt-get install vrms

安装完成后,运行以下命令,在基于 debian 的系统中查找非自由软件。

$ vrms

在我的 Ubuntu 16.04 LTS 桌面版上输出的示例。

    Non-free packages installed on ostechnix
unrar Unarchiver for .rar files (non-free version)
1 non-free packages, 0.0% of 2103 installed packages.

如你在上面的截图中看到的那样,我的 Ubuntu 中安装了一个非自由软件包。

如果你的系统中没有任何非自由软件包,则应该看到以下输出。

No non-free or contrib packages installed on ostechnix! rms would be proud.

vrms 不仅可以在 Debian 上找到非自由软件包,还可以在 Ubuntu、Linux Mint 和其他基于 deb 的系统中找到非自由软件包。

限制

vrms 虽然有一些限制。就像我已经提到的那样,它列出了安装的非自由和 contrib 部分的软件包。但是,某些发行版并未遵循确保专有软件仅在 vrms 识别为“非自由”的仓库中存在,并且它们不努力维护这种分离。在这种情况下,vrms 将不能识别非自由软件,并且始终会报告你的系统上安装了非自由软件。如果你使用的是像 Debian 和 Ubuntu 这样的发行版,遵循将专有软件保留在非自由仓库的策略,vrms 一定会帮助你找到非自由软件包。

就是这些。希望它是有用的。还有更好的东西。敬请关注!

干杯!


via: https://www.ostechnix.com/the-vrms-program-helps-you-to-find-non-free-software-in-debian/

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

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