Linux 终端背后的力量

2025-06-08

Linux 终端背后的力量


目录

介绍

搜索、区分、分析、共享、解压缩、加密文件、访问云端计算机、将视频转换为 gif 等。这些是使用命令行可以做的一些事情。

终端是与计算机资源交互的魔杖。它允许实际且灵活的交互,使其成为一个非常强大的工具。

基本上在所有操作系统上(例如 Windows、Android、Mac 等),命令行都是与计算机(或设备)通信的文本界面。

图像

终端,又被称为shell、、、等等,初次接触时可能会令人感到恐惧和困惑。如同所有新知识一样,起初可能会遇到更多困难。然而,随着我们克服这些障碍,我们迎来了自身的进化。consoleprompt

作为一名IT专业人士,了解如何使用终端对于处理日常遇到的问题至关重要。前几天我读到一篇文章,作者说了一句话,让我很感兴趣:

如果你是 Linux 用户,终端可能是你用过的最强大的工具。但终端的问题在于,如果你想从中获益,你需要学习如何使用它。—— Mauro Garcia

我:是的

图像

我很想和同事们分享一些我在外面学到的东西。然后我也把它带到了这里。了解这些知识对我作为一名软件开发人员的日常生活有很大帮助。

我希望我可以帮助您在下次需要打开终端时感觉更舒服一些。

但在我们开始之前......给非英语母语人士一个提示:

用英语思考有助于吸收命令!

如果你像我一样,不是英语母语,我相信你会更理解我的意思。

让我们通过一个例子来理解,该命令pwd用于Print Working Directory。在我的语言(巴西语*)中应该是这样的edtWrite the Working Directory)。

我认为这个例子有助于说明,用英语思考你想做什么有助于理解正在做的事情。这有助于内化你想做的事情。就像ls(list)或cd(change directory)一样。

基本命令

这里有一些需要了解的实用命令。我用一个命令来描述它们,我们稍后再看看哪个是。

  • mv——移动(重命名)文件
  • cp——复制文件和目录
  • rm——删除文件或目录
  • ls——列出目录内容
  • pwd——打印当前/工作目录的名称
  • mkdir——创建目录,创建目录
  • rmdir——删除空目录,删除目录
  • cat——连接文件并在标准输出上打印
  • tac——反向连接并打印文件
  • 更多- 过滤文本,一次一屏
  • less - 与more. 相反,允许在文件中向后移动以及向前移动
  • chown - 更改文件所有者和组,更改文件的所有权
  • chmod - 更改文件模式位,更改文件的权限
  • chattr——更改 Linux 文件系统上的文件属性
  • curl——传输 URL
  • wget——非交互式网络下载程序。
  • tar——归档实用程序
  • gzip - 压缩或解压文件,类似于 Linux 的“WinRar”
  • ping - 向网络主机发送 ICMP ECHO_REQUEST
  • 排序——对文本文件的行进行排序
  • 过滤器- cups 文件转换过滤器接口
  • uniq——报告或省略重复的行
  • 历史- GNU 历史库
  • top——显示Linux进程
  • ps——报告当前进程的快照。
  • pkill——根据名称和其他属性查找或发送进程信号
  • ssh ——OpenSSH 远程登录客户端
  • git——愚蠢的内容追踪器

所有命令都可以在终端中串联,关键在于知道如何操作。串联命令的能力赋予了我们强大的命令行能力。

例如,假设我们想要找出历史记录中的命令,但目前有很多重复和不相关的信息(如参数)......我们可以通过按以下顺序统一 4 个命令来实现:history | cut --delimiter=" " -f 4 | sort | uniq

或者也许您想使用图像作为图标...您可以:

# 1) download the image and 2) encode it on the fly.
curl https://duckduckgo.com/i/bfc48a09.jpg --output - | base64 -
# is now ready to use in an HTML tag 😎
Enter fullscreen mode Exit fullscreen mode

这是下次您的虚拟内存耗尽时的宝贵巫术:

  • xkill - 通过 X 资源杀死客户端。基本上,当你发出这个命令时,你的鼠标指针会变成阿尔沃·邓布利多的魔杖。无论你(左键)点击哪里,你点击的地方都会消失。

图像

帮助我们互相帮助的命令

  • whatis - 显示一行手册页描述。它有助于在几秒钟内识别任何命令的用途。这就是我上面提到的命令。
  • which——定位命令。
  • whereis——找到命令的二进制文件、源文件和手册页文件。
  • man - 程序手册。系统参考手册的接口。这是做任何事情的入口。程序的相关信息都包含在手册中。
# Try on your terminal
$ whatis whatis which whereis man
Enter fullscreen mode Exit fullscreen mode

拥有自己的片段

代码片段是为实现特定目的而设计的函数。在 Bash/shellscript 中,我们有著名的“单行代码”。我推荐使用它们有两个原因:

  1. 恐惧:它们显然会让人感到害怕。为了达到某种目的而一连串相互关联的命令?我觉得这太不可思议了,也太可怕了。~~每当我发现自己在运行一个程序时,我都会想,如果它断成两半,我的整个系统都会被毁掉😅。~~这样一来,你就会小心翼翼地使用终端,因为即使是锤子,如果使用不当,也会损坏。

  2. 还有新闻:您将接触到新的解决方案以及使用已知知识的新方法。

我会在轮子上留下一些参考资料,我们可以在那里查看这些“俏皮话”。😆

实践!

学习和吸收的最佳方式就是实践。所以,让我们通过一些练习,把目前学到的知识付诸实践。我们将使用OverTheWire的“夺旗强盗”游戏。

夺旗游戏是一种竞赛形式,涉及多种技巧,包括解决与 相关的挑战infosec、夺旗(通常是代码)以及得分。在Bandit中,CTF 关卡在远程计算机上进行,我们将通过ssh终端连接到远程计算机。

Bandit会帮助我们练习并磨练终端的使用技能。从现在开始,一切就交给你了。祝你好运!

反馈💙

  • 有什么遗漏或错误的地方吗?或者您有什么建议?请告诉我您的意见!

单行代码

致谢、字体和文章:
鏂囩珷鏉ユ簮锛�https://dev.to/andersonbosa/the-power-behind-the-linux-terminal-189h
PREV
如何在 Docker 中轻松创建 Postgres 数据库
NEXT
网页抓取的注意事项