Основные SSH команды
В этой статье я расскажу об основных и наиболее часто используемых ssh командах. Точнее это просто shell команды. Но раньше я этого не знал.
SSH это такой протокол для удаленного управления. Я как веб-разработчик использую его для управления своим веб-сервером, конечно есть панель ISP Manager, которая позволяет делать в принципе тоже самое, но только через графический интерфейс, а ssh все-же имеет больше возможностей
Пример: я переношу сейчас сайты с одного хостинга на другой, для этого нужно сначала сказать архивы со старого сервера на компьютер, и потом закачать на новый, с моей скоростью интернета это очень долго, а возможность удаленной загрузки файла в ISP manager почему-то не работает, и я использую SSH для того чтоб скачивать напрямую со старого сервера.
Введение
- Нажмите Enter или Return после каждой команды, если не указано иное.
- Домен example.com должен быть заменен на ваше доменное имя.
- Всякий раз, когда вы видите username, вы должны заменить его на имя вашего пользователя.
- Примеры пути и имена файлов должны быть заменены на не что есть у вас на сервере.
Требования
В данной статье предполагается, что:
- у вас есть SSH доступ к вашему серверу.
- Вы используете терминал, или PuTTY (Windows), чтобы войти на сервер.
Поехали
Для начала нам нужно авторизоваться, открываем SSH клиент и вводим
ssh username@example.com
После этого вас попросят ввести пароль, Внимание: пароль вводится не видимо для пользователя – просто набирайте и нажмите Enter или Return.
Если все хорошо, то вы увидите что то вроде этого
Linux hivede2-2547 2.6.32-308.8.2.el5.028stab101.1 #1 SMP Sun Jun 24 20:25:35 MSD 2012 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sat Jan 5 22:35:59 2013 from ip153-226.stat.dsl.minsktelecom.by
После этого вы окажитесь в папке /var/www/username/data если у вас Debian, если нет то папка будет немного другая, но суть та-же.
Навигация
Для того чтоб узнать где мы сейчас находимся есть ssh команда
pwd
выполнив которую вы увидите в какой директории находитесь
Пример результата выполнения:
/var/www/username/data
Используйте эту команду для перемещения по папкам:
cd
Например
cd /var/www/username
Если вы хотите продолжить путь от текущей директории, то первый слэш использовать не нужно. Пример:
cd data
Для перемещения на уровень выше используйте двоеточие, как в CSS))
cd ..
Чтоб попасть в домашнюю директорию можно использовать вот такую SSH команду
cd ~
Что тут?
Дальше вы можете узнать о том какие файлы и папки находятся в вашей директории
ls -alh
ls команда которая показывает список файлов и папок. -alh модифицирует стандартный вывод.
a - говорит что нужно показать даже скрытые файлы
l - позволяет показать полную информацию о файле(права, размер, пользователя, дату)
h - делает вывод более читабельным
Результат выполнения:
итого 44K drwxr-x--x 10 la2ha la2ha 4,0K Янв 5 22:39 . dr-x-----x 3 la2ha mgrsecure 4,0K Дек 28 16:35 .. -rw------- 1 la2ha la2ha 290 Янв 6 01:09 .bash_history drwx------ 2 la2ha la2ha 4,0K Дек 28 18:42 bin-tmp drwxr-x--x 2 la2ha la2ha 4,0K Дек 28 16:35 email drwxr-x--x 2 la2ha la2ha 4,0K Янв 5 05:25 etc drwxr-xr-x 2 la2ha la2ha 4,0K Янв 5 06:52 .filemgr-tmp drwxr-x--x 2 la2ha la2ha 4,0K Янв 5 05:25 logs drwx--S--- 2 www-data la2ha 4,0K Дек 28 16:35 mod-tmp drwxr-x--x 2 la2ha la2ha 4,0K Дек 28 18:42 php-bin lrwxrwxrwx 1 la2ha la2ha 13 Дек 28 16:35 public_html -> www/la2ha.com lrwxrwxrwx 1 www-data la2ha 7 Дек 28 16:35 tmp -> mod-tmp drwxr-x--x 9 la2ha la2ha 4,0K Янв 5 22:53 www
Файлы
Давайте разберем элементы, которые отображается при запуске LS-ALH из предыдущего раздела.
-rw-r--r-- 1 example.com example.com 83 Oct 21 09:47 index.php
-rw-r--r-- это права файла или папки, про них вы можете почитать где-нибудь в другом месте
1 – количество ссылок на этот файл
example.com – владелец файла
example.com – группа к которой файл принадлежит
83 – размер файла
83 Oct 21 09:47 – дата изменения файла
index.php – название файла
Изменение прав
Перед изменением прав на файлы настоятельно рекомендую прочитать про это что-нибудь, т.к. это может угрожать безопасность вашего сервера.
Вот так вы можете изменить права на файл и установить их в значение 755
chmod 755 index.php
Используйте эту команду для копирования файла в другую папку(первый пример) или для копирования файла в ту же папку(второй пример)
cp logo.png image/logo.png
cp index.php index.php_old
cp
это команда, logo.png – имя исходного файла, затем идет имя нового файла, включая информацию о пути, если необходимо.
Так же вы можете скопировать целую папку, со вложенными фалами, используя -R
cp -R image/ image2
Перемещение или переименование
Команды осень походи на команды копирования файла
mv logo.png image/logo.png
mv – основная команда. Она перемещает logo.png в image/ поддиректорию.
А еще вы можете переименовать файл
mv index.php index.php_old
Ну тут думаю все понятно, теперь мы знаем как происходит переименование файлов, я думал что как то иначе если честно)
Ну и еще примерчик
mv image/ ..
Тут мы папочку image перемещаем на уровень выше
Создание и редактирование файлов
vi file.html
Если это существующий файл, то вы увидите его содержимое, если файл не существует, то он создастся и откроется для редактирования.
Файл откроется в редакторе vi о том как им пользоваться можете погуглить, это обширная тема.
Простое создание файла
touch new_file.html
Выполнение этой команды просто создаст файл
Быстрый просмотр файла
Если вам нужно просто посмотреть файлик то используйте кошку))(cat)
cat index.html
Удаление файла
Вот мы добрались уже и до удаления, для того чтоб это сделать выполните ssh команду
rm index.php_old
На что вы можете получить вопрос, хотите ли вы его удалить? Нажимайте y и он будет удален. Внимание: файл будет удален навсегда, а не в корзину, так что думайте прежде чем удалять.
Если нужно удалить каталог со всеми вложенными файлами используйте:
rm -rf /path/to/unwanted/folder/
Скачивание файла по ssh
Для того чтоб скачать файл с другого сервера по ssh нужно выполнить следующую комманду
scp your_username@example.com:/some/remote/directory/foobar.txt /some/local/directory/
Введя этот код(изменив его на свой) вам потребуется ввести пароль от для того юзера которого вы указали, в нашем случае это your_username, затем начнется скачивание файла foobar.txt с удаленной директории /some/remote/directory в вашу /some/local/directory
А вот еще хороший аналог предыдущего действия, отличается тем что этот в отличие от того показывает процесс копирования и сколько осталось
rsync -r -v --progress -e ssh your_username@example.com:/some/remote/directory/foobar.txt /some/local/directory/
7 комментариев
"я использую SSH для того чтоб скачивать напрямую со старого сервера"
Какая команда - то???
Хотелось бы подробнее о правах пользователя - человеческим языком.
1) опечатка в слове "скачать" : переношу сейчас сайты с одного хостинга на другой, для этого нужно сначала сказать архивы со старого сервера на компьютер
2) а можно еще добавить команду ssh -- как зархивировать папку на сервере?
Вы можете оставить комментарий