我的终端启动时间很慢,在 2 秒范围内,但仅在打开新的终端窗口/选项卡(iTerm2 和终端)时。
zsh
从现有终端窗口启动时,它会快速启动。
~ % /usr/bin/time zsh -i -c exit
0.01 real 0.00 user 0.00 sys
~ % /usr/bin/time /bin/zsh -i -c exit
0.01 real 0.00 user 0.00 sys
~ % /usr/bin/time /bin/bash -i -c exit
0.00 real 0.00 user 0.00 sys
~ % /usr/bin/time bash -i -c exit
0.01 real 0.00 user 0.00 sys
Run Code Online (Sandbox Code Playgroud)
打开新窗口/选项卡时,选项卡标题在“login”“env”“bash”之间转换,最后在“zsh”之间转换。
我尝试将默认 shell 设置为/bin/zsh
using chsh
,并尝试将终端配置文件中的 shell 设置为/bin/zsh
以防万一。
我的里面什么都没有
.zshrc
/etc/zshrc
.bash_profile
.profile
.bashrc
/etc/bashrc
Run Code Online (Sandbox Code Playgroud)
当将 Fish …
在 MacOS 中,您可以使用后缀命名文件夹.app
,并且可以根据内部文件夹结构约定将其作为应用程序从 GUI 启动。
Linux 中存在这样的东西吗?
例如,我可以将一个目录标记为可执行文件吗?当尝试执行该目录时(无论是从 CLI 还是从 GUI),Linux 将在内部查找./main
(或类似的)来执行。
编辑:
这主要只是出于好奇,但就行为而言,我希望知道是否有某种方法可以用一些元数据标记文件夹,告诉 Linux 将其用作内部保存的二进制文件的代理 - 类似于:
mkdir hello-world.app
# Create executable inside folder
echo "#!/bin/bash" > hello-world.app/bin/main
echo "echo Hello World" >> hello-world.app/bin/main
# Add some kind of meta-data to tell Linux what to do when executing folder
echo "execute=bin/main" > hello-world.app/app_manifest
# Mark as executable
chmod +x ./hello-world.app
# Run folder
./hello-world.app
# "Hello World"
Run Code Online (Sandbox Code Playgroud)
我的想法是,这将是一种方便、省力的方式来分发应用程序及其依赖项、文档,同时也可以作为配置的方便目的地。
我想如果一个软件需要一个与系统上安装的动态库不同的动态库,您只需下载适当的动态库并将其放入,hello-world.app/lib
二进制文件会更喜欢本地库而不是系统库。
我知道 Linux 的约定是使用/usr/local …