一、什么是命令行

  • 内核:负责操作系统最底层操作的东西
  • shell:通过命令行负责与内核交互
  • 命令行:cmd、power shell、git bash、zsh

你不能直接操作内核,你需要通过命令行来操作

二、我们为什么需要命令行

  • 因为所有公司的服务器都运行在linux
  • 将工作自动化、自动化是一切生产力的根源
  • 相比GUI,命令行更容易开发维护
  • 远程连接时,命令行占用的资源远低于GUI
  • 命令行上的开发者工具更丰富

三、命令行的历史与流派

  • UNIX家族
  • 奇葩 windows

四、命令的全部要素

  • 四个要素:可执行程序(Executable)、参数、环境变量(Environment variable)、工作目录(Working directory)。以上四个要素就可以重现一个命令
  • 可执行程序:ls -a ls 是可执行程序
    • 去哪里找程序?Windows:Path环境变量 + 当前⽬录,UNIX/Linux:PATH环境变量
    • 脚本语言解释器:在脚本的第⼀⾏指定解释器(shebang)
  • 参数:java -version java 后面的都是参数
  • 环境变量:
    • 进程:进程是计算机程序运⾏的最⼩单位,独占⾃⼰的内存空间和⽂件资源
    • 每个进程都和⼀组变量相绑定,传递不同的环境变量可以让程序表现出不同的⾏为
    • 在进程的fork过程中,环境变量可以被完全继承
    • 所有的操作系统/编程语⾔都⽀持环境变量
    • 有局部和全局的环境变量区分
  • 工作目录:命令所在的目录是工作目录pwd。绝对路径,是从根目录开始的路径。相对路径,相对于当前工作目录的路径