Заметка о Powershell
All checks were successful
Build MkDocs / build-and-deploy (push) Successful in 0s

This commit is contained in:
2025-01-11 21:31:06 +03:00
parent ea842de5d2
commit 09a18548d4

92
docs/misc/powershell.md Normal file
View File

@@ -0,0 +1,92 @@
# Заметка о Powershell
## Мой Powershell profile
Открыть файл настроек Powershell:
```powershell
code $profile # или notepad $profile
```
А вот мои настройки:
```powershell
# Лучше заменить настоящим wget
# https://eternallybored.org/misc/wget/
# Скачать EXE для 64-bit и добавить в папку в PATH
remove-item alias:wget
# Заменяем Invoke-WebRequest нормальным curl
# Скачиваем curl for 64-bit тут https://curl.se/windows/
# Из папки bin архива переносим curl.exe в папку в PATH
remove-item alias:curl
# Алиасы
new-alias actvenv venv/Scripts/activate
new-alias grep Select-String
function crtvenv {
virtualenv venv
actvenv
}
function python-path {
python -c "import sys; print(sys.executable)"
}
# Модуль для автокомплита GIT https://github.com/dahlbyk/posh-git
# Устанавливается одной командой
# PowerShellGet\Install-Module posh-git -Scope CurrentUser -Force
Import-Module posh-git
# Модуль для автокомплита Docker https://github.com/matt9ucci/DockerCompletion
# Устанавливается одной командой
# Install-Module DockerCompletion -Scope CurrentUser
Import-Module DockerCompletion
# Более удобное автодополнение
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
# Перемещаться по истории использования команды с помощью стрелочек
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward
```
## Выполнение сценариев отключено в этой системе
```powershell
Set-ExecutionPolicy RemoteSigned
```
## Баг с uppercase
В какой-то момент заглавные буквы просто перестают печататься в Powershell, это означает, что нужно обновить `PSReadLine`.
Запустить Powershell от имени администратора и выполнить:
```powershell
Install-Module -Name PowerShellGet -Force
```
Перезапустить от имени администратора и выполнить:
```powershell
Install-Module PSReadLine -AllowPrerelease -Force
```
## Крутой аналог grep - ripgrep
[Скачать](https://github.com/BurntSushi/ripgrep/releases/) релиз для винды и добавить в PATH
```powershell
rg "hello" path/to/dir
```
Аналогично grep можно использовать с другими командами
```powershell
cat README.md | rg hello
```
Можно добавить флаг -i, чтобы ripgrep игнорировал регистр
```powershell
rg -i "hello"
```