Работа в системе

У меня в системе не работает автодополнение команд. Как исправить?

Необходимо установить пакет sqlite:

sudo dnf install sqlite

При определённых условиях он может не быть установлен и из-за этого система автоматического дополнения команд может перестать функционировать.

Не работает автодополнение имён пакетов. Как исправить?

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

В качестве временного решения можно прекратить их использование.

Можно ли делать резервную копию корневого раздела работающей системы?

Настоятельно не рекомендуется из-за множества работающих виртуальных файловых систем и псевдофайлов в /sys, /dev, /proc и т.д.

Как сделать копию домашнего каталога?

См. здесь.

Как лучше всего делать резервную копию корневого раздела?

Обязательно загрузимся с Fedora LiveUSB, откроем эмулятор терминала запустим создание посекторного образа:

sudo dd if=/dev/sda1 of=/path/to/image.raw bs=32M status=progress

Воспользуемся утилитой xz для эффективного сжатия полученного образа диска:

sudo xz -9 -T$(nproc) /path/to/image.raw

Здесь /dev/sda1 -- раздел диска, резервную копию которого требуется создать, а /path/to/image.raw -- полный путь к файлу образа (должен находиться на другом разделе диска).

Как мне пересобрать образ initrd?

Выполним пересборку образа initrd загруженного ядра:

sudo dracut -f

Выполним пересборку образов initrd всех установленных в системе ядер:

sudo dracut --regenerate-all --force

Как мне переустановить Grub 2?

См. здесь.

Как пересобрать конфиг Grub 2?

Начиная с Fedora 30, по умолчанию вместо устаревшего способа с добавлением ядер через grubby, применяется BLS, поэтому пересборка конфига больше не требуется.

Пересборка конфига Grub 2 для всех конфигураций Fedora:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Что такое BLS и почему он используется по умолчанию?

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

Все параметры генерируются на этапе компиляции ядра и сохраняются в специальном conf-файле, который устанавливается в каталог /boot/loader/entries.

Т.к. это статические файлы, нестандартные параметры ядра теперь устанавливаются при помощи grubenv.

Как перейти с классического Grub 2 на BLS?

Переход с классического Grub 2 на BLS полностью автоматизирован. Выполним специальный скрипт, входящий в поставку Fedora 30+:

sudo grub2-switch-to-blscfg

Как вернуться с BLS на классический Grub 2?

Установим пакет grubby, т.к. он используется при добавлении ядер:

sudo dnf install grubby

Откроем файл конфигурации Grub 2 в текстовом редакторе:

sudoedit /etc/default/grub

Внесём правки, запретив использование BLS:

GRUB_ENABLE_BLSCFG=false

Пересоберём конфиг Grub 2 и перезагрузим систему.

Система медленно завершает работу. Можно ли это ускорить?

См. здесь.

Как удалить любые файлы, старше 2 суток из указанного каталога?

Ресурсивно удаляем файлы старше 2 суток в указанном каталоге:

find ~/foo-bar -type f -mtime +2 -delete

Удаляем файлы старше 2 суток в указанном каталоге с ограничением рекурсии:

find ~/foo-bar -maxdepth 1 -type f -mtime +2 -delete

Здесь ~/foo-bar -- начальный каталог, в котором производится удаление.

Я использую KDE. Как мне настроить скорость двойного клика в GTK приложениях?

Для настройки GTK 2 приложений необходимо открыть файл ~/.gtkrc-2.0 в любом текстовом редакторе (если он отсутствует — создать), затем прописать в самом конце:

gtk-double-click-time=1000

Для GTK 3 нужно редактировать ~/.config/gtk-3.0/settings.ini. В нём следует прописать то же самое:

gtk-double-click-time=1000

Здесь 1000 — время в миллисекундах до активации двойного клика. Документация с подробным описанием всех переменных данных файлов конфигурации здесь.

Возможно ли заблокировать экран из командной строки?

Да:

loginctl lock-session

Можно ли изменить приветствие Bash по умолчанию?

Да, необходимо в пользовательский файл ~/.bashrc добавить строку вида:

export PS1="\[\e[33m\][\[\e[36m\]\u\[\e[0m\]@\[\e[31m\]\h\[\e[0m\] \[\e[32m\]\W\[\e[33m\]]\[\e[35m\]\$\[\e[0m\] "

Существует удобный онлайн генератор таких строк здесь.

Можно ли из shell скрипта менять название терминала?

Да, при помощи управляющих последовательностей. Ими же можно менять цвет текста вывода и многое другое.

Как настроить синхронизацию времени?

В Fedora для этой цели используется chronyd, который установлен и запущен по умолчанию.

Чтобы узнать включена ли синхронизация времени с NTP серверами, можно использовать утилиту timedatectl.

Если синхронизация отключена, нужно убедиться, что сервис chronyd активирован:

sudo systemctl enable chronyd.service

Получить список NTP серверов, с которыми осуществляется синхронизация, можно так:

chronyc sources

Как узнать какой сервис замедляет загрузку системы?

Вывод информации в виде текста:

systemd-analyze blame

Вывод информации в виде SVG изображения:

systemd-analyze plot > systemd-plot.svg
xdg-open systemd-plot.svg

У меня в Gnome не работает масштабирование окон Qt приложений. Что делать?

Для активации автоматического масштабирования достаточно прописать в файле ~/.bashrc следующие строки:

export QT_AUTO_SCREEN_SCALE_FACTOR=1
export QT_SCALE_FACTOR=2

Переменная QT_AUTO_SCREEN_SCALE_FACTOR имеет тип boolean (значения 1 (включено) или 0 (выключено)) и управляет автоматическим масштабированием в зависимости от разрешения экрана.

Переменная QT_SCALE_FACTOR задаёт коэффициент масштабирования:

  • 1.5 -- 150%;

  • 1.75 -- 175%;

  • 2 -- 200%;

  • 2.5 -- 250%;

  • 3 -- 300%.

Более подробную информацию можно найти в документации Qt.

Как отключить виртуальную клавиатуру в SDDM?

Чтобы отключить поддержку ввода с виртуальной экранной клавиатуры в менеджере входа в систему SDDM, откроем в текстовом редакторе файл /etc/sddm.conf, а затем найдём и удалим следующую строку:

InputMethod=qtvirtualkeyboard

Если она отсутствует, создадим в блоке [General]:

InputMethod=

Изменения вступят в силу при следующей загрузке системы.

При загрузке системы появляется ошибка Failed to start Load Kernel Modules. Как исправить?

Это известная проблема системы виртуализации VirtualBox, использующей out-of-tree модули ядра, но может также проявляться и у пользователей проприетарных драйверов Broadcom.

Для исправления необходимо после каждого обновления ядра выполнять пересборку initrd:

sudo dracut -f

Для вступления изменений в силу требуется перезагрузка:

sudo systemctl reboot

Как настроить автоматическую разблокировку связки ключей KWallet при входе в систему?

KDE предоставляет особый PAM модуль для автоматической разблокировки связки паролей KDE Wallet при входе в систему. Установим его:

sudo dnf install pam-kwallet

Запустим менеджер KWallet (Параметры системы -- группа Предпочтения пользователя -- Учётная запись -- страница Бумажник -- кнопка Запустить управление бумажниками), нажмём кнопку Сменить пароль и укажем тот же самый пароль, который используется для текущей учётной записи.

Сохраняем изменения и повторно входим в систему.

Как переместить стандартные каталоги для документов, загрузок и т.д.?

Откроем файл ~/.config/user-dirs.dirs в любом текстовом редакторе и внесём свои правки.

Стандартные настройки:

XDG_DESKTOP_DIR="$HOME/Рабочий стол"
XDG_DOCUMENTS_DIR="$HOME/Документы"
XDG_DOWNLOAD_DIR="$HOME/Загрузки"
XDG_MUSIC_DIR="$HOME/Музыка"
XDG_PICTURES_DIR="$HOME/Изображения"
XDG_PUBLICSHARE_DIR="$HOME/Общедоступные"
XDG_TEMPLATES_DIR="$HOME/Шаблоны"
XDG_VIDEOS_DIR="$HOME/Видео"

Применим изменения:

xdg-user-dirs-update

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

У меня HiDPI дисплей и в SDDM всё отображается очень мелко. Как настроить?

Откроем файл /etc/sddm.conf:

sudoedit /etc/sddm.conf

Добавим в самый конец следующие строки:

[Wayland]
EnableHiDPI=true

[X11]
EnableHiDPI=true

Сохраним изменения и перезапустим систему.

Как отключить отображение пользовательских аватаров в SDDM?

Пользовательские аватары представляют собой файл ~/.face.icon. При запуске SDDM пытается прочитать его для каждого существующего пользователя.

Для отключения данной функции откроем файл /etc/sddm.conf:

sudoedit /etc/sddm.conf

Добавим в самый конец следующие строки:

[Theme]
EnableAvatars=false

Сохраним изменения и перезапустим систему.

Как узнать какие процессы больше всего разряжают аккумулятор ноутбука?

Установим утилиту powertop:

sudo dnf install powertop

Запустим её с правами суперпользователя:

sudo powertop

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

Как собрать информацию о системе?

Установим утилиту inxi:

sudo dnf install inxi

Соберём информацию о системе и выгрузим на fpaste:

inxi -F | fpaste

На выходе будет сгенерирована уникальная ссылка, которую можно передать на форум, в чат и т.д.

Мой провайдер использует L2TP. Как мне добавить его поддержку?

Плагин L2TP для Network Manager должен присутствовать в Workstation и всех spin live образах по умолчанию, но если его по какой-то причине нет (например, была выборана минимальная установка netinstall), то добавить его можно самостоятельно.

Для Gnome/XFCE и других, основанных на GTK:

sudo dnf install NetworkManager-l2tp-gnome

Для KDE:

sudo dnf install plasma-nm-l2tp

После установки необходимо запустить модуль настройки Network Manager (графический или консольный), добавить новое VPN подключение с типом L2TP и указать настройки, выданные провайдером.

Однако следует помнить, что у некоторых провайдеров используется L2TP со специальными патчами Microsoft (т.н. win реализация), что может вызывать нестабильность и сбои при подключении. В таком случае рекомендуется приобрести любой недорогой роутер с поддержкой L2TP (можно б/у) и использовать его в качестве клиента для подключения к сети провайдера.

Как подключиться к Wi-Fi из консоли?

Если ранее уже были созданы Wi-Fi подключения, то выведем их список:

nmcli connection | grep wifi

Теперь запустим выбранное соединение:

nmcli connection up Connection_Name

Как подключиться к Wi-Fi из консоли при отсутствии соединений?

Если готовых соединений для Wi-Fi нет, но известны SSID и пароль, то можно осуществить подключение напрямую:

nmcli device wifi connect MY_NETWORK password XXXXXXXXXX

Здесь MY_NETWORK -- название SSID точки доступа, к которой мы планируем подключиться, а XXXXXXXXXX -- её пароль.

Как выбрать предпочитаемый текстовый редактор в консольном режиме?

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

export VISUAL=vim
export EDITOR=vim
export SUDO_EDITOR=vim

VISUAL -- предпочитаемый текстовый редактор с графическим интерфейсом пользователя, EDITOR -- текстовый, а SUDO_EDITOR используется в sudoedit.

Как выбрать предпочитаемый текстовый редактор для Git?

Хотя Git подчиняется настройкам редактора по умолчанию, допустимо его указать явно в файле конфигурации:

git config --global core.editor vim

Как смонтировать ISO образ в Fedora?

Создадим точку монтирования:

sudo mkdir /mnt/iso

Смонтируем файл образа:

sudo mount -o loop /path/to/image.iso /mnt/iso

По окончании произведём размонтирование:

sudo umount /mnt/iso

Как считать содержимое CD/DVD диска в файл ISO образа?

Для этого можно воспользоваться утилитой dd:

sudo dd if=/dev/sr0 of=/path/to/image.iso bs=4M status=progress

Здесь /dev/sr0 имя устройства привода для чтения оптических дисков, а /path/to/image.iso -- файл образа, в котором будет сохранён результат.

Как смонтировать посекторный образ раздела?

Монтирование raw образа раздела, созданного посредством утилиты dd:

sudo mount -o ro,loop /path/to/image.raw /mnt/dd-image

Размонтирование:

sudo umount /mnt/dd-image

Здесь /path/to/image.iso -- файл образа на диске.

Как смонтировать посекторный образ диска целиком?

Смонтировать образ диска целиком напрямую не получится, поэтому сначала придётся определить смещения разделов относительно его начала.

Запустим утилиту fdisk и попытаемся найти внутри образа разделы:

sudo fdisk -l /path/to/image.raw

Из вывода нам необходимо узнать значение Sector size, а также Start всех необходимых разделов.

Вычислим смещение относительно начала образа для каждого раздела по формуле Start * Sector size. К примеру если у первого Start равно 2048, а Sector size диска 512, то получим 2048 * 512 == 1048576.

Произведём монтирование раздела по смещению 1048576:

sudo mount -o ro,loop,offset=1048576 /path/to/image.raw /mnt/dd-image

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

sudo umount /mnt/dd-image

Здесь /path/to/image.iso -- файл образа на диске.

Как изменить часовой пояс?

Изменить часовой пояс можно посредством утилиты timedatectl:

sudo timedatectl set-timezone Europe/Moscow

Как изменить список доступных раскладок клавиатуры и настроить их переключение в графическом режиме?

Настройка переключения по Alt + Shift, раскладки EN и RU:

sudo localectl set-x11-keymap us,ru pc105 "" grp:alt_shift_toggle

Настройка переключения по Ctrl + Shift, раскладки EN и RU:

sudo localectl set-x11-keymap us,ru pc105 "" grp:ctrl_shift_toggle

Как изменить список доступных раскладок клавиатуры и настроить их переключение в текстовом режиме?

Установка русской раскладки и режимов переключения по умолчанию (Alt + Shift):

sudo localectl set-keymap ru

Установка русской раскладки и режима переключения Alt + Shift:

sudo localectl set-keymap ruwin_alt_sh-UTF-8

Установка русской раскладки и режима переключения Ctrl + Shift:

sudo localectl set-keymap ruwin_ct_sh-UTF-8

Можно ли заставить GTK приложения выглядеть нативно в KDE?

Установим пакет с темой Breeze для GTK2 и GTK3:

sudo dnf install breeze-gtk

Зайдём в Параметры системы -- Внешний вид -- Оформление приложений -- Стиль программ GNOME (GTK+).

Выберем Breeze (при использовании тёмной темы в KDE -- Breeze Dark) в качестве темы GTK2 и GTK3, а также укажем шрифт, который будет использовать при отображении диалоговых окон.

Также установим Breeze для курсоров мыши и темы значков. Применим изменения и перезапустим все GTK приложения.

Какие полезные комбинации клавиш существуют при наборе команд в терминале?

Существуют следующие комбинации:

  • Ctrl + A -- перемещает текстовый курсор на начало строки (аналогична Home);

  • Ctrl + E -- перемещает текстовый курсор в конец строки (аналогична End);

  • Ctrl + B -- перемещает текстовый курсор на один символ влево (аналогична стрелке влево);

  • Ctrl + F -- перемещает текстовый курсор на один символ вправо (аналогична стрелке вправо);

  • Alt + B -- перемещает текстовый курсор на одно слово влево;

  • Alt + F -- перемещает текстовый курсор на одно слово вправо;

  • Ctrl + W -- удаляет последнее слово в строке;

  • Ctrl + U -- удаляет всё из строки ввода;

  • Ctrl + K -- удаляет всё, что находится правее текущей позиции текстового курсора;

  • Ctrl + Y -- отменяет последнюю операцию удаления;

  • Ctrl + _ -- отменяет любую последнюю операцию.

Как файловые менеджеры определяют типы файлов?

Если в ОС Microsoft Windows тип файлов определяется исключительно по их расширению, то в GNU/Linux для этого используется mime-типы.

В системе ведётся база соответствия mime-типов установленным приложениям, соответствующая стандарту XDG Free Desktop.

Для получения mime-типа конкретного файла можно использовать утилиту file:

file foo-bar.txt

Для открытия файла в ассоциированном с его mime-типом приложении применяется утилита xdg-open:

xdg-open foo-bar.txt

Как изменить язык (локализацию) системы?

Получим список доступных локалей:

localectl list-locales

Установим английскую локаль для системы:

sudo localectl set-locale LANG=en_US.UTF-8

Установим русскую локаль для системы:

sudo localectl set-locale LANG=ru_RU.UTF-8

Как запустить приложение с другой локалью?

Для запуска приложения с другой локалью необходимо передать ему новое значение в переменной окружения LANG:

LANG=en_US.UTF-8 foo-bar

Как запустить приложение с другим часовым поясом?

Для запуска приложения с другим часовым поясом необходимо передать ему новое значение в переменной окружения TZ:

TZ=CET foo-bar

Здесь вместо CET следует указать название часового пояса.

Как определить какой тип сессии используется: X11 или Wayland?

Для определения типа текущей сессии, необходимо получить значение глобальной переменной окружения XDG_SESSION_TYPE:

echo $XDG_SESSION_TYPE

Как вывести в консоль краткую информацию об установленной системе?

Установим neofetch:

sudo dnf install neofetch

Запустим и выведем информацию о системе в консоль:

neofetch

Как отключить анимированную каплю при загрузке системы?

Для отключения анимации загрузки (plymouth boot screen) необходимо и достаточно добавить параметры ядра rd.plymouth=0 plymouth.enable=0, после чего пересобрать конфиг Grub 2.

Как изменить тему экрана, отображающегося при загрузке системы?

Выведем список установленных тем Plymouth boot screen:

plymouth-set-default-theme --list

Определим текущую:

plymouth-set-default-theme

Установим, например, charge:

sudo plymouth-set-default-theme charge -R

Параметр -R включает автоматическую пересборку initrd ядра.

Все NTFS тома монтируются в режиме только для чтения. Как исправить?

Некорректное размонтирование разделов -- это особенность работы режима гибридного завершения работы (hybrid shutdown) в ОС Microsoft Windows, при котором система не завершает свою работу, а вместо этого всегда переходит в режим глубокого сна.

Данный режим несовместим с другими операционными системами, в т.ч. GNU/Linux, поэтому должен быть отключён в обязательном порядке при использовании dual-boot.

  1. запустим командную строку с правами администратора, затем выполним powercfg -h off;

  2. запретим использование режима быстрой загрузки (fast boot) в настройках UEFI BIOS.

Как изменить ярлык приложения из главного меню?

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

Вместо этого создадим локальное переопределение -- скопируем desktop-файл в ~/.local/share/applications и внесём необходимые правки.

Создадим каталог назначения если он отсутствует:

mkdir -p ~/.local/share/applications

Скопируем ярлык foo-bar.desktop:

cp /usr/share/applications/foo-bar.desktop ~/.local/share/applications/

Внесём свои правки.

Кэш значков главного меню обновится автоматически, т.к. все популярные среды рабочего стола отслеживают изменения в данном каталоге.

Как изменить сочетание клавиш для переключения языка ввода в Gnome?

Рассмотрим два способа изменения сочетания клавиш для переключения между языками: консоль и GUI.

Консоль:

Определим, какой вариант установлен:

gsettings get org.gnome.desktop.wm.keybindings switch-input-source

Установим новое сочетание для переключения раскладок:

gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Shift>Alt_L']"

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

'<Alt>Shift_L', '<Shift>Alt_L', '<Shift>Alt_R', '<Alt>Shift_R'
'<Ctrl>Shift_L', '<Shift>Control_L', '<Shift>Control_R', '<Ctrl>Shift_R'
'Caps_Lock'

GUI:

Установим пакет dconf-editor, если он не установлен:

sudo dnf install dconf-editor

Запустим данное приложение:

dconf-editor

В ветке org.gnome.desktop.wm.keybindings установим параметру switch-input-source желаемое значение.

Обязательно убедимся в наличии квадратных скобок. Конфигурация по-умолчанию -- ['<Super>space', 'XF86Keyboard'].

Как переключить рабочую среду на использование X11?

Настройки для различных рабочих сред:

Как переключить GNOME на использование X11?

Откроем файл конфигурации /etc/gdm/custom.conf в текстовом редакторе:

sudoedit /etc/gdm/custom.conf

Внесём изменения в секцию daemon:

[daemon]
WaylandEnable=false
DefaultSession=gnome-xorg.desktop

Сохраним изменения и перезагрузим устройство:

systemctl reboot

Как переключить KDE на использование X11?

Произведём замену пакета sddm-wayland-plasma на sddm-x11:

sudo dnf swap sddm-wayland-plasma sddm-x11 --allowerasing

Перезагрузим устройство для вступления изменений в силу:

systemctl reboot

При следующем входе в меню выбора доступных сеансов выберем Plasma (X11).

Как определить, какой шрифт будет использован для указанной гарнитуры?

Воспользуемся утилитой fc-match из комплекта поставки FreeType для определения используемого шрифта и соответствующего ему файла на диске для запрошенной гарнитуры:

fc-match 'sans-serif'

Как заменить один шрифт другим на системном уровне?

Заменим шрифты Foo Bar и Foo Bar Emoji на Noto.

Создадим каталог для пользовательских настроек fontconfig:

mkdir -p ~/.config/fontconfig/fonts.d

Добавим новый файл конфигурации и сразу же установим правильный контекст безопасности SELinux:

touch ~/.config/fontconfig/fonts.d/30-replace-foo.conf
restorecon -Rv ~/.config/fontconfig

Вставим в ~/.config/fontconfig/fonts.d/30-replace-foo.conf следующий код:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<alias>
    <family>Foo Bar</family>
    <prefer>
        <family>Noto Sans</family>
    </prefer>
</alias>
<alias>
    <family>Foo Bar Emoji</family>
    <prefer>
        <family>Noto Color Emoji</family>
    </prefer>
</alias>
</fontconfig>

Очистим кэши fontconfig:

fc-cache -fr

Убедимся, что для шрифта Foo Bar теперь используется Noto Sans Regular.

Если всё сделано верно, перезапустим все приложения, либо выполним новый вход в систему для вступления изменений в силу.

Как исправить права доступа для объектов в домашнем каталоге?

При запуске приложений с правами суперпользователя в домашнем каталоге могут появляться объекты, созданные root. Они способны вызывать проблемы при работе приложений в стандартном режиме из-за отсутствия к ним прав доступа на запись.

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

find ~ ! -user $(whoami) -print

Если таковые были найдены, автоматически исправим владельца и группу для них:

sudo find ~ ! -user $(whoami) -exec chown $(whoami):$(whoami) "{}" \;

Как добавить модуль в initrd?

Создадим новый файл конфигурации foo-bar.conf в каталоге /etc/dracut.conf.d/:

echo 'add_dracutmodules+=" foo-bar "' | sudo tee /etc/dracut.conf.d/foo-bar.conf

Здесь foo-bar -- название модуля ядра, который требуется включить. Пробелы до и после его имени в add_dracutmodules обязательны.

Осуществим пересборку initrd:

sudo dracut -f

Изменения вступят в силу при следующей загрузке системы.

Как изменить системную дату и время?

Установим новую дату и время, записанное в формате Universal Coordinated Time:

sudo date --utc --set="ГГГГ-ММ-ДД ЧЧ:ММ:СС"

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