LINUX.ORG.RU

Командная строка

 


1

1

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

Добавь в конец файла /etc/bashrc

# Color indication for root (red) and users (green)
if [ $(id -u) -eq 0 >/dev/null  2>&1 ]; then
    PS1='[\[\033[1;31m\]\u@\h\[\033[m\] \W]\[\033[33;1m\]\$ \[\033[m\]'
else
    PS1='[\[\033[1;32m\]\u@\h\[\033[m\] \W]\[\033[33;1m\]\$ \[\033[m\]'
fi

Утащил из RedOS.

papin-aziat ★★★★★
()

См. https://ohmyz.sh/ и альтернативы. Поставьте, посмотрите на интересующие вас модули и функции. Когда поймёте, что нужно, а что ненужно — отключите часть.

В частности, всегда включаю игнорирование регистра букв для tab-автодополнения в .inputrc, настраиваю fzf для ctrl+r.

В zsh можно сделать удобный интерактивный выбор директории или файла при tab-автодополнении, тоже часто пользуюсь в zsh.

ValdikSS ★★★★★
()
Последнее исправление: ValdikSS (всего исправлений: 2)

использовать zsh или fish.

zsh совместим с синтаксисом обычного bash, в fish все есть из коробки и ничего не надо настраивать (мне по крайней мере).

Поставив что-то из этого, пошерстить каталоги с плагинами (oh-my-zsh, oh-my-fish и т.п.) и поставить понравившееся. Только главное потом удалить то, что ты на самом деле не используешь :)

Lrrr ★★★★★
()
Ответ на: комментарий от ShellShocker

Не пропало, а сократилось до максимума информации, которую тебе необходимо иметь в командной строке.

basename(директории, где ты находишься) и рут ты или нет.

Это всё и много свободного места под команды. А я-у-мамы-какер-цветастых-попугаев советуют выше другие.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)

Если не пользуешься Ctrl+S (остановка выхлопа, я вот не пользуюсь никогда), то добавь в конец ~/.bashrc stty -ixon, тогда сможешь искать по истории команд не только методом reverse-i-search (Ctrl + R), но и собственно i-search — Ctrl + S.

Если хочешь, чтобы история комманд сохранялась со всех терминалов, то туда же добавь PROMPT_COMMAND='history -a', а то бывает откроешь второй-третий терминал, наваляешь туда полезного, а в историю оно не сохраняется.

Если используешь разные редакторы в гуях и настоящей консоли, то добавь в ~/.bash_profile

if [ $TERM = linux ]; then
 	export SUDO_EDITOR='vi'
else
 	export SUDO_EDITOR='kwrite'
fi

Редакторы поменяй на свои.

papin-aziat ★★★★★
()
Ответ на: комментарий от ValdikSS

Я видел в интернете у кого-то очень красивую строку с разными цветами ввиде стрелок, но не помню что это было.

А эту штуку как поставить? Через установку приложений?

ShellShocker
() автор топика
Ответ на: комментарий от beastie

basename вообще бесполезно (ну видишь ты там bin или src, что это даёт?), нужен полный путь. Ну и имя компа тоже нужно, чтоб по ошибке не ввести что-то не в то окно с не той ssh-сессией.

firkax ★★★★★
()
Ответ на: комментарий от ShellShocker

У меня нет никаких обоев и рабочего стола как такового. Есть серый фон, прописанный кодом цвета 0x555555 в WM, он виден если ни одного окна не открыто или открытые окна почему-то не занимают всю рабочую зону.

firkax ★★★★★
()
Ответ на: комментарий от firkax

В кукаретике это может быть и так, а вот на практике… полный путь тебе всё время видеть не надо, ты и так знаешь, где ты. А если забыл, всегда есть pwd.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 3)

Стараюсь дефолты трогать по минимуму т.к. возможности кастомизировать прод под себя, мягко говоря, ограничены. Из самого важного - «ignoredups» в HISTCONTROL и задираю HISTSIZE / HISTFILESIZE до 16k мимимум.

ПыСы. Ну и там ещё нюансы как заставить автодополнения в bash вести себя одинаково в RHEL6/7/8, но это уже не так критично.

bugfixer ★★★★
()
Ответ на: комментарий от ShellShocker

Настоящий терминал это Ctrl+Alt+F[цифра от одного до шести], если там не запущена графическая оболочка. Например у меня (Debian 10), в tty1 (сочетание клавиш Ctrl+Alt+F1) GDM, экран входа в систему, дисплейный менеджер. GNOME - DE, окружение рабочего стола, то, где происходит работа, в tty2. А в tty3-6 и находится искомый терминал (он же в народе - ядерная консоль). А эмулятор просто делает работу tty в графическом интерфейсе.

Если у тебя GNOME - эмулятор GNOME Terminal. В KDE - Konsole (по дефолту).

@Vsevolod-linuxoid, я кажется дичь несу, поправь если ошибаюсь.

GREAT-DNG ★★★
()
Ответ на: комментарий от ShellShocker

Но это же скучно

Предпочитаю следовать принципу «работает - не трогай». Вопрос скучности тут не стоит.

Вы же меняете обои на рабочем столе?

Не, у нас так не принято =)

GREAT-DNG ★★★
()
Ответ на: комментарий от GREAT-DNG

Настоящий терминал это Ctrl+Alt+F[цифра от одного до шести]

Это vga console, настоящий терминал — это VT100, который общается с компуктером через последовательную консоль.

luke ★★★★★
()