Форум русскоязычного сообщества Xubuntu

Установка и настройка => Программирование => Тема начата: myth от августа 04, 2013, 22:24:49

Название: BASH. Основы и все что связано с bash-скриптами.
Отправлено: myth от августа 04, 2013, 22:24:49
Предлагаю здесь размещать все вопросы связанные с bash и sh.
Рекомендуется к прочтению: ABS Guide (http://www.opennet.ru/docs/RUS/bash_scripting_guide/) (рус.), тоже самое ABS Guide (http://www.tldp.org/LDP/abs/html/) (eng.)

Вот еще небольшое собрание сочинений :)
1.
Спойлер
Не секрет, что Bash начинается с командной строки, а если она приятно выглядит, то и работать за ней приятней. Я же в свое время, а это было сразу после перехода с винды на линукс, искал как добавить в терминал метку времени, тогда и наткнулся на эту статью. Сейчас приглашение консоли у меня выглядит вот так:
(http://storage8.static.itmages.ru/i/13/0805/h_1375710853_9652674_4b86d588fd.png) (http://itmages.ru/image/view/1152256/4b86d588)
Если кому интересно, как это сделать и может быть еще больше расширить информативность строки консоли - читаем здесь:
[свернуть]
Приглашение bash меняем на свой вкус и цвет. (http://gahcep.github.io/blog/2012/07/28/unix-bash-shell-prompt/)
2.
Спойлер

Необходимо знать основные сочетания клавиш:
























ctrl+alt+F1Перейти в консоль (tty1). Также вместо F1 можно использовать другие функциональные клавиши, F1-F6 открывают tty1-tty6 соответственно.
ctrl+alt+F7Вернутся в графический режим, в ubuntu он обычно на tty7 (при запуске копий X-org, они разместятся дальше за 7й консолью: tty8, tty9,.. и открываться будут соответственно через ctrl+alt+F8, ctrl+alt+F9,..).
ctrl+cУбить задание, запущенное в терминале.
ctrl+zОстановить задание. Снова запустить можно командой fg или bg, список всех заданий jobs.
ctrl+dВыйти из текущего терминала.
TABЭто не сочетание - просто кнопка, нажатием на которую bash помогает дописывать команды и файлы.
Alt + SysRq + OЭто то, что нажимать не нужно! SysRq powerOff - отключение питания компьютера. Завершение работы выполнится некорректно, без отмонтирования дисков и сохранения файлов.
Alt + SysRq + B               Не нажимайте это сочетание клавиш! SysRq reBoot - некорректная перезагрузка с возможностью повредить систему. Как выполнить корректно экстренную перезагрузку читайте здесь (http://ru.wikipedia.org/wiki/SysRq).


И, мне кажется, этого вполне достаточно для облегчения работы с консолью, если не часто ею пользоваться. Есть более расширеный список, только для маньяков консоли ;) ссылочка на него ниже:
[свернуть]
Горячие клавиши в Shell (http://habrahabr.ru/post/99843/)
3.
Спойлер

Если вам вдруг интересно узнать, как создать три сотни файлов одной командой ( touch {a..z}{0..10} ) и т.п., то эта статья для Вас :) Статейка изрядно потрёпаная, не пожалело ее время, а когда я её читал впервые, на ней еще были картинки %)
[свернуть]
Текстовые замены и подстановки в Bash (http://ubuntologia.ru/blog/console-scripting/110.html#file-name-substitution)
4.
Спойлер

Еще раз повторюсь, настоящее руководство по программированию на Bash лежит здесь (http://www.opennet.ru/docs/RUS/bash_scripting_guide/), а статья ниже дает краткий обзор по конструкциям в bash-скриптах (ветвления, циклы и т.п.) Ну, вообщем, руководство - не руководство, а как шпаргалка будет весьма полезна :)
[свернуть]
10 секундное "руководство" по Bash Shell Scripting (http://nsk.lug.ru/system/10-seconds-guide-to-bash-shell/)

На этом, пожалуй, пока и всё.    :glass:




Вопросы и ответы, идеи, предложения и пожелания по данной теме -- приветствуются!
Название: BASH. Основы и все что связано с bash-скриптами.
Отправлено: butjapka от августа 04, 2013, 22:59:48
хорошая статейка
Название: BASH. Основы и все что связано с bash-скриптами.
Отправлено: xf∞ от августа 05, 2013, 00:04:00
Прикреплю-ка я тему.
Название: Re: BASH. Основы и все что связано с bash-скриптами.
Отправлено: demonlibra от августа 13, 2016, 17:15:08
Создаю особое действие для обработки нескольких файлов в Thunar. Необходимо получить количество элементов в списке. Пути к файлам с пробелами и кириллицей.
Сейчас получаю количество пересчетом в цикле.
for file in %F;do kolfile=$(($kolfile+1));done
Чувствую, что это очень безграмотно. Есть ли другие варианты?