对初学者有用的终端命令!

2025-05-25

对初学者有用的终端命令!

该备忘单最初发布在malikbrowne.com上。

喜欢学习新的命令和工具来优化我的 Mac 工作流程。自从我开始使用更多面向终端的应用程序以来,我有一些常用的命令想与初学者和终端爱好者分享。

注意:本文假设您使用某种类型的UNIX shell,并优先考虑 Mac。其中一些命令可能无法在 Windows CMD/Powershell 上运行。

基本命令

Shell 中的命令有多种使用方式 - 但我认为需要学习的重要命令主要分为三大类:

  1. 导航和使用文件和目录
  2. 操作输入的输出
  3. 寻找事物

导航和使用文件和目录

在计算机上,文件和目录(也称为文件夹)负责管理信息。以下是一些命令,可帮助您更轻松地处理文件:

  • cd- 导航到不同的目录
  • pwd- 查看当前目录的名称
  • ls- 列出当前目录中的所有文件
  • mkdir- 创建新目录
  • touch- 创建新文件
  • cp- 复制文件
  • mv- 移动文件或目录
  • rm- 删除文件或目录
  • zip- 将文件压缩为 zip 档案
  • unzip从 zip 档案中提取文件
  • chmod- 允许您使文件可执行并更改您的机器授予它的权限。
    • 为了使文件可执行,您可以输入chmod +x [name of file]
  • tar- 允许你在 Linux 命令行中使用 tarball。它有很多用途,包括系统包管理。
    • tar -cvf允许您创建.tar档案
    • tar -xvf允许您“解压” .tar档案
    • tar -tvf列出.tar档案的内容

荣誉提名:sudo

sudo是 bash 界面中非常广泛使用的命令,允许您以管理员或 root 权限运行命令。

/例如,如果您在没有权限的情况下编辑机器根目录(也称为路径)中的任何文件sudo,您将被拒绝编辑该文件的权限。

为了您的安全,您的计算机不允许您使用sudo'd 命令执行一些操作,即运行 bash 脚本。

操作输入的输出

通常,编写脚本时您要实现的目标是通过文本运行过滤器、检查服务器的输出日志或对多个文件运行批处理命令。

以下是一些有助于操作文件输出的命令:

  • cat- 显示文件的内容
  • head- 显示文件的前几行
  • tail- 显示文件的最后几行
    • 使用-f标志tail将允许您查看文件的更新。这对于跟踪服务器的日志输出非常有帮助。
  • |- 管道符接受一个命令的输出并将其用作另一个命令的输入
  • *- 匹配文件名中的零个或多个字符
    • 实际上,有一整套通过 glob 匹配多个文件和名称的方法!
  • ?- 匹配文件名中的任何单个字符
  • >- 将命令的输出存储到文件中,如果文件不存在则创建新文件
    • 警告:这将覆盖并替换原始文件中的所有内容。
  • >>- 将命令的输出连接到文件,如果未找到则创建新文件

寻找东西

  • echo- 显示文本或其他命令的编译文本。非常适合测试命令。
  • grep- 允许您使用某种模式或正则表达式逐行查找结果。
  • ack- 类似于 grep,但具有更好的代码搜索功能,因为它知道在您期望搜索的地方进行搜索。(忽略版本控制目录等)

我发现的其他有用命令

  • pbcopy- 将选定的文本复制到剪贴板缓冲区
  • history- 打印会话的命令历史记录
    • 这对于 grep 和管道符号非常有用,它允许您搜索历史记录:history | grep [part of command]
  • pbpaste- 将剪贴板缓冲区中选定的文本粘贴到终端中
  • curl- 允许您通过 RESTful 端点进行 HTTP 调用
  • kill- 根据进程 ID(pid)终止正在运行的进程
  • killall- 终止特定类型的所有正在运行的进程
  • lsof -i tcp:[port number here]- 列出特定端口上所有正在运行的进程
    • 当你遇到如下错误时,这个特别有用:
    Error: listen EADDRINUSE :::3005
        at Object.exports._errnoException (util.js:1023:11)
        at exports._exceptionWithHostPort (util.js:1046:20)
        at Server._listen2 (net.js:1261:14)
        at listen (net.js:1297:10)
        at Server.listen (net.js:1375:9)
        at Object.<anonymous> (/path/to/node/server/server.js:15:34)
        at Module._compile (module.js:571:32)
        at loader (/path/to/node/modules/node_modules/babel-register/lib/node.js:144:5)
        at Object.require.extensions.(anonymous function) [as .js] (/var/www/html/gcsbpo/rocc/node_modules/babel-register/lib/node.js:154:7)
        at Module.load (module.js:488:32)
Enter fullscreen mode Exit fullscreen mode

它提供了一种简单的方法来找出 pid 以终止正在运行的进程。

快捷方式/提示和技巧

  • !$扩展前一个命令的最后一个参数。用于在同一文件上链接命令
  • !!- 重复执行最后一条命令
    • 这些都归功于托马斯
    • ![number]:重复历史记录中的命令(您可以使用 fc -l 查看可用的命令历史记录(或使用 fc -l 1 查看历史记录的所有内容)
    • !! [额外内容]:重新执行上一个命令,并在命令末尾添加内容。
    • [额外内容]!!:重新执行上一条命令,并在命令开头添加 [额外内容]。这对于以普通用户身份执行需要运行的操作非常方便。sudo
    • !!:s/[SEARCH]/[REPLACE]:重新执行上一个命令,将第一个子字符串 [SEARCH] 替换为 [REPLACE]
    • !!:s/[SEARCH]/[REPLACE]:重新执行上一个命令,将所有子字符串 [SEARCH] 替换为 [REPLACE]
  • clear- 清除终端的所有输出,旧输出仍然可以通过向上滚动访问
  • CMD + k- 清除会话中的所有输出,仅保留以前调用的命令
  • CTRL + c- 中止当前正在运行的进程并关闭它。
  • CTRL + z- 暂停(SIGSTP)任何当前正在运行的进程
    • 注意: CTRL + C中止该过程,但CTRL + z使其在内存中处于空闲状态。
  • CTRL + a- 带你到 bash 输入的开头
  • CTRL + e- 带你到 bash 输入的末尾
  • CTRL + u- 清除光标前的所有输入
  • CTRL + r- 打开一个提示,搜索会话中的先前命令

结论

学习如何导航终端一开始肯定是令人生畏的,但花一些时间编写脚本后,您会发现这些命令可以为您节省大量日常任务的时间。

就我个人而言,我开始达到通过终端导航比使用 Finder 更快的程度。

如果您有任何命令、快捷键或技巧可以添加到这篇文章中,请给我留言!我很乐意添加更多。

文章来源:https://dev.to/milkstarz/helpful-terminal-commands-for-beginners-5cjh
PREV
揭秘 React Hooks:useCallback 和 useMemo
NEXT
2021 年值得关注的 7 个 JavaScript 博客