Команды
Объединение нескольких команд в одну последовательную операцию
$ cmd1 && cmd2 && cmd3
Установка нескольких пакетов за раз
$ apt-get install package1 package2 package3
Навигации
pwd — («Path Working Directory») абсолютный путь до текущей рабочей папки
ls [-a][-l] — («LiSt»)список всех файлов в текущей папке.
- [-a] — показать все файлы, даже скрытые;
- [-l] — показать длинную(полную) информацию о файлах;
- [-la] — комбинация обеих ключей;
cd — («Change Directory»)смена директории.
- [TAB] — позволяет автодополнять название папки, если такая имеется, при введени неполного имени
Shift + ~ — переход в домашнюю папку;
../.. — то же самое. Переход в домашнюю папку;
cat [filename] — («CATenate») читает данные из файла или стандартного ввода и выводит их на экран.
clear или Ctrl + L — очищает экран.
Работа с файлами и директориями
touch [fname.txt] — создание нового файла.
- [{fname1,fname2,fname3}.txt] — создание нескольких файлов за раз. Список пишется без пробелов;
mkdir [dname] — («MaKe DIRectory»)создание директории.
rm [fname] — («ReMove»)удаление файла.
rm [-r][dname] — удаление директории с содержимым.
cp [fname1] [fname2] — («CoPy»)копирование файла.
mv [fname1] [fname2] — («MoVe»)перемещение или переименование файла.
Регулярные выражения POSIX / PERL
grep [-inwo][-rlс][-P][-f] [-A 2] [-B 2] [-C 2] [«pattern»] [«filename»]— («Gloval Regular ExPressions») регулярные выражения для использования в обработке данных и файлов
- [-i] — («Ignore»)фильтр игнорирует регистр;
- [-n] — («Number»)фильтр выводит номера строк совпадений
- [-w] — («Word»)фильтр поиска слова целиком. Т.е., ищет при точном совпадении, а не при вхождении
- [-o] — («Only»)фильтр вывода только строки вхождения
- [-r] — («Recursive»)фильтр рекурсивного поиска, если файлов много
- [-l] — («List»)фильтр вывода списка файлов с совпадениями
- [-c] — («Count»)фильтр вывода количества совпадений в файле
- [-P] — («Perl»)перевод регулярного выражения в совместимый с языком Perl/Python
- [-f] — («File»)фильтр, указывающий, что шаблоны или список шаблонов РВ берутся из файла
- [-A N] — («After»)контекст посде совпадения на N строк
- [-B N] — («Before»)контекст перед совпадением на N строк
- [-C N] — («Context»)контекст перед и до совпадения на N строк
- [«pattern»] — Строка совпадения или шаблон поиска регулярного выражения
- [«filename»] — файл(«file.txt») или список файлов в директории(folder/*)
Пример 1: grep -Pno «\d{3}-\d{2}-\d{2}» file.txt > log.text — поиск совпадений шаблона номера в файле и запись результата в текстовый файл
Пример 2: rep -Pnof patterns.txt file.txt > log.text — в данном случае операция соответствует первому примеру, но шаблон(ы) берется(утся) из файла «patterns.txt», в котором шаблон записан в виде «\d{3}-\d{2}-\d{2}»
Алиасы
Примечание. Все алиасы хранятся в файле ~/.bashrc и добавляются конец файла по мере необходимости. После каждого добавления нужно обновить этот файла командой . ~/.bashrc или командой source ~/.bashrc
Пример 1: alias activate=’source bin/activate’ — теперь достаточно зайти в папку виртуальной среды и выполнить команду activate, чтобы теперь активировать виртуальную среду.
Установка и работа с базами данных MySQL и PostgreSQL
База данных бывает полезна для поделок и работы в терминале Linux. В роли реляционной БД можно использовать самые известные: MySQL и PostgreSQL.
Установка MySQL
Установка
$ sudo apt-get install mysql-server mysql-client
в процессе установки система затребует пароль для пользователя по умолчанию БД MySQL root и надо будет ее ввести.
Входим в интерпретатор команд SQL
$ mysql -u root -p<password>
где <password> — пароль, который мы вводили для root. После удачного ввода заходим в консоль MySQL, который начинается с mysql>.
Показ списка существующих баз данных
mysql>show databases;
Создание новой базы данных:
mysql>create database my_db character set utf8 collate utf8mb4_unicode_ci;
- character set — параметр установки кодировки
- collate — параметр для указания кодировки, при котором будут сравниваться символы. В данном случае кодировка указана как utf8, а сравнивание будет производиться по той же кодировке utf8. *_ci в конце кодировки сравнивания указывает, что сравнивание будет регистронезависимой.
Удаление базы данных
mysql>drop database my_db;
Выход из консоли
mysql>exit;
Установка PostgreSQL
Установка
$ sudo apt-get install postgresql
После того, как сервер баз данных установился, нам нужно будет теперь поменять пароль пользователя
$ sudo -u postgres psql
Данная команда говорит системе, чтобы мы зашли в консоль под пользователя БД Postgres по умолчанию, который именуется, как postgres и могли выполнять операции. Далее мы войдем в консоль, который будет начинаться через postgres=#.
Теперь можно менять пароль. Для этого нужно вводить команды через обратный слэш
postgres=# \password
Далее система затребует новый пароль, который нужно будет подтвердить.
Создаем новую базу данных
postgres=# create database my_db;
Вывод списка всех БД
postgres=# \l
Удаление БД
postgres=# drop database db_name
Работа с CRON
Cron (Command Run ON) — система для автоматического запуска программ и скриптов на сервере в определённое время. Управлять cron нужно с помощью команды ‘crontab’.
Список задач cron для текущего пользователя можно посмотреть через команду
$ crontab -l
флаг -l указывает на то, что нужно вывести список(List) всех задач.
Для создания задач необходимо редактировать файл задач и для этого нужно выполнить команду
$ crontab -e
флаг -e указывает на то, что мы будем редактировать(Edit) список задач. После выполнения данной команды система потребует, чтобы вы из списка выбрали номер редатора, которым будете редактировать задания
Selection Path Priority Status ------------------------------------------------------------ 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode 3 /usr/bin/vim.basic 30 manual mode 4 /usr/bin/vim.tiny 10 manual mode
Чтобы потом изменить редактор для cron нужно задать другое значение для параметра EDITOR
$ export EDITOR=/usr/bin/vim.basic
выбираем и идем дальше.
После вышеизложенной операции система откроет файл задач, там будет некоторый закоментированный текст и свободная часть для добавления новых задач
Чтобы разобраться, как задать время или интервалы исполнения нужно познакомиться с принципом задания значений cron. Ниже представлено описание параметров в их определенной позиции с лева направо
# ┌───────────── минуты (0 - 59) # │ ┌───────────── часы (0 - 23) # │ │ ┌───────────── дни в месяцах (1 - 31) # │ │ │ ┌───────────── месяц (1 - 12) # │ │ │ │ ┌───────────── день недели (0 - 6) (с понедельника по субботу; # │ │ │ │ │ 7 также воскресенье на некоторых системах) # │ │ │ │ │ # │ │ │ │ │ # * * * * * команда выполнения
Замечение. Есть хорошие валидаторы, которые дадут ясное понимание, как работает cron в UNIX — подобном окружении и одним из таких является сервис https://crontab.guru.
Параметры ввремени cron можно задавать по разному и тут важно отличать периодичность выполнения, единоразовое выполнение и выполнение при каждом цикле:
- */n — выполнить с периодом 1/n;
- n — выполнить каждый раз в это время;
- n0, n1 — выполнить каждый раз в n0 и n1;
- n0-n1 — выполни��ь всякий раз в интервале с n0 по n1;
- * — выполнить всегда, при каждом цикле.
Пример 1.
1 0 * * * printf "" > /var/log/apache/error_log
Данная команда будет очищать журнал ошибок Apache в одну минуту полуночи (00:01) каждый день.
Пример 2.
45 23 * * 6 /home/oracle/scripts/export_dump.sh
Этот пример запускает скрипт shell под названием export_dump.sh в 23:45 в каждую субботу.
Пример 3.
*/15 20 * * 1-5 /home/oracle/scripts/script.sh
Этот пример запускает скрипт shell под названием script.sh в каждые 15 минут 20 часа вечера в каждый будний день с понедельника по пятницу.