Многие операции с вашими файлами и на хостинге можно гораздо быстрее и эффективнее делать с помощью командной строки Unix. Так, если вы копировали файлы CMS Joomla или WordPress на хостинг по FTP, вы отметили как это долго. Оно и понятно - ведь большинство FTP клиентов позволяет копировать файлы только по одному. И после каждого копирования ещё происходит отправка - получение служебных команд, что снова увеличивает время выгрузки. Для самой быстрой и эффективной работы с вашими данными на хостинге, служит Unix Shell, с которым вы будете работать по протоколу SSH. Как работать в Unix Shell - в этой статье для начинающих ВЕБ мастеров
Протокол Secure Shell (SSH) был разработан для того, чтобы обойти ограничения и недостатки открытых каналов связи (таких как Интернет). SSH обеспечивает шифрование всего канала связи, включая удостоверяющий пользователей обмен логинами и паролями.
Unix Shell - это командная строка Unix, или особый скриптовый язык программирования (язык команд интерпретатора). С помощью него можно очень эффективно копировать, перемещать, удалять, упаковывать в архив и т.д. На практике вам стоит освоить всего около десятка команд и несколько "ключей" к ним. Перед тем, как начать пользоваться командной строкой, стоит рассказать о файловой системе Unix.
Корень всей файловой системы обозначается так: / (произносится - "слэш"). В корневой директории находятся папки /bin (бинарники), /tmp, /dev, /home, /root (админ), /usr и другие. Обычно на виртуальных хостингах ваша сфера влияния будет ограничена папкой /home/clients/petya (на хостинге , у вас будет что-то вроде /home/u163335/ , где u163335 - ваш логин в системе ). Это значит, что вы, как рядовой юзер, можете записывать файлы в папку /home/clients/petya/ и поддиректории этой папки.
Права - это разрешение на чтение/запись/выполнение для конкретного статуса (ваш статус - юзер, которому отдали папку /home/сlients/petya/). Кроме отдельного пользователя в иерархии Unix существуют группы пользователей и root - админ, тот кто может снести всю систему одной командой. Его права не ограничены. Соответственно ни один клиент хостинга никогда не получит этих прав, так, на всякий случай
Домашняя папка на языке shell обозначается так: “~“, текущая директория - “./“. Поэтому папка /home/clients/petya/domains эквивалентно ~/domains, а если в данный момент вы находитесь в своей домашней директории, тогда можно написать “./domains“. Вышестоящая папка называется “../“.
Теперь к практике
Качайте себе клиент для SSH - протокола, программу и запускайте (инсталлировать не нужно).
В открывшемся окне в поле “Host Name (or IP address)” вводим имя сервера, оставляем порт 22 и жмем кнопку “Open”. Если все правильно, открывается черное окно терминала. У вас спрашивают логин - вводим и жмем “ввод”. Следующая строка - ввод пароля. Внимательно введите пароль и нажмите “ввод”. Во время ввода пароля на экране не будут отображаться никакие символы.
Если все прошло нормально, то терминал отобразит сообщение типа какая ОС приглашает вас и т.д. и внизу появится долгожданное приглашение на ввод команд. Выглядит это так:
Команды просмотра списка файлов и директорий
pwd - используется для информирования вас о вашем текущем местонахождении. Чтобы воспользоваться командой pwd, просто наберите её и нажмите “ввод”.
ls - листинг директории (посмотреть какие файлы есть в папке).
ls -l - упорядоченный листинг,
ls -la или (ls -l -a) - показать все файлы, включая скрытые (начинаются на точку). Синонимы директорий вы видите вверху списка, в нём:
cd joomlaclass.spb.ru - перейти в папку
joomlaclass.spb.ru (cd = change directory, сменить директорию), если она есть в вашей домашней директории. cd .. - переместиться на уровень вверх.
cd ~ - в домашнюю директорию.
rm - удалить.
rm * - удалить все файлы, на которые у вас есть права на запись. Папку таким образом удалить нельзя. Кстати * = ./*
rm -R ./* - удалить все файлы и папки (и файлы в папках любой вложенности) в текущей директории. В такой ситуации скорее всего вас будут каждый раз спрашивать удалить файл или нет. Чтобы убрать вопросы, пишем
rm -R -f ./* или rm -Rf ./* - теперь команда снесет все содержимое текущей папки без разговоров.
Кстати, скрытые файлы (такие, которые начинаются с точки) таким образом удалить нельзя. Для их удаления придется набирать rm .имя_файла (пример: rm .htaccess)
Удалить НЕ пустой каталог вам просто так не удастся, вначале нужно удалить всё, что в нём. А когда каталог пуст, удаляем его командой:
rmdir имя_каталога
Пример удаления каталога vasya
mkdir имя_директории - будет создана директория с указанным именем, например:
tar -xzf archive.tar.gz - для архива в текущей папке.
unzip archive.zip - для zip архивов.
unrar archive.rar - для rar архивов.
Кстати, архив с расширением .tar.gz (или .tgz) - это специфический UNIX-овый формат, может быть создан из под Windows в Total Commander.
Выделите все файлы для упаковки на одной панели, нажмите Alt + F5 - и укажите тип архива TGZ. Упаковка произойдет в папку на соседней панели.
TGZ - имеет один из самых эффективных алгоритмов сжатия (лучше, чем ZIP)
tar -czf archive.tar.gz 'www' - упаковываем содержимое каталога www в один архив - archive.tar.gz
Можно также войти в корневой каталог вашего сайта на CMS (Joomla или WordPress), и упаковать все файлы в один архив (файл - arch.tgz):
tar -czf arch.tgz ./* - (означает "упаковать в файл arch.tgz все файлы данного каталога")
Например, нужно скопировать все файлы из каталога old в каталог new
cp -r old/* new/ — копируем все файлы и подкаталоги из каталога old в каталог new
Если стоит задача скопировать не все файлы, а только с расширением .html - набираем команду:
cp old/*.html new/ — копируем все файлы с расширением *.html из каталога old в каталог new
mv old/* new/ — перемещаем (копируем и удаляем на старом месте) все содержимое каталога old в каталог new
Команда wget дает возможность скачать файл или каталог с другого сайта.
К примеру, можно скачать архив со скриптом прямо на хостинг, и там уже его распаковать.
Пример:
wget http://ftp.drupal.org/files/projects/drupal-6.13.tar.gz
скачает вам на хостинг архив с движком Друпал. Загрузка будет в ту папку, в которую вы перешли с помощью команды cd. Остается только распаковать архив, как это было описано выше.
Команда chmod — изменение режима доступа к файлам.
Иногда требуется вручную изменить режим доступа к файлам на диске Unix-сервера. Зачастую это нужно при размещении на сервере CGI-скриптов. Подробно о работе chmod и режимах доступа можно прочитать в . Я же приведу примеры работы с chmod в условиях хостинга:
В заключение скажу, что в в Unix очень много разных команд. Например в ОС FreeBSD их порядка 650. Однако здесь, я постарался описать только те команды, которые могут быть полезны в тех ограниченных условиях, которые доступны при работе со стандартным хостингом. Думаю, что вы легко овладеете ими, и почувствуете себя немного "хакерами". Успехов.
Мои видеоуроки по Unix Shell для начинающих ВЕБ мастеров
2leep.comМетки: , PuTTY, SSH, Unix Shell | Рубрика: ВЕБ мастеру
Добавил в закладки, спасибо, то вечно забываю какую-то команду и трачу кучу времени на поиск описания.. но у вас все так доступно и классно расписано, короче респект!
Кстате wget думаю тоже многим будет полезна..
команда wget дает возможность скачать к примеру архив со скриптом прямо на хостинг и там уже его распаковать.
Пример: wget скачает вам на хостинг архив с движком друпал.. скачает в ту папку в которую вы перешли с помощью команды cd. Потом остается просто распаковать как это сделать писалось в статье.
Спасибо за очень полезный коммент, добавлю эту команду в статью. Респект
Хорошая статья, узнал несколько полезных ключей к командам