Удаление истории команд в Bash

Чтобы полностью удалить историю выполнения команд в терминале, достаточно выполнить:

history -cw

[Apache] Разрешить доступ по User-Agent

Чтобы разрешить доступ на сервер только для устройств с определенным User-Agent, можно создать соответствующее правило в файле .htaccess.

Пример ниже разрешает доступ только для LG Smart TV, которые в строке User-Agent имеют слова LGE, NetCast или LG Browser:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !(LG\%20Browser|LGE|NetCast) [NC]
RewriteRule ^ - [F,L]

Для всех остальных устройств будет отображена ошибка «403 Forbidden».

[Решение] To open “Android Studio” you need to install the legacy Java SE 6 runtime

Если в Mac OS вы установили более новую версию Java (скажем, 1.7), чем стоит по умолчанию (1.6), то возможно, что при запуске Android Studio появится следующее сообщение:

To open “Android Studio” you need to install the legacy Java SE 6 runtime.
Click “More Info…” to visit the legacy Java SE 6 download website.

Решение:

В директории /Applications/Android Studio/Contents открываем файл Info.plist, находим строчку <key>JVMVersion</key> и меняем версию <string>1.6*</string> на <string>1.7*</string>.

To open Android Studio you need to install the legacy Java SE 6 runtime

Данный трюк подходит для всех продуктов JetBrains, основанных на IntelliJ IDEA.

[macOS] Как очистить DNS-кэш

Для Mac OS X 10.6 (Snow Leopard) и выше необходимо выполнить в терминале следующую команду:

sudo dscacheutil -flushcache

Зачем нужно сбрасывать локальный DNS-кэш?

OS X поддерживает локальный кэш DNS запросов в течение времени, определенного DNS-сервером, но иногда бывает необходимо вручную сбросить кэш и заново запросить данные у DNS-сервера. Например, это может пригодиться в тех случаях, если изменилась или добавилась новая запись на сервере.

OS X 10.9 (Mavericks) -> 10.10 (Yosemite)

В этот четверг, во время очередной презентации Apple, было объявлено о том, что версия OS X 10.10 (Yosemite) стала доступна для загрузки всем желающим.

Не став долго ждать, решил обновить свой iMac (late 2012) до Yosemite уже прямо сейчас. Весь процесс установки занял чуть более 40 минут и прошел без каких-либо нештатных ситуаций.

Обновленный дизайн OS X  — весьма неплохой, и конечно, вся эта полупрозрачность и размытость смотрится гораздо лучше на темных тонах обоев рабочего стола.

OS X 10.10 (Yosemite)

К счастью, все используемые мною приложения продолжили корректно работать и в Yosemite, хотя поначалу на этот счет и были опасения.

Единственное, что отказалось работать, так это MacPorts:

Error: Current platform "darwin 14" does not match expected platform "darwin 13"
Error: If you upgraded your OS, please follow the migration instructions: https://trac.macports.org/wiki/Migration
OS platform mismatch
while executing
"mportinit ui_options global_options global_variations"
Error: /opt/local/bin/port: Failed to initialize MacPorts, OS platform mismatch

Однако на официальном сайте уже лежит последняя, адаптированная под OS X 10.10 версия, и после ее установки, конечно, все заработало.

[macOS] А так ли нужен App Store?

Как и в случае с мобильными платформами, App Store для Mac OS нужен для того, чтобы предоставлять пользователям удобный доступ к поиску и загрузки приложений.

Однако, в случае iOS, где App Store является единственным официальным способом загрузки приложений, для Mac’ов положение дел во многом противоположное — основная масса приложений доступна для скачивания с сайтов-разработчиков. Небольшая часть из этих приложений дублируется и в App Store, однако зачастую магазин приложений содержит устаревшие, не обновленные версии, в противовес сайту разработчиков.

Уже не первый раз сталкиваюсь, что для установленных мною программ из App Store уже по году нет никаких обновлений, но если открыть сайт производителя, то находил там свежие версии.

В отличии от мобильного App Store, разработчики для ПК не особо стремятся попасть в магазин приложений для Mac OS, от сюда и небольшое количество доступных программ. Тем не менее App Store все равно есть и будет хорошим источником трафика для разработчика, особенно если приложение выбрано редакцией или просто находится на лидирующих позициях в своей категории.

В свою очередь я изредка использую App Store в качестве дайджеста «Что новенького?», и в большей мере просто как инструмент обновления системы.

[macOS] Принудительное выключение экрана

В MacOS есть функция — выключение экрана по таймеру. Все бы хорошо, но она иногда глючит и по истечении заданного времени экран не гаснет.

По этому, чтобы принудительно взять и выключить экран, достаточно «Control + Shift + Eject«.

Как правильно отправить iMac в сон

После того, как был приобретен iMac, я всегда стал использовать функция сна (гибернация), которая позволяет в случае необходимости быстро приступить к работе, не дожидаясь томительной загрузки компьютера, как это бывает после включения.

Многие, чтобы отправить iMac в сон, просто нажимаю клавишу «Power» на задней стороне моноблока (можно и комбинацией Command + Option + Media Eject), а беспроводную клавиатура и мышь так и остаются быть включенными. И хотя в этих устройствах и присутствует система энергосбережения, я все равно выключаю и их.

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

Я нашел весьма банальный выход из этой ситуации — изменил порядок выключения устройств.

Т.е. теперь действия стали такими: выключаю мышь, потом на клавиатуре нажимаю Command + Option + Media Eject, чтобы перевести компьютер в сон, и лишь затем выключаю клавиатуру.

Удаление Jenkins в Mac OS

Чтобы в Mac OS удалить установленный ранее Jenkins, нужно запустить специальный скрипт:

sudo /Library/Application Support/Jenkins/Uninstall.command

Отобразится:

Jenkins uninstallation script

The following commands are executed using sudo, so you need to be logged
in as an administrator. Please provide your password when prompted.

+ sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
+ sudo rm /Library/LaunchDaemons/org.jenkins-ci.plist
+ sudo rm -rf /Applications/Jenkins '/Library/Application Support/Jenkins' /Library/Documentation/Jenkins
+ sudo rm -rf /Users/Shared/Jenkins
+ sudo rm -rf /var/log/jenkins
+ sudo dscl . -delete /Users/jenkins
+ sudo dscl . -delete /Groups/jenkins
+ pkgutil --pkgs
+ grep 'org\.jenkins-ci\.'
+ xargs -n 1 sudo pkgutil --forget
Forgot package 'org.jenkins-ci.documentation.pkg' on '/'.
Forgot package 'org.jenkins-ci.jenkins.osx.pkg' on '/'.
Forgot package 'org.jenkins-ci.jenkins1531.postflight.pkg' on '/'.
Forgot package 'org.jenkins-ci.jenkins1549.postflight.pkg' on '/'.
Forgot package 'org.jenkins-ci.launchd-jenkins.pkg' on '/'.
Forgot package 'org.jenkins-ci.support.pkg' on '/'.
+ set +x

Jenkins has been uninstalled.

Еще один вариант обновления панели ISPmanager

/usr/local/ispmgr/sbin/update.sh --force ispmgr; \echo -e "Panel is currently at version:\n\t$(/usr/local/ispmgr/bin/ispmgr -V)"