Введение
Если Вам нужно настроить PATH в Linux – перейдите
сюда
| Введение | |
| Для чего используется | |
| Пример | |
| Добавить в PATH из PowerShell | |
| Добавить в PATH из UI | |
| Изучить содержимое PATH | |
| Ошибки | |
| Postgesql | |
| Похожие статьи |
Функция bin() конвертирует заданное целое число в его двоичное представление и возвращает его.
# Конвертируем 15 в двоичный формат ‘The binary equivalent of 15 is’ |
The binary equivalent of 15 is 0b1111
Файл BIN — это исполняемый файл в операционных системах на базе Unix, таких как Linux или FreeBSD. Он содержит скомпилированную программу, состоящую из двоичного кода, полученного из исходного кода, что делает ее совместимой с базовой архитектурой системы. Исполняемые файлы BIN Unix можно сравнить с файлами .EXE Windows и файлами .APP macOS с точки зрения их роли исполняемых форматов.
В области разработки программного обеспечения для систем Unix разработчики обычно используют файлы BIN для упаковки и распространения программ. Они предлагают удобные средства доставки программного обеспечения пользователям, позволяющие легко установить и использовать его. Помимо файлов BIN существуют и другие типы исполняемых файлов Unix, в том числе .ELF, .X86, .RUN и .X86_64, каждый из которых адаптирован для конкретного оборудования или Системные Требования.
Что касается внутренней структуры файла BIN, то он состоит из закодированных данных, которые операционная система Unix использует для идентификации, чтения и выполнения прилагаемой программы. Система полагается на определенные подписи или заголовки файлов, чтобы распознать файл BIN как исполняемый файл с последующей интерпретацией и выполнением содержащихся в нем двоичных инструкций.
Файлы BIN часто поставляются в комплекте с сопроводительным файлом INSTALL.TXT, в котором содержатся подробные инструкции по правильной установке и настройке программы. Эта документация гарантирует, что пользователи смогут успешно пройти процесс установки и без проблем начать использовать программное обеспечение.
Для пользователя Linux командная строка Windows кажется чем-то непривычным и неудобным. С появлением WSL казалось, что проблема использования Bash решена, но запуск виртуальной машины требует времени, да и пути в WSL отличаются от Windows. Плюс скорость файловых операций на виртуальной машине хуже.
Ещё есть возможность использовать Bash через MSYS2, но мне хотелось найти что-то более компактное и легковесное, а также простое в настройке и установке.
Так как я часто использовал Linux на роутерах, то познакомился с BusyBox, набор UNIX-утилит командной строки, используемой в качестве основного интерфейса во встраиваемых операционных системах. Оказалось, есть версия BusyBox для Windows. В 2020 году появился Windows Terminal, а в нем есть возможность создавать вкладку с запуском конкретной программы.

Сложив эти два факта, пришла очевидная мысль, использовать BusyBox, содержащий в себе Bash, в Windows Terminal как отдельную консоль.


У этого подхода был один минус, при запуске терминала не из конкретной папки, а из ярлыка на рабочем столе или из панели задач.

То адрес рабочей папки был C:/Windows/System32, и если случайно ввести команду удаления или создания файла, то мы портим важную системную папку. Обойти возможно используя аналог .bashrc или /etc/profile или .profile.

Но просто создать файл .profile мало, BusyBox для Windows их не считывает, для этого необходимо добавить путь к этому файлу в ENV в “Переменные среды”.

Теперь мы можем написать скрипт, который будет настраивать рабочую директорию при запуске консоли.
#!/bin/bash
domain=$(echo $PWD | tr '[:upper:]' '[:lower:]')
if [ $domain = "c:/windows/system32" ]; then cd $HOME
fiТеперь если мы запустили терминал из ярлыка или панели задач, то рабочей директорией по умолчанию становится домашняя папка пользователя, а если мы запускаем из конкретной папки то, она и становится рабочей директорией.
Мы получили Bash в Windows Terminal с удобной начальной директорией.
Часто приходится переключаться между разными операционными системами во время работы. Чтобы не запоминать множество команд, я использую шпаргалку с основными командами, которой решил поделиться с вами.
В ней вы найдете основные команды для работы в терминале Windows, Linux и macOS. Также описаны базовые команды по работе с Systemctl, VirtualEnv и Git.
Основные команды
Удаление папки
rmdir /s /q папка_для_удаленияLinux и macOS:
rm -rf папка_для_удаленияСоздание папки
mkdir новая_папкаLinux и macOS:
mkdir новая_папкаСоздание виртуального окружения python через venv
python -m venv venvLinux и macOS:
python3 -m venv venvВиртуальное окружение python через venv
venv на Windows идет “из коробки”. Для установки на Linux и macOS возможно потребуется ввести команды:
sudo apt install -y python3-venv
sudo apt install -y build-essential libssl-dev libffi-dev python3-devАктивация на Windows:
venv\Scripts\activateАктивация на Linux и macOS:
source venv/bin/activateДеактивация (Linux, macOS и Windows):
deactivateКоманды Git
Инициация Git репозитория
git initПривязка удаленного репозитория
git remote add origin ссылка_на_репозиторийОтвязываем репозиторий
git remote rm origin ссылка_на_репозиторийПривязываем другой репозиторий
git remote set-url origin git@github.com:username/projectname.gitУстановка ветки по умолчанию
git config --global init.defaultBranch mainКлонирование репозитория
git clone ссылка_на_репозиторийПросмотр состояния репозитория
git statusДобавление файлов в индекс
git add имя_файла_или_папкиКоммит изменений
git commit -m "сообщение коммита"Обновление локального репозитория (pull)
git pull origin mainОтправка изменений в удаленный репозиторий (push)
git push origin mainСоздание новой ветки и переключение на нее
git checkout -b новая_веткаПросмотр списка веток
git branchПереключение на существующую ветку
git checkout имя_веткиСлияние веток
git merge имя_веткиСоздание репозитория на GitHub через командную строку
Для этого нужно использовать GitHub CLI. Сначала установите его, а затем выполните следующие команды:
Установка GitHub CLI
Windows (через winget):
winget install --id GitHub.climacOS (через Homebrew):
brew install ghLinux (через пакетный менеджер):
Пример для Ubuntu:
sudo apt install ghАвторизация в GitHub CLI
gh auth loginСоздание репозитория
gh repo create имя_репозитория --publicgh repo create имя_репозитория --privateДругие полезные команды для Shell
Просмотр содержимого текущей директории
dirLinux и macOS:
lsПереключение директории
cd путь_к_папкеКопирование файлов
copy исходный_файл целевой_файлLinux и macOS:
cp исходный_файл целевой_файлПеремещение файлов
move исходный_файл целевой_файлLinux и macOS:
mv исходный_файл целевой_файлВывод содержимого файла
type имя_файлаLinux и macOS:
cat имя_файлаСоздание и редактирование файлов
echo текст > имя_файла
notepad имя_файлаLinux и macOS:
echo "текст" > имя_файла
nano имя_файлаБлок терминальных команд для Ubuntu (использую чаще всего)
Обновление и установка программного обеспечения
Обновление списка пакетов
sudo apt updateЭта команда обновляет список доступных пакетов и их версий, но не устанавливает и не обновляет никаких пакетов.
Обновление установленных пакетов
sudo apt upgradeЭта команда обновляет все установленные пакеты до самых новых версий, которые доступны в репозиториях.
sudo apt install <имя_пакета>Эта команда устанавливает указанный пакет. Например, чтобы установить браузер Firefox, выполните:
sudo apt install firefoxsudo apt remove <имя_пакета>Эта команда удаляет указанный пакет, но сохраняет его конфигурационные файлы.
Полное удаление пакетов
sudo apt purge <имя_пакета>Эта команда удаляет указанный пакет вместе с его конфигурационными файлами.
Очистка ненужных пакетов
sudo apt autoremoveЭта команда удаляет ненужные пакеты, которые были установлены как зависимости и больше не требуются.
Управление системными службами
sudo systemctl start <имя_службы>Эта команда запускает указанную службу. Например:
sudo systemctl start apache2sudo systemctl stop <имя_службы>sudo systemctl restart <имя_службы>Проверка статуса службы
sudo systemctl status <имя_службы>Включение службы при загрузке
sudo systemctl enable <имя_службы>Отключение службы при загрузке
sudo systemctl disable <имя_службы>
Не забудьте добавить эту шпаргалку в закладки и оценить ее лайком, если она оказалась полезной для вас.
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером
Переменные окружения
Основы командной строки
Команда cd без аргументов делает домашнюю директорию пользователя рабочей. Возникает вопрос, каким образом она узнает о том, где находится домашняя директория?
Можно предположить, что команда cd каким-то образом обращается к операционной системе и узнает у нее эту информацию или смотрит напрямую в конфигурационных файлах. Но ни первого, ни второго она не делает.
Эта команда ориентируется на так называемую переменную окружения, которую мы изучим в этом уроке.
Что такое переменные окружения
Переменные окружения похожи на переменные в языках программирования. Они существуют в рамках запущенной сессии командной оболочки, то есть, переменные пропадут, когда терминал закроется. Они подгружаются туда во время его инициализации, хотя это не единственный путь их появления.
Посмотреть установленные переменные можно командой env (environment). Ниже неполный список этих переменных, которые доступны на одном из серверов Хекслета:
xterm-256color
/bin/bash
en_US.UTF-8
kirill.m
v2711
/home/kirill.m/bin:/home/kirill.m/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
/home/kirill.m
en_US.UTF-8
1
/home/kirill.m
kirill.mФормат вывода очень простой: слева от знака равно расположено имя переменной, справа — значение. В вашем случае вывод команды env будет отличаться не только значениями этих переменных, но и их составом. Например, у вас точно не будет HEXLET_VERSION, но наверняка будет HOME, только с другим значением.
Основное предназначение переменных окружения — конфигурирование системы и программ. Их удобство заключается в универсальности. Кроме того, они помогают отвязать нас от способа появления этих значений в системе.
Возьмем для примера ту же команду cd. Она знает лишь то, что домашняя директория доступна в переменной окружения HOME. Как она попала в систему — не важно.
Без переменной окружения пришлось бы делать одну из двух вещей:
- При вызове
cdкаждый раз указывать, где находится домашняя директория. Например, так:cd --home-dir /home/kirill.m. Такой способ убивает весь смысл быстрого перехода в домашнюю директорию - Договариваться, что где-то будет храниться специальный файл с настройками, в том числе домашней директории. Настройки из этого файла будут читаться командой
cdпри каждом запуске
Существует некоторый базовый набор переменных, которые всегда устанавливаются bash при старте. Они используются большим количеством утилит и нужны для нормального функционирования системы. Одну из таких переменных мы уже знаем — это HOME:
# а перед самой переменной ставится знак $
/home/kirill.m# Вокруг знака `=` не должно быть пробелов/tmp
/tmp# Возвращаем обратно/home/kirill.m
/home/kirill.mТеперь проведем эксперимент: попробуем установить HOME и выполнить переход в эту директорию с помощью команды cd, которая должна отправить нас в домашнюю директорию:
# Достаточно выполнить присваивание слева от запускаемой команды/tmp
/tmp
/tmpКоманда cd выполнила переход по пути, указанном в переменной HOME. Теперь снова сделаем cd, но не добавляя определение переменной слева:
/home/kirill.m
/home/kirill.mВ этот раз произошел переход в настоящую домашнюю директорию. Получается, что вызов HOME=/tmp cd изменил переменную только для того конкретного запуска. И действительно, существует два способа задавать значение переменной окружения: локальный и глобальный.
Когда мы указали HOME=/tmp прямо перед командой cd, то переменная не была изменена для текущей сессии — она была изменена для запущенной команды, в данном случае cd. Такой трюк можно проделывать с любой командой.
Другой способ установки изменяет значение глобально, для всей сессии и выполняется так:
/home/kirill.m
/tmp
/tmp
/tmpОбратите внимание, что изменение происходит в рамках текущей сессии. Другими словами, если у нас открыто две вкладки терминала, то изменение произойдет только в той вкладке, в которой мы написали команду.
Особую роль среди переменных окружения играет PATH — еще одна важная переменная. Сложности с ней возникают настолько часто, что этой переменной посвящен практически целый урок впереди.
Самостоятельная работа
Изучите переменные окружения в вашей локальной среде, набрав команду env.
Дополнительные материалы

Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Другие файлы BIN
Ниже приведены другие типы файлов, использующие расширение .bin.
Возвращаемое значение функции bin()
Функция bin() возвращает:
двоичное представление заданного числа;
ошибку TypeError для случаев передачи нецелочисленного аргумента.
Пример №1: Функция bin() в Python
# Конвертируем 5 в двоичный эквивалент ‘The binary equivalent of 5 is:’ |
The binary equivalent of 5 is: 0b101
В данном примере мы использовали функцию bin() для конвертации числа 5 в двоичное представление, т.е. 101. Префикс 0b в значении 0b101 обозначает, что это двоичная строка.
Пример №2: Функция bin() с «нецелочисленным» классом в Python
‘The binary equivalent of quantity is:’ |
TypeError: 'Quantity' object cannot be interpreted as an integer
Здесь мы передали объект класса Quantity в функцию bin() и получили ошибку TypeError из-за того, что мы использовали «нецелочисленный» класс.
Примечание: Мы можем исправить TypeError выше, используя метод __index__() с «нецелочисленным» классом.
Пример №3: Функция bin() с методом __index__() для «нецелочисленного класса»
‘The binary equivalent of quantity is:’ |
The binary equivalent of quantity is: 0b101
Здесь мы передали объект класса Quantity в функцию bin(). Функция bin() не генерирует ошибку TypeError, даже если объект Quantity не является целым числом. Это потому, что мы использовали метод __index__(), который возвращает целое число.
Добавить в PATH с помощью PowerShell
‘;C:\Program Files\Mozilla Firefox’
CMake
из
Visual Studio
‘;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin’
Как открыть файл BIN?
Файлы BIN не предназначены для непосредственного открытия и просмотра. Однако вы можете запускать программы или извлекать содержащиеся в них данные. Чтобы получить доступ к содержимому файла BIN, выполните следующие действия в командной строке, предполагая, что имя файла BIN — «sample.bin»:
- Убедитесь в разрешениях для исполняемого файла:
Прежде чем запускать файл BIN, убедитесь, что у него есть необходимые разрешения для запуска в качестве исполняемого файла. Используйте команду:
$ chmod +x sample.binЭта команда предоставляет исполняемому файлу привилегии.
- Запустите файл BIN:
После установки разрешений на исполняемый файл вы можете запустить BIN-файл, введя следующую команду:
$ ./sample.binСоблюдайте осторожность при работе с загруженными или отправленными по электронной почте BIN-файлами, поскольку они потенциально могут быть использованы киберпреступниками для распространения вредоносного ПО. Запускайте файлы BIN только из надежных источников, чтобы снизить риск вредоносных атак на исполняемые файлы.
Postgesql
Приведу пример для использования psql из
WSL
и
Git Bash
– это может пригодиться если Вы хотите временно добавить
путь к psql в PATH чтобы запустить
Postrgres
скрипт.
В моём случае
psql.exe
находится в папке C:\Program Files\PostgreSQL\12\bin
В
WSL
В
Git Bash
В
PowerShell
можно проверить наличие пути до Postgres с помощью Select-String
Добавить путь до Postgres в конец Path можно следующим образом
Добавить в начало Path
| Windows | |
| Terminal | |
| PowerShell | |
| Посмотреть конец файла в PowerShell (аналог tail) | |
| Создать новый файл в PowerShell (аналог touch) | |
| Проверить контрольную сумму файла в PowerShell (аналог md5sum) | |
| Loudness Equalization | |
| Windows Firewall | |
| Remote Desktop Protocol | |
| Драйверы в Windows | |
| Режим разработчика в Windows 10 | |
| Git Bash | |
| WSL: Windows Subsystem for Linux | |
| Telnet в Windows 10 | |
| Системная переменная PATH | |
| Установка Windows на gpt диск | |
| batch file | |
| pstools | |
| Удалённый рабочий стол | |
| Горячие клавиши | |
| BSOD просмотр логов ошибок |
Конец рекламы от Яндекса. Если в блоке пусто считайте это рекламой
моей телеги
Для чего используется
Когда Вы выполняете какую-либо команду в консоли, система ищет соответствие
между названием этой команды и программой, которую можно выполнить.
Искать по всему жёсткому диску было бы слишком долго, поэтому поиск
осуществляется только по некоторым директориям.
Список этих особых директорий хранится в системной переменной PATH.
Добавить директорию в PATH
Дополнительные параметры системы (Advanced system settings)
Если хотите менять для всей системы, то делайте это в оконе
«Переменные среды»
(System Variables)
Если хотите менять только для своего пользователя, то делайте это в блоке
Создайте новый путь (New)
Введите адрес директории в которой лежит нужная программа. В нашем случае это
C:\Program Files (x86)\Mozilla Firefox
Перезапустите консоль или открываем новую и пишем там firefox.
Браузер должен запуститься.
Параметры функции bin()
Функция bin() принимает один параметр:
number — это число, двоичный эквивалент которого нужно вычислить.
Пример
Предположим, что возникла необходимость запускать какую-то программу, например
Firefox
, непосредственно из командной строки.
Без предварительной подготовки ввод Firefox в консоль выдаст ошибку.
‘firefox’ is not recognized as an internal or external command, operable program or batch file.
Чтобы решить эту проблему нужно добавить директорию с испоняемым файлом firefox в PATH
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
130 курсов, 2000+ часов теории
1000 практических заданий в браузере
360 000 студентов
Наши выпускники работают в компаниях:
Изучить содержимое PATH
В
PowerShell
достаточно выполнить
В cmd.exe посмотреть список переменных
окружения можно выполнив команду
set
без параметров.
Выдача содержит системные переменные и переменные пользователя
а также дополнительную информацию. Содержимое PATH выделено зелёным.

Конец рекламы от Яндекса. Если в блоке пусто считайте это рекламой
моей телеги
Ошибки
-bash: syntax error near unexpected token `(‘
Скорее всего Вы пытаетесь добавить в unix PATH адрес из Windows, c пробелами, скобками и так далее.
-bash: syntax error near unexpected token `(‘
Для решения этой проблемы Вам нужно экранировать пробелы и скобки. Если импортируется много путей и ввод очень длинный –
немного проще записать PATH=$PATH:/путь , если Вам подходит запись в конец.
Также нужно помнить, что все лишние пробелы сломают импорт – для проверки можно сделать весь скрипт в одну строку
в текстовом редакторе.
Также стоит помнить, что если Вы работаете в
bash под Windows
,
то переменные окружения нужно задавать через Windows.




