web-dev-qa-db-ja.com

PATHが壊れているときに、vim実行可能ファイルの場所を見つけるにはどうすればよいですか?

/etc/environmentおよび.bashrcファイルの編集後にシステムがクラッシュしたようです。

デスクトップが起動せず、これらのファイルを修正する必要があります。しかし、システムがコマンドを見つけられないため、パス全体を使用する必要があります。

完全なパスで実行できるようにvim実行可能ファイルを見つけることができますか?

2
vico

PATH環境変数が破損しているようです。

/usr/bin/vimvimを見つけることができます

$ which vim
/usr/bin/vim

/usr/binには、vigeditもあります。

nano/binにあります

$ which nano
/bin/nano

Sudo/usr/binにあります

$ which Sudo
/usr/bin/Sudo

ノート:

@SorenAと@PatrickMevzekで述べたように、ファイルの場所の検索はwhereisを使用して行うこともできます

@Terranceで述べたように、whereis vimは、名前にvimのような名前が付いているすべての名前を見つけます。結果のほとんどは、vim実行可能ファイルではないことに注意してください。

man which-コマンドの検索-引数の名前に一致する実行可能ファイルのPATHを検索することによりこれを行います。

man whereis-whereisは、標準のLinuxの場所、および$ PATHと$ MANPATHで指定された場所で目的のプログラムを見つけようとします。

4
Yaron

PATHが破損しているため、有用な実行可能ファイルは/usr/binおよび/binフォルダーにあります。ターミナルタイプから

export PATH=/usr/bin:/bin

名前の前にパスを入力することなくSudo vimを実行できるはずです。

次のコマンドは、/etc/environmentファイルと~/.bashrcファイルを復元します。

このコマンドは、パスステートメントを/etc/environmentに戻します。

Sudo bash -c 'echo "PATH=\"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games\"" > /etc/environment'

次に、PATHステートメントが設定するようにファイルを入手できます。

. /etc/environment

次に、デフォルトの.bashrcファイルを取得して、ホームフォルダーに戻します。

Sudo cp /etc/skel/.bashrc /home/$USER/.bashrc
Sudo chown $USER:$USER /home/$USER/.bashrc

お役に立てれば!

3
Terrance

純粋なbashを使用すると、vimという名前の検索を実行できます。

$ shopt -s globstar  
$ time echo /**/vim
/etc/alternatives/vim /etc/vim /usr/bin/vim /usr/bin/X11/vim /usr/share/cmake-3.5/editors/vim /usr/share/vim /var/lib/dpkg/alternatives/vim /var/lib/vim

real    0m4.145s
user    0m0.740s

次に、結果をループして、実行可能なものを確認できます。

$ time for v in /**/vim; do [[ -x $v && -f $v ]] && echo "$v"; done
/etc/alternatives/vim
/usr/bin/vim
/usr/bin/X11/vim

ノート:


Ubuntuにはさまざまな破損があるため、多くのことを支援できる単一のコマンド/bin/busyboxがあります。これだけを思い出すと、より多くの情報にアクセスできます:

$ /bin/busybox 
BusyBox v1.22.1 (Ubuntu 1:1.22.0-15ubuntu1) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list[-full]
   or: busybox --install [-s] [DIR]
   or: function [arguments]...

    BusyBox is a multi-call binary that combines many common Unix
    utilities into a single executable.  Most people will create a
    link to busybox for each function they wish to use and BusyBox
    will act like whatever it was invoked as.

Currently defined functions:
    [, [[, acpid, adjtimex, ar, arp, arping, ash, awk, basename, blockdev,
    brctl, bunzip2, bzcat, bzip2, cal, cat, chgrp, chmod, chown, chpasswd,
    chroot, chvt, clear, cmp, cp, cpio, crond, crontab, cttyhack, cut,
    date, dc, dd, deallocvt, depmod, devmem, df, diff, dirname, dmesg,
    dnsdomainname, dos2unix, dpkg, dpkg-deb, du, dumpkmap, dumpleases,
    echo, ed, egrep, env, expand, expr, false, fdisk, fgrep, find, fold,
    free, freeramdisk, fstrim, ftpget, ftpput, getopt, getty, grep, groups,
    gunzip, gzip, halt, head, hexdump, hostid, hostname, httpd, hwclock,
    id, ifconfig, ifdown, ifup, init, insmod, ionice, ip, ipcalc, kill,
    killall, klogd, last, less, ln, loadfont, loadkmap, logger, login,
    logname, logread, losetup, ls, lsmod, lzcat, lzma, lzop, lzopcat,
    md5sum, mdev, microcom, mkdir, mkfifo, mknod, mkswap, mktemp, modinfo,
    modprobe, more, mount, mt, mv, nameif, nc, netstat, nslookup, od,
    openvt, passwd, patch, pidof, ping, ping6, pivot_root, poweroff,
    printf, ps, pwd, rdate, readlink, realpath, reboot, renice, reset, rev,
    rm, rmdir, rmmod, route, rpm, rpm2cpio, run-parts, sed, seq,
    setkeycodes, setsid, sh, sha1sum, sha256sum, sha512sum, sleep, sort,
    start-stop-daemon, stat, static-sh, strings, stty, su, sulogin,
    swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar,
    taskset, tee, telnet, telnetd, test, tftp, time, timeout, top, touch,
    tr, traceroute, traceroute6, true, tty, tunctl, udhcpc, udhcpd, umount,
    uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop, unxz,
    unzip, uptime, usleep, uudecode, uuencode, vconfig, vi, watch,
    watchdog, wc, wget, which, who, whoami, xargs, xz, xzcat, yes, zcat

はい、viが含まれます。

2
Olorin