Как настроить Konsole, эмулятор терминала KDE по умолчанию

Я настраиваю мое приглашение zsh и нашел следующее, чтобы проверить, есть ли какие-либо фоновые задания: if [[ $(jobs | wc…

Немного мотивации

Прежде чем мы познакомимся с Konsole, я хотел бы мотивировать тех, кто еще не продан, на идею использования терминала.

Да, я понимаю, что это может быть пугающим

если вы никогда не использовали ничего подобного раньше. В какой-то момент мы все были новичками. Кроме того, существует риск взлома вашей системы Linux с помощью команд

реально, особенно если вы используете их, не зная, что они делают.

Однако сегодня гораздо проще быть новичком в Linux

чем это было, скажем, пятнадцать лет назад. Сеть больше и есть бесчисленное количество бесплатных ресурсов

, учебные пособия и даже онлайн-курсы

которые помогут вам узнать все о командах Linux

, Давно прошли времена изучения трудоемкой текстовой документации: теперь вы можете научиться пользоваться терминалом

с методом, который подходит вам лучше всего.

Да, терминал на первый взгляд может показаться избыточным и старомодным. Да, вы, вероятно, могли бы использовать Linux до конца своей жизни, даже не касаясь его. Тем не менее, рассмотрим эти моменты:

  • терминал незаменим для устранения неполадок. Запустите неправильно работающее приложение в терминале, и в большинстве случаев вы получите вывод, который укажет на проблему
  • если вам нужна помощь на доске обсуждений, вывод команды только для текста быстрее разделить и проанализировать, чем набор скриншотов
  • базовый набор утилит командной строки более или менее одинаков для каждого дистрибутива Linux, поэтому не имеет значения, используете ли вы elementaryOS

    а тот, кто тебе помогает, имеет Arch Linux. Они могут запрашивать вывод команд перечисления оборудования, не беспокоясь о том, есть ли они в вашей системе.

  • Вы можете запускать любое приложение из терминала, а некоторые приложения имеют специальные опции, такие как безопасный режим, к которым трудно (или невозможно) получить доступ из обычного графического интерфейса.
  • запуск приложений с повышенными привилегиями иногда необходим, и это легче сделать из терминала
  • Действия, которые требуют нескольких кликов и перетаскивания через диалоговые окна подтверждения в приложении, часто могут быть автоматизированы с помощью сценариев

    или простые однострочные в терминале. Таким образом, вы можете ускорить рабочий процесс и «заставить компьютер работать на вас»

  • становится еще лучше, когда вы создаете псевдонимы

    : вам не нужно запоминать команды или переключатели, только слово, которое вы выбрали в качестве псевдонима

  • если вы хотите почувствовать себя хакером или произвести впечатление на своих друзей своим «безумным умением», более полезно знать, что вы делаете в терминале, чем просто притворяться, что вы печатаете

    команды

Будучи убеждена? Отлично. Давайте узнаем, как настроить Konsole. Обратите внимание, что скриншоты и описания относятся к последней стабильной версии Konsole для KDE Приложение было портировано на Plasma 5

, но это все еще страдает от надоедливых ошибок, поэтому я выбрал более старую версию.

Настройка среды окружения

Когда пользователь регистрируется и входит в систему, в оперативную память загружаются ряд переменных и им присваиваются значения. Эти переменные называются «переменными окружения» командного интерпретатора; они могут использоваться различными командами для получения информации о программной среде (например, о типе операционной системы, о домашнем каталоге пользователя и о его командной оболочке).

В Red Hat Linux переменные окружения помогают настроить вычислительную среду операционной системы и включают полезные спецификации и настройки; если вы начнете писать сценарии оболочки, то в них, скорее всего, вы захотите применять эти многочисленные переменные. Следующий список содержит ряд переменных окружения вместе с их описанием:

PWD — имя актуального рабочего каталога, используемого командой pwd, например, /home/winky/foo; USER — имя пользователя, например winky; LANG — язык, используемый по умолчанию, например English; SHELL — название и местоположение актуальной командной оболочки, используемого в данный момент; PATH — используемое по умолчанию местоположение исполняемых файлов, например, /bin, /usr/bin и т.д.; LD_LIBRARY_PATH — местоположение важных программных библиотек; TERM — переменная указывает какой терминал используется, например, vt100, это необходимо для экранных программ, например, для текстовых редакторов; MACHINE — тип системы, архитектура системы и так далее.

У каждой оболочки может быть свой собственный набор функциональных возможностей и синтаксис языка, а также особый набор переменных окружения, используемых по умолчанию. Чтобы отобразить на экране эти среды, введем на терминале env или printenv. Например:

$env PWD=/home/bball HOSTNAME= USER=bball MACHTYPE=i386-redhat-linux-gnu MAIL=/var/spool/mail/bball BASH_ENV=/nome/bball/.bashrc LANG=en_US DISPLAY=titanium:0 LOGNAME=bball SHLVL=1 PATH=/usr/bin: \ SHELL=/bin/bash HOSTTYPE=i586 HOME=/home/bball

В этом сокращенном списке показаны несколько распространенных переменных. Установка их производится при помощи файлов конфигурации, находящихся в каталогах /etc, /etc/skel или в домашнем каталоге пользователей /home. Так, используемые по умолчанию параметры оболочки bash можно найти в файлах /etc/profile и /etc/bashrc, а также в .bashrc или .bash_profile, хранящихся в домашнем каталоге.

Одной из наиболее важных переменных является «SPATH», которая определяет местоположение исполняемых файлов. Например, если вы, будучи обычным пользователем, попытаетесь выполнить команду, которая не содержится в вашей переменной $РАТН, например, команду ifconfig, то увидите что-то вроде следующего:

$ ifconfig $**sh: ifconfig: no such command

Однако, если вам наверняка известно, что ifconfig точно есть в вашей системе, то это легко проверить с помощью whereis:

$ whereis ifconfig

В этом примере видим, что ifconfig действительно установлен. Дело в том, что для операционной системы Red Hat Linux каталог /sbin по умолчанию не включен в $РАТН.

Одна из причин этого заключается в том, команды из каталога /sbin обычно предназначены только для пользователя root. Редактируя файл .bash_profile в своем домашнем каталоге, можно добавить каталог /sbin в свою переменную $РАТН.

Найдите в этом файле такую строку:

PATH=$PATH:$HOME/bin

Можно следующим образом отредактировать этот документ (например, с помощью редактора vi) и добавить каталог s/bin: PATH=$PATH:/sbin:$HOME/bin Сохраните этот файл. Когда в следующий раз вы зарегистрируетесь и войдете в систему, каталог /sbin будет включен в переменную $РАТН. Чтобы пользоваться этим изменением сразу же, можно считать новые параметры из файла .bash_profile с помощью source: $ souce .bash_profile

Теперь введем «ifconfig», не задавая полное имя пути. Некоторые команды Linux используют другие переменные среды, например, для получения информации о конфигурации системы. В частности программам связи требуется такая переменная, как BAUD_RATE, которая указывает скорость передачи данных модемом.

В качестве эксперимента с переменными среды можно модифицировать «PS1» и изменить вид приглашения. Если вы работаете с bash, то для изменения приглашения можно воспользоваться встроенной командой export.

Допустим, что используемое по умолчанию параметры ввода оболочки выглядят так: [[email protected] ~]$ Изменим ее вид с помощью PS1 следующим образом:

$ PS1=’SOSTYPE r00lz ->’

Нажимаем на клавишу Enter, скорее всего, видим:

linux-gnu r00lz ->

О масштабности проекта

На момент написания статьи, у образа CtlOS более 20 тысяч скачиваний, в чате телеграма 200 участников, в группе ВК 400 подписчиков, на основном Github репозитории 45 звезд.

Q: Сколько человек в вашей команде(судя по гитхабу, их 4)? Кого бы вы хотели видеть в ней?

A: Это причастные и выразившие желание на добавление. Один активно помогал в тестировании и создании тем и раздач на торрент форумах. Один какое-то время исправлял и форматировал вики. Один по моей просьбе переделывал иконки. Собственно и всё на этом, на данный момент активности со стороны нет. Я даже не знаю, кого бы я хотел видеть, и особо не задаюсь данным вопросом, я для этих целей и запустил форум (и чат), чтобы любой в понятной форме мог что-то добавить, а я возможно внедрить.

Q: Вам бы хотелось сделать проект масштабным, как, например, Manjaro?

A: Я не занимаюсь особым пиаром и не стремлюсь к размещению на distrowatch 🙂

Q: Ваша официальная работа связана с Linux?

A: Если учитывать, что я использую исключительно linux, то можно сказать, связана. Основной род деятельности — это арбитраж трафика, affiliate marketing. Linux мне очень в этом помогает, расширяет воображение, а именно консоль и bash-скриптинг.

Q: Если бы Ваш проект был вашей основной работой, что бы Вы добавили в новый релиз в первую очередь?

A: Если бы это было основным, то я бы хотел реализовать установку через calamares online, на данный момент происходит простое распаковывание iso с usb и установка некоторых пакетов выбранных на этапе установки, то есть установщик делает не совсем то, что я хочу, но это и так будет сделано: вопрос времени. Не совсем просто взаимодействовать, как может показаться. Существуют трудности, как в упорядочивании зависимостей, так и в грамотной поставке конфигураций. Чем дальше в лес, тем больше дров).

Установка

Итак, если вам понравилось, предлагаю сначала посмотреть работу™ вживую™, в Vagrant:

git clone https://github™.com/viasite-ansible/ vagrant up

Перед установкой на рабочую систему внимательно прочитайте это:

  • Роль не установится, если у вас уже есть директория ~/.oh-my-zsh, переименуйте ее, если она у вас есть.
  • Роль затрет™ ваш ~/.zshrc, сделайте бекап!
  • После применения роли, если хотите™ и дальше™ управлять терминалом через ansible, нужно писать™ свои настройки либо в переменные плейбука, либо в ~/, этот файл инклюдится в конце ~/.zshrc и ansible его не трогает.

Если все устраивает, можно установить роль через ansible-galaxy™:

ansible-galaxy™ install

Потом создать плейбук вроде такого™:

hosts: all vars: zsh_autosuggestions_bind_key: «^U» roles: —

Сохранить, например, в После этого роль можно применить к локальному юзеру:

ansible-playbook -i «localhost,» -c local

Как применить к другим™ юзерам™ и серверам пользователи ansible думаю разберутся.

Проверено на Debian™ 6, Ubuntu™ , Ubuntu™ , macOS , CentOS™ 7.

Все доступные переменные не стал выносить в README™.md, их можно посмотреть в defaults/

Выводы™

Я понимаю, что конфиг™ терминала — очень личная™ вещь, не уверен™, что будет много желающих воспользоваться именно™ моей ansible ролью, поэтому я постарался сделать ее максимально настраиваемой. Если будут желающие использовать, пожалуйста, оставляйте issues™.

Конечно, это не последний конфиг™, например, пока я писал эту статью™, я нашел antigen, менеджер плагинов для zsh, который написан по аналогии с Vundle™ для Vim, заточен на работу™ в паре с oh-my-zsh и избавляет от ручной™ установки плагинов. Это как раз одна из проблем, которую я решал написанием роли. Поделитесь, кто пользовался. UPD : переписал роль с использованием antigen.

В комментах хотелось бы найти новых вкусных плагинов, пожалуйста, напишите, какие плагины вызвали у вас чувство «как я жил без этого раньше™?»

UPD: добавилась поддержка CentOS™, спасибо, BeeVee™!

Блокировка и разблокировка учетной записи пользователя

Опция -L позволяет заблокировать учетную запись пользователя:

usermod -L USER

Команды вставят восклицательный знак (!) перед зашифрованным паролем. Если поле пароля в /etc/shadow файле содержит восклицательный знак, пользователь не сможет войти в систему, используя аутентификацию по паролю. Другие методы входа в систему, такие как аутентификация на основе ключей или переключение на пользователя, по-прежнему разрешены. Если вы хотите заблокировать учетную запись и отключить все методы входа в систему, вам также необходимо установить дату истечения срока действия равной 1.

В следующих примерах показано, как заблокировать пользователя linuxize:

sudo usermod -L linuxize sudo usermod -L -e 1 linuxize

Чтобы разблокировать пользователя, запустите usermodс -Uопцией:

usermod -U USER

Awesome

Awesome — это не совсем окружение рабочего стола, это тайловый оконный менеджер. По умолчанию он поставляется с панелью, на которой вы можете разместить апплеты своих приложений, переключения рабочих столов и виждеты. Также здесь есть несколько библиотек виджетов, которые можно добавить на рабочий стол.

Тайлинг позволяет автоматически переключать расположение окон без перекрытия так, чтобы они равномерно заполняли экран, но можно сделать окна плавающими, как это реализовано в обычных окружениях.

  • Не тратится впустую пространство экрана;
  • Не нужно выбирать расположение окон с помощью мышки или тачпада;
  • Настройка привязок для окон;
  • Есть поддержка мыши.
Awesome

Для установки достаточно выполнить:

sudo apt-get install awesome

Читайте также:  Как установить профиль разработчика для IOS?