Чи є вивчення сценаріїв оболонки (bash) сенсом програмування як початківець Linux?

Ви не авторизовані.

вивчення

# 1 25.07.2011 14:10:07

Чи має сенс вивчення сценаріїв оболонки (bash) як початківця Linux?

Я працюю з Arch Linux кілька місяців, і мені це дуже подобається, але я ще не мав багато спільного з bash.
На іншому форумі я сказав, що перейшов на Linux (одна з багатьох причин), тому що хочу керувати своєю операційною системою, а не навпаки.
Потім хтось написав мені, що я повинен мати можливість належним чином освоїти сценарії оболонки (bash).

Однак у мене виникає питання, чи є сенс для початківців Linux вчитися сценаріям оболонки, якщо ви ще не багато знаєте про саму систему?

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

Чого саме ви все ще можете досягти за допомогою bash?
Які переваги хорошого оволодіння bash у порівнянні з людьми, які взагалі не можуть цього робити?

Як альтернативу, хтось запропонував вам мати можливість робити Python, тому що ви можете робити те саме з ним. Це правильно?

Оскільки я давно хотів вивчити Python, це був би правильний час (через добрі практичні приклади), але якщо це не спрацює з Python, я маю намір придбати наступну книгу:

Оскільки це дуже дорого, я спершу хотів би переконатися з вами, чи це розумна інвестиція, щоб взагалі досягти своїх цілей, чи мені слід піти більш оптимальним шляхом?

Я дуже вдячний за вашу допомогу.

# 2 25.07.2011 14:27:50

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Перш за все: ви все одно рано чи пізно повинні вивчити Bash (або іншу мову сценарію оболонки, наприклад zsh або tcsh). Це основна структура, так би мовити. Мови сценаріїв насправді не так важкі для вивчення і можуть позбавити вас від великої кількості ручних робіт. Крім того, тепер для виправлення цього недоліку існує Powershell під Windows. навіть із повністю графічною операційною системою неможливо обійти основу. Якщо ви можете повірити адміністраторам Windows, Powershell ще кращий/ширший/зручніший, ніж, наприклад, Bash.
Теоретично за допомогою Bash можна досягти чого завгодно, оскільки мова вважається повною за Тьюрінгом. Але ви точно не хочете хотіти реалізовувати все за допомогою мови оболонки сценарію. Але основні завдання, такі як логіка запуску програми тощо, можуть бути легко реалізовані. Навіть якщо ви хочете запустити лише кілька програм одночасно, ви пакуєте їх у сценарій оболонки.

Спочатку я не можу нічого сказати про саму книгу, але я не думаю, що книги Галілея спочатку погані. Зазвичай вони досить поверхневі (особиста думка), але підходять і для початківців. Але безкоштовних ресурсів через Bash є більш ніж достатньо (Python, до речі, теж). Просто скористайтеся пошуковою системою на ваш вибір і будьте щасливі. І вчись баш

# 3 25.07.2011 14:38:48

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Безумовно: вивчайте баш (баш)!

Для цього не потрібно купувати книгу. Ресурси в мережі багаті, вам не обов'язково потрібні глибокі знання, але основи дуже корисні. Зазвичай ви навчитеся робити це в режимі запуску в будь-якому випадку: коли вам потрібен bash, ви шукаєте параметри та команди, а потім починаєте програмувати! ^^
Я також використовую метод ідіот: я знаю, що насправді відбувається, і коли мені це потрібно, я шукаю це (хоча деякі речі все одно твердіють); Тим часом я вже створив кілька десятків сценаріїв для автоматизації різних процесів, як лінійних, так і інтерактивних.
Я зв’язав наступні дві сторінки, які багато значущо пояснюють, а також наводять приклади застосування:
http://www.bin-bash.de/index.php
http://linuxseiten.kg-it.de/index.php?i… sh_befehle

# 4 25.07.2011 16:14:22

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Дякую, SaThaRiel та девіант, за докладні відповіді.
Ви, хлопці, мені дуже допомогли.

Тож я, мабуть, придбаю книжку з книгою та прочитаю веб-сайти, які були тут розміщені.

Для мене область застосування ще не зовсім зрозуміла.
Хтось на форумі одного разу допоміг мені скрипт bash, який автоматично встановлює з'єднання VPN, коли я підключений до певної мережі WLAN, і це мене переконало досить багато (тоді я навіть не знав, що ти можеш зробити щось подібне) або цей сценарій диспетчера для менеджера мережі відрізняється?

@deviant: Чи можете ви дати кілька прикладів своїх десятків сценаріїв?
Оскільки, як і в WLAN, гарантовано існують речі, про які я навіть не підозрював, що це можливо.

# 5 25.07.2011 16:43:28

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Я також рекомендую вам ознайомитись із функціональністю багатьох дрібних інструментів (awk, sed, grep, bz тощо). Може позбавити вас багато роботи і є дуже практичним. Решта часу приходить самостійно, як вже відхилено писав ^^

# 6 25.07.2011 16:43:59

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

# 7 25.07.2011 16:47:45

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Найбільш очевидні - це стартові скрипти: що буде виконуватися, коли я увійду в Linux?
DE пропонують свої власні варіанти, включаючи Openbox тощо, Compiz не:

Отже, на початку я запускаю цей сценарій, з якого запускається кілька сценаріїв.

"winebinds" пов'язує деякі папки, які я перемістив до іншого розділу, доступного для всіх встановлених систем Linux у папці/home.

"wlan0ff" - це невеликий скрипт, який я також розмістив в англійській вікі. Він перевіряє, чи підключений я до точки доступу, і якщо ESSID не знайдено, він повністю вимикає обладнання WLAN для економії енергії.

В іншому випадку це передбачає невеликі ланцюжки команд для скидання та перезапуску з’єднання pppoe, надсилання сповіщень (наприклад, якщо заряд акумулятора низький) або затримки вимкнення до кінця всіх завантажень:

(Примітка: частина цього сценарію десь запозичена і була включена до мого сценарію, sry, на випадок, якщо хтось почуватиметься недоступним ^^)
Я думав про прямий спосіб зчитування трафіку, але в підсумку отримав це рішення.

Я також створив сценарії для кількох ігор, які повинні покращити продуктивність, закриваючи conky та easystroke, деактивуючи тачпад, змінюючи розкладку клавіш, а потім починаючи гру (а також скасовуючи ці зміни після її закінчення, conky і easystroke знову запуск тощо.

Для задоволення я написав невеличку програму, яка змінює схему клавіш та надає різну інформацію - 100 рядків, які не роблять нічого, чого не робить "setxkbmap". але я нудьгував і сидів у поїзді

Призначення таких сценаріїв полягає в автоматизації команд, які ви не хочете вводити кожен раз вручну або які ви швидко забуваєте.

Редагувати: Дуже корисним використанням сценаріїв є cronjob, який автоматично перевіряє наявність оновлень і вказує це за допомогою Conky. З цією метою на форумі вже було опубліковано кілька розумних підходів, які суттєво не відрізняються.

Допис змінено deviant (25.07.2011 17:07:29)

# 8 25.07.2011 19:04:21

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

ось приклад від мене. Сценарій використовується для відкриття мого зовнішнього жорсткого диска, зашифрованого за допомогою LUKS, і для монтування або закриття його в певному каталозі. Я писав, що раніше Thunar міг обробляти розділи LUKS.

Допис змінено SiD (25.07.2011 19:06:01)

# 9 26.07.2011 04:18:51

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

. Оскільки, як і в WLAN, гарантовано існують речі, про які я навіть не підозрював, що це можливо.

Можна припустити, що можливо також усе, що має сенс і не обмежується апаратними слабкостями. Якщо потрібно, просто запитайте

# 10 26.07.2011 9:40:32

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Сценарії оболонки також можна використовувати для реалізації "більших" речей, таких як aurget. Це програма для встановлення програм з AUR, для пошуку AUR, ...

# 11 26.07.2011 11:56:21

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Ну, ви можете робити що завгодно майже будь-якою мовою. Але в якийсь момент ви доходите до того пункту, де зручніше стріляти собі в ногу.

# 12 26.07.2011 12:39:53

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Ну, ви можете робити що завгодно майже будь-якою мовою. Але в якийсь момент ви доходите до того пункту, де зручніше стріляти собі в ногу.

Я вже хотів написати щось подібне і придумати практичність; що не завжди має сенс писати щось те, що вже писали інші, особливо коли зусилля явно перевищують прибуток; але, звісно, ​​це теж працює.

# 13 30.07.2011 13:15:51

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Тож якщо ви хочете придбати книгу, то я рекомендую вам довідкову роботу. Огляньтесь навколо, і ви будете вражені тим, що відбувається на баші!
Я купив його, коли почав працювати з Linux, і навіть знати, де шукати в системі і перш за все з чим! Але я також приїхав зі світу Кліккібунті і ніколи не чув про DOS чи оболонку. Останнім контактом з мовою сценарію був Basic від C16 .

Про книгу: Linux - Kurz & gut, коштує 9,90 євро

# 14 07.07.2011 22:21:19

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Тож якщо ви хочете придбати книгу, то я рекомендую вам довідкову роботу. Огляньтесь навколо, і ви будете вражені тим, що відбувається на баші!
Я купив його, коли почав працювати з Linux, і навіть знати, де шукати в системі і перш за все з чим! Але я також приїхав зі світу Кліккібунті і ніколи не чув про DOS чи оболонку. Останнім контактом з мовою сценарію був Basic від C16 .

Про книгу: Linux - Kurz & gut, коштує 9,90 євро

Або щось більш особливе, цей Bash - Kurz & Gut, також € 9,90

# 15 16.08.2011 19:20:48

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Привіт,
Я рекомендую книгу Юргена Вольфа "Програмування оболонки" від Galileo Verlag. Я сам завжди використовую це як довідкову роботу, коли це необхідно.
У будь-якому випадку, має сенс хоча б регулярно випробовувати різні однокласники та трубопроводи. Якби лише потренуватися у жонглюванні регулярними висловами (від яких, на жаль, не можна втекти). Вивчати сценарії як "справжню мову програмування" - це не те, що я радив би робити зараз. За необхідності було б краще скопіювати або адаптувати кілька зразків прикладів для певної мети. Наприклад, я використовую міні-сценарій, який я написав для наступного завдання: Щойно "придбані" ігри слід перевіряти на справжність, порівнюючи контрольну суму CRC32 із базою даних і, якщо вдається, автоматично перейменовувати відповідно до наперед визначеної схеми. База даних повинна оновлюватися частіше, а її формат повинен бути перетворений з html в csv.
Привітання

# 16 17.08.2011 10:57:42

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Вивчати сценарії як "справжню мову програмування" - це не те, що я радив би робити зараз.

Я знаходжу хороший підказку.
Побачимо це прагматично: Сценарії оболонки - це, в основному, не що інше, як (наприклад, пакетні файли DOS одночасно) рядок різних команд/програм, які слід запускати та обробляти "одним рухом".
Насправді нічого.

Тут "програмування", тобто логічна частина, знову починає діяти, коли певні процеси мають виконуватися лише за певних умов. Або повторюється до певних умов або певної кількості разів.
І ви побачите: ці інструменти, щоб люди могли взагалі контролювати (програмувати) процес, також доступні на будь-якій іншій мові програмування. Що спільного у всіх: я маю зрозуміти, зрозуміти, абстрагувати завдання і вивести його в логічну послідовність. для цього я використовую такі речі, як рішення (if/else), цикли, функції. Щось подібне можна сформулювати досить абстрактно без допомоги конкретної "мови".
Застосовуючи його, ви помітите пізніше: якщо я освоїв це мистецтво вирішення проблеми-> шлях-> рішення, то мені потрібно лише розглянути синтаксис мови, що використовується. Я знаю, що кожна мова пропонує щось на зразок "рішення", і я знаю, як "рішення" допомагає мені зробити конкретний крок. Тому я просто повинен поглянути на синтаксис: як вони це роблять із XYZ.
І ви навчитеся цінувати переваги однієї мови над іншою, ви зможете сказати: Ах, Рубі, наприклад, більше підходить для цього проекту, ніж коли я пробую це із сценарієм оболонки Bash.

Сценарії оболонки найкраще підходять для початку IMHO, коли потрібні маленькі "помічники".
Припустимо, я повинен щодня переглядати певний файл журналу, щоб побачити: а) Чи сталося щось конкретне (запис) і яке значення має.
Дотепер я робив це за допомогою nano-> Відкрити-> Прочитати або Шукати-> Зробити щось/не робити щось, коли знайдете те, що хочете.
Щось подібне чудово піддаватися "сценарію".

І читання: Сценарії оболонки досить легко читати (оскільки вони часто є короткими і призначені лише для невеликих завдань). Наприклад, /etc/rc.d/startskipte. Або rc.sysinit.
Побачити: "Як вони це зробили?" і конструкцій, яких ви не зрозуміли відразу, шукайте в Інтернеті чи в книзі, що IMHO вносить значний внесок у "вивчення мови сценаріїв" зокрема та "навчання програмуванню" загалом.

Я сам просто досить паршивий "програміст", який любить Рубі;-) і створював усі "закінчені" програми переважно з простої ліні. Часто я просто починаю щось, що ніколи не закінчується (бо в цьому немає необхідності). Тим не менше я кожного разу дізнаюся щось нове; і все ж мені все одно доводиться занадто часто шукати синтаксис (погана пам'ять). Але через кілька років я завжди знаю, * що * шукати.;-)

# 17 08.10.2011 04:04:50

Re: Чи є вивчення сценаріїв оболонки (bash) сенсом для початківців Linux?

Баш особливо круто, коли ти щось шукаєш. Наприклад, якщо у вас є папка з великою кількістю різних файлів і ви хочете перенести всі mp3-файли в іншу папку, це може коштувати вам багато часу. З іншого боку, за допомогою bash ви викликаєте команду