本文简单记录工作中常用的命令行(持续更新),因为我用的是Mac OSX系统,因此部分命令在Windows系统中将失效(或需调整),此外需注意Windows的文件系统路径斜杠和UNIX是反的。

pwd
全称 Print Working Directory
作用   查看当前目录
示例

1
2
$ pwd
/Users/文顶顶/Desktop/Test

cd
全称 Change Directory
作用   切换目录,../表示返回上一层目录

1
2
3
4
5
6
$ cd ../
$ pwd
/Users/文顶顶/Desktop
$ cd Test/
$ pwd
/Users/文顶顶/Desktop/Test

ls
全称 List
作用   查看当前目录下内容
参数 usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
示例

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
示例01:ls    列出当前目录下面的所有文件
示例02:ls -a 列出当前目录下面的所有文件(包含隐藏文件)
示例03:ls -l 列出当前目录下面的所有文件(列表方式),包含文件的创建者和时间等信息
示例04:ls -s 列出当前目录下面的所有文件(打印文件的大小)
示例05:ls -t 列出当前目录下面的所有文件(按照时间来排序)

$ ls
ImageData数据.xmind Vue index.js
PQ.png Yu.jpg

$ ls -a
. ImageData数据.xmind Yu.jpg
.. PQ.png index.js
.DS_Store Vue

$ ls -l
total 1216
-rw-r--r--@ 1 wendingding staff 36971 2 21 15:39 ImageData数据.xmind
-rw-r--r--@ 1 wendingding staff 519843 2 19 11:34 PQ.png
drwxr-xr-x 3 wendingding staff 96 2 23 10:03 Vue
-rw-r--r--@ 1 wendingding staff 56244 2 19 15:58 Yu.jpg
-rw-r--r-- 1 wendingding staff 363 12 20 15:33 index.js

$ ls -t
Vue Yu.jpg index.js
ImageData数据.xmind PQ.png

$ ls -s
total 1216
80 ImageData数据.xmind 112 Yu.jpg
1016 PQ.png 8 index.js
0 Vue

说明 这里简单对ls - l命令列出的文件详细信息中的各个字段加以说明

1
2
3
4
5
6
7
8
9
10
命令行结果:-rw-r--r--@ 1 wendingding  staff   56244  2 19 15:58 Yu.jpg
第一个字符:类型(如果是文件夹则为d,如果是文件则为-)
第二三字符:文件的读取权限,如果是rw则表示可读可写
其他的字符:第一个-r表示当前组的权限
第二个-r表示其它用户的操作权限
wendingding 是当前用户
staff 是当前用户所属的组
519843 是文件的大小(字节数)
2 19 15:58 是文件最后一次的修改时间
Yu.jpg 是文件的名称

mkdir
全称 Make Directory
作用   创建目录
参数 usage: mkdir [-pv] [-m mode] directory ...

1
2
3
示例01:mkdir Demo          创建Demo文件夹(目录)
示例02:mkdir -v demo 创建demo文件夹并输出提示信息
示例03:mkdir -p test/sub1 创建test文件夹并在该目录中创建sub1文件夹

touch
作用   在当前的目录中创建文件,可以通过$ open 文件名称命令来打开指定文件

1
2
3
4
5
6
$ cd demo
$ ls -a
. ..
$ touch 1.txt 2.txt
$ ls -a
. .. 1.txt 2.txt

wc
全称 Word Count
参数 usage: wc [-clmw] [file ...]
作用   获取文件的字数信息统计

1
2
3
4
5
示例01:wc a.text           获取a.text文件的字数统计信息
示例02:wc -c a.text 获取a.text文件的字数统计信息(统计字节数)
示例03:wc -l a.text 获取a.text文件的字数统计信息(统计行数,从0开始计数)
示例04:wc -m a.text 获取a.text文件的字数统计信息(统计字符数)
示例05:wc -w a.text 获取a.text文件的字数统计信息(统计单词数)

cat
全称 Concatenate files and print on the standard output
作用   查看 | 创建 | 合并文件

1
2
3
4
5
6
7
示例01:cat index.html              打印并查看index.html文件的内容
示例02:cat > b.text 新建文件b.text并输入内容,需保存
示例03:cat a.text b.text > c.text 合并两个文件的内容给c.text
示例04:cat -n a.text 输出a.text文件的内容并显示行号(空行会被编号)
示例05:cat -b a.text 输出a.text文件的内容并显示行号(空行不被编号)
示例06:cat -n b.text >> a.text 对b.text文件的内容加上行号然后追加到a.text文件中
示例07:cat -n b.text > a.text 对b.text文件的内容加上行号然后替换a.text文件的内容

echo
作用   回显字符(向控制台输出字符串信息),默认会压缩多个空格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
示例01: echo "123" >  a.text  向a.text文件中输入123字符串(替换)
示例02: echo "123" >> a.text 向a.text文件中输入123字符串(追加)

$ echo "wendingding-mitaoer"
wendingding-mitaoer
$ touch a.txt
$ echo "MiaoXia" > a.txt
$ cat a.txt
MiaoXia
$ echo "ChanMing" > a.txt
$ cat a.txt
ChanMing
$ echo "De XiaJi" >> a.txt
$ cat a.txt
ChanMing
De XiaJi

more 和 less
作用   查看文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
示例01:more +3 a.text              从第三行开始查看a.text文件的内容
示例02:more +/font a.text 搜索文件中指定字符串显示指定位置后的内容
示例03:less -N a.text 显示a.text文件的内容前面加上行号

$ cat 1.text
Hi!
How are you !
Hello!
How old are you!
Nice .

$ more +3 1.text
Hello!
How old are you!
Nice .
~
~
~

$ more +/old 1.text
How old are you!
Nice .

rm
全称 Remove
作用   删除文件
参数 usage: rm [-f | -i] [-dPRrvW] file ...

1
2
3
4
5
6
示例01: rm    1.text               删除a.text文件
示例02: rm -i 1.text 删除文件前会逐一询问确认,输入YES表示删除
示例03: rm -f 1.text 强制删除a.text文件不会询问确认
示例04: rm -r test 删除test文件夹以及该目录下面所有文件,Recurve(递归)
示例05: rm -r * 删除当前目录下面所有的文件
示例06: rm -rf /* 递归删除所有文件(不提醒) [请勿轻易尝试 ⚠️]

rmdir
全称 Remove Directory
作用 删除文件夹,只能删除空文件夹,不常用

mv
全称 Move
作用 移动文件或重命名

1
2
示例01:mv index.html ./demo/index.html  移动文件到demo目录
示例02:mv index.html a.html 把index.html重命名为a.html

cp
全称 Copy
作用 复制文件

1
示例:cp index.html ./demo/index.html   把文件复制一份保存到demo目录

date
作用 显示当前的日期和时间

1
2
$ date
2019年 2月23日 星期六 06时52分47秒 CST

who
作用 who获取登录到系统中的所有用户信息,who am i指令用于获取当前登录到系统中的用户信息

1
2
3
4
5
6
$ who
wendingding console Feb 22 21:07
wendingding ttys000 Feb 23 09:28
wendingding ttys001 Feb 23 11:00
$ who am i
wendingding ttys001 Feb 23 11:00

history
作用 查看操作历史

curl
作用 发送网络请求,常用于测试(服务器)是否能够到达指定的网站
说明 关于curl的更多用法,请参考另一篇介绍文章。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ curl http://wendingding.com
<!DOCTYPE html>
<html lang="zh-Hans">
<head>
<meta name="generator" content="Hexo 3.8.0">
<meta charset="utf-8">
<meta name="X-UA-Compatible" content="IE=edge">
<title> 花田半亩</title>
<meta name="description" content="生死有命 富贵在天">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="/logo.jpeg">
<link rel="stylesheet" href="/css/apollo.css">
<link rel="search" type="application/opensearchdescription+xml" title="花田半亩">
</head><body>
...省略
</body></html>

(星号)*
作用 在UNIX系统中,星号常用于文件名替换(结合其它的命令)
示例 01-Shell自动将模式*替换成当前目录下能够匹配到的所有文件名

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
$ echo "我是1.txt" > 1.txt
$ echo "我是2.txt" > 2.txt
$ echo "我是a1文件的内容" > a1.txt
$ echo "我是a2文件的内容" > a2.txt
$ echo "我是a3文件的内容" > a3.txt
$ ls -l
total 40
-rw-r--r-- 1 wendingding staff 12 2 23 17:11 1.txt
-rw-r--r-- 1 wendingding staff 12 2 23 17:11 2.txt
-rw-r--r-- 1 wendingding staff 24 2 23 17:11 a1.txt
-rw-r--r-- 1 wendingding staff 24 2 23 17:11 a2.txt
-rw-r--r-- 1 wendingding staff 24 2 23 17:12 a3.txt

$ cat 1.txt 2.txt a1.txt
我是1.txt
我是2.txt
我是a1文件的内容

$ cat *
我是1.txt
我是2.txt
我是a1文件的内容
我是a2文件的内容
我是a3文件的内容

$ echo *
1.txt 2.txt a1.txt a2.txt a3.txt
$ echo * == *
1.txt 2.txt a1.txt a2.txt a3.txt == 1.txt 2.txt a1.txt a2.txt a3.txt
备注:主要是*出现的地方就被替换为当期那目录中所有的文件名

示例 02-星号还能实现部分文件替换功能,与其它字符配合使用可以限制范围

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ ls -l
total 40
-rw-r--r-- 1 wendingding staff 12 2 23 17:11 1.txt
-rw-r--r-- 1 wendingding staff 12 2 23 17:11 2.txt
-rw-r--r-- 1 wendingding staff 24 2 23 17:11 a1.txt
-rw-r--r-- 1 wendingding staff 24 2 23 17:11 a2.txt
-rw-r--r-- 1 wendingding staff 24 2 23 17:12 a3.txt
-rw-r--r-- 1 wendingding staff 0 2 23 17:24 a4.mp4
-rw-r--r-- 1 wendingding staff 0 2 23 17:24 text.mp4
$ echo *txt
1.txt 2.txt a1.txt a2.txt a3.txt
$ cat a*
我是a1文件的内容
我是a2文件的内容
我是a3文件的内容
$ ls *ex*
text.mp4

示例 03-文件名替换的其他示例

1
2
3
4
5
6
7
8
[1] echo t*         打印出以t开头的所有文件名
[2] rm *.* 删除包含点号的所有文件
[3] ls a* 列出所有以a开头的文件
[4] rm * 删除当前目录下的所有文件( ⚠️)
[5] echo a*b 打印出以a开头且以b结尾的所有文件名
[6] cat *.c 打印出以.c结尾的所有文件的内容
[7] cp ../demo/* . 将../demo目录中的所有文件复制到当前目录
[8] ls [a-z]*[!0-9] 列出以小写字母开头且不以数字结尾的所有文件


在使用星号命令的时候,在指定的命令被调用之前,这些文件名替换就已经完成了。在具体的操作中,利用星号文件名替换的功能,可以写出更复杂功能更强大的命令行。

vim
作用 在Mac OSX系统,已经内置了vim编辑器,可以通过vim编辑器方便的在命令行中编辑文件的内容。
说明 vim编辑器的功能非常强大,有一套自己的命令相对复杂,这里简单列出常用的操作。

1
2
3
[1] 使用vim编辑器打开指定文件       $ vim 1.txt
[2] 让文件进入编辑(INSERT插入)状态 敲击键盘上的i键
[3] 保存并退出 esc + shift + : + wq