Как использовать sudo в цепочных командах

Standard

Есть такая команда: cat hosts.txt >> /etc/hosts (мы хотим добавить список хостов из файла в файл hosts). Допустим нам нужны права на то, чтобы прочитать первый файл и права на запись во второй. Как быть?
Решение, следующее:
sudo sh -c 'cat hosts.txt >> /etc/hosts'

Как сделать редирект с www без www для любого домена

Standard

Часто, надо делать редирект с www без www, внизу универсальное решение.
Минимум редактирования.

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Кидайте их в .htaccess предварительно задав директиве RewriteEngine значение On, ну и конечно же убедившись в подключенном модуле Rewrite.
Теперь сайт www.example.com будет редиректить на example.com

SSH tips and tricks

Standard

Я уже говорил как подключаться по ssh, чтобы быстрее работать. Теперь дам пару советов, как использовать ssh на полную:

Если при подключении возникают, какие-то проблемы — используйте ключ -v (verbose) для debug сообщений ssh.

Escape символ ssh — «~», позволяет исполнять команды на локальной машине, не отключаясь от удаленного хоста, чтобы сделать это нажмите ~^Z (ctrl + Z).  Правда я в таких случаях обычно открываю новый терминал, но работать в одном терминале обычно получается быстрей. Когда вы захотите вернуться выполните команду jobs, она покажет список остановленных процессов с идентификаторами, нажмите fg %1 и ssh, снова будет работать.

Чтобы посмотреть статистику сессии выполните ~s (сочетание не будет отображено на экране), работает только на ssh второй версии.

Теперь быстрые tips & tricks:

  1. Вывод вашего микрофона на колонки удаленного компьютера: dd if=/dev/dsp | ssh -c arcfour -C [email protected] dd of=/dev/dsp Правда звук будет очень плохой.
  2. Сравнить удаленный и локальный файлы ssh [email protected] cat /path/to/remotefile | diff /path/to/localfile
  3. Можно примонтировать «удаленную файловую систему» sshfs [email protected]:/path/to/folder /path/to/mount/point
  4. Использовать удаленный компьютер, как прокси для подключения к другому компьютеру по ssh: ssh -t first_host ssh second_host
  5. Скопировать файл с удаленного компа на другой удаленный комп, используя свой как прокси: ssh host1 «cd /fromfile && tar -cf -.» | ssh host2 «cd /tofile && tar -xf -»
  6. Запустить любую GUI программу удаленно: ssh -fX host program
  7. Создать постоянное ssh подключение к машине: ssh -MNf host. Это нужно, в случае частых подключений к удаленному хосту, например при синхронизации файлов (rsync/sftp/svn/git) на постоянной основе, тк компьютеры не будут открывать новый сокет каждый раз, соответственно времени на подключение уходить не будет.
  8. Удалить ключ из файла: ssh-keygen -R bad_host

Как установить Linux на виртуальную машину

Бесплатная пробная версия
Standard

Сегодня расскажу как делается установка linux на виртуальную машину (VMWare). Статья ориентированна на новичков, людей кто пользуется денвером — призываю использовать что-то помощнее. Уже год или два, как не слежу за релизами, но в любом случае денвер и винда — свяжут вам руки, xamp еще более — менее, но все равно пхпшники (или рубисты, питонисты :) ), поверьте! На linux из коробки уже есть утилиты экономящие кучу времени и нервов. Для изучения линукса достаточно недели. Если у вас есть вопрос — оставляйте комментарий, с радостью отвечу.

(Картинки кликабельны)

Виртуальные машины Linux

Мои виртуалки:

 

 

 

 

 

 

 

Плюсы виртуальной машины:

  1. Формат виртуальной машины для одного вендора де-факто кроссплатформенный, удобно когда работаешь на mac  и windows, да и если ос часто переустанавливается.
  2. Для новичков, это самое оно. Если накосячите — ничего страшного, можно вернуть виртуальную машину в исходное состояние (я так linux`у учился, да и windows 8 Preview Release можно попробовать)
  3. Для PHP или любого другого языка, намного проще установить расширения. К примеру, для парсинга сайта часто необходим php-curl, на линуксе установка займет меньше минуты, для винды — боюсь даже представить сколько.

Вот шаги для начинающих:

1) Скачиваем VMWare Fusion и устанавливаем

Установка VMWare Fusion

 

 

 

 

 

 

2) Скачиваем нужную ОС ( для примера — Debian ):

Скачиваем Debian для нужной архитектуры Выберите по ссылке архитектуру к-ая вам нужна (i386 или amd64) . По ссылке откроется список торрент-файлов. Скачиваем самый первый диск ссылка для amd64.

 

 

 

 

Выбираем из списка CD-1

 

 

 

 

 

 

3) Выбираем Create New

Список виртуальных машин в VMWare Fusion

 

 

 

 

 

 

 

 

4) На первом шаге идем дальше, на втором выбираем установить с помощью образа, к-ый мы скачали:

Установка образа Debian

 

 

 

 

 

 

 

5) Дальше next, спросят как хотим назвать файл с образом вируалки, затем finish: Сохранение виртуальной машины

 

 

 

 

 

 

 

6) Дальше наша операционка появилась в списке:

Установленная ОС уже в списке

 

 

 

 

 

 

 

 

шелкаем мышкой.

7) Выбираем install

Начальный экран установки Debian

 

 

 

 

 

 

 

 

 

8) Выбираем язык, страну, клавиатуру

9) На этом шаге нас просят задать hostname для ос — я оставляю как есть. Для следущего окна — просят указать domain, аналогично — оставляем по умолчанию и жмем Enter.

Выбор hostname

 

 

 

 

 

 

 

 

10) Root password — пароль суперпользователя, вводим 2 раза

11) Имя пользователя, затем логин, пароль

12) Выбираем timezone

13) Разметка — для новичков, лучше выбрать 1 — ый вариант

                               

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14) На вопрос «нужно ли просканировать другие инсталяционные диски» — отвечаем «нет»:

 

 

 

 

 

 

 

 

15) Use a network mirror — no, чтобы быстрее

16) Следущий вопрос — участвовать ли в анонимной статистике использования пакетов  - no

17) Выбираем пробелом самые важные установочные

18) Выбираем пробелом нужные инсталяционные пакеты, как на скриншоте:

 

 

 

 

 

 

 

 

19) Установить ли загрузчик в главную запись — да:

 

 

 

 

 

 

 

 

20) Установка завершена, предупреждают вынуть диск — на vmware fusion не надо ничего делать:

 

 

 

 

 

 

 

 

21) После перезагрузки окно входа:

 

 

 

 

 

 

 

 

PS. Так уж вышло что моему mac`у тяжело и виртуалку содержать и IDE всем обеспечивать, поэтому часто на настольном ПК включаю IDE, а виртуалка с сайтами ютится на маке. Чтобы с другого компьютера можно было заходить на сервер, в настройках виртуальной машины надо поменять

 

 

 

 

 

 

 

 

Выбираем подключиться напрямую к сети, если у вас есть роутер — сделайте резервацию IP — адреса для виртуалки.

Осталось только прописать ip адрес в файл хостов.

Например, на mac это /private/etc/hosts (нужны права sudo), на window 7 - C:\Windows\System32\drivers\etc.

 

 

 

 

 

 

P.P.S. Не по теме, но все же — на маке очень удобные программы для блоггера.