Заметки Debian/Ubuntu v0.41 Основополагающие вещи в терминале: Касаемо систем с графической оболочкой: Если зависла оболочка перезагрузить 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 *************************************************************** Трюки от pingvinus https://youtu.be/qR4aavTlPXo В терминале: При установке пакета можно набрать только часть названия пакета и затем дважды нажать TAB для автоматического дополнения полного названия программы. *** Для повторения выполнения команды из истории можно делать простое пролистывание нажатием “вверх” или более интересно набрать команду “history” где мы получим пронумерованный список - после чего просто набираем “! и номер”. При этом между знаком и номером нет пробела. Или можно набрать команду вида !57:p - что просто выведет команду на экран не запуская её. *** для выборки из истории выполненных команд можно набрать команду вида: “history | grep КОМАНДА”. *** Для поиска команд также можно использовать сочетание CTRL+R нажимая несколько раз будем перебирать результаты. Для выполнения просто жмём Enter а для редактирования жмём вправо или влево. *** CTRL+A - В начало строки с командой CTRL+E - В конец строки с командой *** CTRL+xx - можно прыгать между текущим положением курсора в строке и началом команды. *** cd .. на каталог выше; cd ~ в домашнюю директорию; cd - в предыдущую директорию; *** Запуск команды в фоновом режиме - в конец команды через пробел вводим &, а также в начале команды вводим nohup *** команда clear && clear - очищает весь экран в том числе прокрутку. *** reset - терминал в исходное состояние. *** Поиск файлов ПО СОДЕРЖИМОМУ (СЛОВО): grep -ri СЛОВО /etc/apache2 *** Поиск команд по ключевому слову: apropos СЛОВО *** *************************************************************** # Структура файловой системы: / -корневая файловая система, самый большой раздел; /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 cfdisk mkfs mount Смотрим список дисков/разделов: lsblk или sudo fdisk -l | grep sd *************************************************************** Эта команда позволяет выяснить «UUID» смонтированных устройств: blkid *************************************************************** Показывает информацию о разделах диска – конкретно в строчке с корневым «/» можно узнать сколько всего занято и свободно дискового пространства.: sudo df -h *************************************************************** Создание разделов на sda: sudo cfdisk /dev/sda *************************************************************** Создать файловую систему NTFS и отформатировать на разделе sda1 sudo mkfs.ntfs -f /dev/sda1 отформатировать в ext4 на раздел. ИМЕННО НА РАЗДЕЛ!: sudo mkfs -t ext4 /dev/sdc1 *************************************************************** Примонтировать диск: Сначала создадим каталог в который будет монтироваться диск: sudo mkdir /media/data3 а теперь монтируем в этот каталог: sudo mount /dev/sdс1 /media/data3 Монтирование образа «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. ******************************************************** Залить образ на флешку $ 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 *************************************************************** Запущенные процессы в системе: 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 > Внести данные - при этом всё что было стирается. >> Внести данные - при этом данные добавляются к существующим. *************************************************************** Узнать температуру процессора: Sensors: sudo apt-get install lm-sensors sudo sensors-detect sensors или sudo apt install inxi -y сведения о памяти: inxi -m температура CPU: inxi -s жесткие диски: inxi -d *************************************************************** Последние события системного лога в реальном времени: / логи: Показывает историю всех команд: 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 ПУТЬФАЙЛ - команда даёт права запускать файл абсолютно всем. Чтобы изменить права доступа на все папки и все подпапки в текущем каталоге на 755 ( drwxr-xr-x ): find ./ -type d -exec chmod 0755 {} \ Чтобы изменить права доступа на все файлы и на все выложенные файлы в папки, которые в текущем каталоге на 644 ( -rw-r—r— ): find ./ -type f -exec chmod 0644 {} \ ************ # Создать файл сразу в консоли: 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/ДРУГОЙЮЗЕР/ Если ввести опцию “-i”, тогда при копировании вам будет предложен выбор, перезаписать файл или нет. # Переместить каталог: 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 .. на уровень выше 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. **************************************** Немного про безопасность 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 Прежде чем отключать наш сервер от клавиатуры и монитора, проверим работоспособность удаленного подключения. //////////////// Как сгенерировать SSH ключи и далее подключаться через ключи а не через пароль ///////////////// Немного теории: Суть в том что в процессе участвует пара ключей. Есть открытый ключ и есть закрытый ключ. Сначала их нужно сгенерировать. Всё что шифруется открытым ключом можно расшифровать закрытым и наоборот всё что шифруется закрытым ключом можно разгадать имея открытый. Закрытый ключ мы храним у себя и никому не показываем. То есть генерируется пара - открытый/закрытый ключ - закрытый мы храним у себя а открытый отдаем всем серверам куда будем подключаться. Можно использовать одну ключевую пару для подключения к разным серверам. Итак на стороне основной машины с которой мы будем подключаться к множеству серверов делаем команду: ssh-keygen -N "MEGAPASS" -q где: -N "MEGAPASS" - кодовая фраза на случай если кто-то физически добрался до пары ключей на вашей машине; -q - прячет остальные вопросы. Либо можно обойтись без кодовой фразы и просто использовать команду ssh-keygen Тут мы просто жмём всё время Enter. В результате генерируются 2 файла: ~/.ssh/id_rsa и ~/.ssh/id_rsa.pub Это и есть наша пара - открытый “id_rsa.pub” / закрытый “id_rsa” ключ! Чтобы посмотреть закрытый ключ, достаточно ввести команду: cat ~/.ssh/id_rsa Чтобы просмотреть публичный ключ, введите: cat ~/.ssh/id_rsa.pub На стороне сервера на который будем подключаться на всякий случай проверяем запуск демона: sudo apt install openssh-server systemctl status sshd Теперь вернувшись на основную машину нужно скопировать созданный открытый/публичный ключ на удаленный сервер. Для этого подключаемся к ssh с помощью следующей команды: ssh-copy-id USER@192.168.3.102 Команда «ssh-copy-id» скопирует ключ на ваш сервер, в папку .ssh Остаёмся в текущем соединении терминала и запускаем параллельный сеанс для проверки - и если вдруг по какой то причине ключ ssh сам не смог скопироваться, то нужно сделать это вручную. Для этого наберите команду: cat ~/.ssh/id_rsa.pub | ssh USER@192.168.3.102 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" В общем в итоге на сервере к которому надо подключаться в директории ~/.ssh/ появится файл “authorized_keys” который и содержит все публичные ключи машин с которых мы будем к нему подключаться уже без пароля. После удачного соединения по созданному ключу, можно приступать к отключению опции “PasswordAuthentication”. Эта опция позволяет войти на наш сервер с помощью пароля. А чтобы ее отключить, нужно подправить конфиг: sudo nano /etc/ssh/sshd_config В конфигурационном файле найдите строку: PasswordAuthentication yes И замените слово «yes» на «no». Возможно, эта опция будет закомментирована, вам нужно убрать решетку «#» раскомментировав ее. После чего сохраните конфиг и перезагрузите сервис ssh командой: sudo service ssh restart Мы настроили беспарольное подключение со своей машины на сервер - отлично. А что делать если нужно подключаться ещё и с другой машины? Всё просто - редактируем на сервере файл ~/.ssh/authorized_keys и добавляем в него открытый ключ второй машины. Напоминаю что посмотреть публичный ключ можно командой cat ~/.ssh/id_rsa.pub или воспользоваться командой: cat ~/.ssh/id_rsa.pub | ssh USER@192.168.3.102 >> ~/.ssh/authorized_keys источники вдохновения: https://youtu.be/aP1ObrA1Fn4 https://cyber-x.ru/авторизация-ssh-по-ключу/ ******************************************************************* Дата и время: Важно: Аппаратное время система берёт только при старте а после загрузки идёт синхронизация с интернетом. Т.е. могут быть постоянные расхождения. узнаем текущее время в терминале: 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 ****************************************************************** Немного полезности о команде 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/* Удаление всех задания crontab crontab -r Удаление заданий Cron для конкретного пользователя crontab -r -u username Пример работы заданий Cron: Запуск /root/backup.sh в 3 часа ночи каждый день: 0 3 * * * /root/backup.sh Запуск script.sh в 16:30 второго числа каждого месяца: 30 16 2 * * /path/to/script.sh Запуск /scripts/phpscript.php в 22:00 в течение недели: 0 22 * * 1-5 /scripts/phpscript.php Запуск perlscript.pl через 23 минуты после полуночи, 2 часа ночи и 4 часа ночи каждый день: 23 0-23/2 * * * /path/to/perlscript.pl Запуск linuxcommand в 04:05 каждое воскресенье: 5 4 * * sun /path/to/linuxcommand Источники: https://cyber-x.ru/планировщик-заданий-crontab/ http://blog.sedicomm.com/2020/07/14/kak-sozdavat-i-upravlyat-zadaniyami-s-pomoshhyu-cron-v-linux/ *************************************************************** Rsync sudo apt install rsync Создание пользователя "backuper" для запуска Rsync: useradd backuper passwd backuper Рассмотрим пример когда нужно синхронизировать каталог "/var/www" на текущем сервере с каталогом "/var/www" на удалённом сервре "webserver2.com": rsync -avzhe ssh backuper@webserver2.com:/var/www/ /var/www Теперь можно создать скрипт с командой синхронизации и запланировать его в cron ******************************************* Консольные панельные файловые менеджеры: GNU Midnight Commander $ sudo apt install mc [Debian/Ubuntu] $ sudo dnf install mc [CentOS/RHEL] *** Ranger Console $ sudo apt install ranger [Debian/Ubuntu] $ sudo dnf install ranger [CentOS/RHEL] *** Nnn $ sudo apt install nnn [Debian/Ubuntu] $ sudo dnf install nnn [CentOS/RHEL] *************************************************************** *************************************************************** *************************************************************** 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 https://doublecmd.sourceforge.io/ 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 *************************************************************** Смена изображений рабочего стола: variety: sudo apt install -y variety /////// wallpaper-reddit: Linux Dependancies: sudo apt-get install python3-dev python3-setuptools libjpeg8-dev zlib1g-dev libfreetype6-dev Install: cd ~ git clone https://github.com/ChrisTitusTech/wallpaper-reddit.git cd wallpaper-reddit sudo python3 setup.py install Запуск: просто в терминале набираем команду: wallpaper-reddit Автоматический запуск при login: nano .profile в конце добавляем строку: wallpaper-reddit Правим Config: cd ~ cd .config/wallpaper-reddit nano wallpaper-reddit.conf В разделе “subs =” приводим к такому виду: subs = wallpapers,wallpaper источник: https://christitus.com/change-wallpaper/ *************************************************************** Доп. настройки гнома, чтобы вернуть 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 Appimage: https://appimage.github.io/apps/ *************************************************************** Установка ядра 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 *************************************************************** Natron — программа для видеокомпозитинга. Установка через Flatpak flatpak install flathub fr.natron.Natron Запуск: flatpak run fr.natron.Natron *************************************************************** Как добавить яндекс диск в 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 *************************************************************** Создание музыки LMMS https://lmms.io/download#linux *************************************************************** Мэсенджеры: 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 *************************************************************** KeePassXC sudo apt install keepassxc Flatpak: Установка: flatpak install flathub org.keepassxc.KeePassXC Запуск: flatpak run org.keepassxc.KeePassXC Snap: sudo snap install keepassxc *************************************************************** Образ системы: Установка 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 *************************************************************** Сделать загрузочную флешку с несколькими 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 *** //////////////////////////// САЙТ НА VDS/VPS (Ubuntu 20.04) ///////////////////////////// На мой взгляд самый оптимальный вариант для статичного сайта с PHP. Если же у вас просто html статический сайт то лучше воспользовать gihub pages (https://youtu.be/Nz0c4d1lbMk). Итак, покупаем VDS/VPS - дискового пространства достаточно 30 гигабайт, такие vps стоят примерно 300 руб в месяц. И если у вас сайт примерно 2 или 3 гигабайта размером то остальное можно добить подняв там docker с Nextcloud а также складывать записи с какого-нибудь видеорегистратора по FTP - кстати сервер с FTP также подняв в контейнере докера. Ну так вот - соединившись по SSH с новым сервером начнём настройку: //обновление системы: sudo apt update && sudo apt upgrade -y sudo reboot //добавление пользователя: adduser mradmin //добавление пользователя в группу “sudo”: usermod -aG sudo mradmin //включение и настройка брандмауэра “ufw”: Смотрим список доступных правил “ufw”: ufw app list По умолчанию доступен OpenSSH - но его ещё нужно активировать: ufw allow OpenSSH Но активация этого правила ничего не даст если не активировать сам “ufw”: ufw enable //проверка статуса: ufw status Далее переподключиться к серверу под созданным новым пользователем: ssh mradmin@223.124.191.89 //установка стека LAMP: //установка apache2: sudo apt install apache2 Далее в ufw нужно разрешить шаблон “Apache Full” - разрешает трафик по портам 80 / 443, то есть http / https: ufw allow in "Apache Full" Теперь можно проверить что по IP адресу в браузерах отображается страничка апача. //Далее ставим СУБД: apt install mysql-server //После установки нужно запустить скрипт настроек безопасности: sudo mysql_secure_installation Сразу включаем режим VALIDATE PASSWORD и задаём средний режим сложности. Далее вводим надёжный пароль “root” для СУБД. //Далее ставим php: sudo apt install php libapache2-mod-php php-mysql //Далее создаем виртуальный хост для своего сайта: На текущем этапе мы конечно можем разместить свой сайт - поместив его в директорию “/var/www/html”, но мы создадим другую директорию в порядке рассмотрения варианта размещения нескольких сайтов на одном хосте. В той же директории “/var/www/” мы создаём каталог “mrstudio22”: sudo mkdir /var/www/mrstudio22 Теперь нужно изменить права на этот каталог - то есть дать возможность текущему пользователю “mradmin” возможность помещать туда файлы. Где $USER - это переменная, которая вбирает в себя текущего пользователя который выполняет эту команду. sudo chown -R $USER:$USER /var/www/mrstudio22 //Создаём файл конфигурации виртуального хоста: каталог /etc/apache2/sites-available/ содержит по умолчанию файлы 000-default.conf и default-ssl.conf - эти файлы содержат информацию о хосте по умолчанию. Мы создаем новый такой файл: sudo nano /etc/apache2/sites-available/mrstudio22.conf //////// содержание файла //////// ServerName mrstudio22.ru ServerAlias www.mrstudio22.ru ServerAdmin webmaster@localhost DocumentRoot /var/www/mrstudio22 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined //////// содержание файла //////// // Обратите внимание на опцию ServerName / ServerAlias - тут нужно указать ваш домен, который люди будут набирать в браузере для доступа к вашему сайту. // Активируем наш виртуальный хост: sudo a2ensite mrstudio22 А также деактивируем виртуальный хост по умолчанию: sudo a2dissite 000-default // Перезагружаем апач чтобы применились новые настройки: sudo systemctl reload apache2 // Далее заливаем свой сайт в директорию “/var/www/mrstudio22” после чего нужно ещё раз права поменять: sudo chown -R $USER:$USER /var/www/mrstudio22 И теперь набрав в браузере адрес mrstudio22.ru либо www.mrstudio22.ru мы наблюдаем наш сайт. Таким образом через систему виртуальных хостов можно на одном сервере крутить много разных сайтов. Сервер будет понимать какой именно от него просят посредством описания в файлах *.conf, которые размещены в директории /etc/apache2/sites-available/. источник вдохновения: https://youtu.be/FxwPQkP3OGY //////////////////////////// САЙТ НА VDS/VPS ///////////////////////////// *************************************************************** Если не удалось получить доступ к файлу блокировки /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 ******************************************* ИГРЫ /GAMES Карточные пасьянсы sudo apt install pysolfc /////////////////////////////////// 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/ ******************************************* ******************************************* ******************************************* Поиск больших файлов: sudo apt install ncdu в качестве параметра папку, которую надо просканировать ncdu /home ******************************************* ******************************************* 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 *******************************************