[CTRL]+[r]将打开reverse-i-search提示符。注意:搜索查询将仅命中完整命令的中间,而不是正常 zsh 搜索所需的开头匹配。
TL;DR: macOS 11.0.1 上的 htop 3.0.4 在本地计算机上运行时不显示颜色,但如果通过 ssh 进入远程系统,从那里运行 htop 会毫无问题地显示颜色。
我在 macOS 11.0.1 上使用 htop 3.0.4 时遇到了一些奇怪的问题。应用程序本身的颜色根本不显示:
在 htop 设置中,“颜色”选项设置为“默认”:
但是,退出 htop 可以在我常用的终端提示符和其他应用程序中正确显示颜色。此外,如果我通过 ssh 进入远程系统并通过同一终端会话使用 htop,颜色显示完全正常:
问题在 iTerm 2 和终端中都可以重现,并且仅在此本地系统上使用 zsh 和 bash。$TERM=xterm-256color。
我msgcat在 iTerm 2 中运行了颜色测试,一切似乎都按顺序进行:
我尝试通过自制软件重新注入 htop 包,但没有得到不同的结果。我检查了 htop GitHub,没有看到任何与此问题相关的错误,因此我首先假设我的本地计算机出现问题,在此询问。
为什么 htop 不只为我的本地计算机显示颜色?
我启动一个新的 shell(新的终端窗口),然后这是我运行的所有命令:
user@host :~ $ eval "$(ssh-agent -s)"
Agent pid 1413341
user@host :~ $ ssh-add -vvv ~/.ssh/keys/<mykey>
Enter passphrase for /home/mate/.ssh/keys/<mykey>:
user@host :~ $ ssh-add -l
The agent has no identities.
Run Code Online (Sandbox Code Playgroud)
ssh-add不返回任何输出,但经过验证后,返回错误代码1(重试ssh-add ...一次echo $?)。但是,它实际上不会在 stderr 上打印任何输出。
命令后正确设置了环境变量 $SSH_AGENT_PID 和 $SSH_AUTH_SOCK eval "$(ssh-agent -s)"。
PS:也尝试过完整操作eval "$(ssh-agent)",没有效果。
PS:除非我错过了什么,否则关于 stackoverflow、superuser 和 unix.stackexchange 的所有问题都在处理另一种特定情况,例如ssh-add单独运行(因此仅考虑标准关键位置)或未正确启动代理的人ETC...
如何在 Git Bash 终端上自定义快捷键?
当我使用选项 -> 键时,它只允许打开或关闭功能。我想要的是改变组合键。这是我的设置:
Shift供您参考, +组合Insert不适用于我的特定笔记本电脑。当我按Shift+时Insert,这就是我得到的:
我想将 Windows C: 驱动器安装到 WSL 中的 /mnt/c 作为 drvfs 文件系统,但如果我指定 drvfs 作为文件系统类型,我会得到 9p 文件系统。
我输入了这些命令:
$ sudo umount /mnt/c
$ sudo mount -t drvfs C: /mnt/c/
$ mount -l
...
C: on /mnt/c type 9p (rw,relatime,dirsync,aname=drvfs;path=C:;symlinkroot=/mnt/,mmap,access=client,msize=65536,trans=fd,rfd=3,wfd=3)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,类型是 9p 而不是指定的 drvfs。
我有一个 Makefile,其中包含一个sshfs命令,后跟一个cd命令:
mr: # mount-remote
sshfs -p 5022 -o nonempty myname@myssh.serveur.fr:mnt /home/julien/myworking_path
cd ./working_directory_mwe1/wk_subd_mwe2/
Run Code Online (Sandbox Code Playgroud)
第一个命令 sshfs 就像一个魅力一样,可以正确安装两个端点。但是,cd 命令不会更改目录。然后我必须手动重新输入。如果我手动输入,它就可以工作,但我希望在输入命令时完成mr。
我尝试了以下操作,但记住这可能是因为我在执行时连接了终端 2 秒,sshfs但这也不起作用。我尝试cd每秒重新运行一次,直到它起作用。
mr: # mount-remote
sshfs -p 5022 -o nonempty myname@myssh.serveur.fr:mnt /home/julien/myworking_path
until cd ./working_directory_mwe1/wk_subd_mwe2/ ; do sleep 1 ; done
Run Code Online (Sandbox Code Playgroud)
感谢您的热心帮助 :)
编辑:我忘记指定我尝试的最小工作目录cd正是端点处的目录,实际上,我意识到我的目标是:
mr: # mount-remote
sshfs -p 5022 -o nonempty myname@myssh.serveur.fr:mnt /home/julien/myworking_path
cd /home/julien/myworking_path/some_sub_dir1/som_sub_dir2
Run Code Online (Sandbox Code Playgroud) 我正在按照 Youtube 上的视频并运行命令后在 Ubuntu 20.04 上设置开发环境
$ echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.zshrc
每次我打开终端时都会出现消息:
/home/gustavo/.asdf/completions/asdf.bash:80:找不到命令:完成
有谁知道我可能做错了什么以及如何解决它?
只是指出,我是初学者。
如何使用 bash 或某些 Linux 实用程序将 ARP 数据包发送到 LAN 上的指定 IP?
我想向远程计算机中运行的所有打开的终端进程打印一些字符串。目前我正在使用 ssh 连接远程计算机,然后将我的字符串回显到wall命令中:
local> ssh me@1.2.3.4
(prompt to provide credentials)
remote> echo "123" | wall
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在一个命令中完成所有操作,无需用户交互即可运行?
我用它来检查日志文件的日志行,直到发生特定事件(取自此答案“监视文件直到找到字符串”):
(tail -f -n 0 test.log &) | grep -q 'SPEFICIC LOG MESSAGE'
Run Code Online (Sandbox Code Playgroud)
这可行,但我还希望在等待事件时将日志行打印到标准输出。我正在寻找类似的东西tee,但我想同时打印和管道。
我尝试了这个答案来管道并观察管道输出?, 导致:
(tail -f -n 0 test.log &) | tee /dev/fd/2 | grep -q 'SPEFICIC LOG MESSAGE'
Run Code Online (Sandbox Code Playgroud)
但随后该命令永远不会退出,大概是因为在找到匹配项时grep无法中断,因此继续将数据传送到?tailtailtee