LINUX.ORG.RU
ФорумTalks

[вброс] UNIX

 


0

1

Время сделало так, что когда-то простая операционная система, созданная для работы на мейнфреймах, управляемых с помощью текстовых терминалов, сегодня работает на обособленных домашних ПК и серверах, объединенных в общую сеть. Мы давно избавились от текстовых терминалов, но постоянно работаем с их эмуляторами, мы привыкли к учетной записи root, которая была необходима во времена мейнфремов, а сейчас создает только бреши в безопасности, мы используем графический интерфейс, который совсем не вписывается в идеологию UNIX и существует как бы независимо от нее, у нас есть множество самых разнообразных способов связи с другими ПК, ни один из которых не является стандартным, мы используем специальные протоколы для доступа и управления другими машинами, мы вынуждены использовать сложнейшие механизмы RPC для создания распределенных приложений, мы удивляемся количеству системных вызовов в ядре Linux, и даже идея файлов-устройств уже потеряла свою универсальность и простоту. Очевидно, что UNIX уже не исправить, ее убивает собственная архитектура.

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

Одна команда find ищет вообще всё.

Кодманда find не нужна вообще. Нужны ls для получения списка файлов, ps - для списка процессов, и т.д.

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

> И давно irb стал традиционной оболочкой?

Он ею и не является.

Кстати, а автодополнение там есть?


Нет. Потому что см. выше.

в Ruby есть оператор аналогичный | в sh?


Там весь язык на энумераторах и замыканиях построен:

irb> IO.read(«/etc/fstab»).lines.map{|a|a[/^[^\s]+/]||«»}.select{|a|a[«by-label»]}.each{|a|puts a}
/dev/disk/by-label/archlinux
/dev/disk/by-label/work

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

> find ищущий по файлам - не нужен. Нужна команда для фильтрации последовательностей + лямбда выражения для задания условия отбора. Т.е. одна и та же команда используется для отбора и файлов, и процессов, и прочего.

И будет каждая команда в терминале размером с приличчный такой скрипт-однострочник.

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

Графический интерфейс можно вписать в идеологию UNIX.

И как это, например, Qt вписывается в Unix-идеологию? Т.е. я могу встроить функциональность Kate в редактор, не потянув кучу либ по зависимостям?

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

> А вот тут автомность как раз на руку. find ищущий по файлам - не нужен. Нужна команда для фильтрации последовательностей + лямбда выражения для задания условия отбора. Т.е. одна и та же команда используется для отбора и файлов, и процессов, и прочего.

Ну, не знаю. Может, я уже и окостенел совсем в *NIX-среде, да только мне гораздо удобнее искать файлы и каталоги find'ом, а процессы ps'ом, а гиперактивность в памяти отлавливать htop'ом, а гиперактивность ввода/вывода - iotop'ом. Во всяком случае я точно знаю, что для моих задач в *NIX'ах найдётся нужный инструмент - и в интерактиве, и в скриптах. А про Power Shell - не знаю, не уверен, «не внушаить».

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

> Команда find не нужна вообще.

Мягко говоря, странное заявление. Я не буду утверждать, что пользуюсь find каждый день, но это инструмент весьма и весьма полезный. Конечно, когда хорошо представляешь, как именно этим инструментом надо пользоваться, а не просто «гвозди забивать» :)

Нужны ls для получения списка файлов, ps - для списка процессов, и т.д.

Вот именно «и т.д.» и нужна find. Для поиска файлов/каталогов по заданным критериям. Что тут «неправильно»?

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

Это не ко мне - это к Begemoth'у...

PS: Жаль, что нет символов для изображения «лёгкой иронии». Всё-таки обычные смайлики для этого не годятся.

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

> В KDevelop как раз таки Kate и встроена, и лишних либ не тянет

И я могу без пересборки выпилить оттуда Kate и запилить другой редактор?

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

>В Power Shell есть «man something»? Если нет, то она _не_нужна_.
Есть, man — алиас на get-help.

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

>> Кодманда find не нужна вообще. Нужны ls для получения списка файлов, ps - для списка процессов, и т.д.

Это в сферически-вакуумных условиях идеальной модели. В реальной жизни find нужна :)

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

Теоретически. Практически, в KDE нет другого компонента для выполнения роли advanced text editor, кроме Kate.

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

Мягко говоря, странное заявление.

Я имел ввиду в PowerShell, некорректно выразился.

Что тут «неправильно»?

При налчии команды фильтрации списка find - лишняя, функциональность ps для отбора процессов - тоже лишняя.

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

Да, теперь понятно.

Даже интересно стало - что это за Power Shell такой, где ни find, ни ps не нужны? :)

Самому пощупать нет никакой возможности - венды у меня нету ва-аще :)

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

Забыл спросить: этот Power Shell в семёрке что ли появился или раньше?

Если в семёрке, то у меня нет никаких шансов его «пощупать» :)

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

ИМХО, одна из важных возможностей шелл и заключается в настройке ОС. Поэтому, интеграция с ОС - жирный плюс.

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

Насколько я понимаю, powershell может всё то, что может .NET, на котором он [powershell] и написан. Если говорить именно о «чистых» CLI-утилитах, то они в альтернативных ОС хоть и есть, но их немного, а удобство и функциональность могут хромать на обе ноги.

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

Забыл спросить: этот Power Shell в семёрке что ли появился или раньше?

На XP ставится, по крайней мере первая версия.

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

Поэтому, интеграция с ОС - жирный плюс.

Тогда *NIX-овые оболочки обладают жирным минусом - они не интегрированы с ОС.

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

Ситуация с PowerShell напоминает мне ситуацию с графическими оболочками в linux. Как в винде стараются сделать так, чтобы не уступало gui, но всё-равно многие вещи гораздо проще сделать парой мышекликов. Так в линуксе проще бывает в консоли пару команд вбить, чем мышкой возить.

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

С ОС можно интегрировать только модули железа. И то не стоит этого делать (не зря же Танненбаум с Торвальдсом по этому поводу ругался).

А в мастдае с ядром столько всякой дряни наинтегрировано, что от любого чиха падает вся система...

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

> При налчии команды фильтрации списка find - лишняя, функциональность ps для отбора процессов - тоже лишняя.

Толстовато.

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

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

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

А в мастдае с ядром столько всякой дряни наинтегрировано,

Графику из ядра в 7 вынесли, может процесс продолжится.

что от любого чиха падает вся система...

И кто про фейри, говорил?

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

И всё же - пока никак не могу понять, как в Power Shell решить, например, задачу поиска файла по имени, которое я помню лишь частично?

Скажем, помню только, что в имени файла есть часть «tool», тогда решение очевидно:

find ~ -name «*tool*»

А как быть в Power Shell в подобном случае?

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

>И как это, например, Qt вписывается в Unix-идеологию?

Про комбайнеры речь не идет. Я про нормальный графический интерфейс.

5,0M /var/cache/pacman/pkg/gtk2-2.24.4-2-x86_64.pkg.tar.xz
1,6M /var/cache/pacman/pkg/glib2-2.28.8-1-x86_64.pkg.tar.xz
25M /var/cache/pacman/pkg/qt-4.7.3-2-x86_64.pkg.tar.xz

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

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

Как «огромное множество параметров поиска» не согласуется фильтрацией списка по произвольному предикату? Обоснуешь, лялехтроль?

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

Фильтрация производится по уже полученному списку? Или как?

А если я точно не помню, откуда следует взять этот список? Как тогда быть?

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

Опять не совсем понял (ну тупой бразилец попался):

сопоставление строк с шаблоном где? в программе вывода списка объектов? или в программе сортировки?

Как вывести список объектов, если они не в текущем каталоге, а хрен знает где, и зовут их как, «точнонепомню»?

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

Фильтрация производится по уже полученному списку? Или как?

Не знаю, но синтаксис вполне допускает реализацию сопрограммами.

А если я точно не помню, откуда следует взять этот список? Как тогда быть?

В смысле? Точно так же как в UNIX - RTFM на предмет того как называется нужная тебе команда. Команды ls, ps, route возвращают список файлов, процессов, правил маршрутизации.

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

Смотрел я powershell , вроде интересен возмжностями, но очень многословен. Т.е. это не консоль, а скорее скриптовый язык

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

>> Толстовато.

Аргументировано.

Ну уж кто бы говорил об аргументах... Впрочем, изволь:

Begemoth> При налчии команды фильтрации списка find - лишняя, функциональность ps для отбора процессов - тоже лишняя.

Это, вообще-то, вранье. Потому что, список процессов, который ты будешь фильтровать, сначала надо сконструировать. В UNIX команда ps - это конструктор такого списка. Если в этом вашем powershell есть список процессов, то его что-то конструирует. Так что какой-то аналог ps есть.

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

сопоставление строк с шаблоном где?

В предикате, который передаётся команде фильтрации списка.

Как вывести список объектов, если они не в текущем каталоге, а хрен знает где, и зовут их как, «точнонепомню»?

Точный синтаксис не помню, так что на псведокоде:

ls /path/to/files | where '_.matches("*namepart*")'
Begemoth ★★★★★
()
Ответ на: комментарий от OldFatMan

Для поиска больших файлов в папке (включая подпапки) можно использовать следующий скрипт:

Get-ChildItem c:\video -recurse | Sort-Object length -descending | 
select-object -first 10 | ft name, length -wrap -auto
Скрипт выведет 10 самых больших файлов найденных в папке.

Это я как пример поиска

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

Если в этом вашем powershell есть список процессов, то его что-то конструирует. Так что какой-то аналог ps есть.

Да, но не фильтрует. Для фильтрации есть отдельная команда, поэтому включать в ps критерии отбора процессов не требуется.

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

В том смысле, что я знаю, что у меня есть файлы, в именах которых встречается фрагмент «tool», но точно не помню, в каком именно каталоге они лежат. Да ещё, возможно, что они разбросаны по нескольким каталогам.

В NIX-овых оболочках эта задача решается одной простой командой, которую я выше уже приводил:

find ~ -name «*tool*»

Вопрос мой в том, как Power Shell позволяет решить эту задачу? Только с «костылями»? Или есть простой способ?

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

А если каталог «неизвестен»?

И каталогов может быть несколько?

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

>> Если в этом вашем powershell есть список процессов, то его что-то конструирует. Так что какой-то аналог ps есть.

Да, но не фильтрует.

Я так понимаю, что команда ps всё же не является лишней. А фильтровать список процессов ты можешь и без нее (стандартными grep и awk), но создатели ps позаботились о тебе и вкючили в нее некоторые возможности фильтрации. И да, это удобнее, чем писать конвейер (или фильтрующее выражение в powershell).

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

Это я нагуглил , там вобще взможностей больше намнго, т.к. весь .net можно для обработки использовать

//клавиша с буквой о залипает , соком залил

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