# Mac 终端简易学习总结

# 一、目录基本操作

# 1. pwd --- 获取当前所在路径


yangtaodeMacBook-Pro:test yangtao$ pwd
/Users/yangtao/Desktop/文件创建/test

# 2. ls --- 列出当前目录下的所有文件

  • ls -l --- 用长格式列出来
  • ls -a --- 列出文件(包括隐藏的文件)
  • ls -al --- 以长格式列出文件(包括隐藏的文件)

# 3. cd --- 目录间的切换

可以使用tab键补全目录名称,将文件拖入终端,可以显示该文件的目录

  • cd --- (无参数)返回 home 目录
  • cd ~ --- 返回 home 目录,可以使用cd ~/Music快速到达该目录,使用cd ~Guest/进入 Guest 用户的 home 目录
  • cd - --- 返回上一次操作的目录,可与当前目录进行切换
  • cd .. --- 返回上一层目录,..表示上一层目录,而.表示当前目录,如./Music,表示当前目录下的 Music 文件

# 4. mkdir 文件名 --- (make dir)新建文件夹

# 5. rmdir 文件名 --- (remove dir)删除文件夹

如果文件夹内不为空,则无法用 rmdir 删除文件夹

# 6. rm 文件名 --- (remove dir)删除文件

注意:用rm删除掉的文件是无法从回收站中找回的!而且不能使用 rm 来删除文件夹

# 7. mv 原文件 目标目录/新文件名 --- 移动

把文件从一个地方移到另一个地方,但是当没有给出另外一个目录时,移动的现象就是为其更改了名字

# 8. cp 带目录文件 目标目录 --- 复制粘贴

# 9. man 命令 --- 查看使用手册

# 10. touch --- 创建文件

# 11. cat --- 查看文件内容

# 二、历史操作

# 1. 向上(向下)箭头

查看上一个(下一个)命令,可以一直向前查看之前执行过的命令

# 2. !l --- 找出与你最近一次的 l 开头的命令,并执行

# 3. history --- 查看之前执行过命令的历史记录

# 三、进程管理操作

# 1. ps --- 查看当前终端运行的程序


yangtaodeMacBook-Pro:test yangtao$ ps
  PID TTY           TIME CMD
19083 ttys000    0:00.40 -bash

# 2. ps ax ---列出这台电脑正在运行的所有程序


20008   ??  S      0:00.12 /System/Library/Frameworks/QuickLook.framework/Resources/quicklookd.app/Contents/MacOS/quicklookd
19082 s000  Ss     0:00.02 login -pf yangtao
19083 s000  S      0:00.40 -bash
20079 s000  R+     0:00.00 ps ax
yangtaodeMacBook-Pro:test yangtao$

# 3. top --- 显示这台计算机上有哪些进程,显示内存、CPU、负载等


PID    COMMAND      %CPU TIME     #TH   #WQ  #PORT MEM    PURG   CMPRS  PGRP  PPID  STATE    BOOSTS           %CPU_ME %CPU_OTHRS UID  FAULTS    COW
20088  top          4.1  00:00.99 1/1   0    23    6724K  0B     0B     20088 19083 running  *0[1]            0.00000 0.00000    0    7185+     105
20087  AGSService   0.0  00:00.03 2     1    36    1716K  0B     0B     20087 1     sleeping *0[1]            0.00000 0.00000    0    3076

# 4. kill [PID] --- 结束指定进程 ID 的进程

具体做法: 先使用 top 命令查看想要结束进程的 PID,然后使用命令kill [PID]

Tips: 如果遇到无法杀掉的进程,输入命令sudo kill -9 [PID] (伪装超级管理员,强迫杀掉该进程),接着输入自己用户的密码(前提是自己这个用户具有 sudo 的资格)

# 四、万能的 grep 操作

# 1. grep 800 log.txt --- 从 log.txt 中找出 800 位置的数据

# 2. grep -n 800 log.txt --- 从 log.txt 中找出 800 位置的数据,并在前面加上行号

# 3. grep (-n) Hello * (是否加上行号) --- 从当前目录下的所有文件中找出出现过 Hello 的文件

# 4. ls /usr/bin | grep ls --- 查看/usr/bin 目录下面带 ls 的目录

# 5. ls /usr/bin | grep ls | wc --- 计算出单词的数量


yangtaodeMacBook-Pro:test yangtao$ ls /usr/bin | grep ls | wc
      16      16     124
# 16行 16个单词 124个字符

# 五、环境变量操作

# 1. set | grep PATH --- 查看环境变量


yangtaodeMacBook-Pro:~ yangtao$ set | grep PATH
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

# 2. set | grep PATH --- 将其他文件夹路径(本机用户下面的 bin 目录)添加到 PATH

这样做只是一次性的,也就是说在当前终端,是可以直接生效的,但是当你关闭后,重新打开终端,这个操作是不被保存的。

/etc/profile这个文件是任何人打开终端都会执行的,是系统级的 profile。

如果我们想自定义自己的 profile,可以在自己的家目录下新建文件命名为:.profile,这个文件会在你打开终端时自动执行。

我们将刚刚的命令 2 输入其中,然后保存退出(vim 下使用:wq) 这样的话,在我们刚刚已经登录的终端里面它还是不起作用的,假如你希望它可以立刻生效,你可以使用source命令。

# 3. source --- 例如:source .profile

使 Shell 读入指定的 Shell 程序文件并依次执行文件中的所有语句,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录

# 六、网络配置操作

# 1. ifconfig --- 列出本机所有的网络设备以及其上面的配置,主要指的是 ip 地址和 mac 地址

我的连的是 en5,它的状态时 active(最后一行),原文是 en4


en5: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether ac:de:48:00:11:22
	inet6 fe80::aede:48ff:fe00:1122%en5 prefixlen 64 scopeid 0x7
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active

其他用法:

  • ifconfig en4 down/up --- 关闭(或打开)某个网络接口,比如 en4,一般需要管理员权限,所以需要在前面加 sudo 命令

  • sudo ifconfig en4 add 10.10.10.12 netmask 255.255.255.0 --- 给 en4 加入别的网段

  • sudo ifconfig en4 delete 10.10.10.12 --- 给 en4 删除指定网段

# 临时修改MAC地址
ifconfig en0 down // 关闭网卡设备(这里假设是en0)
ifconfig en0 hw ether [MAC地址] // 修改MAC地址
ifconfig en0 up // 重启网卡

# 临时修改内网ip地址
ifconfig en0 down
ifconfig en0 192.168.169.245 netmask 255.255.255.0

# 2. ping --- 检测网络是否是连通状态

# 3. netstat --- 显示各种网络相关信息

其他用法:

  • netstat -l --- 列出本机进行监听的端口

  • netstat -lt --- 只列出 tcp 的连接,同理在 l 后面跟上 u 的话,将会列出各种 udp 的监听端口

  • netstat -s --- 查看统计数据

  • netstat -p --- 列出进程信息,你可以了解是哪一个程序在哪一个端口上做些什么事情

  • netstat -pc --- 会显示出实时更新的进程信息

  • netstat -r --- 查看路由表

  • netstat -i --- 查看接口信息

详情参考 Mac 终端学习系列

Last Updated: 5/22/2020, 5:01:49 PM