Подписка на обновления блога, RSS на e-mail
Мой Twitter
Я в Facebook
Мой ЖЖ
Мой FriendFeed
Я в Google+
 
  Как создать сайт самомуБлог преподавателя ВЕБ дизайна
msgbartop
  
Блог > ВЕБ мастеру > Как работать в Unix Shell
msgbarbottom

Как работать в Unix Shell

14 Фев 10 | Рубрика: ВЕБ мастеру

Как работать в Unix ShellМногие операции с вашими файлами и на хостинге можно гораздо быстрее и эффективнее делать с помощью командной строки 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“. Вышестоящая папка называется “../“.

Теперь к практике

PuTTY

PuTTY

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

приглашение сервера к работе по SSH

приглашение сервера к работе по SSH

В открывшемся окне в поле “Host Name (or IP address)” вводим имя сервера, оставляем порт 22 и жмем кнопку “Open”.  Если все правильно, открывается черное окно терминала. У вас спрашивают логин - вводим и жмем “ввод”. Следующая строка - ввод пароля. Внимательно введите пароль и нажмите “ввод”. Во время ввода пароля на экране не будут отображаться никакие символы.

Если все прошло нормально, то терминал отобразит сообщение типа какая ОС приглашает вас и т.д. и внизу появится долгожданное приглашение на ввод команд. Выглядит это так:

Начинаем изучать команды Unix Shell

 

Команды просмотра списка файлов и директорий

команда pwd

команда pwd

pwd - используется для информирования вас о вашем текущем местонахождении. Чтобы воспользоваться командой pwd, просто наберите её и нажмите “ввод”.

ls - листинг директории (посмотреть какие файлы есть в папке).

ls - листинг директории

ls - листинг директории

ls -l - упорядоченный листинг,

ls -l - упорядоченный листинг

ls -l - упорядоченный листинг

ls -la - выводит самый подробный листинг
ls -la - выводит самый подробный листинг

ls -la - выводит самый подробный листинг

ls -la или (ls -l -a) - показать все файлы, включая скрытые (начинаются на точку). Синонимы директорий вы видите вверху списка, в нём:

  1. Знак - “.”  (точка) - текущая директория,
  2. Знак - “..” (две точки) - вышестоящая (родительская) директория.

Команды перехода по директориям

cd joomlaclass.spb.ru - перейти в папку

cd - перейти в папку

cd - перейти в папку

joomlaclass.spb.ru (cd = change directory, сменить директорию), если она есть в вашей домашней директории. cd .. - переместиться на уровень вверх.

cd ~ - в домашнюю директорию.

Удаление файлов и директорий

rm - удалить.
rm * - удалить все файлы, на которые у вас есть права на запись. Папку таким образом удалить нельзя. Кстати * = ./*
rm -R ./* - удалить все файлы и папки (и файлы в папках любой вложенности) в текущей директории. В такой ситуации скорее всего вас будут каждый раз спрашивать удалить файл или нет. Чтобы убрать вопросы, пишем
rm -R -f ./* или rm -Rf ./* - теперь команда снесет все содержимое текущей папки без разговоров.

Кстати, скрытые файлы (такие, которые начинаются с точки) таким образом удалить нельзя. Для их удаления придется набирать rm .имя_файла (пример: rm .htaccess)

Удаление директории

Удалить НЕ пустой каталог вам просто так не удастся, вначале нужно удалить всё, что в нём. А когда каталог пуст, удаляем его командой:

rmdir имя_каталога

rmdir - как удалить каталог

rmdir - как удалить каталог

Пример удаления каталога vasya

Создание директории

mkdir имя_директории - будет создана директория с указанным именем, например:

mkdir - команда создания каталога

mkdir - команда создания каталога

результат выполнения команды mkdir

результат выполнения команды mkdir

Распаковка архивов

tar -xzf archive.tar.gz - для архива в текущей папке.
unzip archive.zip - для zip архивов.
unrar archive.rar - для rar архивов.

Упаковка в tgz программой Total Commander

Упаковка в tgz программой Total Commander

Кстати, архив с расширением .tar.gz (или .tgz) - это специфический UNIX-овый формат, может быть создан из под Windows в Total Commander.
Выделите все файлы для упаковки на одной панели, нажмите Alt + F5 - и укажите тип архива TGZ. Упаковка произойдет в папку на соседней панели.

TGZ - имеет один из самых эффективных алгоритмов сжатия (лучше, чем ZIP)

Упаковываем в архив

tar -czf archive.tar.gz 'www' - упаковываем содержимое каталога www в один архив - archive.tar.gz

как упаковать в TGZ архив весь каталог

как упаковать в TGZ архив весь каталог

Можно также войти в корневой каталог вашего сайта на 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 для начинающих ВЕБ мастеров

2leep.com
Оказалось полезным? Покажите друзьям:
  • Facebook
  • Twitter
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • Яндекс.Закладки
  • LiveJournal
  • В закладки Google
  • Google Buzz
  • Add to favorites
  • МоёМесто.ru
  • FriendFeed
  • БобрДобр
  • Одноклассники
Понравился пост? Подпишись на мою RSS ленту и ты не пропустишь новые! Пользуешься Твиттером? Следуй за мной!

Ещё по теме...

Метки: , , , | Рубрика: ВЕБ мастеру



Комментарии читателей

  1. | Цитировать

    Добавил в закладки, спасибо, то вечно забываю какую-то команду и трачу кучу времени на поиск описания.. но у вас все так доступно и классно расписано, короче респект!
    Кстате wget думаю тоже многим будет полезна..
    команда wget дает возможность скачать к примеру архив со скриптом прямо на хостинг и там уже его распаковать.
    Пример: wget http://ftp.drupal.org/files/projects/drupal-6.13.tar.gz скачает вам на хостинг архив с движком друпал.. скачает в ту папку в которую вы перешли с помощью команды cd. Потом остается просто распаковать как это сделать писалось в статье.

  2. | Цитировать

    Спасибо за очень полезный коммент, добавлю эту команду в статью. Респект

  3. | Цитировать

    Хорошая статья, узнал несколько полезных ключей к командам



Оставьте свой комментарий