[Перевод] Как ускорить работу в командной оболочке Bash

mvkwd-no9pjlfgxmnlwqevcp-ei.png


Любому начинающему разработчику необходимо научиться пользоваться командной строкой. При этом для выполнения в ней команд требуется оболочка. В статье речь пойдёт об оболочке Bash, которая популярна в UNIX-подобных системах и в большинстве дистрибутивов Linux используется штатно.

Впрочем, с помощью WSL (Windows Subsystem for Linux) Bash можно использовать и в Windows.

Когда же основной набор команд освоен, перед нами встаёт вопрос о повышении скорости работы.

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

Ниже приводятся 10 команд Bash, которые помогут вам ускорить работу в терминале.

1. Используйте Control + L для очистки экрана и Control + D для выхода


Для очистки экрана терминала мы вводим в командной строке clear. Для выхода вводим exit.

Удобнее же очищать экран нажатием Ctrl + l (⌘ + l), а закрывать терминал сочетанием Ctrl + d (⌘ + d).

2. Используйте nohup для порождения процессов, не завершающихся с сеансом терминала


Загруженные в память программы называются процессами.

Иногда я запускаю Firefox из командной строки:

firefox https://freecodecamp.org


Но в таком случае при выходе из терминала браузер вылетает.

Избежать этого помогает команда nohup (no hang up):

nohup firefox https://freecodecamp.org


Теперь при закрытии терминала Firefox не вылетает, но вылетает моя вкладка.

Лечится это запуском Firefox в качестве фонового процесса с помощью флага &:

nohup firefox https://freecodecamp.org &


Теперь при выходе из терминала вкладки не страдают.

3. Используйте для завершения процессов pkill


С помощью команды killall можно завершать процесс по его имени:

killall firefox


Но удобнее использовать для этого pkill, которая позволяет вводить лишь часть имени:

pkill fire*


4. Добавляйте команду time, чтобы узнать скорость выполнения программы


Хотите узнать, как долго выполняется некая программа в оболочке?

Просто добавьте в начале команды запуска time:

time gcc -g *.c


5. Просматривайте имя дистрибутива Linux с помощью cat /etc/*rel*


Выполнение uname -a выводит информацию о системе. Хотите перепроверить, в каком дистрибутиве работаете?

Просто наберите в оболочке cat /etc/*rel* и нажмите «Ввод».

6. Для поиска и замены в текстовых файлах используйте sed


Нужно заменить множественные вхождения слова в текстовом файле?

Используйте команду sed:

sed s'/apples/oranges/g' myfile.txt


В этом случае все вхождения слова apples будут заменены на oranges.

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

sed s'/apples/oranges/' myfile.txt


Символ g означает «глобально». В качестве разделителя здесь выступает прямой слэш, хотя по факту можно использовать любой другой символ, например, нижнее подчёркивание:

sed s'_apples_oranges_'g ` myfile.txt


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

Для изменения самого файла используйте флаг -i:

sed -i s'_apples_oranges_g' myfile.txt


7. Просматривайте публичный IP компьютера с помощью curl


Существует два типа IP-адресов: закрытые и публичные.

Закрытый IP присваивается системой, и его можно уточнить с помощью команды ifconfig.

Если же вы хотите узнать публичный IP вашего ПК, который провайдер присваивает вашему интерфейсу, то при подключённом интернете просто выполните в командной строке:

curl ifconfig.me ; echo


или

curl ifconfig.co ; echo


8. Используйте для обратного поиска Ctrl + R (⌘ + R)


При нажатии клавиши «вверх» отображается последняя введённая команда. При выполнении history выводятся все введённые команды из истории Bash.

Однако удобнее нажать Ctrl + r (⌘ + r) и начать набирать команду, на что оболочка начнёт предлагать автозаполнение из истории, и вам останется нажать «Ввод», когда будет найдена искомая команда.

Если запоминать из всего руководства лишь что-то одно, то запомните именно эту комбинацию: Ctrl + r (⌘ + r).


Гарантирую — она сэкономит вам уйму времени.

9. Применяйте оболочку для математических операций


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

:~$ echo $((19*34))
:~$ 646


При вычислении с участием дробей просто предваряйте выражение командой echo и передавайте его команде bc:

:~$ echo "scale=2; 9*3/((2*2)+1)" | bc
:~$ 5.40


Здесь scale означает нужную десятичную точность.

10. Используйте раскрытие скобок для создания множества файлов


Как создать в каталоге 100 файлов?

file1.txt, file2.txt, file3.txt ... file100.txt


С помощью раскрытия скобок:

touch file{1..100}.txt


К примеру, для проекта нужно создать три файла: app.html, app.css и app.js

Вместо поочерёдного их создания — можно просто сделать так:

:~$ touch app.{html,css,js}
:~$ ls
app.html app.css app.js
:~$ 


Если же внутри каталога проекта нужно создать, скажем, пять каталогов: images, css, src, templates и scripts, то можно поступить так:

:~$ mkdir {images,css,src,templates,scripts}
:~$ ls
images css src templates scripts
:~$


Здесь есть лишь один нюанс: необходимо убедиться, чтобы между словами в скобках отсутствовали пробелы.

Подытожим


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

Заучите эти команды, и они сослужат вам добрую службу на пути освоения программирования.
Успехов!

oug5kh6sjydt9llengsiebnp40w.png

© Habrahabr.ru