Программирование - на главную
    Главная   |    Рассылки   |    Форум программистов

  Программирование в Интернет
PHP
ASP .NET
Perl
SSI
JavaScript
CSS
HTML
Разное
  Программирование под Windows
Pascal, Delphi
C++, Builder
BIOS
Алгоритмы
Разное
  Программирование графики
DirectX
OpenGL
Графика
  Разное
Форум программистов
Партнерские программы
Создать интернет-магазин
Рассылки
Написать
  Навигация: Главная > Программирование в Интернет > Различная документация по интернет технологиям > Работа через Unix shell: применение putty и азы команд Unix  

Работа через Unix shell: применение putty и азы команд Unix

Если у вас есть свой выделенный сервер или VPS (виртуальный выделенный сервер), а может быть даже просто виртуальный хостинг с shell доступом, вам может быть весьма полезно пользоваться им. Что же это такое и для чего оно нужно?

Сразу скажу, что на сегодня есть множество различных ПУ (Панелей Управления сервером /хостингом), которые дают удобный доступ к практически ко всему, что вам может понадобиться. Но все равно некоторые вещи, такие как обновление программного обеспечения сервера, установка новых модулей, конфигурирование сервера на низком уровне, компиляция своих сборок ПО, и прочее можно выполнить, пожалуй, только через shell. Да и многие другие, более простые вещи. К примеру, вам не доводилось переезжать на другой сервер и переносить 5-20-100 Гб файлов вашего сайта на него? Используя Unix shell это можно выполнить с максимальной скоростью. И что самое главное, в этом действительно нет ничего сложного. Итак, что же это такое и для чего оно нужно?

Под shell доступом подразумевают работу с терминалом удаленного Unix-сервера. Т.е. shell предоставляет нам доступ к командной строке. Если вы недавно знакомы с ПК и не имеете опыта работы в том же DOS, первое время может быть немного непривычно. Чтобы хоть примерно понять, что такое командная строка, можете кликнуть по кнопке Пуск -> Выполнить -> cmd, открывшееся окно будет командной строкой (правда, DOS — совместимой, не Unix). В большинстве случаев вы вводите некую команду в командной строке, нажимаете кнопку Enter, введенная команда выполняется, после чего вам выводится информация о результатах ее работы. На самом деле ничего архисложного нет, а все намного проще усвоить на практике. Итак, если у вас есть в арсенале shell доступ к своему ресурсу, полчаса свободного времени и желание немного ознакомиться с Unix shell, приступим!

Подключение к серверу.

Прежде всего, нам понадобится shell-клиент. Это программа, которая будет обеспечивать работу с терминалом удаленного Unix-сервера. Я рекомендую простую, функциональную и бесплатную программу PuTTY. Скачать последнюю версию PuTTY можно тут.

Запустив ее, вы увидите примерно следующее:



Как правило, все настройки сразу дефолтные, так что к работе можно приступать сразу же. Позже мы рассмотрим расширенное конфигурирование PuTTY.

Итак, введите ваше имя хоста (домен) или системный IP своего сервера в соответствующее поле и нажмите Enter (или кликните по кнопке Open). Если это ваше первое подключение к этому серверу с данного ПК, PuTTY спросит у вас подтверждение ssh ключа (ssh-rsa 2048, например). Дело в том, что любые современные сеансы Unix shell доступа проходят по защищенному SSH-протоколу (Secure SHell). Этот протокол подразумевает шифрование данных, а ssh-ключ как раз и есть связующей цепочкой между вами и целевым удаленным сервером. Последующие ваши сеансы с данного ПК с целевым сервером уже будут проходить с автоматическим использованием этого сохраненного ключа. Так что нажмите кнопку «Да» для продолжения.



Однако вы должны не путать такие сообщения с предупреждениями наподобие этого:



Которое гласит о том, что ранее сохраненный ключ на вашем ПК не совпадает с ключом на сервере. Возможно, тут имеет место перехват вашего соединения. В таком случае лучше погодить с подключением и сперва во всем разобраться.

Итак, думаю, у вас все будет в порядке. В ответ откроется окно терминала с предложением ввести свой логин, затем пароль. Вводите. С клавиатуры. Про буфер обмена лучше сразу забыть :). В случае удачного входа в систему вы получите соответствующее уведомление и курсор в командной строке. Ура!

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

По сути, вы сейчас можете делать с системой все то же, если бы ваша клавиатура с мышкой и монитор были подключены к серверу, с которым вы соединились! Для начала рассмотрим основные команды. Начнем, конечно же, с навигации по файловой системе.

Команда cd (Change the Directory) понадобится нам для смены текущей директории. Текущая директория — это та директория, в которой вы на данный момент находитесь. В зависимости от настроек вашего сервера, она в той или иной мере будет отображаться в командной строке.

Данная команда имеет несколько параметров, которые должны следовать за ней:

cd .. — перейти в каталог на уровень выше текущего (т.е. в тот, в котором находится текущий);
cd ~ — перейти в домашний каталог (в него вы попадается при входе на сервер, зависит от настроек сервера);
cd - — действие аналогично кнопке «назад» в браузере (т.е. вы перемещаетесь в ту директорию, из которой только что перешли);
cd / — перейти в «корень» (каталог высшего уровня, по аналогии в Windows это было бы то же самое что открыть, например, диск C:);
cd имя_папки — перейти в указанную папку (расположенную в текущей директории).

Разумеется, команды можно комбинировать, например:

cd /home/clients — переход в папку "clients", которая расположена в корневой папке "home" (именно корневой, а не папки текущего каталога, т.к. начинается с корневого слеша, если писать cd home/clients — это будет команда перехода в папке "clients", расположенную в паке "home" текущего, а не корневого каталога! корневой переход удобен тем, что можно быстро перейти в любую папку все зависимости от вашего текущего положения);

cd ../../log — переход в папку "log", которая расположена в некой папке на два уровня выше (к примеру, если вы сейчас находитель тут: /home/clients/2009/current/opt, то такая команда приведет к переходу в папку /home/clients/2009/log, если таковая существует, конечно же).

Вроде бы разобрались, да? Поначалу немного привыкнуть надо, ничего сложного. Но чтоб перемещаться по папкам, нам необходимо знать их названия, не так ли?

Для этого есть своя команда — ls (LiSt the directory? :)). Просто наберите ls, нажмите Enter и получите список файлов и директорий в текущей папке. У данной команды тоже есть множество различных команд, но рассмотрим мы их уже со временем. Ну разве что попробуйте сейчас набрать ls -l, параметр -l (строчная "L", а не единица, и именно строчная! в Unix, в отличие от Windows, рЕгИсТр символов имеет принципиальное значение, "a" и "A" — разные символы, "Dir", и "dir", и "DIR", и "diR" и т.д. — разные директории, или имена файлов, или команды...) показывает расширенную информацию (такую, как права доступа, группу, владельца, размер, дату модификации) о папках и файлах в текущей директории.

Кстати, в Unix можно замечательнейшим образом комбинировать различные команды. Попробуйте набрать ls -l cd / и вы получите расширенный листинг информации по корневым папкам и файлам, где бы вы в настоящий момент не находились.

Ну вот и все, для начала хватит, тренируйтесь. Для затравки лишь скажу, как быстро можно перекинуть файлы с одного сервера на другой. В этом нам могут помочь различные Unix команды и программы. Для начала проще всего использовать команду wget. Алгоритм действий таков: подключаемся к Unix shell «старого» сервера, упаковываем файлы сайта в архив, подключаемся к «новому» серверу, набираем:

wget http://адрес.старого.сервера/имя.архива


После чего наш архив быстренько скачивается на «новый» сервер, где мы даем команду на разархивирование и все! Как быстро произойдет скачка? Это зависит от канала серверов. Если у серверов обеспеченные 100Мбит каналы, скорость будет порядка 10Мб/сек. 1Гбит каналы обеспечивают, соответственно, до 10 раз более высокую скорость. Но даже со 100Мбит каналом вы управитесь быстро — порядка 35Гб за час это скорость приличная. Уж точно в разы быстрее в сравнении с тем, сколько бы у вас ушло времени на то, чтобы скачать файлы себе на компьютер со «старого» сервера, после чего залить их на «новый».

Для завершения вашей shell-сессии используйте команду exit.

О командах архивации / разархивации, параметрах команды wget и некоторых других вкусностях мы поговорим в следующий раз. До связи!

© http://www.ru-coding.com/
Условия использования материалов сайта.
  Счетчики и ссылки

Rambler's Top100


  На правах рекламы
Copyright © 2005-2012 Ru-Coding.com - все о программировании.