🌞

Bash命令行

1. 命令缩写

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
file                                         make -> mk

directory -> d / dir                         change -> c

change directory -> cd                       move -> mv

remove -> rm                                 copy -> cp

list -> ls                                   link -> ln

clear -> 清屏                                 recursive -> r (递归)

/ :根目录                                     ~ :用户目录

./ :当前目录                                  ../:父级目录

pwd -> processing working directory   //查看当前绝对路径

救命键: ctrl + c 终止命令的执行

2. 查命令

~:默认用户目录
tab键自动补全子目录名
Alt+'.'可将上一个命令的最后的参数复制下来
按上下键找上面执行过的命令
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

ls //显示当前目录文件,默认不显示点开头的文件

ls -a //all的意思,可显示点开头的文件

ls 子目录文件名 //显示子目录下文件

pwd //查看当前目录绝对路径

cd .. //退出到上一级目录

cd 子目录名 //进入子目录

cat 文件名 //查看文件内容的,不接受文件目录

head 文件名 //查看文件前10行

tail 文件名 //查看文件后10行

head 文件名 -n 数字(如15) //查看前多少行(如前15行)内容

tail 文件名 -n 数字(如15) //查看后多少行(如后15行)内容

less 文件名 //上下箭头滑动查看长文件,或J/K滑动查看,Q退出,选中状态时按ESC,再按Q退出

3. 增命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

touch 文件名.类型 //若有该文件,则摸一下,若没有,则创建该文件(创建空文件)

touch 文件1 文件2 文件3 。。。 //创建多个文件

mkdir 目录名 //创建文件目录

mkdir 目录1 目录2 目录3。。。 //创建多个目录

mkdir -p 多级目录名(如a/b/c/d) //创建多层目录,-p是path的意思

cp 文件1 文件2 //复制文件1到文件2

cp -r 目录1 目录2 //r->recursive递归意思,递归复制文件夹

echo 内容 //回声显示该内容

echo 内容 > 文件名 //若该文件不存在,则创建该文件并将内容写入该文件;若文件存在,则将该内容写入文件                  并完全覆盖原来文件内容。(可用于创建有内容的文件)

echo '' > 文件名 //用空覆盖文件则可用于清空文件内容

echo 内容 >> 文件名 //两个>表示追加,将内容追加至该文件末尾

echo -e 带回车的内容("125\nhaha") >> 文件名 //-e会让内容中的\n手动换行起作用,且内容因为含特殊字符必须加双引号包起来

4. 删命令

1
2
3
4
5

rm 文件名 //删除文件

rm -r 目录名 //递归删除文件夹

5. 修改命令


start 文件名 //以文件默认的打开方式打开文件

mv 文件名 目录名 //将文件移入目录

mv 文件名 新文件名 //重命名文件,即文件移动到当前文件夹下会同名覆盖,相当于./新文件名,即可重命名

ls -l //查看文件时间

touch 文件名 //摸一下文件可更新该文件的时间

6. 命令帮助

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13

xxx --help | less //查看该命令用法,并以less上下滑动的方式展示

使用tldr工具查看某一命令的常用命令 too long, didn't read -> tldr 需要安装

tldr ls //查看ls的常用命令

npm i -g tldr //npm安装命令

yarn global add tldr //yarn安装命令

tldr --version //查看tldr版本号,查看是否安装成功

7. 组合命令

1
2
3
4
5
6
7
8
9

命令执行失败会返回一个错误编码,可用echo查看,成功则返回0

echo $? //在命令执行失败后运行该语句,可返回上条失败命令的错误编号,若上条命令成功,则返回0

命令1 && 命令2 && echo 成功 //命令的与操作,只有前面命令全部成功后才会返回成功

命令1; 命令2; echo 成功 //命令的或操作,不管前面命令执行与否,都会往后执行,都会返回成功

8. 自定义命令(bash script)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16

自己在一个没有后缀名的文件中写一串命令行命令,回车可代替分号,因此每句命令后加分号或不加分号直接回车,这就是自己创建的命令,如叫test

chmod +x ./文件名 //赋予文件可执行权限,+x就是加上可执行权限。在windows中不执行这句也可执行命令文件,但在Unix类系统中必须加这句话才能执行

./test //必须是以当前目录下该文件名的方式执行该文件,即./文件名 执行才可正常执行命令集文件,若不可以,则加shebang 再运行该命令
sh test //不加./可以直接用bash执行该文件,sh即bash的缩写

同时自定义的命令集合中也可以传参,通过$1,$2等的方式传参,同时在执行文件时为

./test 参数1 参数2 //这样传参执行自定义命令

同时可用shebang指定用什么执行该文件,shebang是一行注释,添加在自定义命令文件的首行,可指定用什么执行该文件,#!/usr/bin/env sh,在window上不用,在Unix类系统中要用

将自定义命令文件的路径放置环境变量中,则可直接输入命令文件名,在任意位置执行该文件,命令行的本质就是一个可执行文件,并被放到环境变量中,可通过文件名直接运行。可执行文件可以不加后缀.exe,也可以加,.exe不会影响该文件本身,只是用来标识是个可执行文件的

9. Bash命令行快捷键

9.1 删除

ctrl + u : 从光标处向前删除指令串

ctrl + k : 从光标处向后删除指令串

9.2 移动

ctrl + a : 光标移动到整个指令串的最前面

ctrl + e : 光标移动到整个指令串的最后面

updatedupdated2020-02-092020-02-09