SK 发布的文章

“激活 Windows” 水印已移植到 Linux。

为了阻止 Windows 操作系统的盗版行为,微软开发团队想出了一个办法:在 Windows 的角落放置一个激活水印,直到用户合法购买许可证并激活它。

如果你的电脑正在运行盗版的 Windows 副本,你应该已经注意到右下角的 “激活 Windows” 水印通知,如下图所示。

“激活 Windows” 通知

幸运的是,Linux 用户永远不会收到这样的通知。因为 GNU/Linux 是一个完全免费的开源操作系统,在 GNU 通用公共许可证(GPL)下发布。

任何人都可以运行、研究、修改和重新分发 Linux 源代码,甚至可以出售修改后的代码的副本,只要使用相同的许可即可。

Linux 是开源的,所以你真的可以用 Linux 做任何你在专有操作系统上不能做的事情。

你可以在 Linux 中做很多事情。你可以在 Linux 下构建和运行几乎任何东西,无论是有趣的项目还是企业级应用程序。甚至,你还可以添加 “激活 Linux” 水印。

“激活 Linux” 是什么?

几天前,我注意到了一个叫做 “激活 Linux” 的有趣项目。它和你在未经许可的 Windows 操作系统中看到的 “激活 Windows” 通知非常相似。

“激活 Linux” 的开发者使用 C 语言中的 Xlib 和 cairo,重新创建了 Linux 版的 “激活 Windows” 通知水印。

它会在你的 Linux 桌面上显示一个水印,并通知你进入设置以激活你的 Linux 发行版!这很酷,不是吗?

启用 “激活 Linux” 水印

activate-linux 项目在短时间内变得非常流行。几天之内,它已经为许多流行的 Linux 发行版而打了包,例如 Arch Linux、openSUSE 和 Ubuntu。

Arch Linux

AUR 已经收录 activate-linux。因此,你可以使用 ParuYay 在 Arch Linux 及其衍生版 EndeavourOS 和 Manjaro Linux 中安装 activate-linux 应用程序。

$ paru -S activate-linux

或者

$ yay -S activate-linux

openSUSE

OBS 收录了 Activate-linux。

如果你正在使用 openSUSE Tumbleweed 版本,请逐条运行下面的命令来安装 activate-linux:

$ sudo zypper addrepo https://download.opensuse.org/repositories/home:WoMspace/openSUSE_Tumbleweed/home:WoMspace.repo
$ sudo zypper refresh
$ sudo zypper install activate-linux

对于 openSUSE Factory ARM 版,运行如下命令:

$ sudo zypper addrepo https://download.opensuse.org/repositories/home:WoMspace/openSUSE_Factory_ARM/home:WoMspace.repo
$ sudo zypper refresh
$ sudo zypper install activate-linux

Ubuntu

activate-linux 有一个适用于 Ubuntu 及其衍生版(如 Pop!\_OS)的 PPA。

$ sudo add-apt-repository ppa:edd/misc
$ sudo apt update
$ sudo apt install activate-linux

安装完成后,只需在终端执行下面的命令,就可以让它运行起来:

$ activate-linux

现在,你将在桌面的角落看到 “激活 Linux” 水印通知,就像在未授权的 Windows 副本中一样。

桌面上的 “激活 Linux” 水印

别紧张!它是无害的。若想取消显示,你可以返回终端并按 CTRL+C 终止 activate-linux 命令。

我在 Ubuntu 22.04 GNOME 版本上测试了一下。它在 Wayland 中开箱即用。

“激活 Linux” 是我这一段时间以来遇到的一个非常有趣又无用的项目。我想这会让每个刚从 Windows 切换过来的 Linux 用户,拥有更加舒适的体验吧!

相关资源

“激活 Linux” 的 GitHub 存储库

via: https://ostechnix.com/activate-linux/

作者:sk 选题:lkxed 译者:lkxed 校对:wxy

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

我们已经了解到如何通过 GNU Screen 进行多会话管理。今天,我们将要领略另一个著名的管理会话的命令行实用工具 Tmux。类似 GNU Screen,Tmux 是一个帮助我们在单一终端窗口中创建多个会话,同一时间内同时运行多个应用程序或进程的终端复用工具。Tmux 自由、开源并且跨平台,支持 Linux、OpenBSD、FreeBSD、NetBSD 以及 Mac OS X。本文将讨论 Tmux 在 Linux 系统下的高频用法。

Linux 下安装 tmux

Tmux 可以在绝大多数的 Linux 官方仓库下获取。

在 Arch Linux 或它的变种系统下,执行下列命令来安装:

$ sudo pacman -S tmux

Debian、Ubuntu 或 Linux Mint:

$ sudo apt-get install tmux

Fedora:

$ sudo dnf install tmux

RHEL 和 CentOS:

$ sudo yum install tmux

SUSE/openSUSE:

$ sudo zypper install tmux

以上,我们已经完成 Tmux 的安装。之后我们继续看看一些 Tmux 示例。

Tmux 命令示例: 多会话管理

Tmux 默认所有命令的前置命令都是 Ctrl+b,使用前牢记这个快捷键即可。

注意Screen 的前置命令都是 Ctrl+a.

创建 Tmux 会话

在终端中运行如下命令创建 Tmux 会话并附着进入:

tmux

抑或,

tmux new

一旦进入 Tmux 会话,你将看到一个 沉在底部的绿色的边栏,如下图所示。

创建 Tmux 会话

这个绿色的边栏能很容易提示你当前是否身处 Tmux 会话当中。

退出 Tmux 会话

退出当前 Tmux 会话仅需要使用 Ctrl+bd。无需同时触发这两个快捷键,依次按下 Ctrl+bd 即可。

退出当前会话后,你将能看到如下输出:

[detached (from session 0)]

创建有名会话

如果使用多个会话,你很可能会混淆运行在多个会话中的应用程序。这种情况下,我们需要会话并赋予名称。譬如需要 web 相关服务的会话,就创建一个名称为 “webserver”(或任意一个其他名称) 的 Tmux 会话。

tmux new -s webserver

这里是新的 Tmux 有名会话:

拥有自定义名称的 Tmux 会话

如你所见上述截图,这个 Tmux 会话的名称已经被标注为 “webserver”。如此,你可以在多个会话中,轻易的区分应用程序的所在。

退出会话,轻按 Ctrl+bd

查看 Tmux 会话清单

查看 Tmux 会话清单,执行:

tmux ls

示例输出:

列出 Tmux 会话

如你所见,我们开启了两个 Tmux 会话。

创建非附着会话

有时候,你可能想要简单创建会话,但是并不想自动切入该会话。

创建一个非附着会话,并赋予名称 “ostechnix”,运行:

tmux new -s ostechnix -d

上述命令将会创建一个名为 “ostechnix” 的会话,但是并不会附着进入。

你可以通过使用 tmux ls 命令验证:

创建非附着会话

附着进入 Tmux 会话

通过如下命令,你可以附着进入最后一个被创建的会话:

tmux attach

抑或,

tmux a

如果你想附着进入任意一个指定的有名会话,譬如 “ostechnix”,运行:

tmux attach -t ostechnix

或者,简写为:

tmux a -t ostechnix

关闭 Tmux 会话

当你完成或者不再需要 Tmux 会话,你可以通过如下命令关闭:

tmux kill-session -t ostechnix

当身处该会话时,使用 Ctrl+b 以及 x。点击 y 来关闭会话。

可以通过 tmux ls 命令验证。

关闭所有 Tmux 服务下的所有会话,运行:

tmux kill-server

谨慎!这将终止所有 Tmux 会话,并不会产生任何警告,即便会话存在运行中的任务。

如果不存在活跃的 Tmux 会话,将看到如下输出:

$ tmux ls
no server running on /tmp/tmux-1000/default

切割 Tmux 窗口

切割窗口成多个小窗口,在 Tmux 中,这个叫做 “Tmux 窗格”。每个窗格中可以同时运行不同的程序,并同时与所有的窗格进行交互。每个窗格可以在不影响其他窗格的前提下可以调整大小、移动位置和控制关闭。我们可以以水平、垂直或者二者混合的方式切割屏幕。

水平切割窗格

欲水平切割窗格,使用 Ctrl+b"(半个双引号)。

水平切割 Tmux 窗格

可以使用组合键进一步切割面板。

垂直切割窗格

垂直切割面板,使用 Ctrl+b%

垂直切割 Tmux 窗格

水平、垂直混合切割窗格

我们也可以同时采用水平和垂直的方案切割窗格。看看如下截图:

切割 Tmux 窗格

首先,我通过 Ctrl+b " 水平切割,之后通过 Ctrl+b % 垂直切割下方的窗格。

如你所见,每个窗格下我运行了不同的程序。

切换窗格

通过 Ctrl+b 和方向键(上下左右)切换窗格。

发送命令给所有窗格

之前的案例中,我们在每个窗格中运行了三个不同命令。其实,也可以发送相同的命令给所有窗格。

为此,使用 Ctrl+b 然后键入如下命令,之后按下回车:

:setw synchronize-panes

现在在任意窗格中键入任何命令。你将看到相同命令影响了所有窗格。

交换窗格

使用 Ctrl+bo 交换窗格。

展示窗格号

使用 Ctrl+bq 展示窗格号。

终止窗格

要关闭窗格,直接键入 exit 并且按下回车键。或者,按下 Ctrl+bx。你会看到确认信息。按下 y 关闭窗格。

关闭窗格

放大和缩小 Tmux 窗格

我们可以将 Tmux 窗格放大到当前终端窗口的全尺寸,以获得更好的文本可视性,并查看更多的内容。当你需要更多的空间或专注于某个特定的任务时,这很有用。在完成该任务后,你可以将 Tmux 窗格缩小(取消放大)到其正常位置。更多详情请看以下链接。

自动启动 Tmux 会话

当通过 SSH 与远程系统工作时,在 Tmux 会话中运行一个长期运行的进程总是一个好的做法。因为,它可以防止你在网络连接突然中断时失去对运行进程的控制。避免这个问题的一个方法是自动启动 Tmux 会话。更多详情,请参考以下链接。

总结

这个阶段下,你已经获得了基本的 Tmux 技能来进行多会话管理,更多细节,参阅 man 页面。

$ man tmux

GNU Screen 和 Tmux 工具都能透过 SSH 很好的管理远程服务器。学习 Screen 和 Tmux 命令,像个行家一样,彻底通过这些工具管理远程服务器。


via: https://www.ostechnix.com/tmux-command-examples-to-manage-multiple-terminal-sessions/

作者:sk 选题:lujun9972 译者:chensanle 校对:wxy

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

LAMP 套件是一种流行的开源 Web 开发平台,可用于运行和部署动态网站和基于 Web 的应用程序。通常,LAMP 套件由 Apache Web 服务器、MariaDB/MySQL 数据库、PHP/Python/Perl 程序设计(脚本)语言组成。 LAMP 是 Linux,MariaDB/MYSQL,PHP/Python/Perl 的缩写。 本教程描述了如何在 Ubuntu 18.04 LTS 服务器中安装 Apache、MySQL、PHP(LAMP 套件)。

就本教程而言,我们将使用以下 Ubuntu 测试。

  • 操作系统:Ubuntu 18.04.1 LTS Server Edition
  • IP 地址 :192.168.225.22/24

1. 安装 Apache Web 服务器

首先,利用下面命令更新 Ubuntu 服务器:

$ sudo apt update
$ sudo apt upgrade

然后,安装 Apache Web 服务器(命令如下):

$ sudo apt install apache2

检查 Apache Web 服务器是否已经运行:

$ sudo systemctl status apache2

输出结果大概是这样的:

● apache2.service - The Apache HTTP Server
 Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: en
 Drop-In: /lib/systemd/system/apache2.service.d
 └─apache2-systemd.conf
 Active: active (running) since Tue 2019-02-05 10:48:03 UTC; 1min 5s ago
 Main PID: 2025 (apache2)
 Tasks: 55 (limit: 2320)
 CGroup: /system.slice/apache2.service
 ├─2025 /usr/sbin/apache2 -k start
 ├─2027 /usr/sbin/apache2 -k start
 └─2028 /usr/sbin/apache2 -k start

Feb 05 10:48:02 ubuntuserver systemd[1]: Starting The Apache HTTP Server...
Feb 05 10:48:03 ubuntuserver apachectl[2003]: AH00558: apache2: Could not reliably
Feb 05 10:48:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.

祝贺你! Apache 服务已经启动并运行了!!

1.1 调整防火墙允许 Apache Web 服务器

默认情况下,如果你已在 Ubuntu 中启用 UFW 防火墙,则无法从远程系统访问 Apache Web 服务器。 必须按照以下步骤开启 httphttps 端口。

首先,使用以下命令列出 Ubuntu 系统上可用的应用程序配置文件:

$ sudo ufw app list

输出结果:

Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

如你所见,Apache 和 OpenSSH 应用程序已安装 UFW 配置文件。你可以使用 ufw app info "Profile Name" 命令列出有关每个配置文件及其包含的规则的信息。

让我们研究一下 “Apache Full” 配置文件。 为此,请运行:

$ sudo ufw app info "Apache Full"

输出结果:

Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
80,443/tcp

如你所见,“Apache Full” 配置文件包含了启用经由端口 80443 的传输规则:

现在,运行以下命令配置允许 HTTP 和 HTTPS 传入通信:

$ sudo ufw allow in "Apache Full"
Rules updated
Rules updated (v6)

如果你不想允许 HTTP 通信,而只允许 HTTP(80) 通信,请运行:

$ sudo ufw app info "Apache"

1.2 测试 Apache Web 服务器

现在,打开 Web 浏览器并导航到 http://localhost/或http://IP-Address/ 来访问 Apache 测试页。

如果看到上面类似的显示内容,那就成功了。 Apache 服务器正在工作!

2. 安装 MySQL

在 Ubuntu 安装 MySQL 请运行:

$ sudo apt install mysql-server

使用以下命令验证 MySQL 服务是否正在运行:

$ sudo systemctl status mysql

输出结果:

● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enab
Active: active (running) since Tue 2019-02-05 11:07:50 UTC; 17s ago
Main PID: 3423 (mysqld)
Tasks: 27 (limit: 2320)
CGroup: /system.slice/mysql.service
└─3423 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid

Feb 05 11:07:49 ubuntuserver systemd[1]: Starting MySQL Community Server...
Feb 05 11:07:50 ubuntuserver systemd[1]: Started MySQL Community Server.

MySQL 正在运行!

2.1 配置数据库管理用户(root)密码

默认情况下,MySQL root 用户密码为空。你需要通过运行以下脚本使你的 MySQL 服务器安全:

$ sudo mysql_secure_installation

系统将询问你是否要安装 “VALIDATE PASSWORD plugin(密码验证插件)”。该插件允许用户为数据库配置强密码凭据。如果启用,它将自动检查密码的强度并强制用户设置足够安全的密码。禁用此插件是安全的。但是,必须为数据库使用唯一的强密码凭据。如果不想启用此插件,只需按任意键即可跳过密码验证部分,然后继续其余步骤。

如果回答是 y,则会要求你选择密码验证级别。

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No y

可用的密码验证有 “low(低)”、 “medium(中)” 和 “strong(强)”。只需输入适当的数字(0 表示低,1 表示中,2 表示强密码)并按回车键。

There are three levels of password validation policy:

LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:

现在,输入 MySQL root 用户的密码。请注意,必须根据上一步中选择的密码策略,为 MySQL root 用户使用密码。如果你未启用该插件,则只需使用你选择的任意强度且唯一的密码即可。

Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

两次输入密码后,你将看到密码强度(在此示例情况下为 50)。如果你确定可以,请按 y 继续提供的密码。如果对密码长度不满意,请按其他任意键并设置一个强密码。我现在的密码可以,所以我选择了y

对于其余的问题,只需键入 y 并按回车键。这将删除匿名用户、禁止 root 用户远程登录并删除 test(测试)数据库。

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.

- Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

以上就是为 MySQL root 用户设置密码。

2.2 更改 MySQL 超级用户的身份验证方法

默认情况下,Ubuntu 系统的 MySQL root 用户为 MySQL 5.7 版本及更新的版本使用插件 auth_socket 设置身份验证。尽管它增强了安全性,但是当你使用任何外部程序(例如 phpMyAdmin)访问数据库服务器时,也会变得更困难。要解决此问题,你需要将身份验证方法从 auth_socket 更改为 mysql_native_password。为此,请使用以下命令登录到你的 MySQL 提示符下:

$ sudo mysql

在 MySQL 提示符下运行以下命令,找到所有 MySQL 当前用户帐户的身份验证方法:

SELECT user,authentication_string,plugin,host FROM mysql.user;

输出结果:

+------------------|-------------------------------------------|-----------------------|-----------+
| user | authentication_string | plugin | host |
+------------------|-------------------------------------------|-----------------------|-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *F126737722832701DD3979741508F05FA71E5BA0 | mysql_native_password | localhost |
+------------------|-------------------------------------------|-----------------------|-----------+
4 rows in set (0.00 sec)

如你所见,Mysql root 用户使用 auth_socket 插件进行身份验证。

要将此身份验证更改为 mysql_native_password 方法,请在 MySQL 提示符下运行以下命令。 别忘了用你选择的强大唯一的密码替换 password。 如果已启用 VALIDATION 插件,请确保已根据当前策略要求使用了强密码。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

使用以下命令更新数据库:

FLUSH PRIVILEGES;

使用命令再次检查身份验证方法是否已更改:

SELECT user,authentication_string,plugin,host FROM mysql.user;

输出结果:

好!MySQL root 用户就可以使用密码进行身份验证来访问 mysql shell

从 MySQL 提示符下退出:

exit

3. 安装 PHP

安装 PHP 请运行:

$ sudo apt install php libapache2-mod-php php-mysql

安装 PHP 后,在 Apache 文档根目录中创建 info.php 文件。通常,在大多数基于 Debian 的 Linux 发行版中,Apache 文档根目录为 /var/www/html//var/www/。Ubuntu 18.04 LTS 系统下,文档根目录是 /var/www/html/

在 Apache 根目录中创建 info.php 文件:

$ sudo vi /var/www/html/info.php

在此文件中编辑如下内容:

<?php
phpinfo();
?>

然后按下 ESC 键并且输入 :wq 保存并退出此文件。重新启动 Apache 服务使更改生效。

$ sudo systemctl restart apache2

3.1 测试 PHP

打开 Web 浏览器,然后导航到 URL http://IP地址/info.php

你就将看到 PHP 测试页面。

通常,当用户向 Web 服务器发出请求时,Apache 首先会在文档根目录中查找名为 index.html 的文件。如果你想将 Apache 更改为 php 文件提供服务而不是其他文件,请将 dir.conf 配置文件中的 index.php 移至第一个位置,如下所示:

$ sudo vi /etc/apache2/mods-enabled/dir.conf

上面的配置文件(dir.conf) 内容如下:

<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

index.php 移动到最前面。更改后,dir.conf 文件内容看起来如下所示。

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

然后按下 ESC 键并且输入 :wq 保存并关闭此文件。重新启动 Apache 服务使更改生效。

$ sudo systemctl restart apache2

3.2 安装 PHP 模块

为了增加 PHP 的功能,可以安装一些其他的 PHP 模块。

要列出可用的 PHP 模块,请运行:

$ sudo apt-cache search php- | less

输出结果:

使用方向键浏览结果。要退出,请输入 q 并按下回车键。

要查找任意 php 模块的详细信息,例如 php-gd,请运行:

$ sudo apt-cache show php-gd

安装 PHP 模块请运行:

$ sudo apt install php-gd

安装所有的模块(虽然没有必要),请运行:

$ sudo apt-get install php*

安装任何 php 模块后,请不要忘记重新启动 Apache 服务。要检查模块是否已加载,请在浏览器中打开 info.php 文件并检查是否存在。

接下来,你可能需要安装数据库管理工具,以通过 Web 浏览器轻松管理数据库。如果是这样,请按照以下链接中的说明安装 phpMyAdmin

祝贺你!我们已经在 Ubuntu 服务器中成功配置了 LAMP 套件。


via: https://www.ostechnix.com/install-apache-mysql-php-lamp-stack-on-ubuntu-18-04-lts/

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

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

这一标题可能看起来很粗略且吸睛。请允许我解释一下我在本教程中将要阐释的内容。假设你想下载一个压缩文件,将其解压缩,并从命令行中将文件从一个位置移动到另一个位置。根据上面的场景,我们可能需要至少三个 Linux 命令,一个用于下载文件,一个用于提取下载的文件,一个用于移动文件。如果你是中高级 Linux 用户,你可以通过一行命令或脚本在几秒钟/分钟内轻松完成这一任务。但是,如果你是一个不懂得太多 Linux 命令的菜鸟你可能就需要一些帮助了。

当然,谷歌的快速搜索可能会找到很多结果。或者,你可以使用 手册页。但是有些手册页实在很长,很全面,但缺少有用的示例。当你在特定的标志/选项上寻找特定的信息时,你可能需要向下检索相当长的时间。值得庆幸的是,有一些 好的手册页替代品,它们主要关注于实用的命令。一个很好的选择是 TLDR 手册。使用 TLDR 手册,我们可以通过实际示例快速轻松地学习一个 Linux 命令。要使用 TLDR 手册,我们需要 TLDR 客户端。有很多客户。今天我们就来了解一个这样的客户端,名为 “Tldr++”

Tldr++ 是一个快速和交互式的 Tldr 客户端,用 Go 编程语言编写。与其他 Tldr 客户端不同,它是完全交互式的。这意味着,你可以选择一个命令,读取所有示例,并立即运行任何命令,而不必在终端中重新键入或复制/粘贴每个命令。还是不明白?没有问题。请继续阅读,以便动态学习和实践 Linux 命令。

安装 Tldr++

安装 Tldr++ 非常简单。从 发布页面 下载 Tldr++ 最新版本。解压它并将 Tldr++ 二进制文件移动到你的 $PATH 中。

$ wget https://github.com/isacikgoz/tldr/releases/download/v0.5.0/tldr_0.5.0_linux_amd64.tar.gz
$ tar xzf tldr_0.5.0_linux_amd64.tar.gz
$ sudo mv tldr /usr/local/bin
$ sudo chmod +x /usr/local/bin/tldr

现在,运行 tldr 二进制代码将 TLDR 手册部署到本地系统中。

$ tldr

示例输出:

Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Compressing objects: 100% (6/6), done.
Total 18157 (delta 0), reused 3 (delta 0), pack-reused 18151
Successfully cloned into: /home/sk/.local/share/tldr

Tldr++ 可以在 AUR 中使用。如果你使用 Arch Linux 上,你可以使用任何 AUR 助手来安装它,例如 YaY。确保你已经从系统中删除了任何现有的 TLDR 客户端,并运行以下命令安装 Tldr++。

$ yay -S tldr++

或者,你也可以像下面描述的那样从源代码进行编译。因为 Tldr++ 是用 Go 语言编写的,所以请确保你 Linux 系统中已经安装了 Go 语言。如果还没有安装,请参考下面的指南。

在安装好 Go 语言之后, 运行以下的命令来安装 Tldr++。

$ go get -u github.com/isacikgoz/tldr

该命令在当前工作目录中下载 tldr 代码库中的内容并存储到 go 文件夹中。

现在,运行 tldr 二进制代码将 TLDR 手册部署到本地系统中。

$ go/bin/tldr

示例输出:

最后,将 tldr 二进制文件复制到你的路径中。

$ sudo mv tldr /usr/local/bin

现在是时候看一些例子了。

Tldr++ 用法

输入不带任何选项的 tldr 命令,以字母顺序显示所有命令示例。

使用 向上/向下箭头 来浏览命令,键入任何字母来搜索或键入命令名称来查看相应命令的示例。 ? 以浏览更多消息,按 Ctrl+c 返回/退出。

要显示特定命令的示例命令,例如 apt,可以这样做:

$ tldr apt

从列表中选择任意示例命令并按回车键。在选定的命令前会看到一个 * 符号。例如,我选择第一个命令即 sudo apt update。现在,它会问你是否继续。如果命令正确,只需键入 y 继续,并输入 sudo 密码运行所选命令。

看到了吗?你不需要在终端中复制/粘贴或键入实际的命令。只需从列表中选择它,并极速运行!

Tldr 手册中有数百个 Linux 命令示例。你可以每天选择一个或两个命令,并彻底学习它们。每天坚持这样的练习,尽可能多的掌握。

使用 Tldr++ 动态学习和实践 Linux 命令

现在回到我在第一段中提到的场景。你需要下载一个文件,将其解压缩并将其移动到不同的位置,并使其可执行。让我们看看如何使用 Tldr++ 客户端进行交互。

第一步 – 从网上下载文件

要使用命令行下载文件,我们主要使用 curlwget 命令。让我使用 wget 下载文件。要打开 wget 命令的 TLDR 页面,只需执行以下命令:

$ tldr wget

下面是 wget 命令的示例。

你可以使用 向上/向下箭头 来浏览命令列表。一旦你选择了你所选择的命令,按回车键。这里我选择了第一个命令。

现在,输入路径来下载文件。

然后将要求你确认该命令是否正确。如果命令正确,只需键入 yesy 就可以开始下载文件。

我们已经下载了文件。让我们继续解压这个文件。

第二步 – 解压已下载的文件

我们下载了 tar.gz 文件。所以我将打开 TLDR 手册的 tar 页面。

$ tldr tar

你将看到示例命令列表。浏览这些示例,找出哪个命令适合提取 tar.gz(gzip 格式)文件,按回车键。在我们的例子中,它是第三个命令。

现在,系统将提示你输入 tar.gz 文件的路径。只需输入路径并按回车键。Tldr++ 支持智能文件提示。这意味着它会在你键入时自动补全文件名。只需按 TAB 键自动完成。

如果将文件下载到其他位置,只需键入完整路径,例如 /home/sk/Downloads/tldr_0.5.0_linux_amd64.tar.gz

输入要解压的文件的路径后,按回车键,然后输入 y 进行确认。

第三步 – 将文件从一个目录移动到另一个目录

我们解压了文件。现在我们需要将文件移动到另一个位置。为了将文件从一个位置移动到另一个位置,我们使用 mv 命令。所以,让我们打开 TLDR 手册的 mv 命令。

$ tldr mv

选择正确的命令将文件从一个位置移动到另一个位置。在我们的例子中,第一个命令可以工作,所以让我们选中它。

输入要移动的文件路径,并输入目标路径并按回车键。

附注: 输入 y!yes! 来以 sudo 权限运行命令。

正如你在上面的截图中看到的,我将名为 `tldr的文件移动到/usr/local/bin/

要了解更多细节,请参考项目最后给出的 GitHub 页面。

总结

别误会,毫无疑问 手册页 是伟大的!但是,正如我已经说过的,许多手册页都很全面,缺少有用的示例。我不可能记住带有复杂标志的冗长的所有命令。有时,我花了很多时间在手册页上,却还是一窍不通。Tldr 手册帮助我在几分钟内找到了我需要的东西。而且,我们偶尔会使用一些命令,然后就会完全忘记它们。另一方面,Tldr 手册实际上在使用那些使用率很低的命令时很有帮助。Tldr++ 客户端通过智能的用户交互使这个任务变得更容易。试试吧,在下面的评论区告诉我们你对这个工具的看法。

(LCTT 译注:我们也开发了一个 TLDR 客户端,是基于微信小程序的,大家在微信中搜索“Linux”小程序即可找到。虽然微信小程序版的 TLDR 客户端不能像这个客户端一样实际运行 Linux,但是它是中文的,而且中文翻译是由使用者来贡献和修正的。顺便说一句,全部一千多个命令已经翻译完毕,感谢我们的贡献者们! )

以上,更多的好的分享将会陆续推出,请继续保持关注!

祝好!


via: https://www.ostechnix.com/search-study-and-practice-linux-commands-on-the-fly/

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

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

这个指南里介绍了 7 种为 Ubuntu 升级 Linux 内核的不同方法。这 7 种方法里,有 5 种需要重启系统来使新内核生效,其他两种则不用。升级之前,强烈建议你将重要数据进行备份! 这里提到的所有方法只在 Ubuntu 中测试过。我们并不确定这些方法是不是也能适用于其他 Ubuntu 的特色发行版(如: Xubuntu)和衍生发行版(如:Linux Mint)。

第一部分:需要重启的内核升级

以下方法需要你重启系统以便新的内核生效。以下所有方法都建议在个人系统或测试系统中进行。重要的事儿再说一遍,请备份好你 Ubuntu 中的重要数据、配置文件和其他重要的东西。

方法 1 - 使用 dpkg 升级 Linux 内核(手动方式)

这个方法可以帮助你从 kernel.ubuntu.com 网站手动下载可用的最新 Linux 内核。如果你打算安装最新版(而不是稳定版或者正式发布版),那这种方法对你会很有用。从以上链接下载 Linux 内核版本。编写这个指南的时候,最新的可用版本是 5.0-rc1,最新的稳定版是 v4.20

点击你所选择的 Linux 内核版本链接,找到你对应的架构(“Build for XXX”)的那部分。然后下载符合以下格式的两个文件(其中 X.Y.Z 是最高版本号):

  1. linux-image-X.Y.Z-generic-*.deb
  2. linux-modules-X.Y.Z-generic-.deb

在终端中改变到文件所在的目录,然后执行此命令手动安装内核:

$ sudo dpkg --install *.deb

重启系统,使用新内核:

$ sudo reboot

检查是否如你所愿:

$ uname -r

对于分步的说明,请查看下列链接中对应的部分。

以上的指南是针对的是 4.15 版本,不过安装最新版本的所有的步骤都是一样的。

优势: 不必联网(你可以从任何系统中下载 Linux 内核来使用)

缺点: 手动更新,需要重启系统。

方法 2 - 用 apt-get 来升级 Linux 内核(推荐方法)

这是在类 Ubuntu 系统中升级 Linux 内核的推荐方法。不同于上一个方法,这种方法会从 Ubuntu 官方仓库下载、安装内核版本,而不是从 kernel.ubuntu.com网站。

要升级包括内核的整个系统,只需要执行:

$ sudo apt-get update
$ sudo apt-get upgrade

如果只希望升级内核,运行:

$ sudo apt-get upgrade linux-image-generic

优势: 简单。推荐方法。

缺点: 需要联网,需要重启。

从官方库中升级内核是最接近开箱即用的方法,并且不会出什么问题。如果是生产环境的系统,这是最为推荐的升级 Linux 内核的方法。

方法 1 和方法 2 都需要用户去介入到升级 Linux 内核的过程中。而下边的方法(3、 4、 5)则几乎是全自动的。

方法 3 - 使用 Ukuu 升级 Linux 内核

Ukuu是一个 Gtk GUI 和命令行工具,它可以从 kernel.ubuntu.com 下载最新的 Linux 主线内核,并自动安装到你的 Ubuntu 桌面版和服务器版中。Ukku 不仅简化了手动下载和安装新内核的过程,同时也会帮助你安全地移除旧的和不再需要的内核。更多细节可以参照以下指南。

优势: 易于安装使用。自动安装主线内核。

缺点: 需要联网,需要重启。

方法 4 - 使用 UKTools 升级 Linux 内核

跟 Ukuu 差不多,UKTools 也会从 kernel.ubuntu.com 网站获取最新的稳定内核并且自动安装到 Ubuntu 以及类似于 Linux Mint 的延伸发行版中。关于UKTools的更多详情,请参见下面的链接。

优势: 简单,自动。

缺点: 需要联网,需要重启。

方法 5 - 使用 Linux 内核实用程序更新 Linux 内核

Linux 内核实用程序是目前另一个用于升级类 Ubuntu 系统 Linux 内核的程序。实质上,它是一个由一系列 Bash 脚本构成的合集,用于编译并且可以选择性地为 Debian(LCTT 译注:Ubuntu 的上游发行版)及其衍生发行版升级内核。它包含三个实用程序,一个用于手动编译、安装来自于 http://www.kernel.org网站的源码内核,另一个用于安装来自https://kernel.ubuntu.com 网站的预编译的内核,第三个脚本用于移除旧内核。更多细节请浏览以下链接。

优势: 简单,自动。

缺点: 需要联网,需要重启。

第二部分:无需重启的内核升级

我之前说过,上边所有的方法都需要你重启服务器(LCTT 译注:也可以是桌面版)来启用新内核。如果是个人系统或者测试系统,可以这么办。但对于无法停机的生产环境系统该怎么办呢?一点问题没有,这时候 实时补丁 livepatching 就派上用场了。

实时补丁(或者叫热补丁)允许你在不重启的情况下安装 Linux 更新或补丁,使你的服务器处于最新的安全级别。这对 web 主机、游戏服务器这类需要不间断在线的服务器来说是很有价值的。事实上,任何情况下,服务器都应该保持在不间断运行的状态下。由于 Linux 供应商只会在出于修复安全漏洞的目的下维护补丁,所以如果安全性是你最关注的问题时,这种方式再适合不过了。

以下两种方法不需要重启,对于生产环境和执行关键任务的 Ubuntu 服务器的 Linux 内核更新非常有用。

方法 6 – 使用 Canonical 实时补丁服务来更新 Linux 内核

Canonical 实时补丁服务可以在不需要重启 Ubuntu 系统的情况下自动应用内核更新、补丁和安全补丁。它可以减少Ubuntu系统的停机时间,并保证系统的安全。Canonical 实时补丁服务可以在安装过程当中或安装之后进行设置。如果你使用的是 Ubuntu 桌面版,软件更新器会自动检查内核补丁的更新,并通知你。在基于控制台的系统中,则需要你定期运行 apt-get update 命令来进行升级。由于需要你手动运行 apt-get upgrade 命令它才会安装内核的安全补丁,所以算是半自动的。

实时补丁对三个及以下系统免费,如果多于三个,你需要升级成名为 Ubuntu Advantage 的企业支持方案套件。这个套件包括 Kernel 实时补丁及以下服务:

  • 扩展安全维护 – Ubuntu 生命周期后的重要安全更新
  • Landscape – 针对大规模使用 Ubuntu 的系统管理工具
  • 知识库 – 由 Ubuntu 专家撰写的私人文章和教程
  • 电话和网站支持

价格

Ubuntu Advantage 包含三种付费计划,即基本计划、标准计划和高级计划。最基础的计划(基本计划)从 单物理节点 225 美元/年单VPS 75美元/年开始计价。对于 Ubuntu 服务器版和桌面版看上去没有按月订阅。你可以在此处浏览所有计划的细节信息。

优势: 简单。半自动化。无需重启。支持三个免费系统。

缺点: 4 个以上主机的话非常昂贵。没有补丁回滚。

开启 Canonical 实时补丁

如果你想在安装后设置实时补丁服务,依照以下方法逐步执行:

https://auth.livepatch.canonical.com/ 获取一个密钥。

$ sudo snap install canonical-livepatch
$ sudo canonical-livepatch enable your-key

方法 7 - 使用 KernelCare 升级 Linux 内核

KernelCare 是最新的实时补丁方案。它是 CloudLinux 推出的产品。KernelCare 可以运行在 Ubuntu 和其他的 Linux 发行版中。它每四个小时检查一遍补丁的发布,并在无需确认的情况下安装它们。如果更新后存在问题,可以将补丁进行回滚。

价格

费用,每台服务器:4 美元/月45 美元/年

跟 Ubuntu 实时补丁相比,KernelCare 看起来非常便宜、实惠。好的方面在于也可以按月订阅。另一个前者不具备的功能是支持其他 Linux 发行版,如 Red Hat、CentOS、Debian、Oracle Linux、Amazon Linux 以及 OpenVZ、Proxmox 等虚拟化平台。

你可以在此处了解 KernelCare 的所有特性和简介,以及所有的付费计划的细节。

优势: 简单。全自动化。覆盖范围更广的操作系统。补丁回滚。无需重启。对非营利组织提供免费许可。价格低廉。

缺点: 不是免费的(除了30天的试用期)。

开启 KernelCare 服务

https://cloudlinux.com/kernelcare-free-trial5 获取一个 30 天免费试用密钥。

执行以下命令开启 KernelCare 并注册秘钥。

$ sudo wget -qq -O - https://repo.cloudlinux.com/kernelcare/kernelcare_install.sh | bash
$ sudo /usr/bin/kcarectl --register KEY

如果你正在寻找一种经济实惠且可靠的商业服务来保持 Linux 服务器上的 Linux 内核更新,那么 KernelCare 是个不错的选择。

由来自 Cloud Linux 的技术撰稿人和内容作者 Paul A. Jacobs 提供。

到此,希望这边文章能对你有所帮助。如果你觉得还有其他的工具和方法需要列在这里,可以在留言区给我们留言。我会根据反馈检查和更新这篇指南的。

接下来会有更多好东西给大家呈现,敬请期待。

Cheers!


via: https://www.ostechnix.com/different-ways-to-update-linux-kernel-for-ubuntu/

作者:SK 选题:lujun9972 译者:mr-ping 校对:wxy

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

每当需要在线共享代码片段时,我们想到的第一个便是 Pastebin.com,这是 Paul Dixon 于 2002 年推出的在线文本共享网站。现在,有几种可供选择的文本共享服务可以上传和共享文本片段、错误日志、配置文件、命令输出或任何类型的文本文件。如果你碰巧经常使用各种类似于 Pastebin 的服务来共享代码,那么这对你来说确实是个好消息。向 Wgetpaste 打个招呼吧,它是一个命令行 BASH 实用程序,可轻松地将文本摘要上传到类似 Pastebin 的服务中。使用 Wgetpaste 脚本,任何人都可以与自己的朋友、同事或想在类似 Unix 的系统中的命令行中查看/使用/审查代码的人快速共享文本片段。

安装 Wgetpaste

Wgetpaste 在 Arch Linux [Community] 存储库中可用。要将其安装在 Arch Linux 及其变体(如 Antergos 和 Manjaro Linux)上,只需运行以下命令:

$ sudo pacman -S wgetpaste

对于其他发行版,请从 Wgetpaste 网站 获取源代码,并按如下所述手动安装。

首先下载最新的 Wgetpaste tar 文件:

$ wget http://wgetpaste.zlin.dk/wgetpaste-2.28.tar.bz2

提取它:

$ tar -xvjf wgetpaste-2.28.tar.bz2

它将 tar 文件的内容提取到名为 wgetpaste-2.28 的文件夹中。

转到该目录:

$ cd wgetpaste-2.28/

wgetpaste 二进制文件复制到 $PATH 中,例如 /usr/local/bin/

$ sudo cp wgetpaste /usr/local/bin/

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

$ sudo chmod +x /usr/local/bin/wgetpaste

将文本片段上传到类似 Pastebin 的服务中

使用 Wgetpaste 上传文本片段很简单。让我向你展示一些示例。

1、上传文本文件

要使用 Wgetpaste 上传任何文本文件,只需运行:

$ wgetpaste mytext.txt

此命令将上传 mytext.txt 文件的内容。

示例输出:

Your paste can be seen here: https://paste.pound-python.org/show/eO0aQjTgExP0wT5uWyX7/

你可以通过邮件、短信、whatsapp 或 IRC 等任何媒体共享 pastebin 的 URL。拥有此 URL 的人都可以访问它,并在他们选择的 Web 浏览器中查看文本文件的内容。

这是 Web 浏览器中 mytext.txt 文件的内容:

你也可以使用 tee 命令显示粘贴的内容,而不是盲目地上传它们。

为此,请使用如下的 -t 选项。

$ wgetpaste -t mytext.txt

2、将文字片段上传到其他服务

默认情况下,Wgetpaste 会将文本片段上传到 poundpython(https://paste.pound-python.org/)服务。

要查看支持的服务列表,请运行:

$ wgetpaste -S

示例输出:

Services supported: (case sensitive):
Name: | Url:
=============|=================
bpaste | https://bpaste.net/
codepad | http://codepad.org/
dpaste | http://dpaste.com/
gists | https://api.github.com/gists
*poundpython | https://paste.pound-python.org/

在这里,* 表示默认服务。

如你所见,Wgetpaste 当前支持五种文本共享服务。我并没有全部尝试,但是我相信所有服务都可以使用。

要将内容上传到其他服务,例如 bpaste.net,请使用如下所示的 -s 选项。

$ wgetpaste -s bpaste mytext.txt
Your paste can be seen here: https://bpaste.net/show/5199e127e733

3、从标准输入读取输入

Wgetpaste 也可以从标准输入读取。

$ uname -a | wgetpaste

此命令将上传 uname -a 命令的输出。

4、上传命令及命令的输出

有时,你可能需要粘贴命令及其输出。为此,请在如下所示的引号内指定命令的内容。

$ wgetpaste -c 'ls -l'

这会将命令 ls -l 及其输出上传到 pastebin 服务。

当你想让其他人清楚地知道你刚运行的确切命令及其输出时,此功能很有用。

如你在输出中看到的,我运行了 ls -l 命令。

5、上载系统日志文件、配置文件

就像我已经说过的,我们可以上载你的系统中任何类型的文本文件,而不仅仅是普通的文本文件,例如日志文件、特定命令的输出等。例如,你刚刚更新了 Arch Linux 机器,最后系统损坏了。你问你的同事该如何解决此问题,他(她)想阅读 pacman.log 文件。 这是上传 pacman.log 文件内容的命令:

$ wgetpaste /var/log/pacman.log

与你的同事共享 pastebin URL,以便他/她可以查看 pacman.log,并通过查看日志文件来帮助你解决问题。

通常,日志文件的内容可能太长,你不希望全部共享它们。在这种情况下,只需使用 cat 命令读取输出,然后使用 tail -n 命令定义要共享的行数,最后将输出通过管道传递到 Wgetpaste,如下所示。

$ cat /var/log/pacman.log | tail -n 50 | wgetpaste

上面的命令将仅上传 pacman.log 文件的“最后 50 行”。

6、将输入网址转换为短链接

默认情况下,Wgetpaste 将在输出中显示完整的 pastebin URL。如果要将输入 URL 转换为短链接,只需使用 -u 选项。

$ wgetpaste -u mytext.txt
Your paste can be seen here: http://tinyurl.com/y85d8gtz

7、设定语言

默认情况下,Wgetpaste 将上传“纯文本”中的文本片段。

要列出指定服务支持的语言,请使用 -L 选项。

$ wgetpaste -L

该命令将列出默认服务(poundpython https://paste.pound-python.org/)支持的所有语言。

我们可以使用 -l 选项来改变它。

$ wgetpaste -l Bash mytext.txt

8、在输出中禁用语法突出显示或 html

如上所述,文本片段将以特定的语言格式(纯文本、Bash 等)显示。

但是,你可以更改此行为,以使用 -r 选项显示原始文本摘要。

$ wgetpaste -r mytext.txt
Your raw paste can be seen here: https://paste.pound-python.org/raw/CUJhQ3jEmr2UvfmD2xCL/

如你在上面的输出中看到的,没有语法突出显示,没有 html 格式。只是原始输出。

9、更改 Wgetpaste 默认值

所有默认值(DEFAULT_{NICK,LANGUAGE,EXPIRATION}[_${SERVICE}]DEFAULT_SERVICE)都可以在 /etc/wgetpaste.conf 中全局更改,也可以在 ~/.wgetpaste.conf 文件中针对每个用户更改。但是,这些文件在我的系统中默认情况下并不存在。我想我们需要手动创建它们。开发人员已经在这里这里为这两个文件提供了示例内容。只需使用给定的样本内容手动创建这些文件,并相应地修改参数即可更改 Wgetpaste 的默认设置。

10、获得帮助

要显示帮助部分,请运行:

$ wgetpaste -h

via: https://www.ostechnix.com/how-to-easily-upload-text-snippets-to-pastebin-like-services-from-commandline/

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

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