Pull to refresh

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

Development for Linux *Development for Windows *
image

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

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

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

Development for Linux *Development for Windows *


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

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

3-месячный курс по Python

Southbridge corporate blog

Рутинная работа уходит в прошлое: сегодня всем — тестировщикам, девопсам, сисадминам — нужны навыки автоматизации рабочих процессов. И знание Python может отлично в этом помочь.

Читать далее
Total votes 9: ↑8 and ↓1 +7
Views 1.3K
Comments 0

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

Configuring 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; На каждую ушла бы, наверное, минута. То есть это полчаса непрерывной работы.
Total votes 46: ↑41 and ↓5 +36
Views 1.8K
Comments 97

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

Lumber room
Те, кто частенько соединяется с удаленными серверами по 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-го параметра, то есть вызов удаленной команды, не всегда срабатывает. Вот собственно и все.
Total votes 8: ↑5 and ↓3 +2
Views 2.1K
Comments 8

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

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

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

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

За работу!
Total votes 28: ↑17 and ↓11 +6
Views 5.1K
Comments 27

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

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

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

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

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

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

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

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

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

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

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

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

Configuring Linux *
Translation

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


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

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

HTTP сервер на bash

Abnormal programming *
Вполне себе полноценный 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.
Total votes 188: ↑168.5 and ↓19.5 +149
Views 14K
Comments 77

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

Configuring Linux *
Здравствуйте.

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

Я написал небольшой скриптик, который пингует яндекс, и на основании этого меняет скорость закачки:
Читать дальше →
Total votes 44: ↑37 and ↓7 +30
Views 1.6K
Comments 66

time management и bash

Configuring 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 с картинкой
Total votes 22: ↑19 and ↓3 +16
Views 2.8K
Comments 26

zsh

Configuring Linux *
Привет!

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

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

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

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

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

Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Views 4.6K
Comments 34

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

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

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

Читать дальше →
Total votes 112: ↑107 and ↓5 +102
Views 7.4K
Comments 37

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

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

Приступим:

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

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

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


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

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

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

Кстати говоря можно подойти к проблеме немного подругому и не бекапить все базы, а каждую отдельно, плюс если в какойто из них есть ошибки то мы узнаем в какой, делается так:
Читать дальше →
Total votes 17: ↑11 and ↓6 +5
Views 1.5K
Comments 19

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

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

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

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

Поехали!
Total votes 79: ↑76 and ↓3 +73
Views 89K
Comments 25