Linux 终端背后的力量
目录
介绍
搜索、区分、分析、共享、解压缩、加密文件、访问云端计算机、将视频转换为 gif 等。这些是使用命令行可以做的一些事情。
终端是与计算机资源交互的魔杖。它允许实际且灵活的交互,使其成为一个非常强大的工具。
基本上在所有操作系统上(例如 Windows、Android、Mac 等),命令行都是与计算机(或设备)通信的文本界面。
终端,又被称为shell
、、、等等,初次接触时可能会令人感到恐惧和困惑。如同所有新知识一样,起初可能会遇到更多困难。然而,随着我们克服这些障碍,我们迎来了自身的进化。console
prompt
作为一名IT专业人士,了解如何使用终端对于处理日常遇到的问题至关重要。前几天我读到一篇文章,作者说了一句话,让我很感兴趣:
如果你是 Linux 用户,终端可能是你用过的最强大的工具。但终端的问题在于,如果你想从中获益,你需要学习如何使用它。—— Mauro Garcia
我:是的
我很想和同事们分享一些我在外面学到的东西。然后我也把它带到了这里。了解这些知识对我作为一名软件开发人员的日常生活有很大帮助。
我希望我可以帮助您在下次需要打开终端时感觉更舒服一些。
但在我们开始之前......给非英语母语人士一个提示:
用英语思考有助于吸收命令!
如果你像我一样,不是英语母语,我相信你会更理解我的意思。
让我们通过一个例子来理解,该命令pwd
用于Print Working Directory
。在我的语言(巴西语*)中应该是这样的edt
(Write 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 😎
这是下次您的虚拟内存耗尽时的宝贵巫术:
- xkill - 通过 X 资源杀死客户端。基本上,当你发出这个命令时,你的鼠标指针会变成阿尔沃·邓布利多的魔杖。无论你(左键)点击哪里,你点击的地方都会消失。

帮助我们互相帮助的命令
- whatis - 显示一行手册页描述。它有助于在几秒钟内识别任何命令的用途。这就是我上面提到的命令。
- which——定位命令。
- whereis——找到命令的二进制文件、源文件和手册页文件。
- man - 程序手册。系统参考手册的接口。这是做任何事情的入口。程序的相关信息都包含在手册中。
# Try on your terminal
$ whatis whatis which whereis man
拥有自己的片段
代码片段是为实现特定目的而设计的函数。在 Bash/shellscript 中,我们有著名的“单行代码”。我推荐使用它们有两个原因:
-
恐惧:它们显然会让人感到害怕。为了达到某种目的而一连串相互关联的命令?我觉得这太不可思议了,也太可怕了。~~每当我发现自己在运行一个程序时,我都会想,如果它断成两半,我的整个系统都会被毁掉😅。~~这样一来,你就会小心翼翼地使用终端,因为即使是锤子,如果使用不当,也会损坏。
-
还有新闻:您将接触到新的解决方案以及使用已知知识的新方法。
我会在轮子上留下一些参考资料,我们可以在那里查看这些“俏皮话”。😆
实践!
学习和吸收的最佳方式就是实践。所以,让我们通过一些练习,把目前学到的知识付诸实践。我们将使用OverTheWire的“夺旗强盗”游戏。
夺旗游戏是一种竞赛形式,涉及多种技巧,包括解决与 相关的挑战infosec
、夺旗(通常是代码)以及得分。在Bandit中,CTF 关卡在远程计算机上进行,我们将通过ssh终端连接到远程计算机。
Bandit会帮助我们练习并磨练终端的使用技能。从现在开始,一切就交给你了。祝你好运!
反馈💙
- 有什么遗漏或错误的地方吗?或者您有什么建议?请告诉我您的意见!
单行代码
- ⭐ https://linuxcommandlibrary.com/
- ⭐ http://www.bashoneliners.com/
- https://catonmat.net/top-ten-one-liners-from-commandlinefu-explained
- https://www.stefanjudis.com/notes/1025-shell-command-one-liners-on-one-page/
- https://rosettacode.org/wiki/Shell_one-liner
致谢、字体和文章:
- https://dev.to/maurogarcia_19/linux-terminal-the-ultimate-cheat-sheet-2g5b
- https://ubuntu.com/tutorials/command-line-for-beginners#1-overview
- https://www.howtogeek.com/140679/beginner-geek-how-to-start-using-the-linux-terminal/
- https://ctf-br.org/sobre/
- https://wiki.archlinux.org/index.php/Dash
- https://wiki.archlinux.org/index.php/Bash
- https://wiki.archlinux.org/index.php/Command-line_shell
- https://en.wikipedia.org/wiki/Bourne_shell