Основные SSH команды

62 063 просмотра 7 комментариев 6 января 2013

В этой статье я расскажу об основных и наиболее часто используемых 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 команды, а команды шелла операционной системы, к которой Вы подключены посредством ssh туннеля.
Не суть, люди которые захотят по SSH полазить по серверу, и не знают как, напишут запрос типа такого как в заголовке.
Самого главного не написали. то что в начале обещано:
"я использую SSH для того чтоб скачивать напрямую со старого сервера"
Какая команда - то???
ДА, действительно, про это то я и не сказал. Поправил пост.
Как раз то что я так долго искал)
Спасибо. Информативно.
Хотелось бы подробнее о правах пользователя - человеческим языком.
Спасибо, полезно.
1) опечатка в слове "скачать" : переношу сейчас сайты с одного хостинга на другой, для этого нужно сначала сказать архивы со старого сервера на компьютер
2) а можно еще добавить команду ssh -- как зархивировать папку на сервере?

Вы можете оставить комментарий