LINUX.ORG.RU
ФорумTalks

[вброс] UNIX

 


0

1

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

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

так что на псведокоде

Все так же просто, как и в find

gi /path/to/files/*namepart*
Кроме того, это вернет массив, если совпадений несколько.

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

Подводя промежуточный итог:

В общем и в целом из всех приведённых примеров лично я не увидел каких-либо преимуществ и убедительного доказательства правильности Power Shell.

Возможно, я небеспристрастен (*NIX - good, win - bad), но как-то всё громоздко и коряво делается в этом вашем Power Shell'е, братцы! :)

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

> я не увидел каких-либо преимуществ и убедительного доказательства правильности Power Shell.

Этого не требуется. Все что можно сделать на bash, точно так же можно сделать и на posh. На мой взгляд удобней управляться с объектом, чем со строкой.

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

> А вообще на консоль он не тянет , скорее на скриптовый язык для написания батников

Во-о-о-от.

А мне NIX-овые шеллы для всего-всего-всего подходят. Так-то. :)

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

> Во-о-о-от

Опять же, если простые операции, то что bash, что cmd, что posh. А для более сложных манипуляций удобней писать скрипты, хотя бы из-за отладки.

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

> На мой взгляд удобней управляться с объектом, чем со строкой.

Ну, кому как удобнее.

Мне удобней со строками (кстати, тоже частный случай объекта) :)

Но - ещё раз - моё мнение предвзятое и «окостеневшее», так как я в NIX-ах мно-о-ого лет... :)

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

Мне удобней со строками

ну да, это привычней. Но вот пример:

 021 > ls file.ext | gm


   TypeName: System.IO.FileInfo

Name                      MemberType     Definition
----                      ----------     ----------
Mode                      CodeProperty   System.String Mode{get=Mode;}
AppendText                Method         System.IO.StreamWriter AppendText()
CopyTo                    Method         System.IO.FileInfo CopyTo(string destFileName), System.IO.FileInf...
Create                    Method         System.IO.FileStream Create()
CreateObjRef              Method         System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
CreateText                Method         System.IO.StreamWriter CreateText()
Decrypt                   Method         System.Void Decrypt()
Delete                    Method         System.Void Delete()
Encrypt                   Method         System.Void Encrypt()
Equals                    Method         bool Equals(System.Object obj)
GetAccessControl          Method         System.Security.AccessControl.FileSecurity GetAccessControl(), Sy...
GetHashCode               Method         int GetHashCode()
GetLifetimeService        Method         System.Object GetLifetimeService()
GetObjectData             Method         System.Void GetObjectData(System.Runtime.Serialization.Serializat...
GetType                   Method         type GetType()
InitializeLifetimeService Method         System.Object InitializeLifetimeService()
MoveTo                    Method         System.Void MoveTo(string destFileName)
Open                      Method         System.IO.FileStream Open(System.IO.FileMode mode), System.IO.Fil...
OpenRead                  Method         System.IO.FileStream OpenRead()
OpenText                  Method         System.IO.StreamReader OpenText()
OpenWrite                 Method         System.IO.FileStream OpenWrite()
Refresh                   Method         System.Void Refresh()
Replace                   Method         System.IO.FileInfo Replace(string destinationFileName, string des...
SetAccessControl          Method         System.Void SetAccessControl(System.Security.AccessControl.FileSe...
ToString                  Method         string ToString()
PSChildName               NoteProperty   System.String PSChildName=1.ps1
PSDrive                   NoteProperty   System.Management.Automation.PSDriveInfo PSDrive=C
PSIsContainer             NoteProperty   System.Boolean PSIsContainer=False
PSParentPath              NoteProperty   System.String PSParentPath=Microsoft.PowerShell.Core\FileSystem::...
PSPath                    NoteProperty   System.String PSPath=Microsoft.PowerShell.Core\FileSystem::C:\Use...
PSProvider                NoteProperty   System.Management.Automation.ProviderInfo PSProvider=Microsoft.Po...
Attributes                Property       System.IO.FileAttributes Attributes {get;set;}
CreationTime              Property       System.DateTime CreationTime {get;set;}
CreationTimeUtc           Property       System.DateTime CreationTimeUtc {get;set;}
Directory                 Property       System.IO.DirectoryInfo Directory {get;}
DirectoryName             Property       System.String DirectoryName {get;}
Exists                    Property       System.Boolean Exists {get;}
Extension                 Property       System.String Extension {get;}
FullName                  Property       System.String FullName {get;}
IsReadOnly                Property       System.Boolean IsReadOnly {get;set;}
LastAccessTime            Property       System.DateTime LastAccessTime {get;set;}
LastAccessTimeUtc         Property       System.DateTime LastAccessTimeUtc {get;set;}
LastWriteTime             Property       System.DateTime LastWriteTime {get;set;}
LastWriteTimeUtc          Property       System.DateTime LastWriteTimeUtc {get;set;}
Length                    Property       System.Int64 Length {get;}
Name                      Property       System.String Name {get;}
BaseName                  ScriptProperty System.Object BaseName {get=if ($this.Extension.Length -gt 0){$th...
VersionInfo               ScriptProperty System.Object VersionInfo {get=[System.Diagnostics.FileVersionInf...
Эти все методы и свойства доступны сразу для созданного объекта. Осталось только реализовать нужное.

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

> А для более сложных манипуляций удобней писать скрипты, хотя бы из-за отладки.

Кто бы спорил...

Для «сложных манипуляций» у меня уже за сотню скриптов перевалило.

А «отладка» здесь при чём??? Не знаю, как у тебя, а у меня скрипт пишется для автоматизации «слишком длинной команды», а потом начинает обрастать дополнительной функциональностью. После каждой модификации проверяется. Какая нафик «отладка»?!? Тоже мне «бином Лобачевского» :)))

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

Ах-хренеть!!! :)

И это ты мне предлагаешь вместо ls, find, cp, mv, rm ?!?!

Нет уж - ну его, этот ваш Power Shell. Я уж лучше «так дураком и помру» :)))

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

> После каждой модификации проверяется. Какая нафик «отладка»?!?

Вот эта: «После каждой модификации проверяется».

tailgunner ★★★★★
()

Plan9, PlanB и Inferno спасёт отца русской демократии!

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

а еще чтоб нашел те файлы к которым обращались не поздней одной недели, из них выбрать по шаблону те файлы которые только открывались на чтение, а остальные которые на запись вывести отдельной колонной. ))

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

> А «отладка» здесь при чём???

хотя бы посмотреть какой вывод у той или иной утилиты. Например написать скрипт для составления *.m3u, в соответствии со спецификацией этого формата, во всех поддиректориях. С помощью mediainfo.

TGZ ★★★★
()

Разве Mac OS X не 100% кошерный UNIX?

(В отличие от поделия финского студента.)

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

Формально это можно назвать «отладкой», согласен.

Но если сравнить внесение одной-двух строк в скрипт с добавлением нескольких функций / нескольких сотен строк в проекты, использующие компилируемые языки, то выражение «отладка скрипта» становится несерьёзным.

Всё-таки отличия очевидны, по крайней мере, для меня.

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

Вот я про это «пауэршеллщиков» и спрашиваю, а они даже на простой пример как-то ... «уклончиво» отвечают, не совсем «по теме» :)

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

Ну, это я называю «проверкой работы скрипта». Хотя формально это можно считать «отладкой». Но... но... но... (см.соседний мой коммент)

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

ггг) А еще чтоб поиск производился только на usb носителях при их политике C:\,D:\,E:\ xD ой забавно они программировать будут))

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

Во-во.

На простой вопрос - монструозную строку для скрипта. Чо ж дальше будет?!? :)

А ведь началось с того (с чего я в дискасс-то влез), что Power Shell «более правильный и лучше спроектированный шелл», чем все NIX-овые. А оказалось... :)

OldFatMan
()

Ты сильно «плаваешь» в теме. Я бы даже сказал больше, но сейчас на лоре называние вещей своими именами приравнивается к «оскорблению».

Led ★★★☆☆
()

Э-э-эх, брат, да ты ещё ШЫНДОУЗ не видел!...

Saloed
()

завязывай с веществами, сына
мой тебе отцовский совет

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

Какой ужас. Незаконное дитя тикля и сишарпа. Оно хоть статически типизированное?

Без понятия... Я сам не пользовался, нагуглил специально к этой теме. Имхо для сложных скриптов под вендой может быть полезно. Когда нет взможности накодить. Или если для хомячка скрипт написать для чего либо автоматизируещего надо

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

Он не производная, а только inspired by, разные вещи.

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

> Или если для хомячка скрипт написать для чего либо автоматизируещего надо

Оба парсера сломались: и грамматический, и семантический... :)))

А потом ещё представил: хомячок в венде, пишущий скрипт для «автоматизации чего-либо»... Никаких фильмов ужасов не надо - теперь не усну... :)

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

>А потом ещё представил: хомячок в венде, пишущий скрипт для «автоматизации чего-либо»..
Я для него скрипт пишу или еще кто-то. Чтобы помочь. И отдаю в виде батника или как оно там называется

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

Речь-то про кедоПО. ОС Емакс — отдельная история. :)

geekless ★★
()

Вспомнилось:

Виндовз мышление strikes back

вот такой чудный диалог состоялся у меня в ru_programming

silly_sad:
для интеграции у нас существует
INPUT и OUTPUT
и описав формат того что там входит и выходит, я могу интегрироваться куда угодно.

Не надо ломиться в открытую дверь.

voidlizard:
входят и выходят необязательно данные.

эта фраза дорогого стоит ! это же гениальная квинтэссенция влияния винды на мозги програмистов !

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

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

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

да снеси ты уже эту убунту, поставь какую-нить генту или арч.

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

Нет уж, пока у меня нет нормального интернета, я и в мандриве поковыряться могу. Когда настанет время кардинально обновляться, может попробую дженту, а может еще что-нибудь...

Eddy_Em ☆☆☆☆☆
()

Судя по Вики этот же человек в 1991-м году говорил «1991. UNIX не только мёртв, но и пахнуть уже начинает действительно плохо.» Я что-то пропустил, и Юникса уже нет? 20 лет прошло как бы.

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

У меня есть вопрос к представителям от bash по обработке вывода команды.

Надо сожрать вывод «ls -l» и вывести столбик размер файла и имя файла. У читывая что ls отбивает количество ссылок и размер пробелами, а имена файлов могут содержать пробелы. Получится компактнее чем на PS?

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

> Надо сожрать вывод «ls -l» и вывести столбик размер файла и имя файла.

Ты вендузятнег штоле? Это они любят забивать гвозди дрелью через жопу. Вывод размера файла и его имени:

find . -maxdepth 1 -printf «%s %f\n»

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

ты не понял, это не по конкретно ls, а по обработке вывода.

PS нам даёт обекты у которых есть легко извлекаемые поля с данными. У строк такого нет. Вот я и хочу чтобы извлели данные и чтобы было проще чем у PS.

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

> ты не понял

Не понял именно ты.

это не по конкретно ls, а по обработке вывода.

Учи матчасть - меньше вывода придется обрабатывать.

PS нам даёт обекты у которых есть легко извлекаемые поля с данными.

Ты спрашивал о краткости решения задачи? Я решил ее на shell и жду решения на posh.

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

>не нужно ничего настраивать

жри что дают, и не выбирай картошку, а всё подряд

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

Вопрос был в том, чтобы функциональность Kate запихнуть в редактор, который работал бы в Gnome, Xfce и т.п., но при этом не тянул кучу Qt-шных либ. Просто редактор, без всяких наворотов, чтобы много памяти не жрал и кучу ненужного хлама в систему не тянул. Чтобы получить Unix-way во всей красе.

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

>нормальный bash

я не понимаю, чего вы так привязались к этой gnu-той поделке. Для интерактивной работы zsh круче, для скриптов - баш неуниверсален.

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

я тут не домашку делаю.

Не понял именно ты.

как я мог не понять, если это мой вопрос? мне не нужен find, мне нужна обработка вывода «ls -l».

не знаешь как выкинуть эти пробелы без ох^Hчень длинной строки на sed, иди отдыхай.

отбрасывать лишние пробелы с помощью tr не советую из-за имен файлов с пробелами.

PS: PowerShell я не знаю, но знаю, что там это будет компактнее.

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