Comments 44
Вот команды bash, а вы в 80% описали отдельные утилиты, не связанные с bash
Команды bash
GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
These shell commands are defined internally. Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.
A star (*) next to a name means that the command is disabled.
job_spec [&] history [-c] [-d offset] [n] or history -anrw [filename]>
(( expression )) if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMAN>
. filename [arguments] jobs [-lnprs] [jobspec ...] or jobs -x command [args]
: kill [-s sigspec | -n signum | -sigspec] pid | jobspec .>
[ arg... ] let arg [arg ...]
[[ expression ]] local [option] name[=value] ...
alias [-p] [name[=value] ... ] logout [n]
bg [job_spec ...] mapfile [-d delim] [-n count] [-O origin] [-s count] [-t>
bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u > popd [-n] [+N | -N]
break [n] printf [-v var] format [arguments]
builtin [shell-builtin [arg ...]] pushd [-n] [+N | -N | dir]
caller [expr] pwd [-LP]
case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esa> read [-ers] [-a array] [-d delim] [-i text] [-n nchars] >
cd [-L|[-P [-e]] [-@]] [dir] readarray [-d delim] [-n count] [-O origin] [-s count] [>
command [-pVv] command [arg ...] readonly [-aAf] [name[=value] ...] or readonly -p
compgen [-abcdefgjksuv] [-o option] [-A action] [-G globp> return [n]
complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A act> select NAME [in WORDS ... ;] do COMMANDS; done
compopt [-o|+o option] [-DEI] [name ...] set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
continue [n] shift [n]
coproc [NAME] command [redirections] shopt [-pqsu] [-o] [optname ...]
declare [-aAfFgilnrtux] [-p] [name[=value] ...] source filename [arguments]
dirs [-clpv] [+N] [-N] suspend [-f]
disown [-h] [-ar] [jobspec ... | pid ...] test [expr]
echo [-neE] [arg ...] time [-p] pipeline
enable [-a] [-dnps] [-f filename] [name ...] times
eval [arg ...] trap [-lp] [[arg] signal_spec ...]
exec [-cl] [-a name] [command [arguments ...]] [redirecti> true
exit [n] type [-afptP] name [name ...]
export [-fn] [name[=value] ...] or export -p typeset [-aAfFgilnrtux] [-p] name[=value] ...
false ulimit [-SHabcdefiklmnpqrstuvxPT] [limit]
fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [c> umask [-p] [-S] [mode]
fg [job_spec] unalias [-a] name [name ...]
for NAME [in WORDS ... ] ; do COMMANDS; done unset [-f] [-v] [-n] [name ...]
for (( exp1; exp2; exp3 )); do COMMANDS; done until COMMANDS; do COMMANDS; done
function name { COMMANDS ; } or name () { COMMANDS ; } variables - Names and meanings of some shell variables
getopts optstring name [arg] wait [-fn] [id ...]
hash [-lr] [-p pathname] [-dt] [name ...] while COMMANDS; do COMMANDS; done
help [-dms] [pattern ...] { COMMANDS ; }
В хабе "разработка под Windows" я бы все-таки не ожидал видеть инструкцию по применению утилит из *nix - учитывая, что в Windows есть PowerShell.
:) автор devops
PowerShell очень медленно работает.
Утилиты из СygWin делают то же в 3 раза быстрее.
(а) мне хватает скорости PowerShell
(б) я не хочу (а иногда - не могу) ставить cygwin
для Windows powershell отличный инструмент, единственное заметное неудобство - отличается набор команд в разных версиях , приходится при написании ориентироваться на 3 версию
мне хватает скорости PowerShell
Что-то народ не особо ратует за PowerShell. Не подскажете почему?
если вызывать из повершелла гну утилиты, то может и медленно.
Но Powershell не под них оптимизирован. Сам по себе он вполне себе быстр.
Наверное этот текст обидит чувства Windows пользователей, так как тут по сути предлагается использовать Unix(овые) утилиты в OS Windows.
Многие пользователи Windows, которых я знаю, религиозно презирают Linux и всё, что с этим связано.
Я вот пользуюсь и Windows, и Linux (точнее, его контейнерными производными и изредка WSL). Вопрос не в презрении, вопрос в выборе подходящего инструмента.
Но возможно не стоит публиковать текст, если вы серьезно думаете, что он обидит чувства какой-то значимой группы читателей.
Многие пользователи Windows, которых я знаю, религиозно презирают Linux и всё, что с этим связано.
в 99% так делают технически ограниченные люди
Наверное этот текст обидит чувства Windows пользователей, так как тут по сути предлагается использовать Unix(овые) утилиты в OS Windows.
Не пользователей, а ламеров.
Для сведения, OS Windows сама когда-то поддерживала POSIX во времена windows NT и windows 2000, а сейчас внедрила еще более полноценный WSL
cygwin и mingw были доступны всем, кто хотел.
Презирать религиозно - изначально не очень подход для технического человека.
В хабе "разработка под Windows" я бы все-таки не ожидал видеть инструкцию по применению утилит из *nix - учитывая, что в Windows есть PowerShell.
Вы можете для каждой команды из этой заметки привести команду из PowerShell, которая делает ту же работу?
Пользоваться Unix утилитами в OS Winows это тоже, что если бы американские солдаты на войне во Вьетнаме пользовались бы автоматом Калашникова!
https://pikabu.ru/story/pochemu_amerikanskie_voennyie_tsenili_trofeynyie_ak47_vo_vetname_6061205
du -lhs `ls`
оч помогает искать место на чистой системе, статья должна быть докторская конечно.
cygwin в windows очень помогает
Полезные Утилиты Командной Строки Bash
Все команды bash по своему полезны, да.
И утилиты из coreutils тоже, даа..
Есть ошибки. И заголовок неточный.
Очень очень плохая статья.
Для начала автор путается в терминологии. Путает консоль гит и консоль гит-баш, путает баш и шелл, путаете сложность команд, путаете bash и gnu tools...
Не нужно писать статью, если вы просто решили поделиться полезными командами из своего персонального читщита, но не владеете материалом. Тем более что подобных базовых примеров много не только в инете но и на Хабре.
Как можно путать баш и шелл, если bash и есть shell (один из многих)?
А ещё интересно будет послушать про “консоль гит и консоль гит-баш”...
Как можно путать баш и шелл, если bash и есть shell (один из многих)?
А так, что есть оригинальный sh (который и есть shell), и есть множество потомков-наследников: bash, dash, fish, zsh, и так далее. У них у всех свои собственные фишечки, делающие их не очень совместимыми друг с другом, чего только стоит разное поведение echo в отдельных сценариях.
“консоль гит и консоль гит-баш”.
Git for Windows создаёт ярлык и для Git Bash, и для Git CMD. Они оба откроют консоль, но очень разную.
А так, что есть оригинальный sh (который и есть shell), и есть множество потомков-наследников: bash, dash, fish, zsh, и так далее.
Ну и я часто получал вопрос вида - "What shell do you prefer ?" И всегда было понятно о чем речь, при этом я никогда не душнил типа - не shell, а linux command shell )))
Из этой же серии - "Какой линукс ты используешь ?" Формально вопрос не совсем корректный, но все все понимают
P.S.
А еще есть переменная окружения SHELL
И всегда было понятно о чем речь
но консоль гит и линукс шелл это настолько разные вещи, что в данном случае следует уточнять, когда автор статьи утверждает про консоль гит (а не гит-баш).
Переменная окружения SHELL в данном случае не про то вообще. Мы говорим про разницу в терминах между shell и git.
Ведь cmd.exe тоже shell. И explorer.exe тоже shell.
А так, что есть оригинальный sh (который и есть shell), и есть множество потомков-наследников:
Спасибо, конечно, но на 4-м десятке лет работы с Unix я это знаю чуть более, чем хорошо. А теперь попробуйте рассказать мне, чем будут отличаться способы запуска и результаты исполнения любых из приведённых автором команд?
Видите ли, “bourne again shell” или “z shell” не перестали быть shell'ами из-за своих названий. Более того, все перечисленные вами shell'ы — одного поля ягоды, все выросли из bourne shell. И автор статьи не привел ни одного примера откровенного “башизма”, все его примеры будут одинаково работать во всех bourne-shell-наследованных шеллах, поэтому задам вопрос ещё раз — как можно путать shell и shell? А ещё лучше — покажите, где именно автор этой статьи (да, убогой, тут даже спорить не о чем) “путает баш и шелл” (в чём его обвинил автор изначального комментария ветки)?
Git for Windows создаёт ярлык и для Git Bash, и для Git CMD. Они оба откроют консоль, но очень разную.
Прежде, чем писать такое, следовало бы хоть минимально исследовать вопрос.
До установки Windows Terminal (в составе которого есть Open Console), в Windows была и есть одна единственная “консоль” — ранее conemu.exe, ныне conhost.exe. Я не просто так беру в кавычки, поскольку функционально это никакая не консоль, а весьма убогий эмулятор терминала, который способен лишь рендерить символы да интерпретировать довольно скромный набор управляющих последовательностей. От него, собственно, большего и не требуется. И какой бы “ярлык” Git for Windows ты ни выбрал — хоть Git bash, хоть Git CMD — та самая пресловутая “консоль” у этих окошек будет одна и та же. А вот что в них будет действительно “очень разным”, так это интерпретатор команд, взаимодействующий с пользователем. Так называемый шелл, ага. Только в одном случае он будет mingw-сборкой GNU bash, а в другом — убогий родной виндовый cmd.exe. Но “консоль” — та же самая, независимо от выбора “ярлыка”. Да, и на работу собственно Git это не влияет примерно никак.
Но мой вопрос — чем же всё таки отличаются “консоль гит” (и что это вообще такое?) и “консоль гит-баш” — ответа я так и не получил. Но я, признаться, не особо и претендую.
Установите гит для винды.
Запустите git-bash.exe и git-cmd.exe
Выполните команду help в каждой из них
Скажите - вы не видите разницы?
До установки Windows Terminal (в составе которого есть Open Console), в Windows была и есть одна единственная “консоль” — ранее conemu.exe, ныне conhost.exe
С каких пор conemu (conemu.github.io опенсорс проект) внезапно превратился в ms conhost.exe?
Как и автор, вы таки путаете термины консоль и терминал.
Консоль это консоль управления.
Поэтому ярлыки, которые ведут к git-bash и git-cmd отличаются тем, что они ведут к разным консолям управления. Ввтор статьи в этом не разбирается, называя git-cmd консолью гита. В этом и смысл, что git-cmd не относится к linux shell/bash никак.
Еще неопытных пользователей может сильно смущать что в PATH в обоих случаях попадают gnu утилиты, которые могут продолжать работать в обеих консолях. И те, кто не понимает разницы между linux shell и gnu tools тоже могут запутаться.
Я всегда ставлю модуль Posh-Git
и с ним замечательно работается в git
прямо из обычного PowerShell
без всяких git-bash(cmd)
Очень очень плохая статья.
Тем не менее народ себе в закладки статью-то понадобавлял.
А я не душнила. Сохраню в закладках и буду пользоваться по необходимости. Если это работает, то мне не важно, как это называется. Спасибо, автор!
Команды Bash можно с легкость отрабатывать на Windows, если установить GIT и открыть консоль GIT.
И тут же копия экрана MinGW... Может и нужно было писать про МинГВ и предлагать именно его и устанавливать?
То, что при установке git, устанавливается ещё и МинГВ, никак не оправдывает.
С таким же успехом можно было сказать, что для работы в Юникс-образной командной строке установите ПО " Ёклмн", в состав которого случайно входит МинГВ. ))
Я пользуюсь WSL если мне нужно сделать что-то непосредственно на моем компе.
Я бы еще добавил одну из самых часто используемых команд:
netstat -tunpl
Ну и возможны вариации с фильтрами, сортировками и уникальными значениями.
Это команда приведена только для примера, что через консоль можно делать поиск поверх предыдущего поиска. Так называемый многоступенчатый поиск. Встроенному поиску из-под GUI-IDE такое даже и не снилось.
Смотря что использовать в GUI. Например FAR такое умеет...
Если говорить метафорично, то утилиты Unix - это как химическая посуда (пробирки, колбы, мензурки, воронки, фильтры, капельницы, часовые стекла, стеклянные палочки), только применительно к данным (числам и тексту). Видимо авторы UNIX в 196х-197х были серьезно вдохновлены химией при разработке компьютерных консольных утилит. Согласитесь, что ну невозможно не заметить этих аналогий между UNIX утилитами и химической посудой.
Полезные Заготовки Вызова Утилит Командной Строки