Abhishek Prakash 发布的文章

如果你最开始使用的是 Windows 电脑,你很可能会使用“ 文件夹 folder ”这个术语。

但当你换到 Linux 时,你会发现文件夹通常被称为“ 目录 directory ”。

这可能使一些新的 Linux 用户感到困惑。你应该叫它文件夹还是目录?它们有区别吗?

事情是这样的。如果你愿意,你可以叫它文件夹,如果你喜欢,也可以叫它目录。这没有什么区别。

但是,如果你想知道为什么文件夹在 Linux 中被称为目录,这里有一些解释。

为什么在 Linux 中文件夹被称为目录?

在我解释之前,让我们回顾一下文件夹和目录在现实世界中的用途。

在现实中,文件夹(封套)可以用来保存几个文件(或其他项目)。而目录则可以用来维护项目的索引,这样你就可以找到哪个项目位于哪里。

文件夹和目录的示意

现在,让我们回到目录。这个词甚至在 Linux 存在之前就已经存在了。它来自 UNIX 时代。Linux 继承了 UNIX 的很多东西,这只是其中的一个。

现在让我告诉你一些可能让你吃惊的事情。目录并不是真的把文件放在里面。目录是一个“特殊的文件”,它知道文件在存储中的位置(通过 inode)。

这就说明了为什么它被称为目录。目录用来保存项目的索引,而不用保存项目本身。Linux 和 UNIX 中的目录并不保存它里面的文件。它们只是记录文件位置的信息。

如果你想了解更多关于它的信息,我这篇关于 硬链接 的文章应该可以帮助你。

那么,为什么它被称为文件夹呢?依我看,这是视角的原因。当你在一个图形环境中时,你会将事物可视化。在这里,文件可以像页面一样被可视化,这些文件页面被存储在一个封套(文件夹)中。

当操作系统开始使用图形元素时,我认为一些术语也相应地发生了变化,目录 -> 文件夹就是其中之一。

你应该叫它文件夹还是目录?

这完全取决于你。你可以按你的习惯使用这两个术语。

然而,如果你正在学习 Linux 命令行或经常使用它,使用目录这个术语可能会有一点帮助。

有一些 Linux 命令,如 mkdirrmdir 等,术语 “dir” 给出了一个提示,即这些命令与目录有关。

同样,许多 Linux 命令和 bash 脚本会使用选项 -d 表示目录,-f 表示文件。

甚至终端中的文件属性也会通过在目录前面加上字母 “d” 来区分文件和文件夹(目录)。

拿这个例子来说,我有一个名为 some 的文件和一个名为 something 的文件夹/目录。请注意各种 Linux 命令是如何用 “dir” 或 “d” 来区分文件和目录的。

显示文件和目录操作之间区别的例子

所有这些让我觉得,在使用 Linux 命令时,使用 “目录” 这个术语会有好处。你的潜意识会更容易将 “dir” 和 “d” 与目录联系起来。

再说一次,你想叫它文件夹或目录这完全取决于你。人们会明白你指的是什么。

我刚刚对目录一词的历史渊源做了一些分析,这应该会给你一些提示,为什么人们说 “在 Linux/UNIX 中,所有东西都是一个文件”。

现在我结束了我的胡言乱语,我请你对它进行评论。如果你发现任何技术上的不准确之处,请告诉我。


via: https://itsfoss.com/folder-directory-linux/

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

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

你可能已经注意到,当你在 GNOME 菜单/活动区搜索某样东西时,它也会显示名称与搜索词相匹配的文件,以及已安装的应用。

Search in GNOME activities shows installed applications and matching files

这是个很方便的功能。如果你记得文件名,甚至是它的一部分,你可以很容易地搜索到它,只需按下 Super 键(Windows 键)并输入文件名就可以打开它。

但是,围绕这个搜索功能,有一些你可能不知道或从未关心过的小问题。

在这篇文章中,我将分享你如何控制 GNOME 搜索功能,从搜索选项中添加或隐藏文件夹,以及完全禁用它。

注意:这专门针对使用 GNOME 的发行版。请 确认你使用的是哪种桌面环境,确保是 GNOME。

文件搜索的默认位置

GNOME 的搜索功能使用了一个叫做 Tracker Miner FS 的工具。请不要被 “tracker” 和 “miner” 这样的术语吓到。它不是在监视你,也不是在你的系统上挖掘加密货币。它的基本功能是作为一个搜索引擎和数据库,为你提供即时搜索结果。

默认情况下,文件索引发生在元文件夹,如文档、音乐、图片和视频目录及其子目录。主页和下载文件夹中的文件也会被索引,但不包括其子目录中的文件。

Default locations for file search

如果你在你的主文件夹中创建了一些新的目录,这些文件将不会被索引。

然而,最近访问的文件也会被自动编入索引。如果你最近打开了一个文件,它将被添加到 “最近的文件” 中,并将出现在搜索结果中,而不管它在什么地方。

如果你还不知道的话,你可以在文件管理器中看到你最近访问的文件:

Accessing recent files in GNOME file manager

在搜索结果中添加一个文件夹的内容

假设你在你的主目录中为编码项目创建了一个文件夹。这些文件不会被索引,也不会出现在搜索结果中(除非你通过双击打开了一个文件,并且它被添加到最近的文件中)。

要在搜索结果中添加自定义文件夹中的文件,你可以将该文件夹添加到搜索位置。

通过在菜单/活动区搜索打开 “设置” 应用。

Search for settings application

从左侧边栏进入 “搜索” 选项,点击顶部的“搜索位置”选项。在弹出的窗口中,进入 “其他” 标签,点击 “+” 符号。它将打开文件浏览器,你可以添加你想要的文件夹。

Adding a custom folder content to search

如果你在刚刚添加的文件夹中搜索一个文件名进行测试,你现在应该在搜索结果中看到它。它应该是即时的,但如果不是,请尝试注销或重启系统。

从搜索结果中隐藏一个文件夹

如果你不希望某个特定文件夹的文件出现在搜索结果中,你可以隐藏它。

如果你不希望在搜索中出现图片、文档、视频等元文件夹的内容,你可以从搜索位置设置中禁用它。

Disable meta folders from the search

如果你只想让文档下的某个文件夹的内容不出现在搜索结果中,你只需要在该文件夹中创建一个名为 .nomedia 的新文件。你也可以将该文件命名为 .git.trackerignore.hg

Hide specific folder from search results by creating file named .nomedia or .hg or .git

如果你在鼠标右键中没有看到创建新文件的选项,你必须做一些调整来增加 在右键上下文菜单中创建新文件选项。还要注意的是,任何名称中以 . 开头的文件都会被隐藏起来,不能被正常查看。要 切换显示隐藏文件,按 Ctrl+H 键。

这种隐藏可能不会立即生效,因为该文件可能已经被索引了。你可能必须注销或重启才能看到效果。

如果你手动访问一个文件,它将被添加到最近的文件中,并且会出现在搜索结果中,尽管文件夹中的文件被忽略了。

你可以从 “设置 -> 隐私 -> 文件历史 & 垃圾箱” 删除最近的文件历史或完全禁用它(如果你想的话)。不过我认为没有必要,所以在这里你自己决定吧。

Clear or disable file access history in GNOME

禁用所有文件的搜索结果

如果你不希望任何文件出现在搜索结果中,你可以在搜索设置中完全禁用对文件的搜索。

Disable search results for all files

你应该通过点击顶部的搜索切换按钮完全禁用搜索功能,它可能会干扰 GNOME 桌面环境的正常功能。

关于它的更多细节可以在 [项目主页] 中找到。

总结

这里的 讨论的是文件搜索。GNOME 桌面也可以在日历、字符映射和其他一些程序中进行搜索。你可以禁用或启用可用的搜索选项,但我们这篇不针对这些。

我希望你觉得这个快速提示对 定制你的 GNOME 体验 有帮助。如果你知道其他一些你想让别人知道的技巧,请在评论中与我们分享。


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

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

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

林林总总的 Linux 发行版可以根据它们的特点、功能、预期用户群等分为不同的类别。在这篇文章中,我将列出一些最好的滚动发布的 Linux 发行版。

你知道什么是 滚动发布的发行版 吗?这些发行版不会等待 6 个月或更长时间才发布一个新的版本,提供给你更新的 Linux 内核、桌面环境和其他主要软件组件。它们会在这些组件发布后很快就进行更新。你不必将你的发行版从一个主要版本升级到下一个版本,因为你的发行版会定期得到升级。

现在你已经知道了,让我们来看看一些最好的滚动发布的 Linux 发行版。

你可以在桌面上使用的最佳滚动发行版

是的,这个列表主要是针对桌面用户。这里列出的一些发行版可能有服务器版本,但这不是这里的重点。

请注意,这并不是一个排名表。

1、openSUSE Tumbleweed

OpenSUSE Tumbleweed

老派的 openSUSE 多年来一直按部就班地顺着版本号发布他们的系统。但在几年前,他们决定改变他们的产品,创建了 openSUSE Leap 和 Tumbleweed

openSUSE Leap 采用的是版本式发布,每隔几年就会有一个新的版本,而 Tumbleweed 则是滚动式发布,新的软件在发布后不久就会出现在这个系统中。

openSUSE Tumbleweed 对于那些想留在红帽 RPM 阵营的人来说是一个很好的选择。openSUSE 有多样化的生态系统,它有一个巨大的软件库,Zypper 和 YaST 为你的软件包管理提供了很多选择。

2、Arch Linux

Arch Linux

毋庸置疑,Arch Linux 是最流行的滚动发布版本。它几乎就是滚动发布的同义词。

Arch Linux 在 Linux 用户中具有崇高地位的原因有很多。我认为这更多是与 安装 Arch Linux 后的成就感有关,因为即使是安装程序,它都很别人不一样。

Arch 在其软件库中正式提供了一大批软件。而 AUR 则通过社区的努力,几乎使所有其他的 Linux 软件都可以使用

如果你对 Linux 有一定的经验,想挑战自己的水平,这是一个不错的选择。

3、Manjaro Linux

Manjaro Linux

Manjaro 基本上是免除了所有麻烦的 Arch Linux。

它是基于 Arch Linux 的,所以它具有 Arch Linux 的大部分优点。你可以得到 Pacman 和 AUR 的滚动发布模式。同时,Manjaro 有图形化的安装程序、基于 GUI 的软件包管理器和其他图形化工具来改善你的桌面体验。

Manjaro 更容易安装,也更容易使用。对于那些想舒适地呆在 Arch 领域的人来说是个不错的选择。

注意: 还有 许多其他基于 Arch Linux 的优秀发行版,但我无法将其列入此列表中。如果你愿意,你可以试试 Garuda Linux、EndeavourOS 和其他许多基于 Arch 的发行版。

4、Solus Linux

Solus Linux

和 Manjaro 一样,Solus 也是一个 “谨慎” 的滚动发行版。与 Manjaro 不同的是,它不是基于 Arch 的。它是从头开始创建的,使用的是 eopkg 软件包管理器。Solus 因创造了现代而直观的 Budgie 桌面环境备受赞誉。

像其他滚动发布的发行版一样,一旦你安装了 Solus,你就不需要升级到下一个版本的发行版(也可以像 ISO 刷新一样进行全新安装,带有更新的软件包)。

万一有欠缺的软件包也可以用 Snap 应用程序来补足。

如果你想要一些不同的东西,但又不至于复杂到让你感到不舒服,那么 Solus 是一个不错的选择。

5、Debian Testing

Debian

你没有想到吧?Debian 以其对稳定性的关注而闻名,以至于其稳定的有时就像是陈旧,因为它提供的软件版本已经相当老旧。

但那是针对稳定分支的。Debian 有几个分支,其中一个叫做 Testing 分支。

看起来 Testing 是某种测试版、不稳定的版本,但这并不完全正确。Debian Testing 其实是下一个 Debian 稳定版本。实际的开发分支是 Debian Unstable(即 Sid)。Debian Testing 介于不稳定版和稳定版分支之间,它会在稳定版之前添加新的功能。

有些人在配置 Debian 时,在源列表中加入 testing。这使得他们的 Debian 系统永远停留在测试阶段。这是一种滚动发布的模式,Debian 用户可以不必离开舒适的 APT 和 deb 软件包管理系统。

6、Void Linux

Void Linux

这是一个不寻常的、不太出名的发行版。Void 也是从头开始创建的,也就是说,它不是基于 Arch、Red Hat 或 Debian。

它是滚动发布的,但不像 Arch 那样激进。它优先考虑的是稳定性。这意味着当新的版本发布时,你不需要升级版本,但你也不会在最新的桌面环境版本一发布就得到它。

与其他发行版不同的另一点是,它使用 runit 作为初始化系统。

总的来说,如果你是一个有经验的 Linux 用户,Void 是一个不错的选择。

7、Gentoo Linux

Gentoo Linux

另一个是你的同行们警告过的 专家级 Linux 发行版 之一。

Gentoo 不是每个人都能享用的茶或咖啡(无论你喜欢哪一种)。从安装到配置再到软件包管理都需要一定的专业知识和时间。

但是它有一个小众的专家用户群,他们会在编译一切需要的组件时废寝忘食。

如果你觉得其他发行版都不够有挑战性,Gentoo 可能是你的选择。

你对滚动发布的发行版有什么建议?

正如我之前提到的,我在这里特意将其他基于 Arch 的发行版排除在外,否则列表中就只有 Arch 的衍生产品了。

但你可以自由地投出你的推荐,即使它是基于 Arch 的。评论区都是你的。


via: https://itsfoss.com/best-rolling-release-distros/

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

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

Gaphor 是一个自由开源的建模应用,支持各种建模语言,如 UML、SysML、RAAML 和 C4。

不知道“ 建模语言 modeling language ”这个词?基本上,它是一组可以用来创建设计和构造结构的指令。它可以是文字的,也可以是图形的。

图形化的更容易看,也更容易弄清楚项目的各个组成部分是如何相互关联的。

你见过流程图或顺序图吗?那些也是一种最简单形式的图形建模。

Sequence diagram example

有各种建模语言,它们被用于软件开发、系统工程、物理学、项目管理等方面。

用于 UML、SysML 等的 Gaphor

Gaphor 使用 UML、SysML 和 RAAML OMG 标准。它还包括对 C4 模型的支持,用于软件架构的可视化。

它不仅仅是一个 绘图工具。它实现了一个完全兼容的 UML 2 数据模型。你可以用 Gaphor 创建高度复杂的模型。

用 Python 编写的 Gaphor 在 Apache 2 许可证下是完全开源的。你可以在 其 GitHub 仓库 找到它的所有源代码。它是一个跨平台的工具,可以安装在 Linux、Windows 和 macOS 上。

你可以以 PDF、PNG、SVG 和 XML 格式导出你的图表。你还可以插入一个代码生成器。

Gaphor 网站提到它有深色模式,但我在下载的 AppImage 版本中没有看到任何选项可以启用它。

在 Linux 上安装 Gaphor

Gaphor user interface

Arch 用户可以在 AUR 中找到 Gaphor。对于其他发行版,你可以选择 AppImage 和 Flatpak。

你可以从其 下载页面 下载 AppImage。

如果你想使用 Flatpak 版本,请先添加 Flathub 仓库:

flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

然后再安装它:

flatpak install --user flathub org.gaphor.Gaphor

由于 Gaphor 本质上是一个 Python 应用,你也可以 使用 Pip 安装它。

pip install gaphor

当我还是一名软件工程师工作时,我使用 UML 和序列图。在过去的几年里,我没有使用它。看看 Gaphor,我认为如果你必须为你的项目创建 UML 和其他图表,它是一个相当不错的应用。

欢迎试一试,并在评论中分享你的经验。


via: https://itsfoss.com/gaphor-modeling-tool/

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

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

Homebrew(家酿),也被称为 Brew,是一个主要为 macOS 创建的命令行包管理器。

Homebrew 在 macOS 用户中相当流行,因为更多的开发者创造了可以用 Homebrew 轻松安装的命令行工具。

这种流行导致了 Linuxbrew 的诞生,它是 Homebrew 的一个 Linux 移植版。由于它主要是 Git 和 Ruby 组成的,而 Linux 和 macOS 都是类 Unix 的系统,所以 Brew 在两种操作系统上都能很好地工作。

Linuxbrew 项目最终与 Homebrew 项目合并,现在只有一个 Brew 项目,叫做 Homebrew。

为什么我叫它 Brew,而不是 Homebrew?因为命令以 brew 开头。你会在后面的章节中看到它的详细内容。

当你已经有了 apt、dnf、snap 时,为什么还要在 Linux 上使用 Homebrew 包管理器?

我知道这种感觉。你已经有一个由你的发行版提供的好的 包管理器。除此之外,你还有 Snap、Flatpak 和其他通用软件包系统。

在你的 Linux 系统上你真的需要 Homebrew 包管理器吗?答案取决于你的需求。

你看,除了发行版的包管理器和通用包管理器,你会遇到需要其他包管理器的情况,比如 Pip (用于 Python 应用)和 Cargo (用于 Rust 软件包)。

想象一下,你遇到了一个很好的命令行工具,想试试。它的软件库提到它可以使用 brew 或源代码来安装。在这种情况下,在你的系统上有 brew 可能会有帮助。毕竟,都 2021 了,从源代码安装 并不时髦(也不舒服)。

换句话说,如果你遇到一些有趣的命令行工具只提供 brew 安装选项,你会有一个额外的选择。

在 Ubuntu 和其他 Linux 发行版上安装 Homebrew

安装是相当容易的。你只需要确保你已经有了所有的依赖项。

步骤 1:安装依赖项

你需要有相对较新版本的 gcc 和 glibc。你可以 在 Ubuntu 上安装 build-essential 包 来获得它们。除此之外,你还需要 安装 Git、Curl 和 procps(用于监控系统进程)。

在基于 Ubuntu 和 Debian 的系统中,你可以像这样一起安装所有这些东西:

sudo apt-get install build-essential procps curl file git

Iinstall dependencies for Homebrew in Ubuntu/Debian

对于其他发行版,请使用你的包管理器并安装这些依赖项。

步骤 2:安装 Homebrew

你可以看到为什么你需要 安装 Curl。它允许你 在终端下载安装脚本文件

只要输入这个命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

当要求输入回车键时,请按下回车。

Installing Homebrew on Ubuntu

在脚本最后,它建议运行几个命令,将其添加到 PATH 变量中。Homebrew 实际上是安装在你的主目录中,然后软链接到 /usr/local 目录中。

Run the suggested command under Next steps to add Homebrew to PATh variable

你可以 在终端方便地复制和粘贴。只要选择它所建议的命令,按 Ctrl+Shift+C 复制,按 Ctrl+Shift+V 粘贴。

或者,你也可以直接复制粘贴这个命令:

echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> $HOME/.bash_profile

然后是这个:

eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

Adding brew commands to the PATH

步骤 3:验证 brew 的安装

就快完成了。只需通过使用 brew doctor 命令来验证 brew 命令是否可以运行:

brew doctor

brew doctor 命令会告诉你是否有任何问题。

你可以通过安装示例 hello 项目再次验证:

brew install hello

如果你没有看到任何错误,你可以在 Linux 上享用家酿了。

使用 brew 命令来安装、删除和管理软件包

让我快速告诉你几个可以用来安装、删除和管理软件包的 brew 命令。

由于 Homebrew 安装在你的主目录中,你不需要 sudo 来运行它(就像 Pip 和 Cargo)。

要用 brew 安装一个软件包,请使用安装选项:

brew install package_name

这里没有自动完成软件包名称的功能。你需要知道确切的软件包名称。

要删除一个 brew 软件包,你可以使用 removeuninstall 选项。两者的作用是一样的。

brew remove package_name

你也可以用这个命令列出已安装的 brew 软件包:

brew list

你也可以用 autoremove 选项删除不需要的依赖:

brew autoremove

在下一张截图中,我只用 brew 安装了两个软件包,但它也显示了这些软件包的依赖关系。即使在移除软件包后,依赖关系仍然存在。autoremove 终于把它们删除了。

Listing and removing brew apckages

还有很多 brew 命令选项,但这不在本教程的范围内。你可以随时 翻阅它的文档 并进一步探索。

从 Linux 中删除 Homebrew

如果不加入从你的 Linux 系统中删除 Homebrew 的步骤,本教程就不完整。

根据 GitHub 仓库中提到的步骤,你必须下载并使用这个命令运行卸载脚本:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"

你会被要求输入 Y 键来确认删除。

Removing Homebrew from Linux

当 Homebrew 的卸载完成后,它会列出它所遗留的文件和目录:

Remaining files after Homebrew removal

让你自己去删除这些文件和目录。

总结

正如我前面解释的,Homebrew 为你已经有的东西提供了一个扩展。如果你偶然发现一个只有 brew 安装方式的应用,在你的 Linux 系统上安装 Homebrew 会很方便。

你对这个话题有什么要补充的,或者分享你的问题或意见?请在评论区留言。


via: https://itsfoss.com/homebrew-linux/

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

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

终端常常让新用户感到害怕。然而,一旦你了解了它,你就会逐渐开始喜欢上它。好吧,这事往往发生在大多数 Linux 用户身上。

即使你使用 Ubuntu 作为桌面系统,你可能有时也要进入终端。新用户往往对很多事情毫无头绪,在这种情况下,一些基本的 Linux 命令的知识总是有帮助的,但这篇文章不是关于这个。

这篇文章的重点是解释关于使用终端的一些小的、基本的、经常被忽视的东西。这应该可以帮助 Ubuntu 桌面的新用户了解终端,并以更高的效率使用它。

你看到的“ 终端 terminal ”只是 各种终端应用程序 中的一个。毕竟终端只是一个 GUI 工具,它可以让你进入一个可以运行命令的 Shell 。

不同的终端应用程序(正确地应该被称为“ 终端仿真器”)看起来有些稍微不同的功能和特点(如不同的键盘快捷键、颜色组合、字体等)。

本文特别关注 Ubuntu 的默认终端,它是 “GNOME 终端”的一个实现。

1、用键盘快捷方式打开终端

你可以 在 Ubuntu 中打开终端,在系统菜单中寻找到它。然而,我最喜欢的方式是使用 Ubuntu 中的键盘快捷键Ctrl+Alt+T

2、终端、Shell、提示符和命令行

在你看其他内容之前,你应该知道这些不同术语之间的区别,这些术语经常被(不正确地)互换使用。

终端、提示符和命令

“终端”是图形化的应用程序,默认情况下运行 Shell。

Shell 很难与终端分开进行可视化。终端运行着一个 Shell,在 Ubuntu 中通常默认为 Bash shell。和终端一样,也有各种 Shell。Bash 是其中最受欢迎的,也是大多数 Linux 发行版上的默认 Shell。

你输入的命令是由 Shell 解释的。通常人们认为他们在终端看到的屏幕就是 Shell。这适合理解这个概念。

“提示符”是你在输入命令的空格前看到的东西。对于提示符没有固定的标准。在一些旧的终端中,只是在你可以输入命令的地方有一个闪烁的光标而已。在 Ubuntu 终端中,提示符给了你一些信息,你会在本文后面的章节中看到这些信息的细节。

“命令行”不是 Linux 特有的东西。很多操作系统都有一个命令行界面。许多编程语言也都有命令行界面。它是一个术语,用来指你可以运行和执行命令的界面。

Luke Smith 的 这个视频 用例子详细解释了它。言归正传,我在这里就不多说了。

3、了解提示符

你现在已经知道了。你在输入命令的空格前看到的东西叫做“提示符”。它是可配置的,在不同的发行版、终端应用程序和 Shell 中提示符看起来是不同的。

Ubuntu 终端对提示符进行了配置,让你看到一些东西。你可以一目了然地得到以下信息:

  • 用户名
  • 主机名(计算机的名称)
  • 当前工作目录

还有一些你可能想知道的惯例。

提示符中的冒号(:)是一个分隔符,常用来区分主机名和当前位置。

波浪号(~)表示当前用户的主目录。

对于普通用户,提示符以美元($)符号结束。对于 root 用户来说,它以英镑或哈希(#)符号结束。因此有一个笑话说,英镑比美元强。

你是否注意到,当我切换到 root 用户时,命令提示符看起来不一样,没有任何颜色?这又一次提醒了我,提示符不是一个标准,是要明确配置的。对于普通用户来说,Ubuntu 对提示符的配置与 root 用户不同。

像这样的简单信息间接地帮助了我们。在一个多用户环境中,你可以很容易地弄清楚你现在使用的是哪个用户,以及它是否是 root 用户。其显示的路径位置也是有帮助的。

4、目录和文件

在 Linux 中你听到最多的两个术语是目录和文件。

你可能知道什么是文件,但你可能会对“ 目录 directory ”这个术语感到困惑。目录就是“ 文件夹 folder ”。它把文件和文件夹放在里面。

你可以进入目录,但你不能进入文件。当然,你可以读取文件。

你可以用“文件夹”这个词来表示目录,应该没有问题。然而,最好使用“目录”,因为你会在各种教程、文件等中看到引用这个词。你甚至会发现像 rmdirmkdir 这样的命令,暗示它们是处理目录的。

补充说明:在 Linux 中,所有东西都是文件。甚至目录也是一种特殊的文件,里面有文件和目录的地址。我已经在我的关于 硬链接的文章 中解释了这一点。如果你想了解更多关于这个主题的信息,可以参考一下。

5、路径:绝对路径和相对路径

Linux 中的目录结构 类似于一棵树的根。所有的东西都从根部开始,并从那里向外扩散。

如果你要访问一个文件或目录,你需要通过提供它的“路径”来说明如何到达它的位置。这个路径是由目录名和分隔符(/)组成的。如果一个路径以 /(即根)开头,它就是一个绝对路径,否则就是一个相对路径。

路径

绝对路径从根开始,可以很容易地从系统的任何地方引用。相对路径则取决于你在目录结构中的当前位置。

绝对路径与相对路径

如果你在 /home/abhishek 这个位置,有一个名为 scripts 的目录,里面有一个文件 my_script.sh,你想知道这个文件的路径,它的绝对路径将是:

/home/abhishek/scripts/my_script.sh

它的相对路径将是:

scripts/my_script.sh

如果你改变所在位置,文件的绝对路径保持不变。但是,相对路径会改变,因为它是相对于你当前的路径而言的。

相对路径随位置变化但绝对路径保持不变的真实例子

6、 . 和 ..

在使用 Linux 终端时,你可能经常会遇到 ... 符号。

单点(.)表示当前目录。

双点(..)表示父目录(比当前位置高一个目录)。

你经常在相对路径中使用双点(..),或者用于改变目录。单点(.)也用于相对路径中,但更重要的是,你可以在指定当前位置的命令中使用它。

 . 和 .. 的使用

7、理解命令的结构

一个典型的 Linux 命令由一个命令名和选项及参数组成。

命令名 [选项] 参数

“选项”,顾名思义,是可选的。当使用时,它们可能会根据其属性来改变输出。

例如,cat 命令是用来查看文件的。你可以添加选项 -n,它也会显示行数。

选项不是标准化的。通常情况下,它们是由单字母和单破折号(-)组成的。它们也可能是两个破折号(--)和一个单词的形式。

同样的选项在不同的命令中可能有不同的含义。如果你在 head 命令中使用 -n,表明你想看行数,而不是行号。

同样的选项 -n 在 cat 和 head 命令中有不同的用途

在命令文档中,如果你看到方括号([])之间有什么东西,它表示括号中的内容是可选的

同样地,“参数”也没有标准化。有些命令希望用文件名作为参数,有些则希望用目录名或正则表达式。

8、获得帮助

当你开始使用命令时,你可能会记住一些经常使用的命令的选项,但你根本不可能记住所有命令的所有选项。

为什么呢?因为一条命令可能有十多个或二十多个选项。

那么,当你无法记住所有的选项时,你该怎么办呢?你需要“帮助”。我所说的帮助,并不是指在 Linux 论坛 上提问。我指的是使用命令的帮助选项。

每个标准的 Linux 命令都有一个快速帮助页面,可以用 -h—help 来访问。

命令名 -h

它可以让你快速了解命令的语法、常用选项及其含义,在某些情况下还有命令的例子。

cat 命令的帮助页

如果你需要更多的帮助,你可以参考 手册页,即命令的手册。

man 命令名

它涉及到所有的细节,阅读和理解起来可能会让人难以承受。另外,你也可以在网上搜索 “Linux 中 xyz 命令的例子”。

9、Linux 是区分大小写的

Linux 是区分大小写的。你在终端中输入的所有东西都是区分大小写的。如果你不考虑这一点,你会经常遇到 “bash: command not found” 或 “file not found” 的错误。

在主目录中,你的所有文件夹名称以大写字母开头的。如果你要切换到 Documents 目录,你必须把第一个字母保持为 D,而不是 d

Linux 是区分大小写的

你可以有两个分别名为 file.txtFile.txt 的文件,因为对于 Linux 来说,fileFile 是不一样的。

10、运行 Shell 脚本

你可以通过指定 Shell 来 运行一个 Shell 脚本

bash script.sh

或者你可以像这样执行 Shell 脚本。

./script.sh

第二种方法只有在文件有执行权限时才会起作用。更多关于 Linux 文件权限参考这里

运行bash脚本

11、使用制表符补完而不是全部输入

Ubuntu 的终端已经预先配置了制表符补完功能。这意味着如果你开始在终端上输入,然后点击 tab ,它会尝试自动完成它,或者在有多个可能的匹配时提供选项。

它既适用于命令,也适用于参数和文件名。

Tab 完成示例

这可以节省大量的时间,因为你不需要把所有的东西都写完整。

12、Ctrl+C 和 Ctrl+V 不是用来在终端复制粘贴的。

Ctrl+CCtrl+V 可能是复制粘贴的“通用”键盘快捷键,但它在 Linux 终端中不行。

Linux 继承了 UNIX 的很多东西,在 UNIX 中,Ctrl+C 被用来停止一个正在运行的进程。

由于 Ctrl+C 已经被用于停止一个命令或进程,所以它不能再用于复制粘贴。

13、你当然可以在终端复制粘贴

别担心。你仍然可以 在终端中复制粘贴。同样,复制-粘贴的键盘快捷键没有固定的规则,因为它取决于你使用的终端程序或你的配置。

在 Ubuntu 终端中,复制的默认键盘快捷键是 Ctrl+Shift+C,粘贴则是 Ctrl+Shift+V

你可以使用 Ctrl+C 从终端外(如网页浏览器)复制文本和命令,并使用 Ctrl+Shift+V 将其粘贴。同样,你可以高亮显示文本,用 Ctrl+Shift+C 从终端复制文本,用 Ctrl+V 粘贴到编辑器或其他应用程序。

14、避免在终端中使用 Ctrl+S

另一个初学者常犯的错误是使用“通用”的 Ctrl+S 键盘快捷键来保存。如果你在终端中使用 Ctrl+S,你的终端会被“冻结”。

这来自于传统的计算机,在那里没有向上滚动的滚动条。因此,如果有大量的输出行,Ctrl+S 被用来停止屏幕,以便可以阅读屏幕上的文字。

你可以用 Ctrl+Q 来解除终端的冻结。但还是要避免在终端中使用 Ctrl+S

15、注意命令例子中的 $ 和 <>

如果你参考一些在线教程或文档,你会看到一些命令例子中的文本在 <> 内。这表明你需要用一个合适的值来替换与 <> 一起的内容。

例如,如果你看到一个这样的命令:

grep -i <搜索内容> <文件名>

你应该把 <搜索内容><文件名> 换成各自的实际值。(LCTT 译注:不要输入 <>

这表明该命令只是一个例子,你必须用实际值来完成它。

这里需要注意的另一件事是,有些教程显示的命令例子是以 $ 开头的,比如这样:

命令开头的美元符号

这是表明它们是命令(而不是命令输出)的一种方式。但是,许多新的 Linux 用户把前面的 $ 和实际的命令一起复制,当他们把它粘贴到终端时,显然会出现错误。

所以,当你复制一些命令时,如果开头有 $,就不要复制它。你也应该避免复制随机网站的随机命令,特别是当你不了解它的作用时。

既然你正在阅读关于复制命令的文章,当你看到多行的命令在一起时,你应该一次复制一行,然后逐一运行。

避免将多个命令复制在一起

下一节将告诉你如何一次性运行多个命令。

16、你可以同时运行多个命令

你可以 一次运行多个命令 而不需要用户干预。作为 Ubuntu 用户,你可能已经在这个命令的形式中看到了它:

sudo apt update && sudo apt upgrade

在终端中,有三种不同的方法来组合命令:

;命令 1 ; 命令 2先运行命令 1,再运行命令 2
&&命令 1 && 命令 2只有命令 1 成功结束才运行命令 2
` ``命令 1 命令 2`只有命令 1 失败时才运行命令 2

17、停止一个正在运行的 Linux 命令

如果一个 Linux 命令在前台运行,也就是说,它正在显示输出,或者说你不能输入任何其他命令,你可以用 Ctrl+C 键停止它。

我以前讨论过它。它来自于 UNIX 的传统计算时代。

所以,下次你看到像 topping 这样的命令在持续运行,而你想恢复终端控制,只需使用这两个键:Ctrl+C

在 Linux 中用 Ctrl+C 停止一个正在运行的程序

18、清除终端

当我发现我的屏幕被不同类型的输出弄得太杂乱时,我会在开始其他工作之前清除终端屏幕。这只是一种习惯,但我发现它很有帮助。

要清除终端,请使用以下命令:

clear

你也可以使用 终端快捷键 Ctrl+L

19、退出终端

在少数情况下,我看到有人关闭终端程序来退出会话。你可以这样做,但退出终端的正确方法是使用退出命令:

exit

你也可以使用 Ubuntu 终端的键盘快捷键 Ctrl+D

总结

即使你对终端完全陌生,你也可以在终端中做很多额外的事情。你可以:

如果你想了解更多,看看这些 Linux 命令技巧,可以像专家一样使用终端

说实话,要谈的东西太多了。很难确定哪些应该被认为是绝对的基础知识,哪些应该被排除在外。例如,我想避免包括关于路径的信息,因为它需要详细的解释,但在一个地方讲得太详细可能会让人不知所措。

我已经过了在终端中的小东西曾经让我困惑的阶段。如果你是 Linux 终端的新手,或者你还记得你最初使用 Linux 时的挣扎,请随时提出建议对列表进行补充。我可能会根据你的意见更新这个列表。

如果你学到了新的东西,请在评论中提及。我想看看这篇文章是否值得一读 ?


via: https://itsfoss.com/basic-terminal-tips-ubuntu/

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

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