INTERFACE31 Telegram 4217
​​Алиасы в PowerShell

Многие, кто только начинает изучать PowerShell, особенно перейдя из мира Linux, жалуются на его многословность, что может быть неудобно, если вы используете PS непосредственно для администрирования системы.

Да, это так, но этому есть свои основания.

Классические UNIX-оболочки создавались в те далекие и светлые времена, когда компьютеры были большие, объемы памяти маленькие, а скорости передачи данных – медленные. Все это заставляло биться буквально за каждый байт.

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

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

Например, команда:

grep error error.log

Еще вполне читабельна и если мы помним, что такое grep, то без труда догадаемся, что мы ищем строку "error" в файле error.log. Но расширение не является обязательным атрибутом файла и поэтому мы вполне можем встретить:

grep error error

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

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

Поэтому тот же аналог grep в PowerShell выглядит так:

Select-String -Pattern "error" -Path .\error

Да, многословно, но даже далекий от PowerShell человек поймет, что мы выбираем строки, содержащие текст “error” из файла .\error.

И если мы занимаемся написанием скриптов, то такая многословность нам только в плюс, так как сильно облегчает читаемость кода человеком.

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

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

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

Get-Alias

Если нас интересует конкретная команда, то следует набрать:

Get-Alias -Definition Select-String

А если, наоборот, расшифровать алиас, то следует выполнить:

Get-Alias sls

Также можно создавать свои алиасы, для этого используйте команду:

Set-Alias -Name grep -Value Select-String

Таким образом мы легко можем настроить среду согласно своих привычек или просто писать в привычном стиле:

sls error error

А для тех, кто свои лучше годы отдал работе с Windows, напоминаем, что PowerShell давно доступен и на платформе Linux.



tgoop.com/interface31/4217
Create:
Last Update:

​​Алиасы в PowerShell

Многие, кто только начинает изучать PowerShell, особенно перейдя из мира Linux, жалуются на его многословность, что может быть неудобно, если вы используете PS непосредственно для администрирования системы.

Да, это так, но этому есть свои основания.

Классические UNIX-оболочки создавались в те далекие и светлые времена, когда компьютеры были большие, объемы памяти маленькие, а скорости передачи данных – медленные. Все это заставляло биться буквально за каждый байт.

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

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

Например, команда:

grep error error.log

Еще вполне читабельна и если мы помним, что такое grep, то без труда догадаемся, что мы ищем строку "error" в файле error.log. Но расширение не является обязательным атрибутом файла и поэтому мы вполне можем встретить:

grep error error

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

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

Поэтому тот же аналог grep в PowerShell выглядит так:

Select-String -Pattern "error" -Path .\error

Да, многословно, но даже далекий от PowerShell человек поймет, что мы выбираем строки, содержащие текст “error” из файла .\error.

И если мы занимаемся написанием скриптов, то такая многословность нам только в плюс, так как сильно облегчает читаемость кода человеком.

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

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

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

Get-Alias

Если нас интересует конкретная команда, то следует набрать:

Get-Alias -Definition Select-String

А если, наоборот, расшифровать алиас, то следует выполнить:

Get-Alias sls

Также можно создавать свои алиасы, для этого используйте команду:

Set-Alias -Name grep -Value Select-String

Таким образом мы легко можем настроить среду согласно своих привычек или просто писать в привычном стиле:

sls error error

А для тех, кто свои лучше годы отдал работе с Windows, напоминаем, что PowerShell давно доступен и на платформе Linux.

BY Записки IT специалиста




Share with your friend now:
tgoop.com/interface31/4217

View MORE
Open in Telegram


Telegram News

Date: |

How to create a business channel on Telegram? (Tutorial) It’s yet another bloodbath on Satoshi Street. As of press time, Bitcoin (BTC) and the broader cryptocurrency market have corrected another 10 percent amid a massive sell-off. Ethereum (EHT) is down a staggering 15 percent moving close to $1,000, down more than 42 percent on the weekly chart. End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. Telegram message that reads: "Bear Market Screaming Therapy Group. You are only allowed to send screaming voice notes. Everything else = BAN. Text pics, videos, stickers, gif = BAN. Anything other than screaming = BAN. You think you are smart = BAN. ZDNET RECOMMENDS
from us


Telegram Записки IT специалиста
FROM American