Linux / Mac 工作常用命令行总结

Author Avatar
dev.liang 3月 02, 2019
  • 在其它设备中阅读本文章

mac 常用命令行简单总结,提升开发效率

日常文件夹以及文件操作

cd 是英文 change directory 的缩写,更改目录的意思(巧用 Tab 键会自动补齐)

要进入我们的家目录

1
cd ~

我们要进入下载目录

1
cd ~/Downloads/

需要返回上级目录(在 linux 系统中 . 代表当前目录,..代表上级目录。如果是上级的上级目录,就是 ../..)

1
cd ..

ls 查看目录下的文件

当我们进入到某个文件夹之后,我们不知道里面有什么文件,就可以使用这个命令(ls 是英文 list 的缩写)

1
ls

如果我们想要查看更多的内容,就可以在 ls 后加上 -l 参数(执行完就可以看到一个以列表的形式把所有的内容全部输出)

1
ls -l

查看隐藏的文件

1
ls -a

ls -l 也可以和 ls -a 组合在一起使用,可以自己查看下效果哈

1
ls -la

linux/mac 系统和 windows 系统有一个很大的区别,就是,隐藏文件。在 linux 里,只要一个文件或者文件夹的名字第一个字符是以 . 开头,就表示这是一个隐藏文件。
而 windows 系统是右键文件属性来设置的。所以,使用 linux 系统,你如果想要给某个文件夹或者文件隐藏,右击属性是没有这些操作的。只需重命名文件,加个 . 即可对文件设置隐藏。

ls 更多拓展可以查看 Linux命令大全

clear 清空屏幕的内容

1
clear

mv 移动

1
mv index/text.html  html/

将 index 目录下的 text.html 文件转移到 html 下

cp 复制文件和文件夹

mv 命令一样,也是可以跨目录复制的

1
cp index/text.html  html/

如果你需要保留文件所有的权限属性之类的,可以加上参数 -a

1
cp -a a b

如果你复制的不是文件,而是文件夹,则要加上一个递归的参数 -r

1
cp -r a b

复制文件夹,并且要保留所有的权限属性,可以加上参数 -ra

1
cp -ra a b

如果你复制的文件夹里面有很多内容,你想看到实时进度的话,可以用 -v 参数

1
cp -v a b

rm 删除文件或文件夹

注意, rm 命令进行的删除操作,是不会放到系统的回收站里面去的。而是直接删除,如果你希望通过软件把文件找回来的话,也是很困难的。所以,在输入 rm 命令的时候一定谨慎些!

删除某个具体的文件,而不是命令行里带路径的文件,或者文件夹

1
rm file

如果删除的是某个目录,或者带目录的文件,直接用上面的命令是不行的。删除目录必须进行递归操作,所以需要加上参数 -r 。

直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字。若删除时出现 Permission denied 的提示,可以在命令前加sudo 即:sudo rm -rf 文件夹的名字,即可删除。
提醒:使用这个rm -rf的时候一定要格外小心,rm 命令执行后是不会到系统回收站的也无法恢复
解释:
-r 向下递归,不管有多少级目录,一并删除
-f 直接强行删除,不作任何提示的意思

1
2
3
rm -r filePath
rm -r filePath/file
rm -rf /Users/liangyanqiao/MacDev/Hexo/themes/hexo-theme-skapp

touch 新建文件

创建一个或者多个文件(创建任意文件,只需要加上不同的后缀就可以啦)

1
2
touch a.txt
touch a.txt b.png c.doc

mkdir 新建文件夹

mkdir 从字面上可以看出是英文 make directory 的缩写

新建一个文件夹或者多个文件夹

1
mkdir a b c d

新建多层级的目录,这就需要加上参数 -p,c 后加 / 也可以

1
2
mkdir -p a/b/c
mkdir -p a/b/c/

less 查看文本文件

1
less a.txt

pwd 显示当前用户所在的完整路径

return working directory name

1
➜  Downloads pwd

输出

1
/Users/liang/Downloads

man 查看某个命令的详情

1
man pwd

Mac终端 vi/vim 的简单使用

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),插入模式(Insert mode)和底线命令模式(Last line mode)

命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。

i  切换到插入模式,以输入字符。

x   删除当前光标所在处的字符。

:   切换到底线命令模式,以在最底一行输入命令。


若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式
输入模式:
在命令模式下按下 i 就进入了输入模式。

在输入模式中,可以使用以下按键:

    ENTER(回车键)          换行

    BACK SPACE(退格键)    删除光标前一个字符

    方向键               在文本中移动光标

    HOME/END                 移动光标到行首/行尾

    Page Up/Page Down        上/下翻页

    ESC                     退出输入模式,切换到命令模式
底线命令模式:
1
2
3
4
5
6
7
8
9
10
11
在命令模式下按下 :(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

q   退出程序

w   保存文件

按 ESC 键可随时退出底线命令模式。
vi/vim 使用实例

使用 vi 来建立名为 test.txt 的文件

1
vi test.txt

按下 ESC 按钮回到一般模式

在一般模式中按下 :wq 储存后离开 vi

vi/vim 按键说明(一般模式下)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
h 或 向左箭头键(←)      光标向左移动一个字符

j 或 向下箭头键(↓) 光标向下移动一个字符

k 或 向上箭头键(↑) 光标向上移动一个字符

l 或 向右箭头键(→) 光标向右移动一个字符

如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!



Ctrl + f 屏幕『向下』移动一页,相当于 [Page Down]按键

Ctrl + b 屏幕『向上』移动一页,相当于 [Page Up] 按键



0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处

$ 或功能键[End] 移动到这一行的最后面字符处

G 移动到这个档案的最后一行

gg 移动到这个档案的第一行

n<Enter> n 为数字。光标向下移动 n 行



/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可

n 重复前一个搜寻的动作

N 『反向』进行前一个搜寻动作

:n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2

:n1,$s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2

:n1,$s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代



x 向后删除一个字符

X 向前删除一个字符



dd 删除游标所在的那一整行

ndd n 为数字。删除光标所在的向下 n 行(包括游标所在的那一行)



yy 复制游标所在的那一行

nyy n 为数字。复制光标所在的向下 n 行



p 为将已复制的数据在光标下一行贴上

P 为将已复制的数据在光标上一行贴上



u 复原前一个动作(撤销)

Ctrl + r 重做上一个动作

.   重复前一个动作
一般模式切换到编辑模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
i   从目前光标所在处插入

I 在目前所在行的第一个非空格符处开始插入



a 从目前光标所在的下一个字符处开始插入

A 从光标所在行的最后一个字符处开始插入



o 在目前光标所在的下一行处插入新的一行

O 在目前光标所在处的上一行插入新的一行



r 只会取代光标所在的那一个字符一次

R 会一直取代光标所在的文字,直到按下 ESC 为止
一般模式切换到指令行模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
:w      将编辑的数据写入硬盘档案中

:w! 强制将编辑的数据写入硬盘档案中

:q 离开

:q! 为强制离开不储存档案

:wq 储存后离开

:wq! 强制储存后离开

:set nu   显示行号,设定之后,会在每一行的前缀显示该行的行号

:set nonu   取消行号