Другие Системы


Монтирование JFFS2

Понадобилось мне примонтировать jffs2, кому интересно это была область конфигурации от одного из девайсов. Просто маунтиться он отказался, пришлось делать через mtdblock:

# подгружаем модуль 
modprobe mtdblock
# копируем из файла в блок
dd if=jffs2.img of=/dev/mtdblock0
# монтируем директорию
mount -t jffs2 /dev/mtdblock0 /mnt/

наслаждаемся тем что внутри =) Точнее правим то что нужно и запаковываем обратно.

0
Ваша оценка: Ничего

Persistent ZSH aliases (в bash тоже можно :)

Три уровня реальности.

Нулевой. В незапамятные времена я вынес определение aliases из .zshrc в другой файл, .zsh_aliases. Это разгрузило и без того тучный .zshrc, в котором остался только вызов

if [[ -f $ZDOTDIR/.zsh_aliases ]] { . $ZDOTDIR/.zsh_aliases; }

Первый. Теперь .zsh_aliases можно обрабатывать автоматически! Допустим, я по ходу работы придумал полезный alias. Но вот отвлекаться для редактирования .zsh_aliases не хочется. Что за беда? сделал alias с именем mkalias:

mkalias='alias | grep -v "='\''LC_ALL" | sed "s/^/alias /" > ~/.zsh_aliases'

Теперь зафиксировать сделанные в списке alias-ов изменения можно одной командой. И даже вставить её в .zlogout, чтобы управиться с задачей за 0 команд :).

Второй. А что это за "grep" такой лишний в mkalias? А это вот что. Есть несклько команд, которые я хочу запускать не в кодировке по умолчанию, а в другой. Например, man-ы хочу читать по-английски. Или GTK1-программы -- в кодировке всегда KOI8-R. Или, наоборот, stardict-gtk всегда в кодировке UTF-8. Помогает проставить LC_ALL: LC_ALL=соответств_кодировка команда, но лучше это превратить в alias. Вот у меня и заведены файлы .locale.кодировка, которые читаются из .zshrc так:

# alias some LC_ALL changes when running command
for N ($ZDOTDIR/.locale.*) {
  T="${N##*.locale.}"
  for F (`cat $N`) alias "$F"="LC_ALL=$T $F"
} || :

Так что строчки с '="LC_ALL' запоминать не надо, они генерируются. Отсюда и grep -v в mkalias. Более того, .zshrc и .zsh_aliases у меня на всех машинах одинаковые (и на Linux разных конфессий, и на FreeBSD разных версий). А вот .locale.* -- везде разный, т. к. на некоторых машинах по умолчанию стоит одна кодировка, на некоторых -- другая, там одни программы капризничают, тут другие.

Каким способом .zshrc и .zsh_aliases у меня на всех машинах получаются одинаковые? А это к alias-ам отношения не имеет.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
bliznezz аватар

unique - фильтрация дубликатов силами легендарного взломщика

искал способ убирать дубликаты строчек из файла.
привычный спобос

cat file_with_dupe | sort | uniq > distinct

не подходит, т.к. сбивает оригинальную сортировку.
помощь получил, с неожиданной стороны: легендарый взломщик паролей John The Ripper имеет в себе нужный мне функционал.
содержит утилитку unique, которая хоть и является симлинком на john, но вызывая её - получаю именно тот сортировщик:

cat file_with_dupe | ./unique distinct

к сожалению работает только в таком синтаксисе единственный параметр OUTPUT_FILE : принимает поток с stdin и отдает фильтрованный результат в файл OUTPUT_FILE

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)

.vimrc в подкаталогах

Иногда случается полезным устанавливать некоторые настройки vim специфично для отдельных каталогов/подкаталогов.

Вот небольшой скриптец, который подгружает .vimrc из каталога, в котором открывается или создаётся файл.

function! Load_local_rc(dir)
  if a:dir == expand("~")
    return
  endif
  let rcfile = a:dir."/".".vimrc"
  if ! filereadable(rcfile)
    return
  endif
  execute "source ".rcfile
endfunction
 
autocmd BufReadPre * call Load_local_rc(expand("<afile>:p:h"))
autocmd BufNewFile * call Load_local_rc(expand("<afile>:p:h"))
0
Ваша оценка: Ничего

Дружелюбная конфигурация vim с нуля

Устанавливая vim в разных системах можно заметить, что чаще всего он ведет себя "совместимо" с vi. Это проявляется в первую очередь в реакции на нажатия курсорных клавиш в режиме вставки (портит текст =)). Отвечает за такое поведение опция "set nocompatible", но есть еще более простой способ получить дружественный конфигурационный файл vim по-умолчанию:

$ locate vimrc

Отыскать среди вариантов vimrc_example и...

$ cp /путь/к/примеру/vimrc ~/.vimrc
0
Ваша оценка: Ничего
ramok аватар

vim + gpg = удобное и безопасное хранилище приватной информации

пакет GnuPG позволяет легко и просто кодировать и декодировать файлы. вот например очень простой пример http://linsovet.com/gpg-file-crypt-decrypt
конечно можно указать множество опций для того что бы сделать хранения ваших данных еще более безопасным. но кодировать/декодировать каждый раз когда нужно добавить строчку в нужный файл мягко скажем.. напрягает Ж:-)
в этом случае вам поможет плагин к vim http://www.vim.org/scripts/script.php?script_id=661
достаточно бросить его в ~/.vim/plugin и открыть в vim зашифрованный файл с расширением .gpg.
кодирование/декодирование будет проходить на лету, поддерживается автоматическое распознавание множество опций декодировая.

счастливые обладатели Debian могут поставить пакет vim-scripts и скопировать или сделать линку в ~/.vim/plugin из /usr/share/vim-scripts/plugin/gnupg.vim

0
Ваша оценка: Ничего

Обзор ncurses, библиотеки для консольного ввода-вывода.

В документе описаны такие жизненно необходимые функции библиотеки консольного ввода/вывода ncurses как очистка экрана, перемещение курсора, изменение цветов фона и символов, отключение вывода символов при вводе и многое другое. Большая часть была взята из официальной документации остальная часть из личного опыта использования. Надеюсь многим начинающим программистам под Linux и не только будет полезна.

Подробнее.

0
Ваша оценка: Ничего

Добавить из скрипта сообщение в системный лог

logger - команда bash для добавления сообщений в системный лог.
$ logger -t TEST more of a test here
Вот что появится в /var/log/syslog:
Oct 28 07:15:50 squeezel TEST: more of a test here

тэги, указываемые по -t можно посмотреть в /etc/syslog.conf. Они используются syslog для сортировки сообщений по различным файлам логов, если это настроено ("mail", "daemons", etc).
logger обязателен к применению в скриптах-демонах, или просто в скриптах, которые выполняются в бэкграунде.

По материалам http://souptonuts.sourceforge.net/how_to_linux_and_open_source.htm

0
Ваша оценка: Ничего

Автокоррекция ошибок в названиях директорий

Чтобы включить:
$ shopt -s cdspell
Теперь сделаем опечатку в команде cd:
$ cd /usk/local
но мы все равно попадем в
/usr/local

Какие другие опции можно использовать? Получить все опции можно с помощью:
$ shopt -p

(Перевод TIP45 с http://souptonuts.sourceforge.net/how_to_linux_and_open_source.htm)

0
Ваша оценка: Ничего
ramok аватар

Как правильно задавать вопросы?

Если вы хотите получить ответ на интересующий вас вопрос, советую сначало почитать это.
Так же полезно почитать тем кто советы дает. И помним что эффективней всего учится помогая другим Ж:-)

Перевод "Как правильно задавать вопросы" by Eric Steven Raymond v.3.1
http://ln.com.ua/~openxs/articles/smart-questions-ru.html

Оригинал How To Ask Questions The Smart Way by Eric Steven Raymond v.3.2
http://catb.org/~esr/faqs/smart-questions.html

0
Ваша оценка: Ничего