Почему исследователи до сих пор используют эмуляторы терминалов

В Linux терминал играет гораздо более важную роль, нежели командная строка в системах Windows. И, хотя большинство действий можно выполнять с помощью графической оболочки, нет-нет да и придется нырять в терминал.

Установка программ

Одна из самых востребованных и удобных операций, которые выполняют в коммандной строке — это установка программ. Если вам приходилось работать с такими программами, как Ubuntu Software Center, или Synaptics Package Manager — все они красивые оболочки, запускающие, по мере необходимости, те-же самые консольные програмы.

В консоли, вы можете одной строкой, в считанные секунды, установить сразу несколько программ, что в случае с программой с графической оболочкой у вас-бы отняло гораздо больше времени на поиск, установку чекбокса возле нужной программы и ожидания окончания самого процесса установки.

Например, для того, чтоб одним махом установить браузеры Mozilla Firefox, Chromium и Opera, достаточно выполнить одну команду:

sudo apt-get install firefox chromium-browser opera

В предыдущей команде использована комнда sudo, которая позволяет выпонить следующую за ней команду с правами «Рута» (супер администратора в мире Linux). За ней идет команда apt-get, которая принимает в качестве параметров install firefox chromium-browser opera, что означает «установи все программы, идущие после параметра install».

Обратите внимание. Вам не нужно беспокоиться о зависимостях, которые нужны для нормальной работы устанавливаемых программ — все они будут установлены автоматически.

Таким образом, сразу после установки Ubuntu, или другого дистрибутива, одной командой вы можете установить все необходимые программы — все, что для этого нужно — это знать название пакетов. Даже, если вы не помните название пакета, вам на помощь прийдет на помощь функция автозавершения, рассмотренная далее в статье.

Back to top

Зачем нужен Терминал?

Есть три причины, которые делают Терминал незаменимым инструментом для исследователей, анализирующих большие массивы данных:

  • он позволяет программировать манипуляции с файлами и папками в операционной системе
  • Внутри него можно запускать другие программы и программировать их взаимодействие друг с другом
  • Через него осуществляется работа с серверами и суперкомпьютерами, позволяющими анализировать гигабайты данных в сотни раз быстрее, чем на персональном компьютере
Читайте также:  Как изменить размер файла подкачки виртуальной памяти?

Разберем каждый из этих аспектов подробнее.

Терминал, как манипулятор файлов и папкок

Большинству пользователей нет необходимости использовать Терминал благодаря графической оболочке их операционной системы. Однако, без него не обойтись, когда речь идет о манипуляциях с файлами и папками более сложными, чем: «скопировать документ из одной папки и вставить в другую». Я приведу простой пример, показывающий ограниченность использования графической оболочки операционной системы.

Допустим, мне нужно переименовать фотографию и добавить к текущему названию дату, когда эта фотография была сделана. Что может быть проще, скажите Вы: «открой свойства файла, скопируй дату создания файла, закрой окно «Свойства» и вставь дату в название файла». Так и есть, все довольно просто, вот только повторить это действие нужно для всех фотографий на моем компьютере (а их у меня более 25 тысяч). Очевидно, что если я буду делать это подобным образом, то это задание отнимет у меня несколько недель.

Решение этой же задачи в Терминале займет не более получаса даже у начинающего пользователя. Фокус в том, что в Терминале пользователь может программировать действия, делегируя компьютеру рутинную работу. В разных типах эмуляторов терминала – разные языки программирования, но вероятно самым распространенным в наши дни является язык bash (о нем скоро будет отдельная статья).

Использование Терминала для создания скриптов

Другая важная особенность эмуляторов терминала – это возможность запуска в нем других программ, чтобы автоматизировать процессы в программах и обеспечить автономное взаимодействие между ними. Если входные и выходные данные этих программ оформить в виде файлов, то Терминал сможет запускать последовательно программы. Алгоритм будет напоминать цепочку из таких действий: запустить программу А, загрузить туда входные данные (файл А), экспортировать результаты анализа в файл B, закрыть программу A, запустить программу B, загрузить туда файл B, ну и так далее…

Читайте также:  Графическая среда X Window System

Таким образом, миллионы файлов могут быть проанализированы автоматически и в быстрые сроки. Эта особенность делает Терминал незаменимым инструментом среди биоинформатиков, генетиков и эволюционных биологов, работающих с геномами организмов, которые в оцифрованном виде представляют из себя множество текстовых файлов оформленных в разных форматах.

Управления суперкомпьютерами и серверами через Терминал

Терминал является не только окном в операционную систему персонального компьютера, но также и в операционную систему сервера или суперкомпьютера, который может находиться в тысячах километров от Вашего текущего месторасположения. Через эмулятор терминала на суперкомпьютер можно подавать алгоритмы (bash-скрипты), выполнение которых на Вашем компьютере могло бы занять неделю. Благодаря своей мощности суперкомпьютер проведет расчёты за считанные часы. Подобный подход позволяет проводить анализ больших массивов данных в кратчайшие сроки.

Как правило, на суперкомпьютерах и серверах стоят версии операционной системы Linux. Так как различий между эмуляторами терминала на Линуксе и на Маке практически нет, в дальнейших статьях я буду писать только об эмуляторах терминала, работающих на языке программирования bash (например, программа Terminal).

Оболочки, Bash, echo Linux

В терминале у вас есть то, что называется оболочкой. Это часть операционной системы, которая определяет, как будет вести себя терминал, и будет выглядеть после запуска (или выполнения) команд для вас.

Доступны различные оболочки, но самая распространенная из них называется bash, что означает «Bourne again shell». В этом руководстве предполагается, что вы используете bash в качестве оболочки.

Если вы хотите узнать, какую оболочку вы используете, вы можете использовать команду echo, чтобы отобразить системную переменную с указанием вашей текущей оболочки. echo — это команда, которая используется для отображения сообщений.

Форматирование HDD через терминал на Ubuntu/Debian

Для форматирования разделов дисков в системе используем команду parted.

Будьте внимательны с данной командой, т.к. она может затереть весь ваш диск.

Для начала определяем с каким диском мы будем работать. Для этого набираем все ту же нами знакомую команду lsblk

Читайте также:  Использование и настройка Open Broadcaster Software

После вывода информации определяем наш диск и набираем:

sudo parted /dev/sdb

где sdb — это наш диск

Далее создаем новую таблицу разделов:

(parted) mklabel msdos

После можно создавать разделы. Если вам нужно создать один большой раздел, который будет занимать весь объем диска, то команда будет такой:

(parted) mkpart primary ext4 1MiB 100%

Если же вы хотите создать несколько разделов на диске, то последовательность команд будет следующей:

(parted) mkpart primary ext4 1MibGB 5GB (parted) mkpart primary ext4 5GB 20GB (parted) mkpart primary ext4 20GB 100%

После данной команды у вас будут три раздела с соответствующими размерами в 5 Гб, 15 Гб, а третий займет все оставшееся пространство на данном диске.

Для вывода информации набираем:

(parted) print

Если вас все устраивает, то выходим из программы форматирования:

(parted) quit

Давайте теперь отформатируем получившиеся разделы в файловую систему ext4:

sudo /dev/sdb1

или в случае с несколькими разделами диска:

sudo /dev/sdb1 sudo /dev/sdb2 sudo /dev/sdb3

После данной процедуры разделы готовы к использованию. Только не забудьте предварительно примонтировать их к системе.

Каналы

Каналы используются для перенаправления потока из одной программы в другую. Стандартный вывод данных после выполнения одной команды перенаправляется в другую через канал. Данные первой программы, которые получает вторая программа, не будут отображаться. На дисплей терминала будут выведены только отфильтрованные данные, возвращаемые второй командой.

Пример

В результате каждый файл текущего каталога будет размещен на новой строке:

Перенаправлять данные с помощью каналов можно как из одной команды в другую, так и из одного файла к другому, а перенаправление с помощью > и >> возможно только для перенаправления данных в файлах.

Пример

Для сохранения имен файлов, содержащих строку «LOG», используется следующая команда:

Вывод команды dir отсылается в команду-фильтр find. Имена файлов, содержащие строку «LOG», хранятся в файле loglist в виде списка (например, , и ).

При использовании нескольких фильтров в одной команде рекомендуется разделять их с помощью знака канала |.