Заметки 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:
***
где находится сам пакет и где его документация:
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
***************************************************************
Нужно закатать образ на флешку - Этчер:
***************************************************************
Хотим заменить жесткий диск? Нет ничего проще, копируем содержимое одного файла блочного устройства в файл другого блочного устройства:
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
*******************************************
*******************************************