Получите UNIX, чтобы сказать мне «X аналогичные»

Как говорит muru , вы должны просто использовать adduser :

adduser myuser

запросит myuser 's Информация и пароль GECOS, а также создать домашний каталог myuser с соответствующими разрешениями. Оболочка по умолчанию должна быть / bin / bash . adduser также заполнит новый домашний каталог содержимым / etc / skel (сценарии инициализации оболочки по умолчанию и т. Д.).

Все, что вам нужно, это добавить myuser в группу sudo , как вы уже делаете, чтобы вся последовательность стала

adduser myuser
adduser myuser sudo

2
12.10.2018, 08:00
1 ответ

Если это происходит в Ubuntu, askubuntu.com говорит, что bash использует /usr/lib/command-not-found, который использует модуль Python CommandNotFound.

Вы можете увидеть в /usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.pyточные строки, которые отвечают за «но есть X похожих», они начинаются со строки 178 в файле CommandNotFound.py:

if len(mispell_packages)+len(mispell_snaps) > max_alt:
    print("", file=self.output_fd)
    print(_("Command '%s' not found, but there are %s similar ones.") % (word, len(mispell_packages)), file=self.output_fd)
    print("", file=self.output_fd)
    self.output_fd.flush()
    return

Поскольку нет переключателя, флага или какой-либо опции, чтобы CommandNotFound.py возвращал также список этих похожих команд, если вы действительно хотите знать, что это за пакеты, вы можете просто отредактировать эту часть файла python и добавить две строки, которые будет печатать содержимое массива с похожими командами, а не просто количество вещей в этом массиве. В этой части кода добавлены строки 4 и 5 :

.
if len(mispell_packages)+len(mispell_snaps) > max_alt:
    print("", file=self.output_fd)
    print(_("Command '%s' not found, but there are %s similar ones.") % (word, len(mispell_packages)), file=self.output_fd)
    for x in range(len(mispell_packaged)):
        print(mispell_packages[x])
    print("", file=self.output_fd)
    self.output_fd.flush()
    return

Теперь при сохранении/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py(нужно отредактировать его как корень )и набрать int, тогда получится:

Command 'int' not found, but there are 18 similar ones.
('itd, 'ncl-ncarg', 'universe', '')
('ant, 'ant', 'universe', '')
('inl, 'ioport', 'universe', '')
('inw, 'ioport', 'universe', '')
('tint, 'tint', 'universe', '')
('inc, 'mailutils-mh', 'universe', '')
('inc, 'mmh', 'universe', '')
('inc, 'nmh', 'universe', '')
('nit, 'python-nevow', 'universe', '')
('init, 'systemd-sysv', 'main', '')
('itv, 'python-invoke', 'universe', '')
('itv, 'python3-invoke', 'universe', '')
('cnt, 'open-infrastructure-container-tools', 'universe', '')
('inb, 'ioport', 'universe', '')
('ent, 'ent', 'universe', '')
('ink, 'ink', 'universe', '')
('iyt, 'python3-yt', 'universe', '')
('iat, 'iat', 'universe', '')

Список содержит похожие имена команд (itd, inl, inw, tint )и пакеты, которые предоставляют эти команды (ncl -ncarg, ant, ioport )и репозиторий, который оно происходит из(вселенной, главной).

Надеюсь, это удовлетворило ваше любопытство. :)Честно говоря, мне тоже стало любопытно после прочтения вашего поста.

0
27.01.2020, 22:29

Теги

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