Работа с веб-сервером
В данной статье рассматриваются основные команды, используемые при работе с файлами и директориями при подключении по SSH-протоколу с помощью терминальных программ.
Более подробную справку по каждой из них вы можете получить при помощи man command, где command - название команды, по которой необходимо получить информацию. Выйти из раздела справки можно, нажав на клавишу q.
Навигация
Вывод содержимого директории
Чтобы посмотреть содержимое директории, воспользуйтесь командой ls.
Вывод содержимого текущей директории в несколько колонок (только имена файлов и директорий):
Вывод содержимого текущей директории в одну колонку (только имена файлов и директорий):
Вывод подробной информации о содержимом текущей директории, включая скрытые файлы (имя которых начинается с точки):
Перемещение между директориями
Команда cd позволяет выполнить переход в другую директорию.
Основные способы применения:
Перейти в директорию, которая находится в текущей директории:
Перейти в родительский каталог (на уровень выше):
Перейти в домашний каталог по абсолютному пути (начиная с корня):
Перейти к папке через относительный путь:
Перейти в предыдущий каталог:
Действия с файлами и каталогами
Создание директорий
Команда для создания директорий - mkdir.
Пример использования:
Создание файлов
Для создания файлов можно использовать различные команды, например:
Создать новый файл при его отсутствии (если файл существует, содержимое файла не изменяется):
Создать новый файл при его отсутствии и записывает туда строку "test" (если файл существует, то команда заменяет его содержимое на строку "test"):
Копирование файлов и каталогов
Копирование каталогов и файлов осуществляется с помощью команды cp.
Основные способы применения:
Скопировать файл test.txt в файл test1.txt (файл test.txt должен присутствовать в текущей директории):
Скопировать директорию dir1 в директорию dir2, включая всё содержимое (ключ -r означает рекурсивное копирование, директория dir1 должна присутствовать в текущей директории):
Копирование файлов с сервера на сервер
Перемещение и переименование файлов
Перемещение и переименование файлов выполняется при помощи команды mv.
Основные способы применения:
Переименовать файл test.txt в test2.txt (файл test.txt должен присутствовать в текущей директории):
Переместить файл test2.txt в директорию dir (файл и директория должны присутствовать в текущей директории):
Удаление файлов и каталогов
Для удаление объектов используйте команду rm.
Основные способы применения:
Удалить файл test.txt:
Удалить директорию и всё её содержимое:
Создание ссылок
Ссылки при работе по SSH-протоколу создаются командой ln.
Основные способы применения:
Создать "жёсткую" ссылку:
Создать "символьную" ссылку для каталога /bitrix/
в папке сайта /site2/ :
Изменение прав доступа к файлам и директориям
Команда chmod позволяет настроить права доступа к файлам и директориям.
Основные способы применения:
Изменение прав на xxxx для файла file (file должен существовать в текущей директории):
Изменение прав на xxxx для директории dir (dir должна существовать в текущей директории):
Поиск по содержимому grep
grep - это популярная команда, позволяющая найти содержимое файлов.
найти в папке и во всех под папках ~/site/public_html/ все файлы где содержится слово test grep:
Данная команда имеет огромное количество способов применения. За дополнительной информацией вы можете обратиться к официальной документации, либо к свободным источникам в интернете.
Ниже предоставлены основные опции утилиты.
-b — показывать номер блока перед строкой -c — Отключает стандартный способ вывода результата и вместо этого отображает только число обозначающее количество найденых строк. -h — не выводить имя файла в результатах поиска внутри файлов Linux -i — не учитывать регистр -l — отобразить только имена файлов, в которых найден шаблон -n — показывать номер строки в файле -s — не показывать сообщения об ошибках -v — инвертировать поиск, выдавать все строки кроме тех, что содержат шаблон -w — Ведет поиск по цельным словам. Например при обычном поиске строки ‘wood’ grep может найти слово ‘hollywood’. А если используется данный ключ то будут найдены только строки где есть слово ‘wood’ -e — использовать регулярные выражения при поиске -An — показать вхождение и n строк до него -Bn — показать вхождение и n строк после него -Cn — показать n строк до и после вхождения -o — показать только совпадающие (непустые) части совпадающей строки, каждая из которых находится в отдельной строке. -P — Интерпретировать шаблон как регулярное выражение Perl. Это экспериментально, и grep -P может предупредить о невыполненных функции. -r — Производит поиск рекурсивно по всем поддиректориям.
Поиск файлов find
Используйте команду find, чтобы найти нужный файл.
Я не буду перечислять здесь все параметры, рассмотрим только самые полезные.
-P никогда не открывать символические ссылки
-L - получает информацию о файлах по символическим ссылкам. Важно для дальнейшей обработки, чтобы обрабатывалась не ссылка, а сам файл.
-maxdepth - максимальная глубина поиска по подкаталогам, для поиска только в текущем каталоге установите 1.
-depth - искать сначала в текущем каталоге, а потом в подкаталогах
-mount искать файлы только в этой файловой системе.
-version - показать версию утилиты find
-print - выводить полные имена файлов
-type f - искать только файлы
-type d - поиск папки в Linux
Критериев у команды find в Linux очень много, и мы опять же рассмотрим только основные.
-name - поиск файлов по имени
-perm - поиск файлов в Linux по режиму доступа
-user - поиск файлов по владельцу
-group - поиск по группе
-mtime - поиск по времени модификации файла
-atime - поиск файлов по дате последнего чтения
-nogroup - поиск файлов, не принадлежащих ни одной группе
-nouser - поиск файлов без владельцев
-newer - найти файлы новее чем указанный
-size - поиск файлов в Linux по их размеру
Основные способы применения:
Поиск файлов и каталогов с именем "test" в текущей директории:
Поиск в текущей директории файлов и каталогов, имена которых начинаются на "test" и далее содержат любое количество любых символов:
Поиск файлов с расширением ".php" в домашней директории:
Поиск файлов в домашней директории с определенной маской прав, например, 0664:
Установка прав доступа 644 на все файлы в текущей директории и всех поддиректориях:
Установка прав доступа 755 на все папки в текущей директории и всех поддиректориях:
Поиск файлов по дате в Linux осуществляется с помощью параметра mtime. Найти все файлы модифицированные 50 дней назад:
Найти все файлы, модифицированные между 50 и 100 дней назад:
Поиск файлов по размеру size от 50МБ до 100МБ
Найти 5 самых больших файлов
Другие вспомогательные команды
Вывод истории команд:
Очистить экран (сочетание клавиш Ctrl-L):
Закрыть подключение по SSH (сочетание клавиш Ctrl-D):
Сочетания клавиш:
Ctrl-C - прервать выполнение текущей команды.
Ctrl-Shift-C - копировать выделенный фрагмент (в интерфейсе PuTTY копирование осуществляется простым выделением).
Ctrl-Shift-V - вставить (в интерфейсе PuTTY вставка осуществляется нажатием на правую кнопку мыши).
Копирование файлов с сервера на сервер
Как копировать файлы и папки с удаленного сервера
Например на удаленном сервере несколько каталогов и в каждом каталоге есть много файлов, копируем на локальный сервер (там где находитесь) в папку /home/ . Находимся на первом сервере 192.168.0.1
т.е. скопируем с удаленного сервера все что находится в каталоге /home2/ к себе в каталог /home/
Параметр: -r – рекурсивное копирование папок (включая подкаталоги);
Как копировать файлы и папки на удаленный сервер
Например вам нужно скопировать несколько каталогов и в каждом каталоге есть много файлов. Находимся на первом сервере root@192.168.0.1
Полезные команды для работы с архивами, базами данных и процессами
Архивы
Создать архив директории:
Создать архив bitrix.tar с сжатием gzip исключением папок backup, cache, managed_cache и добавлением файла .htaccess:
Процесс создания или распаковки тяжелых архивов может завершаться принудительно в связи с установленными ограничениями на использование процессами процессоров сервера.
В таких случаях для архивирования в .tar вы можете использовать следующую команду, которая позволит ограничить скорость архивации и снизить использование ресурсов процессора.
Для удобства команда может быть расширена, чтобы отобразить в консоли счетчик времени, оставшегося до завершения процесса, и вывести уведомление (END) о его завершении (позволит проконтролировать, что процесс не прервался и был выполнен успешно).
Для распаковки большого архива .tar можно воспользоваться командой:
Аналогично для распаковки архивов .tar.gz:
Распаковка .tar.gz с уведомлением о завершении:
Распаковать архив .rar в текущую директорию:
Распаковать архив .zip в директорию /tmp:
Для распаковки тяжелых .zip-архивов:
Базы данных
Создание дампа базы данных:
Импорт данных из дампа в базу данных:
Проверка базы данных на наличие ошибок:
Восстановление базы данных при наличии ошибок:
Дисковое пространство
Вывести размер файлов и директорий в текущем каталоге:
Анализ дискового пространства в папке имя_директории:
утилита ncdu
С помощью ncdu вы можете анализировать использование дискового пространства, определять, какие файлы и директории занимают значительный объем, а также удалять ненужные файлы при необходимости.
Утилита установлена на всех хостинговых серверах, и для ее запуска вам необходимо подключиться по SSH и выполнить команду ncdu. При этом будет просканирован корневой каталог вашего аккаунта.
Если необходимо просканировать и вывести данные конкретной директории, воспользуйтесь командой:
Вывод полученных данных имеет приблизительно следующий вид:
Навигация
Навигация по директориям осуществляется с помощью клавиш со стрелками:
↑ и ↓ - для перехода между элементами;
→ (а также клавиша enter) - зайти в выделенную директорию;
← - вернуться в предыдущую директорию.
Опции просмотра
По умолчанию папки упорядочены по занимаемому объему, начиная от самого большого. Для изменения типа сортировки нажмите:
n - чтобы упорядочить элементы по имени (в прямом и обратном порядке);
s - чтобы упорядочить элементы по размеру (в прямом и обратном порядке).
Количество символов "#" помогает определить, какие файлы и каталоги занимают больше всего места. Также здесь можно отразить, какой процент от общего объема занимает тот или иной элемент. Для этого используйте:
g - переключение между отображением графика и процентным выражением.
Другие полезные опции:
a - переключение между отображением реального размера файлов и объемом занимаемого пространства на диске;
e - скрыть/показать скрытые файлы и папки;
? - вызвать краткую справку.
Работа с элементами
i - вывести информацию о выбранном элементе;
d - удалить выбранный элемент.
Выход из приложения
q - выйти.
Дополнительно
Также при запуске утилиты можно использовать дополнительные ключи для ncdu:
-h (т.е. команда вида ncdu -h) - вывод краткой справки;
-v - вывод информации о текущей версии ncdu;
-q - "тихий режим", с обновлением каждые 2 секунды (по умолчанию - 10 раз в течение секунды). Тихий режим позволяет снизить объем передачи данных при удаленных подключениях;
-x - учет при сканировании только файлов и директорий одной и той же файловой системы;
-r - режим "только для чтения" (в данном режиме невозможно удаление файлов).
Смена владельца файлов и папок
Иногда при кооптировании файлов и папок с сервера на сервер, копируются и текущие владельцы файлов и папок. Чтобы в итоге ваш сайт запустился на новом сервере нужно сменить владельца и группу.
Заходите в рабочую папку проекта и используете команду chown.
-R Использовать рекурсивный метод.
Last updated