Проблема с автодополнением на VPS

Шаги конвейера, вывод предыдущей команды используется как ввод для следующей:

  1. ls -l /projects/ghosttrailсписок содержимого каталога (, не начинающегося с точки ), с подробностями.

  2. tail -n +2вывод, начинающийся со строки 2 (удаляет первую строку ). Без +tailбудет показывать последние две строки (столько, сколько указано в -n, по умолчанию 10 ).

  3. sed 's/\s\s*/ /g'заменяет несколько последовательных пробелов одним.

  4. cut -d ' ' -f 3получить 3-е поле (имя пользователя ).

  5. sort | uniq -cсортировать и подсчитывать уникальные строки. sortиспользуется, потому что uniqне обнаруживает повторяющиеся строки, если они не являются смежными, как описано вman uniq.

Альтернативный способ получить те же результаты с помощью GNUfind:

find. -maxdepth 1 -not -name '.*' -printf '%u\n' | sort | uniq

findперечисляет имена пользователей(-printf '%u\n'вариант )в рабочем каталоге. -maxdepth 1предотвращает поиск подкаталогов -. -not -name '.*'исключает точечные файлы. sort | uniqимеет ту же цель, что и в исходном примере.

1
03.12.2019, 20:05
1 ответ

(авторизовался как пользователь root:)

root@vps46990199:~# getent passwd mike
mike:x:1000:1000::/home/mike:/bin/sh
root@vps46990199:~# getent passwd root
root:x:0:0:root:/root:/bin/bash

... недолгий поиск находит ответ:

root@vps46990199:~# usermod -s /bin/bash mike

... проблема решена (благодаря ender.qa)

подробнее
Почитав вокруг, я сначала убедился, что на самом деле /bin/shне файл, а символическая ссылка. В соответствии с современными версиями Ubuntu это было(до того, как я запустилusermod)ссылку на /bin/dash, о которой я читал:

bash является стандартом де-факто (очень широко используется ), но это не "стандарт"; sh в Ubuntu использует dash, который является оболочкой, совместимой с Posix -, так что это действительно стандарт. Мой совет — использовать тире как можно чаще в сценариях, особенно для сценариев на стороне сервера -. Хотя bash более выразителен, dash работает намного быстрее и безопаснее(здесь , комментарий Рика -777)

Это заставляет вас задаться вопросом, почему учетная запись rootHostinger.com использует bash, а не dashв качестве стандартной, как с созданной по умолчанию учетной записью пользователя. Помимо моей зарплаты.

0
27.01.2020, 23:56

Теги

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