Команда overwrote less, как мне ее переустановить?
Я пытался использовать следующую команду, чтобы перенаправить результаты в менее, чтобы я мог прочитать список полностью:
ls -lh | less
Это, по разным данным, направляет содержимое к меньшему количеству и позволяет просматривать листинг в новом файле. Вместо этого, однако, он переписал мою менее команду. Я использовал vi, чтобы просмотреть меньше, и теперь это действительно был список папок, в которых я находился.
Я считаю, что причина была в том, что я находился в папке /usr/bin/, когда использовал команду, где меньше живет. Да, я просмотрел свои шаги в журнале команд, только cd и ls были до и после перезаписи, и время модификации совпадает, когда я выполнил указанную выше команду. И да, я единственный пользователь с root-доступом.
Итак, теперь, когда меньше было уничтожено, как мне переустановить только этот файл?
Сервер является CENTOS 4.9 (Final) и uname -a возвращает:
Linux server.name.com 2.6.9-89.0.16.EL # 1 вт 3 ноя 17:15:02 EST 2009 i686 i686 i386 GNU/Linux
Мне нужно сделать перезагрузку / обновление ОС в какой-то момент, так как cPanel больше не поддерживает CENTOS 4, но пока я хочу меньше возвращаться. Я могу использовать vi или больше вместо него.
--- Отредактировано, чтобы добавить ---
Я знаю, что все будут повторять это неоднократно, что это не может произойти, как описано, но вот фактический список того, что было сделано шаг за шагом:
> /usr/sbin/exim -bp > /home/<username>/<filename>.log (created Feb 4 21:03)
> less -N /home/<username>/<filename>.log (less was working fine)
> top
> df -P
> cd /usr
> ls -l
> cd games
> ls -l
> cd ..
> cd lib
> ls -l
> cd ..
> ls -l
> cd etc
> ls -l
> cd ..
> cd bin
> ls -lh
> ls -lh | less (less reports created Feb 4 21:22)
(this started trying to run every line in the listing like a shell script. I was confused about this error, so I did some looking online for an answer - none found. So I decide to send the output to a file instead.)
> ls -lh
> ls -lh > /home/<username>/ls (created Feb 4 21:42)
> less /home/<username>/ls (output is the same with it trying to run every line in the listing as a shell script)
> ls -lh > /home/sbaldwin/ls.log (wondering if calling a file ls messed up things, I retry to > output to a file)
> ls -lh /home/sbaldwin/ls.log (check to see the file size)
> less /home/sbaldwin/ls.log (same result as before)
> less (same result)
> top
> more (functioning normally)
> vi (functioning normally)
> less (same result)
> exit (tried exiting and returning, and seeing if a process is running for less)
> less (same result)
> vi /usr/bin/less (Now I see that it is the directory listing of '/usr/bin'
> ls -lh /usr/bin/less
-rwxr-xr-x 1 root root 74K Feb 4 21:22 /usr/bin/less*
Для скептиков, которые подтверждают, что этого не может быть, так оно и есть. Никто другой не имеет root-доступа, я был единственным, кто вошел в SSH, и никакие другие команды не запускались, кроме как выше. Для чего это стоит, может быть, это ошибка, если вы запустите ls -lh | less в папке /usr/bin/, где находится ссылка на less, он может просто записать поверх вашего файла less. Если вы на 100% уверены, что этого не произойдет, обязательно попробуйте. Опять же, это может быть ограничено CENTOS 4.9.
1 ответ
Команду, которую вы разместили, не нужно было перезаписывать меньше, но не будем останавливаться на деталях.
Я не уверен, что значит сказать: "cPanel больше не поддерживает CENTOS 4", но если репозитории CentOS 4 больше не работают в вашей системе, то загрузите меньшее количество RPM из дистрибутива CentOS и принудительно переустановите его.
wget http://vault.centos.org/4.9/os/i386/CentOS/RPMS/less-382-4.rhel4.i386.rpm
rpm -Uvh --force less-382-4.rhel4.i386.rpm
Это принудительно перезапишет все пакеты, установленные меньшим числом оборотов в минуту, включая модифицированный менее двоичный.