URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 122460
[ Назад ]

Исходное сообщение
"topalias -  утилита для генерации коротких алиасов по истории bash/zsh"

Отправлено opennews , 19-Ноя-20 11:51 
На GitHub опубликована открытая утилита для генерации коротких алиасов на основании истории работы в  bash или zsh....

Подробнее: https://www.opennet.me/opennews/art.shtml?num=54108


Содержание

Сообщения в этом обсуждении
"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено burik666 , 19-Ноя-20 11:51 
$ cat ~/.bash_history | sort | uniq -c | sort -n
Это оно?

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Dzen Python , 19-Ноя-20 20:16 
Ну да. Только надо не забыть fish_history и что там у zsh и других оболочек. Но все равно получится нечто вроде:

cat ~/.bash_history >> ~/temp.txt
cat ~/.local/share/fish/fish_history >> ~/temp.txt
...
cat ~/temp.txt | sort | uniq -c | sort -n

ну и далее для каждой строки нечто подобное

head /dev/urandom | tr -dc A-Za-z0-9 | head -c5

, а если использовать gpw, то можно получить не тот шлак, то выдает сейчас, но нормальные читаемые алиасы,

gpw $num $alias_len

, а если делать как автор, то просто выкусить для каждой команды по 1-3 символов из начала, с проверкой на существование бинарника в общесистемных /bin. А можно вообще делать слово из каждой первой-двух букв после пробела

Как-то так. Простой шелл-скиипт, где сложнее всего собрать все команды со всех шеллов в единый файл.

Но нынешнее поколение этого уже не осилит, поэтому, хм, имеем что имеем.


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено burik666 , 19-Ноя-20 20:22 
> Ну да. Только надо не забыть fish_history и что там у zsh
> и других оболочек.

Обычно известно где лежит HISTFILE используемого shell, так что собирать даже ничего не надо.


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Dzen Python , 19-Ноя-20 20:26 
А ВДРУГ у нашего юзверя powershell?
Хотя да, тогда скрипт серьёзно упрощается. Но ты забыл случай, когда один и тот же юзер использует в одном логоне разные шеллы.

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено burik666 , 19-Ноя-20 20:28 
> Но ты забыл случай, когда один
> и тот же юзер использует в одном логоне разные шеллы.

Тогда и разные алисаы ему могут быть нужны.


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Dzen Python , 19-Ноя-20 20:43 
Которые должны мнемонически обозначать шелл выполнения (префиксом, постфиксом, алконаркиинтеркфиксом) и по-сути уже должны быть обернуты в скрипты, с нормальным вызовом шелла назначения и передачей ему команды соаргументы.

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено leibniz , 19-Ноя-20 11:55 
> Утилита анализирует файлы ~/.bash_history и ~/.zsh_history с историей выполнения команд в терминале Linux

Эти файлы же и содержат историю, нет?


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Аноним , 19-Ноя-20 11:57 
ну да, прога читает историю и предлагает алиасы

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено And , 19-Ноя-20 12:09 
> Эти файлы же и содержат историю, нет?

Их больше. И эти  - тоже.


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено leibniz , 19-Ноя-20 12:17 
Понятно, что больше, ведь не только bash и zsh есть в этом мире. Я про логическую нестыковку в указанном предложении.

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Аноним , 19-Ноя-20 13:36 
Как раз хорошая стыковка же. Файлы такие-то с историей команд. То есть файлы таки-то, содержащие ту самую историю команд. А не файлы такие-то да плюс ещё история команд из другого места.

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено InuYasha , 19-Ноя-20 12:00 
А потом привыкнешь к алиасам, а на чужих тачках их нет ) Как ll.

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено And , 19-Ноя-20 12:07 
Вообще-то, у многих линуксоидов и яблоковедов на Гитхабчике прикопаны свои ~/.bashrc ~/.bash_aliases ~/.config/et-cetera

Либо есть Deb, Rpm пакеты и просто скрипт, распихивающие все эти goodies по нужным углам в чистых системах. Хостить можно в т.ч. на своей флешке. Или там же - в инете.


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено ананим.orig , 19-Ноя-20 23:47 
Угу.
А теперь ещё и история… пароли, явки,..
И алиасы к ним.

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено InuYasha , 20-Ноя-20 14:09 
У меня тоже свой (ba|z)shrc, но на чужие || рабочие серваки их не потащишь.

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено an0nymous , 19-Ноя-20 12:49 
Расскажите им про ctrl + r

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Аноним , 19-Ноя-20 12:59 
Зашёл сюда чтобы это написать. Работает на любой тачке.

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено mumu , 19-Ноя-20 14:57 
В PS работает. Не ожидал. Спасибо!

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Michael Shigorin , 19-Ноя-20 18:51 
Про alt+. знаете?

mkdir здоровенныйкаталог
cd <alt+.>

(или Esc . для некоторых терминалов, но так перебирать неудобно)


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено bw , 19-Ноя-20 20:00 
Мне больше нравится как fish с историей работает.

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено an0nymous , 19-Ноя-20 23:20 
> Про alt+. знаете?
> mkdir здоровенныйкаталог
> cd <alt+.>
> (или Esc . для некоторых терминалов, но так перебирать неудобно)

Спасибо, не знал. Оно я так понимаю только последний аргумент прошлой команды дублирует? я для этого делаю ^, ctrl+<, ctrl+W сколько нужно раз - так чуть гибче


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено FrBrGeorge , 19-Ноя-20 13:10 
Ну, пакет на PyPi нерабочий, (нет конфигурационных файлов)

Cама программ ищет эти самые конфигурационные файлы исключительно в подкаталоге `topalias/data` _текущего_ каталога. Разумеется, не находит, потому что их нет.

А если всё ей вручную скачать и куда надо положить, при попытке прочитать мой .zsh_history — валится при перекодировке.

Лучше бы студенту поручили: их, по крайней мере, учат pip-ы делать и тестировать перед релизом.


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено CSRedRat , 20-Ноя-20 16:29 
В релизе 2.0.13 проблема с поиском файлов .bash_aliases, .bash_history и .zsh_aliases
Также устранены проблемы с кодировкой unicode при чтении истории zsh и ошибки при обработке мультистрочных комманд

Пакет рабочий: https://pypi.org/project/topalias/

Обновите утилиту:
pip3 install -U --user topalias
или
pip3 install -U --user topalias==2.0.13


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено CSRedRat , 20-Ноя-20 17:00 
исправлена* проблема с конфигурационными файлами

даже pull request с решением некоторых проблем присылают:

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


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Аноним , 19-Ноя-20 17:21 
Прога ради проги.
Алиасы  вообще говоря не нужны, а автоматически сгенерированные тем более. Надуманная проблема, вымученное решение...

Если регулярно нужно выполнять какие-то навороченные команды, нужно написать скрипт с ними (и засунуть в крон). Терминал не для того, чтобы выполнять в нем рутинную работу.


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено burik666 , 19-Ноя-20 18:49 
ls -lah засунуть в cron?

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Dzen Python , 19-Ноя-20 20:32 
Но ведь...человек дело говорит.
Засунуть длинные команды с кучей параметров в скрипт, как с тем же ютюбдл. В скрипт просто передавать ссылку и ... всё. Как тут:

#!/bin/bash
# Download single video

if [ -n "$1" ]
then
    cd "~/blah/blah/blah/youtu.be feed"
    youtube-dl -i -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' --no-mtime "$1"
else
    echo "No url to video found."
fi


А смотреть каталоги...хм. Смысл алиаса на команду из 5-6 символов вместе с параметрами?


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено burik666 , 19-Ноя-20 20:35 
> Но ведь...человек дело говорит.
> Засунуть длинные команды с кучей параметров в скрипт, как с тем же
> ютюбдл. В скрипт просто передавать ссылку и ... всё. Как тут:

Сам так делаю.

> А смотреть каталоги...хм. Смысл алиаса на команду из 5-6 символов вместе с
> параметрами?

алиас ll=ls -lah очень популярен.


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Dzen Python , 19-Ноя-20 20:38 
Мда. Не понимаю я этого. Привык уже к тому, что джвумя символами mc вызываю полноценный ФМ и работаю в нем.

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено InuYasha , 22-Ноя-20 13:08 
Однажды, когда много-много сидел в консоли в поисках каких-то файлов, я подумал "а почему бы не повесить ls -lahZ на ll". Каково же было моё удивление, когда он УЖЕ существовал как "ls -l"! Наверное, так я и стал юниксоидом. )

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено СеменСеменыч777 , 19-Ноя-20 19:51 
а для tcsh - нету. дискриминация эмигрантов из *BSD !

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено лютый жабби__ , 19-Ноя-20 20:28 
>а для tcsh - нету. дискриминация эмигрантов из *BSD !

а оно надо? я фряху уже 10 лет не видел, но во всех линухах в tcsh именно за шедевральный родной поиск по истории. пара букв, up up и готово


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Аноним , 19-Ноя-20 19:59 
Ну уже лучше.
А то вот это вот всё
systemctr.stupid.service.do --new_mega_option = 12843 --no_nothing = 887 --post_to_facebook=yes --another=i_do_not_know --ne_pomniu --netu_documentacii +100500_parameters start

уже достало.


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено And , 19-Ноя-20 20:21 
В этом случае с этим работают несколько иначе.

Переменные и параметры в юнит файлах. В юнит файлах может быть имя файла с переменными.

Но тема с --no-pager заела, да. После чего хэйтерство системды. Тоже, видимо, как-то там в другом месте логи читать имелось ввиду...


"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Dzen Python , 19-Ноя-20 20:40 
Короче как с gping - новость ниочем.

"topalias -  утилита для генерации коротких алиасов по истори..."
Отправлено Аноним , 22-Ноя-20 19:58 
кошмар, какая-то куча костылей на питонятине, зачем такую домашку по информатике в новости пихать?