Команда cd не работает

Итак, каждый раз, когда я пытаюсь перейти к каталогу, он дает мне это сообщение, но когда я перешел к директории с десктопами, он сделал это только

0
задан 12 October 2017 в 08:03

2 ответа

Похоже, @steeldriver прав, ваш пример имеет что-то невидимое перед cd.

В вашем терминале вы видите, что я вижу?

$ type cd cd is a shell builtin

Я не уверен, что это будет безвредно, если «shell builtin» относится к функциональности из / bin / sh или к оболочке типа / bin / bash или / bin / dash. Мое первое предположение, что это происходит из оболочки, а не sh. Убедитесь, что в вашей среде указан указатель $ SHELL.

$ echo $SHELL /bin/bash

Если вы играли в вашем сеансе в интерактивном режиме с помощью команд типа «экспорт ...» или запуская скрипты или с помощью редактирования .bashrc, вы может вызвать проблемы, которые вы видите. Проверьте переменную SHELL.

Возможно, вы видите какой-то законный $ SHELL. Убедитесь, что на выходе указан файл, который в настоящее время существует.

$ ls -la /bin/bash -rwxr-xr-x 1 root root 1099016 May 16 06:35 /bin/bash

Возможно, вы видите тире или что-то в этом роде.

Можете ли вы получить новый терминал, чтобы увидеть, происходит ли одно и то же? Каждый терминал запустит свою собственную оболочку, проблема может возникнуть по-другому или вообще отсутствует. Если проблема такая же, значит, проблема заключается либо в вашей конфигурации, либо в самих файлах оболочки.

Предположим, что у вас установлен пакет bash или любая другая оболочка, запустите новую оболочку в этом (-l означает входную оболочку):

$ bash -l

После этого проблема такая же?

Если это сбой, я бы использовал командную строку для установки / установите программы оболочки. У меня есть как bash, так и тире:

$ dpkg -l | grep bash ii bash 4.4-2ubuntu1.1 amd64 GNU Bourne Again SHell $ dpkg -l | grep dash ii dash 0.5.8-2.3ubuntu1 amd64 POSIX-compliant shell

В вашей ситуации я попробую переустановить

$ apt-get install --reinstall bash

или такой. Есть вероятность, что если вы повредили файл оболочки, это исправит его, когда вы выйдете из системы и войдете в систему.

Зачем переустанавливать тире? В Ubuntu, хотя я делаю BASH свою оболочку, похоже, что / sbin / sh предоставляется тире:

$ dpkg -S /bin/sh diversion by dash from: /bin/sh diversion by dash to: /bin/sh.distrib dash: /bin/sh

Одна последняя мысль. Если кто-то пытается взломать вашу систему и взять ее под контроль, одна из вещей, которую они могут сделать, это попытаться заменить вашу оболочку. Это может объяснить проблемы, которые вы видите, хотя я признаю, что это кажется драматичным, чтобы довести это до конца.

0
ответ дан 18 July 2018 в 05:34

Похоже, @steeldriver прав, ваш пример имеет что-то невидимое перед cd.

В вашем терминале вы видите, что я вижу?

$ type cd cd is a shell builtin

Я не уверен, что это пространство безвредно, если «shell builtin» относится к функциональности из / bin / sh или к оболочке типа / bin / bash или / bin / dash. Мое первое предположение, что это происходит из оболочки, а не sh. Убедитесь, что в вашей среде указан указатель $ SHELL.

$ echo $SHELL /bin/bash

Если вы играли в вашем сеансе в интерактивном режиме с помощью команд типа «экспорт ...» или запуская скрипты или с помощью редактирования .bashrc, вы может вызвать проблемы, которые вы видите. Проверьте переменную SHELL.

Возможно, вы видите какой-то законный $ SHELL. Убедитесь, что на выходе указан файл, который в настоящее время существует.

$ ls -la /bin/bash -rwxr-xr-x 1 root root 1099016 May 16 06:35 /bin/bash

Возможно, вы видите тире или что-то в этом роде.

Можете ли вы получить новый терминал, чтобы увидеть, происходит ли одно и то же? Каждый терминал запустит свою собственную оболочку, проблема может возникнуть по-другому или вообще отсутствует. Если проблема такая же, значит, проблема заключается либо в вашей конфигурации, либо в самих файлах оболочки.

Предположим, что у вас установлен пакет bash или любая другая оболочка, запустите новую оболочку в этом (-l означает входную оболочку):

$ bash -l

После этого проблема такая же?

Если это сбой, я бы использовал командную строку для установки / установите программы оболочки. У меня есть как bash, так и тире:

$ dpkg -l | grep bash ii bash 4.4-2ubuntu1.1 amd64 GNU Bourne Again SHell $ dpkg -l | grep dash ii dash 0.5.8-2.3ubuntu1 amd64 POSIX-compliant shell

В вашей ситуации я попробую переустановить

$ apt-get install --reinstall bash

или такой. Есть вероятность, что если вы повредили файл оболочки, это исправит его, когда вы выйдете из системы и войдете в систему.

Зачем переустанавливать тире? В Ubuntu, хотя я делаю BASH свою оболочку, похоже, что / sbin / sh предоставляется тире:

$ dpkg -S /bin/sh diversion by dash from: /bin/sh diversion by dash to: /bin/sh.distrib dash: /bin/sh

Одна последняя мысль. Если кто-то пытается взломать вашу систему и взять ее под контроль, одна из вещей, которую они могут сделать, это попытаться заменить вашу оболочку. Это может объяснить проблемы, которые вы видите, хотя я признаю, что это кажется драматичным, чтобы довести это до конца.

0
ответ дан 24 July 2018 в 18:22
  • 1
    Встроенная оболочка - это команда, функциональность которой обеспечивается любой используемой вами оболочкой (будь то sh, bash, dash, zsh или что-то еще). Каждая оболочка имеет свой собственный набор встроенных функций. $SHELL устанавливается процессом входа в вашу оболочку входа, независимо от того, установлен он или нет, абсолютно не влияет на оболочку, которую вы сейчас используете. – muru 9 October 2017 в 07:10
  • 2
    @muru Thats новости для меня. Я не знал, что программа оболочки, которая запускает сеанс, может быть чем-то иным, чем $ SHELL в среде. Я ожидаю, что большинство пользователей системы Ubuntu никогда не увидит несоответствие между ними, если что-то не пошло не так. Надеюсь, ОП сообщит, если он занимается в окружающей среде. Мне любопытно узнать. Я полагаю, что переполнение буфера в каком-то скрипте может повредить запущенную оболочку. – pauljohn32 9 October 2017 в 07:50
  • 3
    Возиться вокруг в своей среде? Как насчет установки дополнительной программы оболочки и ее использования иногда? Это совсем не редкость .... – Zanna 16 October 2017 в 08:36

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

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