Заметки Debian / Ubuntu


30.05.2020

Заметки Debian/Ubuntu  v0.30

Основополагающие вещи в терминале:

Касаемо систем с графической оболочкой:

Если зависла оболочка перезагрузить X сервер - Ctrl+Alt+Backspace.

Если не помогло, переключаемся в один из терминалов. Всего в Linux по умолчанию создается 12 терминалов входа. И доступны они по сочетанию клавиш Ctrl+Alt+Fцифра.

Графический сервер, как правило размещается по Ctrl+Alt+F7. Переключаемся в первый терминал Ctrl+Alt+F1, вводим там логин и пароль, затем перезагружаем графический сервер командой:

$ sudo service lightdm restart

Если зависло полностью:

Нажмите и удерживайте клавиши Alt+PrintScreen, и последовательно с интервалом 2-3 секунды нажимайте:

R E I S U B

R - вернуть ядру управление над клавиатурой

E - отправить сигнал SigTerm всем процессам

I - отправить сигнал SigKill всем процессам

U - Перемонтировать все файловые системы в режим только для чтения

S - Сохранить все буфера файловых систем на жесткий диск

B - Перезагрузить.

***************************************************************

Важные команды, требующие права суперпользователя, выполняются через “sudo”, если конечно ваш пользователь принадлежит группе sudo (/etc/sudousers). Например команда на перезагрузку: 

sudo reboot

***************************************************************

Эта команда позволяет переключится на пользователя root. Так можно просто писать команды без «sudo».

sudo -s

или

sudo -i

Обратно переключиться:  Ctrl+D  или команда logout.

***************************************************************

# Выключение / перезагрузка:

грамотное выключение: 

sudo shutdown -P now

 

грамотный reboot: 

sudo shutdown -r now

 

Компьютер будет выключен через 5 минут:

sudo shutdown -h +5 

 

Точное время выключения, например в девять вечера:

sudo shutdown -h 21:00

 

shutdown [опции][время] [сообщение]

Опции:

--help - вывести справку по программе-H,

--halt - отключить питание, не завершая процессы и не перемонтируя файловые системы

-P, --poweroff - нормальное выключение

-r, --reboot - перезагрузка

-k - не выполнять реальных действий, а только вывести сообщение

--no-wall - выключить компьютер, но не выводить сообщение

-c - отменить запланированное выключение linux

***************************************************************

Если вы написали команду которая требует sudo но забыли написать sudo - следом можно дать команду:

sudo !!

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

***************************************************************

Ctrl+C  - Прервать выполнение команды;

***************************************************************

exit - выходит из текущей программы, прекращает работу текущего терминала командной строки или отсоединяет вас от Unix-сети в зависимости от обстоятельств использования.

или

Ctrl+D  - Выход из SSH сессии.

***************************************************************

Нажатие клавиш вверх или вниз выведет предыдущие команды. 

***************************************************************

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

***************************************************************

man - от слова manual и предоставляет вам детализированную информацию о командах и различных аспектах Linux.

примеры:

man -k ФРАГМЕНТ - если знаете только фрагмент команды.

man НАЗВАНИЕКОМАНДЫ

или

whatis НАЗВАНИЕКОМАНДЫ

***

web страница с поиском пакетов ubuntu:

https://packages.ubuntu.com/

***

где находится сам пакет и где его документация:

whereis НАЗВАНИЕ КОМАНДЫ

***

например вывод длиннющего мануала команды “grep” с построчным выводом:

man grep less

***************************************************************

cd

быстро вернуться в домашний каталог.

***************************************************************

если файл запуска приложения лежит в этом каталоге:

/usr/bin/

то можно просто написать имя пакета для запуска.

Если же приложение развернулось в другой каталог - можно создать символьную ссылку (на примере пакета “cowsay”):

ln -s /usr/games/cowsay /usr/bin/cowsay

теперь для запуска говорящей коровы можно просто писать “cowsay” вместо “/usr/games/cowsay”

***************************************************************

Обновить систему: 

sudo apt update && sudo apt upgrade -y

и затем следом можно сделать чистку:

sudo apt autoremove && sudo apt autoclean

***************************************************************

Обновить релиз:

sudo do-release-upgrade -d

***************************************************************

chown - установка владельца на файле или каталоге

chgrp - смена группы на файле или каталоге

chmod - установка прав доступа на файле или каталоге

***

сделать скрытым файл или каталог:

mv filename .filename

***

или скрыть от других юзеров можно так:

chmod 700 filename

или

chmod go-rwx filename

***************************************************************

screenfetch - утилита показывает основною информацию в терминале:

sudo apt install screenfetch

screenfetch

***************************************************************

кто сейчас в системе:

who

или

w

***************************************************************

очистит терминал:

clear

или

Ctrl+L

***************************************************************

# Структура файловой системы:

/ -корневая файловая система, самый большой раздел;

/bin - базовые бинарники команд;

/sbin - основные программы настройки системы;

/boot -загрузочный раздел;

/dev - устройства

/home -домашние папки пользователей;

/root - домашняя папка суперпользователя;

/etc - конфигурация нашей системы и её компонентов;

/lib - библиотеки и модули ядра;

/opt - папка для ПО от третьих поставщиков;

/var - часто меняющиеся данные;

/usr - все установленные пакеты программ, документация, исходный код ядра;

/srv - данные для системных служб;

/proc - информация о работающей системе;

/media - по правилам хорошего тона туда монтируем съёмные носители (flash, cdrom)

/mnt -по правилам хорошего тона туда монтируем жёсткие диски или сетевые диски.

/tmp - временные файлы.

***************************************************************

 

NANO:

сохранить: Ctrl+O   или F3

выйти из редактора: Ctrl+X  или F2

отменить последние внесенные изменения: Alt+U

поиск: Ctrl+W  или F6

для перемещения вниз:  Ctrl+N

для перемещения вверх: Ctrl+P

быстро переместится в конец строки:  Ctrl+E

к началу строки:  Ctrl+A

начать выделение: Alt+A  затем стрелками делаем выделение

вырезать выделенный текст:  Ctrl+K

***

опции запуска:

-B Создать резервную копию файла

-v Открыть файл только для чтения

-m Включить поддержку мыши

-С Папка для резервной копии

 

пример: при редактировании файла “sometext” создается резервная копия:

nano -B sometext

***************************************************************

***************************************************************

***************************************************************

Основные команды системы:

***************************************************************

Если вы на сервере и у вас только сеанс терминала, вы можете посмотреть все эти заметки вот так:

wget http://mrstudio22.ru/unix.txt

less unix.txt

например вот так можно вывести всю информацию о строках со словом “docker”:

less unix.txt | grep "docker"

 

q - выход

***************

Диспетчер задач:

top

где: Shift+P выведет вверх процессы занимающие большее процессорное время.

Shift+M выведет вверх процессы занимающие большее к-во оперативной памяти.

q -выход

или

apt install htop

затем запускаем его

htop

где:

PID - идентификатор процесса

USER - пользователь, от которого был запущен процесс

PRI - приоритет процесса linux на уровне ядра (обычно NI+20)

NI - приоритет выполнения процесса от -20 до 19

S - состояние процесса

CPU - используемые ресурсы процессора

MEM - использованная память

TIME - время работы процесса

///////////

Для поиска процессов в htop можно использовать также фильтр htop. Нажмите F4, введите слово и будут выведены только процессы linux, имя которых включает это слово.

///////////////

Если процесс завис и не отвечает, его необходимо завершить. В htop, чтобы убить процесс Linux, просто установите курсор на процесс и нажмите F9

 

***************************************************************

статус оперативной памяти и swap:

free -h

***************************************************************

Смотрим список дисков/разделов:

lsblk

или

sudo fdisk -l | grep sd

***************************************************************

Эта команда позволяет выяснить «UUID» смонтированных устройств:

blkid

***************************************************************

Показывает информацию о разделах диска – конкретно в строчке с корневым «/» можно узнать сколько всего занято и свободно дискового пространства.:

sudo df -h

***************************************************************

Создание разделов на sda:

sudo cfdisk /dev/sda

***************************************************************

Создать файловую систему NTFS и отформатировать на разделе sda1

sudo mkfs.ntfs -f /dev/sda1

***************************************************************

Примонтировать диск:

Сначала создадим каталог в который будет монтироваться диск:

sudo mkdir /media/hdd3

а теперь монтируем в этот каталог:

sudo mount /dev/sda /media/hdd3

 

Монтирование образа «file.iso» в каталог «/mnt»:

sudo mount /home/user/file.iso /mnt

 

принудительное размонтирование:

sudo umount -l /mnt

 

Монтирование ISO

Сначала создадим каталог:

sudo mkdir /media/isoimg

Далее монтируем образ ubuntu.iso

sudo mount -o loop /home/user/Загрузки/ubuntu.iso /media/isoimg

***************************************************************

fsck - проверка файловой системы

пример проверки устройства sdb1, при этом это устройство не должно быть смонтировано:

sudo fsck /dev/sdb1

***************************************************************

swapon -s

информация о «swap» файле, да теперь о файле «/swap.img» а не о разделе, это нововведение в новой Ubuntu.

********************************************************

Запущенные процессы в системе:

ps 

или

ps ax | grep p

***

kill - завершает выбранный выполняющийся процесс. Аналог соответствующей опции в Диспетчере задач Windows.

***

Glances:

sudo apt install glances

или

sudo curl -L https://bit.ly/glances | /bin/bash

или

wget -O- https://bit.ly/glances | /bin/bash

После установки - запустите и нажмите клавишу “f”:

glances

***************************************************************

Если нужно убить процесс:

killall -9 ПРОЦЕСС

Например:

killall -9 screenkey

***

ещё способ:

смотрим ID процесса на примере vlc:

pidof vlc

и делаем kill через pid:

sudo kill -KILL 10279

***************************************************************

Информация о процессоре: 

lscpu

или так:

cat /proc/cpuinfo | grep "model name" -m1 | cut -c14-

*****

Информация о материнской плате:

cat /sys/devices/virtual/dmi/id/board_{vendor,name,version}

или

sudo lshw | less

*****

информация об оборудовании 

sudo dmidecode -t 2

*****

Сколько ядер в системе:

cat /proc/cpuinfo | grep processor | wc -l

 

А так можно эту информацию записать в в файл:

cat /proc/cpuinfo | grep processor | wc -l > procinfo.txt

 

И следом добавим в файл procinfo.txt остальную инфу о процессоре:

lscpu >> procinfo.txt

 

> Внести данные - при этом всё что было стирается.

>> Внести данные - при этом данные добавляются к существующим.

***************************************************************

Узнать температуру процессора:

INXI

sudo apt install inxi -y

сведения о памяти:

inxi -m 

температура CPU:

inxi -s

жесткие диски:

inxi -d

***********

Sensors:

sudo apt-get install lm-sensors

sudo sensors-detect

sensors

***************************************************************

Последние события системного лога в реальном времени: / логи:

Показывает историю всех команд:

history

***************************************************************

Последние события системного лога в реальном времени:

sudo tail -f /var/log/syslog

или

sudo watch tail /var/log/auth.log

***************************************************************

ls 

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

или

ls -la

выдаёт размер всех файлов в текущей (.) директории

или

ls -li

выдаёт размер всех файлов в текущей (.) директории вместе с айнодами

ls -al /etc/ | less

Выводит содержимое каталога /etc/ постранично. Чтобы перейти к следующей странице, нажмите клавишу «Пробел»; чтобы вернуться к предыдущему экрану, нажмите «B»; чтобы выйти из режима просмотра, нажмите «Q». Можно воспользоваться клавишами со стрелками.

Чтобы осуществить поиск по выводимому командой less текстовому файлу, нажмите [/] и введите слово, которое хотите найти в тексте. Например: /udev

***

sudo ls -la -R /

вывести всю структуру каталогов от самого корня.

 

ls -Rla КАТАЛОГ

подробный вывод содержимого каталога вместе с подкаталогами

 

Посмотреть все ядра:

ls /boot/

***************************************************************

sudo - выполняет команду как root, что означает отсутствие ограничений прав доступа.

Например:

sudo reboot - Перезагрузить машину

sudo poweroff - Выключить машину

***************************************************************

о системе (ядро, ос):

uname -a && cat /etc/lsb-release

или

uname -sr && cat /etc/lsb-release

///

Узнать название ядра:

uname -r

***************************************************************

версия дистрибутива

cat /etc/lsb-release

***************************************************************

uptime -p

время работы системы:

***************************************************************

who -b

в какое время загрузилась система

***************************************************************

whoami

информация о текущем пользователе

***************************************************************

pwd

показывает текущее местонахождение (print working directory)

***************************************************************

cd /новый путь

смена текущего каталога например уходим в пользовательский каталог с текущего места: cd /home/user

***************************************************************

Основные команды пакета apt (Advanced Package Tool):

 

Посмотреть доступные версии пакета (на примере ядра):

sudo apt policy linux-headers-generic

 

команды:

install - установить пакет;

remove - удалить пакет, конфигурационные файлы удалены не будут;

purge - полностью удалить пакет, вместе со всеми его конфигурационными файлами;

autoremove - очистить ненужные пакеты;

autoclean - очистить кэш пакетов;

update - обновить списки пакетов из репозиториев;

upgrade - обновить версию пакета до последней, если пакет не указан будут обновлены все пакеты;

full-upgrade - полное обновление системы, включая удаление несовместимых или больше ненужных пакетов;

list - список установленных пакетов;

search - поиск пакетов по имени;

show - посмотреть информацию о пакете;

download - скачать пакет в текущую папку;

edit-sources - открыть с настройками репозиториев в текстовом редакторе.

source - скачать исходный код пакета в текущую папку;

build-dep - установить зависимости необходимые для сборки выбранного пакета;

 

ключи:

-v, --version - выводит версию утилиты;

-h, --help - выводит справку по использованию утилиты;

-y, --yes - автоматически отвечать "да" на все возникающие вопросы;

--assume-no - автоматически отвечать "нет" на все возникающие вопросы;

-d, --download-only - только скачать пакеты и больше ничего не делать;

-f, --fix-broken - исправить недостающие зависимости;

--no-download - ничего не загружать, использовать только пакеты из кэша;

-s, --simulate - режим симуляции, никакие операции не выполняются, только выводится информация на экран;

--allow-unauthenticated - позволяет установить пакеты, из репозиториев, для которых нет GPG подписи;

--no-install-recommends - не устанавливать рекомендованные пакеты, по умолчанию будут установлены;

-m, --ignore-missing - игнорировать пакеты, которые существует;

-q, --quiet - выводить минимум информации, не показывать прогресс бар;

-V, --verbose-versions - показывать полные версии обновленных пакетов;

--only-upgrade - не устанавливать новые пакеты, только обновлять;

--allow-downgrades - разрешить откатывать версию пакетов;

--reinstall - переустановить пакет если он уже установлен;

 

посмотреть установленные пакеты:

sudo apt list --installed

посмотреть установленные пакеты с построчным выводом:

sudo apt list --installed | less

 

вывести список всех установленных пакетов в текстовый файл:

sudo apt list --installed > result.txt

 

Переустановить пакет:

sudo apt install ПАКЕТ --reinstall

 

Чтобы скачать deb дистрибутив:

apt download ПАКЕТ

 

DEB пакет можно также установить с помощью apt

sudo apt install *.deb

 

Установка из исходников:

./configure

make

make install

 

dpkg -i pkg.deb – установить пакет (Debian)

rpm -Uvh pkg.rpm – установить пакет (RPM)


 

Обновление системы:

sudo apt update && sudo apt upgrade -y

 

Обновление абсолютно всех пакетов, включая удаление несовместимых или больше ненужных пакетов:

sudo apt update && sudo apt full-upgrade -y

 

Обновление релиза системы с последующим удалением оставшихся ненужных пакетов и чисткой кэша:

sudo apt update && sudo apt dist-upgrade -y && sudo apt-get autoremove -y && sudo apt-get autoclean

 

до следующего релиза:

$ sudo update-manager -d


 

Для удаления пакета вместе с его конфигурационными файлами, выполните:

$ sudo apt-get remove имя_пакета

 

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

$ sudo apt-get purge имя_пакета

 

Так будут удаленны не только явно указанные зависимости, но и программы, установленные как рекомендованные:

$ sudo apt-get autoremove

 

Удалить неиспользуемые пакеты из кэша:

$ sudo apt-get autoclean

 

Очистка кэша Ubuntu, утилиты apt:

$ sudo apt clean

 

Если пакеты имеют неудовлетворённые зависимости или сломанные пакеты:

sudo apt --fix-broken install

sudo apt-get update --fix-missing

sudo apt-get install -f

 

***

dpkg

установить программу файла .deb:

сначала качаем с помощью wget:

wget URLПУТЬДОDEBПАКЕТА

и затем установка:

dpkg –i ПАКЕТ.deb

далее мы можем посмотреть куда развернулся этот пакет:

whereis ПАКЕТ

 

удалить программу:

dpkg –r ПАКЕТ

 

принудительно удалить пакет:

sudo dpkg --remove --force-remove-reinstreq ПАКЕТ

 

Подчистить пакеты:

sudo dpkg-reconfigure -a

 

***************************************************************

Работа с процессами в фоне:

Выполнение консольных команд в фоне:

 

Ctrl-z = увести программу в фон

bg = продолжить её выполнение в фоне

fg = достать программу из фона

jobs = посмотреть список фоновых задач

fg № = достать задачу №


 

Важный момент: если в SSH сеансе запустить задачу в фоне и затем выйти из SSH сеанса, то задача остановится, чтобы не останавливалась нужна команда nohup, пример:

 

nohup apt-get upgrade &

 

Амперсанд (&) в конце отправит выполнение команды сразу в фон (либо нажмем Ctrl+Z и затем bg)

 

jobs = посмотреть список фоновых задач (только в текущем сеансе консоли, те после exit он забудет все задачи)

 

fg = достать программу из фона (в jobs узнаём номер) (вернуть задачу из фонового режима)

fg № = достать задачу №

 

bg = продолжить выполнение в фоне (в jobs узнаём номер) (вернуть задачу в фоновый режим)

 

Ctrl-z = увести программу в бэкграунд

также можно просто дописать в конце амперсанд &

 

bg = продолжить её выполнение в фоне

 

********************************

 

screen - оконный менеджер терминала, несколько окон в пределах одного терминала. (Но как вариант можно просто запустить несколько окон PUTTY)

 

Пишем screen - команда открывает новый отдельный экран, запускаем какой-либо процесс или команду затем жмём CTRL+A и D, что вернёт нас в предыдущий активный терминал.

screen -r - вернёт нас в скриновый сеанс терминала

exit - завершает скриновое окошко терминала.

 

Чтобы запустить несколько скринов:

screen -S ПСЕВДОНИМ команда.

CTRL+A затем D

screen -S НОВЫЙПСЕВДОНИМ команда.

CTRL+A затем D

 

screen -ls - список запущенных скринов.

 

screen -r ПСЕВДОНИМ - вернуться к какому-либо скрину

 

***************************************************************

Просмотр файла:  (cat / more / less)

 

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

КОМАНДА --help | more

 

cat

вывод содержимого файла на экран

 

cat /etc/passwd

вывод информации о всех учетных записях в системе

 

cat /etc/group

информация о всех группах пользователей в системе

 

less или more - вывод файла постранично, например: 

 

less /var/log/syslog 

или 

more /var/log/syslog. 

Для выхода жмём «Q»

***

Пример: вывести содержимое файла smb.conf и следом посчитать сколько строк/слов/символов:

cat smb.conf && wc smb.conf 

***************************************************************

Файлы и каталоги:

Немного основ:

Важно: чтобы попасть внутрь папки на ней должны стоять права x (на исполнение)!

Когда мы в каталоге вводим команду “ls -l” - мы видим строки подобного содержания:

drwxr-xr-x  4 mradmin mradmin 4096 мая 30 10:34  Документы

drwxr-xr-x  2 mradmin mradmin 4096 мая 30 10:34  Загрузки

-rw-rw-r-- 1 mradmin mradmin  178613 мая 30 10:34 'Заметки Ubuntu v_0_08.pdf'

Что это значит:

для начала:   drwxr-xr-x     или   d /  rwx  / r-x /  r-x 

это права: они разделены на 4 сегмента - первый - буква “d” означает что это директория а не файл.

***

вообще вот подробно о первой букве:

f или -   - стандартный файл

l - символьная ссылка

d - директория

c - символьное устройство

b - блочное устройство

p - pipe (FIFO) файл

s - файл типа socket

***

Далее “rwx” - это права владельца файла - в этом случае владелец может читать/изменять/выполнять вход в этот каталог.

Далее “r-x” - это права группы владельца файла, в этом случае пользователи, которые состоят в той же группе что и владелец, могут заходить/видеть содержимое каталога, могут открывать файлы - но наличие прочерка между r и x говорит о том что они не могут вносить изменения.

Далее “r-x” означает что точно такие права и свободы  как у группы владельца имеют все остальные группы и пользователи.

 

-rw-rw-r--      это говорит о том что это файл, так как первым стоит тире - ну а далее всё как у каталога.

***

при замене прав можно использовать цифры:

например:   sudo chmod -R 777 /путь_к_папке

При этом: владелец, его группа и все остальные имеют полные права rwxrwxrwx.

так как:

rwx  это 7

rw-  это 6

r-x  это 5

r--  это 4

-wx  это 3

-w-  это 2

--x  это 1

---  это 0

 

Из этого делаем вывод что “7 = rwx” потому что “4+2+1 = 7” или если совсем детально то:

(r--  это 4)   +   (-w-  это 2)   +   (--x это 1)   =   1+2+4   =   7

 

***

А если буквенно:

при этом:

u - сам владелец

g - группа владельца

o - others - остальные

 

chmod ugo+rwx РАВНОСИЛЬНО chmod 777

 

добавить всем пользователем не входящим в группу владельца возможность заходить в этот каталог:

chmod o+x КАТАЛОГ

 

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

chmod o+t КАТАЛОГ

или

chmod 1777 КАТАЛОГ

 

группе владельца добавить возможность заходить в каталог:

chmod g+x КАТАЛОГ

 

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

Конечно с помощью буквенного варианта можно тоже сразу прописать права всем:

chmod ugo+x ПУТЬФАЙЛ    -   команда даёт права запускать файл абсолютно всем.

************

# Создать файл сразу в консоли:

cat > ФАЙЛ

 

- вводим текст

- нажимаем Ctrl+D (EOF)

 

# Создать файл / создание файла:

touch ФАЙЛ

 

- затем через редактор (например nano) заполняем его

nano ФАЙЛ

 

# скопировать “FILE1.txt” в домашнюю директорию другого юзера :

cp /home/ЮЗЕР/FILE1.txt /home/ДРУГОЙЮЗЕР/ -v

 

КАК СДЕЛАТЬ ФАЙЛ ИСПОЛНИТЕЛЬНЫМ (а другими словами добавить владельцу возможность запускать этот файл):

chmod u+x ПУТЬФАЙЛ

 

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

chmod ugo+x ПУТЬФАЙЛ

а так можно отнять эти права:

chmod ugo-x ПУТЬФАЙЛ

 

Снять флаг исполняемого файла (или отнять у владельца права на запуск): 

chmod u-x ПУТЬФАЙЛ

 

# Найти файл (find или locate):

find ФАЙЛ

или

locate ФАЙЛ

 

или например найти все файлы в конце которых .gz

find . -name "*.gz"

 

# Удалить файл:

rm ФАЙЛ

 

# Удалить каталог:

rm -R /home/ЮЗЕР/КАТАЛОГ1/КАТАЛОГ2/

или

rm -rf /home/ЮЗЕР/КАТАЛОГ1/КАТАЛОГ2/

 

# Удалить файл без вопросов:

rm -f /home/ЮЗЕР/ФАЙЛ

 

инфа о правах на файле/каталоге:

stat ФАЙЛ

 

Переименовать все файлы в текущем каталоге с расширением PDF в DOC

rename -v 's/\.pdf$/\.doc/' *.pdf

 

изменить владельца файла:

sudo chown НОВЫЙЮЗЕР ФАЙЛ

 

изменить владельца на каталоге:

sudo chown -R НОВЫЙЮЗЕР КАТАЛОГ

 

изменить группу файла:

sudo chown :НОВАЯГРУППА ФАЙЛ

 

изменить сразу и владельца и группу файла:

sudo chown НОВЫЙЮЗЕР:НОВАЯГРУППА ФАЙЛ

 

добавить владельцу права на запись:

chmod u+w ФАЙЛ

 

отнять у всех (владелец, группа, остальные)(ugo - user,group,other) право на исполнение (x):

chmod ugo-x ФАЙЛ

 

Как сделать чтобы были права на запись в каталог но удалить какой-либо файл или каталог было нельзя!

При этом вносить изменения в файл можно! (666 права на файле) а удалить нельзя.

sudo chmod o+t КАТАЛОГ

 

где:

o - означает что действие распространяется на other, т.е. пользователей которые не входят в группу назначенную этому каталогу и не являются владельцами.

 

Также есть биты позволяющие запускать кому угодно файл от имени его владельца, или от имени группы (suid бит и sgid бит) например:

chmod u+s ФАЙЛ

где: u - означает что мы хотим чтобы запускалось от имени владельца, а

s - прописываем для этих целей suid бит.

 

или

chmod ug+s ФАЙЛ - в таком случае файл будет выполнятся и от имени пользователя и от имени группы одновременно, при том что эти действия делает ни владелец и даже не входящий в разрешенную группу пользователь!

 

Смена пользователя (в данном случае меняю пользователя на mradmin):

sudo chown -R mradmin:mradmin /путь_к_папке

 

# Создать каталог:

mkdir КАТАЛОГ

 

# Создать каталог сразу с путём:

mkdir -p /home/ЮЗЕР/КАТАЛОГ1/КАТАЛОГ2/

 

# скопировать “каталог1” в домашнюю директорию другого юзера :

cp /home/ЮЗЕР/КАТАЛОГ1 /home/ДРУГОЙЮЗЕР/ -v

 

# Рекурсивно скопировать каталог (т.е. с подкаталогами):

cp -R /home/ЮЗЕР/КАТАЛОГ1 /home/ДРУГОЙЮЗЕР/

 

# Не рекурсивно скопировать каталог (т.е. без поддиректорий):

cp -a /home/ЮЗЕР/КАТАЛОГ1 /home/ДРУГОЙЮЗЕР/

 

# Переместить каталог:

mv /home/ЮЗЕР/КАТАЛОГ1 /home/ДРУГОЙЮЗЕР/

 

# Переместить каталог на один уровень вверх:

mv КАТАЛОГ ..

 

# Переименовать каталог:

mv /home/ЮЗЕР/КАТАЛОГ1 /home/ЮЗЕР/КАТАЛОГ2

 

# Удалить каталог:

rm -R /home/ЮЗЕР/КАТАЛОГ1/КАТАЛОГ2/

или

rm -rf /home/ЮЗЕР/КАТАЛОГ1/КАТАЛОГ2/

 

Смена владельца и права

# Для того чтобы проверить права набираем:

ls -la

 

# Рекурсивная смена владельца директории:

sudo chown -R ЮЗЕР:ГРУППА /путь_к_папке

 

# Рекурсивная смена прав на директорию 777:

# При этом: владелец, его группа и все остальные имеют полные права.

sudo chmod -R 777 /путь_к_папке

 

chmod ugo+rwx РАВНОСИЛЬНО chmod 777

 

# Рекурсивная смена прав на директорию 774:

# При этом: владелец и его группа имеют полные права, а остальные только читают.

sudo chmod -R 774 /путь_к_папке

 

# Рекурсивная смена прав на директорию: 744

# При этом: владелец имеет полные права, его группа и все остальные имеют права только на чтение.

sudo chmod -R 744 /путь_к_папке

 

chown - установка владельца на файле или каталоге

chgrp - смена группы на файле или каталоге

chmod - установка прав доступа на файле или каталоге

 

посмотреть права на папку:

stat КАТАЛОГ 

 

Посмотреть тип файла:

file ИМЯФАЙЛА

 

cat > file

- вводим текст

- нажимаем Ctrl+D (EOF)


 

ls folder > result.txt

вывести список файлов из каталога folder в текстовый файл result.txt

 

ls folder > result.txt 2> error.txt

вывести список файлов из каталога folder в текстовый файл result.txt и если будет ошибка то вписать её в error.txt


 

Общая информация:

 

touch - создать файл

===============

создать каталог = mkdir

создать каталог с путём= mkdir -p /home/admin/dir1/dir2/

удалить каталог = rm -rf /путь

=============

копирование

cp

-v = подробный вывод

-r = с подкаталогами рекурсивно

-p = сохранять разрешения (например 755)

 

===================

перемещения по каталогам

cd

сразу домой

 

cd ..

на уровень выше


 

cd –

перейти в предыдущий каталог

===========

 

Важно: чтобы попасть внутрь папки на ней должны стоять права x (на исполнение)!

 

Отображение через ls -l

-rwxrwxrwx - полный шаринг на файл для всех (666)

drwxrwxrwx - полный шаринг на каталог для всех (777)

 

du -h --summarize /   - информация о каталогах в корне и размере без подкаталогов

du -h --summarize /home/*   - информация о размере каталога home без подкаталогов

du -h /home/*   - информация о размере каталога home со всеми подкаталогами



 

*******************************************************************

Пользователи и группы:

 

Матчасть:  Пользователь не имеющий пароля (даже пустого) считается отключенным.

Пользователи могут быть либо с правами “Standard” - не могут запускать с SUDO. Либо с правами “Administrator” - могут применять sudo. И ещё есть пользователь ROOT - главная, изначальная учётка в linux - имеющая все права - и она по умолчанию отключена в Ubuntu - путём того что у него просто нет пароля. Но при этом мы можем перейти на неё командой “sudo su” - чтобы не писать много раз sudo. А вот авторизоваться через root не сможем пока не применим к нему пароль, хотя бы пустой.

 

Список всех пользователей, в том числе системных:

/etc/passwd

Например отредактировав этот файл можно поменять путь к домашней директории конкретного пользователя. Или например запретить пользователю иметь возможность вводить какие либо команды - для этого просто в конце строки меняем /bin/bash на /bin/false. Это применяется например для пользователей, которые использует пакет samba, так как эти пользователи просто нужны чтобы разграничить права на общие каталоги и совсем не для того чтобы они могли подключаться по SSH в терминале.

***************************************************************

Список всех групп:

/etc/group

Тут особенный интерес может представлять строка sudo - это и есть администраторы.

***************************************************************

файл с паролями:

/etc/shadow

***************************************************************

# Сменить пользователя (switch user):

su user

***************************************************************

инфа о пользователе - какой uid, к каким группам принадлежит:

id user

***************************************************************

кто что делает в данный момент:

w

Простая команда покажет номер tty сеанса, в какое время залогинился пользователь и какую команду выполняет.

***************************************************************

# Создать пользователя с каталогом в /home:

sudo useradd ЮЗЕР -m

 

# Переименовать пользователя:

usermod -l НОВОЕИМЯ ЮЗЕР

 

# Создать пользователя с заданием названия группы:

sudo useradd ЮЗЕР -m -g ГРУППА

 

# Задание/смена пароля для пользователя:

sudo passwd ЮЗЕР

 

# Удалить пароль пользователя (установка пустого пароля ключ -e):

sudo passwd -d ЮЗЕР

 

# Удалить пользователя:

# ключ -f Принудительно удалить пользователя, даже если он сейчас работает в системе.

# ключ -r Удалить домашний каталог пользователя.

sudo userdel ЮЗЕР

 

# Создать пользователя без возможности взаимодействовать с shell и без домашнего каталога:

# При этом нужна добавленная строка /bin/false в файле /etc/shells

useradd ЮЗЕР -d /dev/null -s /bin/false

 

# Заблокировать пользователя:

sudo passwd ЮЗЕР -l

 

# Разблокировать пользователя:

sudo passwd ЮЗЕР -u

 

вывести всех "созданных" пользователей в сокращенном виде:

grep home /etc/passwd | cut -d: -f1

 

информация о последних сеансах пользователей:

last

 

# Создание новой группы:

sudo groupadd ГРУППА

 

# Сменить название группы:

sudo groupmod -n НОВОЕНАЗВАНИЕ ГРУППА


 

# Удаление группы (не забываем сначала убрать из неё всех пользователей):

sudo groupdel ГРУППА


 

# Добавить существующего пользователя в существующую группу:

sudo usermod -aG ГРУППА ЮЗЕР

или

sudo gpasswd --add юзер группа

например чтобы превратить стандартного пользователя в администратора нужно просто добавить его в группу “sudo”:

sudo usermod -aG sudo ЮЗЕР

 

# Исключить существующего пользователя из группы:

sudo deluser ЮЗЕР ГРУППА

или

sudo gpasswd -d ЮЗЕР ГРУППА

***

Это может быть полезным:

Если создать файлы или каталоги в директории “/etc/skel/” - то каждый раз при создании новых пользователей содержимое этой директории будет дублироваться в домашнюю директорию создаваемых пользователей.

*******************************************************************

Архивация / Архивирование:

 

В основе идея в том что каталог можно запаковать tar, в то время как gzip и bzip могут паковать только отдельные файлы - ПОЭТОМУ сначала tar пакует каталог - затем полученный ФАЙЛ.tar пакуем через bzip для лучшего сжатия - на выходе получаем - ФАЙЛ.tar.bz2 либо ФАЙЛ.tar.gz

 

Запаковка отдельных файлов (не каталогов):

 

запаковка зипом (*.gz):

gzip имяфайла

 

распаковка (при этом файл.gz исчезает):

gunzip имяфайла.gz

 

запаковка bzip2 (*.bz2) (более мощное сжатие):

bzip2 имяфайла

 

распаковка (при этом файл.bz2 исчезает):

bunzip2 имяфайла.bz2

 

Через tar (также каталоги):

 

Запаковать папку folder в archive.tar

tar cvf archive.tar folder

 

Запаковать с использованием gzip папку folder в archive.tar.gz

tar cvfz archive.tar.gz folder

 

Запаковать с использованием bzip папку folder в archive.bz2

tar cvfj archive.bz2 folder

 

Посмотреть что в архиве:

tar tf archive.bz2

 

распаковка:

tar xvf archive.bz2

 

распаковка tar.gz:

tar xvf archive.tar.gz

 

Или ещё вот так:

tar cf file.tar files – создать tar-архив с именем file.tar содержащий files

tar xf file.tar – распаковать file.tar

tar czf file.tar.gz files – создать архив tar с сжатием Gzip

tar xzf file.tar.gz – распаковать tar с Gzip

tar cjf file.tar.bz2 – создать архив tar с сжатием Bzip2

tar xjf file.tar.bz2 – распаковать tar с Bzip2

gzip file – сжать file и переименовать в file.gz

gzip -d file.gz – разжать file.gz в file

***

Обычный zip:

Запаковка каталога “folder”:

zip -r archive.zip folder

 

Запаковка каталога “folder” с установкой пароля 12345:

zip -r -P 12345 archive.zip folder

 

Запаковка каталога “folder” с установкой пароля 12345 а также с сжатием bzip2:

zip -r -P 12345 --compression-method bzip2 archive.zip folder

 

Распаковка:

unzip archive.zip

 

*******************************************************************

поиск / поиск файла:

find - точный поиск

locate - содержащий искомые символы (ищет далеко не везде)

 

например найти все файлы в конце которых .gz

$ find . -name "*.gz"

*********

Пример: - найти в конкретной папке все файлы с расширением conf:

find /etc/samba -name *.conf

***

Найти в текущем каталоге все файлы у которых внутри текста есть слова с фрагментом “docum”:

look docum

*******************************************************************

grep

С помощью grep очень удобно просматривать конфигурационные файлы, 

например команда:

 

grep ^[^#]. /boot/grub/menu.lst - покажет все опции без закомментированных строк (начинающихся со значка "#") в конфигурационном файле загрузки.

 

А команда

grep ^#. /boot/grub/menu.lst - напротив, покажет одни закомментированные строки (начинающиеся со значка "#").

 

Если нужно в файле ./sometext найти слово backup и при этом брать и заглавные и строчные буквы:

grep -i backup ./sometext

 

Если нужно в файле ./sometext найти слово backup и при этом брать и заглавные и строчные буквы, а также посчитать сколько строк/букв/символов получится в этом выводе:

grep -i backup ./sometext | wc

***************************************************************

Сеть:

# идентифицировать все доступные системе сетевые интерфейсы с деталями драйвера:

sudo lshw -class network

 

hostname

Узнать имя компьютера

*******

hostname -I

Узнать свой IP адрес

*******

ifconfig

или

ip addr

информация о сетевых настройках

*******

ip link

информация о всех сетевых интерфейсах, даже которые «down»

*******

отключить сетевой адаптер enp0s3:

sudo ifdown enp0s3

*******

включить сетевой адаптер enp0s3:

sudo ifup enp0s3

*******

Сменить имя:

sudo nano /etc/hostname

А также не забываем сменить в разделе 127.0.1.1. файла hosts:

sudo nano /etc/hosts

*******

Сменить IP на статический (если сетка enp0s3):

sudo nano /etc/network/interfaces

где:

auto enp0s3

iface enp0s3 inet static

address 192.168.5.100

netmask 255.255.255.0

gateway 192.168.5.1

dns-nameservers 8.8.8.8

*******

Посмотреть маршруты (глянуть шлюз по умолчанию):

route

или

ip route show

*******

Сдлеать 10 запросов пинг на адрес mrstudio22.ru с отображением IP:

ping -c 10 mrstudio22.ru

выдаст 10 раз строку:

64 bytes from server228.hosting.reg.ru (31.31.196.38): icmp_seq=6 ttl=55 time=48.6 ms

*******

Покажет промежуточные узлы:

sudo apt install inetutils-traceroute

traceroute mrstudio22.ru

*******

ftp / sftp - подключается к удаленному FTP-серверу, чтобы передать или загрузить какие-либо файлы.

wget - загружает файлы из Интернета по заданному URL на вашу систему.

******

Узнать IP адрес ресурса по DNS имени:

host vk.com

nslookup vk.com

dig vk.com

*******************************************************************

SSH:

ssh user@host – подключится к host как user

ssh -p port user@host – подключится к host на порт port как user

ssh-copy-id user@host – добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам

 

Конечно предварительно на сервер, к которому подключаемся, нужно установить ssh сервер:

sudo apt install openssh-server

затем проверки активности ssh сервиса:

service ssh status

если inactive:

service ssh start

в выводе этой команды можно сразу посмотреть на каком порту слушает ssh, потому что он может быть и не 22.

*******************************************************************

Дата и время:

Важно: Аппаратное время система берёт только при старте а после загрузки идёт синхронизация с интернетом. Т.е. могут быть постоянные расхождения.

 

узнаем текущее время в терминале:

date

 

проверка текущих состояний временной зоны 

timedatectl

или

cat /etc/timezone


 

Для смены часового пояса воспользуемся пакетом tzdata. Для начала обновим нашу систему, чтобы обновился в том числе и сам пакет tzdata, так как он периодически обновляется в случае обновления часовых поясов в разных странах!

apt update && apt upgrade -y

 

Меняем часовой пояс:

dpkg-reconfigure tzdata

 

Это мы скорректировали часовой пояс, давайте теперь синхронизируем само время:

 

sudo apt install ntpdate

sudo ntpdate 0.ubuntu.pool.ntp.org

 

И если мы в основной операционной системе, а не в виртуалке, то запишем скорректированное время в биос:

 

sudo hwclock -w

 

После этого стрелкой вверх возвращаем команду date из удостоверимся в правильности настроек нашего времени!

 

ещё сервера для команды sudo ntpdate :

server 0.ru.pool.ntp.org

server 1.ru.pool.ntp.org

server 2.ru.pool.ntp.org

server 3.ru.pool.ntp.org

 

******************************************************************

Немного про безопасность SSH и PUTTY:

 

****************************************

Смена порта SSH севрера:

/etc/ssh/sshd_config

****************************************

/var/log/auth.log - лог входов

/var/log/audit.log. Здесь фиксируются все неудачные попытки входа в систему, и в том числе по ssh

 

***********************

 

Для установки удаленного подключения к нашему серверу с вашего компьютера из локальной сети, а при желании и из интернета с вашего домашнего компьютера, настроим ssh. Основной файл настроек ssh, /etc/ssh/sshd_config. Для обеспечения контролируемого доступа к нашему серверу давайте немного отредактируем этот файл: Прежде всего, изменим порт, на котором слушает ssh (по умолчанию 22) на любой другой, кроме 80,443,445,25,8080,3128,3129, так как они используются другими сервисами. Пусть, к примеру, это будет 1972. Ищем строку:


 

#Port 22

 

Удаляем знак решетки (#), если он присутствует, и приводим к такому виду:

 

Port 1972

 

Protocol 2 - запрещаем использование устаревшего и менее безопасного протокола SSH1, разрешив только вторую версию протокола

PermitRootLogin no – добавляем эту опцию для запрета авторизации под пользователем root.

 

Остальные настройки оставляем без изменений.

После внесения изменений, сохраняем файл и перезапускаем службу ssh.

 

sudo service ssh restart

 

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

*********************************

Немного полезности о команде netstat

Если мы хотим узнать какой процесс какой занял порт и на какой внешний IP делает запросы, то мы можем воспользоваться командой netstat, которая входит в пакет net-tools. netstat выполняется от имени суперпользователя (sudo).

 

Сначала установим этот самый пакет

sudo apt install net-tools

Простое выполнение команды netstat выдает слишком много данных, поэтому нужно сразу задаться конкретной целью выборки, например:

 

Выбрать TCP и UDP соединения:

sudo netstat –tup

 

Если мы хотим отображение внешних адресов только в виде IP то:

sudo netstat –tupn

 

Если нам надо в реальном времени наблюдать, то можно так:

sudo watch –n 0.5 sudo netstat -tupn

или так, если надо видеть буквенный адрес

sudo watch –n 0.5 sudo netstat –tup

 

Теперь представим, что нам нужно вести лог результатов этой команды:

Сначала создадим файл лога:

sudo touch /var/log/watchnet.log

затем команда:

sudo watch –n 0.5 "sudo netstat -tup | tee -a /var/log/watchnet.log"

а теперь глянем на лог:

less /var/log/watchnet.log

******************************

Великая tasksel

 

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

tasksel --list-tasks Покажет доступные роли для системы.

 

sudo apt install tasksel

sudo tasksel

*************************

Жёсткие ссылки (линки / ярлыки):

Как создать у себя в домашнем каталоге каталог где будут лежать СИНХРОННЫЕ КЛОНЫ всех конфигов в одном месте! А сделать это можно через жёсткие ссылки:

 

например жёсткая ссылка на конфиг самбы:

 

ln /home/myuser/konfigi/samba_clone /etc/samba/smb.conf

 

ещё можно создать простой ярлык:

 

ln -s /home/myuser/konfigi/samba_clone /etc/samba/smb.conf

 

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

 

***************************************************************

Скрипты на bash (Bourne-Again SHell):

 

Создание скриптов (аналог *.bat или *.cmd):

Запускаем редактор nano и создаём скрипт start.sh

nano start.sh

 

содержимое:

 

#!/bin/bash

echo “Hello World!”

 

Далее сохраняем и можем запускать:

запуск:

bash ./start.sh

 

А если нужно запускать всем пользователям - делаем его исполнительным:

sudo chmod a+x start.sh

тогда можно запускать всем просто через:

./start.sh

***

статья на habr.com

https://habr.com/ru/post/47163/

 

***************************************************************

Планировщик заданий Crontab

 

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

автоматизировать процесс обновления системы с помощью. Можно запускать определенные приложения в нужное вам время. 

Для того что бы вызвать Cron, Достаточно набрать в терминале команду:

sudo crontab -e

Откроется файл в котором уже будут назначены задания, они будут не активны, то есть закомментированы. Чтобы добавить свое, нужно спуститься вниз с помощью стрелок на клавиатуре:

Формат добавления заданий выглядит следующим образом:

минута, час, день месяца, месяц, день недели и команда

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

то оно будет иметь следующий вид:

* * * * *

Если надо добавить задание на каждый день в определенное время,

например в 3 часа, то оно будет выглядеть следующим образом:

0 3 * * *

А если нужно чтобы задания выполнялись по будням, то выглядеть оно

будет вот так:

0 3 * * 1-5

Чтобы задать задание для определенного пользователя вводим в

терминале:

crontab -u ПОЛЬЗОВАТЕЛЬ

Пример на выключение системы в 22 часа. 

сначала создадим сам скрипт:

sudo nano poweroff.sh

//script//

sudo shutdown now

//script//

Сделаем его исполнительным с помощью команды:

sudo chmod +x poweroff.sh

Пишем в планировщике «0 22 * * 1-5» и путь до скрипта «/home/USER/poweroff.sh»:

sudo crontab -e

0 22 * * * /home/USER/poweroff.sh

********************

список заданий для пользователя:

crontab -l

Для конкретного пользователя:

sudo crontab -u USER -l

 

Список пользователей которые создавали задания в Cron:

sudo ls -1 /var/spool/cron/crontabs

 

Список задач cron:

cat /etc/crontab /etc/cron.d/*

 

Источник:   https://cyber-x.ru/планировщик-заданий-crontab/ 

***************************************************************

***************************************************************

***************************************************************

Ubuntu Desktop: 

***************************************************************

Обновление микрокода процессоров Intel/AMD

Intel

sudo apt install --reinstall intel-microcode

 

AMD

sudo apt install --reinstall amd64-microcode


 

***************************************************************

NVIDIA

Сначала подключаем PPA репозиторий:

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

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

ubuntu-drivers devices

затем если хотим заменить видео драйвер - нужно удалить текущий:

sudo apt --perge remove nvidia*

sudo apt autoremove

И теперь уже установить новый, который мы выбрали из того что предложила команда ubuntu-drivers devices:

sudo apt -f install nvidia-driver-ВЕРСИЯ

***************************************************************

Проверяем vkd3d:

gears-vkd3d

***************************************************************

Проверка драйверов NVIDIA:

glxinfo | grep "OpenGL renderer"

lspci -k | grep -EA2 "VGA|3D|Display"

***************************************************************

Проверка драйверов AMD:

dpkg -l amdgpu-pro

***************************************************************

WINE:

sudo dpkg --add-architecture i386

wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -

Далее в зависимости от дистрибутива:

Ubuntu 20.04 sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'

Ubuntu 19.10 sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ eoan main'

sudo apt update

Стабильная Ветка:

sudo apt install --install-recommends winehq-stable

Ветка в разработке:

sudo apt install --install-recommends winehq-devel

 

// Далее запускаем winecfg (можно оставить Windows 7):

winecfg

 

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

Wine – загрузчик Windows программ (A Wine application)

***************************************************************

Настройки от проекта portwine:

Зависимости:

https://portwine-linux.ru/portwine-faq/

https://portwine-linux.ru/amd-nvidia-drivers-ubuntu-linux-mint/

сами команды:

установка драйверов от Intel и AMD на Ubuntu:

sudo dpkg --add-architecture i386 && sudo add-apt-repository multiverse && sudo add-apt-repository ppa:kisak/kisak-mesa -y && sudo apt update && sudo apt upgrade -y && sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:i386 libvulkan1 libvulkan1:i386 vulkan-utils mesa-utils -y

***

установка драйверов от NVIDIA на Ubuntu:

sudo dpkg --add-architecture i386 && sudo add-apt-repository multiverse && sudo add-apt-repository ppa:graphics-drivers/ppa -y && sudo apt update && sudo apt upgrade -y && sudo apt install libvulkan1 libvulkan1:i386 vulkan-utils software-properties-gtk mesa-utils -y && sudo software-properties-gtk

***

проверка:

vkcube

***

Поддержка VKD3D (Directx12 под WINE): 

sudo add-apt-repository ppa:cybermax-dexter/vkd3d -y && sudo apt-get update && sudo apt upgrade -y && sudo apt install libvkd3d1 libvkd3d1:i386 vkd3d-demos -y

***************************************************************

Точки отката системы Timeshift:

sudo apt-get install timeshift

или

sudo apt-add-repository -y ppa:teejee2008/ppa

sudo apt-get update

sudo apt-get install timeshift

***************************************************************

Если нужно сделать ярлык на рабочий стол:

ln -s КАТАЛОГИЛИФАЙЛ ~/Desktop/НАЗВАНИЕ

 

кстати тут лежат файлы запуска приложений которые можно скопировать на Desktop:

/usr/share/applications

***************************************************************

Stacer - Аналог ccleaner:

sudo apt install stacer

вариант из GITLAB:

https://github.com/oguzhaninan/Stacer/releases

cd

wget https://github.com/oguzhaninan/Stacer/releases/download/v1.0.9/stacer_1.0.9_amd64.deb

#ставим самостоятельно:

sudo dpkg -i  stacer*

***************************************************************

double commander 

sudo apt install -y double commander

***************************************************************

celluloid - хороший видеоплеер

sudo apt install celluloid

web:   https://celluloid-player.github.io/

***************************************************************

VLC - видео плеер:

sudo apt install -y vlc

***************************************************************

Audacity - редактор звука:

https://flathub.org/apps/details/org.audacityteam.Audacity

***************************************************************

Ardour - профессиональная программа для записи и обработки звука.

sudo apt install ardour

***************************************************************

Audacious - музыкальный плеер:

sudo apt install -y audacious

***************************************************************

Смена изображений рабочего стола:

sudo apt install -y variety

***************************************************************

Доп. настройки гнома, чтобы вернуть ALT+SHIFT для раскладки:

sudo apt install -y gnome-tweak-tool

***************************************************************

Распознавание текста gImageReader:

sudo add-apt-repository ppa:sandromani/gimagereader

sudo apt-get update

sudo apt-get install gImageReader

sudo apt-get install tesseract-ocr

sudo apt-get install tesseract-ocr-rus (для установки русского языка)

***************************************************************

Установка flatpack не путать со snap (https://snapcraft.io/store)

Главный плюс: не засоряют систему своими зависимостями,  а также всегда свежайшие версии приложений, главный минус: первый раз запускаются долго. сайт: https://flatpak.org/setup/Ubuntu/

команды установки: 

sudo apt install flatpak

или

sudo add-apt-repository ppa:alexlarsson/flatpak

sudo apt update

sudo apt install flatpak

возможность устанавливать Flatpak через Центр приложений Ubuntu:

sudo apt install gnome-software-plugin-flatpak

***

Главная страница (магазин) flatpack:

https://flathub.org/home

***************************************************************

Установка ядра Liquorix в Ubuntu

sudo add-apt-repository ppa:damentz/liquorix

sudo apt-get update

sudo apt-get install linux-image-liquorix-amd64 linux-headers-liquorix-amd64 -y

sudo reboot

Чтобы удалить:

sudo apt purge *-liquorix-*

***************************************************************

Steam:

https://steamcdn-a.akamaihd.net/client/installer/steam.deb

или

sudo apt install steam-installer

***************************************************************

Lutris:

Прежде всего смотрим на https://lutris.net/downloads/

Установка в Ubuntu:

sudo add-apt-repository ppa:lutris-team/lutris

sudo apt update

sudo apt install lutris

***

Vulkan libraries:

for AMD graphics:

sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:i386

for Nvidia graphics:

sudo apt install libvulkan1 libvulkan1:i386

***************************************************************

BattleNet:

Переходим и качаем на https://portwine-linux.ru/battle-net-linux/

Следуем инструкции со странички или делаем далее:

cd ~/Загрузки/ 

sudo apt install zenity curl wget tar xterm -y

sh PortBattleNET*

sudo apt install wine -y

Запускаем лаунчер Battle.net

***************************************************************

Epic Games Linux:

https://portwine-linux.ru/epic-games-linux/

качаем сам порт и далее:

cd ~/Загрузки/ 

sh PortEpic*

Запускаем лаунчер Epic Games

***************************************************************

GOG GALAXY 2.0 LINUX

https://portwine-linux.ru/gog-galaxy-2-0-linux/

Скачать новый PortGOG-1.0 (Google_Drive):

https://drive.google.com/file/d/1ucmbRE_n7rui_pSU0l5DLtsyXLes89sN/view

cd ~/Загрузки/ 

sh PortGOG*

лаунчер в меню: GoG Galaxy

***************************************************************

ShotCut - видеомонтажка (https://shotcut.org/):

sudo apt install shotcut

или

snap install shotcut --classic

***************************************************************

Kdenlive - KDE Non-Linear Video Editor:

sudo apt install kdenlive

или

sudo add-apt-repository ppa:kdenlive/kdenlive-stable

sudo apt-get update

sudo apt install kdenlive

***************************************************************

Как добавить яндекс диск в Linux / yandex disk:

sudo nano /etc/apt/sources.list

И вписываем в самый конец списка репозиторий от яндекс

deb http://repo.yandex.ru/yandex-disk/deb/ stable main

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

wget -O YANDEX-DISK-KEY.GPG http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG

А вот теперь можно и добавить

sudo apt-key add YANDEX-DISK-KEY.GPG

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

sudo apt update && sudo apt install yandex-disk

Запускаем мастера настройки яндекc диска командой:

yandex-disk setup

Ставим индикатор:

Добавьте источник и ключ в каталог вашего пакетного менеджера:

sudo add-apt-repository ppa:slytomcat/ppa

Обновите каталог пакетов и установите индикатор:

sudo apt-get update

sudo apt-get install yd-tools

***************************************************************

Установка google-chrome в ubuntu-desktop:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

sudo dpkg -i --force-depends google-chrome-stable_current_amd64.deb

***************************************************************

Архиваторы:

sudo apt install -y p7zip-rar rar unrar unace arj cabextract

***************************************************************

Датчики PSENSOR:

sudo apt install -y psensor

***************************************************************

Если нужно выставить загрузчик Windows первым:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer

sudo apt-get update

sudo apt install -y grub-customizer

***************************************************************

GIMP:

Если не установлен flatpak

sudo apt install flatpak

или

sudo apt install gnome-software-plugin-flatpak

Для обновления всех flat пакетов в системе:

sudo flatpak update -y

 

Установка GIMP:

flatpak update

flatpak install https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref

*******************************

MY PAINT:

sudo add-apt-repository ppa:achadwick/mypaint-testing

sudo apt update

sudo apt install mypaint

***************************************************************

KRITA:

sudo add-apt-repository -y ppa:kritalime/ppa

sudo apt update

sudo apt install krita-testing

***************************************************************

INKSCAPE - Векторный редактор

sudo add-apt-repository -y ppa:inkscape.dev/stable

sudo apt update

sudo apt install inkscape

***************************************************************

DARKTABLE: аналог Adobe Lightroom

sudo add-apt-repository -y ppa:pmjdebruijn/darktable-release

sudo apt install darktable

***************************************************************

BLENDER:

sudo add-apt-repository -y ppa:thomas-schiex/blender

sudo apt update

sudo apt install blender

***************************************************************

ATOM - HTML editing:

sudo apt install atom

или

sudo apt install software-properties-common apt-transport-https wget

GPG ключ:

wget -q https://packagecloud.io/AtomEditor/atom/gpgkey -O- | sudo apt-key add -

Далее:

sudo add-apt-repository "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main"

Далее:

sudo apt update

sudo apt install atom

***************************************************************

KATE: text editor

sudo apt install kate

***************************************************************

QBITTORRENT:

sudo add-apt-repository -y ppa:qbittorrent-team/qbittorrent-stable

sudo apt update

sudo apt install -y qbittorrent

***************************************************************

Мэсенджеры: 

whatsdesk аналог whatsup

https://zerkc.gitlab.io/whatsdesk/

скачали deb  whatsdesk_*

затем:

sudo dpkg -i whatsdesk_*

***************************************************************

telegram

sudo add-apt-repository -y ppa:atareao/telegram

sudo apt update

sudo apt install -y telegram orville-write

***************************************************************

 

Программы для чтения электронных книг: 

Foliate 2.2.0. Поддержка FB2, CBR

https://pingvinus.ru/news/2608

Установка в Ubuntu

Используя PPA-репозиторий:

sudo add-apt-repository ppa:apandada1/foliate

sudo apt update

sudo apt install foliate

//////////////////////////////////

Сalibre

sudo apt install calibre

***************************************************************

Office: 

Установка WPS Office в Debian / Ubuntu:

https://linux.wps.com/

качаем deb пакет и затем:

sudo dpkg -i wps-office*.deb

 

чтобы удалить:

sudo apt-get purge wps-office

****************************************

onlyoffice

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5

sudo nano /etc/apt/sources.list 

>> 

deb https://download.onlyoffice.com/repo/debian squeeze main

sudo apt-get update

sudo apt-get install onlyoffice-desktopeditors

***************************************************************

Для скринкастов:

Пакет SCREENKEY Установка:

sudo apt install libx11-6 python3-gi gir1.2-gtk-3.0 python3-cairo python3-setuptools python3-distutils-extra fonts-font-awesome gir1.2-appindicator3-0.1 slop git

git clone https://gitlab.com/screenkey/screenkey

cd screenkey

sudo ./setup.py install

sudo mkdir -p /usr/local/share/applications

sudo install data/screenkey.desktop /usr/local/share/applications

***************************************************************

OBS-STUDIO:

Кодеки

sudo add-apt-repository ppa:jonathonf/ffmpeg-4

sudo apt update

sudo apt install -y ffmpeg x264 x265

 

INSTALLING OBS-STUDIO:

sudo add-apt-repository -y ppa:obsproject/obs-studio

sudo apt update

sudo apt install -y obs-studio

***************************************************************

WEBCAMOID - (Настройка и запись видео с web-камеры):

sudo apt install webcamoid

***************************************************************

Образ системы:

Установка Systemback

sudo apt install git

git clone https://github.com/fconidi/systemback-install_pack-1.9.4.git 

cd systemback-install_pack-1.9.4/

chmod +x install.sh

sudo ./install.sh

***************************************************************

стресс-тестирование -  GtkStressTesting

https://flathub.org/apps/details/com.leinardi.gst

***************************************************************

Залить образ на флешку

$ dd if=/home/user/ubuntu-server-16.04_amd64.iso of=/dev/sdb1

или

 

$ dd if=/home/user/ваш_образ.iso of=/dev/sdx bs=5M

 

sudo dd if=image_name.img of=/dev/sdx bs=4M

####

снять образ с флешки

sudo dd if=/dev/sdx of=image_name.img bs=4M

 

Другие варианты:

sudo dd if=image_name.img of=/dev/sdX bs=1M oflag=direct

#####

dd bs=1M if=image_name.img iflag=fullblock | pv | dd bs=1M of=/dev/sdX oflag=direct

***************************************************************

Нужно закатать образ на флешку - Этчер:

https://www.balena.io/etcher/

***************************************************************

Хотим заменить жесткий диск? Нет ничего проще, копируем содержимое одного файла блочного устройства в файл другого блочного устройства:

dd if=/dev/sda of=/dev/sdb

И не нужно никаких Partition Magic.

 

Великая dd:

Сначала смотрим на буквы разделов

df -h

 

Заливаем образ на SSD или HDD диск

dd if=/home/user/ваш_образ.iso of=/dev/sdx bs=10М status=progress

 

снимаем образ с оптического диска:

dd if=/dev/cdrom of=/home/user/image.img

или в iso:

dd if=/dev/cdrom of=/home/user/image.iso

 

***************************************************************

Сделать загрузочную флешку с несколькими ISO:

Ventoy:

есть поддержка - legacy and UEFI Secure Boot

Download and install Ventoy on an USB drive:  https://ventoy.net/en/download.html 

github:

https://github.com/ventoy/Ventoy/releases

Установка и использование:

Сначала узнаём название USB партиции

lsblk 

или 

sudo fdisk -l

или если установлен gparted:

parted -l

Далее: если например выяснилось что нужный раздел /dev/sdd1

Нужно весь диск отмонтировать:

sudo umount /dev/sdd

теперь скачанный архив гитхаба нужно распаковать

cd ~/Загрузки

tar xvf ventoy*.tar.gz 

тут обратим внимание на:

CreatePersistentImg.sh   -   Создать постоянный образ (Предварительно нужно на USB проинсталлировать Ventoy через скрипт Ventoy2Disk.sh).

Ventoy2Disk.sh   -   Скрипт устанвоки Ventoy на USB диск. В таком режиме - после установки Ventoy на флешку - можно просто скопировать ISO файлы на флешку и они будут добавляться сами в меню загрузки.

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

sudo ./Ventoy2Disk.sh -i /dev/sdd

или если получатель использует Secure Boot:

sudo ./Ventoy2Disk.sh -i -s /dev/sdd

Далее после установки Ventoy просто копируем ISO на этот раздел.

 

****пример***

Подключен USB бокс с 320gb HDD внутри.

lsblk выдал такую информацию:

 

sdb      8:16   0 298,1G  0 disk 

└─sdb1   8:17   0 298,1G  0 part /media/mradmin/320USB

 

***

 

sudo fdisk -l   -  выдал такой вывод:

 

Диск /dev/sdb: 298,9 GiB, 320072933376 байт, 625142448 секторов

Disk model: Generic         

Единицы: секторов по 1 * 512 = 512 байт

Размер сектора (логический/физический): 512 байт / 4096 байт

Размер I/O (минимальный/оптимальный): 4096 байт / 4096 байт

Тип метки диска: dos

Идентификатор диска: 0x1b376399

 

Устр-во    Загрузочный начало     Конец       Секторы          Размер    Идентификатор Тип

/dev/sdb1                         2048    625141759   625139712       298,1G            7                 HPFS/NTFS/exF

 

Из чего мы узнаём что нужный ДИСК это /dev/sdb

Теперь отмонтируем его:

sudo umount /dev/sdb

Если ругнётся что sudo umount /dev/sdb значит:

sudo umount /dev/sdb1

Далее просто переходим в каталог с Ventoy и запускаем скрипт установки на наш /dev/sdb1 

cd ~/Загрузки/ventoy-1.0.12

sudo ./Ventoy2Disk.sh -i /dev/sdb

Далее 2 раза говорим yes и ждём завершения процесса, вывод будет таким:


 

***********************************************************

*                Ventoy2Disk Script                       *

*             longpanda  admin@ventoy.net                 *

***********************************************************

 

Disk : /dev/sdb

Size : 298 GB

 

Attention:

You will install Ventoy to /dev/sdb.

All the data on the disk /dev/sdb will be lost!!!

 

Continue? (y/n)y

 

All the data on the disk /dev/sdb will be lost!!!

Double-check. Continue? (y/n)y

 

Create partitions on /dev/sdb by parted ...

Done

mkfs on disk partitions ...

create efi fat fs /dev/sdb2 ...

mkfs.fat 4.1 (2017-01-24)

success

mkexfatfs 1.3.0

Creating... done.

Flushing... done.

File system created successfully.

writing data to disk ...

sync data ...

esp partition processing ...

 

Install Ventoy to /dev/sdb successfully finished.

**************************

теперь lsblk нам скажет:

sdb      8:16   0 298,1G  0 disk 

├─sdb1   8:17   0 298,1G  0 part /media/mradmin/ventoy

└─sdb2   8:18   0    32M  0 part 

 

То есть кидаем ISO в /media/mradmin/ventoy.

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

***************************************************************

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

 

sudo apt install ubuntu-restricted-extras libavcodec-extra libdvd-pkg

или

sudo apt install ubuntu-restricted-extras

sudo apt –no-install-recommends install libdvd-pkg

sudo dpkg-reconfigure libdvd-pkd

 

Архиваторы

sudo apt-get install p7zip-rar rar unrar unace arj cabextract

 

Установка flash

sudo apt install adobe-flashplugin

***************************************************************

tiling window extension:

sudo apt install node-typescript make git

git clone https://github.com/pop-os/shell

cd shell

./rebuild.sh

 

***************************************************************

hardinfo - информация об оборудовании в графическом интерфейсе:

sudo apt install hardinfo

*****

аналог CPU-Z

sudo add-apt-repository ppa:atareao/atareao

sudo apt install cpu-g

***************************************************************

***************************************************************

# Разное:

подогнать разметку диска в системе под размер вашей SD карточки. Пригодится при использовании на микрокомпьютерах.

sudo fs_resize

*********************************

Самый простой способ закрыть зависшее приложение в Ubuntu - это Xkill. Нажмите Alt+F2 и наберите Xkill и нажмите Enter

=============

Посмотреть в диспетчере PID и:

$ kill 1493

===============

или по названию 

$ killall gedit

==============

$ pkill gedit

*********************************

Сделать Web-server на своей машине (для редактирования сайта)

sudo apt update

sudo apt install nginx -y

sudo apt install nginx php-fpm

 

Сделаем резерв конфиг файла nginx сайта по умолчанию:

sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.dist

Создадим свой:

sudo nano /etc/nginx/sites-available/default

*** Содержимое файла

server {

 listen 80;

 root /var/www/default;

 index index.php index.html index.htm;

 server_name example.com www.example.com;

 location / {

     try_files $uri $uri/ /index.html;

 }

 error_page 404 /404.html;

 error_page 500 502 503 504 /50x.html;

 location = /50x.html {

    root /usr/share/nginx/www;

 }

 location ~ .php$ {

     try_files $uri =404;

     fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

     fastcgi_index index.php;

     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

     include fastcgi_params;

     }

}

*** Далее

Напоминаю работу с редактором "nano":

CTRL+O – сохранить.

Затем CTRL+X – выход.

Далее создадим каталог сайта, который указали в конфиге выше, и в нём index.php.

mkdir /var/www/default

Далее просто кидаем сайт в директорию /var/www/default

Ну и для того чтобы не перезагружать всю машину делаем restart Nginx and PHP-FPM:

sudo systemctl restart nginx

смотрим версию php:

php  -v

sudo systemctl restart php7.4-fpm

***************************************************************

Если не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock - open (11: Ресурс временно недоступен)

Решение:

sudo fuser -vki /var/lib/dpkg/lock

sudo rm /var/lib/dpkg/lock

sudo dpkg --configure -a

sudo apt autoclean

sudo apt autoremove

sudo apt --fix-broken install -y

sudo apt update

sudo apt upgrade

***************************************************************

Нюансы пользования окном PuTTY:

Чтобы скопировать из терминала: выделить, затем SHIFT + левый клик

Чтобы вставить в терминал: правый клик

***************************************************************

информация о swap

Чтобы проверить включен ли swap набираем:

sudo swapon --show

Если вывод пустой значит в системе нет swap пространства.

Ну а если swap включен то вывод будет примерно таким:

NAME TYPE SIZE USED PRIO

/dev/sda2 partition 1.9G 0B -2

***************************************************************

# scp - копирование файлов через ssh

scp - Утилита для передачи файлов через ssh.

 

Например:

Скопировать локальный файл на сервер:

scp file.gz root@server.my:/home/dir

 

Скопировать всё содержимое папки на сервере (рекурсивно) в локальную папку (с подробным выводом):

scp -r root@server.my:/home/dir/ /home/local/my/

 

Между серверами:

scp -r root@server1.my:/home/dir/ root@server2.my:/home/dir/

 

С указанием порта:

scp -P 9999 file.zip user@server.my:~/

 

Дополнительные флаги

 

-r - рекурсивное копирование (для директорий)

-C - использовать сжатие при передачи

-P - порт ssh

-P большая! и -P указывает перед ssh хостом.

-p - сохранить информацию о времени создания, модификации файла.

Для передачи файлов часто бывает лучше использовать утилиту rsync.

*******************************************

Установка YouTube-DL в Ubuntu 20.04

 

sudo add-apt-repository ppa:nilarimogard/webupd8

sudo apt update

sudo apt install youtube-dl

sudo apt install python3-pip

sudo pip3 install --upgrade youtube_dl

 

скачать видео:

youtube-dl URL

 

Посмотреть возможные разрешения (format code):

youtube-dl -F URL

 

Пример скачивания видео (https://youtu.be/G1tZ0IWnl8I) в 1080p/mp4:

youtube-dl -F https://youtu.be/G1tZ0IWnl8I

youtube-dl -f 137 --ignore-errors -o ~/Videos/youtube/'%(title)s'.mp4 https://youtu.be/G1tZ0IWnl8I

*******************************************

VirtualBox

sudo apt install virtualbox virtualbox-ext-pack virtualbox-guest-additions-iso

*******************************************

Windows шрифты

apt-get install ttf-mscorefonts-installer

*******************************************

i-nex  аналог Aida

Сайт I-Nex: http://i-nex.linux.pl/install

Установка стабильной версии через репозиторий:

sudo add-apt-repository ppa:i-nex-development-team/stable

sudo apt-get update

sudo apt-get install i-nex

Запускаем программу:

sudo i-nex 

*******************************************

RetroArch

sudo add-apt-repository ppa:libretro/stable && sudo apt-get update && sudo apt-get install retroarch*

или через flatpak 

flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

flatpak install --user flathub org.libretro.RetroArch

flatpak update --user org.libretro.RetroArch

*******************************************

Craft - Minecraft clone

http://www.michaelfogleman.com/craft/

https://github.com/fogleman/Craft

*******************************************

webtorrent - просмотр торрентов:

https://webtorrent.io/desktop/

*******************************************

*******************************************

 

OpenMediaVault:

https://docs.google.com/document/d/1-GpMpV3OmszlGxzLzupD5Z6NUTztteKZmEWWgbTgT_4/edit?usp=sharing 

*******************************************

DOCKER:

https://docs.google.com/document/d/1s4u_ldJuI1s9-nzM2Y5nKyVqlk5qyb0ngk9aTRidqMY/edit?usp=sharing

*******************************************

*******************************************


Навигация: