- Основные SSH команды
- Введение
- Требования
- Поехали
- Навигация
- Что тут?
- Файлы
- Изменение прав
- Используйте эту команду для копирования файла в другую папку(первый пример) или для копирования файла в ту же папку(второй пример)
- Перемещение или переименование
- Создание и редактирование файлов
- Простое создание файла
- Быстрый просмотр файла
- Удаление файла
- Скачивание файла по ssh
- Команды для работы с SSH
- Команды для работы с файлами
- ls — просмотр содержимого каталога
- pwd — показать полный путь до директории
- cd — переход по директориям
- mkdir — создание папки
- touch — создание файла
- rm — удаление папок и файлов
- cp — копирование файлов/папок
- mv — перемещение или переименование файлов и папок
- wget — получение файлов со сторонних сайтов
- scp — передача файлов с компьютера
- du — получение информации о занятом дисковом пространстве
- find — поиск файлов/папок
- Примеры
- Количество файлов
- grep — поиск файлов по их содержимому
- stat — подробная информация о файле
- ln — создание ссылки на файл
- сhmod — изменение прав доступа
- Пример
- mc — Midnight Commander
- Работа с базами данных
- mysql — подключение к базе данных
- Импорт дампа базы данных
- mysqldump — экспорт дампа БД
- Работа с архивами
- Особенности
- crontab — планировщик Cron
- idn — преобразование домена в Punycode
- Горячие клавиши
Основные SSH команды
В этой статье я расскажу об основных и наиболее часто используемых ssh командах. Точнее это просто shell команды. Но раньше я этого не знал.
SSH это такой протокол для удаленного управления. Я как веб-разработчик использую его для управления своим веб-сервером, конечно есть панель ISP Manager, которая позволяет делать в принципе тоже самое, но только через графический интерфейс, а ssh все-же имеет больше возможностей
Пример: я переношу сейчас сайты с одного хостинга на другой, для этого нужно сначала сказать архивы со старого сервера на компьютер, и потом закачать на новый, с моей скоростью интернета это очень долго, а возможность удаленной загрузки файла в ISP manager почему-то не работает, и я использую SSH для того чтоб скачивать напрямую со старого сервера.
Введение
- Нажмите Enter или Return после каждой команды, если не указано иное.
- Домен example.com должен быть заменен на ваше доменное имя.
- Всякий раз, когда вы видите username, вы должны заменить его на имя вашего пользователя.
- Примеры пути и имена файлов должны быть заменены на не что есть у вас на сервере.
Требования
В данной статье предполагается, что:
- у вас есть SSH доступ к вашему серверу.
- Вы используете терминал, или PuTTY (Windows), чтобы войти на сервер.
Поехали
Для начала нам нужно авторизоваться, открываем SSH клиент и вводим
После этого вас попросят ввести пароль, Внимание: пароль вводится не видимо для пользователя – просто набирайте и нажмите Enter или Return.
Если все хорошо, то вы увидите что то вроде этого
После этого вы окажитесь в папке /var/www/username/data если у вас Debian, если нет то папка будет немного другая, но суть та-же.
Навигация
Для того чтоб узнать где мы сейчас находимся есть ssh команда
выполнив которую вы увидите в какой директории находитесь
Пример результата выполнения:
Используйте эту команду для перемещения по папкам:
Если вы хотите продолжить путь от текущей директории, то первый слэш использовать не нужно. Пример:
Для перемещения на уровень выше используйте двоеточие, как в CSS))
Чтоб попасть в домашнюю директорию можно использовать вот такую SSH команду
Что тут?
Дальше вы можете узнать о том какие файлы и папки находятся в вашей директории
ls команда которая показывает список файлов и папок. -alh модифицирует стандартный вывод.
a — говорит что нужно показать даже скрытые файлы
l — позволяет показать полную информацию о файле(права, размер, пользователя, дату)
h — делает вывод более читабельным
Файлы
Давайте разберем элементы, которые отображается при запуске LS-ALH из предыдущего раздела.
-rw-r—r— это права файла или папки, про них вы можете почитать где-нибудь в другом месте
1 – количество ссылок на этот файл
example.com – владелец файла
example.com – группа к которой файл принадлежит
83 – размер файла
83 Oct 21 09:47 – дата изменения файла
index.php – название файла
Изменение прав
Перед изменением прав на файлы настоятельно рекомендую прочитать про это что-нибудь, т.к. это может угрожать безопасность вашего сервера.
Вот так вы можете изменить права на файл и установить их в значение 755
Используйте эту команду для копирования файла в другую папку(первый пример) или для копирования файла в ту же папку(второй пример)
cp
это команда, logo.png – имя исходного файла, затем идет имя нового файла, включая информацию о пути, если необходимо.
Так же вы можете скопировать целую папку, со вложенными фалами, используя -R
Перемещение или переименование
Команды осень походи на команды копирования файла
mv – основная команда. Она перемещает logo.png в image/ поддиректорию.
А еще вы можете переименовать файл
Ну тут думаю все понятно, теперь мы знаем как происходит переименование файлов, я думал что как то иначе если честно)
Ну и еще примерчик
Тут мы папочку image перемещаем на уровень выше
Создание и редактирование файлов
Если это существующий файл, то вы увидите его содержимое, если файл не существует, то он создастся и откроется для редактирования.
Файл откроется в редакторе vi о том как им пользоваться можете погуглить, это обширная тема.
Простое создание файла
Выполнение этой команды просто создаст файл
Быстрый просмотр файла
Если вам нужно просто посмотреть файлик то используйте кошку))(cat)
Удаление файла
Вот мы добрались уже и до удаления, для того чтоб это сделать выполните ssh команду
На что вы можете получить вопрос, хотите ли вы его удалить? Нажимайте y и он будет удален. Внимание: файл будет удален навсегда, а не в корзину, так что думайте прежде чем удалять.
Если нужно удалить каталог со всеми вложенными файлами используйте:
Скачивание файла по ssh
Для того чтоб скачать файл с другого сервера по ssh нужно выполнить следующую комманду
Введя этот код(изменив его на свой) вам потребуется ввести пароль от для того юзера которого вы указали, в нашем случае это your_username, затем начнется скачивание файла foobar.txt с удаленной директории /some/remote/directory в вашу /some/local/directory
А вот еще хороший аналог предыдущего действия, отличается тем что этот в отличие от того показывает процесс копирования и сколько осталось
Источник
Команды для работы с SSH
SSH позволяет управлять аккаунтом напрямую на сервере. С его помощью можно собрать полную информацию о занятом дисковом пространстве и количестве файлов, а также, например, импортировать объемный дамп базы данных, работать с системой контроля версий git и проектами на Node.JS или Python.
После подключения вы увидите приглашение командной строки: [username@server
- username — логин вашего аккаунта на хостинге;
- server — имя сервера, на котором он размещен.
Для работы требуется знание команд. Они выглядят так: command -key argument
- command — название команды;
- -key — дополнительные опции (ключи);
- argument — значение, с которым будет работать команда (путь до папки, фраза, которую нужно найти и т.д.).
Рекомендуем прочитать справочную информацию для команды, которую вы планируете использовать, введя в консоли man. Обратите внимание, справочник англоязычный.
Например, откроем руководство для ls: [username@server domains]$ man ls Чтобы выйти из режима справки, нажмите «q».
Команды для работы с файлами
ls — просмотр содержимого каталога
Команда выводит перечень видимых файлов и папок: [username@server domains]$ ls
domain.ru site.ru
Чтобы получить полную информацию о содержимом каталога, пригодятся ключи:
- -l — вывести подробную информацию о файле;
- -a — отобразить скрытые файлы;
- -h — отобразить размер файла в удобном формате (по умолчанию выводится в байтах).
[username@server domains]$ ls -lah
итого 16K
drwxr-xr-x. 4 username username 4,0K янв 23 12:11 .
drwx—x—. 4 username service 4,0K дек 25 18:45 ..
drwxr-xr-x. 3 username username 4,0K дек 3 07:01 domain.ru
drwxrwxr-x. 3 username username 4,0K янв 23 12:12 site.ru
pwd — показать полный путь до директории
Команда выводит полный путь до каталога, в котором вы находитесь: [username@server domains]$ pwd
/home/username/domains
cd — переход по директориям
Для перехода между каталогами используйте команду cd. В качестве аргумента укажите путь до папки, куда нужно переместиться: [username@server
]$ cd domains/domain.ru/public_html/ // Переходим в каталог domains/domain.ru/public_html/ .
// Проверяем:
[username@server public_html]$ pwd // Выводим путь до текущего каталога.
/home/username/domains/domain.ru/public_html // Готово. Переход осуществлен.
Чтобы перейти на уровень вверх относительно текущего каталога, введите cd ..: [username@server public_html]$ cd ..
[username@server domain.ru]$ pwd // Выводим путь до текущего каталога.
/home/username/domains/domain.ru // Мы перешли на уровень выше.
cd — — шаг назад (вернуться к предыдущему каталогу): [username@server domain.ru]$ cd —
/home/username/domains/domain.ru/public_html // Перешли к каталогу public_html, где были ранее.
cd (без параметров) — перейти в домашний каталог: [username@server public_html]$ cd
[username@server
]$ pwd // Выводим путь до текущего каталога.
/home/username // Вернулись в домашний каталог пользователя username.
mkdir — создание папки
Команда имеет вид: mkdir путь_до_каталога, где «путь_до_каталога» — путь к создаваемой папке, в конце указывается ее имя.
]$ mkdir domains/site.ru/example // Создаем каталог example по пути domains/site.ru/.
Если вы создаете каталог в том же месте, где находитесь, полный путь указывать не нужно: [username@server
]$ cd domains/site.ru/ // Переходим в каталог site.ru.
[username@server site.ru]$ mkdir example2 // Создаем каталог example2 в текущем каталоге.
// Проверяем:
[username@server site.ru]$ ls // Выводим список файлов.
example2 public_html // Каталог example2 создан.
touch — создание файла
touch создаёт пустой файл с именем и расширением, которое вы укажете, или обновляет дату модификации существующего файла: [username@server domains]$ touch example.txt // Создаем файл example.txt в текущем каталоге.
// Проверяем:
[username@server domains]$ ls // Выводим список файлов.
example.txt // Файл example.txt создан.
rm — удаление папок и файлов
Для удаления файла достаточно указать путь до него: [username@server public_html]$ rm example.txt
Чтобы удалить директорию, используйте ключи -r (рекурсивно) и -f (без подтверждения): [username@server public_html]$ rm -rf example1
Очистить текущий каталог от всех файлов и папок можно с помощью команды: [username@server public_html]$ rm -rf *
cp — копирование файлов/папок
В качестве аргументов для команды укажите сначала полный путь до файла, который нужно скопировать, и через пробел полный путь до каталога, куда будет произведено копирование.
Чтобы скопировать папку со всем ее содержимым, укажите ключ -r (рекурсивно): [username@server]$ cp -r /home/username/domains/site.ru/public_html/example /home/username/domains/domain.ru // Копируем папку example из domains/site.ru/public_html в domains/domain.ru.
Если вы находитесь в том же каталоге, где и объект, который нужно скопировать, полный путь до него указывать не нужно: [username@server public_html]$ cp -r example2 /home/username/domains/domain.ru // Копируем папку example2 из domains/site.ru/public_html в domains/domain.ru.
// Проверяем:
[username@server public_html]$ cd /home/username/domains/domain.ru // Переходим в каталог domains/domain.ru.
[username@server domain.ru]$ ls // Выводим список файлов.
example2 public_html // Папка скопирована.
mv — перемещение или переименование файлов и папок
Синтаксис команды mv такой же как, и у cp (копирование). Укажите сначала полный путь до файла, который нужно перенести, а затем путь до каталога, куда будут перемещены данные.
Пример: [username@server domain.ru]$ mv primer.txt /home/username/domains/site.ru/public_html // Переносим файл primer.txt из domains/domain.ru/ в domains/site.ru.
//Проверяем:
[username@server domain.ru]$ ls // Выводим список файлов в каталоге domain.ru.
example2 public_html // Проверяем, что в списке нет файла primer.txt.
[username@server domain.ru]$ cd /home/username/domains/site.ru/public_html // Переходим в каталог domains/site.ru/public_html.
[username@server public_html]$ ls // Выводим список файлов.
primer.txt // Файл перенесен.
Чтобы переименовать файл, введите сначала текущее имя, а затем — новое: [username@server public_html]$ ls // Выводим список файлов в текущем каталоге.
example.txt
[username@server public_html]$ mv example.txt primer.txt // Изменяем имя example.txt на primer.txt.
// Проверяем:
[username@server public_html]$ ls // Выводим список файлов.
primer.txt // Файл переименован.
wget — получение файлов со сторонних сайтов
Скачивайте файлы на ваш аккаунт хостинга со сторонних ресурсов с помощью утилиты wget.
Wget работает с протоколами HTTP, HTTPS и FTP. С ее помощью удобно скачивать архивы, установочные пакеты в нужную директорию на дисковом пространстве аккаунта. Чтобы начать процесс закачки, выполните команду: [username@server
scp — передача файлов с компьютера
Команда scp поможет передать файлы с вашего устройства на unix на аккаунт. Заранее устаналивать соединение по SSH для использования этой утилиты не нужно. Выполните команду: [user@mycomputer
] $ scp /home/user/desktop/file.txt username@domain.ru:domains/domain.ru/public_html Здесь /home/user/desktop/file.txt — путь до файла на копьютере, username@domain.ru — логин аккаунта на хостинге и доменное имя или IP-адрес сервера, domains/domain.ru/public_html — путь до директории, куда нужно загрузить файл.
Чтобы передать каталог, используйте ключ -r (рекурсивно):
] $ scp -r /home/user/desktop/folder username@domain.ru:domains/domain.ru/public_html
du — получение информации о занятом дисковом пространстве
По умолчанию команда выводит информацию о весе каждого каталога и подкаталога в байтах и пути до них: [username@server domains]$ du
4 ./site.ru/example
4 ./site.ru/public_html
12 ./site.ru
20 ./domain.ru
36 .
Чтобы читать результат работы команды было проще, добавьте ключи:
- -s — вывести общий объем каталога;
- -h — отобразить размер файла в удобном формате (Кб, Мб или Гб).
В качестве аргумента укажите символ «*»: команда посчитает размер каждого каталога и файла в директории: [username@server
]$ du -sh *
70M domains
4,0K example2
4,0K tmp
12K username_wor00.sql.bz2.gz
16K username_wor1.sql
find — поиск файлов/папок
Команда имеет вид: find путь_до_каталога -ключи , где «путь_до_каталога» — папка, с которой начинается поиск.
Рекомендуем ознакомиться с руководством (man) для find, так как она обладает обширным набором ключей. Мы рассмотрим основные:
- -name — поиск файлов, имена которых соответствуют заданному шаблону;
- -type — поиск файлов определенного типа:
- f — обычный файл;
- d — каталог;
- l — символическая ссылка.
Примеры
Найти все файлы с расширением .php в текущем каталоге (обозначается символом «.») и подкаталогах: [username@server
Найти все файлы с расширением .php, а также файлы, имена которых начинаются с точки в каталоге public_html: [username@server
]$ find ./public_html -name «*.php» -o -name «.*»
Найти все каталоги, имена которых начинаются с «w» в текущей папке: [username@server
]$ find . -name «w*» -type d
Количество файлов
С помощью find можно посчитать количество файлов на аккаунте. Выполните команду: [username@server
grep — поиск файлов по их содержимому
Команда имеет вид: grep «текст» путь_до_файла, где «текст» — информация, которую нужно найти, «путь_до_файла» — путь к файлу, по которому производится поиск.
Узнаем с помощью grep, какая база данных используется сайтом: [username@server domain.ru]$ grep «username_» -R // username_ — начало имени базы данных. Замените «username» на логин вашего аккаунта, -R — рекурсивный поиск.
public_html/example.php:define(‘DB_NAME’, ‘username_wor00’);
public_html/example.php:define(‘DB_USER’, ‘username_wor00’);
stat — подробная информация о файле
Выполните команду stat, чтобы узнать, когда файл был создан и изменялся: [username@server public_html]$ stat example.php
Файл: «example.php»
Размер: 3317 // Размер в байтах.
Inode: 57804829 // Уникальный индексный дескриптор.
Доступ: (0644/-rw-r—r—) // Права доступа.
Uid: ( 3645/username) // ID и имя владельца.
Gid: ( 3646/username) // ID и имя группы владельца.
Доступ: 2018-01-23 12:03:21.829402333 +0300 // Дата последнего обращения.
Модифицирован: 2017-12-20 13:34:11.831201546 +0300 // Дата внесения последних изменений в содержимое файла.
Изменён: 2018-01-23 12:03:41.231474591 +0300 // Дата последнего изменения имени файла или прав доступа.
ln — создание ссылки на файл
Чаще всего применяется для создания символических ссылок (ярлыков). Используйте их, если необходимо, например, изменить путь до корневой директории сайта.
Команда имеет вид: ln -s исходный_файл целевой_файл, где «целевой_файл» будет ссылкой на «исходный_файл». Всегда указывайте полный путь к исходному файлу: [username@server domains]$ ln -s /home/username/domains/domain.ru/public_html/example1 /home/username/domains/site.ru/public_html/example2
// Проверяем:
[username@server domains]$ ls -la site.ru/public_html/example2 // Выводим полную информацию о каталоге example2.
1 username username 53 янв 23 12:14 example1 -> /home/username/domains/domain.ru/public_html/example1
Для удаления символической ссылки перейдите в каталог, где сохранен «целевой_файл» и удалите созданный ярлык: [username@server public_html]$ cd /home/username/domains/domain.ru/public_html/ // Переходим в каталог, где расположена папка example1.
[username@server public_html]$ ls -la // Проверяем наличие символической ссылки: выводим полную информацию о каталоге.
drwxrwxr-x. 2 username username 4096 янв 23 12:08 example1
lrwxrwxrwx. 1 username username 53 янв 23 12:09 example2 -> /home/username/domains/domain.ru/public_html/example1
[username@server public_html]$ rm example2 // Удаляем ярлык.
[username@server public_html]$ ls -la // Еще раз выводим список файлов и проверяем, удалена ли символическая ссылка.
drwxrwxr-x. 2 username username 4096 янв 23 12:08 example1
сhmod — изменение прав доступа
Изменить права на файл или папку можно с помощью команды chmod xxx путь_до_файла , где xxx — права, «путь_до_файла» — путь до папки или файла. Чтобы изменить права и на папку, и на ее содержимое, добавьте ключ -R (рекурсивно).
Пример
[username@server domains]$ chmod -R 777 /home/username/example2 // Устанавливаем права 777 для папки example2 и ее содержимого.
]$ stat example2 // Смотрим статус.
Файл: «example2»
Доступ: (0777/drwxrwxrwx) // Права для каталога example2 изменены на 777.
[username@server
]$ cd example2/ // Переходим в example2.
[username@server example2]$ ls // Выводим содержимое каталога.
copytest.txt example1
[username@server example2]$ stat copytest.txt // Смотрим статус файла copytest.txt.
Файл: «copytest.txt»
Доступ: (0777/-rwxrwxrwx) // Права доступа к файлу изменены на 777.
mc — Midnight Commander
Midnight Commander — файловый менеджер с текстовым интерфейсом, встроенный в консоль. Для запуска введите в команду mc.
Работа с базами данных
mysql — подключение к базе данных
Процесс подключения к базе данных с помощью команды mysql мы описали в статье.
Импорт дампа базы данных
mysql позволяет импортировать дамп базы данных, загруженный на дисковое пространство аккаунта. Выполните команду: [username@server domains]$ mysql -u db_username -p db_name где
- db_username — имя пользователя базы данных;
- db_name — название базы;
- dump_name.sql — имя дампа.
mysqldump — экспорт дампа БД
Чтобы выгрузить дамп на дисковое пространство аккаунта выполните команду: [username@server domains]$ mysqldump -u db_username -p db_name > dump_name.sql Он будет помещен в каталог, из которого выполнялось действие.
Работа с архивами
Выбор команды для распаковки архива зависит от формата, в котором он создан: [username@server domains]$ unzip archive.zip
[username@server domains]$ unrar x archive.rar
[username@server domains]$ tar xf archive.tar
[username@server domains]$ tar xfz archive.tar.gz
[username@server domains]$ gunzip archive.gz
[username@server domains]$ 7za x archive.7z
Особенности
Для команды rar обязательно укажите параметр «x», чтобы сохранить структуру.
gunzip распаковывает файлы, после чего удаляет архив. Если нужно его сохранить, создайте копию на дисковом пространстве аккаунта.
Создать архив можно в формате .zip или .tar: [username@server domains]$ tar cf archive.tar directory/ // Помещаем каталог directory в архив archive.tar.
[username@server domains]$ zip -r archive directory // Помещаем каталог directory в архив archive.zip. Он будет сохранен в каталоге, где выполнялась команда. // Проверяем:
[username@server domains]$ ls // Выводим список файлов.
archive.tar archive.zip directory domain.ru example.txt site.ru // Архивы archive.zip и archive.tar созданы.
crontab — планировщик Cron
Настройте выполнение скриптов по расписанию с помощью планировщика Cron. Чтобы добавить новое задание, выполните: [username@server
Откроется окно текстового редактора vim, нажмите клавишу «i», чтобы внести изменения. Добавьте команду в конец документа. Она состоит из времени выполнения (минута, час, число, месяц, день недели), пути до утилиты и пути до выполняемого скрипта, например: 15 12 * * * /usr/local/bin/wget http://domain.ru/script.php // Скрипт script.php будет выполняться каждый день в 12:15
Выбор интерпретатора зависит от скрипта, который нужно выполнить. Для php-скриптов подойдет php, curl или wget, для Python или Node.js — python или node соответственно.
Чтобы узнать путь до нужного интерпретатора, выполните команду: [username@server
Сохраните изменения в редакторе vim. Нажмите Esc и введите «:q!»
Вместо php укажите имя интерпретатора.
idn — преобразование домена в Punycode
Чтобы перевести IDN-домен в Punycode, выполните команду: [username@server
Горячие клавиши
Для удобства работы в консоли используйте горячие клавиши.
- clear — очистить окно;
- history — посмотреть список выполненных команд;
- Ctrl+C — остановить выполнение команды;
- Ctrl+D — выйти из системы;
- !! — повторить последнюю команду;
- Tab — автодополнение. Начните вводить имя папки или файла и нажмите Tab — название будет дописано автоматически.
Источник