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>