Строка подсказки неправильно задана в Bash для нового пользователя

Я не уверен, почему исходная строка не работала. Следующая команда работает для меня.

найти / -имя (имя файла *)| grep '(имя_файла.расширение )'| xargs cp -т./

В моем случае имя файла *представляет собой набор файлов с одинаковым именем и разными типами файлов (txt, zip и т. д. ). Я делаю grep, чтобы узнать только файл filename.txt и скопировать его в мой каталог назначения (, который в настоящее время./ ).

0
04.02.2021, 03:21
1 ответ

Судя по информации, содержащейся в вопросе, к тому результату, который вы испытываете, приводят несколько разных факторов.

Ключевой принцип, о котором следует помнить, заключается в том, что в Linux доступно несколько различных оболочек, таких как dash, csh, bash и zsh. Оболочка — это просто любая программа, которая предлагает вам подсказку, принимает команды и возвращает вывод. Все «стандартные» оболочки имеют сходство, но также имеют различия в функциональности и способе настройки.

Кроме того, каждый дистрибутив выбирает оболочку по умолчанию для новых пользователей, которой часто является (, но не всегда )Bash. Для дистрибутивов, предпочитающих производительность и сокращение нестандартных -расширений, часто выбирают sh(часто путем создания символической ссылки на другую оболочку, которая затем запускается в режиме совместимости sh -).

Мы видим в выводе /etc/passwdв одном из комментариев, что Kali по умолчанию предоставляет вашему пользователю jeff оболочку sh. Несмотря на то, что этот вариант очень эффективен, в нем отсутствуют такие функции, как настраиваемая подсказка и завершение команды.

Таким образом, первым шагом для устранения проблемы будет запуск такой команды:

sudo chsh -s /bin/bash jeff

Как уже обсуждалось в комментариях, похоже, остальная часть проблемы сводилась к разрешениям. Файлы конфигурации оболочки каждого пользователя, такие как ~/.bashrc, должны быть доступны для чтения пользователем.

Обратите внимание, что настройки оболочки по умолчанию могут быть изменены для всей системы -для новых пользователей путем редактирования (или добавления)/etc/defaults/useraddи каталога /etc/skel/.

Мой/etc/defaults/useradd(для Void Linux )содержит:

# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

Файлы в /etc/skelкопируются в домашний каталог нового пользователя в качестве побочного -эффекта выполнения команды useradd.

0
18.03.2021, 22:32

Теги

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