分类 技术 下的文章

netstat 命令为你的 Linux 服务器提供了监测和网络故障排除的重要观察手段。

 title=

之前的文章中,我分享了一些管理你的个人 Linux 服务器的首要步骤。我简要的提到了监测网络连接的监听端口,我想通过 Linux 系统的 netstat 命令来扩展开讲讲。

服务监测和端口扫描是标准的行业惯例。有很好的软件,如 Prometheus 协助这个过程自动化,SELinux 协助上下文和保护系统访问权限。然而,我相信了解你的服务器是如何连接到其他网络和设备的,是建立正常服务器基准的关键,能够帮助你识别有可能表明错误和入侵等异常情况。作为一个初学者,我已经掌握了 netstat 命令为我的服务器提供了监测和网络故障排除的重要观察手段。

Netstat 和类似的一些网络监测工具被归入 net-tools 软件包 里,用来显示关于活动连接的信息。因为运行在开放的端口的服务往往容易被利用,定期进行网络监测能够帮助你及早探测到可疑的活动。

安装 netstat

netstat 经常预装在 Linux 发行版上。如果 netstat 没有在你的服务器上安装,用你的包管理器安装它。下面是在基于 Debian 的系统上:

$ sudo apt-get install net-tools

在基于 Fedora 的系统上:

$ dnf install net-tools

使用 netstat

就其本身而言,netstat 命令显示了全部建立成功的连接。你可以使用 netstat 的参数指定进一步预期的输出。举个例子,要显示所有监听和非监听的连接,使用 --all-a 为简写)的参数。这将返回许多结果,所以在例子中我用管道符输出给 head 命令来显示输出的前 15 行:

$ netstat --all | head -n 15
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 *:27036                 *:*                     LISTEN      
tcp        0      0 localhost:27060         *:*                     LISTEN      
tcp        0      0 *:16001                 *:*                     LISTEN      
tcp        0      0 localhost:6463          *:*                     LISTEN      
tcp        0      0 *:ssh                   *:*                     LISTEN      
tcp        0      0 localhost:57343         *:*                     LISTEN      
tcp        0      0 *:ipp                   *:*                     LISTEN      
tcp        0      0 *:4713                  *:*                     LISTEN      
tcp        0      0 10.0.1.222:48388        syd15s17-in-f5.1e:https ESTABLISHED
tcp        0      0 10.0.1.222:48194        ec2-35-86-38-2.us:https ESTABLISHED
tcp        0      0 10.0.1.222:56075        103-10-125-164.va:27024 ESTABLISHED
tcp        0      0 10.0.1.222:46680        syd15s20-in-f10.1:https ESTABLISHED
tcp        0      0 10.0.1.222:52730        syd09s23-in-f3.1e:https ESTABLISHED

要只显示 TCP 端口,使用 --all--tcp 参数,或者简写成 -at

$ netstat -at | head -n 5
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address   Foreign Address  State      
tcp        0      0 *:27036         *:*              LISTEN      
tcp        0      0 localhost:27060 *:*              LISTEN      
tcp        0      0 *:16001         *:*              LISTEN

要只显示 UDP 端口,使用 --all--udp 参数,或者简写成 -au

$ netstat -au | head -n 5
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address     Foreign Address    State      
udp        0      0 *:27036           *:*                                
udp        0      0 10.0.1.222:44741  224.0.0.56:46164   ESTABLISHED
udp        0      0 *:bootpc     

netstat 命令参数常常是简单易懂的。举个例子,要显示带有全部进程 ID(PID)和数字地址的监听 TCP 和 UDP 的端口:

$ sudo netstat --tcp --udp --listening --programs --numeric
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address      Foreign Addr  State   PID/Program name    
tcp        0      0 0.0.0.0:111        0.0.0.0:*     LISTEN  1/systemd            
tcp        0      0 192.168.122.1:53   0.0.0.0:*     LISTEN  2500/dnsmasq        
tcp        0      0 0.0.0.0:22         0.0.0.0:*     LISTEN  1726/sshd            
tcp        0      0 127.0.0.1:631      0.0.0.0:*     LISTEN  1721/cupsd          
tcp        0      0 127.0.0.1:6010     0.0.0.0:*     LISTEN  4023/sshd: tux@  
tcp6       0      0 :::111             :::*          LISTEN  1/systemd            
tcp6       0      0 :::22              :::*          LISTEN  1726/sshd            
tcp6       0      0 ::1:631            :::*          LISTEN  1721/cupsd          
tcp6       0      0 ::1:6010           :::*          LISTEN  4023/sshd: tux@  
udp        0      0 0.0.0.0:40514      0.0.0.0:*             1499/avahi-daemon:  
udp        0      0 192.168.122.1:53   0.0.0.0:*             2500/dnsmasq        
udp        0      0 0.0.0.0:67         0.0.0.0:*             2500/dnsmasq        
udp        0      0 0.0.0.0:111        0.0.0.0:*             1/systemd            
udp        0      0 0.0.0.0:5353       0.0.0.0:*             1499/avahi-daemon:  
udp6       0      0 :::111             :::*                  1/systemd            
udp6       0      0 :::44235           :::*                  1499/avahi-daemon:  
udp6       0      0 :::5353            :::*                  1499/avahi-daemon:

这个常用组合简写版本是 -tulpn

要显示一个指定服务的信息,使用 grep 命令过滤

$ sudo netstat -anlp | grep cups
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1721/cupsd           tcp6       0      0 ::1:631                 :::*                    LISTEN      1721/cupsd
unix  2      [ ACC ]     STREAM     LISTENING     27251    1/systemd /var/run/cups/cups.sock
unix  2      [ ]         DGRAM                    59530    1721/cupsd
unix  3      [ ]         STREAM     CONNECTED     55196    1721/cupsd /var/run/cups/cups.sock

接下来的步骤

一旦你运行了 netstat 命令,你就可以采取措施来保护你的系统,确保只有你主动使用的服务在你的网络上被监听。

  1. 识别通常被利用的端口和服务。一般来说,关闭你实际不使用的端口。
  2. 留意不常见的端口号,认识了解在你系统上使用的合法端口。
  3. 密切注意 SELinux 错误。有时你需要做的只是更新上下文,以匹配你对系统做的合法更改,但是要阅读错误警告,以确保 SELinux 提醒你的不是可疑或者恶意的活动。

如果你发现一个端口正在运行一个可疑的服务,或者你只是简单的想要关闭你不再使用的端口,你可以遵从以下这些步骤,通过防火墙规则手动拒绝端口访问:

如果你在使用 firewall-cmd ,运行这些命令:

$ sudo firewall-cmd –remove-port=<port number>/tcp
$ sudo firewall-cmd –runtime-to-permanent

如果你在使用 UFW,运行以下的命令:

$ sudo ufw deny <port number>

下一步,使用 systemctl 来停止这个服务:

$ systemctl stop <service>

理解 netstat

netstat 是一个快速收集你的服务器网络连接信息的有用工具。定期网络监测是了解你的系统的重要组成部分,对帮助你保持你的系统安全有着重要意义。将这一步纳入你的日常管理中,你可以使用类似 netstat 或者 ss ,以及 Nmap 等开源端口扫描器或者 Wireshark 等嗅探器 ,它们都允许设定 计划任务

随着服务器存储了大量的个人数据,确保个人服务器的安全日益重要。通过了解你的服务器怎样连接到互联网,你可以降低你的机器的风险,同时你仍可以在数字时代大量的连接中获得益处。


via: https://opensource.com/article/22/2/linux-network-security-netstat

作者:Sahana Sreeram 选题:lujun9972 译者:hwlife 校对:wxy

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

最近,深度操作系统刚刚发布了 20.05,它添加的 人脸识别功能 引来了社区的关注。

抛开人脸识别的准确度、可靠性,以及是否实用等问题,我们是否可以在其它的 Linux 系统中也获得人脸识别/解锁的的功能呢?

答案是肯定的。这就是本文要介绍的 Howdy 提供的功能。

Howdy 是什么?

据该项目的说明

Howdy 为 Linux 提供了 Windows Hello™ 式的认证方式。使用内置红外发射器和摄像头,结合面部识别功能来证明你是谁。

它使用中央身份验证系统(PAM),适用于任何需要密码的地方,如登录、锁屏、sudosu 等等。

安装

对于 Ubuntu/Linux Mint,可以添加第三方仓库安装:

sudo add-apt-repository ppa:boltgolt/howdy
sudo apt update
sudo apt install howdy

对于 Debian Linux,请在 发布页 下载 deb 安装包:

wget https://github.com/boltgolt/howdy/releases/download/v2.6.1/howdy_2.6.1.deb

然后使用以下命令安装:

sudo dpkg -i howdy_2.6.1.deb  # 请将文件名代替为你下载的文件名
sudo apt install --fix-broken # 使用 --fix-broken 安装缺失的依赖

对于 Fedora Linux,通过 COPR 仓库安装:

sudo dnf copr enable principis/howdy
sudo dnf --refresh install howdy

对于 Arch Linux 和 openSUSE 请参照其 仓库的说明

安装时,会自动下载依赖包和 dlib 的模型。请保证网络通畅。

配置

安装后,运行如下命令来编辑配置文件:

sudo howdy config

请将配置文件中的 device_path = /dev/xxxx 改成你的摄像头路径,它通常是 /dev/video0

如果 /dev 下没有 videoX设备,请检查摄像头驱动是否已经安装。

Howdy 需要了解你的长相,以便以后能识别你。运行如下命令来添加一个面部模型:

sudo howdy add

如果没有出错,我们应该可以通过识别你的脸来运行 sudo。打开一个新的终端,运行 sudo -i 来看看它的运行情况。

排错

解决 Howdy 在 GNOME 锁屏界面不工作的问题

复制如下文件:

https://github.com/boltgolt/howdy/blob/caf244ce297d27d40168c40571b0fad6f7ee2596/src/compare.py

/lib/security/howdy/compare.py 代替即可。


作者简介:

calvinlin:一个普通的深圳初中生。


via: https://github.com/LCTT/Articles/pull/17

作者:calvinlin 编辑:wxy

本文由贡献者投稿至 Linux 中国公开投稿计划,采用 CC-BY-SA 协议 发布,Linux中国 荣誉推出

我们来对基于 Debian 的、由 Openbox 驱动的轻量级 Linux 发型版本 Crunchbang++ Linux 进行了评测,并为你提供了如何使用它的指导。

CrunchBang 项目已经停止维护,CrunchBang++ Linux 是这个独特的项目的继承者。早期的 CrunchBang Linux 很受欢迎,因为它使用非常少的系统资源,对低端硬件也很友好。而 CrunchBang++ 也有一个 32 位的安装程序(现在很少见),可以在过时的硬件或 PC 上正常运行。

在我们之前介绍 顶级轻量级 Linux 发行版 的文章中,有读者评论想让我们介绍 CrunchBang++。因此,我们想从性能、无障碍访问和其他因素等方面对这个超级轻量级的 Linux 发行版做一个深入的研究。让我们深入了解一下。

CrunchBang++ Linux 测评

CrunchBang++ Linux Desktop with Openbox

现场介质和安装

目前为止,CrunchBang++ 基于最新的 Debian 11 Bullseye,并提供 32 位和 64 位 ISO 变体。你可以从其 官方网站 下载。本文中,我们使用 64 位的安装程序,其大小为 1.6 GB,与当今流行的 Linux 发行版的 ISO 大小相比,是很小的。例如,最新的 Ubuntu 64 位桌面 ISO 就很大,已经超过了 3.2 GB。

安装程序的启动菜单提供了测试 现场镜像 Live Image 和启动安装程序的选项。你可以先从现场镜像开始。但是,你不能从现场介质安装!相反,你必须再次启动并选择重新安装选项。 现场桌面 Live desktop 的用户 ID 和密码都是 “live”。

Installation in the boot menu

在物理机和虚拟机(virt-manager)上的安装都很顺利。CrunchBang++ 使用 Debian 的原生安装程序,这有点复杂。但你可以按照屏幕上的指示轻松地安装它。如果你不熟悉 Debian 安装程序,你可以参照我们的 Debian 安装指南

在虚拟机和物理系统上安装过程平均需要约 5 到 10 分钟。

桌面初窥

CrunchBang++ 给你经典的 Openbox 窗口管理器体验。登录屏幕出乎意料的干净和完美,只有输入凭证的选项。

如果你是第一次运行它,有一个欢迎脚本会引导你检查网速,更新你的系统,等等。

The welcome script

Openbox 本身是快速和干净的。桌面以其预先配置的 SBPP Openbox 主题带来了一个整洁的外观,其组件如下:

  • gmrun:一个轻量的应用程序启动器
  • Tint2:桌面顶层的控制面板
  • dmenu:动态菜单系统

你可以通过右键菜单的简单配置选项来配置它们。

默认情况下,可以通过顶部面板切换两个工作区。顶部面板也有基本的托盘图标以满足你的需要。

  • 音量控制
  • 网络连接
  • 语言工具
  • 电量监控
  • 剪贴板管理

作为一个窗口管理器,这里没有应用程序视图。但有了 gmrun 应用程序启动器,启动任何应用程序都超级容易。当你需要启动任何应用程序时,Openbox 右键菜单会给你所有的选项。

无障碍访问和应用程序

CrunchBang++ 只包括最低限度的应用程序,以保持 ISO 和安装的轻便。以下是预装的应用程序。

  • GIMP
  • Thunar 文件管理器
  • Catfish 文件搜索
  • Gnumeric
  • VLC 媒体播放器
  • Filezilla
  • 远程桌面客户端
  • Transmission Torrent 客户端
  • Screenshot 工具
  • Geany 文本编辑器

强大的 Synaptic 软件包管理器会满足你所有的软件需求。LibreOffice 不是默认安装的,所以你需要单独安装它。没有用于集中设置的工具,所以有时你可能会觉得缺少一个设置管理器。

性能和资源占用情况

CrunchBang++ 的性能对于轻量级发行版来说是完美的。

这个发行版使用了 585 MB 的内存,空闲状态下 CPU 占用为 1%。如果你让系统在非活动状态下运行一个小时或更长时间,内存占用会进一步减少到 350 MB 左右。这是一个令人印象深刻的指标。

Performance During Idle State

为了测试重压工作负载,我们在 CrunchBang++ 中打开了以下应用程序的一个实例:

  • Firefox 两个标签页
  • Thunar 文件管理器
  • GIMP
  • Gnumeric
  • 文本编辑器
  • 终端
  • Catfish 文件搜索

整个工作负载占用内存 1.07 GB,CPU 占用为 5% - 7%。

这个发行版的默认安装占用了 4 GB 的硬盘空间。

Performance During Heavy workload State

连接性

我们对它进行了下面列出的各种连接性测试。除了蓝牙,它通过了每一项测试。

  • Wi-Fi 检测和连接 —— 完美通过测试
  • 它在多个显示器和分辨率配置下能正确工作(由于有预装的 ARandR)
  • 自动检测 USB(即使在虚拟机模式下) —— 正常通过测试

没有用于蓝牙的启用、发现和连接的工具(有点像 Xfce 桌面)。所以,如果你安装一个实用程序,你应该都能搞定。

CrunchBang++ 的一些缺点

在我看来,这个 Linux 发行版应该由有一些经验的用户来使用,他们在 Linux 中遇到的问题一般都能通过查阅资料解决,并且在需要时也能自如地使用终端。

我还发现了一些我认为默认安装需要(而没有安装)的项目。在这个发行版中没有办法配置鼠标、键盘。没有预装任何工具。然而,你可以通过终端对它们进行调整。你可能需要安装额外的应用程序来配置这些。

在“最近使用的应用程序”的右键菜单和 Nitrogen 壁纸更换器中有些错误。然而,对于你的日常使用来说,它们并不是一个障碍。

所以,总的来说,我认为它很稳定,尽管有所缺失,但可以很好地工作。

总结

在结束对 CrunchBang++ 的测评时,我不得不说它是一个高效和实用的 Linux 发行版。它可能不是一个闪闪发光的桌面,但它是一个稳定的、生产级的 Linux 发行版,可以在任何硬件上运行。你可以很容易地把它作为你的日常使用系统,并在不用重装你的整个系统的情况下使用它多年。CrunchBang++ 是贡献者们创造出的伟大的软件。


via: https://www.debugpoint.com/2022/04/crunchbang-linux-review/

作者:Arindam 选题:lujun9972 译者:lxbwolf 校对:wxy

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

在 KDE 上创建、检查和扩展压缩的档案。

 title=

当我完成一个项目时,我经常喜欢把为这个项目创建的所有文件放到一个档案中。这不仅可以 节省空间,而且可以让这些文件远离我的视线,防止它们在我使用 findgrep 搜索我当前想要的文件时作为结果出现。一旦文件被归档,它们就会被你的文件系统视为一个单独的对象,这意味着你不能像浏览普通文件夹那样来浏览它们。你可以把它们解压缩来列出档案的内容,或者打开一个终端,运行适当的归档命令,比如 tar 命令。又或者你可以使用一个像 Ark 这样的应用程序来列出、预览、修改和管理你的档案。

在 Linux 上安装 Ark

KDE Plasma 桌面预装了 Ark,你也可以从软件包管理器中获取。在 Fedora、Mageia 和类似的系统中,你可以运行:

$ sudo dnf install ark

在 Debian、Elementary 和类似的系统中,你可以运行:

$ sudo apt install ark

你也可以从 Flathub获取并安装它的 Flatpak 包

创建一个档案

熟悉归档的最好方法就是自己创建一个档案,然后探索它。所有的这些都可以通过 Ark 来完成。

首先,从你的应用程序菜单中启动 Ark,然后进入“ 档案 Archive ”菜单,选择“ 新建 New ”。

 title=

(图源 Seth Kenlon / CC BY-SA 4.0

给你的档案设置一个文件名,使用默认的压缩设置,并将档案保存到你的主目录。

Ark 不会自动创建空的档案,但在你设置好名称和位置后,只要你向其中添加文件,Ark 就会立即创建一个档案。

要向即将建立的档案中添加文件,只需将该文件拖入 Ark 窗口即可。

 title=

(图源 Seth Kenlon / CC BY-SA 4.0

归档有两个好处:合并和压缩。通过把文件添加到档案里,你将许多文件整合到了同一个地方。因为它们已经存在于档案中,所以,如果你想要摆脱这些文件的干扰,你完全以把原始的副本删除掉。

要查看你通过压缩文件节省了多少磁盘空间,你可以进入“ 档案 Archive ”菜单,选择“ 属性 Properties ”。它会显示出文件在归档前/后的大小,同时还有很多其他有用的元数据。

 title=

(图源 Seth Kenlon / CC BY-SA 4.0

Ark 可以做的事情还有很多,但是现在先关闭 Ark,假装你已经使用完毕。你的档案会存放在你声明保存它的位置(在这个例子中,它的名字是 example.tar.gz,位于我的用户主目录中。)

查看档案中的文件

Ark 可以打开任何档案,就像打开一个普通的文件夹一样。要在 Ark 中打开一个档案,只需在文件管理器中左键点击它(单击/双击,取决于你的系统设置)。你也可以右键点击它,并选择“ 用 Ark 打开 Open with Ark ”。

一旦档案在 Ark 中打开,你就可以在文件管理器中进行大部分操作,包括删除文件、添加新文件、预览文件内容等等。

从档案中删除文件

有时候,你会把一个文件放到一个你不需要的档案中。此时,当你想从档案中删除一个文件时,你可以右键单击该文件并选择“ 删除 Delete ”。

 title=

(图源 Seth Kenlon / CC BY-SA 4.0

向档案中添加文件

向档案中添加文件是更加容易的。你只需从文件管理器中把该文件拖拽到 Ark 里。另外,你也可以选择 Ark 右键菜单中“ 添加文件 Add Files ”。

从档案中提取单个文件

当处理一个档案时,许多人会选择解开整个档案,然后寻找他们真正需要的一两个文件。对于小型档案,这勉强说得过去,但对于大型档案来说,这会占用你大量的时间和磁盘空间,哪怕只是暂时的。

有了 Ark,你可以只提取你需要的文件,只要把它们从 Ark 窗口拖到你要保存的地方就行。另外,你也可以选择右键菜单中的“ 提取 Extract ”。

预览档案中的文件

事实上,你并不总是需要提取文件。如果你只是需要快速查看一个文件,Ark 或许可以向你展示一个文件的预览,而不需要将其解压到你的硬盘上。

要预览一个文件,在 Ark 中双击它即可。

 title=

(图源 Seth Kenlon / CC BY-SA 4.0

开始归档吧

在 Linux 桌面上管理档案是非常简单和直观的。Ark 是一个很好的归档工具,许多其他的 Linux 桌面也有类似的工具。因此,即使你不使用 Ark,其他类似的工具也能帮助到你。对我来说,归档很大程度上让我保持了文件的有条不紊、节约了磁盘空间。Ark 的存在使得我们可以很方便地和档案打交道。


via: https://opensource.com/article/22/2/archives-files-linux-ark-kde

作者:Seth Kenlon 选题:lujun9972 译者:lkxed 校对:wxy

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

本指南解释了如何在 KDE Plasma 桌面中配置任务切换器。

Configure KDE Plasma Task Switcher

什么是任务切换器?

任务切换器 是一个帮助你在当前桌面会话中切换打开的窗口或应用的组件。通常,当你按下 Alt+Tab 时,它会显示为一个图标列表。

Thumbnail Grid Task Switcher

而这在 KDE Plasma 中是可以根据你的具体需要高度配置的。你可以定制它的外观、图标的排序、相同应用的分组等等。

改变 KDE Plasma 的任务切换器选项

打开“ 系统设置 System Settings ”。在“ 工作区 Workspace ”组下,点击“ 窗口管理 Window Management > 任务切换器 Task Switcher ”。

Main 标签上, 可视化 Visualisation 部分有一个下拉菜单。这个下拉菜单包含几个任务切换器选项,你可以尝试一下。

选择你喜欢的选项并点击“预览”按钮。如果你感到满意,那么你可以点击“ 应用 Apply ”按钮。

Configure Task Switcher in KDE

这就是如何改变 KDE Plasma 桌面中的任务切换器的方法。

替代切换器

替代 Alternative 选项卡也包含同样的任务切换器的可视化选项。然而,你可以为替代方案配置集设置 Alt+Tab 以外的不同组合键。这样,你可以同时体验两组不同组合的任务切换器。

可视化

截至编写本指南时的 KDE Plasma 5.24,有以下不同的任务切换器:

  • Breeze
  • Breeze Dark
  • Breeze Twilight
  • Compact
  • Fedora
  • Grid
  • Informative
  • large Icons
  • Small Icons
  • Text Only
  • Thumbnail Grid
  • Thumbnails

下面是上述任务切换器的截图。

现在,这就是 KDE Plasma 桌面中任务切换器的基本配置。现在我将解释它在以下情况下是如何表现的。

多显示器或显示屏中的任务切换器

如果你有一个多显示器(显示屏)环境,你不需要做任何事情。任务切换器将根据你的鼠标光标所在的位置显示出来。这意味着它将显示在活动显示器上。

任务切换器与相同的应用分组

你也可以在任务切换器中对相同的应用图标进行分组,以保持其简单明了。例如,如果你打开了多个 Dolphin 文件管理器实例,你可以选择下面的选项,在任务切换器的可视化中只出现一次 Dolphin 图标。

Same application grouping

但你可能想知道如果只出现一次,如何在相同的应用实例中切换。你可以通过任务切换器中的 Alt+`(默认值)来切换相同的应用。下面是你可以根据你的需要和工作来改变的选项。

下载更多的任务切换器

如果你对上述所有的选项不满意,你可以通过同一个设置窗口从 KDE 商店下载更多的任务切换器。

点击上图标注 ❺ 的 “ 获取新的任务切换器 Get New Task Switchers ” ,选择你最喜欢的一个。然后点击“ 安装 Install ”。完成安装后,回到主设置窗口,应用新下载的可视化。

记住,这些额外的项目是用户贡献的,在某些情况下可能会破坏你当前的主题,所以要慎重使用。在任何时候,你都可以点击重置按钮,回到原来的任务切换器视觉效果。

结束语

我希望这篇指南能帮助你在 KDE Plasma 桌面上设置一个漂亮而有效的任务切换器。正如我所说的,自定义选项很多,你可以随意发挥。

感谢阅读。


via: https://www.debugpoint.com/2022/02/configure-task-switcher-kde/

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

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

学习 Linux 终端命令、参数的区别,以及如何使用它们来控制你的计算机。

 title=

距离我的住处几条街远的地方,有一家咖啡馆,我在每个周日都会去那里参加固定的 “ 龙与地下城 Dungeons & Dragons ”(D&D) 游戏。他们有一份菜单,前几次我去点餐时,我总是要翻看好几分钟,才能确定要点些什么。熟悉了之后,我就不用看菜单了,因为我清楚地知道他们在卖什么,也清楚地知道自己想要什么。现在点餐对我来说很简单,只要说一声“老规矩”就好了,接下来就是等待一杯咖啡、一碗薯片和烤饼被送来(通常不方便的是,在我们 做出决定 roll for initiative 的那一刻,但这也不是他们的问题)。(LCTT 译注: 做出决定 roll for initiative 是 D&D 玩家的黑话,它指的是在比赛开始前掷骰子的行为)

与餐厅的菜单类似,计算机的图形界面也为用户提供了操作选项。这里有图标、窗口和按钮,你可以搜索你想要的东西,点击项目,拖动其他项目,操纵图形界面,直到你的任务完成。不过,一段时间后,这可能会变得繁琐,甚至是效率低下。既然你清楚地知道需要做什么,那么,如果只需告诉计算机你想要发生什么,无需耗费大量的体力和脑力来搜索项目、舞动鼠标,就能达到目的,岂不是更好吗?

Linux 终端是什么

Linux 终端是一个基于文本的交互界面,它是用来控制 Linux 计算机的。虽然它只是帮助 Linux 用户完成任何特定任务的众多工具之一,但是它被广泛地认为是最有效的方法。除了编写代码,这无疑是最直接的方法。事实上,它是如此受欢迎,以至于苹果公司将操作系统的基础改为 Unix,从而获得了 Bash 和 Z shell,而微软公司开发了它自己的开源命令行 PowerShell

Linux 命令是什么

命令 commands 是一种特殊的关键词,你可以在终端中使用它,告诉计算机去执行一个动作。大多数命令是很小的应用程序,它们与你的操作系统的其他部分一起安装。你可能没有意识到它们的存在,因为它们通常被保存在相对模糊的目录中,如 /bin/sbin/usr/bin/usr/sbin,但你的终端知道在哪里可以找到它们(多亏了一个叫 PATH 的东西)。其他的命令是内置在终端中的。你不必担心一个命令是安装的还是内置的,无论是哪一种,终端都能执行。更棒的是,在大多数 Linux 发行版上,当终端找不到一个命令时,它会在互联网上搜索提供该命令的软件包,然后会主动为你提供安装软件包、运行该命令的服务。

下面是一个简单的命令:

$ ls

ls 命令是 “list” 的缩写,它会列出当前目录的内容。试一试吧!先打开一个终端窗口,然后打开一个文件管理器窗口(Linux 上叫 “ 文件 Files ”,macOS 上叫 “ 访达 Finder ”,Windows 上叫 “ 资源管理器 Windows Explorer ”)。比较一下这两个窗口,它们是同一数据的两种不同表现方式。

Linux 命令中的参数是什么

参数 argument 是命令中的任意一个“不是命令本身”的部分。例如,要列出一个特定目录的内容,你可以提供该目录的名称作为参数。

$ ls Documents

在这个例子中,ls 是命令,Documents 是参数。该命令将列出 Documents 目录的内容。

Linux 命令中的选项是什么

命令的 选项 option ,也叫 标志 flag 开关 switch ,它是命令参数的一部分。命令参数是跟在命令后面的任何东西,而选项通常(但不总是)用一个连接号(-)或两个连接号(--)来划分。请看下面这个例子:

$ ls --classify Documents

在这个例子中,--classify 是一个选项。它也有一个简短的版本,因为终端用户更喜欢少打点字来提高效率。

$ ls -F Documents

短的选项通常可以合并。下面是一个 ls 命令,它将 -l 选项与 --human-readable-h)、--classify-F) 和 --ignore-backups-B) 选项结合了起来:

$ ls -lhFB

一些选项本身可以带参数。例如,ls--format 选项可以让你改变信息的呈现方式。默认情况下,目录的内容是以列的形式提供给你的,但如果你需要它们显示为逗号分隔的列表,你可以把 --format 设置为 comma

$ ls --format=comma Documents
alluvial, android-info.txt, arduinoIntro, dmschema,
headers.snippet, twine, workshop.odt

等于号(=)是可选的,所以这样做也可以:

$ ls --format comma Documents
alluvial, android-info.txt, arduinoIntro, dmschema,
headers.snippet, twine, workshop.odt

学习使用 Linux 终端

学习如何使用终端可以提高工作效率和生产力,同时也可以使计算变得非常有趣。当我运行一个精心设计的命令时,我常常会坐下来,为我在空白屏幕上输入几个字就能实现的事情而惊叹。终端可是和很多东西相关 —— 编程、诗歌、拼图和实用主义,但无论你如何看待,它都是一个值得学习的持续创新。

在阅读和练习了这些文章中的课程后,你可以下载我们的免费电子书 系统管理员的 Bash 脚本指南,在终端中获得更多乐趣。


via: https://opensource.com/article/21/8/linux-terminal

作者:Seth Kenlon 选题:lujun9972 译者:lkxed 校对:wxy

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