LINUX.ORG.RU
ФорумTalks

Названия консольных команд.


0

0

Я тут подумал, почему бы неосновные (ls, cp, rm, ...) консольные команды не разбить на группы?
При этом название группы добавить в имя, разделять точкой.
Можно это сделать псевдонимами и так по умолчанию влючать в дистрибутивы (не убирая обычные названия).

Например:
adm.users.adduser - useradd
adm.users.deluser - userdel
adm.users.addgroup - addgroup
adm.storage.parttool - parted или fdisk
adm.storage.checkfs - fsck
adm.network.up - ifup
stat.processes - top
stat.network - nethogs

Тут я привел не самые неочевидные названия, заковыристые названия, из которых совершенно не следует что делает прога, вспомните сами (спать охото).

Что то типа того, как разбито основное меню.
Для начинающего пользователя может быть совершенно не очевидно как называется команда. Вот откуда начинающему пользователю знать, что «top» для сети называется nethogs?
Так же можно сделать и для man. Конечно man разбит на разделы, но опять же по нему невозможно найти информацию не зная названия команды (Да, есть man -k, но долеко не всегда помогает).

Над названиями можно еще подумать, я изложил идею...

★★★★★
Ответ на: комментарий от Jetty

s/in ideal case/as a (perfect|better|best) way/

угу, моя английская не совсем хороша. Но сама идея, надеюсь, понятна.

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

Разве вопрос зашел только о консольных утилитах? Мне кажется что такая система будет не полной, вот пример
fs.manage.fdisk
fs.manage.gparted

не ?

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

Зачем?

Ну не у всех отличная память, которая может постоянно хранить все нужные команды. Особенно те, которыми пользуешься не часто. + узнавать новые и альтернативные будет в разы проще. И ситематизация лишней тоже быть не может.

Да есть гугл, но лень отсеивать и смотреть где инфа в удобном виде. А так будет под рукой.

В любом GUI меню этот принцип уже используется, вот и перенести его в консоль. От этого никому плохо не будет. Также привлечет в консоль больше людей.

Сейчас же система команд напоминает мусорник из системных функций в PHP, где вообще логика построения имен отсутствует.

И судя по всему гуру это нинада, им вообще ничего не хочеться менять. Консерватизм их удел. Не хочешь, не пользуй.

donPovidlo
()
Ответ на: комментарий от Eddy_Em

Так написали же, что оригинальные никуда не денуться.

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

>Разве вопрос зашел только о консольных утилитах?

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

Deleted
()
Ответ на: комментарий от ls-h

>Вот человек только поставил линукс, откуда ему знать, что это называется apt?

Обычно в меню есть пункт «установка софта» или типо того

Dudraug ★★★★★
()
Ответ на: комментарий от ls-h

>Беда манов (man, а не документации вообще) в том, что надо знать название программы.

man man для начала. man info.

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

> Сейчас же система команд напоминает мусорник из системных функций в PHP....

Как бэ нет :) мой лично мусорник состоит из 2 десятков команд, врядли у кого он состоит из много большего количества. самые часто-используемые:
vim
mtr
telnet
ssh
make
gcc
mutt
/etc/init.d/$some reload

К сожалению мужской мозг может оперировать всего лишь с 4-5 одновременных сушностей, так что «pipe-line» получается не очень длинный.... Однако при использовании указанной системы и даже этот недлинный превратится в однооператорную команду.

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

Курсес да, просто мне гентушнег один показывал какую-то казуальную сборку, у которой такой проблемы нет.

Jetty ★★★★★
()

Новичкам давать такие команды, да. Потом проводить обряд инициации и называть Истинные Имена Команд. А он, сволочь, уже привык в скриптах писать невнятную хрень - и все. Эффект утенка.

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

ну, лист показал что нафиг не нужно. :) Но опять же, работа совсем не «титаническая». Достаточно сделать 1 текст с альясами типа

alias adm.users.adduser adduser alias adm.users.deluser deluser

плюс вместо adduser добавить функцию, которая выбирает существующую в систему утилиту.

Но вообще, кроме новичков это никому не нужно, а новички в консоли не полезут ибо «это ж дос»

mrdeath ★★★★★
()

Хорошая идея. Особенно хорошо то, что юзер может вбить команду «music.<tab>» и смотреть, что же ему можно сделать с музыкой. Думаю, именовать команды нужно исходя из этого, т.е. что то в ОО-стиле
users.add
users.del
users.mod
groups.add
...

а текущая система наименований меня порой раздражает. Я в 100% случаев забываю чем отличаются adduser от useradd.

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

Проблему запоминания можно решить просто - при вызове такой модифицированной команды будет запускаться программа, которая определит исходное имя файла (по забитой в неё БД), выведет при необходимости подсказку, что, мол, shortname for this command is `useradd' и запустит нужную команду.

Legioner ★★★★★
()
Ответ на: комментарий от ls-h

>Вот человек только поставил линукс, откуда ему знать, что это называется apt?

Тогда откуда ему знать, зачем оно нужно?

Gary ★★★★★
()

Совершенно ненужно, я считаю. Использование UNIX-подобных систем предполагает определённый уровень начальной подготовки и готовность к дальнейшему изучению. Кому не надо лезть в дебри — используют loo^Wuser friendly дистрибутивы типа Ubuntu. Там если надо лезть в консоль, то обычно в интернетах уже всё разжёвано, вникать/запоминать не требуется.

GotF ★★★★★
()
Ответ на: комментарий от ls-h

> А если я не знаю название программы? Что тогда?

Не знаешь что делать с картинками? apropos image

Не знаешь что делать с видео? apropos video

Не знаешь что делать с женщиной? Нет, не делать apropos woman, но трахать :-)

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

Кстати, apropos sex выдает список перловых и тиклевых функций, что как бы намекает...

no-dashi ★★★★★
()

Я за. Только все эти симлинки стоит оформить в один пакет, для простой установки и сноса.
Кидай идею на брейншторм убунты.

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

Ладно, а что будет делать например гипотетическая команда «audio.play ~/blah.ogg» ?
Как будет определяться какой плеер будет использоваться?
Можно конечно сделать выбор по типу гентушного eselect, а как быть с ключами?

Например какой-нибудь адепт новых команд напишет в интернетах «чтобы запустить музыкальный файл в цикле наберите „audio.play -loop 0 ~/blah.ogg“ имея ввиду mplayer.
А что теперь увидят те у кого стоит какой-нибудь mpg123 по умолчанию?

Вторая проблема - в стандартизации.
Не будет стандарта - будет adm.users.add в одном дистрибутиве и admin.user.add в другом.

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

>Озвучил идею в девелоперском списке рассылки Федоры
ссылка на гугл-транслэйт лора это гениально!

Read Mana, you say?


ps идея - отстой

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

>If suddenly the idea to catch fedorovtsami - try to «break» and other distros

gavv
()

Про apropos уде сказали, я же пока реализацию подкину. На нобелюху не тянет, но работает лучще, чем ссылки: не мусорит в ФС, не раздражает стариков, самодокументируется.

$ cat newbie.sh
#usage: . newbie.sh
alias adm.user.add=useradd
alias adm.user.lock='sudo passwd -l'
something.more.complex() {
   #на случай, когда порядок параметров нужно поменять
}
...

DonkeyHot ★★★★★
()
Ответ на: комментарий от ls-h
AliSo ~ # eix -cC net-analyze -S bandwidth
[N] net-analyzer/bing ((~)1.1.3): A point-to-point bandwidth measurement tool.
[N] net-analyzer/bmon ((~)2.1.1_pre1): interface bandwidth monitor
[N] net-analyzer/bwbar ((~)1.2.3): The kernel.org "Current bandwidth utilization" bar
[N] net-analyzer/bwm-ng (0.6): Bandwidth Monitor NG is a small and simple console-based bandwidth monitor
[N] net-analyzer/bwmon (1.3): Simple ncurses bandwidth monitor
[N] net-analyzer/ibmonitor ((~)1.4): Interactive bandwidth monitor
[N] net-analyzer/ifstat (1.1): Network interface bandwidth usage, with support for snmp targets.
[N] net-analyzer/iftop (0.17): display bandwidth usage on an interface
[N] net-analyzer/ipband ((~)0.8.1): A pcap based IP traffic and bandwidth monitor with configurable reporting and alarm abilities
[N] net-analyzer/nethogs ((~)0.7.0): A small 'net top' tool, grouping bandwidth by process
[N] net-analyzer/nload (0.7.1): console application which monitors network traffic and bandwidth usage in real time
[N] net-analyzer/pathload ((~)1.3.2): Non-intrusive utility for estimation of available bandwidth of Internet paths
[N] net-analyzer/pchar ((~)1.5): Internet bandwidth, latency, and loss of links analyzer.
[N] net-analyzer/pktstat (1.8.4): A network monitoring tool, with bandwidth tracking
[N] net-analyzer/tcptrack ((~)1.3.0): Passive per-connection tcp bandwidth monitor
[N] net-analyzer/tptest (3.1.7): Internet bandwidth tester
[N] net-analyzer/bwping [1] ((~)1.0): A tool to measure bandwidth and RTT between two hosts using ICMP

.. А как я догадаюсь что мне нужен nethogs в вашей нотации?

vasily_pupkin ★★★★★
()

>Можно это сделать псевдонимами и так по умолчанию влючать в дистрибутивы (не убирая обычные названия).

Разрабы шеллов рыдают кровавыми слезами, ТС ниасиил alias.

Ygor ★★★★★
()

А вы хотя бы уверены в том, что новичок вообще полезет в консоль? Что он там потерял? Кто-то рассказал, что это крутая штука? Так ведь этот кто-то тогда и про синтаксис некоторых команд расскажет уже и про всё остальное. А разделение по категориям может быть далеко не самым очевидным. Тем более для новичка. Всё равно придётся осиливать документацию, а тогда уж лучше осиливать документацию классических unix-комманд. К тому же, длина всех этих команд просто убивает сам смысл использования консоли - быстроту и удобство работы.

DJAnto
()

Ну наделай кучу симлинков. А лучше напиши скрипт, который их делает в отдельной директории (чтоб в случае чего можно было легко все это грохнуть) и добавляет эту директорию в PATH.

drull ★☆☆☆
()
Ответ на: комментарий от ls-h

> Вот человек только поставил линукс, откуда ему знать, что это называется apt?

Вот человек только поставил линукс, откуда ему знать, что это называется adm.packages?

Deleted
()

Удивляют меня люди, кричащие «новичкам консоль не нужна». Позвольте, тогда лет через n-цать не останется никого, кому бы она требовалась? Нужна консоль новичкам, причем с самого начала работы (да-да и в убунте в том числе).

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

spacel0rd
()

Идея стара, как Debian. Лучше в концепциях альтернатив:

$ ls /etc/alternatives/

Использование идеи в реализации концепции альтернатив будет более логично и разумно.

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

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

DJAnto
()
Ответ на: комментарий от Neksys

> ls /etc/alternatives/

Это часть реализации стандарта LSB. Но ни LSB, ни POSIX не пытаются стандартизировать имена утилит. тут точно, «кто первый, того и тапки». То есть, кто первый назвался coolutil, тот и выиграл «бренд». LSB пытается симлинками это сгладить. Эта идея - всё та же попытка «сгладить», но при этом сделать более осмысленными имена утилит. Само собой, что в повседневной жизни при наборе ручками это будет страх и ужас, но автодополнение поможет страдальцам. А в скиптах вообще будет неплохо.

system.users.list | utils.grep 'vasya'

vs

getent passwd | grep '^vasya:'

Что не помешает комбинировать:

system.users.list | grep '^vasya:'

или наращивать функционал средствами шелла(либо просто написав скрипт):

system.users.getone() {
system.users.list | utils.grep '^'$1':'
}

Идея не воротить это в своём $HOME или на отдельно взятом компе - идея сделать это по возможности стандартно. Благо алиасы, симлинки и просто шелловские скриптики позволят этой идее неплохо жить.

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

> Ну вы поняли.
Мы-то поняли. Главное - чтобы Вы это поняли :)

Slavaz ★★★★★
()

И СТАТИЧЕСКАЯ ЛИНКОВКА БИНАРЕЙ!!11

КОнfИгИ нА пЭхАпЕ!!!! КоТЭ ПрОк ЦПуИнФо!!! кОТэ Етц РизОлф.КонФ!! эХА УПЧК!!ЧОЧО Эха пЯНИ!!!ЧОЧо СМОТРи БАЛЕТ!!!! ЮЗЕРАДдЪ ОНОТОЛЕ -УГ ВАССЕРМАН!!!ЧОЧО СПи ПИцОт ПАйП ШУТИТ ДАун НАУ! к0нФИГи На П3ХАПе!!!! К0Т3 ПРОк ЦпУИНФО!!! кОТЭ ЕТЦ риЗОлФ.кОНФ!! 3ха УПЧК!!ЧОЧО ЭхА ПЯНИ!!!ЧОЧО СWОТРи БАЛЕТ!!!! Ю3ЕЯАДДЪ ОНОТОЛЕ -УГ ВАССЕРWАh!!!ЧОЧО СПИ 3.14ЦОТ ПɐЙП ШУТИТ ДАУН НАУ!КОнfИгИ нА пЭхАпЕ!!!! КоТЭ ПрОк ЦПуИнФо!!! кОТэ Етц РизОлф.КонФ!! эХА УПЧК!!ЧОЧО Эха пЯНИ!!!ЧОЧо СМОТРи БАЛЕТ!!!! ЮЗЕРАДдЪ ОНОТОЛЕ -УГ ВАССЕРМАН!!!ЧОЧО СПи ПИцОт ПАйП ШУТИТ ДАун НАУ! к0нФИГи На П3ХАПе!!!! К0Т3 ПРОк ЦпУИНФО!!! кОТЭ ЕТЦ риЗОлФ.кОНФ!! 3ха УПЧК!!ЧОЧО ЭхА ПЯНИ!!!ЧОЧО СWОТРи БАЛЕТ!!!! Ю3ЕЯАДДЪ ОНОТОЛЕ -УГ ВАССЕРWАh!!!ЧОЧО СПИ 3.14ЦОТ ПɐЙП ШУТИТ ДАУН НАУ! КОнfИгИ нА пЭхАпЕ!!!! КоТЭ ПрОк ЦПуИнФо!!! кОТэ Етц РизОлф.КонФ!! эХА УПЧК!!ЧОЧО Эха пЯНИ!!!ЧОЧо СМОТРи БАЛЕТ!!!! ЮЗЕРАДдЪ ОНОТОЛЕ -УГ ВАССЕРМАН!!!ЧОЧО СПи ПИцОт ПАйП ШУТИТ ДАун НАУ! к0нФИГи На П3ХАПе!!!! К0Т3 ПРОк ЦпУИНФО!!! кОТЭ ЕТЦ риЗОлФ.кОНФ!! 3ха УПЧК!!ЧОЧО ЭхА ПЯНИ!!!ЧОЧО СWОТРи БАЛЕТ!!!! Ю3ЕЯАДДЪ ОНОТОЛЕ -УГ ВАССЕРWАh!!!ЧОЧО СПИ 3.14ЦОТ ПɐЙП ШУТИТ ДАУН НАУ! ПаНИКЕ!!ЖДИ ЕБИЛДЫ!! ГЕНТУ! ГЕНТУ! ГЕНТУ!!!СЕМАНТИКА!!! БАШ РОД-ЛИНУКС!!! ЖАБА НЕ ТОРМОЗИТ!!!КОНФИГИНА ПЭХПЕ!!!

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

Позор! s/switch user/substitute user

А это уже кому как нравится. Мне, например, нравится расшифровывать эту команду именно как «switch user», т.к. она «переключает» на другого пользователя. Хотя, конечно, ее можно трактовать и как «substitute user», т.к. она «подменяет» пользователя :)

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


Нужны разъяснения:

у меня в системе несколько редакторов {ed, sed, bbe, vim, nano, beav, bvi, jed, joe, le} — для консоли и {gvim, jedit, nedit, mousepad, leafpad, tea, xemacs21} — для графики.

Что можете предложить вы? Как быстро найти и как отличить одно от другого?

P.S. Бонусный вопрос: как найти программу sc (Text-based spreadsheet with VI-like keybindings)

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

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

Почему бы и нет? Особенно если не знать двух-трехбуквенные сочетания. А с дополнениями по табу это не особо сложно будет.

spacel0rd
()
Ответ на: комментарий от Eddy_Em

А это уже кому как нравится

Погорячился, в вики так и написано.
Хотя когда я читал книжки, в одной из них конкретно указывалось на ошибочные расшифровки и эта давалась как правильная. Название книги не помню, помню что описывалось всё на примере Caldera Linux.

tux2002
()

Наглядно, красиво, удобно для изучаения. Однако! Вот будет утилита для получения списка подключений к mpd и будет:
deamons.multimedia.music.player.connections.list
multimetia.deamons.music.connections.list
network.multimedia.music.connections.list
etc

Вообще я хочу сказать что данный позыв к приведению всех утилит консоли к такому виду является болезнью от переиспользывания ООП.

Мне проще ввести ls, чем system.io.files.list.

tia
()

Вообще, оказалось довольно-таки удобно для редко используемых программ. Жмёшь image.<tab> и смотришь, что там наворочено было в алиасах. Можно, конечно, каждый раз лезть в .bash_aliases, но неудобно.

Deleted
()
Ответ на: комментарий от tux2002

Пример наиболее часто встречаемой ошибочной «расшифровки»: многие трактуют sudo как «superuser do», хотя правильнее: «switch user & do» или «substitute user & do».

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

xdg-open позволит мне сказать «запусти мне convert вон на том каталоге» безо всяких заморочек? :} А просто открытие файлов я в двухпанельнике клацаю.

Deleted
()
Ответ на: комментарий от Neksys

> у меня в системе несколько редакторов {ed, sed, bbe, vim, nano, beav, bvi, jed, joe, le} — для консоли и {gvim, jedit, nedit, mousepad, leafpad, tea, xemacs21} — для графики.

Что можете предложить вы? Как быстро найти и как отличить одно от другого?


system.editor => <любимый редактор>
system.editor.ed => /usr/bin/ed
system.editor.sed => /usr/bin/sed
system.editor.vim => /usr/bin/vim
system.editor.gedit => /usr/bin/gedit
...

автодополнение по s<tab>e<tab> нарисует system.editor
Можно давануть enter на данном этапе. Не устраивает - давим <tab> и дальше выбираем конкретный редактор.

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