Супер-простой и очень очевидный для многих приём. Но может кто-то не знает.
Для того, чтобы в Terminal.app (а именно в bash) перейти в предыдущий каталог, нужно выполнить команду:
$ cd -
Супер-простой и очень очевидный для многих приём. Но может кто-то не знает.
Для того, чтобы в Terminal.app (а именно в bash) перейти в предыдущий каталог, нужно выполнить команду:
$ cd -
Если по каким-то причинам нужно сделать локальную копию сайта (например, если нужно работать над материалами, но доступ в Интернет не предвидится), то обычно нет смысла искать дополнительный софт, тем более платный. Есть консольная программа (The non-interactive network downloader), которую можно поставить через MacPorts (sudo port install wget).
Синтаксис:
wget -v -m -k -K -E -w 1 --output-file=wget.log http://www.notsecretsite.com/
Я начал писать заметку о launchctl, но понял, что сегодня её не закончу. Поэтому кратко расскажу о том, как загружать или выгружать сервисы, установленные через MacPorts.
Стартовые скрипты MacPorts размещает в файлах /Library/LaunchDaemons/org.macports.${port}.plist.
Загрузить сервисы можно либо привычно через launchctl
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.${port}.plist
либо через MacPorts:
$ sudo port load port
Останов сервиса:
$ sudo launchctl unload -w /Library/LaunchDaemons/org.macports.${port}.plist
или
$ sudo port unload port
Обновление от 04.01.2010. Версия 4.7.0 из портов уже нормально поддерживает UTF-8, поэтому рекомендую ставить её, причём русские буквы отображаются даже при компиляции с ncurses, что даёт возможность отображать интерфейс “нормально”, а не ASCII-символами:
$ sudo port selfupdate
$ port variants mc
mc has the variants:
ncurses: use ncurses screen library
* conflicts with slang2
[+]slang2: use slang2 screen library
* conflicts with ncurses
universal: Build for multiple architectures
$ sudo port install mc +ncurses
$ /opt/local/bin/mc -V
GNU Midnight Commander 4.7.0
Using the ncurses library
With internationalization support
With multiple codepages support
А для интереса можно почитать, как исправлялись русские буквы до 4.7.0.
Я уже давно заметил, что консольный файловый менеджер неправильно работает с русскими буквами под Mac OS X. Но меня это особо не беспокоило, так как мне он нужен редко и с этой проблемой я могу спокойно смириться. Но сегодня (очень рекомендую посмотреть , которую он создал – я там бываю регулярно) задал мне вопрос:
Подскажи, как наложить патч для MC из портов, он не воспринимает utf в интерфейсе {…}
MC из портов, плохо работает с русскими буквами, и я решил найти решение такому поведению:
При выводе через pipe (“|”) в Unix обычно буферизируются стандартный поток вывода stdout. Представим ситуацию – мы следим за выводом tshark на экран, но при этом хотим параллельно записывать его в файл (забудем на мгновение о команде ):
$ sudo tshark -i en1 | tee out.txt
Мы видим, что строки на экране появляются не сразу, а достаточно большими порциями. Причина – в буферизации вывода командой tshark. А наблюдать-то за трафиком хочется в реальном времени – авось появится что-то интересное.
Для решения нужно воспользоваться программой из пакета . Вспоминаем установку портов:
$ sudo port install expect
А затем
$ unbuffer sudo tshark -i en1 | tee out.txt
Теперь вывод происходит в реальном времени. Детали – в . Я нашёл unbuffer достаточно давно где-то на ““.
Практически всё, что необходимо для работы, можно настроить через стандартные настройки в GUI. Однако иногда возникает необходимость добраться до скрытых настроек, тогда на помощь приходит утилита . Она позволяет читать, записывать и удалять пользовательские установки из командной строки. Приложения Mac OS X и прикладные программы обычно хранят настройки, используя механизм defaults. Давайте попробуем поработать с этими настройками.
![]()
Вчера я слегка рассказал об установке XCode, сегодня же “вернёмся к корням” – займёмся установкой программ Open Source. Вместе с XCode поставляются все средства разработки, поэтому мы можем теперь скомпилировать любой пакет (configure, make, make install). Но простая компиляция имеет огромный недостаток – поддерживать программы в актуальном состоянии можно исключительно вручную, нужно регулярно отслеживать выход новых версий десятка используемых пакетов, списывать их, и по-новому компилировать. Решить эту проблему призваны менеджеры пакетов (для Linux это yum, apt, для FreeBSD – система портов).
Под Mac OS X самыми распространёнными являются и . MacPorts использует идеологию BSD, Fink – Debian Linux. Мне больше нравится BSD, поэтому я использую первый менеджер. Его и рассмотрим сейчас.
Рассмотрим запись iso в shell на примере дистрибутива Debian. Списываем iso, лучше .
Проверяем контрольную сумму (хотя бы md5):
$ curl http://cdimage.debian.org/debian-cd/5.0.3/i386/iso-dvd/MD5SUMS | \
grep debian-503-i386-DVD-1.iso
7ea66fee666fa444f0256ab3c1ec6ba4 debian-503-i386-DVD-1.iso
$ md5 debian-503-i386-DVD-1.iso
MD5 (debian-503-i386-DVD-1.iso) = 7ea66fee666fa444f0256ab3c1ec6ba4
Контрольные суммы совпадают, образ нормальный, можем его записывать стандартной утилитой hdiutil:
$ hdiutil burn debian-503-i386-DVD-1.iso
Некоторые программы создают свои каталоги в ~/Documents, и лично мне они не нужны, и в Finder я не хочу их видеть. К таким каталогам относятся, например, “Virtual Machines” (VmWare), “SMS Chat Logs” (), “iChats”.
Раньше была возможность скрытия каталогов в “Get Info” Finder’а (то ли в 10.4, то ли в ранних версиях 10.5.x), но потом она исчезла. Однако это можно сделать в Terminal.app.
Есть два варианта – можно использовать либо команду (она поставляется вместе с Mac OS X Developer Tools, т.е. нужно установить ), либо штатную команду .
Скрыть каталог: “SetFile -a V dir” или же “chflags hidden dir”.
Отображать каталог: “SetFile -a v dir” или “chflags nohidden dir”.