Різні команди

Дело было вечером... Вообщем решился обновить убунту до 24 версии, как оказалось графическими методами нифига не вышло, а гугля посоветовал поступать через команды, что и вышло, потому ниже примеры:

sudo apt update
sudo apt dist-upgrade
sudo apt autoremove
sudo reboot
sudo do-release-upgrade -f DistUpgradeViewGtk3

А вот с этой командой: update-manager -d трабл, ибо сказано что это аналог предидущей, но по факту не прошло(...



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

sudo apt install genisoimage -y
Теперь в домашней папке создаем каталог, в который помещаем нужные нам в образе файлы да папки, и переходим в терминале в домашнюю папку (дефолтно она и открывается с терминалом, но лучше проверить набрав команду pwd ответом же на такое безобразие будет должно быть что-то типа /home/user затем вводим команду:

mkisofs -o namefile.iso /home/sim/namefolder -где "namefile.iso" меняем на только-что выдуманное название нашего будущего образа, а "namefolder" в свою очередь на имя папки в которой файли которые необходимо сунуть в образ.
PS: команды критичны к реестру, так что лучше использовать строчные буковки ИМХО



Запис .iso в флеш (ну або будь яке місце)
dd if=nnnn.iso of=/dev/sdh -- де "nnnn.iso" замінити на шлях до файлу та його ім'я, а "/dev/sdh" на шлях до накопичувача. Можливо додати ще до команди bs=4M status=progress -- буде відображати прогрес переносу.



Теперя возникли трудности в виде создать и удалить юзерей:
sudo adduser nnnn-- где nnnn заменить на свое имя
usermod -aG sudo nnnn-- даем права рута

passwd nnnn-- устанавливаем пароль рута для юзера

sudo deluser --remove-all-files nnnn-- удалить юзера со всеми файлами
sudo deluser nnnn-- просто удалить юзера


Как-то потребовалось монтировать дополнительный диск на убунте, да так, чтоб он автоматически при перезапуске не отлетал в неизвестном направлении посему, для однократного монтирования выполняем:
lsblk виводом данной команды будут все подключенные диски к убунте заетм пишем:
sudo mount /dev/sda1 /nnnn чтоб смонтировать диск который у нас подписан как "sda1" в папку "/nnnn" (которую заранее создали)

Для автоматического монтирования при перезапуске машины нужно узнать имя данного диска командой:
sudo blkid примерно выведет такую херь:
/dev/sda2: UUID="2e80e250-4e5b-48d0-b562-ec48f5ccda35" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="5af1027f-4316-4ca1-881f-efda8a97353a"
где нам нужно только UUID и TYPE, теперь нужно это копирнуть, и сунуть примерно в таком виде в файл:
sudo nano /etc/fstab добавив в таком виде в конец файла
UUID="2e80e250-4e5b-48d0-b562-ec48f5ccda35" /nnnn ext4 defaults 0 2 где соответсвенно /nnnn это папка куда монтировать а ext4 это тип файловой разметки, затем монтируем наш диск командой:
sudo mount -a


Чтоб удалить раздел:
sudo cfdisk /dev/sda где "sda" заменить на нужный диск



Додавання пам'яті в віртуалці (коли додав об'єм в гіпервізорі, а віртуалка його не бачить)
ЗІ: в перший раз коли знадобилось, то саме так, як поисано нижче і виконав, на другий раз не знаходило команду pvresize

lsblk --> виводимо список наявних дисків, якщо потрібно більш детальна інформація то команда fdisk -l
df -h
pvs
vgs
lvs

sudo parted /dev/sda -->запускаємо програму розмітки для необхідного диска
print --> (або p виводить інформацію по наявним розділам)
resizepart N --> де "N" - це номер диска
Ввести новий кінцевий розмір розділу, або використати опцію "end"
quit --> або q завершує зміни
sudo parted /dev/sda/ resizepart N 100% або відразу команда на розширення sudo partprobe /dev/sda оновлення таблиці розділів pvresize /dev/sdaN --> де "N" це номер розділу
sudo vgdisplay ubuntu-vg перевірка вільного місця sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv розширення логічного тому
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv для ext4
sudo xfs_growfs / для XFS
df -h
lsblk

PS: в розділі LVM повнно бути трохи вільного простору, якщо буде забитий повність, то розширення не відбудеться.



Для массового перейменування файлів (а саме додавання нумерації типу 001, 002 ітд на початку файла) виконується команда з тієї папки де лежать файли
i=1; for file in *; do mv "$file" "$(printf %03d "$i") - $file"; ((i++)); done



Просмотр всех процессов:
ps -e --можливо додати для фильтрації "| grep NNNN"



Просмотр кто занимает порт
lsof -i :NN -- где NN то номер порта




Для синхронізації двох директорій можна використати rsync

rsync -avx --delete --progress шлях/до/джерела шлях/до/призначення
Важливий ньюанс: якщо після джерела поставити "/" то буде копіювати тільки файли з вказаного каталогу, а без / копіює всю теку

Для копіювання файлів з віддаленого серверу синтаксис схожий до scp тому команда буде наступна:
rsync -avx --delete --progress ім'я-користувача@192.168.n.n:шлях/до/джерела шлях/до/призначення

Якщо віддалений сервер не на стандартному порту, то в команді вказується ще ( -e "ssh p номер порту" ) наприклад:
rsync -avx --delete --progress -e "ssh -p номер-порту" ім'я-користувача@192.168.n.n:шлях/до/джерела шлях/до/призначення


Був якось випадок з встановленням ubuntu на один пк, і під час інсталяції все зникає з дисплею і зависає на чорному екрані, для вирішення цієї проблеми виконано такі дії:

  1. Коли з'являється меню з вибором "Try or Install Ubuntu" потрібно натиснути клавішу "Е"
  2. Потрібно знайти "quiet splash" і замінити це значення на "nomodeset"
  3. Для завантаження з цими параметрами натиснути "F10" , після цьго проблем не виникало



Коли при відкритті файлу відображає кракозябри, його можна переформатувати в потрібне кодування (UTF-8) для більшості
  • iconv -f cp1251 -t utf8 ФАЙЛ_ЯКИЙ_НЕ_ЧИТАЄ.txt > ФАЙЛ_ЯКИЙ_БУДЕ_ЧИТАТИ_utf8.txt

PS: Якщо cp1251 не спрацює, спробуйте інші поширені кодування для кирилиці, наприклад koi8-r або CP866



Для швидкої і масової заміни тексту в файлах:
  • grep -r "ТЕКСТ_ЯКИЙ_ТРЕБА_ЗНАЙТИ" ./ШЛЯХ_ДО_ПАПКИ_В_ЯКІЙ_ШУКАТИ ---> для пошуку тексту в всіх файлах і підкаталогах (це часто потрібно для перевірки)
  • find ./ШЛЯХ_ДО_ПАПКИ_В_ЯКІЙ_ЗДІЙСНИТИ_ЗАМІНУ -type f -print0 | xargs -0 sed -i 's/СТАРИЙ_ТЕКСТ/НОВИЙ_ТЕКСТ/g' ---> якщо в тексті є посилання, то слеш можна замінити на собачку
  • find ./ШЛЯХ_ДО_ПАПКИ_В_ЯКІЙ_ЗДІЙСНИТИ_ЗАМІНУ -type f '*.ФОРМАТ_ФАЙЛУ_В_ЯКОМУ_ВИКОНАТИ_ЗАМІНУ' -print0 | xargs -0 sed -i 's/СТАРИЙ_ТЕКСТ/НОВИЙ_ТЕКСТ/g' ---> при такій команді можна виконати заміну лише в певних форматах файлів



Запуск команди sudo без вводу пароля

  1. sudo visudo ---> відкриваємо системний файл sudoers для редагування
  2. КОРИСТУВАЧ_ДЛЯ_ЯКОГО_ПРАВИЛО ХОСТ_ДЛЯ_ЯКОГО_ПРАВИЛО=(root) NOPASSWD: /usr/bin/КОМАНДА_ЯКА_ДОЗВОЛЯЄТЬСЯ_БЕЗ_ВВОДУ_ПАРОЛЯ --->
    Тобто команда має вигляд: user ALL=(root) NOPASSWD: /usr/bin/failban-client status