SK 发布的文章

Delete A Repository And GPG Key In Ubuntu

前几天我们讨论了如何在基于 RPM 和 DEB 的系统中列出已安装的仓库。今天,我们将学习如何在 Ubuntu 中删除仓库及其 GPG 密钥。对于不知道仓库的人,仓库(简称 repo)是开发人员存储软件包的地方。仓库的软件包经过全面测试,并由 Ubuntu 开发人员专门为每个版本构建。用户可以使用 Apt 包管理器在他们的 Ubuntu 系统上下载和安装这些包。Ubuntu 有四个官方仓库,即 Main、Universe、Restricted 和 Multiverse。

除了官方仓库外,还有许多由开发人员(或软件包维护人员)维护的非官方仓库。非官方仓库通常有官方仓库中不可用的包。所有包都由包维护者用一对密钥(公钥和私钥)签名。如你所知,公钥是发给用户的,私钥必须保密。每当你在源列表中添加新的仓库时,如果 Apt 包管理器想要信任新添加的仓库,你还应该添加仓库密钥(公钥)。使用仓库密钥,你可以确保从正确的人那里获得包。到这里希望你对软件仓库和仓库密钥有了一个基本的了解。现在让我们继续看看如果在 Ubuntu 系统中不再需要仓库及其密钥,那么该如何删除它。

在 Ubuntu 中删除仓库

每当使用 add-apt-repository 命令添加仓库时,它都将保存在 /etc/apt/sources.list 中。

要从 Ubuntu 及其衍生版中删除软件仓库,只需打开 /etc/apt/sources.list 文件并查找仓库名字并将其删除即可。

$ sudo nano /etc/apt/sources.list

正如你在下面的截图中看到的,我在我的 Ubuntu 系统中添加了 Oracle Virtualbox 仓库。

virtualbox 仓库

要删除此仓库,只需删除该条目即可。保存并关闭文件。

如果你已添加 PPA 仓库,请查看 /etc/apt/sources.list.d/ 目录并删除相应的条目。

或者,你可以使用 add-apt-repository 命令删除仓库。例如,我要删除 Systemback 仓库,如下所示。

$ sudo add-apt-repository -r ppa:nemh/systemback

最后,使用以下命令更新软件源列表:

$ sudo apt update

删除仓库密钥

我们使用 apt-key 命令添加仓库密钥。首先,让我们使用命令列出添加的密钥:

$ sudo apt-key list

此命令将列出所有添加的仓库密钥。

/etc/apt/trusted.gpg
--------------------
pub rsa1024 2010-10-31 [SC]
3820 03C2 C8B7 B4AB 813E 915B 14E4 9429 73C6 2A1B
uid [ unknown] Launchpad PPA for Kendek


pub rsa4096 2016-04-22 [SC]
B9F8 D658 297A F3EF C18D 5CDF A2F6 83C5 2980 AECF
uid [ unknown] Oracle Corporation (VirtualBox archive signing key) <[email protected]>
sub rsa4096 2016-04-22 [E]


/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg
------------------------------------------------------
pub rsa4096 2012-05-11 [SC]
790B C727 7767 219C 42C8 6F93 3B4F E6AC C0B2 1F32
uid [ unknown] Ubuntu Archive Automatic Signing Key (2012) <[email protected]>


/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
------------------------------------------------------
pub rsa4096 2012-05-11 [SC]
8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092
uid [ unknown] Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>


/etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg
------------------------------------------------------
pub rsa4096 2018-09-17 [SC]
F6EC B376 2474 EDA9 D21B 7022 8719 20D1 991B C93C
uid [ unknown] Ubuntu Archive Automatic Signing Key (2018) <[email protected]>

正如你在上面的输出中所看到的,那串长的(40 个字符)十六进制值是仓库密钥。如果你希望 APT 包管理器停止信任该密钥,只需使用以下命令将其删除:

$ sudo apt-key del "3820 03C2 C8B7 B4AB 813E 915B 14E4 9429 73C6 2A1B"

或者,仅指定最后 8 个字符:

$ sudo apt-key del 73C62A1B

完成!仓库密钥已被删除。运行以下命令更新仓库列表:

$ sudo apt update

资源:


via: https://www.ostechnix.com/how-to-delete-a-repository-and-gpg-key-in-ubuntu/

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

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

我们始终建议在虚拟环境中安装 Python 应用以避免彼此冲突。Pip 包管理器可以帮助我们在隔离的环境中安装 Python 应用,我们使用两个工具,即 venvvirtualenv。还有一个 Python.org 推荐的名为 Pipenv 的 Python 包管理器也可以用来安装 Python 应用。与 Pip 不同,Pipenv 默认会自动创建虚拟环境。这意味着你不再需要为项目手动创建虚拟环境。今天,我偶然发现了一个名为 “Pipx” 的类似工具,它是一个自由开源程序,允许你在隔离的虚拟环境中安装和运行 Python 应用。

使用 Pipx,我们可以轻松安装 PyPI 中托管的数千个 Python 应用,而不会有太多麻烦。好的是,你可以使用常规用户权限执行所有操作。你不需要成为 “root” 用户或不需要具有 “sudo” 权限。值得一提的是,Pipx 可以从临时环境运行程序,而无需安装它。当你经常测试同一程序的多个版本时,这将非常方便。随 Pipx 一起安装的软件包可以随时列出、升级或卸载。Pipx 是一个跨平台的程序,因此它可以在 Linux、Mac OS 和 Windows 上运行。

安装 Pipx

Python 3.6+ 、Pip 和 venv 模块是安装 pipx 所必需的。确保按照以下指南中的说明安装它们。

此处,需要 venv 来创建虚拟环境。

接下来,运行以下命令安装 Pipx。

$ python3 -m pip install --user pipx
$ python3 -m userpath append ~/.local/bin

pipx 二进制文件的默认位置是 ~/.local/bin。你可以使用 PIPX_BIN_DIR 环境变量覆盖它。如果要覆盖 PIPX_BIN_DIR,只需运行 userpath append $PIPX_BIN_DIR,确保它在你的路径中。

Pipx 的默认虚拟环境位置是 ~/.local/pipx。这可以用环境变量 PIPX_HOME 覆盖。

让我们继续看看如何使用 Pipx 安装 Python 应用。

使用 Pipx 在隔离环境中安装和运行 Python 应用

以下是 Pipx 入门的几个例子

安装 Python 包

要全局安装 Python 应用,例如 cowsay,请运行:

$ pipx install cowsay

此命令将自动创建虚拟环境,在其中安装包并包的可执行文件放在 $PATH 中。

示例输出:

installed package cowsay 2.0.3, Python 3.6.8
These binaries are now globally available
- cowsay
done! ✨ ? ✨

1

使用 Pipx 安装 Python 应用

让我们测试新安装的 cowsay 程序:

1

在这里,我从官方网站上摘取了这些例子。你可以安装/测试任何其他的 Python 包。

列出 Python 包

要使用 Pipx 列出所有已安装的应用,请运行:

$ pipx list

示例输出:

venvs are in /home/sk/.local/pipx/venvs
binaries are exposed on your $PATH at /home/sk/.local/bin
package cowsay 2.0.3, Python 3.6.8
- cowsay

如果你尚未安装任何软件包,你将看到以下输出:

nothing has been installed with pipx ?

升级包

要升级包,只需执行以下操作:

$ pipx upgrade cowsay

要一次性升级所有已安装的软件包,请使用:

$ pipx upgrade-all

从临时虚拟环境运行应用

有时,你可能希望运行特定的 Python 程序,但并不实际安装它。

$ pipx run pycowsay moooo

1

在临时隔离虚拟环境中运行 Python 应用

此命令实际上并不安装指定程序,而是从临时虚拟环境运行它。你可以使用此命令快速测试 Python 应用。

你甚至可以直接运行 .py 文件。

$ pipx run https://gist.githubusercontent.com/cs01/fa721a17a326e551ede048c5088f9e0f/raw/6bdfbb6e9c1132b1c38fdd2f195d4a24c540c324/pipx-demo.py
pipx is working!

卸载软件包

可以使用以下命令卸载软件包:

$ pipx uninstall cowsay

要删除所有已安装的包:

$ pipx uninstall-all

获得帮助

要查看帮助部分,请运行:

$ pipx --help

就是这些了。如果你一直在寻找安全,方便和可靠的程序来安装和运行 Python 应用,Pipx 可能是一个不错的选择。

资源:


via: https://www.ostechnix.com/pipx-install-and-run-python-applications-in-isolated-environments/

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

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

FInd Virtualbox version from commandline In Linux

我使用 Oracle VirtualBox 和 KVM 虚拟化程序测试不同的 Linux 操作系统。虽然我偶尔使用 KVM,但 Virtualbox 始终是我的首选。不是因为我不喜欢 KVM,而是因为我只是习惯了 VirtualBox。当在我的 Ubuntu 无头服务器上使用 Virtualbox 时,我需要知道 VirtualBox 的版本。如果它有 GUI,我可以进入 Virtualbox -> About -> Help 轻松找到它。但我的是没有 GUI 的 Ubuntu 服务器。如果你想知道如何在 Linux 中从命令行查找 VirtualBox 版本,可以采用以下几种方法。

在 Linux 中从命令行查找 VirtualBox 版本

要查找已安装的 VirtualBox 的版本,请打开终端并运行以下命令:

$ vboxmanage --version

示例输出:

5.2.18_Ubuntur123745

在 Linux 中从命令行查找 Virtualbox 版本

正如你在上面的输出中看到的,安装的 VirtualBox 的版本是 5.2。

查找 VirtualBox 版本的另一种方法是:

$ vbox-img --version

示例输出:

5.2.18_Ubuntur123745

或者,你可以使用 headawk 命令来查找 VirtualBox 版本。

$ virtualbox --help | head -n 1 | awk '{print $NF}'

示例输出:

5.2.18_Ubuntu

或者,使用 echo 命令结合 headawk 命令:

$ echo $(virtualbox --help | head -n 1 | awk '{print $NF}')

示例输出:

5.2.18_Ubuntu

以上命令适用于任何 Linux 发行版。如果你使用的是 Ubuntu,你可以使用 dpkg 命令查看 VirtualBox 版本。

$ dpkg -l | grep virtualbox | awk '{print $3}'

示例输出:

5.2.30-130521~Ubuntu~bionic
5.2.18-dfsg-2~ubuntu18.04.5

就是这些了。这些是从 Linux 中的终端查找 Oracle Virtualbox 版本的几种方法。希望这篇文章很有用。

参考来自:


via: https://www.ostechnix.com/how-to-find-virtualbox-version-from-commandline-in-linux/

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

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

Find The Port Number Of A Service In Linux OS

由于某些原因,你可能经常需要查找端口名称和端口号。如果是这样,你很幸运。今天,在这个简短的教程中,我们将看到在 Linux 系统中最简单、最快捷的查找服务端口号的方法。可能有很多方法可以做到,但我目前只知道以下三种方法。请继续阅读。

在 Linux 中查找服务的端口号

方法1:使用 grep 命令

要使用 grep 命令在 Linux 中查找指定服务的默认端口号,只需运行:

$ grep <port> /etc/services

例如,要查找 SSH 服务的默认端口,只需运行:

$ grep ssh /etc/services

就这么简单。此命令应该适用于大多数 Linux 发行版。以下是我的 Arch Linux 测试机中的示例输出:

ssh 22/tcp
ssh 22/udp
ssh 22/sctp
sshell 614/tcp
sshell 614/udp
netconf-ssh 830/tcp
netconf-ssh 830/udp
sdo-ssh 3897/tcp
sdo-ssh 3897/udp
netconf-ch-ssh 4334/tcp
snmpssh 5161/tcp
snmpssh-trap 5162/tcp
tl1-ssh 6252/tcp
tl1-ssh 6252/udp
ssh-mgmt 17235/tcp
ssh-mgmt 17235/udp

正如你在上面的输出中所看到的,SSH 服务的默认端口号是 22。

让我们找到 Apache Web 服务器的端口号。为此,命令是:

$ grep http /etc/services
# http://www.iana.org/assignments/port-numbers
http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
http 80/sctp # HyperText Transfer Protocol
https 443/tcp # http protocol over TLS/SSL
https 443/udp # http protocol over TLS/SSL
https 443/sctp # http protocol over TLS/SSL
gss-http 488/tcp
gss-http 488/udp
webcache 8080/tcp http-alt # WWW caching service
webcache 8080/udp http-alt # WWW caching service
[...]

FTP 端口号是什么?这很简单!

$ grep ftp /etc/services
ftp-data 20/tcp
ftp-data 20/udp
# 21 is registered to ftp, but also used by fsp
ftp 21/tcp
ftp 21/udp fsp fspd
tftp 69/tcp
[...]

方法 2:使用 getent 命令

如你所见,上面的命令显示指定搜索词 “ssh”、“http” 和 “ftp” 的所有端口名称和数字。这意味着,你将获得与给定搜索词匹配的所有端口名称的相当长的输出。

但是,你可以使用 getent 命令精确输出结果,如下所示:

$ getent services ssh
ssh 22/tcp

$ getent services http
http 80/tcp www www-http

$ getent services ftp
ftp 21/tcp

如果你不知道端口名称,但是知道端口号,那么你只需将端口名称替换为数字:

$ getent services 80
http 80/tcp

要显示所有端口名称和端口号,只需运行:

$ getent services

方法 3:使用 Whatportis 程序

Whatportis 是一个简单的 Python 脚本,来用于查找端口名称和端口号。与上述命令不同,此程序以漂亮的表格形式输出。

确保已安装 pip 包管理器。如果没有,请参考以下链接。

安装 pip 后,运行以下命令安装 Whatportis 程序。

$ pip install whatportis

现在,你可以找到与服务关联的端口,如下所示。

$ whatportis ssh

$ whatportis ftp

$ whatportis http

我的 CentOS 7 服务器的示例输出:

在 Linux 中查找服务的端口号

如果你不知道服务的确切名称,请使用 –like 标志来显示相关结果。

$ whatportis mysql --like

上述命令帮助你查找与服务关联的端口。你还可以找到与端口号相关联的服务,如下所示。

$ whatportis 993

你甚至可以以 JSON 格式显示结果。

$ whatportis 993 --json

有关更多详细信息,请参阅 GitHub 仓库。

就是这些了。你现在知道了如何使用三种简单方法在 Linux 中查找端口名称和端口号。如果你知道任何其他方法/命令,请在下面的评论栏告诉我。我会查看并更相应地更新本指南。


via: https://www.ostechnix.com/how-to-find-the-port-number-of-a-service-in-linux/

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

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

Search Linux Applications On AppImage, Flathub And Snapcraft

Linux 一直在发展。过去,开发人员必须分别为不同的 Linux 发行版构建应用。由于存在多种 Linux 变体,因此为所有发行版构建应用变得很繁琐,而且非常耗时。后来一些开发人员发明了包转换器和构建器,如 CheckinstallDebtapFpm。但他们也没有完全解决问题。所有这些工具都只是将一种包格式转换为另一种包格式。我们仍然需要找到应用并安装运行所需的依赖项。

好吧,时代已经变了。我们现在有了通用的 Linux 应用。这意味着我们可以在大多数 Linux 发行版上安装这些应用。无论是 Arch Linux、Debian、CentOS、Redhat、Ubuntu 还是任何流行的 Linux 发行版,通用应用都可以正常使用。这些应用与所有必需的库和依赖项打包在一个包中。我们所要做的就是在我们使用的任何 Linux 发行版上下载并运行它们。流行的通用应用格式有 AppImage、FlatpakSnap

AppImage 由 Simon peter 创建和维护。许多流行的应用,如 Gimp、Firefox、Krita 等等,都有这些格式,并可直接在下载页面下载。只需下载它们,使其可执行并立即运行它。你甚至无需 root 权限来运行 AppImage。

Flatpak 的开发人员是 Alexander Larsson(RedHat 员工)。Flatpak 应用托管在名为 “Flathub” 的中央仓库(商店)中。如果你是开发人员,建议你使用 Flatpak 格式构建应用,并通过 Flathub 将其分发给用户。

Snap 由 Canonical 而建,主要用于 Ubuntu。但是,其他 Linux 发行版的开发人员开始为 Snap 打包格式做出贡献。因此,Snap 也开始适用于其他 Linux 发行版。Snap 可以直接从应用的下载页面下载,也可以从 Snapcraft 商店下载。

许多受欢迎的公司和开发人员已经发布了 AppImage、Flatpak 和 Snap 格式的应用。如果你在寻找一款应用,只需进入相应的商店并获取你选择的应用并运行它,而不用管你使用何种 Linux 发行版。

还有一个名为 “Chob” 的命令行通用应用搜索工具可在 AppImage、Flathub 和 Snapcraft 平台上轻松搜索 Linux 应用。此工具仅搜索给定的应用并在默认浏览器中显示官方链接。它不会安装它们。本指南将解释如何安装 Chob 并使用它来搜索 Linux 上的 AppImage、Flatpak 和 Snap。

使用 Chob 在 AppImage、Flathub 和 Snapcraft 平台上搜索 Linux 应用

发布页面下载最新的 Chob 二进制文件。在编写本指南时,最新版本为 0.3.5。

$ wget https://github.com/MuhammedKpln/chob/releases/download/0.3.5/chob-linux

使其可执行:

$ chmod +x chob-linux

最后,搜索你想要的应用。例如,我将搜索与 Vim 相关的应用。

$ ./chob-linux vim

Chob 将在 AppImage、Flathub 和 Snapcraft 平台上搜索给定的应用(和相关应用)并显示结果。

使用 Chob 搜索 Linux 应用

只需要输入你想要应用前面的数字就可在默认浏览器中打开它的官方链接,并可在其中阅读应用的详细信息。

在浏览器中查看 Linux 应用的详细信息

有关更多详细信息,请查看下面的 Chob 官方 GitHub 页面。

资源:


via: https://www.ostechnix.com/search-linux-applications-on-appimage-flathub-and-snapcraft-platforms/

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

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

Display Linux system information using Neofetch

Neofetch 是一个简单但有用的命令行系统信息工具,它用 Bash 编写。它会收集有关系统软硬件的信息,并在终端中显示结果。默认情况下,系统信息将与操作系统的 logo 一起显示。但是,你可以进一步地自定义使用 ascii 图像或其他任何图片。你还可以配置 Neofetch 显示的信息、信息的显示位置和时间。Neofetch 主要用于系统信息的截图。它支持 Linux、BSD、Mac OS X、iOS 和 Windows 操作系统。在这个简短的教程中,让我们看看如何使用 Neofetch 显示 Linux 系统信息。

安装 Neofetch

Neofetch 可在大多数 Linux 发行版的默认仓库中找到。

在 Arch Linux 及其衍生版上,使用这个命令安装它:

$ sudo pacman -S netofetch

在 Debian(Stretch / Sid)上:

$ sudo apt-get install neofetch

在 Fedora 27 上:

$ sudo dnf install neofetch

在 RHEL、CentOS 上:

启用 EPEL 仓库:

# yum install epel-relase

获取 neofetch 仓库:

# curl -o /etc/yum.repos.d/konimex-neofetch-epel-7.repo
https://copr.fedorainfracloud.org/coprs/konimex/neofetch/repo/epel-7/konimex-neofetch-epel-7.repo

然后,安装 Neofetch:

# yum install neofetch

在 Ubuntu 17.10 和更新版本上:

$ sudo apt-get install neofetch

在 Ubuntu 16.10 和更低版本上:

$ sudo add-apt-repository ppa:dawidd0811/neofetch

$ sudo apt update

$ sudo apt install neofetch

在 NixOS 上:

$ nix-env -i neofetch

使用 Neofetch 显示 Linux 系统信息

Neofetch 非常简单直接。让我们看一些例子。

打开终端,然后运行以下命令:

$ neofetch

示例输出:

使用 Neofetch 显示 Linux 系统信息

正如你在上面的输出中所看到的,Neofetch 显示了我的 Arch Linux 系统的以下详细信息:

  • 已安装操作系统的名称,
  • 笔记本型号,
  • 内核详细信息,
  • 系统运行时间,
  • 默认和其他软件包管理器安装的软件数量
  • 默认 shell,
  • 屏幕分辨率,
  • 桌面环境,
  • 窗口管理器,
  • 窗口管理器的主题,
  • 系统主题,
  • 系统图标,
  • 默认终端,
  • CPU 类型,
  • GPU 类型,
  • 已安装的内存。

Neofetch 还有很多其他选项。我们会看到其中一些。

如何在 Neofetch 输出中使用自定义图像?

默认情况下,Neofetch 将显示你的操作系统 logo 以及系统信息。当然,你可以根据需要更改图像。

要显示图像,Linux 系统应该安装以下依赖项:

  1. w3m-img(用于显示图像。w3m-img 有时与 w3m 包捆绑在一起),
  2. Imagemagick(用于创建缩略图),
  3. 支持 \033[14t 或者 xdotool 或者 xwininfo + xprop 或者 xwininfo + xdpyinfo 的终端。

大多数 Linux 发行版的默认仓库中都提供了 W3m-img 和 ImageMagick 包。因此,你可以使用你的发行版的默认包管理器来安装它们。

例如,运行以下命令在 Debian、Ubuntu、Linux Mint 上安装 w3m-img 和 ImageMagick:

$ sudo apt install w3m-img imagemagick

以下是带 w3m-img 支持的终端列表:

  1. Gnome-terminal,
  2. Konsole,
  3. st,
  4. Terminator,
  5. Termite,
  6. URxvt,
  7. Xfce4-Terminal,
  8. Xterm

如果你的系统上已经有了 kitty、Terminology 和 iTerm,那么就无需安装 w3m-img。

现在,运行以下命令以使用自定义图像显示系统信息:

$ neofetch --w3m /home/sk/Pictures/image.png

或者,

$ neofetch --w3m --source /home/sk/Pictures/image.png

示例输出:

使用自定义 logo 的 Neofetch 输出

使用你自己的图片替换上面图片的路径。

或者,你可以指向包含以下图像的目录。

$ neofetch --w3m <path-to-directory>

配置 Neofetch

当我们第一次运行 Neofetch 时,它默认会为每个用户在 $HOME/.config/neofetch/config.conf 中创建一个配置文件。它还会在 $HOME/.config/neofetch/config 中创建一个全局的 neofetch 配置文件。你可以调整此文件来告诉 neofetch 该显示、删除和/或修改哪些详细信息。

还可以在不同版本中保留此配置文件。这意味着你只需根据自己的喜好自定义一次,并在升级到更新版本后使用相同的设置。你甚至可以将此文件共享给你的朋友和同事,使他拥有与你相同的设置。

要查看 Neofetch 帮助部分,请运行:

$ neofetch --help

就我测试的 Neofetch 而言,它在我的 Arch Linux 系统中完美地工作。它是一个非常方便的工具,可以在终端中轻松快速地打印系统的详细信息。

相关阅读:

资源:


via: https://www.ostechnix.com/neofetch-display-linux-systems-information/

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

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