Я не часто использую Shell в Unix и постоянно забываю синтаксис команд по настройке сервера. Как правило, если один раз правильно настроил сервер, туда дольше не лазишь. Чтобы самое основное у меня всегда было под рукой, решил сделать эту статью. Может и Вам пригодится 😉

Часто используемые команды в Shell Unix:

cd Имя_Директории (в вариациях cd ../.. или cd ..) — прогулка по каталогу: в директорию или вверх по каталогу.

ls — посмотреть содержимое директории в которой я нахожусь

ls -l — с этим ключём вывод содержимого будет детализированным

pwd — вывести путь моего месторасположения в древе каталогов

mkdir — создать директорию

rm — удаляет файлы

mv — перемещает файлы

cp — копирует файлы

less — эта команда позволяет просматривать содержимое файла

grep — ищет заданную последовательность в файле

tail — отображает содержимое конца файла

chmod — изменение атрибутов файла

joe — редактор текстовых файлов

tar, gzip, gunzip — эти команды чаще всего применяются совместно и позволяют работать с архивами: создавать их, извлекать файлы из архивов

zip, unzip — команды для работы с zip-архивами

 

Работа с MySQL через Shell

Просмотр версии MySQL

$ mysql —version

Чтобы запустить mysql, необходимо выполнить:

Для Debian/Ubuntu

$ service mysql restart

Для CentOS 6

$ service mysqld restart

Для CentOS 7

$ systemctl restart mysqld.service

Также используются команды start, stop и status — для проверки состояния mysql. Если вышеперечисленное не помагло, у Вас возможно установлена MarinaBD — можно попробовать запустить MySQL так:

systemctl start mariadb.service
systemctl enable mariadb.service

Можно просто зайти в MySQL и строчить потом в нём команды, в конце каждой команды ставя символ «;» — о чем можно прочитать в help:

$ mysql -uroot -pPASSWORD -h localhos

-> show databases;

В ключе «-u» «-p» — я не ошибся и написал ключ слитно с паролем! Но иногда может использоваться слитно!

Можно сразу указать комеанду, что будет полезно для создания скрипта:

$ mysql -u root -pPASSWORD -h localhos -e "show databases"


Создание таблиц, полей и чтения значений БД

Открыть базу данных либо при входе:

$ mysql -u имя_пользователя -p -В имя_базы
либо когда уже вошли:
mysql> USE имя_базы;

Показать таблицы базы данных

mysql> use test; show tables;

Создадим в базе test таблицу order.

create table test (`id` int(11),`content` varchar(255));

Вывести список колонок в таблице

show columns from test.order;

Просмотрк котонок и их свойств

SHOW COLUMNS FROM TABLE_NAME;

Добавить колонку в таблицу

ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT(11);

Удалить колонку из таблицы

ALTER TABLE TABLE_NAME DROP COLUMN_NAME;

Если Вы создаете новую базу данных, хорошо создать отдельного пользователя с правами только для этой базы данных (лучше не палить всемогущего root пользователя и его пароль 😉 ). Чтобы сделать базу и пользователя одной командой, надо сделать так:

& mysql -uroot -ppassword -e "create database имя_новой_базы_данных; GRANT ALL PRIVILEGES ON имя_новой_базы_данных.* TO имя_нового_пользователя_базы_данных@localhost IDENTIFIED BY 'пароль_для_нового_пользователя_базы_данных'"

Загрузка SQL базы данных

mysql ИМЯ_БАЗЫ -uИМЯ_ПОЛЬЗОВАТЕЛЯ -pПАРОЛЬ < dump.sql
либо:
mysql -uИМЯ_ПОЛЬЗОВАТЕЛЯ -pПАРОЛЬ
а потом строчить:
mysql> use ИМЯ_БАЗЫ;
mysql>\. /путь/к/dump.sql

Резервное копирование баз данных

$ mysqldump --opt -u username -ppassword dbname > backupfile.sql

Резервное копирование со сжатием
$ mysqldump --opt -u root -pSeCrEt customers_db |  gzip -9 > customers_db_backup.sql.gz

Для извлечения архива
$ gunzip customers_db_backup.sql.gz

Показать всех MySQL пользователей
SELECT user FROM mysql.user;

Вывести только уникальные имена пользователей
SELECT DISTINCT user FROM mysql.user;

Показать MySQL пользователей вместе с теми хостами к которых им разрешено подключаться:
SELECT user,host FROM mysql.user;

Посмотреть пользователей пароли и хосты

SELECT user,host,password FROM mysql.user;

В MySQL, чтобы посмотреть какие привилегии даны пользователю, вы можете использовать команду
SHOW GRANTS

Смена пароля у SQL пользователя

1. Логинимся

$ mysql -u root -p

2. Подключаемся к базе
mysql> use mysql;

3. Задаём новый пароль для пользователя "Roma"
mysql> update user set password=PASSWORD('NEW-PASSWORD-HERE') where User='Roma';
4. Обновляем привилегии
mysql> flush privileges;

Запуск Apache через Shell

Часто при изменении настроек на сервере необходимо перезагружаться

$ reboot

В этом случае, может быть необходимо вручную перезапускать сервисы, такие как Apache

Debian/Ubuntu

$ service apache2 restart

CentOS

$ service httpd restart
Также поддерживаются команды start и stop

Администрирование

$ df h — сколько места на диске

Создание BASH скрипта

Используйте следующую конструкцию, чтобы выполнить, например, несколько SQL-запросов:
#!/bin/bash
mysql -u root -psecret <<EOF
USE mysql
SHOW tables
EOF