Советы и хитрости Bash для более умной работы в терминале

Советы и хитрости Bash

Как пользователи Linux, это особый момент, когда мы впервые открываем терминал и начинаем работать с системой наиболее эффективным, мощным и гибким способом. Однако ваше первое погружение в терминал может быть пугающим, так как вас встречает только мигающий курсор и бесконечный мир возможностей. Чтобы помочь с этим, мы покажем вам несколько советов и хитростей Bash, чтобы работать умнее, а не усерднее, в терминале.

Также читайте: Основные команды Bash для новичков в Linux

Поиск команд с помощью Apropos

Apropos (апро-по) — это команда, которая позволяет вам находить команды с помощью man или справочных записей на основе их описания. Если вы когда-либо находили страницу man для команды, она выглядит примерно так:

Советы и хитрости Bash Man

Эта секция “NAME” вверху — это то, о чем я говорю. Если я хочу найти команду ping с помощью apropos, я введу apropos icmp в своем терминале и нажму Enter. Обратите внимание, что это не чувствительно к регистру. Это выведет все команды с записью NAME, в которой есть “ICMP”.

Советы и хитрости Bash Apropos

Еще одно отличное применение apropos — это исследование инструментов, с которыми вы, возможно, не знакомы, таких как selinux. Выполнение команды apropos selinux даст вам список всех различных команд, которые вы можете использовать для взаимодействия с SELinux, что поможет вам начать эффективно применять его.

Замена в предыдущей команде

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

Давайте рассмотрим пример. Допустим, я хочу пинговать “maketecheasier.com”, чтобы убедиться, что у меня полное подключение к Интернету (включая DNS). Но если я ошибусь в написании, я могу получить какую-то ошибку. Так что, если я случайно пингую maktecheaser.com (пропустив “i”), у меня будут проблемы.

Чтобы заменить ошибочно написанную опцию, я могу ввести ^maktecheaser.com^maketecheasier.com, и команда выполнится как ожидалось. Это простой пример, но давайте скажем, что вы выполняете длинную команду с множеством опций или неправильно перенаправляете вывод или ошибки вашей команды. Возможность заменить > на >> в сложной команде — это спасение.

Советы и хитрости Bash Пример пинга

Еще один пример — с systemd и командой systemctl. Я часто выполняю несколько различных подкоманд systemctl, таких как start, stop, enable или disable для сервиса. Я могу просто заменить их с помощью ^start^enable, что сэкономит мне время.

!!

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

Отличный пример — это установка скриптов. Допустим, вы запускаете установочный скрипт с “./SCRIPT-NAME.sh”, и он говорит, что вам нужно запустить его с привилегиями суперпользователя. Просто введите sudo !!, введите свой пароль, и вы готовы к работе. Это экономит кучу времени, и как только вы запомните эту последовательность, вы сможете делать это быстрее, чем когда вы делали это неправильно.

Советы и хитрости Bash Бэнг Бэнг

Передача аргументов из предыдущих команд

Используя !$, мы можем передать последний аргумент из команды в текущую команду, а с некоторыми небольшими изменениями мы можем передать любые аргументы в нашу текущую команду.

Давайте рассмотрим несколько примеров. Если я редактирую скрипт, я могу использовать команду nano samplescript.sh. Как только я закончу с этим скриптом, я хочу сделать его исполняемым, поэтому я могу изменить восьмеричные права на 755. Для этого я мог бы использовать команду chmod 755 !$. Затем, чтобы снова получить имя скрипта, я мог бы использовать ./!:2, чтобы получить второй аргумент.

Советы и хитрости Bash Аргументы

Некоторые другие примеры:

!^ - первый аргумент  
!* - все аргументы  
!:2-$ - второй до последнего аргумента  
!:2-4 - второй до четвертого аргумента

Вы можете подставить свои числа, чтобы получить любые аргументы, которые вам нужны. Bash будет хранить около 100 аргументов в памяти с помощью этого метода, и вы сможете легко быстро выполнять некоторые рутинные задачи таким образом.

Я надеюсь, что вам понравились эти советы и хитрости Bash, которые помогут вам работать умнее в терминале. Вам также следует узнать о переменных Bash и специальных символах.