终端主要的目的是可以让我们在文件系统中进行四处浏览和打开/运行某些东西,只是在 windows 上我们之前都是用 GUI 界面进行操作的,现在是在终端中使用 shell 命令进行操作而已。

Shell命令pwd

pwd(Print Working Directoy): 打印当前工作目录,表示的是你当前所在的文件位置

cd

cd(Change Directoy):表明切换当前工作目录,cd 可以接两种形式的命令,一种是相对路径,一种是绝对路径。

  1. 相对路径

    • . 一个 dot 表示是当前工作目录

    • ..两个 dot 表示是当前工作目录的父级目录

  2. 绝对路径: cd 直接跟路径名即可,使用绝对路径是有一个很常见的问题就是如果路径很长,得手动输入路径,这要求很高而且很容易出错,这时有一个小技巧就是 Tab 键,可以书写路径时结合 Tab 键进行联想,终端会自动补全,比如说下图中的去 test 目录,输入一个 te 后按 Tab 就能够自动补全路径。(注意,如果输入的已知路径存在重名,Tab 会推导失败)。

其中在 git bash 里 ~表示的是系统用户根目录

ls

ls(list): 表示的是当前工作目录下的文件列表,其中高亮的表示是文件夹,颜色较浅的就是单文件

mkdir/touch

mkdir 创建文件夹
touch 创建文件

mkdir stuff // 创建stuff文件夹cd stufftouch a.txt // 创建a.txt文件

rm/rf

rm 是删除单个文件的指令

但是 rm 默认情况下是不能删除文件夹的,但是可以通过 r flag 改变这种规则, 表示的是 递归(recursive),它会递归删除 test 文件夹内的所有东西,包括文件夹本身,这个 flag 常和 flag f(-f,–force)结合一起使用,rm -rf something强制递归删除文件夹内的所有东西包括它本身

谨慎使用rm -rf something,这个命令不会有确认删除的提示,而且删除的内容不会出现在回收站内,一旦数据删除不可找回

la

  • l表示”long”,将打印用更详细的数据打印目录内容,包括创键时间修改时间等信息
  • a表示”all”,打印所有的文件,包括隐藏的文件(windows 的资源管理器会默认隐藏一些文件)

终止命令

有时候一些进程是长期执行的,有时候需要中断,一个很常见得场景是本地开启的一个开发服务器进行 Vue 或者 React 开发时,不在开启应用时需要终止这个进程。可以使用ctrl + c,有时候如果ctrl + c不奏效可以使用ctrl + d

如果进入了 Vim 模式的话,退出编辑模式使用ESC,按住:q可以退出模式,编辑后想保存退出使用:wq

开发命令打开 IDE

cd /path/to/project# . 表示当前工作目录code .

package.json 中安装项目依赖

npm install 或 yarn

开发过程中,有时候想快速运行一些第三方库的命令,并统一到 npm script 时就会用到,常见的如测试命令,部署命令,提交命令等等,这些都在 package.json 的 scripts 字段里进行配置。

{  "scripts": {    "start": "react-scripts start",    "build": "react-scripts build",    "test": "react-scripts test",    "eject": "react-scripts eject",    "commit": "cz  }}

package.json 添加/安装新的项目依赖

npm install {库名} --save 或yarn add {库名}

package.json 添加/安装新的dev项目依赖(devDependency)

npm install {库名} --save-dev 或yarn add {库名} --dev

删除某个依赖项目

npm uninstall package --save 或yarn remove package

重新安装依赖

cd path/to/projectrm -rf node_modulesnpm install

升级某个依赖项目

npm update --save 或yarn upgrade

全局安装某项目依赖(慎用)

npm install package -g或yarn global add package

git命令

#  Download a Git repository onto#  your local machinegit clone [URL]#  Check which files have been modifiedgit status -s#  View changesgit diff# Stage all filesgit add .#  Commit staged filesgit commit -m "Short descriptive message"# Create a new local branchgit switch -c [new branch name]# Switch branchesgit switch [branch name]# Push your code to Github (or wherever#  the project lives)git push origin [branch name]#  Start an interactive rebasegit rebase -i [branch name or commit hash]