Ошибочно модифицированный `/ bin / sh '

У меня был этот сценарий:

spd-say "Hello, don't forget the trash bin."

Таким образом, он напомнил мне о том, что я должен делать, и я переместил его в /usr/local/bin/, и команда trash произнесла аргумент, затем я установил Работа crontab , чтобы каждый день напоминать мне о том, что я хотел сделать. Но crontab не работал, и я не мог понять почему (он выполняет другие задачи без нареканий).

Однажды я увидел это сообщение в своем терминале:

You have new mail in /var/mail/root

, в конце которого эта строка заставила меня сделать ошибку:

/bin/sh: 1: trash: not found

Я знаю, что это было глупая вещь, но я сделал:

mv /usr/local/bin/trash /bin/sh

думая, что sh является каталогом, и я должен переместить сценарий туда, чтобы его выполнить.

Теперь, когда я хочу увидеть man-страницу, система говорит:

«Здравствуйте, не забывайте мусорное ведро».

И вывод из cat sh:

#!/bin/bash
spd-say "Hello, don't forget the trash bin. "

В любом случае, я могу что-нибудь сделать или мне нужно переустановить операционную систему?

16
задан 15 July 2019 в 10:59

2 ответа

В системах Ubuntu, /bin/sh символьная ссылка на dash оболочка по умолчанию:

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jul  7  2018 /bin/sh -> dash

Таким образом (принимающий Ваш эмулятор терминала использует оболочку удара и не стал поврежденным Вашей ошибкой) все, которое необходимо сделать, воссоздают ссылку:

sudo ln -sf dash /bin/sh
30
ответ дан 23 November 2019 в 02:30

Нет, Вы не должны переустанавливать свою систему./bin/sh является только softlink к Вашей оболочке. readlink -f /bin/sh /bin/bash В моем ударе случая. Переместите свой сценарий и сделайте softlink к Вашей любимой оболочке.

7
ответ дан 23 November 2019 в 02:30

Другие вопросы по тегам:

Похожие вопросы: