我的 zsh 正在做一些奇怪的事情,它运行的可执行文件不是我路径上的第一个可执行文件。我有一个用于 ssh 的包装器脚本,但是在调用真正的 ssh 二进制文件时没有调用包装器。
一些诊断:
$ echo $SHELL
/bin/zsh
$ echo $PATH
/home/user1/bin:/home/user1/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/X11R6/bin:/usr/X11/bin:/usr/kerberos/bin
$ which ssh
~/bin/ssh
$ builtin which -a ssh
/home/user1/bin/ssh
/usr/bin/ssh
$ alias
l.='ls -d .* --color=tty'
ll='ls -lh'
ls='ls --color=auto'
run-help=man
vi=vim
which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
which-command=whence
zcp='noglob zmv -W -C'
zln='noglob zmv -W -L'
zmv='noglob zmv -W -M'
Run Code Online (Sandbox Code Playgroud)
我尝试在 bash 中运行 'ssh' 并调用了我的包装器脚本,所以这似乎是 zsh 的问题。
如果需要任何其他诊断信息,请现在告诉我。
我真的很想知道为什么当我尝试调用 ssh 时 $PATH 变量被忽略了。
更新 1
添加了'builtin which -a ssh'的输出
我想复制一个文件的路径,但该目录未在 Finder 中打开,而是在终端中打开。是否可以通过调用<utility> filename将完整文件路径字符串复制到 Mac OS 剪贴板?就像在那里复制以下命令的输出一样。
`pwd`/filename
Run Code Online (Sandbox Code Playgroud)
将以下行添加到我的 .zshrc
function cn { echo -n $(pwd)/$1 | pbcopy }
Run Code Online (Sandbox Code Playgroud)
由于参数,只是别名不起作用。完全相同的字符串也应该在 bash 中工作。
我不小心覆盖了 Windows 8(64 位)中的环境变量 PATH。我怎样才能重置它?我害怕在解决这个问题之前关闭电脑。
否则我可能会从另一台具有相同操作系统(或 Windows 8.1)的 PC 复制它?
我的 PATH 系统变量存在某种问题。由于我使用了很多 cmd 应用程序和脚本,因此我在其中添加了很多内容。但字符串的长度不是问题。我已经解决了这个限制。
高级系统属性是我注意到的唯一一个在编辑后正确初始化 PATH 变量的应用程序。如果我手动编辑注册表,应用程序不会使用 PATH 的更新版本。所以我必须使用它或保持登录和关闭。
但是,最近,在该应用程序中设置了 PATH 的某些值后,它总是以 (null) 结束,即使它是相同的字符串。一旦我按确定,它就会变黑。注册表项仍然存在。我必须注销或重新启动 PATH 才能填充其注册表项中的任何内容。
我什至将它修剪到 %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem 仍然,PATH=(null) 和 %windir% 已经死了。
别管它,它有效。
编辑它,没有。直到我重新启动。
那么,有什么想法吗?...关于为什么高级系统属性在更新系统变量时会出现这种情况。我相信这是问题所在,因为它是一个初始化应用程序,并且在干净重启后一切正常。
我重新安装了 ns2,但没有从文件系统中删除带有路径的文件:
/usr/bin/ns
Run Code Online (Sandbox Code Playgroud)
所以当我在终端上输入时:
which ns
Run Code Online (Sandbox Code Playgroud)
我得到:
/usr/bin/ns
Run Code Online (Sandbox Code Playgroud)
而不是我设置的路径是:
/home/me/ns-allinone-2.35/bin/ns
Run Code Online (Sandbox Code Playgroud)
这是在我的主目录中me。我应该如何删除文件系统中具有相似名称的文件?这个文件的属性在权限中说我不拥有这个文件,所以我不能更改权限。
如果路径设置不正确,我将无法运行我的 tcl 脚本并设置它,我需要删除重复的 .tcl 脚本ns。如何获得删除权限?以及如何使用我的终端删除它?
我今天学了些新东西。当我尝试在 Visual Studio 中创建新文件夹“文件夹”(无引号)时,出现错误:
目录名称不能包含以下任何字符:
:*?| " < >
但是我的文件夹名称没有任何这些字符。所以我尝试在 Windows 资源管理器中创建这个文件夹,它从末尾剥离空间并创建文件夹“文件夹”而不是“文件夹”。同样的情形md指挥同样适用于文件名。为什么 Windows 中的文件夹或文件名不能以空格结尾?
我在 NTFS 分区(Windows 8.1)上试过这个。
我试图弄清楚如何缩短 Windows 10 中的提示,这样我最终不会得到一个深度嵌套的目录路径,它占用了大部分(或全部)命令行。
我已经尝试应用此处显示的信息,但它似乎没有正确转换为 Windows 10。我创建了一个新的环境变量,命名PROMPT并填写了适用的信息,但它似乎没有达到预期的效果 - 它只向下移动>一行;还有很长的路要走。
我有一个包含大量文件的文件夹D:\dev\tools\eclipse。为了提高速度,我决定将其移至我的C:驱动器(同一路径),因为C:它是 SSD。
拖放操作拒绝复制 4 个名称超长的文件,称它们太长。
C:是250GB SSDD:位于 LSI 9260 硬件 RAID 卡上,其中 3 个 2TB 驱动器配置为 RAID-5(3.6 TB 有效容量)C:都是D:NTFS 格式。为什么相同的路径长度在 RAID 驱动器上可以,但在 SSD 上却不行?
附加信息:
如果我在文件上使用“复制为路径”上下文菜单项(Shift-右键单击),则会在其上D:复制一个用 8.3 短名称替换长度超过 8 个字符的路径元素的路径,而在C:其上则使用全名。
但是,fsutil显示两个驱动器都启用了 8.3 名称
C:\Windows\system32>fsutil 8dot3name query c:
The volume state for Disable8dot3 is 0 (8dot3 name creation is enabled).
The registry state of NtfsDisable8dot3NameCreation is …Run Code Online (Sandbox Code Playgroud) 我正在尝试为其设置别名,python3以便我可以使用python.
这是我的当前 .bash_profile
# Setting PATH for Python 3.6
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin:${PATH}"
export PATH
alias python=“python3”
alias 3=“python3”
alias py=“python3”
Run Code Online (Sandbox Code Playgroud)
当我跑步时,python我得到-bash: “python3”: command not found.
我可以运行python3并且它会正确打开py 3.X.X(3.6.1在发布时)。
多年来在这里& SO上有很多半答案,还有一些评论提到了我的问题,但希望这可以成为完整答案的资源。或者也许你们中的一个人比我更擅长谷歌搜索,这可能是一个重复的问题!
我在 macOS 上运行以下作为我的 Travis CI 构建的一部分来删除所有非.git目录:
$ if [ "${TRAVIS_OS_NAME}" = "osx" ]; then find /usr/local/Homebrew \! -regex ".+\.git.+" -delete; fi
Run Code Online (Sandbox Code Playgroud)
它给出的输出是:
find: -delete: /usr/local/Homebrew: relative path potentially not safe
Run Code Online (Sandbox Code Playgroud)
为什么我的/usr/local/Homebrew路径被认为是相对路径?