1.3, Alexander (ok), 12:29, 06/07/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
$ curl cheat.sh/определение+внешнего+IP-адреса
Unknown topic.
Do you mean one of these topics may be?
* reg-import 15
* run-mailcap 15
* scala/:main 15
$ curl cheat.sh/Pastebin+для+терминала
Unknown topic.
Do you mean one of these topics may be?
* paste 37
* update-rc.d 36
* pbpaste 34
Недоработочка ;-)
Круто сервис, конечно. Спасибо!
| |
|
2.4, igor_chubin (ok), 12:52, 06/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
Такие запросы можно отправлять только для конкретного контекста (по крайней мере пока что).
Без указания контекста (языка программирования) можно указывать только односложные команды.
Попробуйте такие же запросы но с указанием контекста:
curl cheat.sh/python/определение+внешнего+IP-адреса
curl cheat.sh/bash/определение+внешнего+IP-адреса
curl cheat.sh/bash/Pastebin+для+терминала
Конечно, можно было бы всегда предполагать по умолчанию контекст bash, но это было бы не совсем правильно (потому что вы мысленно можете находиться в другом контесте, и тогда вы будете удивляться почему вам советуют такие ответы). То есть контекст введён намеренно и сознательно.
| |
|
|
4.11, igor_chubin (ok), 17:44, 07/07/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да ну, бросьте.
При всём уважении к вам, Pavlinux, на мой взгляд, вы тут категорически неправы.
То что предлагаете вы, это ещё хуже чем пользоваться графическим браузером. И единственное преимущество у вас в тут в том, что вы можете оставаться в консоли. Но дальше одним только минусы: медленно, неудобно, ненаглядно, никуда не интегрируется и так далее.
Сравните то, что предлагаете вы с тем, что предлагаем мы.
~~~
$ time curl cht.sh/bash/определение+внешнего+IP-адреса
# linux - Methods to detect public IP address in bash
curl ipinfo.io/ip
# Or
wget -qO- ipinfo.io/ip
# Or
lynx -source ipinfo.io/ip
# get public ip address (http://commandlinefu.com/commands/view/7368
# /get-you-pub)
#
# [Steven Penny] [so/q/14594151] [cc by-sa 3.0]
real 0m0.083s
user 0m0.008s
sys 0m0.000s
~~~
Готовый к использованию красиво отформатированный и откомментированный код,
полученный за 0.083s, с ссылками, указание авторства, лицензией и так далее.
Может быть напрямую получен из редактора.
Без необходимости установки html2txt, и тому подобного.
Предлагаемое решение с помощью google() по сути ничего не даёт, кроме того что
открывает поисковик google в links. Дальше нужно ходить и искать ответ как в обычном графическом браузере. Поиск на русском тоже сработает только если ответы есть на русском. А если нет?
Попробуйте поискать так на каком-то другом, менее распространённом языке,
или попробуйте поискать так что-то посложнее. Вы просто не найдёте ничего, потратите много времени на поиски.
Если по каким-то причинам вам не нравится cheat.sh, лучше тогда использовать howdoi или how2, которые тоже хорошо работают.
| |
|
|
|
1.5, Аноним (5), 13:42, 06/07/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Большое Вам спасибо за Ваш труд! Мне, как апологету CLI и нелюбителю раздутых современных браузеров, такое программное решение - как глоток воздуха.
| |
|
|
|
4.8, igor_chubin (ok), 22:20, 06/07/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Мне кажется, что без этого вашего комментария в моей записи оставалась какая-то недосказанность, а вот сейчас всё стало просто отлично. Спасибо большое
| |
|
3.33, Аноним (33), 06:36, 11/07/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
Странный опус, для когото компьютер = развлекаться, для кого-то работать, вэб уже стал заменой консоли, и выдавит ее, не сегодня, так завтра. Лично мне не нравятся железки/софт с онли-вэб, но таких все больше, и если в вэбе проще промазать по кнопке - например, когда правила фаервола прыгают в микротике, можно легко рубануть не то. То у консоли свои "особенности", скопирована строка с переносом строки или без. Но вэб оперирует структурированными данными, чего от грипа добится невозможно. При прочих равных, функционал одинаковый, скрипт на дерганье чего-то через консоль проще в разы, но правильный вэб-2.0 (с RESTful) не сильное усложнение, зато вытащить таблицу как таблицу, а не как html-месиво, которое распарсить 90% кода скрипта, который внезапно улетает за вторую тысячу строк.
| |
|
4.34, igor_chubin (ok), 02:35, 12/07/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Я думаю, что вы ошибаетесь насчёт консоли, насчёт того, что веб её выдавит.
Моё мнение на этот счёт:
Веб никого никуда не выдавит, максимум, что может сделать веб (но даже этого не произойдёт) это перетащить консоль в браузер, но только с тем чтобы это осталось полноценной консолью как сейчас, то есть по сути программой с ярко выраженным текстовым интерфейсом. Собственно, воплощением текстового интерфейса как такового.
А текст никуда не исчезнет в будущем, но он, действительно, вероятно, станет привилегией мыслящих людей (в отличие от людей чувствующих, которым доступны различные средства выражения и коммуникации такие как графическое изображение, музыка, движения тела и всё, что на них основывается, у мыслящих людей текст является единственным прибежищем, соответственно они от него никак не откажутся, а будут всяческие его сохранять и развивать).
С появлением театра и кинематографа книги не исчезли, просто они стали интересны только незначительной части общества. Незначительной, однако, очень влиятельной, по сути, находящейся в вершине мыслительной пирамиды, со всеми остальными средствами коммуникации и выражения находящимися на более низких уровнях и являющимися вторичными и третичными по отношению к ним.
На мой взгляд, аналогичные процессы мы наблюдаем и будем наблюдать в сфере компьютерных интерфейсов, где текст был, есть и будет основой основ, а графические оболочки являются именно что оболочками вокруг него, и не более чем мысленными костылями для людей, которые не могут или не хотят в совершенстве освоить текст.
Вот вкратце, что я думаю об этом, и вот почему я считаю судьбу текста (а текст для меня = терминал + редактор) совершенно безоблачной.
Конечно, это не более чем моё мнение, и оно очень даже запросто может быть ошибочным.
| |
|
5.35, Аноним (33), 04:57, 12/07/2018 [^] [^^] [^^^] [ответить] | –1 +/– | Ага, то-то на каждой первой железке консолька, то бэкспейс не умеет, то делет, а... большой текст свёрнут, показать | |
|
|
|
|
|
2.12, igor_chubin (ok), 17:48, 07/07/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> man пробовали?
Да
Как с помощью man ответить на вопросы по программированию?
Давайте возьмём какой-нибудь вопрос для примера.
Например, я хочу узнать как в
lua прочитать json
Какой man открывать и потом что там искать?
| |
|
3.37, pavlinux (ok), 02:54, 15/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Например, я хочу узнать как в
> lua прочитать json
> Какой man открывать и потом что там искать?
Это вопросы начинающих, а не программиста. А эти консоль уже не знают.
| |
|
4.38, igor_chubin (ok), 05:09, 15/07/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да, так и есть, но только:
1) Можно хорошо разбираться в одном языке программирования, но быть начинающим в другом языке программирования, это довольно типичная ситуация;
2) Из всей консоли нужно знать только команду curl, что довпольно просто;
3) Собственно, с учётом, плагинов для редакторов даже и консоль знать не обязательно.
| |
|
|
|
|
2.14, igor_chubin (ok), 12:40, 08/07/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Справедливое замечание. Спасибо.
По правде говоря уже ничего серьёзного таким образом давно прилететь не может (если, конечно, вы не используете старый классический VT100-терминал).
Вот здесь хороший полный обзор того, что может прилететь, известный на сегодняший день:
https://unix.stackexchange.com/q/15101
Это касается, конечно, не только этого сервиса, но и в принципе использования команды curl, а так же cat, less -R и так далее, собственно любой, где у вас осуществляется вывод неких внешних данных на терминал (cheat.sh просто использует ANSI-последовательности по умолчанию и не скрывает этого, а другие нет, но это не означает, что они не могут их использовать).
Но в целом замечание очень справедливое, и мы предусмотрели несколько контрмер:
1) Для того чтобы полностью исключить опасность (как в этом, так и во всех остальных случаях), лучше всего удалять ANSI-последовательности из вывода:
curl -s https://cht.sh | sed -r 's/\x1b\[[0-9;]*m?//g'
или с помощью ansi2txt из пакета kbtin:
curl -s https://cht.sh | ansi2txt
2) Использовать https вместо http для того чтобы исключить возможность MITM-атак и внедрения ANSI-последовательностей в вывод.
3) Проинсталлировать cheat.sh у себя (cheat.sh это программа с открытым исходным кодом)
и или использовать https://cheat.sh в качестве аплинка (но рендеринг уже будет проводиться на вашей стороне, и вы в безопасности) или напрямую брать данные из источников (будет работать медленнее, но вы будете полностью независимы от центрального сервера cheat.sh).
Третий пункт хорош ещё тем, что вы можете добавлять свои собственные закрытые шпаргалки, касающиеся своей собственной инфраструктуры и так далее.
| |
|
|
|
3.19, aaaaaaaaaaaaaaaaaaaaaaaaaaaa (?), 14:32, 08/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
>Не совсем понятно...
Если cheat.sh "Не может работать в оффлайн-режиме", в wget может делать локальные копии сайтов, то делитанство подсказывает, что возможно можно wget-ом создать офлайновую версию cheat.sh...
>Вообще, мы работаем...
Понял. Жду с нетерпением. Не всегда интернет под рукой...
| |
|
4.20, igor_chubin (ok), 14:43, 08/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Если cheat.sh "Не может работать в оффлайн-режиме", в wget может делать локальные
> копии сайтов, то делитанство подсказывает, что возможно можно wget-ом создать офлайновую
> версию cheat.sh...
Всё, теперь понятно, что имелось тут под "wget".
То есть, это было некое такое условное обозначение магического метода зеркалирования сервиса.
Дело в том, что тут так не получится сделать, потому что wget он просто идёт по ссылкам и рекурсивно вытаскивает страницы, создавая локальную копию сайта. Здесь гиперссылок в ответах вообще нет, соответственно wget не сможет рекурсивно обойти сайт и забрать контент, но это ещё полбеды,
теоретически можно было бы сделать так:
# условный код, потому что ещё нужно нормально обрабатывать страницы
# в подкаталогах, но идею вы поняли
curl cht.sh/:list | while read page; do
curl "cht.sh/$page" > "$page"
done
Однако основная проблема тут в том, что так вы получите тут только страницы-шпаргалки,
а не динамически генерируемые ответы на вопросы (в которых и есть основная сила сервиса).
Если вам нужны одни только шпаргалки, то можно пока временно просто проинсталлировать tldr и cheat (не путать с cheat.sh) (ссылки в заметке).
С другой стороны динамически генерируемые ответы не могут быть доступны в офлайне по понятным причинам.
Мы работаем тут над компромиссным (и на наш взгляд наиболее правильным) решением, когда в локальной версии будут доступны все ответы на вопросы, если такие вопросы уже хотя бы раз задавались сервису.
| |
|
|
|
|
2.18, igor_chubin (ok), 14:31, 08/07/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Раскраска вывода делает текст плохо читаемым на светлых темах.
Да, это правда.
Вот здесь подробнее об этом:
https://github.com/chubin/cheat.sh/issues/5
Есть три способа временного решения данной проблемы:
1. Использовать опцию ?T для отключения раскраски:
curl cht.sh/python/zip+lists?T
2. Убирать ANSI-последовательности с помощью вышеописанных методов (если вы из соображений безопасности не выводите текст на консоль с помощью cat или curl):
curl cht.sh/python/zip+lists | sed -r 's/\x1b\[[0-9;]*m?//g'
curl cht.sh/python/zip+lists | ansi2txt # (из пакета kbtin)
3. Выбрать подходящую цветовую тему:
curl cht.sh/:styles-demo | less -R
curl cht.sh/python/zip+lists?style=autumn
Во всех случаях, конечно, лучше использовать клиент cht.sh (curl https://cht.sh/:cht.sh),
для того чтобы не дописывать каждый раз руками опции при запросах.
Тогда все опции один раз задаются в конфигурационном файле,
а вы потом просто вызываете:
cht.sh python zip lists
Использование клиента cht.sh имеет и множество других приятных возможностей по сравнению с использованием curl.
Ну и, конечно, (если вы пользователь vim) вы можете делать запросы напрямую из редактора
и получать ответы прямо в буфере (отдельном или текущем) или пейджере. Здесь цветовая гамма, естественно, будет вашей стандартной.
| |
|
|
4.28, igor_chubin (ok), 22:22, 08/07/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Где можно подробнее узнать о конфигурационном файле? Тут - https://github.com/chubin/cheat.sh
> - не нашёл (может, просмотрел).
Да, там не было этого, я добавил.
Файл ~/.cht.sh/cht.sh.conf
Параметр называется QUERY_OPTIONS
То есть чтобы отключить раскраску:
~~~~
QUERY_OPTIONS="T"
~~~~
(и обновите, пожалуйста, клиент cht.sh, если вы его уже установили;
для этого выполните команду update режиме шелла или просто переустановите заново)
~~~~
$ cht.sh --shell
cht.sh> update
cht.sh is up to date. No update needed
cht.sh> ^D
$
~~~~
| |
|
|
|
|
2.23, igor_chubin (ok), 19:28, 08/07/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Мы используем asciinema тоже, но гифки обладают тем преимуществом, что
1) они могут показываться в ленте твиттера и на гитхабе без перехода на сайт asciinema (для asciiname трансляций вам нужно сначала кликнуть по ней, чтобы её посмотреть, что останавливает многих пользователей);
2) в них можно показывать графические объекты, которые нельзя показывать в asciinema.
(если вы смотрели гифку про использование Vim-плагина, то вы видели такие графические объекты).
Я не знаю, обратилили ли вы внимание или нет, но гифки эти были созданы полностью автоматически, без участия человека, с помощью системы визуализации процесса работы в терминале (она будет опубликована в ближайшее время и пока что используется нами, мною и некоторыми другими разработчиками, только в тестовом режиме). То есть, никто на самом деле в терминале ничего не набирал и ничего не записывал. Так вот, эта система поддерживает ряд форматов вывода, GIF только один из которых; кроме того она поддерживает MP4, AVI, FLV, Asciinema и некоторые другие. Так что нам было бы несложно сгенерировать тот же вывод в Asciinema-формате (конечно же, графические элементы при этом пропадут).
| |
|
3.24, Аноним (22), 19:46, 08/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
Понятно, спасибо.
>эта система поддерживает ряд форматов вывода, GIF только один из которых; кроме того она поддерживает MP4, AVI, FLV, Asciiname и некоторые другие
Это круто!
Правда, я не совсем понял, как именно это работает "без участия человека". То есть ей, грубо говоря, подается лог сессии терминала, и она на основании этого генерирует анимации печати и перемещения курсора - я уловил идею?
| |
|
|
5.26, Аноним (22), 20:54, 08/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
Да, прикольно! Мощная штука у вас получилась.
>собственно единственно лучший формат это gifst
;)
И спасибо за подробное объяснение, было интересно читать. (Немного расширить, чуть-чуть подредактировать - и можно смело выкладывать в качестве анонса\введения. Короче, ждем релиза!)
| |
|
6.27, igor_chubin (ok), 21:32, 08/07/2018 [^] [^^] [^^^] [ответить]
| +2 +/– |
> И спасибо за подробное объяснение, было интересно читать. (Немного расширить, чуть-чуть
> подредактировать - и можно смело выкладывать в качестве анонса\введения. Короче, ждем
> релиза!)
Немного многовато текста для анонса :)
Спасибо! Скоро зарелизим
| |
|
|
|
|
|
1.32, Алёша (?), 10:08, 10/07/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
весьма полезный сервис.
хотелось бы еще подсказок из документаций по часто встречающимся серверам (демонам) и их конфигурациям - nginx, php.ini, httpd ну и так далее - все эти вещи есть онлайн.
а то сейчас nginx/limit_req выдает какой-то малополезный вопрос-ответ (со stackoverflow походу), а по limit_req_zone вообще ничиго не выдает, тогда как мог бы выдавать соответствующий раздел с оф.сайта и примеры...
| |
|
2.39, igor_chubin (ok), 05:18, 15/07/2018 [^] [^^] [^^^] [ответить]
| +/– |
Да, правда. Справедливое замечание. Мы постараемся это сделать
(кстати nginx/limit_req_zone выдаёт ответ тоже, по-моему даже более-менее в тему, проверьте, пожалуйста, хотя официальная документация с примерами была бы лучше; и ещё, если вам ответ не нравится, то можно попробовать следующий добавив в конце /1, /2 и так далее)
| |
|
|
2.44, igor_chubin (ok), 22:00, 02/08/2018 [^] [^^] [^^^] [ответить]
| +/– |
Почти любой запрос по языкам программирования обрабатывается в том числе
с помощью данных со StackOverflow.
Если ответ со StackOverflow будет (с точки зрения системы) наилучшим, она вернёт его.
В тексте ответа вы можете увидеть, откуда он взят
| |
|
1.47, Diomas (?), 16:20, 21/09/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
В MINGW терминале не обрабатываются эскейп-последовательности (или как это назывется):
$ curl cht.sh/go/reverse+a+list
[38;5;246m/*[39m
[38;5;246m * How do I reverse an array in Go?[39m
[38;5;246m * [39m
[38;5;246m * Honestly this one is simple enough that I'd just write it out like[39m
[38;5;246m * this:[39m
[38;5;246m */[39m
| |
|
2.48, igor_chubin (ok), 17:54, 21/09/2018 [^] [^^] [^^^] [ответить]
| +/– |
> В MINGW терминале не обрабатываются эскейп-последовательности (или как это назывется):
Да, это может быть.
Если вы будете добавлять опцию T в конце запроса, их в ответе не будет
curl cht.sh/go/reverse+a+list?T
Конечно, это не очень удобно всё время добавлять опцию.
Для этого вы можете установить клиент cht.sh (curl https://cht.sh/:cht.sh)
или сделать шелловскую функцию, как например how_in (пример вот тут: https://twitter.com/igor_chubin )
| |
|
|
2.50, igor_chubin (ok), 23:00, 14/11/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вообще git работает, но только нужно комментарии лучше шелловские
и подсветку синтаксиса тоже. Сейчас сишная.
curl cht.sh/git/отменить+последний+коммит?Q
| |
|
|
2.52, igor_chubin (ok), 12:44, 28/11/2018 [^] [^^] [^^^] [ответить]
| +/– |
Есть очень много устаревших и нерекомендованных вещей в интерпретаторе, которые просто работают и никак интерпретатором не комментируются, просто исполняются.
В первом приближении можно использовать shellcheck для статического анализа кода
и обнаружения таких мест.
Конкретно с '' проблема в том, что тут открывающая и закрывающая кавычка одинаковы,
поэтому нельзя делать вложенные обращения. То есть, если вы сделаете: 'k1 'k2'' это будет восприматься не как $(k1 $(k2)) а как $(k1) k2 $(), что, конечно же, неправильно.
| |
|
3.53, rvs2016 (ok), 16:14, 28/11/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Конкретно с '' проблема в том, что тут открывающая и закрывающая кавычка
> одинаковы, поэтому нельзя делать вложенные обращения.
Да... с вложенными обращениями проблему тоже имел. Приходилось вместо вложения делать предварительные вычисления нужных значений, а затем подставлять их внутрь ''. Надо попробовать конструкцию $() - работает ли она в "моём любимом шелле" (zsh). Если работает, то можно и применять. Конструкцию-то такую я видел в разных скриптах, но всегда считал её новомодной или специфичной для отдельных шеллов, поэтому никогда не применял её у себя - ну типа пусть будет более топорно (а не модно), зато надёжнее и совместимее. :-)
| |
|
4.54, igor_chubin (ok), 16:44, 28/11/2018 [^] [^^] [^^^] [ответить]
| +/– |
Конечно же работает
А вообще я вам очень рекомендую shellcheck (и желательно подключить его к вашем любимому редактору через соответствующий плагин; например, если вы используете Vim — через syntastic).
Вы будете писать тогда намного более качественный код + существенно расширите свои знания.
shellcheck'у вы так же можете указать какой конкретно диалект вы сейчас используете,
и вы будете всегда видеть, в каких шеллах будет работать ваш код, а в каких нет
| |
|
|
|
|