- A+
终端主要的目的是可以让我们在文件系统中进行四处浏览和打开/运行某些东西,只是在 windows 上我们之前都是用 GUI 界面进行操作的,现在是在终端中使用 shell 命令进行操作而已。
Shell命令
pwd
pwd(Print Working Directoy): 打印当前工作目录,表示的是你当前所在的文件位置
cd
cd(Change Directoy):表明切换当前工作目录,cd 可以接两种形式的命令,一种是相对路径,一种是绝对路径。
-
相对路径
-
.
一个 dot 表示是当前工作目录 -
..
两个 dot 表示是当前工作目录的父级目录
-
-
绝对路径: cd 直接跟路径名即可,使用绝对路径是有一个很常见的问题就是如果路径很长,得手动输入路径,这要求很高而且很容易出错,这时有一个小技巧就是 Tab 键,可以书写路径时结合 Tab 键进行联想,终端会自动补全,比如说下图中的去 test 目录,输入一个 te 后按 Tab 就能够自动补全路径。(注意,如果输入的已知路径存在重名,Tab 会推导失败)。
其中在 git bash 里 ~
表示的是系统用户根目录
ls
ls(list): 表示的是当前工作目录下的文件列表,其中高亮的表示是文件夹,颜色较浅的就是单文件
mkdir/touch
mkdir 创建文件夹
touch 创建文件
mkdir stuff // 创建stuff文件夹 cd stuff touch 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/project rm -rf node_modules npm install
升级某个依赖项目
npm update --save 或 yarn upgrade
全局安装某项目依赖(慎用)
npm install package -g 或 yarn global add package
git命令
# Download a Git repository onto # your local machine git clone [URL] # Check which files have been modified git status -s # View changes git diff # Stage all files git add . # Commit staged files git commit -m "Short descriptive message" # Create a new local branch git switch -c [new branch name] # Switch branches git switch [branch name] # Push your code to Github (or wherever # the project lives) git push origin [branch name] # Start an interactive rebase git rebase -i [branch name or commit hash]