Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Жизнь на свободе/Записи в блоге |
Жизнь на свободе
Голосов: 1 Адрес блога: http://sovety.blogspot.com/ Добавлен: 2008-02-19 12:40:29 блограйдером Lurk |
|
Старая флэшка монтируется только для чтения?
2009-08-26 15:37:00 (читать в оригинале)Уже не раз столкнулся: пользуясь ГНОМом, вставляешь какую-нибудь старую флэшку или карточку памяти в кард-ридер, она вроде как обычно автоматом подключается, но права доступа какие-то чудные (скажем, только для чтения). А другие карточки и флэшки вставляешь — всё нормально.
Догадался, что дело в том, что когда-то ещё на старой машине я настраивал параметры монтирования для каждого носителя отдельно. С тех пор домашний каталог благополучно переезжал из системы в систему, и настройки ГНОМа переезжали вместе с ним. А вот новые группы и пользователи не всегда точно соответствовали тому, что было раньше.
В результате, при попытке вставить какой-нибудь старый внешний носитель, ГНОМ использует настройки рассчитанные на совсем другую машину (другие группы и другую принадлежность пользователя к ним). Естественно, такие настройки
gnome-mount
надо просто удалить (ну или поправить), вот только найти их в гномовских закромах не так-то просто.Мой способ: вставляю проблемный носитель и выполняю
blkid
. Например,$ blkid
/dev/sdb1: SEC_TYPE="msdos" LABEL="PALM-CARD" UUID="15F4-492C" TYPE="vfat"
Запоминаю UUID и запускаю
gconf-editor
. Нахожу /system/storage/volumes/_org_freedesktop_Hal_devices_volume_uuid_15F4_492C
и там сбрасываю установленный ключ mount_options
. Отсоединяю носитель и подключаю опять. Пока что все проблемы с монтирование старых внешних носителей разрешались именно таким образом.
Старая флэшка монтируется только для чтения?
2009-08-26 15:37:00 (читать в оригинале)Уже не раз столкнулся: пользуясь ГНОМом, вставляешь какую-нибудь старую флэшку или карточку памяти в кард-ридер, она вроде как обычно автоматом подключается, но права доступа какие-то чудные (скажем, только для чтения). А другие карточки и флэшки вставляешь — всё нормально.
Догадался, что дело в том, что когда-то ещё на старой машине я настраивал параметры монтирования для каждого носителя отдельно. С тех пор домашний каталог благополучно переезжал из системы в систему, и настройки ГНОМа переезжали вместе с ним. А вот новые группы и пользователи не всегда точно соответствовали тому, что было раньше.
В результате, при попытке вставить какой-нибудь старый внешний носитель, ГНОМ использует настройки рассчитанные на совсем другую машину (другие группы и другую принадлежность пользователя к ним). Естественно, такие настройки
gnome-mount
надо просто удалить (ну или поправить), вот только найти их в гномовских закромах не так-то просто.Мой способ: вставляю проблемный носитель и выполняю
blkid
. Например,$ blkid
/dev/sdb1: SEC_TYPE="msdos" LABEL="PALM-CARD" UUID="15F4-492C" TYPE="vfat"
Запоминаю UUID и запускаю
gconf-editor
. Нахожу /system/storage/volumes/_org_freedesktop_Hal_devices_volume_uuid_15F4_492C
и там сбрасываю установленный ключ mount_options
. Отсоединяю носитель и подключаю опять. Пока что все проблемы с монтирование старых внешних носителей разрешались именно таким образом.
Как отслеживать изменения файлов в скриптах
2009-08-25 14:13:00 (читать в оригинале)Задача: отслеживать в скриптах изменения файла или файлов и выполнять какие-нибудь команды, когда файлы изменяются.
Пример: пересобирать документ LaTeX при изменении (сохранении) одного из исходных файлов.
Решение: остлеживать изменения можно с помощью утилит inotify-tools. Одна утилита,
inotifywait
ждёт указанных изменений и после этого завершается с тем или иным кодом возврата. Если произошло ожидаемое событие, код возврата 0
(успех). Именно inotifywait
и используется в моём примере ниже. Другая утилита, inotifywatch
, наблюдает за файлами и собирает информацию об изменениях, на выходе выводит табличку того, что заметила. Примеры применения этой утилиты смотрите на сайте inotify-tools, там же есть и дополнительные примеры использования inotifywait
.Пример использования: в данном случае я предполагаю, что все исходные файлы документа LaTeX лежат в текущем каталоге, а для сборки достаточно использовать
pdflatex
и bibtex
. Вечный цикл: ждём любых изменений файлов текста или библиографии (первая команда цикла), в случае успеха (обнаруженных изменений) исполняем все нужные команды сборки документа (вторая команда цикла).while true ; do \
inotifywait *.tex *.bib \
&& ( pdflatex -interaction=nonstopmode mypaper && \
bibtex mypaper && \
pdflatex -interaction=nonstopmode mypaper ) \
done
Естественно, применять можно для чего угодно, не только для LaTeX.
P.S. Вариант запуска LaTeX с опцией
-interaction=nonstopmode
позволяет с одной стороны избежать запроса интерактивного ввода в случае ошибки компиляции, а с другой стороны, позволяет эти ошибки компиляции всё же увидеть.P.P.S. Рецепт работает только в линуксе. Для *BSD есть библиотечка pnotify и kqueue.
Как отслеживать изменения файлов в скриптах
2009-08-25 14:13:00 (читать в оригинале)Задача: отслеживать в скриптах изменения файла или файлов и выполнять какие-нибудь команды, когда файлы изменяются.
Пример: пересобирать документ LaTeX при изменении (сохранении) одного из исходных файлов.
Решение: остлеживать изменения можно с помощью утилит inotify-tools. Одна утилита,
inotifywait
ждёт указанных изменений и после этого завершается с тем или иным кодом возврата. Если произошло ожидаемое событие, код возврата 0
(успех). Именно inotifywait
и используется в моём примере ниже. Другая утилита, inotifywatch
, наблюдает за файлами и собирает информацию об изменениях, на выходе выводит табличку того, что заметила. Примеры применения этой утилиты смотрите на сайте inotify-tools, там же есть и дополнительные примеры использования inotifywait
.Пример использования: в данном случае я предполагаю, что все исходные файлы документа LaTeX лежат в текущем каталоге, а для сборки достаточно использовать
pdflatex
и bibtex
. Вечный цикл: ждём любых изменений файлов текста или библиографии (первая команда цикла), в случае успеха (обнаруженных изменений) исполняем все нужные команды сборки документа (вторая команда цикла).while true ; do \
inotifywait *.tex *.bib \
&& ( pdflatex -interaction=nonstopmode mypaper && \
bibtex mypaper && \
pdflatex -interaction=nonstopmode mypaper ) \
done
Естественно, применять можно для чего угодно, не только для LaTeX.
P.S. Вариант запуска LaTeX с опцией
-interaction=nonstopmode
позволяет с одной стороны избежать запроса интерактивного ввода в случае ошибки компиляции, а с другой стороны, позволяет эти ошибки компиляции всё же увидеть.P.P.S. Рецепт работает только в линуксе. Для *BSD есть библиотечка pnotify и kqueue.
Автоматические отступы в XML
2009-08-20 14:50:00 (читать в оригинале)Для просмотра какого-нибудь XML часто нужно автоматически его отформатировать (чтобы отступы слева соответствовали вложенности элементов). Особенно это полезно, когда весь исходный XML записан в одну большую строку. Такие файлы — это нечитаемая каша, которую, однако, легко привести в порядок.
Первый способ — используем XSLT
Есть у меня файл с вот таким XSL-преобразованием:<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:param name="indent-increment" select="' '" />
<xsl:template match="*">
<xsl:param name="indent" select="'
'"/>
<xsl:value-of select="$indent"/>
<xsl:copy>
<xsl:copy-of select="@*" />
<xsl:apply-templates>
<xsl:with-param name="indent"
select="concat($indent, $indent-increment)"/>
</xsl:apply-templates>
<xsl:value-of select="$indent"/>
</xsl:copy>
</xsl:template>
<xsl:template match="comment()|processing-instruction()">
<xsl:copy />
</xsl:template>
<!-- WARNING: this is dangerous. Handle with care -->
<xsl:template match="text()[normalize-space(.)='']"/>
</xsl:stylesheet>
Код взял здесь (предложил Николай Григорьев). Там ещё несколько вариантов есть.
В дополнение к XSL-файлу есть у меня ещё и скрипт-однострочник, который это преобразование применяет. Я выполняю XSL с помощью любимого мной
xmlstarlet
. Это программка с интерфейсом командной строки для работы с XML.#!/bin/sh
# указать правильный путь к файлу с преобразованием!
xmlstarlet tr ~/bin/indent-xml.xsl
Пользуюсь этим скриптом так:
$ xmlindent < исходный.xml | view -
И всё, можно читать любой XML с правильными отступами. И подсветкой синтаксиса (
view
— это Vim!). Кроме xmlstarlet
есть и другие XSLT-процессоры. На память приходит xsltproc
и библиотечки для разных языков программирования. Вот, например, однострочник на Python.Второй способ — используем xmllint
В пакете libxml2-utils
есть программка для проверки и форматирования XML — xmllint
. Для форматирования использовать так:$ xmllint --format исходный.xml
Так даже проще.
Третий способ — xmlindent
xmlindent
— отдельная утилита, написанная на чистом Си. Говорят, работает и с задачей справляется.По теме:
Редактирование HTML и XML в Vim (добавил про HTML Entities)
Выделение HTML-тегов, строк и блоков кода в Vim
Vim в терминале: сохранение отступов вставленного текста
Категория «Бизнес»
Взлеты Топ 5
+1006 |
1094 |
ДеВаЧкА-НеФоРмАлКа |
+989 |
1001 |
White_Rabbit_Pics |
+988 |
1000 |
Смотрим на жизнь сквозь сетку |
+934 |
1101 |
Вадим Гоц |
+928 |
932 |
Блог о подарках и праздниках |
Падения Топ 5
-1 |
10 |
Блог Находчивого Продавца |
-1 |
459 |
alexfox2011 - BLOG.I.UA |
-2 |
3 |
Деньги в интернете |
-5 |
992 |
Allendy.ru - экономический портал |
-6 |
729 |
Натяжные потолки Херсон |
Популярные за сутки
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.