Есть такая команда: cat hosts.txt >> /etc/hosts (мы хотим добавить список хостов из файла в файл hosts). Допустим нам нужны права на то, чтобы прочитать первый файл и права на запись во второй. Как быть?
Решение, следующее:
sudo sh -c 'cat hosts.txt >> /etc/hosts'
Linux
Как сделать редирект с 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:
- Вывод вашего микрофона на колонки удаленного компьютера: dd if=/dev/dsp | ssh -c arcfour -C [email protected] dd of=/dev/dsp Правда звук будет очень плохой.
- Сравнить удаленный и локальный файлы ssh [email protected] cat /path/to/remotefile | diff /path/to/localfile
- Можно примонтировать «удаленную файловую систему» sshfs [email protected]:/path/to/folder /path/to/mount/point
- Использовать удаленный компьютер, как прокси для подключения к другому компьютеру по ssh: ssh -t first_host ssh second_host
- Скопировать файл с удаленного компа на другой удаленный комп, используя свой как прокси: ssh host1 «cd /fromfile && tar -cf -.» | ssh host2 «cd /tofile && tar -xf -»
- Запустить любую GUI программу удаленно: ssh -fX host program
- Создать постоянное ssh подключение к машине: ssh -MNf host. Это нужно, в случае частых подключений к удаленному хосту, например при синхронизации файлов (rsync/sftp/svn/git) на постоянной основе, тк компьютеры не будут открывать новый сокет каждый раз, соответственно времени на подключение уходить не будет.
- Удалить ключ из файла: ssh-keygen -R bad_host
Как установить Linux на виртуальную машину
StandardСегодня расскажу как делается установка linux на виртуальную машину (VMWare). Статья ориентированна на новичков, людей кто пользуется денвером — призываю использовать что-то помощнее. Уже год или два, как не слежу за релизами, но в любом случае денвер и винда — свяжут вам руки, xamp еще более — менее, но все равно пхпшники (или рубисты, питонисты ), поверьте! На linux из коробки уже есть утилиты экономящие кучу времени и нервов. Для изучения линукса достаточно недели. Если у вас есть вопрос — оставляйте комментарий, с радостью отвечу.
(Картинки кликабельны)
Мои виртуалки:
Плюсы виртуальной машины:
- Формат виртуальной машины для одного вендора де-факто кроссплатформенный, удобно когда работаешь на mac и windows, да и если ос часто переустанавливается.
- Для новичков, это самое оно. Если накосячите — ничего страшного, можно вернуть виртуальную машину в исходное состояние (я так linux`у учился, да и windows 8 Preview Release можно попробовать)
- Для PHP или любого другого языка, намного проще установить расширения. К примеру, для парсинга сайта часто необходим php-curl, на линуксе установка займет меньше минуты, для винды — боюсь даже представить сколько.
Вот шаги для начинающих:
1) Скачиваем VMWare Fusion и устанавливаем
2) Скачиваем нужную ОС ( для примера — Debian ):
Выберите по ссылке архитектуру к-ая вам нужна (i386 или amd64) . По ссылке откроется список торрент-файлов. Скачиваем самый первый диск ссылка для amd64.
3) Выбираем Create New
4) На первом шаге идем дальше, на втором выбираем установить с помощью образа, к-ый мы скачали:
5) Дальше next, спросят как хотим назвать файл с образом вируалки, затем finish:
6) Дальше наша операционка появилась в списке:
шелкаем мышкой.
7) Выбираем install
8) Выбираем язык, страну, клавиатуру
9) На этом шаге нас просят задать hostname для ос — я оставляю как есть. Для следущего окна — просят указать domain, аналогично — оставляем по умолчанию и жмем Enter.
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. Не по теме, но все же — на маке очень удобные программы для блоггера.