Pull to refresh

Comments 122

Интересная идея. Было бы круче если бы он целые скрипты поддерживал, а не отдельные команды. А вот полезность сервиса мне кажется сомнительной, все равно проще настроить доступ через shh и работать на прямую, чем что то пользователю объяснять. Да и к презентации подготовится заранее можно, подготовив скрипты.
Спасибо. :)

На самом деле бывают ситуации, когда доступ по SSH совершенно не обязателен. Кроме того, его довольно сложно настраивать, если нету компьютер расположен за NAT’ом, и ещё сложнее, если за NAT’ом находится также тот компьютер, с которого необходимо проводить администрирование.

А если вам просто кажется, что, например, может потребоваться удалённо с помощью локально присутствующего человека (даже с очень маленькими компьютерными знаниями с его стороны) выполнить команду на, скажем, вашем домашнем компьютере (чтобы, ну не знаю, поставить Flash-плеер, которого почему-то не оказалось в нужный момент), то поставить туда tinycmd — вариант. Как раз на такой случай. :)

А в theoretical feature ideas (есть в README на Гитхабе) там есть ещё и отправка результата выполнения обратно на сайт — может быть, имеет смысл и это добавить. :)
Действительно, скрипты! Получился бы некий репозиторий скриптов, и создавая пост в блоге о какой-то фиче, для получения которой нужно ввести ряд команд, просто писать скрипт, выкладывать на tinycmd, и вставлять код в пост! Гениально!
эээ… может я чет не понимаю. А что мешает просто в блог писать скрипт!?
t 11q — бесконечный цикл (вызывает сама себя).
<@insomnia> Нужно выполнить всего три команды, чтобы поставить Gentoo
<@insomnia> t 2d9
<@insomnia> это первая
ролевики негодуют! ))

— бросай 2d6
— бросил
— и что?
— иксы устанавливаются…
Оно хранится в интернете, а алиасы нужно настраивать на каждой машине.
Алиасы надо предварительно вбить на каждой машине.
а я как дурак файл .bash_aliases за собой таскаю, вместо того чтоб руками вбивать
А я и не знал, что алиасы в этом файле храняться! Спасибо за подсказку.
Ну и ну. Как тут на днях сказали: «Как работает генератор — понимаю, как лампочка — понимаю, как керосин к лампочке по таким тонким проводам проходит — не понимаю».

Алиасы можно хранить и в ~/.bash_profile и в ~/.bashrc, почитайте man bash.
или там где удобней. Прописать

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

в ~/.bashrc, например
В любом случае это требует заранее предустановленного tinycmd у конечного пользователя, не проще тогда заранее поставить teamviewer или любой другой аналог? в конце концов тот же openssh?
Установка tinycmd очень сильно проще в случае, когда ни на одном из двух компьютеров нету реального IP. Если даже одну из этих программ и можно поставить, то это будет дольше из-за различных зависимостей (для tinycmd требуется только Python). Ну, и tinycmd очень быстро скачается — он меньше одного кибибайта. :)

Если нужна целая сессия удалённого администрирования — тогда, безусловно, нужно что-то больше размером, но для выполнения одной сохранённой в Интернете команды tinycmd хорошо подходит. :)
Все равно больше половины звонков мне про линукс — как настроить интернет.
а потом разговор:
— t u15
— угу… ой, а у меня кернел паник!
— ты что написал?
— те пробел у15
— «у» какое?!
— ну «у» русское
— fck!
«u» звучит как «ю». Если вы назвали эту букву по телефону как «у», то виноват не тот, кто ввел.
=) вы видать никогда с такой ситуацией не сталкивались.
Дииктовал свой email. Как составная часть, имя — yuri
— игрек, ю (йу), ер, и
— игрек, и, ер, и с точкой — правильно?
— ???
И так несколько раз. В конце-концов легче было продиктовать неправильно, но для той белокурой девушки понятно.
Никогда не понимал зачем в век засилья мобильников диктовать такое вслух. Отправил смс-ку и никаких проблем.
В век засилья мобильников люди все еще пользуются обычными телефонами, на которые смс-ку не очень-то и отправишь.
orly? И что, эти люди внезапно повыкидывали свои мобильники?
Не поверите, да. Много где, скажем, запрещено пользоваться мобильниками на рабочем месте, а то даже и иметь их при себе. Секьюрити типа и все такое.
Ну тогда диктуйте этим трём людям по телефону, что поделать.
Если бы трем… Реальность богаче и удивительней, чем кажется иногда. Такие дела.
Я уже 80 лет в интернете и по моему опыту, реальность куда скучнее и прозаичнее, чем пишут люди в бложиках и форумах, увы.
Маладца, «блеснул». Но не в тему. )
Ну конкретно в этом случае мне из банка звонили, так что смс не взлетела бы. Хотя можно было у девушки её личный телефончик взять =)
Из банка? Спрашивали e-mail? Мужик, у меня для тебя плохие новости… CVV2 не спрашивали?
Дело не в том кто виноват, а в том что сервис увеличивает шансы на ввод не той команды, что может привести к чему угодно. И не поймешь даже к чем) Я как обратно с помощью это сервиса проблемно расшифровать команду…
В последней версии на Гитхабе:

$ ./t --show 11b
echo hello world; uptime

Либо t -s 11b.

Спасибо Амперу. :)
UFO just landed and posted this here
спасибо, КО!
забыли уще добавить, что «t» звучит как «ти»)
Сделал форк, добавил флажок «Использовать только цифры». Если этот флажок установлен, код команды будет состоять из одних лишь цифр. А их диктовать намного легче :)
+1
еще дело в том, что люди плохо разбирающиеся в компьютерах, в конечном счете вообще с трудом начнуть понимать суть происходящего, если им по телефону будут диктовать консольные команды.
да им и так это не надо и не постичь никогда
Интересная идея… Можно за donate разрешать назначать свои команды, вот вам и монетизация )
а как можно посмотреть, что скрыто за командой? (а вдруг sudo rm -rf /)
Помогите отладить команду t 148. Запускать надо от рута.
rm: опасно рекурсивно обрабатывать `/'
rm: используйте --no-preserve-root, чтобы отменить предупреждение об опасности

Помогаю. Правильней так: t 1z6 ;)
Вау, круто. Спасибо. :)

И поддержка Python 3 это тоже очень хорошо.

Я тебя добавил в contributors в tinycmd, можешь скоммитить туда (можно в мастер — на сайте изменения появятся только после редеплоя).
По хорошему нужно не выполнять команду сразу, а показывать её, желательно подсвеченной, и спросить пользователя, выполнять ли.
Это если использовать сервис как хостинг скриптов.
Спасибо за сервис. Но потестировать пока не удалось.
Небольшой bug report:
[root@hackbox ~]# t 16r
File "/usr/local/bin/t", line 17
print usage
^
SyntaxError: invalid syntax

Искренне не понял где здесь неправильный синтаксис. Вроде есть 2 аргумента (0й и 1й).

И ещё просьба написать на сайте, что для работы этой команды нужен питон.
скорее всего у вас запустился через python 3.x
на 3.x это работать не будет, ибо django…
а есть возможность переделать кросс-версионно?
эм… сам скриптик переписать 5 минут делов… тот, что клиентская часть… а вот серверную часть… django пока работает только на 3.x…
ладно подождем работы с питоном 3.х
Извините, но django на 3.x??
">> It requires Python version 2.4 or higher", не?
ой, конечно же я опечатался… django работает пока только на 2.x…
Я конечно извиняюсь, но для тогда чтобы достать строчку из интернетов не нужно ни питона, ни тем более джанго.

curl/wget + sh — всё что нужно. Скрипт будет ещё короче.
я говорил про серверную часть…
Тем что он не дефолтный в юниксах пока. А вот баш дефолтный.
Во всех популярных дистрибутивах Питон по дефолту стоит. И вы, наверно, всё-таки имели в виду линуксы, а не юниксы?
Коды комманд должны содержать хотя бы простейшую чек-сумму. Иначе кто-нибудь ошибется одним символом и вместо 11b попадет на какой-нибудь 11n, обидно будет :)
И по дефолту она должна сначала показать команду на экране и спросить, выполнять или нет.
Большинство пользователей любят жать «OK» по любому поводу :) Даже особо не задумываясь
Нужно поставить No по дефолту, хоть немного, но риск уменьшит.
Это есть в theoretical feature ideas (в README на Гитхабе), добавлено туда ещё даже перед разработкой. Да, наверно, имеет смысл потом добавить такую фичу.
Мне идея нравится, при необходимости что-то быстро черкануть, но… Команды консоли (да и другие сокращения) в линуксе и без этого мне всегда напоминали магические закоинания — такие же загодочные и ни о чем не говорящие. К примеру, где связь между конфигами и etc? sudo по сравнению с runas (ближайший виндовый аналог) звучит японским матом. Справедливости ради стоит отметить, что иксовый ls при этом всё же логичнее виндового dir'а. Сейчас из-за отсутствия необходимости линуксом не пользуюсь, но когда изучал его консоль, многие команды приходилось заучивать как мантры — на память, не понимая с каких делов их назвали именно так, а не иначе. Кстати, отдельно доставляло то, что хелп вызывается через раз то --h, то --?, то еще какая-нибудь хрень — нет однообразия. Регистрозависимость — еще один шаг к юзабилити =).

Короче, это круто, но с точки зрения юзабилити лучше накидать команды полностью — Tab рулит.
Хелпы вызываются через man <имя>, документация подтягивается вместе с программами, остальное — просто встроенные шпаргалки.
sudo — выполнение (do) 1 команды от суперпользователя (su). В общем логики там хватает, надо просто некоторое время потратить.
По поводу хелпов — маны это хорошо, но часто как раз шпаргалка и нужна, для того, чтобы подсмотреть как написать: fck -a, fck --a, fck -A.
На счет судо — тоже понятно, если посидеть подумать. Но объясните мне, почему в /etc/passwd хранятся не пароли? Я то конечно в курсе, что раньше в юниксе там вместе с настройками учеток еще и пароли лежали, но сейчас — где связь?
pwd — wtf, при чем тут путь, где я нахожусь?
uname — я сначала думал, что выводит имя пользователя
which — вызывает не меньшее изумление, чем pwd
nice — очень милая команда, по названию ничего больше не скажешь
chmod и chown — происхождение понятно, но по названию тоже нескажешь, кто что делает. хотя потом фраза отchmodить файл доставляет.
Ну и так далее по списку. В принципе, значение большинства команд понятно после прочтения хелпа, но с первого взгляда всё равно не скажешь, для чего они нужны — нужно тратить время и читать маны. Этим грешит не только линукс — в виндовой cmd тоже хватает таких косяков — те же cacls и icacls ничем не лучше chmod'а. Т.е. я негодую не в сторону линукса, а в сторону людей, которые пишут консоль для себя, а не для людей.
pwd — print working directory
chmod — change mode
chown — change owner
Во всех командах достаточно логики :) Может просто для русскоязычных пользователей она не всегда сразу заметна. Но если попробовать расшифровать для себя, то все быстро становится на свои места
1. pwd (англ. print working directory — напечатать рабочий каталог) — консольная утилита в UNIX-подобных системах, которая выводит полный путь от корневого каталога к текущему рабочему каталогу.

2 — согласен
3 — по аналогии с «А который из вас тут commandname?»
4 — согласен
5 — ну, change mode и change owner (что эти команды и делают) — помойму очень логично.
Хочу акцентировать — значение команд я знаю, да и на крайний случай всегда в манах можно посмотреть. Меня просто удивляет стремление придумывать не самые понятные аббревиатуры.
«Вежливость» (niceness) процессов не просто так называется вежливостью. :)

Я про это даже писал сюда. :)
Чтобы узнать, как называется нужная команда, можно сделать apropos.

uname — UNIX name;
which — which binary would be executed if you type "..."?

Пароли и до сих пор могут лежать в /etc/passwd (более того, на embedded устройствах они часто лежат именно там). Воспринимайте «x» в парольном поле /etc/passwd как ссылку на /etc/shadow, как будто кто-то стёр его оттуда и перенёс в другой файл для безопасности.

Конечно, многие вещи не очевидны, а интерфейсы программ (опции, форматы входных данных) совершенно разные. Но решив эти проблемы мы получим другую крайность — сравните ps и grep с Get-Process и Select-String.
спасибо за apropos. Два года без винды, а эту коммандочку не знал.
На мой взгляд, золотая середина — это как в cmd сделать два варианта команд (правда МС почему-то далеко не для всех так постарались), например md и mkdir, или возможностьне набирать команды полностью, как в ios и некоторых утилитах (виндовый netsh).
Ну и кроме того, Tab никто не отменял. В этом плане я завидую иксовой консоли.
sudo — выполнение (do) 1 команды от суперпользователя (su).
Это, кстати, распространённое заблуждение, что якобы su (в командах su и sudo) означает SuperUser. В действительности su в этих командах — это сокращение от substitute user (заменить пользователя). И ведь действительно эти команды позволяют логиниться в консоль или выполнять команды не только от имени root, но и от имени других пользователей тоже.
Ну, обычно sudo используется для выполнения команд, на которые не имеет права текущий пользователь, отсюда и такая устойчивая ассоциация. А вообще вы правы.
Хотя, сервис удобно использовать для того, чтобы выложить туда огромезный скрипт, допустим, для настройки сети, который только задаст конечному пользователю пару вопросов, а остальное всё сам сделает (для линукса, опять же немаловажно, ибо настройки меняются в 10 местах). Получить для этого скрипта короткое название, которое пусть и будет хуже, чем матюк, но набрать его будет легче, чем скрипт целиком.
Новинка: скрипт для настройки сети, работающий только через сеть!
фак! ладно, мало ли скриптов еще может быть…
Нееет, это уже не новинка! Помню винда предлагала найти драйвера для модема или сетевой карты в интернете :)
Ну, мало ли, может быть он MASQUERADE на другие компьютеры настраивает в iptables, например. :D
идея просто гениальная, только английский подхрамывает на сайте, например «Why to use tinycmd?» to не надо, просто «Why use tinycmd?» — правильно.
Удобнее бы было вводить не полные команды, как это реализовано на сетевом оборудоании (cisco, D-Link): sh int desc \ conf p 1 s d.
Нечто подобное реализовано в vyatta (основанная на Debian GNU/Linux). Есть ли такое для обычной ком строки?
Зачем оно?
1) пользователю нужно сначала установить эту tinycmd — если он не умеет даже копировать, то это ему дастся еще труднее, а если настраивает опытный линуксоид, то лучше поставить openssh.
2) для работы нужен инет — у большинства пользователей установлен какой-то IM/skype/email, которым можно не только текст передавать, но и смотреть за удаленным рабочим столом или скинуть bash-скрипт с нужными командами (чтоб точно не опечатался). Ну и значит можно добраться по ssh.
3) без инета сервис бесполезен — значит все равно придется диктовать команды по телефону или ехать самому.
4) ошибка в одной букве параметра команды — чаще всего приведет просто к ошибке команды, ошибка в целой команде — может угробить все.
В чем профит?
t 11n — sudo rm -rf /
t 11q — бесконечный цикл (вызывает сама себя).

Вы бы хоть сделали контрольный символ, а то случайно ошибёшься в символах кода — и много положительных эмоций вам обеспечено. Особенно если на соседнем номере шутники разместили rm -rf /
Реквестирую статистику, сколько % из созданных команд содержат «rm -rf /»?
In [1]: from tc.models import CommandString

In [2]: total = CommandString.objects.all().count()

In [3]: rmrfroot = CommandString.objects.filter(command_string__icontains='rm -rf /').count()

In [4]: total
Out[6]: 801

In [5]: rmrfroot
Out[7]: 125

In [6]: float(rmrfroot)/total*100
Out[11]: 15.605493133583021


Получаетя, 15.6%. :D
И я, кажется, знаю почему. :)

Новость на главной ЛОРа. :)
А зачем создавать разные агрументы команды t для одного и того же набора команд?
Интересный сервис. У меня есть предложение, по запросу формировать ключ из цифр и/или букв, которые можно однозначно продиктовать по телефону.
такое предложение: вместо нечитаемого набора символов генерить легко произносимые слова. типа как в некоторых капчах
Интересный сервис. Спасибо за идею.
Но только, боюсь, я не представляю, где его использовать.

Первое: — Если есть интернет — значит есть ссх, тимвьвер, мейл или аська в конце концов.
Если нет — все очень печально.
Далее: в баше и аналогах есть авто заполнение строки. Это спасает от многих страшных, на первый взгляд, команд.
Можно вообще извратится, и у себя сделать алиасы и скинуть нуждающемуся. Но это изврат.

Почти всегда есть смс. Да-да, просто чудо как смс. Иногда реально спасает.
У меня доходило до абсурда, бросались ммс-ками. Но зато работает.

Очень стремно человеку, который не очень сильно разбирается в консольных командах, скидывать нереальные сокращалки аля «rm -rf /».

Вывод — идея просто жесть. Вы просто опередили свое время. Подождите немного, когда народ полностью отупеет, а программы будут писаться сплошь в одну строку (Я ЛЮБЛЮ РУБИ ^-^) — вот тогда сервис будет юзабельным. И востребованным.
Жесть

То есть ввод: t 11n (sudo rm -rf /) вместо t 11m (sudo su)
Это такая невозможная опечатка и конечный юзер сам виноват?
> вместо t 11m (sudo su)

Вы так говорите, как будто sudo su — это что-то нормальное.
Есть sudo -i, есть sudo -s, а sudo su — это какой-то костыль в духе «масло масляное».
Это работающая комбинация команд, используемая многими.
Этого достаточно, чтобы описанная мною проблема могла возникнуть.

Обсуждать эту статью habrahabr.ru/blogs/linux/44783/ в комментариях к совсем другой — не имею желания.
Резюмирую предлагаемые фичи:
1) сделать поддержку скриптов, чтобы сервис можно было использовать как хостинг скриптов. Типа пост на ubuntuforums про вынос pulseaudio, а там id скрипта и ссылка на скрипт на сайте;
2) tinycmd.org/id должен показывать исходный скрипт / команду;
3) перед выполнением команды/скрипта необходимо вывести сам скрипт, и дать возможность отказаться от выполнения (y/n);
4) ввести постмодерацию, и блокировать вредоносные скрипты. Если скрипт забанен вредоносный, и пользователь пытается его выполнить, напугать его досмерти, мол чуть говно не запустил, будь осторожен, и пользуй только проверенные множеством людей скрипты;
5) ввести необязательные параметры — дистрибутив и версия, так как некоторые скрипты могут быть специфичными для одного дистрибутива определённой версии;
6) да, не только в linux есть командная строка.

P. S. Готов присоединиться к проекту, как web developer. Чокак?
Милости просим. :)

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

Скажи логин на Гитхабе, я тебя добавлю в проект, и сможешь коммитить изменения, а мы их будем вместе обсуждать, возможно улучшать, и деплоить. :)
Логин совпадает с хабрологином.
Зачем неопытным пользователям позволять набирать команды в консоли?
Команды и так простые в большинстве. Куда уж упрощать, это же не урлы.
Есть несколько предложени:
— убрать из кодов «проблемные символы», которые будет сложно диктовать.(u, y, i, e, r, может еще что-то) (цель очевидна);
— добавить помимо команды также комментарий (для проверки);
— переписать без питона (питон не везде есть и не везде нужен, учитывая сложность программы, переписать — плевое дело).

Касательно комментария, я вижу это так:
— Набери t qweasdzxc и скажи мне, что он ответит.
— Ок.
> > t qweasdzxc
> вентилятор дрель будильник
> execute(x)/show(s)/abort(a)?
— Пишет «вентилятор дрель будильник».
— Тогда жми x.
> > x
> rm -rf /*

«вентилятор дрель будильник» могут быть просто тестовыми словами, могут быть кратким описанием скрипта. Необходимы, понятное дело, для верификации правильности надиктовки.
О, я сейчас придумал!

1. Сделать регистрацию.
2. Сделать кастомные шорткаты (чтобы можно было, например, для djm прописать python manage.py) и убрать случайные.
3. Сделать все шорткаты по умолчанию видимыми только для автора.
4. Ну, и ещё какой-нибудь общий каталог, с кнопками «поделиться командой» и «добавить в свои».
5. Придумать какое-нибудь простое кэширование команд, просто на тот случай, если сайт не будет доступен.
6. И что-нибудь вроде command-not-found как в Ubuntu прикрутить, чтобы t не писать каждый раз.

Но это будет уже совсем другой сервис, что-то вроде онлайн-менеджера для alias'ов.
С другой стороны, это фактически замена файлу .bash_aliases получается, а зачем его на что-то менять? :)
А что будет если в шорткате «бабушка» ошибётся на 1 буковку? Выполнится что-то непонятно что? =)
Имхо, устанавливать что-то что может делать exec() чего-то полученного из интернета — это ппц.
А что будет если tinycmd.org сломают? Рехнулись вы, ей-богу)
Sign up to leave a comment.

Articles