SK 发布的文章

如今,我有很多方法来通过 Web 浏览器为局域网中的其他系统提供单个文件或整个目录的访问。我在我的 Ubuntu 测试机上测试了这些方法,它们如下面描述的那样运行正常。如果你想知道如何在类 Unix 操作系统中通过 HTTP 轻松快速地提供文件和文件夹的访问服务,以下方法之一肯定会有所帮助。

在 Linux 中通过 HTTP 访问文件和文件夹

免责声明:此处给出的所有方法适用于安全的局域网。由于这些方法没有任何安全机制,因此不建议在生产环境中使用它们。你注意了!

方法 1 - 使用 simpleHTTPserver(Python)

我们写了一篇简要的指南来设置一个简单的 http 服务器,以便在以下链接中即时共享文件和目录。如果你有一个安装了 Python 的系统,这个方法非常方便。

方法 2 - 使用 Quickserve(Python)

此方法针对 Arch Linux 及其衍生版。有关详细信息,请查看下面的链接。

方法 3 - 使用 Ruby

在此方法中,我们使用 Ruby 在类 Unix 系统中通过 HTTP 提供文件和文件夹访问。按照以下链接中的说明安装 Ruby 和 Rails。

安装 Ruby 后,进入要通过网络共享的目录,例如 ostechnix:

$ cd ostechnix

并运行以下命令:

$ ruby -run -ehttpd . -p8000
[2018-08-10 16:02:55] INFO WEBrick 1.4.2
[2018-08-10 16:02:55] INFO ruby 2.5.1 (2018-03-29) [x86_64-linux]
[2018-08-10 16:02:55] INFO WEBrick::HTTPServer#start: pid=5859 port=8000

确保在路由器或防火墙中打开端口 8000。如果该端口已被其他一些服务使用,那么请使用不同的端口。

现在你可以使用 URL 从任何远程系统访问此文件夹的内容 - http:// <ip-address>:8000

要停止共享,请按 CTRL+C

方法 4 - 使用 Http-server(NodeJS)

Http-server 是一个用 NodeJS 编写的简单的可用于生产环境的命令行 http 服务器。它不需要配置,可用于通过 Web 浏览器即时共享文件和目录。

按如下所述安装 NodeJS。

安装 NodeJS 后,运行以下命令安装 http-server。

$ npm install -g http-server

现在进入任何目录并通过 HTTP 共享其内容,如下所示。

$ cd ostechnix

$ http-server -p 8000
Starting up http-server, serving ./
Available on:
 http://127.0.0.1:8000
 http://192.168.225.24:8000
 http://192.168.225.20:8000
Hit CTRL-C to stop the server

现在你可以使用 URL 从任何远程系统访问此文件夹的内容 - http:// <ip-address>:8000

要停止共享,请按 CTRL+C

方法 5 - 使用 Miniserve(Rust)

Miniserve 是另一个命令行程序,它允许你通过 HTTP 快速访问文件。它是一个非常快速、易于使用的跨平台程序,它用 Rust 编程语言编写。与上面的程序/方法不同,它提供身份验证支持,因此你可以为共享设置用户名和密码。

按下面的链接在 Linux 系统中安装 Rust。

安装 Rust 后,运行以下命令安装 miniserve:

$ cargo install miniserve

或者,你可以在其发布页下载二进制文件并使其可执行。

$ chmod +x miniserve-linux

然后,你可以使用命令运行它(假设 miniserve 二进制文件下载到当前的工作目录中):

$ ./miniserve-linux <path-to-share>

用法

要提供目录访问:

$ miniserve <path-to-directory>

示例:

$ miniserve /home/sk/ostechnix/
miniserve v0.2.0
Serving path /home/sk/ostechnix at http://[::]:8080, http://localhost:8080
Quit by pressing CTRL-C

现在,你可以在本地系统使用 URL – http://localhost:8080 访问共享,或者在远程系统使用 URL – http://<ip-address>:8080 访问。

要提供单个文件访问:

$ miniserve <path-to-file>

示例:

$ miniserve ostechnix/file.txt

带用户名和密码提供文件/文件夹访问:

$ miniserve --auth joe:123 <path-to-share>

绑定到多个接口:

$ miniserve -i 192.168.225.1 -i 10.10.0.1 -i ::1 -- <path-to-share>

如你所见,我只给出了 5 种方法。但是,本指南末尾附带的链接中还提供了几种方法。也去测试一下它们。此外,收藏并时不时重新访问它来检查将来是否有新的方法。

今天就是这些。希望这篇文章有用。还有更多的好东西。敬请期待!

干杯!

资源


via: https://www.ostechnix.com/how-to-quickly-serve-files-and-folders-over-http-in-linux/

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

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

今天我们要讨论的是 Lutris,一个 Linux 上的开源游戏平台。你可以使用 Lutries 安装、移除、配置、启动和管理你的游戏。它可以在一个单一界面中帮你管理你的 Linux 游戏、Windows 游戏、仿真控制台游戏和浏览器游戏。它还包含社区编写的安装脚本,使得游戏的安装过程更加简单。

Lutries 自动安装(或者你可以单击点击安装)了超过 20 个模拟器,它提供了从七十年代到现在的大多数游戏系统。目前支持的游戏系统如下:

  • Linux 原生
  • Windows
  • Steam (Linux 和 Windows)
  • MS-DOS
  • 街机
  • Amiga 电脑
  • Atari 8 和 16 位计算机和控制器
  • 浏览器 (Flash 或者 HTML5 游戏)
  • Commmodore 8 位计算机
  • 基于 SCUMM 的游戏和其他点击式冒险游戏
  • Magnavox Odyssey²、Videopac+
  • Mattel Intellivision
  • NEC PC-Engine Turbographx 16、Supergraphx、PC-FX
  • Nintendo NES、SNES、Game Boy、Game Boy Advance、DS
  • Game Cube 和 Wii
  • Sega Master Sytem、Game Gear、Genesis、Dreamcast
  • SNK Neo Geo、Neo Geo Pocket
  • Sony PlayStation
  • Sony PlayStation 2
  • Sony PSP
  • 像 Zork 这样的 Z-Machine 游戏
  • 还有更多

安装 Lutris

就像 Steam 一样,Lutries 包含两部分:网站和客户端程序。从网站你可以浏览可用的游戏,添加最喜欢的游戏到个人库,以及使用安装链接安装他们。

首先,我们还是来安装客户端。它目前支持 Arch Linux、Debian、Fedroa、Gentoo、openSUSE 和 Ubuntu。

对于 Arch Linux 和它的衍生版本,像是 Antergos, Manjaro Linux,都可以在 AUR 中找到。因此,你可以使用 AUR 帮助程序安装它。

使用 Pacaur

pacaur -S lutris

使用 Packer

packer -S lutris

使用 Yaourt

yaourt -S lutris

使用 Yay

yay -S lutris

Debian:

Debian 9.0 上以 root 身份运行以下命令:

echo 'deb http://download.opensuse.org/repositories/home:/strycore/Debian_9.0/ /' > /etc/apt/sources.list.d/lutris.list
wget -nv https://download.opensuse.org/repositories/home:strycore/Debian_9.0/Release.key -O Release.key
apt-key add - < Release.key
apt-get update
apt-get install lutris

Debian 8.0 上以 root 身份运行以下命令:

echo 'deb http://download.opensuse.org/repositories/home:/strycore/Debian_8.0/ /' > /etc/apt/sources.list.d/lutris.list
wget -nv https://download.opensuse.org/repositories/home:strycore/Debian_8.0/Release.key -O Release.key
apt-key add - < Release.key
apt-get update
apt-get install lutris

Fedora 27 上以 root 身份运行以下命令:

dnf config-manager --add-repo https://download.opensuse.org/repositories/home:strycore/Fedora_27/home:strycore.repo
dnf install lutris

Fedora 26 上以 root 身份运行以下命令:

dnf config-manager --add-repo https://download.opensuse.org/repositories/home:strycore/Fedora_26/home:strycore.repo
dnf install lutris

openSUSE Tumbleweed 上以 root 身份运行以下命令:

zypper addrepo https://download.opensuse.org/repositories/home:strycore/openSUSE_Tumbleweed/home:strycore.repo
zypper refresh
zypper install lutris

openSUSE Leap 42.3 上以 root 身份运行以下命令:

zypper addrepo https://download.opensuse.org/repositories/home:strycore/openSUSE_Leap_42.3/home:strycore.repo
zypper refresh
zypper install lutris

Ubuntu 17.10

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/strycore/xUbuntu_17.10/ /' > /etc/apt/sources.list.d/lutris.list"
wget -nv https://download.opensuse.org/repositories/home:strycore/xUbuntu_17.10/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update
sudo apt-get install lutris

Ubuntu 17.04

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/strycore/xUbuntu_17.04/ /' > /etc/apt/sources.list.d/lutris.list"
wget -nv https://download.opensuse.org/repositories/home:strycore/xUbuntu_17.04/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update
sudo apt-get install lutris

Ubuntu 16.10

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/strycore/xUbuntu_16.10/ /' > /etc/apt/sources.list.d/lutris.list"
wget -nv https://download.opensuse.org/repositories/home:strycore/xUbuntu_16.10/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update
sudo apt-get install lutris

Ubuntu 16.04

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/strycore/xUbuntu_16.04/ /' > /etc/apt/sources.list.d/lutris.list"
wget -nv https://download.opensuse.org/repositories/home:strycore/xUbuntu_16.04/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update
sudo apt-get install lutris

对于其他平台,参考 Lutris 下载链接

使用 Lutris 管理你的游戏

安装完成后,从菜单或者应用启动器里打开 Lutries。首次启动时,Lutries 的默认界面像下面这样:

登录你的 Lutris.net 账号

为了能同步你个人库中的游戏,下一步你需要在客户端中登录你的 Lutris.net 账号。如果你没有,先 注册一个新的账号。然后点击 “Connecting to your Lutirs.net account to sync your library” 连接到 Lutries 客户端。

输入你的账号信息然后点击 “Connect”。

现在你已经连接到你的 Lutries.net 账号了。

浏览游戏

点击工具栏里的浏览图标(游戏控制器图标)可以搜索任何游戏。它会自动定向到 Lutries 网站的游戏页。你可以以字母顺序查看所有可用的游戏。Lutries 现在已经有了很多游戏,而且还有更多的不断添加进来。

任选一个游戏,添加到你的库中。

然后返回到你的 Lutries 客户端,点击 “Menu -> Lutris -> Synchronize library”。现在你可以在本地的 Lutries 客户端中看到所有在库中的游戏了。

如果你没有看到游戏,只需要重启一次。

安装游戏

安装游戏,只需要点击游戏,然后点击 “Install” 按钮。例如,我想在我的系统安装 2048,就像你在底下的截图中看到的,它要求我选择一个版本去安装。因为它只有一个版本(例如,在线),它就会自动选择这个版本。点击 “Continue”。

点击“Install”:

安装完成之后,你可以启动新安装的游戏或是关闭这个窗口,继续从你的库中安装其他游戏。

导入 Steam 库

你也可以导入你的 Steam 库。在你的头像处点击 “Sign in through Steam” 按钮。接下来你将被重定向到 Steam,输入你的账号信息。填写正确后,你的 Steam 账号将被连接到 Lutries 账号。请注意,为了同步库中的游戏,这里你的 Steam 账号将被公开。你可以在同步完成之后将其重新设为私密状态。

手动添加游戏

Lutries 有手动添加游戏的选项。在工具栏中点击 “+” 号登录。

在下一个窗口,输入游戏名,在游戏信息栏选择一个运行器。运行器是指 Linux 上类似 wine、Steam 之类的程序,它们可以帮助你启动这个游戏。你可以从 “Menu -> Manage” 中安装运行器。

然后在下一栏中选择可执行文件或者 ISO。最后点击保存。有一个好消息是,你可以添加一个游戏的多个版本。

移除游戏

移除任何已安装的游戏,只需在 Lutries 客户端的本地库中点击对应的游戏。选择 “Remove” 然后 “Apply”。

Lutries 就像 Steam。只是从网站向你的库中添加游戏,并在客户端中为你安装它们。

各位,这就是今天所有的内容了。我们将会在今年发表更多好的和有用的文章。敬请关注!

干杯!

:)


via: https://www.ostechnix.com/manage-games-using-lutris-linux/

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

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

如果你正在使用最新的 Ubuntu 服务器版本,你可能已经注意到欢迎消息中有一些与 Ubuntu 服务器平台无关的促销链接。你可能已经知道 MOTD,即 Message Of The Day 的开头首字母,在 Linux 系统每次登录时都会显示欢迎信息。通常,欢迎消息包含操作系统版本,基本系统信息,官方文档链接以及有关最新安全更新等的链接。这些是我们每次通过 SSH 或本地登录时通常会看到的内容。但是,最近在终端欢迎消息中出现了一些其他链接。我已经几次注意到这些链接,但我并在意,也从未点击过。题图是我的 Ubuntu 18.04 LTS 服务器上显示的终端欢迎消息。

正如你在上面截图中所看到的,欢迎消息中有一个 bit.ly 链接和 Ubuntu wiki 链接。有些人可能会惊讶并想知道这是什么。其实欢迎信息中的链接无需担心。它可能看起来像广告,但并不是商业广告。链接实际上指向到了 Ubuntu 官方博客Ubuntu wiki。正如我之前所说,其中的一个链接是不相关的,没有任何与 Ubuntu 服务器相关的细节,这就是为什么我开头称它们为广告。

虽然我们大多数人都不会访问 bit.ly 链接,但是有些人可能出于好奇去访问这些链接,结果失望地发现它只是指向一个外部链接。你可以使用任何 URL 去短网址服务,例如 unshorten.it,在访问真正链接之前,查看它会指向哪里。或者,你只需在 bit.ly 链接的末尾输入加号(+)即可查看它们的实际位置以及有关链接的一些统计信息。

什么是 MOTD 以及它是如何工作的?

2009 年,来自 Canonical 的 Dustin Kirkland 在 Ubuntu 中引入了 MOTD 的概念。它是一个灵活的框架,使管理员或发行包能够在 /etc/update-motd.d/ 位置添加可执行脚本,目的是生成在登录时显示有益的、有趣的消息。它最初是为 Landscape(Canonical 的商业服务)实现的,但是其它发行版维护者发现它很有用,并且在他们自己的发行版中也采用了这个特性。

如果你在 Ubuntu 系统中查看 /etc/update-motd.d/,你会看到一组脚本。一个是打印通用的 “欢迎” 横幅。下一个打印 3 个链接,显示在哪里可以找到操作系统的帮助。另一个计算并显示本地系统包可以更新的数量。另一个脚本告诉你是否需要重新启动等等。

从 Ubuntu 17.04 起,开发人员添加了 /etc/update-motd.d/50-motd-news,这是一个脚本用来在欢迎消息中包含一些附加信息。这些附加信息是:

  1. 重要的关键信息,例如 ShellShock、Heartbleed 等
  2. 生命周期(EOL)消息,新功能可用性等
  3. 在 Ubuntu 官方博客和其他有关 Ubuntu 的新闻中发布的一些有趣且有益的帖子

另一个特点是异步,启动后约 60 秒,systemd 计时器运行 /etc/update-motd.d/50-motd-news –force 脚本。它提供了 /etc/default/motd-news 脚本中定义的 3 个配置变量。默认值为:ENABLED=1, URLS="https://motd.ubuntu.com", WAIT="5"

以下是 /etc/default/motd-news 文件的内容:

$ cat /etc/default/motd-news
# Enable/disable the dynamic MOTD news service
# This is a useful way to provide dynamic, informative
# information pertinent to the users and administrators
# of the local system
ENABLED=1

# Configure the source of dynamic MOTD news
# White space separated list of 0 to many news services
# For security reasons, these must be https
# and have a valid certificate
# Canonical runs a service at motd.ubuntu.com, and you
# can easily run one too
URLS="https://motd.ubuntu.com"

# Specify the time in seconds, you're willing to wait for
# dynamic MOTD news
# Note that news messages are fetched in the background by
# a systemd timer, so this should never block boot or login
WAIT=5

好事情是 MOTD 是完全可定制的,所以你可以彻底禁用它(ENABLED=0)、根据你的意愿更改或添加脚本、以秒为单位更改等待时间等等。

如果启用了 MOTD,那么 systemd 计时器作业将循环遍历每个 URL,将它们的内容缩减到每行 80 个字符、最多 10 行,并将它们连接到 /var/cache/motd-news 中的缓存文件。此 systemd 计时器作业将每隔 12 小时运行并更新 /var/cache/motd-news。用户登录后,/var/cache/motd-news 的内容会打印到屏幕上。这就是 MOTD 的工作原理。

此外,/etc/update-motd.d/50-motd-news 文件中包含自定义的用户代理字符串,以报告有关计算机的信息。如果你查看 /etc/update-motd.d/50-motd-news 文件,你会看到:

# Piece together the user agent
USER_AGENT="curl/$curl_ver $lsb $platform $cpu $uptime"

这意味着,MOTD 检索器将向 Canonical 报告你的操作系统版本、硬件平台、CPU 类型和正常运行时间。

到这里,希望你对 MOTD 有了一个基本的了解。

现在让我们回到主题,我不想要这个功能。我该如何禁用它?如果欢迎消息中的促销链接仍然困扰你,并且你想永久禁用它们,则可以通过以下方法快速禁用它。

在 Ubuntu 服务器中禁用终端欢迎消息中的广告

要禁用这些广告,编辑文件:

$ sudo vi /etc/default/motd-news

找到以下行并将其值设置为 0(零)。

[...]
ENABLED=0
[...]

保存并关闭文件。现在,重新启动系统,看看欢迎消息是否仍然显示来自 Ubuntu 博客的链接。

看到没?现在没有来自 Ubuntu 博客和 Ubuntu wiki 的链接。

这就是全部内容了。希望这对你有所帮助。更多好东西要来了,敬请关注!

顺祝时祺!


via: https://www.ostechnix.com/how-to-disable-ads-in-terminal-welcome-message-in-ubuntu-server/

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

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

如你所知,Linux 支持非常多的文件系统,例如 ext4、ext3、ext2、sysfs、securityfs、FAT16、FAT32、NTFS 等等,当前被使用最多的文件系统是 ext4。你曾经疑惑过你的 Linux 系统使用的是什么类型的文件系统吗?没有疑惑过?不用担心!我们将帮助你。本指南将解释如何在类 Unix 的操作系统中查看已挂载的文件系统类型。

在 Linux 中查看已挂载的文件系统类型

有很多种方法可以在 Linux 中查看已挂载的文件系统类型,下面我将给出 8 种不同的方法。那现在就让我们开始吧!

方法 1 – 使用 findmnt 命令

这是查出文件系统类型最常使用的方法。findmnt 命令将列出所有已挂载的文件系统或者搜索出某个文件系统。findmnt 命令能够在 /etc/fstab/etc/mtab/proc/self/mountinfo 这几个文件中进行搜索。

findmnt 预装在大多数的 Linux 发行版中,因为它是 util-linux 包的一部分。如果 findmnt 命令不可用,你可以安装这个软件包。例如,你可以使用下面的命令在基于 Debian 的系统中安装 util-linux 包:

$ sudo apt install util-linux

下面让我们继续看看如何使用 findmnt 来找出已挂载的文件系统。

假如你只敲 findmnt 命令而不带任何的参数或选项,它将像下面展示的那样以树状图形式列举出所有已挂载的文件系统。

$ findmnt

示例输出:

正如你看到的那样,findmnt 展示出了目标挂载点(TARGET)、源设备(SOURCE)、文件系统类型(FSTYPE)以及相关的挂载选项(OPTIONS),例如文件系统是否是可读可写或者只读的。以我的系统为例,我的根(/)文件系统的类型是 EXT4 。

假如你不想以树状图的形式来展示输出,可以使用 -l 选项来以简单平凡的形式来展示输出:

$ findmnt -l

你还可以使用 -t 选项来列举出特定类型的文件系统,例如下面展示的 ext4 文件系统类型:

$ findmnt -t ext4
TARGET  SOURCE    FSTYPE OPTIONS
/       /dev/sda2 ext4   rw,relatime,commit=360
└─/boot /dev/sda1 ext4   rw,relatime,commit=360,data=ordered

findmnt 还可以生成 df 类型的输出,使用命令

$ findmnt --df

$ findmnt -D

示例输出:

SOURCE     FSTYPE            SIZE    USED   AVAIL   USE% TARGET
dev        devtmpfs          3.9G       0    3.9G     0% /dev
run        tmpfs             3.9G    1.1M    3.9G     0% /run
/dev/sda2  ext4            456.3G  342.5G   90.6G    75% /
tmpfs      tmpfs             3.9G   32.2M    3.8G     1% /dev/shm
tmpfs      tmpfs             3.9G       0    3.9G     0% /sys/fs/cgroup
bpf        bpf                  0       0       0      - /sys/fs/bpf
tmpfs      tmpfs             3.9G    8.4M    3.9G     0% /tmp
/dev/loop0 squashfs         82.1M   82.1M       0   100% /var/lib/snapd/snap/core/4327
/dev/sda1  ext4             92.8M   55.7M   30.1M    60% /boot
tmpfs      tmpfs           788.8M     32K  788.8M     0% /run/user/1000
gvfsd-fuse fuse.gvfsd-fuse      0       0       0      - /run/user/1000/gvfs

你还可以展示某个特定设备或者挂载点的文件系统类型。

查看某个特定的设备:

$ findmnt /dev/sda1
TARGET SOURCE    FSTYPE OPTIONS
/boot  /dev/sda1 ext4   rw,relatime,commit=360,data=ordered

查看某个特定的挂载点:

$ findmnt /
TARGET SOURCE    FSTYPE OPTIONS
/      /dev/sda2 ext4   rw,relatime,commit=360

你甚至还可以查看某个特定标签的文件系统的类型:

$ findmnt LABEL=Storage

更多详情,请参考其 man 手册。

$ man findmnt

findmnt 命令已足够完成在 Linux 中查看已挂载文件系统类型的任务,这个命令就是为了这个特定任务而生的。然而,还存在其他方法来查看文件系统的类型,假如你感兴趣的话,请接着往下看。

方法 2 – 使用 blkid 命令

blkid 命令被用来查找和打印块设备的属性。它也是 util-linux 包的一部分,所以你不必再安装它。

为了使用 blkid 命令来查看某个文件系统的类型,可以运行:

$ blkid /dev/sda1

方法 3 – 使用 df 命令

在类 Unix 的操作系统中,df 命令被用来报告文件系统的磁盘空间使用情况。为了查看所有已挂载文件系统的类型,只需要运行:

$ df -T

示例输出:

关于 df 命令的更多细节,可以参考下面的指南。

同样也可以参考其 man 手册:

$ man df

方法 4 – 使用 file 命令

file 命令可以判读出某个特定文件的类型,即便该文件没有文件后缀名也同样适用。

运行下面的命令来找出某个特定分区的文件系统类型:

$ sudo file -sL /dev/sda1
[sudo] password for sk:
/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=83a1dbbf-1e15-4b45-94fe-134d3872af96 (needs journal recovery) (extents) (large files) (huge files)

查看其 man 手册可以知晓更多细节:

$ man file

方法 5 – 使用 fsck 命令

fsck 命令被用来检查某个文件系统是否健全或者修复它。你可以像下面那样通过将分区名字作为 fsck 的参数来查看该分区的文件系统类型:

$ fsck -N /dev/sda1
fsck from util-linux 2.32
[/usr/bin/fsck.ext4 (1) -- /boot] fsck.ext4 /dev/sda1

如果想知道更多的内容,请查看其 man 手册:

$ man fsck

方法 6 – 使用 fstab 命令

fstab 是一个包含文件系统静态信息的文件。这个文件通常包含了挂载点、文件系统类型和挂载选项等信息。

要查看某个文件系统的类型,只需要运行:

$ cat /etc/fstab

更多详情,请查看其 man 手册:

$ man fstab

方法 7 – 使用 lsblk 命令

lsblk 命令可以展示设备的信息。

要展示已挂载文件系统的信息,只需运行:

$ lsblk -f
NAME   FSTYPE   LABEL  UUID                                 MOUNTPOINT
loop0  squashfs                                             /var/lib/snapd/snap/core/4327
sda
├─sda1 ext4            83a1dbbf-1e15-4b45-94fe-134d3872af96 /boot
├─sda2 ext4            4d25ddb0-5b20-40b4-ae35-ef96376d6594 /
└─sda3 swap            1f8f5e2e-7c17-4f35-97e6-8bce7a4849cb [SWAP]
sr0

更多细节,可以参考它的 man 手册:

$ man lsblk

方法 8 – 使用 mount 命令

mount 被用来在类 Unix 系统中挂载本地或远程的文件系统。

要使用 mount 命令查看文件系统的类型,可以像下面这样做:

$ mount | grep "^/dev"
/dev/sda2 on / type ext4 (rw,relatime,commit=360)
/dev/sda1 on /boot type ext4 (rw,relatime,commit=360,data=ordered)

更多详情,请参考其 man 手册的内容:

$ man mount

好了,上面便是今天的全部内容了。现在你知道了 8 种不同的 Linux 命令来查看已挂载的 Linux 文件系统的类型。假如你知道其他的命令来完成同样的任务,请在下面的评论部分让我们知晓,我将确认并相应地升级本教程。

更过精彩内容即将呈现,请保持关注!


via: https://www.ostechnix.com/how-to-find-the-mounted-filesystem-type-in-linux/

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

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

或许你已经了解到 Docker 容器镜像是一个轻量、独立、含有运行某个应用所需全部软件的可执行包,这也是为什么容器镜像会经常被开发者用于构建和分发应用。假如你很好奇一个 Docker 镜像里面包含了什么东西,那么这篇简要的指南或许会帮助到你。今天,我们将学会使用一个名为 Dive 的工具来分析和探索 Docker 镜像每层的内容。

通过分析 Docker 镜像,我们可以发现在各个层之间可能重复的文件并通过移除它们来减小 Docker 镜像的大小。Dive 工具不仅仅是一个 Docker 镜像分析工具,它还可以帮助我们来构建镜像。Dive 是一个用 Go 编程语言编写的自由开源工具。

安装 Dive

首先从该项目的 发布页 下载最新版本,然后像下面展示的那样根据你所使用的发行版来安装它。

假如你正在使用 Debian 或者 Ubuntu,那么可以运行下面的命令来下载并安装它。

$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.deb
$ sudo apt install ./dive_0.0.8_linux_amd64.deb

在 RHEL 或 CentOS 系统中

$ wget https://github.com/wagoodman/dive/releases/download/v0.0.8/dive_0.0.8_linux_amd64.rpm
$ sudo rpm -i dive_0.0.8_linux_amd64.rpm

Dive 也可以使用 Linuxbrew 包管理器来安装。

$ brew tap wagoodman/dive
$ brew install dive

至于其他的安装方法,请参考 Dive 项目的 GitHub 网页

分析并探索 Docker 镜像的内容

要分析一个 Docker 镜像,只需要运行加上 Docker 镜像 ID 的 dive 命令就可以了。你可以使用 sudo docker images 来得到 Docker 镜像的 ID。

$ sudo dive ea4c82dcd15a

上面命令中的 ea4c82dcd15a 是某个镜像的 ID。

然后 dive 命令将快速地分析给定 Docker 镜像的内容并将它在终端中展示出来。

正如你在上面的截图中看到的那样,在终端的左边一栏列出了给定 Docker 镜像的各个层及其详细内容,浪费的空间大小等信息。右边一栏则给出了给定 Docker 镜像每一层的内容。你可以使用 Ctrl+空格 来在左右栏之间切换,使用 UP/DOWN 光标键来在目录树中进行浏览。

下面是 dive 的快捷键列表:

  • Ctrl+空格 —— 在左右栏之间切换
  • 空格 —— 展开或收起目录树
  • Ctrl+A —— 文件树视图:展示或隐藏增加的文件
  • Ctrl+R —— 文件树视图:展示或隐藏被移除的文件
  • Ctrl+M —— 文件树视图:展示或隐藏被修改的文件
  • Ctrl+U —— 文件树视图:展示或隐藏未修改的文件
  • Ctrl+L —— 层视图:展示当前层的变化
  • Ctrl+A —— 层视图:展示总的变化
  • Ctrl+/ —— 筛选文件
  • Ctrl+C —— 退出

在上面的例子中,我使用了 sudo 权限,这是因为我的 Docker 镜像存储在 /var/lib/docker/ 目录中。假如你的镜像保存在你的家目录 ($HOME)或者在其他不属于 root 用户的目录,你就没有必要使用 sudo 命令。

你还可以使用下面的单个命令来构建一个 Docker 镜像并立刻分析该镜像:

$ dive build -t <some-tag>

Dive 工具仍处于 beta 阶段,所以可能会存在 bug。假如你遇到了 bug,请在该项目的 GitHub 主页上进行报告。

好了,这就是今天的全部内容。现在你知道如何使用 Dive 工具来探索和分析 Docker 容器镜像的内容以及利用它构建镜像。希望本文对你有所帮助。

更多精彩内容即将呈现,请保持关注!

干杯!


via: https://www.ostechnix.com/how-to-analyze-and-explore-the-contents-of-docker-images/

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

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

作为一名文字工作者,我需要在我的文章中添加图片。有时为了更容易讲清楚某个概念,我还会添加视频或者 gif 动图,相比于文字,通过视频或者 gif 格式的输出,读者可以更容易地理解我的指导。前些天,我已经写了篇文章来介绍针对 Linux 的功能丰富的强大截屏工具 Flameshot。今天,我将向你展示如何从一段视频或者一些图片来制作高质量的 gif 动图。这个工具就是 Gifski,一个跨平台、开源、基于 Pngquant 的高质量命令行 GIF 编码器。

对于那些好奇 pngquant 是什么的读者,简单来说 pngquant 是一个针对 PNG 图片的无损压缩命令行工具。相信我,pngquant 是我使用过的最好的 PNG 无损压缩工具。它可以将 PNG 图片最高压缩 70% 而不会损失图片的原有质量并保存了所有的阿尔法透明度。经过压缩的图片可以在所有的网络浏览器和系统中使用。而 Gifski 是基于 Pngquant 的,它使用 pngquant 的功能来创建高质量的 GIF 动图。Gifski 能够创建每帧包含上千种颜色的 GIF 动图。Gifski 也需要 ffmpeg 来将视频转换为 PNG 图片。

安装 Gifski

首先需要确保你安装了 FFMpeg 和 Pngquant。

FFmpeg 在大多数的 Linux 发行版的默认软件仓库中都可以获取到,所以你可以使用默认的包管理器来安装它。具体的安装过程,请参考下面链接中的指导。

Pngquant 可以从 AUR 中获取到。要在基于 Arch 的系统安装它,使用任意一个 AUR 帮助程序即可,例如下面示例中的 Yay

$ yay -S pngquant

在基于 Debian 的系统中,运行:

$ sudo apt install pngquant

假如在你使用的发行版中没有 pngquant,你可以从源码编译并安装它。为此你还需要安装 libpng-dev 包。

$ git clone --recursive https://github.com/kornelski/pngquant.git
$ make
$ sudo make install

安装完上述依赖后,再安装 Gifski。假如你已经安装了 Rust 编程语言,你可以使用 cargo 来安装它:

$ cargo install gifski

另外,你还可以使用 Linuxbrew 包管理器来安装它:

$ brew install gifski

假如你不想安装 cargo 或 Linuxbrew,可以从它的 发布页面 下载最新的二进制程序,或者手动从源码编译并安装 gifski 。

使用 Gifski 来创建高质量的 GIF 动图

进入你保存 PNG 图片的目录,然后运行下面的命令来从这些图片创建 GIF 动图:

$ gifski -o file.gif *.png

上面的 file.gif 为最后输出的 gif 动图。

Gifski 还有其他的特性,例如:

  • 创建特定大小的 GIF 动图
  • 在每秒钟展示特定数目的动图
  • 以特定的质量编码
  • 更快速度的编码
  • 以给定顺序来编码图片,而不是以排序的结果来编码

为了创建特定大小的 GIF 动图,例如宽为 800,高为 400,可以使用下面的命令:

$ gifski -o file.gif -W 800 -H 400 *.png

你可以设定 GIF 动图在每秒钟展示多少帧,默认值是 20。为此,可以运行下面的命令:

$ gifski -o file.gif --fps 1 *.png

在上面的例子中,我指定每秒钟展示 1 帧。

我们还能够以特定质量(1-100 范围内)来编码。显然,更低的质量将生成更小的文件,更高的质量将生成更大的 GIF 动图文件。

$ gifski -o file.gif --quality 50 *.png

当需要编码大量图片时,Gifski 将会花费更多时间。如果想要编码过程加快到通常速度的 3 倍左右,可以运行:

$ gifski -o file.gif --fast *.png

请注意上面的命令产生的 GIF 动图文件将减少 10% 的质量,并且文件大小也会更大。

如果想让图片以某个给定的顺序(而不是通过排序)精确地被编码,可以使用 --nosort 选项。

$ gifski -o file.gif --nosort *.png

假如你不想让 GIF 循环播放,只需要使用 --once 选项即可:

$ gifski -o file.gif --once *.png

从视频创建 GIF 动图

有时或许你想从一个视频创建 GIF 动图。这也是可以做到的,这时候 FFmpeg 便能提供帮助。首先像下面这样,将视频转换成一系列的 PNG 图片:

$ ffmpeg -i video.mp4 frame%04d.png

上面的命令将会从 video.mp4 这个视频文件创建名为 “frame0001.png”、“frame0002.png”、“frame0003.png” 等等形式的图片(其中的 %04d 代表帧数),然后将这些图片保存在当前的工作目录。

转换好图片后,只需要运行下面的命令便可以制作 GIF 动图了:

$ gifski -o file.gif *.png

想知晓更多的细节,请参考它的帮助部分:

$ gifski -h

这是使用 Gifski 创建的示例 GIF 动图文件。

正如你看到的那样,GIF 动图的质量看起来是非常好的。

好了,这就是全部内容了。希望这篇指南对你有所帮助。更多精彩内容即将呈现,请保持关注!

干杯吧!


via: https://www.ostechnix.com/gifski-a-cross-platform-high-quality-gif-encoder/

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

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