Для пользователей Linux это особенный момент, когда мы впервые открываем терминал и начинаем работать с системой наиболее эффективным, мощным и гибким способом. Однако ваш первый вход в терминал потенциально может напугать, поскольку все, что вас встретит, — это мигающий курсор и бесконечный мир возможностей. Чтобы помочь в этом, мы покажем вам несколько советов и приемов Bash, которые помогут работать в терминале умнее, а не усерднее.
Также читайте: Основные команды Bash для новичков в Linux
Поиск команд с помощью Apropos
Apropos (app-row-POE) — это команда, которая позволяет находить команды с man
или введенные вручную записи на основе их описания. Если вы когда-либо находили справочную страницу команды, она выглядит примерно так:
Contents
Поиск команд с помощью Apropos
верху. Если бы я хотел найти командуping
с помощью apropos
, я бы набрал apropos icmp
в своем терминале и нажал Enter. Обратите внимание, что оно не чувствительно к регистру. Это вызовет каждую команду с записью NAME, в которой есть «ICMP».
Еще одно полезное применение apropos
— изучение инструментов, с которыми вы, возможно, не знакомы, например selinux
. Введя команду apropos selinux
, вы получите список всех различных команд, которые вы можете использовать для взаимодействия с SELinux, что поможет вам начать путь к эффективному обеспечению соблюдения требований.
Замена предыдущей команды
Что-то, что сэкономило мне массу времени в терминале, — это выяснение того, как что-то заменить в предыдущей команде. Если я что-то написал с ошибкой или мне просто нужно заменить параметр в предыдущей команде, я могу использовать клавишу ^
, чтобы извлечь слово с ошибкой, а затем еще одну клавишу ^
, чтобы вставить слово. слово или вариант, который мне нужен.
Давайте рассмотрим пример. Допустим, я хочу проверить связь с maketecheasier.com, чтобы убедиться, что у меня есть полное подключение к Интернету (включая DNS). Но если я что-то опечатаю, то могу получить какую-то ошибку. Так что, если я случайно пропингую сайт maktecheaser.com (пропущу букву «i»), у меня возникнут проблемы.
Чтобы заменить параметр с ошибкой, я могу ввести ^maktecheaser.com^maketecheasier.com
, и команда выполнится должным образом. Это простой пример, но предположим, что вы запускаете длинную команду с множеством опций или неправильно направляете вывод или ошибки вашей команды. Возможность заменить >
на >>
в сложной команде спаса
Замена предыдущей команды
async" src="https://saintist.ru/wp-content/uploads/2024/05/bash-tips-and-tricks-ping-example.jpg" alt="Советы и рекомендации по Bash. Пример пинга">Другой пример — системный и команда systemctl
. Я часто использую несколько разных подкоманд systemctl
, например запуск, остановку, включение или отключение службы. Я могу просто заменить их ^start^enable
, что сэкономит мне время.
!!
Это действительно полезно в одном конкретном случае, который часто со мной случается. !!
(бах-бах) полностью выполнит предыдущую команду. Это может показаться бесполезным, но если вы подумаете о том, сколько раз вы вводите команду, которую нужно запускать с правами суперпользователя, вы начнете понимать, где это полезно.
Отличный пример — сценарии установки. Допустим, вы запустили сценарий установки с именем «./SCRIPT-NAME.sh», и он говорит, что вам нужно запустить его с правами суперпользователя. Просто введите sudo !!
, введите свой пароль — и вперед к гонкам. Это сэкономит кучу времени, и как только вы запомните эту последовательность в мышечной памяти, вы сможете выполнять ее быстрее, чем когда вы делали это неправильно.
Передача аргументов из предыдущих команд
Используя !$
, мы можем передать последний аргумент из команды в текущую команду, а с некоторыми небольшими вариациями мы можем передать любой из аргументов в нашу текущую команду.
Давайте рассмотрим несколько примеров. Если я редактирую сценарий, я могу использовать команду nano samplescript.sh
. Как только я закончу этот сценарий, я хочу сделать его исполняемым, поэтому я могу изменить восьмеричные разрешения на 755 . Для этого я мог бы использовать команду chmod 755 !$
. Затем, чтобы снова получить имя сценария, я мог бы использовать ./!:2
для понижения второго аргумента.
Другие примеры:
!^ - first argument !* - all arguments !:2-$ - second through last arguments !:2-!!> - second through fourth arguments
Вы можете подставить свои цифры, чтобы получить любые аргументы, которые вам нужны. С помощью этого метода Bash будет хранить около 100 аргументов, и вы сможете легко и быстро выполнять некоторые мелкие задачи, подобные этой.
Надеюсь, вам понравились эти советы и рекомендации по Bash, которые помогут вам эффективнее работать в терминале. Вам также следует узнать о Переменные Bash и специальные символы .