С момента выхода прошлой версии (13.37) прошло почти полтора года и наконец-то вчера (28.09.2012) вышла новая версия Slackware GNU/Linux под номером 14.0. Следует сказать, что это старейший из поддерживаемых сегодня диструбитивов, возраст которого составляет 19 лет.
Читать полностью »
Рубрика «UNIX» - 14
Релиз Slackware 14.0
2012-09-29 в 6:21, admin, рубрики: linux, release, slackware, UNIX, update, метки: linux, release, slackware, unix, updateКакая команда в консоли отнимает у вас больше всего времени?
2012-09-14 в 9:12, admin, рубрики: golang, linux, shell, UNIX, метки: golang, shell, unixУ меня — 'cd'.
Хожу по папкам часто и начал замечать, что даже автодополнение не спасает. Тогда я начал искать возможные способы упрощенной навигации в консоли.
Но должны же быть решения!
В моей любимой оболочке zsh есть такая возможность — «разворачивание» путей по нажатию <Tab>
: например, "/u/in/sy" -> "/usr/include/sys/"
В остальных оболочках можно приноровиться и использовать $CDPATH
или pushd/popd
, но лично мне это до сих пор кажется неудобным.
А еще есть пара утилиток для ускоренной навигации. Самая известная из них, пожалуй, autojump. Она следит в каких папках пользователь проводит больше всего времени и позволяет указывать только фрагмент пути к папке. Например «incl» приведет вас в "/usr/include", если вы там часто бываете.
Autojump вдохновила другого разработчика на создание утилиты «z». «Z» использует в качестве критерия для перехода т.н. «frecency» — комбинацию частоты посещений папки (frequency) и времени последнего перехода туда (recency).
Обе утилиты хороши по-своему, и я так бы и пользовался autojump или z, однако что-то мне не давало покоя. А недавно я услышал одну фразу:
If the product is used as a tool, its interface should be as unintelligent as
possible. Stupid is predictable; predictable is learnable; learnable is usable.
И тут я понял что самое время придумать свой велосипед. Не-intelligent. Тупой и удобный.Читать полностью »
Unix как IDE: Компиляция
2012-09-12 в 18:03, admin, рубрики: GNU, IDE, linux, UNIX, ПрограммированиеПод Unix существует множество компиляторов и интерпретаторов, но здесь мы будем обсуждать лишь gcc как средство компиляции C-кода, и коротко коснемся использования perl в качестве примера интерпретатора.
GCC
GCC — это набор компиляторов, обладающий очень почтенным возрастом и распространяемый под лицензией GPL. Он известен как инструмент работы с программами на C и C++. Свободная лицензия и повсеместная распространенность на Unix-подобных системах стали залогом его неизменной популярности, хотя есть и более современные альтернативы, использующие инфраструктуру LLVM, такие как Clang.
Читать полностью »
Unix как IDE: Работа с текстом
2012-09-11 в 18:49, admin, рубрики: GNU, IDE, linux, open source, UNIX, ПрограммированиеТекстовый редактор — это основной инструмент для любого программиста, вот почему вопрос его выбора становится причиной яростных дебатов. Unix традиционно тесно связан с двумя своими многолетними фаворитами, Emacs и Vi, и их современными версиями GNU Emacs и Vim. Эти редакторы имеют очень разный подход к редактированию текста, но при этом сравнимы по мощи.
Поскольку я отношусь к секте Vim, далее мы обсудим неисчерпаемые возможности этого редактора, а также инструменты командной строки, вызываемые прямо из Vim для расширения встроенной функциональности. Некоторые из обсуждаемых дальше принципов могут быть применимы и для Emacs, но не для простых редакторов, вроде Nano.
Читать полностью »
Unix как IDE: Файлы
2012-09-07 в 13:44, admin, рубрики: GNU, IDE, linux, open source, UNIX, Программирование Одной из важных особенностей IDE является встроенная система управления файлами. Она должна включать в себя как базовые возможности, такие как переименование, удаление перемещение, так и более специфические для разработки: компиляция и проверка синтаксиса. Вдобавок было бы удобно оперировать группами файлов для поиска по размеру, расширению или по маске. В этой первой статье я покажу несколько вариантов использования инструментов, знакомых любому пользователю Linux, для работы с группами файлов в проекте.
Читать полностью »
Профессиональные программисты, как новички, так и профессионалы, нередко являются сторонниками концепции IDE, или «интегрированной среди разработки». И вправду, удобно иметь самые необходимые средства организации, написания, поддержки и тестирования кода в одном приложении с единым интерфейсом для всего многообразия инструментов. Вдобавок, среда, специально спроектированная для программирования на разных языках, как правило, имеет ряд преимуществ, таких как автодополнение, проверка и подсветка синтаксиса.
Подобные средства есть для всех распространенных настольных ОС, включая Linux и BSD, при этом многие из них совершенно бесплатны, засим вряд ли имеет смысл кодить в Блокноте Windows, в nano, или при помощи cat.
Однако, в среде поклонников Unix гуляет в разнообразных вариациях мем о том, что «Unix — это IDE», в том смысле, что средства, которыми разработчики располагают в терминале, легко реализуют основные возможности современных IDE. Вы можете соглашаться или отказываться назвать Unix «IDE» в том самом смысле, что и Eclipse или Microsoft Visual Studio. Так или иначе, вас скорее всего удивит, насколько законченную среду разработки может являть собой скромный Bash.
Читать полностью »
Как правильно скопировать файлы и папки исключая некоторые из них
2012-09-04 в 8:22, admin, рубрики: linux, UNIX, ответ, метки: unix, ответТопик написан в ответ на похожий.
Автор оригинального топика предлагает решить задачу в лоб — а именно, скопировать все файлы а потом удалить не нужные. Это может быть неплохим решением, если вам, конечно, не нужно скопировать всю домашнюю папку на флешку, за исключением вашей коллекции видео.
Но главная проблема этого подхода в другом — он не соответствует идеологии unix: сложные задачи решаются комбинацией простых утилит.
А теперь о том, как нужно делать.
Читать полностью »
Конечно же ассемблер под юникс отличается от ассемблера под доc или виндоуз. В то время как в асме под эти операциоyные системы использовался синтаксис навязанный интеллом, изобилующий разными неопределенностями (неоднозначностями, если хотите), решающимися за счет приведения типа (byte ptr, word ptr, dword ptr), в асме под никс использовался сиснтексис AT&T и SysV/386, который разрабатывался специально для устранения неоднозначности толкования команд. Конечно же существуют ассемблеры, под юникс с интелловским синтаксисом, такие как NASM, но в данной статье будет рассмотрен синтаксис ассемблеров стандартных для данной платформы.
Читать полностью »
Классный оконный менеджер — Awesome WM
2012-08-21 в 21:49, admin, рубрики: awesome, linux, UNIX, X Window System, метки: awesome, linux, unix, X Window System Здравствуйте! Прочитав недавно статью про оконные менеджеры в Linux, мне захотелось рассказать всем о менеджере, который был там упомянут — «awesome».
Это тайтлинговый windows manager для unix (linux, freebsd, openbsd, netbsd).Читать полностью »
Можно ли в UNIX обнулять (truncate) файл, в который пишет некоторый процесс?
2012-08-03 в 10:30, admin, рубрики: bash, linux, shell, truncate, UNIX, операционные системы, перенаправление, метки: bash, linux, shell, truncate, unix, перенаправлениеДовольно популярный и актуальный вопрос, который возникает, например, при чистке интенсивно растущих журналов постоянно запущенных процессов.
Ответ в двух словах
Обнулять можно, но для этого пишущий процесс должен открывать этот файл с использованием флага O_APPEND
. Ниже приводится соответствующий отрывок из open(2)
:
…
O_APPEND
The file is opened in append mode. Before eachwrite(2)
, the file offset is positioned at the end of the file, as if withlseek(2)
.O_APPEND
may lead to corrupted files on NFS file systems if more than one process appends data to a file at once. This is because NFS does not support appending to a file, so the client kernel has to simulate it, which can't be done without a race condition.
…
Несколько процессов, пишущих в один файл на NFS — это отдельный клинический случай. Пусть у нас есть один-единственный процесс, пишущий в файл.
Читать полностью »