命令行基础
命令行是什么?
命令行界面(command-line interface), 缩写CLI, 是在图形用户界面(比尔盖茨的windows)得到普及之前使用最为广泛的用户界面, 相比命令行而言,图形界面才是异端,世界上第一个程序员(女)就是通过命令行来变成的.
如何学习命令行?
- 背单词(常用的命令行单词)
| Directory | 目录/文件夹 |
|---|---|
| file | 文件 |
| make | 新建 |
| remove | 删除 |
| move | 移动 |
| copy | 复制 |
| list | 罗列列表 |
| link | 链接 |
| find | 查找 |
| echo | 发出回音,重复 |
| touch | 触摸 |
| change | 改变 |
- 缩写
缩写规则: 去掉元音字母(A E I O U), 保留2-3个辅音字母
| 命令 | 全写 | 缩写 |
|---|---|---|
| 创建目录 | make directory | mkdir |
| 删除 | remove | rm |
| 移动/重命名 | move | mv |
| 复制 | copy | cp |
| 罗列 | list | ls |
| 改变目录 | change directory | cd |
- 命令行符号
~: 用户目录/: 第一个/代码整个硬盘, 绝对路径- 以
/开头的路径就是绝对路径 .: 当前目录..: 父级目录$: 提示你可以开始写命令了
- 命令行实操
cd ~/Desktop进入桌面mkdir demo-1创建目录demo-1- rm -rf demo-1 删除目录demo-1
- touch 1.txt 创建一个名字为1的txt文件
- mv 1.txt 2.txt 将1.txt 移动到 2.txt, 也就是将1.txt重命名
- 常见的自带命令
| 操作 | 命令 | 说明 |
|---|---|---|
| 进入目录 | cd | 记住一定要cd到你需要的目录里,不要总是在desktop上操作 |
| 显示当前目录 | pwd | 会显示当前目录的绝对路径(在Desktop输入显示: /Users/xxxx/Desktop) |
| 创建目录 | mkdir 目录名 | mkdir demo-1 |
| 创建多级目录 | mkdir -p 目录名/目录名/.... | mkdir -p demo-1/demo-2/... |
| 我是谁 | whoami | 查看当前电脑用户名 |
| 查看路径 | ls 路径 | cd到桌面也可以直接直接输入ls,就会在界面上看到桌面上 |
| 查看路径(包含隐藏文件) | ls -a | 会显示一些隐藏文件(.git, .DS_Store等等) |
| 查看路径(显示文件的一些信息) | ls -l | 会显示文件的信息,有的看不懂,只能看懂文件的创建或者更新时间 |
| 查看路径(查看所有文件包含隐藏文件的信息) | ls -la | 就是上面两个的结合 |
| 创建文件 | echo '1' > 文件路径 | echo 'Hello' > 1.txt 创建一个1.txt的文件(如果文件不存在的话), 并将文本Hello写入到1.txt文件中 |
| 强制创建文件 | echo '1' >! 文件路径 | echo 'World' >! 1.txt 强制创建一个1.txt的文本,如果之前存在1.txt文件,也会将其覆盖替换,此时文件内容显示World,不会显示Hello |
| 追加文件内容 | echo 'World' >> 文件路径 | echo 'Peace' >> 1.txt 此时1.txt里会显示两个World Peace |
| 创建文件 | touch 文件名 | 也是创建文件,但是echo可以创建的同时并写入内容,而touch不可以 |
| 改变文件更新时间 | touch 文件名 | 在touch一遍已存在的文件,就是更新文件时间 |
| 复制文件 | cp 源路径 目标路径 | cp 1.txt 2.txt 会复制一份2.txt, 1和2的内容一样 |
| 复制目录 | cp -r 源路径 目标路径 | -r r的意思就是递归,遍历源路径目录,依次cp,直达无内容为止 |
| 移动节点 | mv 源路径 目标路径 | mv 1.txt 2.txt 就是将1.txt里的内容覆盖到2.txt中,并将1.txt文件删除 |
| 删除文件 | rm 文件路径 | rm 1.txt, 删除会你是否删除yer/no |
| 强制删除文件 | rm -f 文件路径 | rm -f 1.txt 直接删除了,不会询问你 |
| 删除目录 | rm -r 目录路径 | rm -r demo-1 删除目录文件,包括目录下的所有子目录以及文件, 会询问你是否删除 |
| 强制删除目录 | rm -rf | rm -rf demo-1 删除目录文件,不会询问 |
| 查看目录结构 | tree | 就是结构 |
| 建立软链接 | ln -s 真实文件 链接 | ln -s 1.txt 1s.txt 创建替身(并不是快捷方式,虽然有个windows很熟悉的小箭头),一般npm安装一些东西的时候,都会创建软链接 |
| 下载文件 | curl -L 网址 > 文件路径 | curl -L www.baidu.com > baidu.html 就会将百度首页下载下来, 并保存为baidu.html, 但不会下载图片资源 |
| 拷贝网页 | wget -p -H -e robots=off 网址 | wget -p -H -e robots=off www.baidu.com , 会下载百度首页的代码以及图片资源(用了这个命令,会感觉自己和黑客一样0.0) |
| 查看磁盘占用 | df -kh | 磁盘使用情况 |
| 当前目录大小 | du -sh | 目录大小 |
| 各文件大小 | du -h | 会查看目录中所有文件的大小 |
| 查看文件内容 | cat 1.txt | 查看文件文本内容 |
| 查看域名拥有者 | whois baidu.com | 查看域名信息 |
- 搜索
Google: Linux 你想要查找的命令 例如: Linux 查看文件内容
- 常用查看命令网址
- Too Long; Didn't Read 太长不要读
- explainshell 命令行解释
小结
一个程序员不会命令行是说不过去的, 比如Gulp, Webpack, SASS, Node.js, Vue, React, Angular开发的时候, 他们没有除了命令行以外的任何界面提供!