Обычно я работаю на компьютерах с Windows, но в некоторых случаях переключаюсь на разработку на Linux. И мой последний проект будет полностью написан на определенных платформах linix (а не на стандартной установке Apache / MySQL / PHP). Так что я подумал, что сейчас стоит научиться писать какой-нибудь сценарий автоматизации для Linux.
Я могу обойти систему, запускать / останавливать службы, компилировать / устанавливать все в порядке. Вероятно, это базовые упражнения для программиста. Но если, например, я хотел бы каждый месяц автоматически развертывать определенное приложение на недавно созданной Linux-машине, я бы хотел знать, как это сделать.
Итак, если я хотел изучить серьезные сценарии оболочки Linux, какую книгу мне следует прочитать?
онлайн: АБС
предупреждение: это руководство по bash, поэтому синтаксисы только для bash, и я рекомендую вам не использовать их.
Хотя это очень хорошая документация
Изучение оболочки Bash вместе с Классический сценарий оболочки, с последующим Поваренная книга Bash.
Я бы посоветовал зарядить первые две книги, не слишком заботясь о том, чтобы все это запомнить. Ссылайтесь на них, если хотите сделать то, о чем помните, о чем читали, но не помните, как это сделать на самом деле. И вернитесь к ним через несколько месяцев и узнайте у них что-то новое.
Обратите внимание, это исходит из точки зрения администратора Linux, поэтому я склоняюсь к тонкостям bash, а не к более чистому sh. Это лишь редкий сценарий, который я пытаюсь сделать совместимым с sh. Кроме того, я не считаю tcsh допустимым языком сценариев.
Сценарии оболочки - это не сценарии оболочки. Разные системы имеют разные оболочки, и различия в синтаксисе и семантике значительны.
Другие упоминали книги Bash, для оболочки Korn я рекомендую O'Reilly's Изучение оболочки Korn. Если вам придется писать переносимые сценарии оболочки, также есть от O'Reilly: Классический сценарий оболочки.
На мой взгляд: написание переносимых сценариев оболочки - настоящий кошмар даже для людей, которые достаточно привыкли к определенной оболочке. Если вы работаете с Windows, вы знакомы с основными вещами (запуск / остановка служб, компиляция / установка), и ваша цель - автоматизация, я бы лично придерживался Perl.
Хотя у Perl есть свои недостатки, когда дело доходит до склеивания различных частей, он лучше всего. По моему опыту, именно это составляет большую часть автоматизации. Более того, в системах Unix Perl распространен повсеместно.
Я купил амазонку с пятизвездочным рейтингом 'Командная строка Linux и Библия сценариев оболочкиот Ричарда Блюма (ISBN: 047025128X) за то, что он подошел к «серьезному написанию сценариев оболочки», и я должен сказать, что я очень впечатлен этой книгой. Дает вам глубокие знания о сценариях оболочки, а также другие концепции, необходимые в этом контексте, например, как работают разрешения файловой системы Linux и ваши обязательные инструменты Unix, такие как grep.