Информация об изменениях

Сообщение Re[10]: Hello UNIX! от 23.08.2015 19:21

Изменено 23.08.2015 20:19 Somescout

Здравствуйте, MTD, Вы писали:

MTD>Здравствуйте, Somescout, Вы писали:


S>>PowerShell ISE. В поставке есть, возможно надо включить в Features.

По умолчанию эта оболочка отключена (зачем она пользователям), чтобы включить заходим в Programs and Features->Features->Powershell->ISE (На память не скажу точный путь)

S>>Шорткаты можно добавить установкой модуля PSReadLine (https://github.com/lzybkr/PSReadLine)


MTD>Это сколько же маны надо курить, чтобы получить то, что уже есть из коробки в Линуксе.

Вы собирались что-то делать в консоли не прочитав ничего о ней? Она мощнее bash'а (и, имхо, проще) но минимальное изучение всё-же требуется.

MTD>Напиши как сделать, я в винде не силен, хочу посмотреть как консолька преобразится.

Alternatively, download the file PSReadline.zip and extract the contents into your C:\Users\[User]\Documents\WindowsPowerShell\modules\PSReadline folder. (You may have to create these directories if they don't exist.)

а дальше
Import-Module PSReadLine

Появляются возможности выделения текста (shift-(left|right)), поиск в истории (ctrl-r), вставка (ctrl-v), раскрашиваются команды. Есть более продвинутые возможности (к примеру автозакрытие кавычек), но я ими не пользовался.

S>>Ок. Нужно удалить 10 гигабайт самых старых файлов:

S>>Вперёд на баше.

MTD>А что сложного? Вот сходу сочинил:


MTD>

MTD>find . -type f | ls -tr -b | while read f; do s=`stat "$f" -c "%s"`; ss=$((ss + s)); if ((ss > 10000000000)); then break; fi; rm $f; done

Гм .
А что "find . -type f | ls -tr -b" делает? Я убираю find, результат не меняется.

Ну и различия с этим кодом довольно очевидны:
$total = 0
ls -File | sort LastWriteTime | ? { ($total+=$_.Length) -lt 10GB } | rm

Вот честно скажите, как вы сами оцениваете тот и другой код?
К примеру, свой вариант я писал в браузере, не заглядывая в доки и он сразу заработал после копирования в PS.
Ваш вариант мне (с моим знанием баша) даже чтобы прочитать пришлось лезть и смотреть параметры ls (остальное, за исключением find, похоже оставшегося по ошибке, понятно — т.к. я знаю что делает код, в противном случае было бы сложнее).

MTD>Но лично я такое не делаю обычно, если нужно что-то больше комбинации 2-3 команд, я беру питончик.

Так о том и речь изначально:

Только вот по сравнению с PowerShell'ом консоль линукса это даже не каменный век, а окаменевшее свидетельство юрского периода. В итоге всё кроме самых примитивных задач несравнимо проще сделать на питоне.

Re[10]: Hello UNIX!
Здравствуйте, MTD, Вы писали:

MTD>Здравствуйте, Somescout, Вы писали:


S>>PowerShell ISE. В поставке есть, возможно надо включить в Features.

По умолчанию эта оболочка отключена (зачем она пользователям), чтобы включить заходим в Programs and Features->Features->Powershell->ISE (На память не скажу точный путь)

S>>Шорткаты можно добавить установкой модуля PSReadLine (https://github.com/lzybkr/PSReadLine)


MTD>Это сколько же маны надо курить, чтобы получить то, что уже есть из коробки в Линуксе.

Вы собирались что-то делать в консоли не прочитав ничего о ней? Она мощнее bash'а (и, имхо, проще) но минимальное изучение всё-же требуется.

MTD>Напиши как сделать, я в винде не силен, хочу посмотреть как консолька преобразится.

Alternatively, download the file PSReadline.zip and extract the contents into your C:\Users\[User]\Documents\WindowsPowerShell\modules\PSReadline folder. (You may have to create these directories if they don't exist.)

а дальше
Import-Module PSReadLine

Появляются возможности выделения текста (shift-(left|right)), поиск в истории (ctrl-r), вставка (ctrl-v), раскрашиваются команды. Есть более продвинутые возможности (к примеру автозакрытие кавычек), но я ими не пользовался.

S>>Ок. Нужно удалить 10 гигабайт самых старых файлов:

S>>Вперёд на баше.

MTD>А что сложного? Вот сходу сочинил:


MTD>

MTD>find . -type f | ls -tr -b | while read f; do s=`stat "$f" -c "%s"`; ss=$((ss + s)); if ((ss > 10000000000)); then break; fi; rm $f; done

Гм .
А что "find . -type f | ls -tr -b" делает? Я убираю find, результат не меняется.
Каталоги тоже доходят до rm $f (хотя по это просто покажет ошибку)

Ну и различия с этим кодом довольно очевидны:
$total = 0
ls -File | sort LastWriteTime | ? { ($total+=$_.Length) -lt 10GB } | rm

Вот честно скажите, как вы сами оцениваете тот и другой код?
К примеру, свой вариант я писал в браузере, не заглядывая в доки и он сразу заработал после копирования в PS.
Ваш вариант мне (с моим знанием баша) даже чтобы прочитать пришлось лезть и смотреть параметры ls (остальное, за исключением find, похоже оставшегося по ошибке, понятно — т.к. я знаю что делает код, в противном случае было бы сложнее).

MTD>Но лично я такое не делаю обычно, если нужно что-то больше комбинации 2-3 команд, я беру питончик.

Так о том и речь изначально:

Только вот по сравнению с PowerShell'ом консоль линукса это даже не каменный век, а окаменевшее свидетельство юрского периода. В итоге всё кроме самых примитивных задач несравнимо проще сделать на питоне.