终端是个允许我们运行命令行的程序,运行命令前,先打开它。在MacOS系统上,可以使用macOS应用 Spotlight来打开终端窗口,Spotlight也有其他两种方式触发,一种是键入⌘␣(command和空格键),另一种是点击屏幕右上方的放大镜。一旦你触发了Spotlight,你就可以通过在Spotlight搜索条输入'terminal'开启终端程序。(如果你想使用更高级更个性化的终端程序,我建议安装iTerm, 大家可自愿安装)在Linux系统上,你可以点击终端图标(terminal icon)像图3所示,打开终端后,界面类似图4,可能系统不同,细节会有些许不同

图4:终端窗口

如果你使用不同的操作系统,我建议运用你成熟的技术能力(Box5)弄清楚怎样在你系统上打开终端;例如,如果要在Chromebook上学习如何打开命令行终端,可以Google搜索how to get a command line on a chromebook(在chromebook上如何获得命令行)

在1.基础那节中给出的命令行例子(如图2),包含了一条命令所有关键元素,就像插图5所示,提示(prompt)后紧跟一条命令(command, 正如给计算机一条命令), 接着是选项(option, 如'选择一个不同的选项'), 再接着是参数(argument, 如数学中'函数的参数'),理解提示(prompt)是由终端自动提供,而非自己键入,这非常必要。(确实,如果你要键入的话,它很可能导致一个错误)。此外,提示(prompt)的其他细节也会有不同,但这些细节对于本教程并不重要(见下Box3)。

图5:命令行剖析(可能你的提示会有差异)

Box3: 什么是提示(prompt)

每个命令行开始于一个符号或多个符号,旨在'提示'你采取行动。提示部分通常以美元标记符$结束,这也需依赖于系统的细节信息。例如,在一些系统中提示会像这样:Michael's MacBook Air:~ mhartl$,在图3中,提示又像是这样:[~]$,在图4中,提示又像这样[projects]$。最后,在我看来提示像这样: [learn_enough_command_line (master)]$.
基于本教程的目的,提示(prompt)的细节并不重要,但是我们会在本教程后的下个教程里,讨论自定义提示(prompt)的有效方法Learn Enough Text Editor to Be Dangerous

练习

本教程包含大量练习。我强烈建议在开始下一章节前先做做这些练习,养成这个好习惯,因为这些练习会帮助加强刚才所说内容,并提供刚才讨论的许多命令的基本练习。这些命令在通常情况下都会用到,但如果你突然卡住时,有时继续往前练习,以后再回看这些练习也是个好主意。的确,这同样也适用于主要教程部分, 因为有时确实会很惊讶,当下次回看这些之前觉得不可能的想法或很棘手的问题时,突然又变得很容易理解。

  1. 通过上图5,确定图6中每行的提示(prompt)、命令(command)、选项(option)、参数(argument)和光标(cursor)

    图6: 一些典型的命令

  2. 大多数现代的终端程序都可以创建多个标签,如图7所示,这对组织一系列相关的终端窗口非常有用。通过检查终端程序的菜单选项按钮,如图8所示,找出怎样创建标签。

    图7: 有3个tab的终端窗口

    图8: Mac操作系统上的终端默认的一些菜单选项

最新文章

  1. 第3章 Linux常用命令(5)_网络命令和挂载命令
  2. each循环
  3. 常用的adb命令
  4. 2016CCPC东北地区大学生程序设计竞赛 1001 HDU5922
  5. vc读写注册表
  6. Max Min
  7. Performing Post-Build Event之类的编译错误
  8. strcpy, mencpy, memmove三者区别
  9. Spark&Spark性能调优实战
  10. Java IO学习笔记总结
  11. Java栈与堆 (转)
  12. C语言第一次实验报告
  13. phpstorm中配置真正的远程调试(xdebug)
  14. git clone 指定分支
  15. JS输入框正则校验
  16. Redis相关链接
  17. angular学习笔记(三)-视图绑定数据的两种方式
  18. 封装自己的getClassName函数
  19. FastAdmin 前台会员分组的权限分析
  20. Oracle数据库用户名密码【转载自百度经验】

热门文章

  1. needPrint 不显示打印按钮
  2. Android 进程回收
  3. canvas交互部分
  4. 12 tensorflow实战:修改三维tensor矩阵的某个剖面
  5. leetCode题解之求二叉树最大深度
  6. Python爬虫实战---抓取图书馆借阅信息
  7. Orcal数据库,使用EF的自增处理
  8. Hadoop HBase概念学习系列之HBase里的存储数据流程(二十三)
  9. 【转载】socket 的 connect、listen、accept 和全连接队列、半连接队列的原理
  10. awk.md