网站首页 > 技术文章 正文
程序员在编程过程中经常使用终端应用程序来完成各种活动,例如输入 Git 命令、运行构建脚本和执行自动化脚本。几乎所有的 GUI 操作系统都有内置的终端程序,让用户通过命令行界面 (CLI) 执行任务。
每个终端程序通常将用户输入的命令发送到命令行解释器以获取输出。例如,当您输入 mkdir 以创建新目录时,终端程序会/usr/bin/mkdir 通过命令行解释器(如 Bash)使用输入参数执行该过程。接下来,mkdir 二进制文件使用 mkdir 系统调用创建一个新目录,并将输出定向回终端。
我们可以在终端上运行各种命令来执行不同的操作。这些命令在 GNU/Linux 和 macOS 等类 Unix 操作系统上几乎相同。
大多数程序员更喜欢在编程期间与操作系统进行基于终端的交互。 因此,您使用终端程序的方式直接影响您的编程速度。
一、使用后台任务
我们通常在终端上输入短时命令。例如,该 git status 命令立即显示当前存储库状态并退出。有时,我们必须运行命令来执行长时间运行的任务,例如打开 GUI 文本编辑器来编辑文件、安装新包以及通过 Internet 克隆存储库。在这些情况下,大多数程序员往往倾向于打开带有更多选项卡的多个 shell 实例。但是,几乎所有的命令行解释器都提供了在一个 shell 实例中管理这些长时间运行的任务的功能。
在类 Unix 操作系统中有不同的后台任务模式。最简单和最有用的后台任务类型是我们可以从与号 ( &) 字符开始的任务类型。
./download.sh &> /dev/null &
二、学会更快速地检索命令
练习更快地打字并不是程序员可以更快地输入终端命令的唯一秘诀。每个终端应用程序都提供了一组键盘快捷键,让您在输入终端命令时更有效率。每个开发人员都知道使用箭头键获取先前输入的命令并使用 Tab 键自动完成。但是您知道如何在编辑命令时更快地移动光标吗?尝试按 Ctrl + A 和 Ctrl + E 分别转到开始和结束。
有时,我们经常要查找前段时间输入的命令。有两种方法可以在不多次按下向上箭头键的情况下选择旧命令。如果你喜欢用鼠标,把 grep 命令和 history 命令结合在一起.
history|grep git
按 Ctrl + R 并输入命令的一部分。接下来,按 Ctrl + R 直到找到所需的命令。
顺便给大家分享一下,民族企业大厂前后端测试捞人,待遇给的还不错,感兴趣的可以来试试!
三、尝试在终端内进行所有文件操作
我们经常需要在编程任务期间创建新文件、删除文件夹和复制文件。您无需离开终端即可执行这些文件操作。尽管内置的 GUI 文件浏览器提供了更好的文件可视化概览,但它降低了文件操作的效率,因为我们必须进行大量的点击和鼠标移动。您最喜欢的代码编辑器可能会提供一些功能来执行文件操作,但您仍然必须使用 GUI。
练习使用 touch,cp,mv,rm,和 mkdir 命令而不是使用 GUI 文件管理器应用程序。但是,请小心使用诸如此类的命令,rm 因为一旦您使用 force 选项,它就不会要求您确认。
四、使用 JavaScript 或 Python 编写现代自动化脚本
当我们每天不得不在终端上输入重复的命令时,我们通常会编写一个包含所有命令的 shell 脚本。大多数程序员使用 Bash 编写他们的自动化脚本。Bash 非常适合编写 shell 脚本,但并不适合构建所有自动化脚本。如果您需要使用多行字符串模板创建文件怎么办?Bash 是一种命令语言。因此,它没有提供所有开发人员友好的语法和功能来编写现代自动化脚本。
尝试选择一种替代编程语言来编写现代自动化脚本。JavaScript 和 Python 是很好的替代品。每个类 Unix 操作系统都预装了 Python 版本。此外,许多程序员已经在他们的计算机上安装了 Nodejs。因此,您可以使用 Python 和 JavaScript 编写类似于 Bash 的可移植自动化脚本。您也可以使用这些替代方法为 CI/CD 服务器编写自动化脚本。
您可以使用 zx 或 shelljs 使您的 JavaScript 实用程序脚本看起来类似于 Bash。另一方面,shellpy 可以帮助您编写类似 Bash 的 Python 脚本。
五、始终检查命令选项和可能的组合
特定的终端命令通常执行一个操作。例如,该 tac 命令以相反的顺序显示提供的文件的行。此外,一些外部命令带有子命令。几乎所有命令通常都支持多个命令行选项来控制内部行为。有时,这些命令行选项可以通过跳过其他命令来帮助我们加快工作速度。
创建多级目录
mkdir -p ./src/core/filesystem
shell 解释器支持两种方式在一行内运行一系列命令:通过分号 ( ;) 或两个&&与号 ( ) 和管道分隔命令。我们确实可以创建一行代码来提高我们的生产力,而不是一次键入一个命令。以下单行递归地创建一组目录并将当前工作目录设置为最近创建的目录:
mkdir -p ./src/core/filesystem && cd $_
批量创建 5 个文件
touch script_{1..5}.py
猜你喜欢
- 2025-08-06 Linux文本三剑客:grep/sed/awk组合技,文本处理难题轻松解决
- 2025-08-06 Linux面试最高频的5个基本问题
- 2025-08-06 Linux/unix中 grep 正则使用示例
- 2025-08-06 Linux如何自动释放缓存
- 2025-08-06 pdfgrep:PDF 文本搜索的强大工具
- 2025-08-06 java开发常用的Linux命令,高频的没你想象的多
- 2025-08-06 Linux系统中有关mount与umount命令的使用指引
- 2025-08-06 Linux进程管理
- 2025-08-06 Linux三剑客之sed命令详解,小白也能看得懂!
- 2025-08-06 常见文件系统格式有哪些
- 08-06中等生如何学好初二数学函数篇
- 08-06C#构造函数
- 08-06初中数学:一次函数学习要点和方法
- 08-06仓颉编程语言基础-数据类型—结构类型
- 08-06C++实现委托机制
- 08-06初中VS高中三角函数:从"固定镜头"到"360°全景",数学视野升级
- 08-06一文讲透PLC中Static和Temp变量的区别
- 08-06类三剑客:一招修改所有对象!类方法与静态方法的核心区别!
- 1531℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 692℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 536℃MySQL service启动脚本浅析(r12笔记第59天)
- 501℃启用MySQL查询缓存(mysql8.0查询缓存)
- 500℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 486℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 469℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 467℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- windowsscripthost (69)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (70)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)