Не зна­ешь, чем занять­ся в праз­дни­ки? Не пых­тишь над гряд­кой, под­ста­вив пятую точ­ку сол­нцу? Не орешь пес­ни в пьяном уга­ре? Не беда! Сей­час я тебе рас­ска­жу о замеча­тель­ных прог­рам­мках, копание с которы­ми тебя обя­затель­но раз­вле­чет. А может быть, что‑то из это­го потом будет радовать тебя каж­дый день!

Это уже чет­вертая статья о кон­соль­ных ути­литах, которые дела­ют нашу жизнь луч­ше. В пер­вой мы рас­смат­ривали в основном сетевые ути­литы, во вто­рой — даш­борды и про­чие укра­шатель­ства. В треть­ей я скон­цен­три­ровал­ся на жиз­ни в Windows с WSL.

Я думал было закан­чивать серию, но вы про­дол­жаете при­сылать мне ути­литы, которые счи­таете незас­лужен­но забыты­ми на (веб-) стра­ницах Хакера. Поэто­му сегод­няшняя под­борка будет поч­ти пол­ностью сос­тоять из прис­ланных читате­лями инс­тру­мен­тов, часть из которых я уже взял себе на воору­жение. Думаю, и в твой чемодан­чик что‑то най­дет­ся. Пош­ли смот­реть!

 

Работа с файлами

Goful

Goful — это новень­кий двух­панель­ный фай­ловый менед­жер, написан­ный на Go. Он под­держи­вает мно­гие полез­ные фичи вро­де груп­пового пере­име­нова­ния с помощью регуля­рок и поис­ка. Есть встро­енный тер­минал и мно­гие дру­гие полез­ности.

Скриншот Goful
Скрин­шот Goful

Уп­равля­ется он нем­ного неп­ривыч­но, но удоб­но: вмес­то шот­катов из двух‑трех кно­пок здесь положе­но нажимать все­го по одной. Нап­ример:

  • про­белом мож­но выб­рать один или нес­коль­ко фай­лов (как кли­ки с зажатым Ctrl в гра­фичес­ких сре­дах);
  • \ переб­расыва­ет в кор­невую дирек­торию (нем­ного неоче­вид­но, потому что слеш тут обратный, а не пря­мой, как при­нято в ник­сах);
  • i — пос­мотреть файл в стра­нич­ном прос­мот­рщи­ке;
  • b — добавить зак­ладку на файл;
  • f / — открыть поиск по фай­лам в текущей пап­ке;
  • K — соз­дать пап­ку;
  • d — перей­ти по пути.

Са­мо собой, это лишь малая часть команд. Пол­ный спи­сок есть в README репози­тория.

Ус­тановить Goful мож­но одним из двух спо­собов. Пер­вый — прос­то ска­чать и запус­тить бинар­ный ре­лиз из репози­тория на GitHub. Для вто­рого понадо­бит­ся уста­нов­ленный на тво­ей машине Go:

go install github.com/anmitsu/goful@latest

Goful и так выг­лядит неп­лохо, но мож­но его еще и кас­томизи­ровать: менять управле­ние, цве­та, интер­пре­татор встро­енной коман­дной стро­ки, редак­торы и прос­мот­рщи­ки. Кон­фигура­цион­ного фай­ла нет, вмес­то это­го пред­лага­ется пра­вить main.go, пос­ле чего пере­уста­новить коман­дой go install.

Nnn

Nnn
Nnn

Nnn — это один из самых минима­лис­тичных кон­соль­ных фай­ловых менед­жеров. Его глав­ное пре­иму­щес­тво — прос­тота и нет­ребова­тель­ность, хотя пос­леднее в мире домаш­них компь­юте­ров с 32 Гбайт опе­ратив­ки ста­ло неак­туаль­но.

В Ubuntu ты можешь уста­новить nnn пря­мо из репози­тория:

sudo apt install nnn

Те­перь ког­да угод­но пиши nnn, и можешь лететь по катало­гам с ветер­ком! Встро­енную справ­ку в любой момент мож­но открыть, нажав знак воп­роса.

Ncdu

Ncdu (NCurses Disk Usage) — это про­качан­ная вер­сия du, которая показы­вает занятое мес­то в кра­сивом псев­догра­фичес­ком интерфей­се.

С ncdu ты можешь не толь­ко смот­реть, сколь­ко занима­ют фай­лы в каком‑то катало­ге, но и лег­ко переме­щать­ся меж­ду ними, а если решишь уда­лить что‑то ненуж­ное, то дос­таточ­но будет нажать кноп­ку d. Естес­твен­но, по слу­чай­ному нажатию прог­рамма ничего не уда­лит — в нее встро­ен новей­ший телепа­тичес­кий ана­лиза­тор, который про­верит твои намере­ния, зап­росив под­твержде­ние.

Ус­танов­ка прос­та как два руб­ля:

sudo apt install ncdu

При запус­ке ncdu прос­каниру­ет текущую пап­ку и выдаст резуль­таты. Путь для ска­ниро­вания мож­но ука­зать пер­вым аргу­мен­том:

ncdu /

Ути­лита работа­ет с впе­чат­ляющей ско­ростью, чем немало раду­ет.

Diffoscope

Ког­да обыч­ного diff мало, может при­годить­ся diffoscope. Кро­ме тек­сто­вых фай­лов, эта шту­кови­на уме­ет срав­нивать пап­ки, архи­вы, бинар­ники, ISO-обра­зы, PDF-докумен­ты и кучу все­го еще — под­держи­вает­ся око­ло 70 типов фай­лов. Пол­ный спи­сок дос­тупен в выводе diffoscope -h.

Diffoscope сравнивает бинарники
Diffoscope срав­нива­ет бинар­ники

Ус­танов­ка на Debian и Ubuntu дела­ется одной коман­дой:

sudo apt install diffoscope

Прав­да, при такой уста­нов­ке на чис­тую Ubuntu ска­чалось 1124 пакета сум­марным объ­емом око­ло полуто­ра гигабайт, потому что в зависи­мос­тях есть Python, Java и X-сер­вер. Зачем это кон­соль­ной ути­лите — неиз­вес­тно.

Есть вер­сия для Docker:

docker run --rm -t -w $(pwd) -v $(pwd):$(pwd):ro registry.salsa.debian.org/reproducible-builds/diffoscope

А еще есть вер­сия diffoscope для бра­узе­ра — try.diffoscope.org (на скрин­шоте имен­но она).

Eget

Eget — это клас­сная ути­лита, с помощью которой мож­но уста­нав­ливать софт из репози­тори­ев GitHub, где авто­ры раз­мести­ли релизы с бинар­никами.

Ес­ли бы eget мож­но было уста­новить с помощью eget, то дос­таточ­но было бы написать

eget zyedidia/eget

Ес­ли же eget у тебя еще нет, при­дет­ся вос­поль­зовать­ся готовым ре­лизом или скрип­том‑уста­нов­щиком:

curl https://zyedidia.github.io/eget.sh | sh
 

Сеть

Wireproxy

Ес­ли тебе нуж­но исполь­зовать Wireguard, но по каким‑то при­чинам не хочет­ся под­нимать пол­ноцен­ный кли­ент, обра­ти вни­мание на wireproxy. Он под­клю­чает­ся к пиру по про­токо­лу Wireguard, но не соз­дает новый сетевой интерфейс, а под­нима­ет SOCKS5-прок­си, который ты можешь ука­зывать в сво­их прог­раммах.

Ус­танов­ка сво­дит­ся к трем строч­кам в тер­минале:

git clone https://github.com/octeep/wireproxy
cd wireproxy
go build ./cmd/wireproxy

Ес­ли же у тебя нет Go — не беда, прос­то ска­чай соб­ранный ре­лиз.

За­пуск тре­бует все­го одно­го парамет­ра:

./wireproxy -c <config file>

Кон­фиг — стан­дар­тный для Wireguard, но в него нуж­но добавить две сек­ции (ком­мента­рии оста­вил для ясности):

# TCPServerTunnel is a tunnel listening on wireguard,
# and it forwards any TCP traffic received to the specified target via local network.
# Flow:
# <an app on your wireguard network> --(wireguard)--> 172.16.31.2:3422 --> localhost:25545
[TCPServerTunnel]
ListenPort = 3422
Target = localhost:25545
# SOCKS5 creates a SOCKS5 proxy on your LAN, and all traffic would be routed via wireguard.
[Socks5]
BindAddress = 127.0.0.1:25344
# SOCKS5 authentication parameters, specifying username and password enables
# proxy authentication.
#Username = ...
# Avoid using spaces in the password field
#Password = ...

Бо­лее под­робно про wireproxy читай в ре­пози­тории про­екта.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Подписаться
Уведомить о
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии