LINUX.ORG.RU
ФорумTalks

Переехал на кучу утилит переписаных на Rust

 , , ,


55

8

Тег «угадай автора по заголовку».

Q: Зачем?

A: Ради эксперимента, повысится комфорт пользования терминалом или нет.

Q: Причем тут Rust?

A: Ни при чем, но из-за нативности и отсутствия GC на нем толпа людей побежала переписывать что ни попадя. С таким же успехом можно было бы и npm install, но тормозило бы. Ближе opam install или go get

Теперь мой терминал по истине свистит и пердит. Даю список если кому надо.

  • alacritty - GPU ускоренный терминал.
  • alias cat=bat- cat с хорошей подсветкой синтаксиса и нумерацией строк и пейджером.
  • broot - навигатор по каталогам, который одновременно показывает дерево, но адекватно себя ведет с громадными каталогами, показывая их по чуть-чуть.
  • dust - утилита для исследования места занимаемого каталогами, сортирует деревья файлов начиная с самых больших каталогов.
  • alias ls="exa -l --group-directories-first" ls с хорошими дефолтами, tree встроено.
  • rip Утилита для удаления файлов с разными удобными фичами и восстановлением
  • hors "How do I parse float in javascript?" - находит короткий ответ в интернетах и отвечает. Чуть лучше работает чем оригинал - howdoi.
  • mdcat - cat для Markdown, для отображения удобочитаемой формы документа. Ссылки делает сносками.
  • alias grep=rg - очень быстрый и удобный grep
  • starship - shell command prompt, показывает кучу полезной информации в зависимости от контекста, например git branch если в репозитории, версии софта и ЯП если в каталогах с сорцами, hostname если зайти по ssh.
  • tokei - сборщик статистики по ЯП и строкам кода в деревьях исходников.
  • hyperfine - бенчмарк утилита, time на стероидах.
  • tldr- сокращенная версия man, показывает как чем пользоваться в примерах, а не выдавая полную справку. Страницы поддерживаются сообществом для громадного количества утилит. Изначальный проект - https://tldr.sh/
  • topgrade - универсальная утилита обновления. При запуске пытается обновить все что видит - системные пакеты, vim пакеты и так далее.
  • runiq - быстрый sort | uniq с разными алгоритмами внутри.
  • fd - быстрый и удобный find, удобно чтобы не вспоминать заковыристые ключи
  • fselect - поисковик файлов с SQL-like языком запросов
  • sd - как sed, только интуитивный
  • i3status-rs - Сразу i3status+i3blocks. Плюс батарейки к i3blocks, которые как я понял автор решил убрать.
  • onefetch - Вроде neofetch, но для сорцов. Просто запустите эту штуку с корня любого git репа, клонированого локально
  • wasmtime - JIT runtime для WASI стандарта. Пускалка WebAssembly приложений.
  • scriptisto - «shebang-интерпретатор» для компилируемых языков, прозрачно собирает и кеширует нативные сборки кода

Что не зашло совсем

Все вышеперечисленое ставится через cargo install <package_name> (кроме alacritty), название смотрите на страницах. Сам cargo и Rust ставятся через

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

P.S. Призываю остальных взять ЯП вашей секты и поставить такой эксперимент и отписаться. Да-да, расскажите как вы пользовались ls на Java. Пользователей emacs прошу не беспокоить

★★★★★

Последнее исправление: vertexua (всего исправлений: 11)
Ответ на: комментарий от WitcherGeralt

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

vertexua ★★★★★
() автор топика
Ответ на: комментарий от vertexua

мы тут нанотехнологии уже обсудили как это сделать

Да это всё не shell. Нужно чтобы удобно было руками работать как с башем, а не код там писать.

crutch_master ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Кстати, менять PS1 пришлось бы динамически. Представь что я и с машины А захожу на машину B, и наоборот. А потом с них ещё куда-то

vertexua ★★★★★
() автор топика
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

Не понял. Тебе кратко или Java?

Конечно какой-нибудь костылеязык, а не java. Я на js пилил себе repl, но там await и куча скобок с кавычками, так что всё равно надо какой-то интерпретатор, для замены баша это всё не годится.

crutch_master ★★★★★
()
Ответ на: комментарий от vertexua

Всмыле? Я тебе локально из него хост предложил выпилить. А удалённая сессия если в баше, то там в .bashrc, наверняка, PS1 и так будет с хостнеймом прописан.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

У меня допустим два десктопа, оба доступны по ssh.

Я с одного десктопа захожу на другой. А иногда роли меняются. Значит иногда каждая из машин локальная, а иногда удаленная

vertexua ★★★★★
() автор топика
Ответ на: комментарий от crutch_master

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

vertexua ★★★★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Наоборот хипстерский хлам

Поправка принята. Хипстоглазый.

bread
()
Ответ на: комментарий от vertexua

Ты так говоришь как будто это принципиальная разница. А всего отличия – терраформ и куб завезли. Хорошие админы и двадцать лет назад знали как работают их приложения и общались с разработчиками.

leave ★★★★★
()
Ответ на: комментарий от leave

Дооо, ничего не поменялось, и книжка наверное пустая вся

https://landing.google.com/sre/sre-book/toc/index.html

Такая пустая, что вторую написали

https://landing.google.com/sre/workbook/toc/

vertexua ★★★★★
() автор топика
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Хотя я не думаю, что сам ТС этим особо пользуется. Просто как махровый фанбой насобирал ненужно в /usr/local и радуется.

bread
()
Ответ на: комментарий от vertexua

Девопсы с железом же не работают, не знаю про SRE, но общая инфраструктура это явно не прямая задача.

WitcherGeralt ★★
()
Ответ на: комментарий от vertexua

Guix в твоём сценарии - пакетный менеджер. Один из пары неимпотентных.

t184256 ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Да ладно. fd и rg реально эргономичнее. Я вот как вкусил rg, теперь не слезу с учета .gitignore и очистку от всякого прочего хлама. Семантический смысл другой, «грепни по исходникам».

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

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от t184256

На удалённых хостах этого никогда не будет, следовательно, не нужно. Не таскать же везде весь мусор с собой. А в исходниках IDE ищет, зачем греп?

WitcherGeralt ★★
()
Ответ на: комментарий от vertexua

Да, ля, я когдато изза этой любви к раздуванию проектов в жабомире за .Net и моно серьёзно взялся.

grim ★★☆☆
()
Ответ на: комментарий от WitcherGeralt

Это нужно, чтобы к виму прикрутить, например. Другое дело, что уже есть ack/ag. Зачем еще один лисапед? Только ради раста. Всякие ls и cd со вкусом банана это вообще клиника.

bread
()
Ответ на: комментарий от WitcherGeralt

cd там нету, а ls просто косметика, чо.

vertexua ★★★★★
() автор топика
Ответ на: комментарий от grim

Дык моно ж тормозил

Я благосклонно только к .NET Core отношусь, так как там производительность как минимум Java, лучше эргономика, и нету разброда и шатаний со «сборками». А в Java наплодили миллион отдельных сборок OpenJDK

Но я думаю что без крайней необходимости я бы на них обеих уже ничего не писал

vertexua ★★★★★
() автор топика
Последнее исправление: vertexua (всего исправлений: 3)
Ответ на: комментарий от vertexua

Руки не дойдут никак красивенько поскринить.

«error accessing /dev/hands»?

попробуй chmod a-rwx /dev/ass && mknod /dev/hands p 2 5

crypt ★★★★★
()
Ответ на: комментарий от vertexua

Текст зато писать проще

всеравно в буфер не входит:(

crypt ★★★★★
()
Ответ на: комментарий от vertexua

Ну, я как начал контракторствовать по приезду в Канаду так и продолжаю.

Платят хорошо а что то интересное всегда происходит так как контракторов редко приглашают если все хорошо и по плану :)

И насмотрться можно и напробоваться от схемы и скалы до PHP.

Но с пхп связываться желания не было поэтому послал на юх

grim ★★☆☆
()
Ответ на: комментарий от grim

Ох, а на схеме чё было? Какая схема кстати? Там в реализациях без бутылки не разберёшься. Главное с каждой что-то одно обязательно не так.

То жирная, то однопоточная, то только интерпретатор, то написана одним Васяном

vertexua ★★★★★
() автор топика
Последнее исправление: vertexua (всего исправлений: 2)

Неплохие штуки на педерусте пишут, поставил тройку штук. А дишники, скотобаза такая, имея такой хороший инструмент кодят под себя в стол, аж обидно.

Hertz ★★★★★
()
Ответ на: комментарий от vertexua

Гуль гнутый.

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

Сам бы я до такого не додумался.

Зато сейчас я на скале ;)

grim ★★☆☆
()
Последнее исправление: grim (всего исправлений: 2)

Вот побольше бы таких постов. Кое-что взял себе на заметку. Спасибо автору.

AP ★★★★★
()
Ответ на: комментарий от AP

Не за что. Я тоже призываю людей делиться тем чем они пользуются

vertexua ★★★★★
() автор топика
Ответ на: комментарий от Shadow

У нас в этом треде бесклассовое общество

vertexua ★★★★★
() автор топика

bat хорош, довольно давно уже им пользуюсь. А за список спасибо - несколько утилит заинтересовали, надо будет глянуть на досуге.

najlus ★★★★★
()
Ответ на: комментарий от najlus

Такие штуки лучше ставить на alias чтобы не вспоминать что они есть, а просто получать пользу по умолчанию

vertexua ★★★★★
() автор топика

Провёл аналогичный эксперимент, но с утилитами на языке Си. Пока полёт нормальный.

  • coreutils — набор базовых юникс-лайк утилит
  • cpython — удобный калькулятор для терминала
  • git — система контроля версий
  • gnome-terminal — современный эмулятор терминала, умеет в бесконечный скроллбек
  • grep, sed, awk, perl — набор утилит для работы с текстом
  • htop — системный монитор
  • i3 — оконный менеджер
  • jq — утилита для работы с json
  • mlocate — искалка по имени файла, использует кеш
  • ncdu — TUI-аналог du
  • neovim — текстовый редактор
  • OpenSSH — удалённый шелл
  • sqlite3 — СУБД, хранит БД в файле
  • wget — скачивалка файлов
  • zsh — шелл с кучей встроенных плюшек

Почти всё вышеперечисленное уже есть из коробки. А если вдруг нет, то ставится через стандартные репозитории вашего любимого дистрибутива.

NeXTSTEP ★★
()
Ответ на: комментарий от WitcherGeralt

На удалённых хостах, тем более чужих, я код и не пишу.

А IDE нужны для больших проектов на человеконепригодных языках, проваливших экспрессивность настолько, что писать на них уже не вариант, надо трансформировать код программно. Рад, что IDE хорошо ищут, но, в целом, сочувствую всем, кому приходится их использовать.

t184256 ★★★★★
()
Ответ на: комментарий от NeXTSTEP

cpython - калькулятор

ха

gnome-terminal - современный эмулятор терминала

ахахахахахаха

ничего, наступит в твоей вселенной 2017, заценишь и ты тулзы из стартового поста

t184256 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.