HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>21 май 2020</li>
2 <ul><li>21 май 2020</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Разбираемся, как стать эффективнее и освободиться от рутинных задач с помощью Bash.</p>
4 </ul><p>Разбираемся, как стать эффективнее и освободиться от рутинных задач с помощью Bash.</p>
5 <p> vlada_maestro / shutterstock</p>
5 <p> vlada_maestro / shutterstock</p>
6 <p>Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.</p>
6 <p>Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.</p>
7 <p>Bash - это командная оболочка Unix, которая помогает взаимодействовать с операционной системой с помощью простых команд. Чаще всего Bash используется в Linux, но её можно установить и на другие операционные системы.</p>
7 <p>Bash - это командная оболочка Unix, которая помогает взаимодействовать с операционной системой с помощью простых команд. Чаще всего Bash используется в Linux, но её можно установить и на другие операционные системы.</p>
8 <p>В Bash встроено большое количество команд, которые сильно упрощают работу с компьютером. Например, команда<em>ls</em>позволяет узнать, какие файлы находятся в текущей директории:</p>
8 <p>В Bash встроено большое количество команд, которые сильно упрощают работу с компьютером. Например, команда<em>ls</em>позволяет узнать, какие файлы находятся в текущей директории:</p>
9 <p>Может показаться, что писать команды вручную не так удобно, как пользоваться графическим интерфейсом. Однако есть много ситуаций, когда терминал ускоряет процесс.</p>
9 <p>Может показаться, что писать команды вручную не так удобно, как пользоваться графическим интерфейсом. Однако есть много ситуаций, когда терминал ускоряет процесс.</p>
10 <p>Например, в графической программе вы вынуждены использовать те возможности, которые предоставляют разработчики. Терминал же позволяет самостоятельно создавать скрипты, которые заточены под ваши нужды.</p>
10 <p>Например, в графической программе вы вынуждены использовать те возможности, которые предоставляют разработчики. Терминал же позволяет самостоятельно создавать скрипты, которые заточены под ваши нужды.</p>
11 <p>Если вы пишете код, то чаще всего вообще не отрываете руки от клавиатуры. Если будете пользоваться графическим интерфейсом, то вам придётся тянуться до мыши, наводить курсор и выполнять другие манипуляции - всё это отнимает время.</p>
11 <p>Если вы пишете код, то чаще всего вообще не отрываете руки от клавиатуры. Если будете пользоваться графическим интерфейсом, то вам придётся тянуться до мыши, наводить курсор и выполнять другие манипуляции - всё это отнимает время.</p>
12 <p>Системным администраторам нужен Bash, потому что большинство серверов работают без мониторов и на многих в принципе не установлена оболочка рабочего стола. Тогда удобнее всего подключиться к серверу через<a>SSH</a>и управлять им с помощью команд в терминале. Это делается и для экономии ресурсов.</p>
12 <p>Системным администраторам нужен Bash, потому что большинство серверов работают без мониторов и на многих в принципе не установлена оболочка рабочего стола. Тогда удобнее всего подключиться к серверу через<a>SSH</a>и управлять им с помощью команд в терминале. Это делается и для экономии ресурсов.</p>
13 <p>Однако лучше всего потенциал Bash раскрывается тогда, когда вы пишете на нём скрипты.</p>
13 <p>Однако лучше всего потенциал Bash раскрывается тогда, когда вы пишете на нём скрипты.</p>
14 <p>Я каждый день пользуюсь терминалом, чтобы выполнять свои задачи. Когда я пишу руководства по языкам программирования, мне постоянно приходится делать повторяющиеся действия:</p>
14 <p>Я каждый день пользуюсь терминалом, чтобы выполнять свои задачи. Когда я пишу руководства по языкам программирования, мне постоянно приходится делать повторяющиеся действия:</p>
15 <ol><li>Очистить консоль, чтобы сделать скриншот без лишней информации.</li>
15 <ol><li>Очистить консоль, чтобы сделать скриншот без лишней информации.</li>
16 <li>Скомпилировать код.</li>
16 <li>Скомпилировать код.</li>
17 <li>Запустить программу.</li>
17 <li>Запустить программу.</li>
18 <li>Повторить.</li>
18 <li>Повторить.</li>
19 </ol><p>Кажется, что на это уходит не так уж и много времени, но за день всё это скапливается в несколько десятков минут, которые можно потратить на что-то более полезное.</p>
19 </ol><p>Кажется, что на это уходит не так уж и много времени, но за день всё это скапливается в несколько десятков минут, которые можно потратить на что-то более полезное.</p>
20 <p>Чтобы не повторять одно и то же каждый раз, я пишу скрипт, который будет делать всё это за меня. Для этого нужно создать файл с расширением<em>.sh</em>и написать команды в нём:</p>
20 <p>Чтобы не повторять одно и то же каждый раз, я пишу скрипт, который будет делать всё это за меня. Для этого нужно создать файл с расширением<em>.sh</em>и написать команды в нём:</p>
21 #Очистка терминала clear #Компиляция g++ hello.cpp -o hello #Запуск программы ./hello<p>Затем мы помещаем этот файл в папку с исходным кодом и разрешаем запускать его. Сделать это можно в свойствах файла:</p>
21 #Очистка терминала clear #Компиляция g++ hello.cpp -o hello #Запуск программы ./hello<p>Затем мы помещаем этот файл в папку с исходным кодом и разрешаем запускать его. Сделать это можно в свойствах файла:</p>
22 <p>Но этот вариант не очень удобный, потому что требует открытия файлового менеджера, поиска файла, открытия свойств скрипта и других действий. Всё это легче и гораздо быстрее сделать через терминал с помощью следующей команды:</p>
22 <p>Но этот вариант не очень удобный, потому что требует открытия файлового менеджера, поиска файла, открытия свойств скрипта и других действий. Всё это легче и гораздо быстрее сделать через терминал с помощью следующей команды:</p>
23 <p>Затем остаётся только запустить скрипт:</p>
23 <p>Затем остаётся только запустить скрипт:</p>
24 <p>Чтобы сделать скрипт ещё полезнее, можно использовать переменные<em>(начинаются с $):</em></p>
24 <p>Чтобы сделать скрипт ещё полезнее, можно использовать переменные<em>(начинаются с $):</em></p>
25 #Очистка терминала clear #Компиляция g++ $1.cpp -o $1 #Запуск программы ./$1<p>Теперь передадим этому скрипту название файла, который нужно скомпилировать и запустить:</p>
25 #Очистка терминала clear #Компиляция g++ $1.cpp -o $1 #Запуск программы ./$1<p>Теперь передадим этому скрипту название файла, который нужно скомпилировать и запустить:</p>
26 <p>Этот скрипт стал универсальным, и его достаточно просто скопировать в папки, где он вам нужен. Либо добавить его в <em>PATH</em> - переменную, в которой хранятся данные о категориях с исполнительными файлами. Добавив путь к папке со скриптом в <em>PATH</em>, вы сможете вызывать его из любого места. Для этого откройте файл<em>~/.bashrc</em>и добавьте в конце следующую команду:</p>
26 <p>Этот скрипт стал универсальным, и его достаточно просто скопировать в папки, где он вам нужен. Либо добавить его в <em>PATH</em> - переменную, в которой хранятся данные о категориях с исполнительными файлами. Добавив путь к папке со скриптом в <em>PATH</em>, вы сможете вызывать его из любого места. Для этого откройте файл<em>~/.bashrc</em>и добавьте в конце следующую команду:</p>
27 export PATH="$HOME/путь/к/папке/со/скриптом:$PATH"<p>А потом запустите команду, которая активирует изменения:</p>
27 export PATH="$HOME/путь/к/папке/со/скриптом:$PATH"<p>А потом запустите команду, которая активирует изменения:</p>
28 <p>Теперь, когда нужно скомпилировать и выполнить программу, достаточно всего лишь запустить написанный скрипт.</p>
28 <p>Теперь, когда нужно скомпилировать и выполнить программу, достаточно всего лишь запустить написанный скрипт.</p>
29 <p>Системные администраторы таким образом создают скрипты, которые почти полностью автоматизируют их рутинные задачи вроде запуска серверов и проведения тестов.</p>
29 <p>Системные администраторы таким образом создают скрипты, которые почти полностью автоматизируют их рутинные задачи вроде запуска серверов и проведения тестов.</p>
30 <p>В Bash есть всё, что поможет автоматизировать свои задачи и повысить производительность:</p>
30 <p>В Bash есть всё, что поможет автоматизировать свои задачи и повысить производительность:</p>
31 <ul><li>условия;</li>
31 <ul><li>условия;</li>
32 <li>циклы;</li>
32 <li>циклы;</li>
33 <li>массивы;</li>
33 <li>массивы;</li>
34 <li>переменные;</li>
34 <li>переменные;</li>
35 <li>математические и логические операции;</li>
35 <li>математические и логические операции;</li>
36 <li>регулярные выражения;</li>
36 <li>регулярные выражения;</li>
37 <li>генерация чисел;</li>
37 <li>генерация чисел;</li>
38 <li>навигация и многое другое.</li>
38 <li>навигация и многое другое.</li>
39 </ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
39 </ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>