Шпаргалка: команды в Linux

Оглавление

Удаление репозитория PPA

sudo add-apt-repository --remove ppa:whatever/ppa

Удаление приложений

sudo apt remove --purge _name_
sudo apt autoremove && sudo apt autoclean

Запрет создания дополнительных столов в elementary os

gsettings set org.pantheon.desktop.gala.behavior dynamic-workspaces false

Изменить группу пользователей на папке рекурсивно

chown -R www-data:www-data ./*

Изменить права на папку рекурсивно

chmod -R 777 ./*

Права на исполнение файла группе "staff"

Дать права группе "staff"

chown :staff /home/user/scripts/script.sh

Дать права на запуск группе

chmod g+x /home/user/scripts/script.sh

Дать права на запуск всем (в том числе группе)

chmod a+x /home/user/scripts/script.sh

Право на изменение файла пользователю "user"

chown user /home/user/scripts/script.sh
chmod u+rw /home/user/scripts/script.sh

Право на чтение файла группе "staff"

chown :staff /home/user/scripts/script.sh
chmod g+r /home/user/scripts/script.sh

Право на изменение и создание файлов в каталоге ~/scripts группе "staff"

chown -R :staff /home/user/scripts
chmod -R g+rw /home/user/scripts

Удалить всё что в текущей директории

rm -rf ./*

Удалить все файлы в папке и подпапках с расширением ".txt"

find dirname/ -name "*.txt" -delete

Скопировать папку с содержимым в другую директорию

cp -r dir1/. dir2

Скопировать папку рекурсивно с сервера в локальную папку

scp -r name@host:~/ssh_dir/copy_dir /mnt/c/paste_dir

Скопировать папку БЫСТРО рекурсивно с сервера в локальную папку используя rsync

rsync -avz user@remote-server.ru:/dir/ /local/

Исключение списка файлов получаемых через rsync

rsync -a --exclude-from='exclude-file.txt' src_dir/ dst_dir/

Содержимое файла exclude-file.txt:

path/file.txt
path/dir

Скачиваем файл на локальную машину

scp login@server:/dir/name.file /local_dir

Заливаем файл на удаленный сервер

scp /local_dir/name.file login@server:/dir

Просмотреть размер файлов

du -sh *

Перемещаем содержимое папки в родительскую директорию

mv * ../

ssh с понятным путём командой

Если в ssh не отображается путь до активной директории

export PS1="\u@\h:\w> "
или если нужна красивая подсветка
export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

Найти все файлы которые изменялись после 01.11.2018

find . -type f -newermt 20181101 > update_files.txt

Переименование части имени списка файлов

rename 's/prefix1/prefix2/' *.jpg

Переименование части имени списка файлов (рекурсивно)

find . -name "*.jpg*" | rename 's/prefix1/prefix2/'

Переименование файлов используя F2

Устанавливаем утилиту из репозитория.

Запускаем:

f2 -f 'search_prefix' -r 'replace_value' -s -R -d
  • -f 'search_prefix' - задает значение для поиска
  • -r 'replace_value' - указывает на значение для замены найденных совпадений
  • -s - указывает, что значение для поиска читать как строку (по умолчанию регулярное выражение)
  • -R - указывает, что поиск должен быть рекурсивным в подпапках
  • -d - указывает, что для поиска учитывать также и папки
  • -x - указывает, что изменения нужно применить

Найти слово внутри файла во всех директориях и записать что нашел в файл

grep -ilR 'name' > greplog.txt

Архивация текущей директории в zip архив

zip -r folder.zip ./

Распаковать zip архив

unzip folder.zip

Создать папку с названием "movies", вложенный в "genres", и "scifi"

mkdir -p movies/genres/scifi

Оптимизировать видео old.mp4 с помощью кодека h264

ffmpeg -i old.mp4 -vcodec libx264 -crf 28 new.mp4

Конвертация WEBP в PNG

sudo apt install webp

dwebp name.webp -o name.png

Дока: тут

Импорт БД

mysql -u пользователь_БД -p имя_БД < файл_дампа_БД

Экспорт БД (создание бэкапа)

mysqldump -u пользователь_БД -p имя_БД > имя_файла

Отображения занятого и свободного места на дисках

ncdu

Свободное место на диске

df -h

Размер папок на диске

Размер конкретной папки:

du -sh ./var

Размеры файлов и папок внутри текущей папки:

du -sh ./*

Проверка DNS запроса к домену

nslookup ya.ru

Добавление сайта на apache2

example заменить на название нового сайта

  1. Создать url:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.conf
  1. Записать данные в hosts:
sudo nano /etc/hosts
  1. Редактирование созданного url:
sudo nano /etc/apache2/sites-available/example.conf
  1. Включить url:
sudo a2ensite example.conf
  1. Перезапуск apache:
sudo /etc/init.d/apache2 restart

Пример example.conf

<VirtualHost *:80>
    #ServerName example

    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>
</VirtualHost>

Сборка js файла

npx terser -c -o test.min.js -- test.js
OR
npx esbuild test.js --bundle --outfile=test.min2.js --minify