Многие операции с вашими файлами и на хостинге можно гораздо быстрее и эффективнее делать с помощью командной строки Unix. Так, если вы копировали файлы CMS Joomla или WordPress на хостинг по FTP, вы отметили как это долго. Оно и понятно — ведь большинство FTP клиентов позволяет копировать файлы только по одному. И после каждого копирования ещё происходит отправка — получение служебных команд, что снова увеличивает время выгрузки. Для самой быстрой и эффективной работы с вашими данными на хостинге, служит Unix Shell, с которым вы будете работать по протоколу SSH. Как работать в Unix Shell — в этой статье для начинающих ВЕБ мастеров
Что такое SSH?
Протокол Secure Shell (SSH) был разработан для того, чтобы обойти ограничения и недостатки открытых каналов связи (таких как Интернет). SSH обеспечивает шифрование всего канала связи, включая удостоверяющий пользователей обмен логинами и паролями.
Что такое Unix Shell?
Unix Shell — это командная строка Unix, или особый скриптовый язык программирования (язык команд интерпретатора). С помощью него можно очень эффективно копировать, перемещать, удалять, упаковывать в архив и т.д. На практике вам стоит освоить всего около десятка команд и несколько «ключей» к ним. Перед тем, как начать пользоваться командной строкой, стоит рассказать о файловой системе Unix.
Файловая система
Корень всей файловой системы обозначается так: / (произносится — «слэш»). В корневой директории находятся папки /bin (бинарники), /tmp, /dev, /home, /root (админ), /usr и другие. Обычно на виртуальных хостингах ваша сфера влияния будет ограничена папкой /home/clients/petya (на хостинге .masterhost, у вас будет что-то вроде /home/u163335/ , где u163335 — ваш логин в системе ). Это значит, что вы, как рядовой юзер, можете записывать файлы в папку /home/clients/petya/ и поддиректории этой папки.
Права — это разрешение на чтение/запись/выполнение для конкретного статуса (ваш статус — юзер, которому отдали папку /home/сlients/petya/). Кроме отдельного пользователя в иерархии Unix существуют группы пользователей и root — админ, тот кто может снести всю систему одной командой. Его права не ограничены. Соответственно ни один клиент хостинга никогда не получит этих прав, так, на всякий случай 🙂
Домашняя папка на языке shell обозначается так: “~“, текущая директория — “./“. Поэтому папка /home/clients/petya/domains эквивалентно ~/domains, а если в данный момент вы находитесь в своей домашней директории, тогда можно написать “./domains“. Вышестоящая папка называется “../“.
Теперь к практике

Качайте себе клиент для SSH — протокола, программу PuTTY и запускайте (инсталлировать не нужно).

В открывшемся окне в поле “Host Name (or IP address)” вводим имя сервера, оставляем порт 22 и жмем кнопку “Open”. Если все правильно, открывается черное окно терминала. У вас спрашивают логин — вводим и жмем “ввод”. Следующая строка — ввод пароля. Внимательно введите пароль и нажмите “ввод”. Во время ввода пароля на экране не будут отображаться никакие символы.
Если все прошло нормально, то терминал отобразит сообщение типа какая ОС приглашает вас и т.д. и внизу появится долгожданное приглашение на ввод команд. Выглядит это так:
Начинаем изучать команды Unix Shell
Команды просмотра списка файлов и директорий
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. Я же приведу примеры работы с chmod в условиях хостинга:
- chmod 755 script.pl — изменить режим доступа к файлу script.pl на 755 (это нужный для скриптов режим доступа);
- chmod -R 755 cgi-bin/*.pl — изменить режим доступа на 755 для всех файлов с расширением *.pl в каталоге cgi-bin и во всех его подкаталогах;
- chmod 000 www/file.html — изменить режим доступа к файлу file.html в каталоге www на 000 (нули). При таком режиме доступа, его никто не сможет открыть. Так можно быстро запретить доступ через веб к какому-то файлу.
В заключение скажу, что в в Unix очень много разных команд. Например в ОС FreeBSD их порядка 650. Однако здесь, я постарался описать только те команды, которые могут быть полезны в тех ограниченных условиях, которые доступны при работе со стандартным хостингом. Думаю, что вы легко овладеете ими, и почувствуете себя немного «хакерами». Успехов.
Мои видеоуроки по Unix Shell для начинающих ВЕБ мастеров
Добавил в закладки, спасибо, то вечно забываю какую-то команду и трачу кучу времени на поиск описания.. но у вас все так доступно и классно расписано, короче респект!
Кстате wget думаю тоже многим будет полезна..
команда wget дает возможность скачать к примеру архив со скриптом прямо на хостинг и там уже его распаковать.
Пример: wget http://ftp.drupal.org/files/projects/drupal-6.13.tar.gz скачает вам на хостинг архив с движком друпал.. скачает в ту папку в которую вы перешли с помощью команды cd. Потом остается просто распаковать как это сделать писалось в статье.
Спасибо за очень полезный коммент, добавлю эту команду в статью. Респект
Хорошая статья, узнал несколько полезных ключей к командам