分类 技术 下的文章

GNOME 的桌面环境中隐藏着丰富的搜索特性,爱探索的你不妨尝试寻找。挖掘新知,将是一场乐趣无穷的旅程。

在我之前的 一篇文章 中,分享过在 Nautilus 文件管理器中如何掌握搜索的技巧。

在这次的教程中,我将介绍 GNOME 活动区域中一些被忽视的搜索功能。

如果 “ GNOME 活动 GNOME Activities ” 这个术语你并不熟悉,你可以在 GNOME 桌面环境的左上角找到并点击 “ 活动 Activities ” 按钮,进入相应界面。

点击活动以访问

你也可以通过按下 Super 键(即:Windows 键)来快速访问。

GNOME 搜索界面

尽管 GNOME 内置了强大的搜索功能,但大部分人却仅仅用它来搜索和运行应用。

大部分人用 GNOME 活动来搜索和运行应用

而实则,它还有更多的功能等待你去探索,这些可能在你使用过程中派上大用场,同时让你带上专业用户的范儿。

就让我们逐个介绍这些隐藏功能吧。

1、全局文件搜索

这个功能和打开应用非常类似。当你在搜索区域开始输入,你会发现搜索结果在不断的变化。如果有文件与你的搜索关键词匹配上,你可以点击文件名,也可以按回车,以默认的应用打开它。

文件搜索

在同一界面中,你可以看到每个文件都有一个小型的预览。并且,列表中的每个文件都会标注其完整路径。

如果你细看,你会发现这里有一个文件管理器的图标,点击它。

文件管理器图标

点击后,会打开 Nautilus 文件管理器,并进入搜索模式,你可以看到所有匹配到的文件。

Nautilus 文件管理器的搜索模式

同样的,如果你点击了搜索结果中的某个应用图标,将打开这个应用,并同时展示相应的搜索结果。

? 如果你已经安装了 GNOME Sushi,你甚至可以在开始使用这些文件前,使用全屏模式预览它们。

2、复制表情符和特殊字符

GNOME 提供了一个名为 gnome-characters 的应用,它包含了许多表情符以及相关字符。如果你还未安装这个应用,可以使用以下命令进行安装:

sudo apt install gnome-characters

安装完成后,这个应用将配置自己的搜索提供器。这意味着你能够搜索任何字符的名称,并且在输入过程中,系统会为你提供各种搜索建议。

搜索概览中的字符

一旦你找到了想要的字符,按回车键,就可以将其复制到剪贴板。然后使用 CTRL+V 进行粘贴。

字符已复制

3、不必打开计算器便能进行计算

你完全可以利用 GNOME shell 的搜索功能当作一个快捷的计算器。对于一些简单的数学运算,并无必要额外打开计算器应用。

相反,你可以直接在 GNOME 活动区域内完成计算。

获取计算结果

此外,你还可以将计算结果复制到剪贴板。

4、轻松获取全球时间

想要知道另一个城市现在的具体时间吗?不必使用其他小工具或程序,仅仅输入城市名称,GNOME shell 就能告诉你该地的时间。

GNOME Shell 搜索中的世界时钟

5、方便地在运行中的终端窗口之间切换

假设你同时运行了多个终端窗口,或者在同一终端窗口中打开多个标签,各自运行了不同的活动命令,例如 top,或者用 batless 在读取某个文件等,

你可以通过在 GNOME shell 搜索中输入命令名称,快速定位到正在运行该命令的终端窗口。

获取运行中的终端窗口

你会发现,我在其中一个终端中运行了 top 可以直接跳转到此终端窗口。若这是在不同的标签中,它也能帮你切换到运行着这个特定命令的标签页。

6、执行网络搜索

你可以通过 GNOME Shell 直达 Firefox 的网页搜索。为能实现这个功能,你需要先在后台打开 Firefox。

设置中的 Firefox 角色——搜索提供器

启动 Firefox 后,你可以在活动概览中搜索并找到网页结果。除此之外,你还可以在系统设置中,根据你的喜好对 Firefox 的显示顺序进行调整。

Firefox 搜索结果

? 遗憾的是,在我使用的 Fedora 38 系统中,虽然 Firefox 是搜索提供器,但我无法从中获得任何搜索结果。但在 Manjaro 上,一切运行正常。

如果你使用的是其他的发行版,你可以在 GNOME shell 搜索中,通过 Epiphany 或 GNOME Web 浏览器来访问网络搜索结果。首先,你可以使用你的包管理器来安装 Epiphany:

sudo apt install epiphany

或者,你也可以从 Flathub 安装:

flatpak install flathub org.gnome.Epiphany

安装完成后,打开设置,找到搜索功能。这时,你会看到 GNOME Web 已经出现在列表中了。

搜索设置中的 GNOME Web

如果它未被激活,只需开启这个开关。即使 GNOME Web 并没有被打开,它仍能正常工作。

使用 GNOME Web 搜索得到的网络结果

? 如果一个新安装的应用程序提供了某种搜索功能,它将会出现在搜索标签页中。

7、管理搜索结果的显示顺序

你可以使用系统设置对显示的搜索结果进行重新排序,禁用某些结果等操作。

在系统设置应用中访问搜索设置

打开系统设置,然后进入搜索选项卡。

设置中的搜索选项卡

重新排序搜索结果显示的顺序

打开搜索设置后,你可以看到列出了所有可用的搜索提供器。每一个项目的左侧有一个把手,右侧有三个点的菜单。

用于排列项目的按钮和把手

你可以直接拖拽左侧的把手来调整项目顺序,将其放到你希望的位置。

拖拽调整项目显示的顺序

或者,你也可以点击右侧三点菜单,然后选择“ 向上移动 Move Up ”或“ 向下移动 Move Down ”。

使用按钮上下移动

调整后的设置将会作为 GNOME shell 搜索结果新的显示顺序。

管理各个文件的搜索位置

通过搜索选项卡里的“ 搜索位置 Search Locations ”选项,你可以调整系统应用,如文件、照片、视频等的搜索位置。

现在,你可以开启或者关闭已有的搜索位置。或者点击添加按钮,添加新的位置。

添加或移除位置

从搜索中启用或禁用搜索提供器

如果你并未使用某些搜索提供器,你可以通过禁用未使用的搜索提供器在搜索界面释放一些空间。具体操作是,使用每个项目右侧的切换按钮关闭指定提供器。

启用 - 禁用开关

如果需要,你可以随时重新开启它们,只需切换相同的按钮至开启状态。

整体禁用搜索

你可以通过关闭 应用搜索 按钮来彻底禁用 GNOME Shell 中的应用内搜索。

在概览中禁用搜索

在这种情况下,只有应用程序可以进行搜索,搜索结果会被隐藏。

应用内搜索被禁用状态

额外技巧:扩展插件增强搜索效能

有一些 GNOME 扩展件可以使你的搜索更便捷、有效。

快速网络搜索

这是一个名为 “Quick Web Search” 的扩展,它会为 DuckDuckGo 提供一个搜索选项。每当我们在 GNOME shell 搜索中输入一些词汇时,DuckDuckGo 的图标就会出现。单击它,将在你的首选浏览器中打开搜索结果。

Shell 中的 DuckDuckGo 搜索

即使所有的浏览器实例都已关闭,这个功能也可以正常工作。此外,你可以通过扩展设置将搜索提供器更改为谷歌或其他选项。

获取 Quick Web Search 扩展

GNOME 模糊应用搜寻

此扩展为 GNOME 搜索提供了模糊应用搜寻结果。因此,即便你输错或拼错了某些名字,它都会尽力为你找到匹配的结果。

使用模糊搜索的 GNOME 搜索

获取 GNOME 模糊应用搜索

充分利用 GNOME

如你所见,你可能从未充分地利用过所有的 GNOME 搜索特性,或者可能未曾对其给予足够的关注。

? 期望你能喜欢这些技巧。欢迎在评论区留下你的建议。

(题图:MJ/81a823e0-ed00-4988-a0a8-47c88e4ed188)


via: https://itsfoss.com/gnome-search/

作者:Sreenath 选题:lujun9972 译者:ChatGPT 校对:wxy

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

我遇到 “找不到 man 命令” 错误的小插曲,以及我是如何解决的。

多年后,我再次尝试 Arch Linux。我忘记了 pacman 命令的用法,所以我尝试访问它的手册页。

接下来发生的事情让我震惊(是的!我一直在阅读 BuzzFeed ?)。它向我展示了这个错误:

bash: man: command not found

当然,这不仅是 pacman,所有命令都是这样。

这让我感到困惑,因为我以前从未遇到过无法使用 man 命令的情况。

如果你发现自己处于找不到 man 命令的类似情况,我向你保证,修复很简单:

  • 安装 man-db 包(安装手册页)
  • 更新 mandb 缓存(用于索引所有命令的手册页)

让我们更详细地看看。

在 Linux 中安装手册页

我从未想过我必须明确安装手册页。但是 Arch Linux 将你带入未知领域。这在某种程度上是件好事,因为你会发现以前从未遇到过的事情。

这里的关键是安装手册页的包名为 man-db。这对我来说也是一个发现。

你可以使用发行版的包管理器来安装它。

对于 Arch 和 Manjaro,使用:

sudo pacman -S man-db

对于 Ubuntu 和 Debian,请使用:

sudo apt install man-db

对于 Fedora,请使用:

sudo dnf install man-db

对于 Red Hat Linux,请使用:

sudo yum install man-db

你明白了要点。为手册页构建缓存也是明智的一步。

构建手册页缓存

要刷新或构建手册页缓存,请运行 mandb 命令

sudo mandb

它将在不同位置查找手册页并构建缓存,以便你可以快速访问手册页。

完成后,我就可以像往常一样使用 man 命令。

结论

这确实让我感到震惊,因为我一直认为手册页是 Linux 的核心部分。从未想过我必须安装它们。

我应该将其添加到 安装 Arch Linux 后要做的事情列表 吗?我还没有把握。

也许我是在 Arch 中遇到这个缺少 man 命令问题的极少数用户之一。也许不是。如果你遇到过这样的“意外错误”,请在评论中告诉我。

(题图:MJ/a582366a-ee9d-4583-9025-eed6a4e96108)


via: https://itsfoss.com/man-command-not-found/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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

在 2018 年的一篇 早前的文章 中,我们介绍了在升级 Fedora Linux 前如何利用 LVM 复制根文件系统,以便在可能出现错误的情况下能有一个回退机制。然而如今,Fedora 工作站的默认安装已经是 Btrfs 文件系统了。现在,你可以利用 Btrfs 快照来更简便地创建一个可引导的回退系统。注意,本文不涉及会如何从其它文件系统转换或迁移到 Btrfs 上。

确认根文件系统是否为 Btrfs

本示例采用的是 Pinebook aarch64 笔记本电脑。在开始前,务必确认你的根文件系统是否采用 Btrfs。要明确,不是所有的定制版或者镜像文件默认都使用 Btrfs。

$ df -T
Filesystem     Type     1K-blocks     Used Available Use% Mounted on
devtmpfs       devtmpfs      4096        0      4096   0% /dev
tmpfs          tmpfs       998992        0    998992   0% /dev/shm
tmpfs          tmpfs       399600     6360    393240   2% /run
/dev/mmcblk2p3 btrfs     56929280 39796116  15058348  73% /
tmpfs          tmpfs       998996       24    998972   1% /tmp
tmpfs          tmpfs      5242880        0   5242880   0% /var/lib/mock
/dev/mmcblk2p3 btrfs     56929280 39796116  15058348  73% /f34
/dev/mmcblk2p3 btrfs     56929280 39796116  15058348  73% /home
/dev/mmcblk2p2 ext4        996780   551888    376080  60% /boot
/dev/mmcblk2p1 vfat        194348    31648    162700  17% /boot/efi
tmpfs          tmpfs       199796      100    199696   1% /run/user/1000
tmpfs          tmpfs       199796       84    199712   1% /run/user/0

列出当前的 Btrfs 子卷

以上的示例输出显示挂载在 “根”(/)的文件系统类型是 Btrfs。你会注意到,有三个挂载点显示了相同的备份设备以及 已用可用 的块数。这是因为它们是从同一 Btrfs 文件系统挂载的不同部分(子卷)。比如,/f34 子卷是我去年创建的那个可引导快照。

默认的 Fedora Btrfs 安装会创建一个 Btrfs 文件系统,并在其上分别挂载两个子卷,roothome ,挂载路径分别为 //home。让我们一起来看看我还添加了哪些其它的子卷:

$ sudo btrfs subvol list /
ID 272 gen 110428 top level 5 path root
ID 273 gen 110426 top level 5 path home
ID 300 gen 109923 top level 5 path f34
ID 301 gen 95852 top level 5 path home.22Jul26
ID 302 gen 95854 top level 5 path f36.22Jul26

在这里,我们有一个来自最近一次系统升级的 f34 子卷,以及两个只读快照 homef36。要添加和删除这些快照,最简单的方法就是挂载 Btrfs 的根目录。我会更新系统并创建当前 f36 root 子卷的新快照。如果你已经重命名了你的 root 子卷,我相信你知道该如何调整以下的示例以适应你的系统。

创建 Btrfs 的回退快照

$ sudo dnf update --refresh
...更新了很多部分(如果升级了内核还需要重启)
$ sudo mkdir -p /mnt/root
$ sudo mount /dev/mmcblk2p3 /mnt/root
$ cd /mnt/root
$ ls
f34  f36.22Jul26  home  home.22Jul26  root
$ sudo btrfs subvol snapshot root f36
Create a snapshot of 'root' in './f36'

因为 Btrfs 快照是以文件系统为基础的,所以并不需要在创建快照之前进行 “同步”,正如我在 LVM 中建议的。要从新的子卷引导为回退,你需要使用你喜欢的编辑器编辑 /mnt/root/f36/etc/fstab。如果你是刚入门的话,nano 就是一款十分简单的文本编辑器,功能基本够用。以下是我 fstab 文件中的一些行:

LABEL=PINE        /    btrfs   subvol=root,compress=zstd:1        1 1
UUID=e31667fb-5b6f-48d9-aa90-f2fd6aa5f005 /boot ext4    defaults        1 2
UUID=75DB-5832          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
LABEL=PINE        /home    btrfs   subvol=home,compress=zstd:1    1 1
LABEL=SWAP swap            swap    discard=once    0 0

subvol=root 更改为 subvol=f36。这个改动是作用在快照中的文件,而并非你实际运行中的 fstab 文件。你可以通过 diff /etc/fstab /mnt/root/f36/etc/fstab 对比它们的区别。在我的情况下,我还使用了 sudo btrfs subvol delete f34 来删除我去年的 f34 快照。

测试 Btrfs 的回退快照

你现在可以进行回退的测试了。你可以使用 grubby 或在 /boot/loader/entries 中编辑一项来将 subvol=root 替换为 subvol=f36。然而,为了初学者的安全起见,我们更建议你在启动时编辑 GRUB 进行操作。你可以参考 关于 GRUB 的这篇文章 了解如何进入 GRUB 菜单。在你到达那里后,按下 e 键编辑默认的内核启动项。放心 —— 你所做的更改都只存在于内存中,如果你弄错了,重启电脑即可重新开始。就像编辑 fstab 文件一样,找到 subvol=root 并将其更改为 subvol=f36。然后,按 F10Ctrl + X 来引导你修改过的项目。通过这些更改,你的系统应该能够引导进入你的新快照。你可以查看 /etc/fstab 确保你正在引导至正确的子卷,或键入 mount | grep subvol 查看此时在 / 上挂载的子卷。

进行 Fedora Linux 的系统升级

如果你的回退功能没问题,重启并返回你的正常根文件系统(并像上面所述,进行确认)。然后,按照 维基页面 上的指南进行标准的系统升级。提示:在运行 dnf system-upgrade reboot 之前,给 root 子卷创建另一个快照,你可以给它命名为 root.dl。这样,如果你发现硬盘空间不够,你不必再下载五个 GB 的文件包。因为除了下载的包以外,所有的内容都将与 rootf36 共享,因此它不会占用任何额外的空间。然后说到磁盘块的共享问题……

因为在 root 子卷中的 f36 文件和 f36 子卷中的相同文件都使用的是相同的磁盘位置,所以在处理 Btrfs 报告的可用空间时,dnf system-upgrade 会感到困惑。因此在升级过程中从 root 子卷中删除它们并不会真正释放任何空间。如果你耗尽了所有空间,并且决定重启电脑,那么图形用户界面(GUI)将无法启动。此时,你需要使用 Ctrl + Alt + F2 进入文本控制台并登录,这将是你磨练命令行技能的好机会。如何清空空间或扩展根文件系统在这里先不做讨论(我的文件系统经常在一个 LVM 的卷上,可以被扩展)。通常,为升级保留超过 50% 的空闲空间是比较保险的。

恢复环节

如果不幸出现问题,你可以重启电脑,并编辑 GRUB 条目以引导启动回退快照。如果你是新手,一旦需要在磁盘上修改 GRUB 条目(这样你就不需要每次启动时都进行编辑),可能需要一些指导。删除或重命名损坏的 root 子卷是非常直接的。你可以为 f36 子卷(或 root.dl 快照)创建一个快照,然后尝试再一次进行系统升级。以下是在子卷 f36 上启动到回退系统后重新开始的示例:

$ mount | grep subvol
$ sudo mount /dev/mmcblk2p3 /mnt/root
$ cd /mnt/root
$ sudo mv root root.failed
$ sudo btrfs subvol snapshot f36 root
Create a snapshot of 'f36' in './root'

Don't forget to edit /mnt/root/root/etc/fstab to change the subvol mounted on "/" to "root".

事实证明,新的 f38 版本的 kernel-6.2.11 在我的 Pinebook 上进行系统升级后并未成功启动!(不过请不要担心,ARM 只是 Fedora Linux 的可选 CPU 架构——在主流设备上,你很少会遭遇此类问题。)的确,我成功地按照前文所述,在启动时编辑了 GRUB 条目并恢复到了 f36 的 kernel-6.2.10。现在,我继续使用着 f38,但同时搭载了 f36 的 kernel-6.2.10。

更新:kernel-6.2.12 已经发布,且我已确认它在 Pinebook 上运行正常。

过期问题

随着你不断更新 f38 系统,它最终可能会希望删除 /boot 下的最后一个 f36 内核。通常来说,这并不是问题,因为到那个时候,你已经完全熟悉 f38,而 f36 快照只是一个存档。然而,如果你希望你的复刻版本(即 f36 的快照)能无限期地启动,那么你应当在 /boot 下保存一个能正常工作的 f36 内核。最简单的方法是在 /etc/dnf/dnf.conf 文件中设置 installonly_limit=0 并手动移除旧的内核,这种方法既简单又安全(尽管可能稍显繁琐)。

这里还有一个更复杂的解决方案(不适合新手):运行 find /boot -name "*fc36*" 指令,列举出所有在 f36 子卷快照中的内核及 GRUB 文件(这些文件并未包含在快照之内)。将这些文件备份至安全位置(例如我会挂载 f36 子卷,并将文件备份至其下的一个目录)。当 f38 系统启动后,对于每一个 f36 内核版本,都需使用 dnf 删除特定版本的内核(例如,使用 dnf remove kernel-core-5.19.11-200.fc36)。千万不要删除 f38 的内核!然后将你先前备份的 f36 内核恢复至 /boot 下。此时,f38 系统已经无法再识别 f36 的内核,因此也不会将其从 /boot 中删除。

然而,使用此方法有一个缺点,那就是你可能会不小心删除正在运行的 f38 内核。如果大家有更佳的解决办法,欢迎在评论区分享。

展望未来

对于习惯于修改 GRUB 条目的用户,他们可能会考虑创建一个命名为 f38 的快照子卷。将当前的 GRUB 条目进行修改,以便启动到这个子卷,重启后,在这个子卷中进行系统升级。此后,总是根据它所包含的 Fedora Linux 版本来命名根文件系统的子卷。但在本文中,我没有采用这种作法,原因有两点:

  1. 将当前活动的子卷命名为 root,这是遵循 Fedora Linux 的默认设置。
  2. 坚持使用 root 作为当前子卷,这样在进行正常的系统升级操作之外,并不需要任何永久性的更改。

正如本文所展示的,针对重大系统更改(如系统版本升级)可能引发问题时,只读快照作为本地恢复点,非常有用。这些快照还可以通过 Btrfs 的 send 子命令,发送至远程备份。(如果远程备份设备已经包含了先前的备份数据,Btrfs 可以进行增量发送,仅传输发生变更的文件,这样就能节省时间和空间。)如果你打算长期存档这些快照,保持清晰不混淆且能明确恢复顺序的关键,就是要使用一套一致的命名规则。关于如何使用 Btrfs 的 send 命令来创建备份的更多信息,你可以参考关于 Btrfs 快照备份 的文章。

(题图:MJ/6aed1d19-f1dd-4935-ad6f-61f6a868f150)


via: https://fedoramagazine.org/make-use-of-btrfs-snapshots-to-upgrade-fedora-linux-with-easy-fallback/

作者:Stuart D Gathman 选题:lujun9972 译者:ChatGPT 校对:wxy

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

ls 属于 Linux 中那些简单又常用的命令之一。在本教程里,你将学到如何高效使用它。

对我个人而言,ls 无疑是 最常被使用的 Linux 命令,因为我们总是借助它 列出目录内的内容 来检验上一步操作的结果。

ls 命令是 “ 列表 List ” 的缩写,其功能就是列出你指定目录下的所有内容。

我将在本教程中,通过一系列的实例,带你一步步掌握 ls 命令的使用。

另外也会给出一些练习题,以检验你的学习成果。

如何运用 ls 命令

要使用 ls 命令,你只需遵循以下简单的命令格式:

ls [OPTIONS] Targeted_Directory

这里,

  • [OPTIONS]:用来改变 ls 命令的默认行为。
  • Targeted_Directory:在这里输入目录名或目录的绝对路径。

你可能会想,如果没有任何选项地使用 ls 命令会发生什么。为了回答这个问题,我在当前工作目录中使用了 ls 命令:

使用 ls 命令列出工作目录的内容

如你所见,它列出了当前工作目录中所有可用的目录和文件。但你可以做的远不止于在当前工作目录中获取名称和文件。

接下来让我给你展示一下。

1、列出带有所有权的文件和目录

ls 命令的重要用途之一就是查出具体的文件或目录的权限以及所有权信息。

这就需要你在使用 ls 命令时,带上 -l 选项(这也被称为长列表格式):

ls -l

执行该命令后,你会看到类似的输出:

$ ls -lh
-rwxrw-r-- 1 sagar sagar 666M Dec 10 18:16 Fedora.iso

注意到我是同时使用了 –h 选项吗?我们稍后会详细说明这个。

如果目前为止的输出结果看起来太复杂,那就让我来帮你简化一下:

利用 ls 命令在 Linux 中解读文件权限和所有权

如你所见,每个文本块都有特定的含义,它们分别对应文件拥有者、组和其他用户的各项权限。

对于想对文件权限有更深入理解的朋友,我推荐你阅读 我们关于 Linux 文件权限的详尽指南

2、获取以人类可读的方式显示的信息

默认状态下,文件大小以字节为单位显示,显然不是最佳的查阅方式。那如果想以更易读的方式来得知相同的信息,我们怎么做呢?

其实很简单。你只需使用 -h 选项与 ls 命令配合:

ls -l -h

接下来,我们比较下默认显示状态和可读性更强的显示方式的区别:

以人类可读的方式通过 ls 命令列出文件

明显更好了,对吧?

? 尽管 ls 命令很好地展示了文件大小,但它并不能告诉你文件夹的大小,普遍情况都会显示为 4K(LCTT 译注:这其实是“目录”这个文件所占用的大小,而不是该目录下文件的总计大小。)。如果需要了解文件夹的大小,那么你可以尝试使用 du 命令。

3、列出隐藏文件

和其他所有文件管理器一样,ls 命令在默认情况下并不会显示隐藏文件(这正是隐藏文件的意义所在,对吧?)。

那么,如果你期望在常规文件之外,一并 列出隐藏文件 呢?只需在使用 ls 命令时带上 -a 选项就行:

ls -a

你会注意到,以 . 开头的文件名就是所谓的隐藏文件。

用 ls 命令在 Linux 终端列出隐藏文件

? 你还可以使用 ls -A,它的功能与 ls -a 类似,但它不包括 ... 这两个目录。

4、递归列出文件

事实上,有 多种方法可以递归列出文件,使用 ls 命令就是其中之一。

如果你还不清楚,递归列出文件就是指展示所有子目录中的文件,直到每个子目录的最深层次。

你可以通过使用 -R 参数来递归列出文件:

ls -R

在 Linux 中使用 ls 命令递归列出文件

这种方式实际上为你展示了当前目录的结构,我个人非常喜欢这种方式,但你需要先进行安装。

? 其实你并不需要进入某个目录才能查看其内容,你可以直接通过提供它的绝对路径或相对路径来列出目录内容,比如:ls /var/log

5、在使用 ls 时对文件和目录做区分

通常,不同的颜色就足以区分文件和目录。但是如果你基于某种原因需要给文件和目录添加符号标识,这就有一个办法。

ls 命令中,使用 -F 选项,它会在每个目录名末尾添加一个正斜杠 /

ls -F

使用 ls 命令在文件和目录间做区分

6、列出指定扩展名的文件

有些情况下,你可能只希望列出具有特定扩展名的文件,实际上,这是最简单的操作之一。

做到这一点,你无需使用任何选项。只需在星号 * 后附上文件扩展名,如 *.png*.txt 等:

ls *.extension

例如,如果我只想列出 ISO 文件,那么我将使用以下命令:

ls *.iso

列出特定扩展名的文件

7、基于大小对输出内容排序

若希望基于文件大小来对输出内容排序,你需要使用 -S 选项,它会以从大到小的方式(降序)列出文件:

ls -lhS

使用 ls 命令基于文件大小排序

相反,如果你想颠倒这个顺序,使得最小的文件首先被列出,你可以利用 -r 选项来实现反向排序:

ls -lhSr

使用 ls 命令从小到大排序文件

8、根据日期和时间排序文件

ls 命令在列出的内容中包括文件的修改时间。

如果你希望最新的文件最先被列出,可以使用 -t 选项,如下所示:

ls -lht

使用 ls 命令最先列出最新文件

你也可以像我前面提到的那样,在这里使用 -r 选项进行反转排序。

ls -lrt

这会使得最近修改的文件在列表的底部显示,当目录中存在大量文件,而你希望查看最近被修改过的文件时,这一命令会特别有用。我在解决我的软件项目问题时就经常用到它。

使用 ls -lrt 命令

让我们来总结一下至此你已经学习到的!

下面,我会共享一个表列出本教程中介绍过的一些与 ls 命令一起使用的选项:

命令描述
ls -l长格式列出文件和目录
ls -lh以人类可读的方式显示信息
ls -a在列出的内容中包括隐藏文件
ls -R递归列出文件
ls -F在目录名后添加正斜杠
ls *.ext列出具有特定扩展名的文件
ls -lS根据文件大小排序
ls -lt根据修改时间排序
-r反转排序顺序(与 -S-t 结合使用)

?️ 并练习你所学

实践你所学总是一个好主意,这就是我们在每一份终端指南中都试图添加实践部分的原因。

所以,这里有一些关于 ls 命令的简单练习:

  • 列出 /var/log 的内容
  • 将命令的输出 保存到名为 output.txt 的文件中
  • 找出最近的 3 个文件(使用基于时间的排序)
  • 基于大小显示文件,但排序方式要反转
  • 检查是否存在任何隐藏文件

这些练习对你来说会很有帮助。期待之后更多关于 Linux 命令的学习。

如果你是初次接触终端,别忘了关注我们的终端基础系列。

祝你日有进益 ?

(题图:MJ/8fb35776-5192-43ca-b96d-31bbd77c3318)


via: https://itsfoss.com/ls-command/

作者:Sagar Sharma 选题:lkxed 译者:ChatGPT 校对:wxy

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

Gamerzilla 是一个开源游戏成就系统,用于存储和共享你的游戏成就。游戏使用 libgamerzilla 轻松添加成就。Gamerzilla 库是用 C 编写的,但也有其他语言的绑定。

两年前,我描述了如何设置 Gamerzilla 服务器。除了 .net 实现之外,还可以使用 php 和 python 实现。但你可能不想运行自己的服务器。这里介绍一个公共服务器和 Gnome 界面。

公共服务器

我的网络服务器现在托管了一个启用了公共注册的 Gamerzilla 实例。要创建帐户,请单击右上角的 “ 签到 Sign In ” 链接。然后单击 “ 登录 Login ” 按钮旁边的 “ 注册 Register ” 链接。

用户帐户收集的信息非常少。只需输入用户名和密码。你不需要输入你的真实姓名或电子邮件地址。因此,忘记密码没有实现。

账户一开始是不可见的。如果你希望公众在登录后看到你的成就,请单击页面右上角你的用户名,然后选择 “ 设为可见 Make Visible ”。新用户必须经过批准才能上传成就。目前没有显示你是否获得批准的指示。

获得成就

在获得第一个成就之前,你需要使用以下命令安装 Gamerzilla GNOME Shell 扩展:

sudo dnf install gnome-shell-extension

安装后,你需要注销并重新登录。需要使用以下命令启用扩展:

gnome-extensions enable [email protected]

游戏控制器图标出现在 GNOME Shell 的顶部栏中。

单击控制器图标并选择 “ 首选项 preferences ”。在出现的屏幕上输入你的 Gamerzilla 网址,包括尾部斜杠,但不包含 UI 的“奖杯”地址。如果使用我的服务器,该值将为 https://identicalsoftware.com/。填写你的用户名和密码。单击保存。默认情况下启用自动连接。如果你不想始终连接,请禁用此功能。

Gamerzilla Controller menu

不幸的是,一个错误阻止了该 Shell 扩展立即工作。你需要注销并重新登录。解决这个问题是当务之急。

目前支持的游戏

Fedora 仓库中的多个游戏支持 Gamerzilla 成就。如果你想买一个来尝试一下,我建议试试 Shippy 1984、Seahorse Adventures 或 Anagramarama。一旦你完成一个级别,Seahorse Adventures 就会存储一些进度。如果你玩 Super Tux Kart,你可能已经取得了成就。只需启动游戏即可同步之前完成的任何成就。当成就完成时,Gamerzilla 不会显示任何通知,但游戏可能会自行实现。

更进一步

除了修复第一次连接的错误之外,我还想要一个本地浏览器来查看成就。这样你就可以查看所有游戏成就,而无需强制上传它们。

成就确实有消极的一面。有些人觉得有必要完成它们。如果成就非常困难,这可能会导致负面的游戏体验。我理解这种担忧,但有些人也喜欢这些方面。更重要的是,为了吸引和留住玩家,我觉得开源游戏需要一个游戏成就系统。

我们需要更多游戏来实现 Gamerzilla 成就。我们需要玩家表现出对这个系统的支持。我继续为我的游戏和我尝试的其他开源游戏添加成就。

(题图:MJ/32ae3f54-b319-4db7-b874-eeacd1dcc4d2)


via: https://fedoramagazine.org/share-your-game-achievements-with-gamerzilla/

作者:Dennis Payne 选题:lujun9972 译者:geekpi 校对:wxy

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

对于 Ubuntu 和其相关版本如 Kubuntu 的选择可能会令人迷惑。那就让我们简化这个选择过程吧。

Ubuntu 是桌面用户最选择的 Linux 发行版。其特色是一个定制的 GNOME 桌面,可以提供流畅的用户体验。振奋人心!

而另一方面,Kubuntu 是 Ubuntu 发行版家族 中的一员,特色在于其 KDE Plasma 桌面

本质上,这两种发行版非常类似,主要区别在于 桌面环境

那么,它二者有何明显不同点?是否一个比另外一个更好?对于你来说,何种发行版更为适合?

接下来,我们将比较下它们之间的主要不同,并提供一些基本信息以助你做出选择。

? 本篇文章的对比依据是 Ubuntu 23.04 以及 Kubuntu 23.04。随着未来版本的发布,可能会有一些变动,我们也会持续进行更新。

桌面环境

Ubuntu 的特色在于使用了 GNOME 桌面的定制外观。对于新的 Linux 用户来说,这个布局独特且易用。

Ubuntu 23.04 主屏幕截图

它并不与 Fedora Linux 的原生 GNOME 体验完全相同。Ubuntu 的桌面环境体验经过了一些改动。

Kubuntu 提供了原生的 KDE Plasma 体验。对于从 Windows 平台转换来的用户,布局会感到相当熟悉,包含开始菜单、系统小工具等等。

Kubuntu 23.04 截图

如果你尝试过任何其他带有 KDE Plasma 桌面的发行版,其体验应该差不多。

它们都是一些极为出色的 桌面环境,所以,你基于各种布局、定制性和特性选择它们中的哪一个都没有什么问题。

为了进行更多的参考,下面是 Ubuntu 的登录页面所呈现的样子:

接下来,我们看一下带有 X11 桌面会话的 Kubuntu 登录屏幕:

此外,我为你提供了一份详细的指南,如果你想深入研究,可以参考这份 KDE 与 GNOME 的对比指南:

KDE 与 GNOME:Linux 桌面终极之选

? 根据发行版版本,例如 长期支持版(LTS)还是非 LTS,桌面环境及特征集会有所不同。

举例来说,如果你选择像 Ubuntu 23.10 或 Kubuntu 23.10 这样的非 LTS 版本,你可以获得更新的桌面版本 —— GNOME 45KDE Plasma 5.27

而对于 Ubuntu 22.04 LTS,提供的则是稍旧一些的桌面版本—— GNOME 42KDE Plasma 5.24

软件管理

由于 Ubuntu 和 Kubuntu 其核心都是 Ubuntu(或 Debian),因此可以期待在这两个版本上安装同样的应用程序。

但是,你用来管理或安装应用程序的应用商店在每个版本中都是不同的。

对于 Ubuntu,它使用 软件中心 Software Center 或者 Ubuntu 应用中心 Ubuntu App Center (从 Ubuntu 23.10 开始的新版本),默认集成了 Snap。因此,如果你更倾向于使用 Snap 而不是 Flatpak,Ubuntu 就可以提供以无缝的安装体验。

想要使用 Flathub 的包,你可以按照我们的 Flatpak 使用指南 进行操作,但 Ubuntu 的软件管理器并未提供整合。

提及 Kubuntu,你得到的软件管理器是 “ 发现 Discover ” 应用。你也可以从软件仓库以及 Snap 包中安装应用。

与 Ubuntu 的软件商店相较,“发现”应用在轻松整合 Flatpak 方面更具灵活性

你只需多击几下,就可以在设置菜单中通过 Flatpak 后端插件 在“发现”应用里列出来自 Flathub 的应用。

软件与功能点差异

有些用户更注重在特定发行版中能做什么,以及开箱即用的软件工具。

Kubuntu 中的屏幕截图操作

他们并不在意桌面布局或锁屏和登录屏幕的界面如何。他们只在乎功能特性,就如你在这里看到的图片展示的那样。

Ubuntu 的快速切换菜单

? 可用的功能会依据发行版的版本和软件而有所不同。然而,我相信,一些让它们各自独特之处值得你了解,这些可能有助于你的选择。

一些重要的功能点如下:

  • Kubuntu 的默认屏幕截图工具提供了注释和编辑功能,而 Ubuntu 则没有这功能。
  • Kubuntu 的文件管理器比 Ubuntu 的包含更多的特性。
  • 作为桌面环境选项,Kubuntu 提供了更多的预装应用。
  • 相比于 Ubuntu,Kubuntu 提供了更多的外观定制选项。
  • Kubuntu 默认使用 KDE “ 连接 Connect ” 应用连接你的移动设备。你也可以在 Ubuntu 进行相同的安装以获取这个功能。
  • 在 Ubuntu 上,简易化并自动化的工作空间增加功能易于改进工作流。你可以在 Kubuntu 上增加虚拟桌面,但需手动操作。
  • Ubuntu 具有快捷切换到深色/浅色模式的功能。
  • Ubuntu 针对经常被海量选项所困扰的用户,更加注重简单易用的操作方式。

发布周期

如 Ubuntu 18.04 和 Ubuntu 22.04 这类的 Ubuntu LTS 版本,会在其发布之日后的五年内接受软件更新和安全补丁。

此外,如果你希望长期使用同一版本,你可以选择开通 Ubuntu Pro 订阅(个人使用免费),它将为你提供额外五年的更新支持

而对于非 LTS 版本,如 Ubuntu 22.10 和 Ubuntu 23.04,则会提供九个月的维护更新

? 对大部分用户来说,我们推荐使用 LTS 版本。只有在你准备好在九个月之后升级你的系统,以获取最新最好的软件时,才推荐尝试非 LTS 版本。

如果你对这些术语感到不熟,我建议你阅读我们的一些资源,深入理解发布周期:

总的来说,选择 Ubuntu,你可以获得相当长的支持选项

大部分用户可能会认为,由于 Kubuntu 是 Ubuntu 的官方发行版,它们应该具有相同的更新周期。遗憾的是,并非如此

在 Kubuntu 中,其长期支持版从发布之日起仅支持三年。非长期支持版的更新维护期仅为九个月。并无任何扩展软件更新期的选项。

安装

不论是 Ubuntu 还是 Kubuntu,其安装过程都相当直观且易于理解。

你将注意到的唯一不同之处在于用户界面及其一些选项。

以下是 Kubuntu 的截图:

尽管它们的界面有所不同,但安装过程都极其简便。

这里是 Ubuntu 的一个安装界面截图:

Ubuntu 近期发布的版本极大地改进了安装器的用户体验。所以,用户在点击步骤进行安装时,可能会觉得更加简洁明了。

例如,安装 Ubuntu 后,你或许可以立即选择深色或浅色模式,然而在 Kubuntu 中这样的选项并不可用。

系统资源使用

这里不会有赢家或输家,但基本上,Kubuntu 上的桌面环境(KDE Plasma)更轻量也更注重性能。

Ubuntu 的 GNOME 则设计得直观,为你提供了顺畅的用户体验。

举个例子,基于我的测试,Ubuntu 在启动后会马上占用大约 1.5 GB 的内存

而在 Kubuntu 中,启动后占用的内存约为 1.2 GB:

没错,Kubuntu 的系统监控看起来功能稍多一些。但这就是全部了。

因此,在资源使用方面,虽然你在纸面上可能观察到明显的差异,但在实践中,它可能根本不会对你产生影响。

你应该选择哪个?

在选择一个适合日常使用的 Linux 发行版时,你的工作流以及布局都是需要考虑的因素。

如果你熟悉 Windows 平台,Kubuntu 应是一个好选择(甚至是从 Windows 平台转换过来的用户)。

如果你理解并乐意接受 GNOME 的布局,Ubuntu 可以为你提供简单且现代的体验。

但不管是哪种情况,如果你希望能有高度的可定制性和大量实用工具,Kubuntu 会是一个理想的选择。反而,如果你更偏爱简约清晰的布局,选择 Ubuntu 一定不会错

? 你更偏好哪一个 Linux 发行版,是什么让你做出这样的选择呢?

(题图:MJ/dbde3529-ecea-4411-a53e-6e75b4e388db)


via: https://itsfoss.com/ubuntu-vs-kubuntu/

作者:Ankush Das 选题:lujun9972 译者:ChatGPT 校对:wxy

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