Полный список необычных, но очень полезных команд оболочки Linux

Полный список команд Linux Титульное изображение

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

Инструкции по установке предназначены для систем на базе Debian, они были протестированы на Raspberry Pi OS, на Raspberry Pi 4 / 1 ГБ. YMMV на других системах, но просто попробуйте и попробуйте эти команды 🙂 .

sudo !!!

Это приведет к выполнению предыдущей команды с предварительным sudo. Очень полезно, если вы забыли добавить к команде sudo:

apt-get update
sudo !!

Нет необходимости устанавливать его, если sudo есть в вашей системе, это должно сработать. Обратите внимание на пробел между sudo и восклицательными знаками.

Команда sudo-prepended также будет добавлена в вашу историю bash, чтобы вы могли легко получить к ней доступ, набрав клавишу со стрелкой "вверх" для ее повторения. (Я продемонстрировал это в анимации выше. sudo !!! сам НЕ будет добавлен в вашу историю)

так (кошка задом наперед)

Эта удобная инструкция встроена вместе с ее более известным братом, cat. Передайте ей файл, чтобы она изменила порядок строк в файле, напечатав сначала последнюю строку:

tac /etc/magic

Эта команда может пригодиться, например, если вы просматриваете файлы журналов.

tldr - manpages, simplified!

manpages полезны, но иногда довольно длинны. Приходилось ли вам искать в Google, вместо того чтобы заглянуть в manpage? Просто потому, что вам нужны примеры из реальной жизни для ежедневного использования, а не всевозможные "колокольчики и свистки" команды? tldr поставляет "совместные шпаргалки по консольным командам".

TL;DR: tldr это инструмент для получения краткого описания команд Linux.

Существует также PDF-версия (tldr.sh) который включает в себя все доступные в настоящее время страницы tldr

установка tldr

Примечание: Это потребует установки npm / node.js в вашей системе Linux.

npm install -g tldr

использование tldr

просто тип tldr затем команду, которая вас интересует. При первом запуске tldr обновит свой кэш и создаст индекс, что займет некоторое время. Например, чтобы посмотреть страницу tldr о gzip, выполните:

tldr gzip

внесение вклада и альтернативы tldr

Если вы хотите внести свой вклад в tldr, посмотрите на GitHub - tldr-pages/tldr: 📚 Совместные шпаргалки для консольных команди руководство по внесению взносов.

Существуют некоторые альтернативы:

  • Чит
  • Bro Pages ("просто переходите к делу")
  • нави - позволяет просматривать шпаргалки в интерактивном режиме и создавать команды, которые вы хотите выполнить
  • cheat.sh - можно использовать, ничего не устанавливая, с помощью curl

how2 - stackoverflow из терминала

tldr и cousins действительно полезны, если вы уже знаете команду, которую собираетесь выполнить. Но что делать, если вы знаете только то, что вам нужно сделать, но еще не знаете, как? Все мы знаем, как могут отвлекать браузеры. Инструмент how2 поможет вам получить быстрый ответ, не выходя из командной строки.

установка how2

Требуется, чтобы в вашей системе были установлены node.js и менеджер пакетов npm.

sudo npm install -g how-2

использование how2

how2 mount an NTFS drive in Raspbian

Если вас устраивает ответ, нажмите клавишу Enter для выхода из how2 - в противном случае нажмите пробел, чтобы получить больше вариантов. Для навигации используйте клавиши со стрелками на клавиатуре, а для выхода - Esc.

howdoi - получение ответов на вопросы по кодированию из командной строки

Аналогичным образом, если вы ищете ответы на вопросы по кодированию в командной строке, не переключаясь на браузер, загляните на сайт как это сделать:

как установить

sudo apt-get update
sudo apt-get install libxml2-dev libxslt-dev python3-lxml python-lxml python-dev
sudo pip3 install howdoi

используя как я

howdoi howdoi
howdoi use tensorflow in python
howdoi -c shut down the system with Python

Сайт -c флаг включает цветной вывод. По умолчанию howdoi будет искать с помощью Google, но вы также можете выбрать использование bing или duckduckgo.

autojump - более быстрый способ навигации по файловой системе

автопрыжок ведет базу данных каталогов, которые вы чаще всего посещаете из командной строки, и позволяет перейти к каталогу, указав только часть его имени. Нет необходимости многократно cd в ваш целевой каталог!

установка автоперехода

sudo apt-get update
sudo apt-get install autojump

По соображениям политики, вам нужно будет вручную добавить autojump в ~/.bashrc для интерактивных оболочек без входа в систему и в ~/.bash_profile для оболочек с входом в систему:

nano ~/.bashrc

и добавьте следующую строку внизу:

. /usr/share/autojump/autojump.sh

Примечание: вам нужно будет снова открыть Терминал / переподключиться через SSH, чтобы это было применено.

использование автоперехода

autojump поставляется с удобным ярлыком "j", который помогает набирать меньше текста. Чтобы начать работу с autojump, необходимо предварительно задать пути к каталогам. Перейдите по обычному пути, например

cd /etc/python

После создания кэша посещаемых каталогов (autojump будет отслеживать частоту посещений!), вы сможете перейти к ним, набрав часть названия, например:

j pyt

Похожие инструменты на autojump

Существует несколько приложений, похожих на autojump:

mtr - комбинация ping и traceroute

mtr покажет вам путь сетевых пакетов к хосту от вашего Raspberry Pi. Это полезно для диагностики сети, например, для анализа задержки. Но также просто интересно посмотреть, как работает Интернет, передавая ваши пакеты от одного узла к другому 🙂 .

установка мтп

sudo apt-get update
sudo apt-get install mtr

Использование мтр

mtr

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

bat: кодирование файлов с подсветкой синтаксиса

Существует множество клонов кошек: летучая мышь - клон кошки с крыльями. У него есть несколько дополнительных функций, которые делают его мощной заменой кошке:

  • подсветка синтаксиса для многих языков программирования и разметки
  • интеграция с git для отображения изменений
  • опционально показывать непечатаемые символы (используя -A флаг)

По умолчанию bat также передает свой собственный вывод на пейджер (например. меньше), если вывод слишком велик для одного экрана.

установка летучей мыши

Сайт страница летучей мыши на GitHub дает инструкции по установке для различных систем Linux (и даже Windows!).

bat в настоящее время доступен только в "sid" (нестабильной) версии Debian. Чтобы установить его на Raspberry Pi OS, перейдите по адресу https://github.com/sharkdp/bat/releases, и загрузите соответствующий пакет. (если вы используете 32-битную ОС Raspberry Pi, используйте bat_*.armhf.deb, для 64-битной - bat_*_arm64.deb; если вы устанавливаете это на систему x86 / AMD64, эти пакеты также доступны).

cd /tmp
wget https://github.com/sharkdp/bat/releases/download/v0.17.1/bat_0.17.1_armhf.deb
sudo apt-get install ./bat_0.17.1_armhf.deb

использование летучей мыши

Просто используйте летучая мышь как вы бы использовали кот:

bat example.py

Подсветка синтаксиса будет определяться по первой строке файла (в идеале - по шебангу, например, #!/bin/sh)

asciinema & svg-term-cli: создание SVG-роликов из взаимодействий оболочки

Примечание: это asciinema, не аскикино 🙂 .

Вы можете использовать Студия OBS захватить экран и создать ролик для YouTube, демонстрирующий оболочку. Но - это видео, которое имеет некоторые недостатки:

  • размер
  • разрешение фиксировано

asciinema позволяет захватывать их в виде текстовых потоков и публиковать в виде так называемых asciicast. Вы можете встраивать их в свои страницы, включив небольшой фрагмент JavaScript, который они предоставляют. Посмотрите пример асикаста которые мы записали для этой статьи в блоге.

При использовании с svg-term-cli, он позволяет создавать SVG-анимации! Эти ролики представляют собой векторные анимации, идеально подходящие для взаимодействия в оболочке. Они меньше, чем видеофайлы, и могут быть увеличены без потери качества. Кроме того, не требуется JavaScript. Однако при включении большого количества таких анимаций я рекомендую использовать опции JavaScript - иначе пострадает производительность страницы.

Монтаж аскинемы

Вот ссылка на инструкции по установке для asciinemaМы рассмотрим их для Raspberry Pi OS (Debian):

sudo apt-get update
sudo apt-get install asciinema

Кроме того, вам следует создать учетную запись на сайте asciinema.org - вам нужен только адрес электронной почты, и свяжите свою учетную запись с установкой asciinema на вашем Raspberry Pi, выполнив:

asciinema auth

Это сгенерирует для вас URL-адрес - посетив его, находясь под своим логином, вы свяжете локальную установку asciinema с вашей учетной записью asciinema.org. Это позволит вам управлять записями (устанавливать названия, редактировать описания, делать их публичными) и избежать автоматического архивирования записей через 7 дней.

Установка svg-term-cli

Примечание: для этого требуется node.js и менеджер упаковки npm для работы. Это необходимо только в том случае, если вы хотите создать анимированные файлы .SVG из ваших асикастов.

sudo npm install -g svg-term-cli

Использование аскинемы

Чтобы начать запись, введите:

asciinema rec

Это вызовет новый экземпляр оболочки и начнет запись взаимодействия с терминалом. Чтобы закончить запись, нажмите Ctrl + D или тип выход

Теперь asciinema спросит вас, хотите ли вы загрузить свою запись на сайт asciinema.org (нажав кнопку Войти), или сохранить его локально (нажав кнопку Ctrl + C). В последнем случае a .cast файл будет создан во временном каталоге:

аскинема: запись завершена
asciinema: нажмите для загрузки на asciinema.org, для сохранения локально
asciinema: asciicast сохранен в /tmp/tmp21kux252-ascii.cast

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

asciinema rec /tmp/example.cast

Совет: перед началом записи измените масштаб окна терминала до разрешения столбцов и строк, которые вы хотите видеть в анимации; опции svg-term-cli -width и -height просто обрежут вывод.

Чтобы загрузить файл в asciinema, теперь можно выполнить команду:

asciinema upload /tmp/example.cast

См. на этой странице вы найдете более подробные инструкции по использованию аскинемы.

Преобразование файла asciinema .cast в файл .svg с помощью svg-term-cli

Одним из вариантов (и рекомендуемым по соображениям производительности) является размещение ваших .cast файлов на сайте asciinema.org - который является хорошо документированы на их странице. Здесь мы рассмотрим возможность преобразования записи в анимированный файл .svg.

svg-term --in /tmp/tmp21kux252-ascii.cast --out /tmp/example.svg

Примечание: WordPress отключает загрузку SVG по умолчанию из соображений безопасности. Есть плагины, позволяющие загружать SVG в безопасном режиме.

exa: современная замена ls

Хотя ls можно заставить отображать цвета, exa использует цвета действительно оптимизированным способом и поддерживает вас дополнительной информацией.

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

установка экса

sudo apt-get update
sudo apt-get install exa

используя пример

exa

exa работает аналогично ls. используйте флаги -l чтобы отобразить список с подробной информацией о ваших файлах и каталогах, -T для отображения древовидного представления, включая подкаталоги, и -Tl для отображения комбинированного представления дерева/деталей. См. документация exa для получения дополнительной информации.

shuf: рандомизация строк в файле

Допустим, вы хотите создать случайный список (пользователей, действий - выбирайте сами!) путем перетасовки записей в файле. Что ж, вам повезло с этим инструментом (который уже должен быть предустановлен):

shuf example.txt

установка: создание фальшивых личностей

Иногда страница заставляет вас зарегистрироваться, указав свою личность. Эти страницы умны: например, они проверяют, совпадает ли ваш город с вашим ZIP-кодом. rig позволяет справиться с этой проблемой, предоставляя вам неограниченное количество поддельных идентификаторов по запросу (США), которые должны быть в некоторой степени правильными географически. rig сама по себе основана на соответствующем названии "поддельного" приложения MSDOS.

Монтаж буровой установки

sudo apt-get update
sudo apt-get install rig

Использование буровой установки

rig

browsh - современный текстовый браузер

Мы все знаем о рыськоторый позволяет открывать любую веб-страницу (например, Wikipedia) из командной строки. lynx, по состоянию на 2020 год, является самым старым веб-браузером, который все еще поддерживается, начав свою работу в 1992 году.

А как насчет тех случаев, когда линукс просто не подходит? Когда вы хотите воспроизводить видео с YouTube, заходить на веб-страницы, используя JavaScript для рендеринга содержимого, и т.д.?

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

Примечание: для запуска этого приложения рекомендуется использовать Pi 4, и оно все равно будет казаться довольно медленным - вы просите Pi выполнять серьезные тяжелые задачи! Но это весело и, я уверен, будет полезно пользователям с более мощными системами.

установка browsh

Отправляйтесь в загрузки browsh страницу и получите соответствующий пакет. Например, для Debian ARMv7:

cd /tmp
wget https://github.com/browsh-org/browsh/releases/download/v1.6.4/browsh_1.6.4_linux_armv7.deb
sudo apt-get install ./browsh_1.6.4_linux_armv7.deb

Это также автоматически подключит Firefox, если у вас его еще нет.

использование browsh

browsh https://google.com

и подготовиться к подождите довольно много.

у Бровша хорошая документация. вот несколько советов:

  • Используйте Ctrl+q выйти из броузера
  • клавиши со стрелками для прокрутки
  • Backspace для возврата в историю
  • ctrl + l сосредотачивается на панели URL

browsh даже поддерживает просмотр с вкладками! Также он поддерживает интересную технологию под названием мош что позволяет использовать более быстрые, прогнозируемые снаряды по нестабильным каналам связи.

nohup: продолжение работы приложения после выхода из сеанса SSH

Я помню это как "отсутствие зависания". Обычно, когда вы выходите из сеанса SSH, приложение, которое было запущено в вашем сеансе, получает сообщение ССЫЛКА сигнал. Что обычно приводит к завершению работы приложения.

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

добавляя к команде нохуп позволит ему продолжать работу, даже когда оболочка закрыта или SSH отключен. Обычно я сочетаю это с амперсандом (&), чтобы запустить команду в фоновом режиме:

nohup ./myscript.sh &

lolcat: раскрасьте вывод оболочки. Я имею в виду, действительно раскрасьте его!

Вам иногда кажется, что миру, и в частности ракушке, не хватает цвета? Не волнуйтесь больше - lolcat на помощь.

установка lolcat

sudo apt-get update
sudo apt-get install lolcat

использование lolcat

lolcat можно использовать, как cat, для вывода файлов в shell:

lolcat /etc/magic

Кроме того, как и cat, он может читать из stdin и передавать в него данные, чтобы привнести в вашу жизнь еще немного красок:

man lolcat | lolcat
sudo apt-get update | lolcat

cal: встроенный календарь

В Linux есть маленькие сюрпризы, например, встроенный календарь.

cal

Если вы хотите увидеть предыдущий и следующий месяц, а также текущий месяц, введите

cal -3

Заключение

Ну вот и все, друзья! Окончательный список всех команд Linux, о которых вы даже не подозревали!

Ищете другие советы по программированию? Ознакомьтесь с нашей статьей "9 Трюки с Python REPL“!

1 комментарий

  1. [...] если вы еще не освоили основные команды терминала Linux, то создание такого киберпалубы гарантированно вдохновит вас [...].

Комментировать