- 命令行是什么?(why)
- 为什么要学命令行?(what)
- 怎么学命令行?(how)
- Vim及学习资源
- 命令行技巧
命令行是什么?
命令行界面(英语:command-line interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(character user interface, CUI)。
简单来说,黑窗口,就是没有图形用户界面(GUI),都是通过代码操作。
为什么要学命令行?
- 因为现代的前端工具,都没有提供图形界面,只有命令行界面,所以从实用角度出发,前端必须学命令行
- 包括 Gulp、Webpack、SASS、Node.js、Vue、React、Angular
- 你不学命令行还怎么混?
怎么学命令行?
- 背单词,学缩写
- 学习常用的命令及快捷键
- 练一练
1. 背单词,学缩写
英文 | 翻译 |
---|---|
directory | 目录、文件夹 |
file | 文件 |
make | 新建 |
remove | 删除 |
move | 移动 |
copy | 复制 |
list | 罗列 |
link | 链接 |
find | 查找 |
echo | 发出回音、重复 |
touch | 触摸 |
change | 改变 |
你基本已经学会命令行了。接下来我们学习这些单词的缩写
命令 | 全写 | 缩写 |
---|---|---|
创建目录 | make directory | mkdir |
删除 | remove | rm |
移动 / 重命名 | move | mv |
复制 | copy | cp |
罗列 | list | ls |
改变目录 | change directory | cd |
缩写规则就是:删掉元音字幕(A E I O U),保留前 2 到 3 个辅音字母
2. 学习常见的自带命令
操作 | 命令 | 解释 |
---|---|---|
进入目录 | cd | |
显示当前目录 | pwd | |
创建目录 | mkdir 目录名 | |
创建目录 | mkdir -p 目录路径 | 如果有特殊字符,必须加引号,表示一个整体mkdir -p "demo2/demo3"
|
我是谁 | whoami | 显示当前电脑的用户名 |
-- | -- | |
查看路径 | ls 路径 | 所有以点开头的都不显示 |
查看路径 | ls -a 路径 | 显示该目录(当前目录)下的所有文件,可以显示隐藏文件(以点开头的文件夹) |
查看路径 | ls -l 路径 | 运行ls -l ,可以显示该目录(当前目录)中内容的更多信息 |
查看路径 | ls -al 路径 | 显示该目录(当前目录)下的所有文件(包括隐藏文件)和更多信息,效果是ls -a 和ls -l 的叠加 |
-- | -- | |
创建文件 | echo '1' > 文件路径 | 第一次创建文件 |
强制创建文件 | echo '1' >! 文件路径 | 计算文件已存在,强制重新覆盖 |
追加文件内容 | echo '1' >> 文件路径 | |
创建文件 | touch 文件名 | |
改变文件更新时间 | touch 文件名 | |
-- | -- | |
复制文件 | cp 源路径 目标路径 | cp 1.txt 2.txt |
复制目录 | cp -r 源路径 目标路径 | cp -r demo-2 demo-22 |
-- | -- | |
移动节点 | mv 源路径 目标路径 | 修改文件名 |
-- | -- | |
删除文件 | rm 文件路径 | |
强制删除文件 | rm -f 文件路径 |
-f 忽略不存在的文件,永远不要提示 |
删除目录 | rm -r 目录路径 |
-r 递归删除目录及其内容 |
强制删除目录 | rm -rf 目录路径 |
-rf 上面两个的叠加 |
-- | -- | |
查看目录结构 | tree(Windows 不支持 tree) | |
建立软链接 | ln -s 真实文件 链接(Windows 不支持ln -s ) |
本质并不是快捷方式 |
-- | -- | |
下载文件 | curl -L https://www.baidu.com > baidu.html | |
拷贝网页 | wget -p -H -e robots=off https://www.baidu.com (Windows 不支持 wget) | |
磁盘占用 | df -kh | |
当前目录大小 | du -sh . | |
各文件大小 | du -h |
快捷键
- <kbd>↑</kbd> <kbd>↓</kbd> 上一命令 / 下一命令
- <kbd>!</kbd><kbd>!</kbd> 上一命令占位符
- <kbd>Tab</kbd> 自动补全路径
- <kbd>Alt</kbd>+<kbd>.</kbd> 上一命令的最后一个参数
-
&&
前面的执行成功了,再执行后面的 -
||
前面的执行失败了,就执行后面的 -
;
前面执行完了,不管成功失败,就执行后面的 -
>
重定向 -
|
管道
3. 练一练
-
cd ~/Desktop
进入桌面 -
mkdir demo-1
创建目录,这时你可以切到桌面,看到 demo-1 目录 -
rm -rf demo-1
删除目录 -
touch 1.txt
创建文件,如果你发现文件后缀不见了,请让该死的 Windows 显示文件后缀 -
mv 1.txt 2.txt
这样我们就把 1.txt 移到 2.txt 了,也就是重命名
Vim
如何退出vim
- 强制退出(不保存):狂按 ESC,然后按下 :q! 回车
- 保存后退出:狂按 ESC,然后按下 :wq 回车
如何学习 vim
vim 被誉为 编辑器之神。
如果你想要入门 vim,下面是三个教程:
- 在命令行输入 vimtutor ,即可查看官方自带的中文教程。看完它。
- 简明 VIM 练级攻略
- 一个 vim 游戏
命令行技巧
①~/.bashrc
操作步骤(预先执行命令)
- 首先
touch ~/.bashrc
创建一下这个文件 -
start ~/.bashrc
选用编辑器编辑这个文件,内容为echo 'Hi'
- 你也可以用命令行编辑文件
echo "echo 'hi'" >> ~/.bashrc
- 关闭退出 Git Bash,然后打开 Git Bash,是不是看到了 Hi,这说明每次进入 Git Bash,就会优先运行 ~/.bashrc 里面的命令
- 重新编辑 ~/.bashrc,内容改为
cd ~/Desktop
,重启 Git Bash,有没有发现默认就进入桌面目录了?
注:你可以用 ~/.bashrc 在进入 Git Bash 前执行任何命令(例如:提前切换到桌面目录),十分方便
②alias
利用这个alias技巧,我们可以把很多常见的命令缩写一下,比如
alias la = "ls -a"
alias ll = "ls -l"
alias gst = "git status -sb"
alias ga = "git add"
alias ga. = "git add ."
alias gc = "git commit"
alias gc. = "git commit ."
保存退出,然后运行source ~/.bashrc
(作用是执行 ~/.bashrc
)
通过这个技巧,简化了Git操作了
ga 1.txt
③环境变量
还可以在 ~/.bashrc 里面设置一些环境变量,比如你可以在 ~/.bashrc 里面添加一行
export SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"
那么以后你安装 node-sass 的时候就不会因为被墙而报错了。以后会用到的,现在先说一下。
④设置 PATH
在 .bashrc 里面写下
export PATH="目录的绝对路径:$PATH"
可以在 PATH 里添加一个目录。看不懂这句话没关系,等你用得到的时候你再回来看。
命令行学习资源
拓展思考:
1. 命令行(Command Line Interface)与图形用户界面(GUI)的优缺点分别是什么?
他们之间的关系可以个一句话来概括。GUI的优点就是CLI的缺点,而CLI的优点又是GUI的缺点。
命令行的优点:
- 命令行界面要较图形用户界面节约计算机系统的资源
- 使用命令行界面往往要较使用图形用户界面的操作速度要快
命令行的缺点:
- 不方便普通用户操作
- 需要用户记忆操作的命令
图形用户界面的优点:
- 减少用户的认知负担
- 保持界面的一致性
- 满足不同目标用户的创意需求
- 用户界面友好性
- 图标识别平衡性
- 图标功能的一致性
- 建立界面与用户的互动交流
- 更为人command-line interface性化的视觉优化
- 更具识别性的图标及其他元素
- 更具可操控性和扩充性的使用易用性
- 更具有企业品牌特色的视觉识别性
参考链接:https://github.com/wangyao11/gui-and-cli/blob/master/REAdME.md
2.绝对路径与相对路径的区别
以 / 开头的路径就是绝对路径
有人问我(你家在哪里?),我就会讲
- 在XX超市旁边—相对路径
- 在XXX(照着身份证上的念一遍)—绝对路径