命令行入门
给自己弄一个bash环境
本文所使用的系统为Linux,如果你是macOS,大多命令是相通的,你不必担心;如果你使用的是Windows 10,你可以参照此篇博客,不到10分种为你的win10安装一个Linux子系统,如果你是win8/win7/winxp,你可以参考此篇文章使用带有模拟bash环境的命令行终端。
命令行释义
打当你打开你的命令行,通常是这样的
1 | user@PC:~$ |
或
1 | user@PC ~ |
user
指你当前登陆的账户的用户名。PC
是指你当前登陆的主机名。~
指当前你处在的目录,~代表你处在你的用户目录下。$
指示你可以在其后输入命令并执行,并无实际意义,在部分Linux中,此符号为#
。
通常我们需要在命令后输入使用文件路径进行操作,而文件路径中分为绝对路径和相对路径,我们首先要理清这两者的概念。
绝对路径
指该文件/文件夹真实的文件路径,在windows中,我们在经常看见的"C:\Program Files\Adobe\Adobe Photoshop CC 2018"
就是绝对路径。而在Linux中,没有盘符的概念,只有一个根目录/
,在根目录下拥有许多分区,常见的路径是这样的/home/geylun/bilibili
,因此在Linux中你可以认为以/
开头的路径即是绝对路径。相对路径
相对路径其实只是绝对路径一种缩减的写法,方便我们进行路径输入,比如我总喜欢在我/home/geylun/
下做各种操作,我不可能每次都在参数后面跟这一大串路径,相对路径这个办法就出来了,我用.
代表当前目录,..
代表当前目录的上级目录,~
代表我的用户目录,这样在我的文件夹进行各种操作的时候,就只用输入~
。
命令释义
查看
cd
改变你当前的工作目录,这样你可以以相对路径来更方便的输入路径,并且许多命令也只对当前工作目录生效。
如果目录太长,你可以按TAB键自动补全路径。pwd
列出你当前目录的绝对路径ls
列出当前目录里的文件及文件夹。
可选参数-a
显示所有文件(包括以.
开头的隐藏文件)-l
显示详细信息,包括权限、所有者、创建时间-R
递归的列出所有文件及其所在目录(tree更好)
tree
以树状图的方式展示当前目录结构及文件-a
显示所有文件
如果你没有此命令,Linux系统可以输入sudo apt-get install tree
安装tree工具。
cat
从文件中读入字符并打印到屏幕上
有很多参数可选,你可以参照菜鸟教程
创建
注意,命令行是以空格等标记分割参数,如果你输入的文件名包含空格,你最好使用""
包裹它。
touch
如果文件不存在则创建文件,如存在则以当前系统时间修改时间属性echo
回声,输入什么就输出什么
echo是一个很有趣的命令,你输入什么它就输出什么,使用>
重定向就能以指定的文本内容创建文件,例如1
$ echo "Hello world" >init.txt
这样就可以创建一个内容为”Hello world”的文件
每次重新执行会覆盖之前的内容
如果你想追加内容,而不是覆盖原文件,可以这样做1
$ echo "QAQ" >>init.txt
文本内容就会变成
Hello world QAQ
事实上你可以使用>
把任意的标准输出都重定向到新的文件中。cp
复制文件到另一个文件,如果另一个文件不存在则创建。1
$ cp init.txt init.txt.backup
这样就会创建一个init文件的复制。
mkdir
创建一个目录
可选参数-p
确保目录存在,不存在就创建一个
修改
mv
修改文件/文件夹路径,你可以使用此命令进行重名名、移动、覆盖等
比如修改名称1
$ mv init.txt hello.txt
可选参数
-i
如果目标文件存在就询问是否覆盖(默认直接覆盖)-u
若目标文件已经存在,且源文件更新时,才进行覆盖。
rm
删除文件
可选参数r
递归删除,如果文件夹中还有文件夹,会一直查询到没有新的目录为止,然后一个个删除文件夹和文件r
不要询问、警告我。
使用rm -rf
请再三小心!
vim
命令行界面的文字编辑器,你可以使用输入vimtutor
查看它的自带教程。
杂项
clrar
清屏history
查看命令输入历史
命令行技巧
快捷键
TAB
提示命令及补全路径↑
/↓
上一条下一条命令ALT
+.
上一个命令的最后一个参数!!
上一条命令占位符
修改~/.bashrc
可以再.bashrc中添加命令,这些命令会在终端打开时自动执行这些命令
你可以添加
1 | $ cd ~/Desketop |
自动跳转到桌面
1 | alias la='ls -a' |
把 la
定义为'ls -a'
你还可以在这里定义环境变量,这些环境变量会影响到具体命令的执行
1 | export SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass" |