我用的是什么外壳?

2020-08-31 07:11:12

我想在我的MacBook Pro上安装最新版本的zsh。这通常是我在设置新机器时安装的第一件东西。A brewinstall zsh和一个chsh之后,我就可以开始了(从技术上讲,我还必须将zsh的自制位置添加到/etc/shell中)。关闭outTerminal.app并重新打开以确保我的更改生效,果然,会出现我的zsh提示符。

是的,我知道MacOS Catalina附带了zsh作为默认shell,但我想确保我拥有最新的……。只是因为。

好奇心袭来,我想知道,即使zsh的自制位置被配置为我的shell,我是否真的在使用它?

~%ls-la$(哪个zsh)lrwxr-xr-x 1 wally admin 27 12月28 20:28/usr/local/bin/zsh->;../cella/zsh/5.7.1/bin/zsh。

但是等等..。这只告诉了我可执行文件zsh的位置,这是唯一正确的,因为我在PATH中添加了home brew/usr/local/bin位置。从字面上看,这就是手册页的第一行。

哪(1)《BSD通用命令手册》(1)指定哪一项--在用户路径中定位程序文件。

这意味着如果我从当前shell执行zsh,/usr/local/bin/zsh中的一个新的zsh实例将开始。这并没有告诉我在打开Terminal.app之后开始输入的shell的位置。

呃,我不知道。这告诉我它被配置为我的shell,但不一定告诉我我当前正在输入的shell的位置。

也许我现在就可以找到zsh i&#m实例当前正在运行的进程。

嗯,这仍然不能给我提供完整的路径。这就是正确的程序吗?如何获取我当前正在键入的shell的PID?原来有一个方便的shell变量$$。

嗯,我想这很好,但我仍然不知道PID为78525的进程(我目前正在键入的进程)是否是正确的zsh。

哦,是的,我可能很久以前就应该使用lsof了,但是知道如何获取当前shell的PID会让事情变得更容易一些。

~%lsof-p$$命令PID用户FD类型设备大小/关闭节点名zsh 78525 wally cwd dir 1,51120 362897/Users/wally zsh 78525 wally txt reg 1,5 614404 1052389/usr/LOCAL/Cella/zsh/5。7.。1/bin/zsh...。已修剪输出...。

啊,终于来了!输出中没有一个/bin/zsh实例。我想我对这个结果相当满意。

但现在我更好奇了。有没有其他方法可以找到同样的信息?事实证明,Apropos过程返回了一些结果,但在这些结果中,唯一有趣的发现是Fuser。

如果您想要更多的点击式方式来查找相同的信息,Activity Monitor将为您提供服务。确保选择了“查看最近12小时内的应用程序”(>;Applications in Last 12小时)。展开Terminal.app并双击zsh。单击左下角的Sample按钮将提供有关该运行进程的一些详细信息。

一开始,找到你实际使用的shell并非易事。您可以找到shell的可执行文件的位置。您可以找到当前使用该shell名称运行的所有进程。但是,要收集有关您重新键入所有这些命令的shell的信息,以找到您重复使用的shell,需要更多的探查。至少在MacOS上,最简单的两个解决方案是lsof和fuser。Activity Monitor还提供了一个用于查找相同信息的GUI,但是您需要了解如何挖掘这些信息。