gpt4 book ai didi

MobaXterm Busybox 奇怪的设置

转载 作者:行者123 更新时间:2023-12-04 13:44:27 32 4
gpt4 key购买 nike

我正在使用 MobaXterm 便携版。
我发现了一个奇怪的设置,总结在这里。
/bin 中的外部命令工作正常。例如,使用 /bin/ssh.exe我可以 ssh好的。

内部命令是

  • “重定向”到busybox,如
    $ which cat
    /bin/cat
    $ ll /bin/cat
    lrwxrwxrwx 1 USER001 UsersGrp 16 Jul 24 07:42 /bin/cat -> /bin/busybox.exe
  • 同时别名为显然不存在的文件。
    $ type cat
    cat is aliased to `/bin/cat.exe'

  • 这些别名显然优先于 PATH 中的文件,因此这些命令不起作用。
    $ cat myfile
    bash: /bin/cat.exe: No such file or directory

    如果我取消别名, cat不找 /bin/cat.exe但对于 /bin/busybox.exe ,一切都“恢复正常”。
    $ unalias cat
    $ cat myfile
    Hello world
    ...

    如何获得正常行为(没有别名或存在别名目标)?
    我的意思是不要在 .bashrc 中写我自己的反别名,这应该不需要。
    此外,也许我会破坏某些东西。

    为什么 MobaXterm 会设置这样的东西?

    PS:初始状态,偶 ls不起作用,出于同样的原因。
    但是 ll作品,因为
    $ type ll
    ll is aliased to `_bbf ls -l'
    $ type _bbf
    _bbf is a function
    ...

    最佳答案

    我怎样才能得到正常的行为?

    解决方法:

  • unalias手工制作,所以 /bin/busybox.exe实际使用。

    下面我为此添加了一个脚本。
  • 复制.exe来自临时文件 root dir 可用时,因此使用外部版本。

  • 为什么 MobaXterm 会设置这样的东西?

    当不使用持久根 (/) 目录时,这是获得的
    $ which cat
    /bin/cat
    $ ll /bin/cat
    -rwxr-xr-x 1 RY16205 UsersGrp 49703 jul. 28 07:12 /bin/cat
    $ type cat
    cat is aliased to `/bin/cat.exe'
    $ ll /bin/cat.exe
    -rwxr-xr-x 1 USER001 UsersGrp 49703 jul. 28 07:12 /bin/cat.exe
    $ cat myfile
    Hello world
    ...
    $ unalias cat
    $ type cat
    cat is hashed (/bin/cat)
    $ cat myfile
    Hello world
    ...

    所以两者中的任何一个 cat s 的工作(内部 busybox 和外部版本;我不知道它们是否完全相同)。
    这是因为 /bin指向 C:\Users\user001\AppData\Local\Temp\Mxt108\bincat.exe在那儿。

    但是当使用永久根 (/) 目录时, /bin指向 <Persistent root (/) directory\bin , 和 cat.exe不是在那里创建的。
    前临时 root一旦 MXT 关闭,dir 就会被删除。
    所以这可能是 MobaXterm 的配置错误。
    如果是这样,唯一的选择似乎是一种解决方法,如上所述。

    用于消除锯齿的脚本:
    #!/bin/bash

    export ROOTDIR_WIN=$(cygpath -wl /)
    if [[ ${ROOTDIR_WIN##*\\} == "Mxt108" ]] ; then
    # Not using a Persistent root dir. Do not need to unalias.
    echo "Not using a Persistent root dir. Do not need to unalias."
    else
    # Using a Persistent root dir. Need to unalias.
    exe_linux_list="bash busybox chmod cygstart cygtermd cygwin-console-helper dircolors dwm_w32 echo grep ls MoTTY ssh ssh-pageant test twm_w32 wc xkbcomp_w32 XWin_MobaX"

    for exe_linux in ${exe_linux_list} ; do
    if [[ $(type -t ${exe_linux}) == "alias" ]] ; then
    #type ${exe_linux}
    unalias ${exe_linux}
    fi
    done
    fi

    关于MobaXterm Busybox 奇怪的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51570262/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com