[Перевод] Как ускорить работу в командной оболочке Bash
Любому начинающему разработчику необходимо научиться пользоваться командной строкой. При этом для выполнения в ней команд требуется оболочка. В статье речь пойдёт об оболочке 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, которые помогут ускорить работу в терминале.
Заучите эти команды, и они сослужат вам добрую службу на пути освоения программирования.
Успехов!