Как стать автором
Обновить

Файлы подсистемы Linux нельзя создавать, изменять или удалять при помощи инструментов для Windows

Разработка под Linux *Разработка под Windows *
image

Весной этого года компания Microsoft начала интеграцию Linux-инструментария в свою новую ОС Windows 10. Первым шагом было включение Ubuntu и Bash инструментария в сборку 14316. Суть обновления заключалась в добавлении прослойки WSL, которая транслировала системные вызовы Linux в системные вызовы Windows, что позволяет развернуть в основном окружении Windows полноценный инструментарий Ubuntu Linux без эмуляции и виртуализации.

Вчера Microsoft опубликовала в официальном блоге запись, призывающую разработчиков не изменять, создавать или удалять файлы Linux при помощи инструментов или приложений Windows, так как это приводит к повреждению дистрибутива с необходимостью его последующей переустановки.
Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 33K
Комментарии 102

Microsoft призывает linux-разработчиков опробовать Windows 10

Разработка под Linux *Разработка под Windows *


Компания Microsoft после неудачи с мобильным сегментом и непростого перехода на Windows 10 все же продолжает расширять географию собственной экспансии. Являясь разработчиком доминирующей ОС на рынке настольных ПК, технологический гигант стремится войти и в среду разработчиков не только в виде поставщика ПО, но и в качестве производителя платформы.

Так, Microsoft активно разрабатывает собственную эмуляцию среды Linux Bash WSL для того, чтобы привлечь в свою экосистему традиционных пользователей Unix-систем, которые отдают предпочтение последним в связи со своей профессиональной деятельностью. Недавно компания стала платиновым участником инициативы Linux Foundation и высказала приверженность идеями разработки ПО с открытым исходным кодом и поддержки Linux- и Open Source-сообществ.
Всего голосов 40: ↑22 и ↓18 +4
Просмотры 24K
Комментарии 271

О пользе консоли

Настройка Linux *
Ситуация. Есть папка с фотографиями, которые нужно показать на сайте кликабельными thumb'ами.
Делаем раз: for f in *.jpg ; do convert -quality 90 -resize 80 "$f" "${f%.jpg}-thumb.jpg" ; done
Делаем два: for f in *-thumb.jpg ; do echo "<a href=\"./photos/${f%-thumb.jpg}.jpg\"><img src=\"./photos/$f\" alt=\"фото\" width=\"80\" height=\"53\"></a>" ; done
Вот, собственно, и всё. Остаётся только скопировать получившиеся строки и вставить на нужную страницу. Набрать эти две команды — пара минут с учётом того, что я не очень хорошо помню синтаксис bash'а (там substitution нужно знать) и convert'а.

Мне страшно подумать, сколько бы это заняло времени, если делать руками. Фотографий 32; На каждую ушла бы, наверное, минута. То есть это полчаса непрерывной работы.
Всего голосов 46: ↑41 и ↓5 +36
Просмотры 1.7K
Комментарии 97

SSH. Запоминаем пароль.

Чулан
Те, кто частенько соединяется с удаленными серверами по ssh, знает, что если такие приложения как WinSCP (Windows), Nautilus (Gnome) или Krusader (KDE) умеют запоминать пароли, то вот с консолью дела обстоят не столь радужно. Конечно, рано или поздно, каждый находит для себя решение этой проблемы, и вот какое нашел я. Перво-наперво, нужно установить пакет expect_tcl. Далее остается лишь написать небольшой .sh скрипт, который позволит нам соединяться по ssh не вводя пароль каждый раз. Собственно, вот код:
#!/bin/bash
expect -c ” spawn ssh $1@$2 -x \”$4\” expect \”password:\”send \”$3\r\” interact “

вызывать можно например так:
$ ./ssh.sh user host password command

или сделать ярлык в меню, например так:
gnome-terminal -x /path/to/script/ssh.sh user host password command

правда есть один минус, передача 4-го параметра, то есть вызов удаленной команды, не всегда срабатывает. Вот собственно и все.
Всего голосов 8: ↑5 и ↓3 +2
Просмотры 1.3K
Комментарии 8

Подкасты и программирование

Настройка Linux *
Долго слушая подкаст «Сиськи-Письки Шоу» я понял что у меня встала работа! :-)

Подкаст был настолько увлекательным, что я не мог оторваться. И тут я решил, что неплохо бы его слушать в метро. Так, у меня есть КПК, который умеет подключаться к копьютеру как флешка.

Отсюда у меня появилось 2 задачи:
  • Закачать оставшиеся подкасты на КПК
  • Докачивать подкасты на КПК по мере выхода

За работу!
Всего голосов 28: ↑17 и ↓11 +6
Просмотры 5K
Комментарии 27

«примеры эффективного использования GNU утилит в Linux»

Настройка Linux *
Привет всему сообществу Хабра.
Это мой первый пост и, надеюсь, не последний. Поэтому неизбежны всяческие недочеты, баги и некоторая водянистость текста, так что прошу строго не судить :)
К написанию этого поста меня сподвиг топик «Консоль для новичка.» habrahabr.ru/blog/linux/46610.html, где ISVir поднял острую, на мой взгляд, тему — как доступным языком рассказать новичкам о консоли, не отпугнув их мнимой сверх-сложностью.

Не собираюсь отбирать у ISVir паритет, лишь расскажу о практическом использовании нескольких самых основных утилит «на каждый день», без которых работа в консоли для меня невозможна.

Итак, что мы имеем:

find — поиск файлов. позволяет искать файлы, каталоги, симлинки и другие файловые объекты. find Позволяет задать множество опций поиска таких как:
  • поиск по маске (в имени )
  • контроль глубины вложенности поиска
  • поиск определенных типов файлов(каталог, симлинки, сокеты)
  • поиск по времени создания/модификации файла
  • можно задать размер (от и до в диапазоне) файла
  • выполнение действий с каждым найденным файлом
в мане к find можно прочесть об остальных опциях и параметрах.

итак, с места в карьер — поиск всех файлов в каталоге /etc/, измененных за последние сутки:
Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 24K
Комментарии 55

Советы и подсказки по bash

Настройка Linux *
Перевод
Для непосвященных, bash — командная оболочка по умолчанию во многих Linux-дистрибутивах, включая Fedora, Ubuntu, Redhat и др. Используя операционную систему Linux-семейства, вы, вероятно, используете и bash. По этой причине ниже я собрал несколько часто возникающих проблем с bash и простые способы их решения.

1. Потеря истории команд

Если открыть окно терминала и ввести несколько команд, а после открыть второе окно, то история команд bash во втором окне не будет содержать команд из первого. К тому же, если закрыть первый терминал, а затем второй, то история команд из первого терминала будет перезаписана вторым. Вдвойне неприятно!

Так происходит из-за того, что история команд записывается только при закрытии терминала, а не после каждой команды. Это можно исправить.
Читать дальше →
Всего голосов 76: ↑75 и ↓1 +74
Просмотры 31K
Комментарии 23

10 трюков в командной строке, о которых вы не знали. Честное слово.

Настройка Linux *
Перевод

1. Простой способ перехватить вывод и ошибки


Хотите направить stdout и stderr в один файл?
command &> file
Может вы разбираетесь в некой программе при помощи strace, и желали бы видеть системные вызовы вместе с ошибками программы?
strace badapp &> errors_and_output

Плюсы: легко запоминается, и проще чем
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 20K
Комментарии 24

HTTP сервер на bash

Ненормальное программирование *
Вполне себе полноценный HTTP сервер, написаный на bash, одной строкой.

:;while [ $? -eq 0 ];do nc -vlp 8080 -c'(r=read;e=echo;$r a b c;z=$r;while [ ${#z} -gt 2 ];do $r z;done;f=`$e $b|sed 's/[^a-z0-9_.-]//gi'`;h="HTTP/1.0";o="$h 200 OK\r\n";c="Content";if [ -z $f ];then($e $o;ls|(while $r n;do if [ -f "$n" ]; then $e "`ls -gh $n`";fi;done););elif [ -f $f ];then $e "$o$c-Type: `file -ib $f`\n$c-Length: `stat -c%s $f`";$e;cat $f;else $e -e "$h 404 Not Found\n\n404\n";fi)';done

Автор сего извращения любопытного проекта — Alexey Sveshnikov.
Всего голосов 188: ↑168.5 и ↓19.5 +149
Просмотры 13K
Комментарии 77

Качаем файлы в бэкграунде

Настройка Linux *
Здравствуйте.

У меня на работе безлимитка, которой иногда хочется пользоваться. Например, закачивать много-много музыки, так, чтобы оставил, забыл на пару дней, вспомнил, а оно уже закачалось. Проблема в том, что безлимитка, все-таки, ограничена по скорости (30Kb/s), и если в наглую оставить закачку wget'ом, то никто этому рад не будет.

Я написал небольшой скриптик, который пингует яндекс, и на основании этого меняет скорость закачки:
Читать дальше →
Всего голосов 44: ↑37 и ↓7 +30
Просмотры 1.5K
Комментарии 66

time management и bash

Настройка Linux *
Иногда весьма мелкие мелочи дают весьма ощутимый эффект. Настолько ощутимые, что ощущения заставили установить Firefox и поделится этим с общественностью. С недавних пор начал использовать такой PS1:

PS1='\D{%H.%M} \u@\h \w\n\$ '

Или с раскраской:

PS1='\[\033[02;34m\]\D{%H.%M} \u@\h\[\033[00m\] \w\n\$ '

В итоге, мозг начинает получать информацию о том, сколько времени и на какую именно активность тратится в ходе работы. Что очень помогает (imho, даже на чисто подсознательном уровне) более эффективно распределять своё время. И, что ценно при таком подходе к делу, отслеживание времени не отвлекает от производства. В отличии от специализированных решений в виде красивого web-2.0 или очаровательного GUI, где нужно своими же руками осознанно следить за собой. Кроме того, можно сразу видеть много строчек с информацией своей активности и вести журнал сессии без проблем. Вобщем вот.

P.S. Это, кстати, одна из тех фишечек, которая возможна только в command-line интерфейсе. И непонятно, почему сторонники WIMP и CL не соберутся как-нибудь и не выберут из обоих подходов всё самое лучше, и не смешают всё в удобных пропорциях?

P.P.S. Для новичков в bash: PS1 лучше всего задавать в $HOME/.bashrc

habracut с картинкой
Всего голосов 22: ↑19 и ↓3 +16
Просмотры 2.7K
Комментарии 26

zsh

Настройка Linux *
Привет!

Поговорим о самом удобном shell-е для Linux. Знакомьтесь — это zsh. Многие пользователи Linux не променяют bash ни на что другое, но я, будучи склонным к экспериментам, не поленился и поставил zsh.
Читать дальше →
Всего голосов 72: ↑64 и ↓8 +56
Просмотры 29K
Комментарии 64

Угадывание мыслей и выполнение несуществующих команд средствами bash

Настройка Linux *
В Debian в bash был добавлен патч, благодаря которому пользователь может написать свою функцию, выполняемую в случае, если введённая пользователем команда отсутствует. В Ubuntu эту фичу использует подсказка command-not-found, заметно тормозящая работу, в то время как можно найти более интересные и полезные возможности применения этого механизма, оставив поиск пакета специализированным программам. Поделюсь своим опытом.
Читать дальше →
Всего голосов 53: ↑50 и ↓3 +47
Просмотры 1.9K
Комментарии 22

Умный экспорт из SVN с помощью консоли

Управление проектами *
Использовать svn я начал, работая в windows и соответственно в качестве клиента использовал TortoiseSVN.
В то время я был очень рад новой возможности, описанной в статье Умный экспорт из SVN при помощи TortoiseSVN.
Совсем недавно сделал то, что давно не находилось времени сделать — поставил на свой рабочий компьютер linux.
И вот незадача, ни в одном из графических клиентов, опробованных мной, не обнаружил схожей функциональности.
Мало того. Почитав svn --help не нашёл опции, дающий такой результат.
Обидно. Учитывая, что приучил уже отдел делать такие экспорты для плавного обновления проектов.
В-общем, не буду тянуть: написал на bash скрипт, реализующий сравнение и экспорт отличий между двумя ревизиями.

Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 2.7K
Комментарии 34

Происхождение названий некоторых команд Unix

*nix *
Знание истории происхождения вещей и их названий, будь то простой карандаш, автомобиль или команда операционной системы, делает их повседневное использование намного интереснее. В этой заметке я постарался разобраться в причинах странного, казалось бы, наименования некоторых программ, используемых в операционной системе Unix и её родственниках: *BSD, Solaris, HP-UX, Linux и т.д.

Перепечатка моей статьи, написанной, в свою очередь, по мотивам страницы What does {some strange unix command name} stand for?

Читать дальше →
Всего голосов 112: ↑107 и ↓5 +102
Просмотры 7K
Комментарии 37

Бекапим сервер

Чулан
Нередкая это задача, но делается довольно просто!

Приступим:

1) бэкап мускула

Для этого есть очень хорошая утилитка “mysqldump”, она входит в состав мускула. (если вы юзаете lampp то она лежит в “/opt/lampp/bin/mysqldump”)

Вобщем набиваем в консоли примерно следующее:
mysqldump –all-databases > /mysql.12.12.2008.dump


эта команда забекапит все базы данных в файл “mysql.12.12.2008.dump” в корне! на самом деле пишем любой удобный путь! Если вы не рут то нужно указать логин/пароль с помощю –user логин –password пароль

Приготовьтесь, это может занять серьёзное количество времени если бд приличного размера.

Фишка может не работать, если в какой-нибудь из бд есть ошибки…

Кстати говоря можно подойти к проблеме немного подругому и не бекапить все базы, а каждую отдельно, плюс если в какойто из них есть ошибки то мы узнаем в какой, делается так:
Читать дальше →
Всего голосов 17: ↑11 и ↓6 +5
Просмотры 848
Комментарии 19

bash-скрипт для скачивания «новых»

Чулан
Позволяет делать снимки статей с комментариями в PDF или сохранять HTML вместе со стилями, скриптами и картинками.

pastie.org GitHub

UPD (11.02.2008): Перенёс скрипт на GitHub.
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 674
Комментарии 5

Частые ошибки программирования на Bash

Оболочки *
Перевод
Качество скриптов, используемых для автоматизации и оптимизации работы системы, является залогом ее стабильности и долголетия, а также сохраняет время и нервы администратора этой системы. Несмотря на кажущуюся примитивность bash как языка программирования, он полон подводных камней и хитрых течений, способных значительно подпортить настроение как разработчику, так и администратору.

Большинство имеющихся руководств посвящено тому, как надо писать. Я же расскажу о том, как писать НЕ надо :-)

Данный текст является вольным переводом вики-страницы «Bash pitfalls» по состоянию на 13 декабря 2008 года. В силу викиобразности исходника, этот перевод может отличаться от оригинала. Поскольку объем текста слишком велик для публикации целиком, он будет публиковаться частями.

Поехали!
Всего голосов 79: ↑76 и ↓3 +73
Просмотры 88K
Комментарии 25

Как заюзать буфер обмена из bash?

Чулан
Доброго всем времени суток!

Не так давно начал познавать все прелести программирования на bash. Пишу скрипты для автоматизации рутинных действий, возникающих в процессе работы (программист на Си под никсы я). Вроде получается =)
Так вот, возникла необходимость заюзать из баш буфер обмена(используя лишь средства баш и стандартные утилиты Solaris). Т.е. скопировать значение некой переменной в этот самый буфер. «xsel» и «xclip» нет.
Специфика такова, что вся работа происходит на удалённой тачке заказчика, в сетке которого даже нет интернета. Соответственно никакого софта ставить я не могу.
Подскажите, как это сделать(если такое вообще возможно)?
Гугление не дало результатов.

P.S. надеюсь, прямой эфир хоть кто-нибудь читает.
Всего голосов 16: ↑11 и ↓5 +6
Просмотры 1.4K
Комментарии 9