[ Content | View menu ]

Разделение аргументов в shebang

28.12.2009

В комментариях к прошлогоднему переводу Bash Pitfalls внимательный flavi задался вопросом, почему при попытке выполнить скрипт, в начале которого написано
#!/bin/bash –posix –verbose
выдаётся ошибка
/bin/bash: –posix –verbose: invalid option
в то время как в интерактивном режиме bash нормально запускается с такой комбинацией опций; более того, если в shebang’е оставить только одну из этих опций, то скрипт [...]

linux - 3 комментария

Ссылка на определенное место в man’е

24.08.2009

В блоге «Полезные советы по Linux» наткнулся на способ ссылаться на определенное место в документации:
sh -c ‘PAGER=»less» LESS=»-p search_string» man man_page’
Явно вызываем sh, задаем просмотрщик less и указываем ему строку, которую нужно найти. Команда man запустит less и прокрутит экран до первого совпадения.
Конечно же, необходимо убедиться, что заданный шаблон присутствует в документе хотя бы один [...]

linux - 2 комментария

Построение регулярного выражения по списку строк

18.08.2009

Имеется неколько десятков однотипных файлов вида FILE20090801011253.txt, FILE20090801023619.txt и т.д. Требуется составить регулярное выражение, которому удовлетворяют только названия файлов из списка.
Вручную это можно сделать примерно так:
FILE200908010(11253|23619)\.txt
Если файлов много, то никаких нервов не хватит высчитывать, проверять и перепроверять.
То же самое можно сделать полуавтоматически, с помощью механизма complete-into-braces оболочки bash. Сочетание клавиш Esc-{ преобразовывает список подстановки в [...]

linux - 7 комментариев

Защита Linux от несанкционированного консольного доступа

18.03.2009

Есть две вечные темы, о которых пишет почти каждый автор «блога про linux» — туннели в ssh (каюсь, сам грешен) и сброс пароля root путём загрузки в режиме single user. Как правило, второй рецепт провоцирует обширные обсуждения на тему незащищённости Linux от действий злоумышленников при наличии физического доступа к компьютеру.
Вот несколько простых шагов, которые создадут [...]

linux - 2 комментария

Частые ошибки программирования на Bash (часть пятая, она же последняя)

29.12.2008

22. echo «Hello World!»
23. for arg in $*
24. function foo()
25. echo «~»
26. local varname=$(command)

linux - 10 комментариев

Частые ошибки программирования на Bash (часть четвёртая)

24.12.2008

17. cd /foo; bar
18. [ bar == "$foo" ]
19. for i in {1..10}; do ./something &; done
20. cmd1 && cmd2 || cmd3
21. Касательно UTF-8 и BOM (Byte-Order Mark, метка порядка байтов)

linux - 0 комментариев

Частые ошибки программирования на Bash (часть третья)

22.12.2008

11. cat file | sed s/foo/bar/ > file
12. echo $foo
13. $foo=bar
14. foo = bar
15. echo <<EOF
16. su -c ’some command’

linux - 3 комментария

Частые ошибки программирования на Bash (часть вторая)

18.12.2008

5. [ "$foo" = bar && "$bar" = foo ]
6. [[ $foo > 7 ]]
7. count=0; grep foo bar | while read line; do ((count++)); done; echo «number of lines: $count»
8. if [grep foo myfile]
9. if [bar="$foo"]
10. if [ [ a = b ] && [ c = d ] ]

linux - 5 комментариев

Частые ошибки программирования на Bash (часть первая)

13.12.2008

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

Большинство имеющихся руководств посвящено тому, как надо писать. Я же расскажу о том, как писать НЕ надо :-)

1. for i in `ls *.mp3`
2. cp $file $target
3. [ $foo = "bar" ]
4. cd `dirname "$f"`

linux - 3 комментария

Угадывание мыслей и выполнение несуществующих команд средствами bash

17.11.2008

В Debian в bash был добавлен патч, благодаря которому пользователь может написать свою функцию, выполняемую в случае, если введённая пользователем команда отсутствует. В Ubuntu эту фичу использует подсказка command-not-found, заметно тормозящая работу, в то время как можно найти более интересные и полезные возможности применения этого механизма, оставив поиск пакета специализированным программам. Поделюсь своим опытом.
У [...]

linux - 6 комментариев

Организация рабочих файлов по неделям

28.04.2008

Ежедневно в моей рабочей папке появлялось от одного до полутора десятков и более файлов — документов, патчей, скриптов, отчётов и прочих продуктов рабочей деятельности. Однажды настал момент, когда найти нужный файл среди этого бардака стало довольно затруднительно, и чаша моего терпения переполнилась. Файлы нужно каким-нибудь организовать, подумал я. Изобретать систему меток для организации файлов по [...]

lifehack - 8 комментариев

Фокусы с автодополнением в bash

03.04.2008

После посещения заметки "Создание списка имен хостов для ssh на лету для автодополнения" долго вчитывался в man bash с целью понять, как же там это автодополнение работает. В конце концов, поняв, что с наскоку эту гремучую смесь из фич баша и возможностей readline не осилить, скачал оба исходника и нашел там великое множество примеров использования [...]

linux - 6 комментариев

Страна советов

28.03.2008

Иногда при работе в midnight commander появляется сообщение «The shell is already running the command», не дающее выполнить команду в текущем каталоге. Стандартный способ обхода — Ctrl+O, Ctrl+C, Enter приводит к тому, что mc возвращается в каталог, где была выполнена предыдущая команда, и приходится еще раз переходить в нужный каталог. Проблема обсуждается чуть ли не [...]

linux - 3 комментария

Несколько советов по bash-скриптингу

27.11.2007

Tips от Madskull’a: bash, в т.ч.:

ожидание запущенных в фоне задач
прерывание по таймеру (SIGALRM)
параметры в скриптах и функциях
работа с массивами
перехват прерываний с помощью trap
как сделать прогрессбар в bash-скриптах
чтение конфигов из скрипта
работа со строками без использования внешних утилит типа sed и awk
подстановка параметров
использование getopts в shell-скриптах
специальные переменные, цвета ECHO, спецсимволы
краткое описание некоторых полезных утилит

linux, Ссылки - 1 комментарий

Несколько советов по работе с историей команд в bash

26.11.2007

Оригинал: bash tips and tricks
Для непосвящённых, bash — это оболочка по умолчанию во многих дистрибутивах Linux, включая Fedora, Ubuntu, Redhat и т.д. и т.п. Если вы используете ОС, основанную на Linux, есть вероятность, что вы используете именно bash. Поэтому ниже я сделал обзор некоторых часто встречающихся неудобств, а также простых способов их избежать.
1. Забытая история [...]

lifehack, linux - 2 комментария