0%

mac 技巧积累

积累一些常用的mac技巧,侧重于shell的应用。

修改计算机名

有时候计算机名很长,在shell里面感觉有点累赘,我希望可以将名字改的短一点,不影响我的使用:

1
sudo scutil --set HostName newName

比如,我将我的计算机名设置为T:

1
sudo scutil --set HostName T

让终端走代理

如果用的是ss代理,那么只需要:

1
export ALL_PROXY=socks5://127.0.0.1:1086

加入bash:

1
2
export http_proxy="socks5://127.0.0.1:1086"
export https_proxy="socks5://127.0.0.1:1086"

或者直接:

1
export ALL_PROXY=socks5://127.0.0.1:1086

bash_profile

一些用户常用的配置可以将其放在.bash_profile中,这样就可以不用每次都手动录入:

1
eval "$(/opt/homebrew/bin/brew shellenv)" # brew的命令导出

这样在brew中install的命令都可以被导出。

那我们也不想在每次打开shell的时候都手动执行source .bash_profile啊,那只需要将这个命令加入到当前shell的配置中,在.zshrc中最后加入:

1
source .bash_profile

这样只要打开shell就自动执行了,我们可以直接访问到brew命令。

查看端口占用和杀死进程

比如,我想查看63343端口被那个小婊砸占用了?!

1
lsof -i:63343

可以看到结果:

1
2
COMMAND  PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node 5291 tonyyang 25u IPv4 0x35ce92344bf55a15 0t0 TCP *:63343 (LISTEN)

然后可以知道占用端口的pid,这样就可以杀死这个进程来释放端口:

1
kill 5291

lsof命令是查看当前系统文件的工具(list open files)。在linux系统下,一切皆文件。通过文件不仅可以访问常规数据,还可以访问网络连接和硬件。如传输控制协议(TCP)和用户数据报协议(UDP)套接字等。

差用的命令有:

  • -a 列出打开文件存在的进程
  • -i<条件> 列出符合条件的进程。(4、6、协议、:端口、@ip)
  • -u 列出UID号进程详情

解压rar类型的压缩包

有时候会接收到win平台的压缩文件,结尾是rar扩展标记,我们解压的时候如果是可视化的话,需要去安装一个独立的应用,比如Unarchiver是一个挺好的软件,可以解压缩多种类型的压缩包。

或者不用那么麻烦,我们可以在shell里面解压。需要安装unrar包:

1
$ brew install unrar

安装成功后,进入我们的压缩文件所在目录,然后开始解压:

1
$ unrar x test.rar

看输出有解压出来的文件,然后可以在当前目录看到解压后的文件夹。

2022.5.8 更新

现在安装的时候好像没有unrar这个独立的包了,我们来安装rar:

1
$ brew install rar

安装成功后可以看到:

1
2
==> Linking Binary 'rar' to '/usr/local/bin/rar'
==> Linking Binary 'unrar' to '/usr/local/bin/unrar'

当运行rarunrar命令的时候会弹出:无法打开“unrar”,因为无法验证开发者。

需要去系统偏好设置 -> 安全与隐私 -> 通用里面可以看到有个按钮“仍然允许”,点击即可。

然后再回到shell里面,就可以使用unrar命令和rar命令了。

配置vscode从terminal打开

可以在vscode中使用快捷键:cmd + shift + p调出命令窗口,输入:shell command,即可选取命令:Shell command: install 'code' command in PATH,点击这个即可。

但是在我新电脑中,好像被权限拒绝了:EACCES: permission denied, unlink '/usr/local/bin/code', 是由于m1电脑的问题,可能在之前运行过这个命令,但是命令假死了。所以需要先运行下:Shell Command: uninstall 'code' command from PATH'。然后重新运行下install就可以了。

现在就可以用code命令来从shell打开vscode。

配置webstorm从terminal打开

打开webstorm,然后按两次shift·,就可以调出搜索窗口。

然后输入create command line launcher,然后就可以看到创建命令行启动器。按下enter,就可以看到一个弹出框,我们在输入框中输入我们需要的简写:

1
/usr/local/bin/ws

然后按下确定,现在我们就可以在shell中用ws命令来打开webstorm。
并且可以ws ./myobj/testproject来打开某个项目。

查看电脑的温度

安装istats

1
$ sudo gem install iStats 

然后查看电脑的状态:

1
2
3
4
5
6
7
8
9
10
11
$ istats

--- CPU Stats ---
CPU temp: 58.69°C ▁▂▃▅▆▇

--- Fan Stats ---
Total fans in system: 1
Fan 0 speed: 2224 RPM ▁▂▃▅▆▇

--- Battery Stats ---
No battery on system

很方便,CPU stats 是电脑cpu的温度,Fan Stats是风扇的转速(圈/每分钟),Battery Stats是电池的状态,我目前用的mini,所以是没有电池的。

使用curl下载文件

之前一直用curl来得到一个url的回应,但是这个curl命令是很强大的,强大到可以当postman使用,但是我们来最实际的一个用法:下载文件。

curl的-o参数可以将服务器的回应保存成文件,等同于wget命令。

也可以传递-O参数将url的最后部分当成文件名来保存服务器的响应。

host 修改

有些特殊原因我们需要特殊设置域名的dns,将特殊的域名对应到响应的ip,这个解析规则我们可以在/etc/host文件中修改。

比如我们访问树莓派中的网页服务,一直输入ip是个很麻烦的事情,那么我们可以设定一个名字,然后在host中定义即可。

比如我们定义tony.pi来访问树莓派中的服务。树莓派的ip是192.166.31.18。那么我们可以在/etc/host中添加:

1
192.168.31.18 tony.pi

然后重启dns缓存程序。

1
sudo killall -HUP mDNSResponder

我们可以在shell中ping以下看看:

1
2
3
4
$ ping tony.pi
PING tony.pi (192.168.31.18): 56 data bytes
64 bytes from 192.168.31.18: icmp_seq=0 ttl=64 time=10.434 ms
64 bytes from 192.168.31.18: icmp_seq=1 ttl=64 time=29.497 ms

能ping通基本就设置好了。

如果在浏览器中发现还是访问不了nginx的网页,那么可以在chrome dns中查询一下:chrome://net-internals/#dns
chrome nds

如果这里正确显示了ip,那么说明我们的设置和dns都没问题。

我这里被vpn坑了一下,一直无法刷出来网页,我以为是什么地方的设置,结果我尝试退出vpn就可以了。。。吐血。

最后在vpn的设置里面加上过滤的ip就好了,可以正常访问树莓派里面的网页了。

oh-my-zsh 更新

在terminal里我使用了on-my-zsh插件,但是经常会遇到需要更新。

手动更新oh-my-zsh:

1
omz update

mac 截图/录视频

截屏

shift + command + 3
截屏,多少个屏幕就截取多少个.

比如我当前链接了两个显示器,主电脑反而盖上盖子的,那么按下shift + command + 3之后,会在桌面上生成两个屏幕的截图.

shift + command + 4

动态捕捉屏幕上的一部分截屏,以拖动十字线的形式捕捉一个方形区域,对这个区域会截图,然后放在桌面.要取消就按下ESC键.

shift + command + 4 + space bar

捕捉窗口对窗口截图,按下shift/command/4/空格键,指针变成相机图标,会动态捕捉窗口单位进行截图.按下ESC键取消截图.

录视频

shift + command + 5

可以唤起ScreenShotapp 来录视频.可以选择对整个屏幕/窗口/自定义大小来进行录屏.

截图或截屏的文件,会默认放在桌面上,我们可以修改ScreenShot.App中的选项来修改存储的位置.

码字辛苦,打赏个咖啡☕️可好?💘