Что является эквивалентом каталога bin для Windows?

18

Есть ли эквивалент binдля Windows? Если так, как я могу получить к нему доступ из командной строки?

Тоби Блант
источник
5
Вы должны уточнить немного больше ... Что вы ищете и пытаетесь достичь?
Эрик Ф
8
binне является особенным, он просто значится в PATHокружающей среде. Microsoft Windows также имеет эту переменную. Единственное отличие состоит в том, что он использует ;вместо :, и при запросе подразумевается .дополнительная небезопасность. Посмотрите на эту переменную. Вы также можете отредактировать его, чтобы добавить binкаталог.
Ctrl-Alt-Delor
Удивительно, чего может добиться хорошее редактирование. : P
Майкл Франк
1
@MichaelFrank Особенно, когда вы делаете предположения и добавляете вещи, о которых OP не спрашивал (например: «Может ли это быть создано в Windows»). Мы должны быть осторожны с этим.
Ƭᴇcʜιᴇ007
2
Или сделав заголовок двусмысленным, удалив ключевое слово типа «каталог». Сначала я думал, что тема была о типе файла.
опилки

Ответы:

29

На самом деле /binв Unix / Linux нет ничего особенного . Это просто место , где исполняемые файлы ( в том числе скриптов, которые не являются на самом деле бен ичными файлами) размещается по соглашению , и он включен в PATHпеременных окружениях по умолчанию для всех пользователей. Как говорит Райан, \Windows\System32каталог в Windows также предназначен PATHдля всех пользователей Windows (и, даже если это не так, загрузчик программ для Windows все равно будет там искать).

Вы можете легко создать свой собственный эквивалент в /binWindows. Чтобы сделать его общесистемным, поместите его где-нибудь, например, в корень файловой системы (как в C:\bin) или в уже ограниченном месте, например \Windows\System32\bin), и добавьте его в PATHпеременную среды для всех пользователей. Для каждого пользователя создайте каталог в своем профиле ( %USERPROFILE%\bin) и добавьте его в PATHпеременную среды вашей учетной записи . Windows объединяет PATHпеременные среды для пользователя и системы , поэтому все, что находится в машинной PATHпеременной, также добавляется к любому пользователю PATH, но никак не наоборот.

Конечно, вам придется самостоятельно добавлять файлы / scripts / shortcuts / symlinks в ваш binкаталог. Установщики Windows не ожидают такой вещи и не будут автоматически помещать туда файлы, как это обычно делают установщики Linux.

CBHacking
источник
10
Я бы не поместил binподобный каталог внутри System32. Это домены ОС. Лучше поместите его в другом месте, например, в предложенный вами c: \ bin, и заново создайте ACL. Это не должно занять больше минуты или двух, если вы знакомы с интерфейсом ACL; немного дольше в противном случае, но все же не долго.
CVN
1
Я хотел бы добавить, что стандартным способом сделать установленные пользователем инструменты CLI доступными из командной строки является добавление их каталога установки (вероятно, в% ProgramFiles%) в PATH.
Дженс
Windows не объединяет переменные среды с одинаковыми именами - обычно переменные среды пользовательского уровня переопределяют системные переменные. PATHэто особый случай, и AFAIK единственный, который рассматривается Windows таким образом.
afrazier
ОП никогда не спрашивал о создании каталога bin или переменных среды ... поговорим о не по теме.
Райан Бабчишин
1
При всем уважении, вопрос об «эквиваленте binдля Windows» означает ничего не спрашивать, кроме переменных среды, потому что это все, что /binявляется папкой в PATHпеременной среды . Существуют пользовательские соглашения о том, как вы используете папки, такие как /bin(или %WINDIR%, или %WINDIR%\System32), но система не знает или не заботится о них; все, что его волнует (в этом контексте) - это PATHпеременная окружения.
CBHacking
6

Если вы имеете в виду bin, как в Unix / Linux, не совсем. Windows не использует FHS как общий для разных вариантов Unix. Хотя Windows хранит вещи повсюду, как это делает Unix.

Наиболее близким к / bin может быть c: \ windows \ system32

cd c:\windows\system32
Райан Бабчишин
источник
1
Ни Windows, ни Linux (или FHS) «не хранят вещи повсюду». Windows использует в основном каталог System32 и каталоги Program Files (в настоящее время два), чтобы поддерживать порядок. В Linux (и многих других Unix-подобных системах) у вас есть bin(общие пользовательские инструменты) и sbin(обычно, инструменты системного администрирования) в каждом из корневого каталога, / usr и, возможно, / usr / local, в зависимости от системной важности инструмента. (И / usr, и / usr / local могут быть отделены от корневой файловой системы.) В Windows нет такого четкого разделения в файловой системе между типами инструментов.
CVN
1
Я думаю, что вы только что подтвердили мою точку зрения, во многих местах хранятся исполняемые файлы. Это не случайно, если вы думаете, что я имел в виду. Мой рабочий стол Linux имеет только 479 каталогов ниже / usr, которые содержат исполняемые файлы некоторого вида. Если я выберу это, я думаю, что некоторые файлы будут неправильно помечены как исполняемые, но вы поняли идею. FHS определяет 7 стандартных родительских каталогов, которые можно использовать для исполняемого хранилища, многие из которых могут иметь подкаталоги. Windows похожа, поскольку она хранит исполняемые файлы в нескольких местах в c: \ windows и в c: \ Program Files.
Райан Бабчишин
По умолчанию в переменной PATH в системах Ubuntu есть 6 записей.
Райан Бабчишин
6

binКаталог в Unix-подобных системах , содержит программы системы и установленных из них, но в Windows, системные программы расположены в C:\Windows\System32и установлены те , которые , вероятно , находится в C:\Program Files.

Хамза Аббад
источник
2

Как уже говорили другие, не совсем понятно, что вы подразумеваете под «эквивалентом», но многие команды, обычно используемые в командной строке, либо встроены в cmd.exe (dir, copy, type, mkdir и т. Д.), Даже когда Unix-эквивалент будет в / bin, а другие (findstr, net, mountvol, shutdown, tasklist и т. д.) в основном находятся в (обычно) C: \ Windows \ System32 (32-битные версии на 64-битных системах в c: \ Windows \ SysWOW64).

С помощью команды можно отобразить список команд help, в том числе те, которые встроены в cmd.exe, а некоторые - внешние программы.

Random832
источник
1

Я почти 30 лет обслуживаю серверы как для Windows, так и для Linux. По какой-то причине в начале я начал создавать папку bin в корне c: и я всегда помещал все свои скрипты и утилиты, которые я использую для обслуживания сервера. Иногда я добавляюсь на Путь, но не всегда. Думаю, мне всегда нравится идея папки bin в обеих системах, в которую помещаются мои скрипты.

Но да, ничего волшебного в этом нет, вы можете сделать что-то свое в каждой системе.

Благодарность,

user510304
источник