Light-electric.com

IT Журнал
6 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Системная среда linux

Переменные окружения в Linux

В системах Linux для хранения и использования некоторых настроек и параметров используются специализированные контейнеры данных — переменные окружения. Они представляют собой именованные переменные, в которых хранится текстовое значение. В качестве значения могут использоваться пути, имена команд, файлов и. т. д. Переменные окружения можно редактировать, т. е. изменять их значения, удалять или создавать новые. Переменными окружения пользуются как система, так и программы, скрипты или демоны для своей работы.

Зачем нужны переменные окружения?

Если коротко, то они необходимы для организации различного рода окружений: системных, пользовательских, сеансовых, т. е. для хранения настроек соответствующих сред внутри системы. К примеру, программы для своей работы используют библиотечные функции, являющиеся одним из важнейших системных ресурсов. Или, например, интерпретатор команд способен находить соответствующие командам исполняемые файлы без необходимости каждый раз указывать соответствующие пути.

Но как программы «узнают», где можно найти те или иные ресурсы? Из переменных окружения. Таким же образом происходит запуск и исполнение команд в командной консоли, т. к. благодаря переменной окружения PATH интерпретатор bash (или любая другая командная оболочка) находит программу (исполняемый файл или библиотеку) по указанному в PATH пути. И таким же образом, к примеру, команда man «знает», что запрашиваемые страницы справочных руководств нужно искать согласно значению переменной окружения MANPATH.

Получение информации о переменных окружения

В работе, тесно связанной с системным администрированием довольно часто приходится сталкиваться с такими ситуациями, когда необходимо узнать значения некоторых переменных окружения или же вывести список полный список таковых. Для этой цели существует несколько специализированных утилит. В подавляющем большинстве случаев соответствующие пакеты уже предустановлены в системе. Самыми распространёнными из таких утилит являются printenv, env, а также export. Так, например, для того, чтобы вывести список действующих переменных окружения нужно дать следующую команду:

В данном выводе представлен сильно сокращённый список переменных окружения для Kubuntu 18.04. Также следует заметить, что представленный список относится к пользовательскому набору, доступному текущему пользователю. Если выполнить команду printenv от имени суперпользователя (root), то набор переменных будет несколько отличаться.

Как следует из вышеприведённого вывода, для пользователя john используется русская локализация для сеанса (LANG), в качестве командного интерпретатора по-умолчанию используется bash (SHELL), текущим активным каталогом является /home/john (PWD), а переменная PATH модифицирована и содержит в себе (кроме дефолтного /usr/bin) значения /opt/wxwidgets/bin и /home/john/.config/composer/vendor/bin. Значение каждой переменной окружения представляет собой, как можно видеть, набор параметров, разделённых двоеточиями.

Тот же список можно вывести, если дать команду env. Также можно использовать команду export с ключом -p:

Для вывода значения конкретной переменной:

В последнем случае будет выведены все переменные, содержащие фразу «PATH».

Виды переменных окружения

Как уже отмечалось, в системе существуют, образно выражаясь, различные рабочие среды для разных уровней доступа и продолжительности действия переменных. Для организации работы пользователей действует пользовательская среда (окружение), для корректного функционирования компонентов системы — системное окружение, доступное только суперпользователю. В процессе работы также можно устанавливать временные переменные окружения, доступные текущему пользователю и только на время действия текущего сеанса.

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

Переменные окружения в Linux

Переменные окружения в Linux — это специальные переменные, определенные оболочкой и используемые программами во время выполнения. Они могут определяться системой и пользователем. Системные переменные окружения Linux определяются системой и используются программами системного уровня.

Например, команда PWD использует системную переменную, чтобы сохранять прежнюю рабочую директорию. Пользовательские переменные окружения устанавливаются пользователем, для текущей оболочки, временно или постоянно. Вся концепция добавления и удаления переменных оболочки крутится вокруг нескольких файлов, команд и различных оболочек.

Если смотреть более широко, переменная окружения может быть трех типов:

1. Локальные переменные окружения

Эти переменные определены только для текущей сессии. Они будут безвозвратно стерты после завершения сессии, будь то удаленный доступ или эмулятор терминала. Они не хранятся ни в каких файлах, а создаются и удаляются с помощью специальных команд.

2. Пользовательские переменные оболочки

Эти переменные оболочки в Linux определяются для конкретного пользователя и загружаются каждый раз когда он входит в систему при помощи локального терминала, или же подключается удаленно. Такие переменные, как правило, хранятся в файлах конфигурации: .bashrc, .bash_profile, .bash_login, .profile или в других файлах, размещенных в директории пользователя.

3. Системные переменные окружения

Эти переменные доступны во всей системе, для всех пользователей. Они загружаются при старте системы из системных файлов конфигурации: /etc/environment, /etc/profile, /etc/profile.d/ /etc/bash.bashrc.

Конфигурационные файлы переменных окружения Linux

Здесь мы кратко рассмотрим различные конфигурационные файлы, перечисленные выше, которые используются для настройки переменных окружения для всей системы или конкретного пользователя.

.bashrc

Это файл переменных конкретного пользователя. Загружается каждый раз, когда пользователь создает терминальный сеанс, то есть проще говоря, открывает новый терминал. Все переменные окружения, созданные в этом файле вступают в силу каждый раз когда началась новая терминальная сессия.

.bash_profile

Эти переменные вступают в силу каждый раз когда пользователь подключается удаленно по SSH. Если этот файл отсутствует система будет искать .bash_login или .profile.

/etc/environment

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

/etc/bash.bashrc

Системный bashrc. Этот файл выполняется для каждого пользователя, каждый раз когда он создает новую терминальную сессию. Это работает только для локальных пользователей, при подключении через интернет, такие переменные не будут видны.

/etc/profile

Системный файл profile. Все переменные из этого файла, доступны любому пользователю в системе, только если он вошел удаленно. Но они не будут доступны, при создании локальной терминальной сессии, то есть если вы просто откроете терминал.

Все переменные окружения Linux созданные с помощью этих файлов, могут быть удаленны всего лишь удалением их оттуда. Только после каждого изменения, нужно либо выйти и зайти в систему, либо выполнить эту команду:

Добавление пользовательских и системных переменных окружения в Linux

Теперь, когда вы знаете немного теории, перейдем к практике. Локальные переменные окружения в Linux можно создавать следующими командами:

var=значение
$ export var=значение

Эти переменные будут доступны только для текущей терминальной сессии.

Для удаления переменных окружения можно использовать несколько команд:

1. Использование env

По умолчанию с помощью env можно посмотреть все установленные переменные среды. Но с опцией -i она позволяет временно удалить все переменные оболочки и выполнить команду без переменных.

env –i [Var=Значение] команда

Var — это любая переменная, которую вы хотите передать этой команде.

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

После запуска такого окружения, не будет доступно никаких переменных, но после выхода все вернется на свои места.

2. Использование unset

Это другой способ удаления переменных окружения Linux. Unset удаляет переменную по имени до конца текущей сессии:

3. Установить значение переменной в »

Это самый простой способ удаления переменных окружения в Linux, устанавливая пустое значение переменной, вы удаляете ее до конца текущей сессии.

Замечание: С помощью таких способов вы можете изменять значения системных или пользовательских переменных, но они будут актуальны только для текущего сеанса.

Создание пользовательских и системных переменных окружения

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

1. Устанавливаем и удаляем локальные переменные в Linux

Давайте создадим локальную переменную VAR и установим ей любое значение, затем удалим ее с помощью unset и убедимся что она удалена:

VAR1=’Losst’
$ echo $VAR1
$ unset VAR1
$ echo $VAR1

Другой способ создать переменную — команда export. Удалим ее присвоив пустое значение:

export VAR=’Losst’
$ echo $VAR
$ VAR=
$ echo $VAR

Теперь создадим переменную VAR2 также зададим ей значение. А потом временно удалим все локальные переменные выполнив env -i. Она запустит оболочку без каких-либо переменных. После ввода exit все переменные будут восстановлены.

VAR2=’Losst’
$ echo $VAR2
$ env -i bash
$ echo $VAR2

Установка и удаление пользовательских переменных

Отредактируйте файл .bashrc, в вашей домашней директории, добавив команду export, для экспортирования нужной переменной. Затем выполните команду source для применения изменений. Создадим, например, переменную CD:

Добавьте такую строчку (o, затем вставить, затем Esc и :wq):

export CD=’This is Losst Home’

Теперь осталось обновить конфигурацию:

source .bashrc
$ echo $CD

Для удаления этой переменной просто удалите ее из .bashrc.

Теперь добавим переменную окружения с помощью .bash_profile. Эта переменная, как вы уже знаете будет доступна только при удаленном входе:

export VAR2=’This is Losst Home’

И выполните эти команды, чтобы применить изменения и проверить добавление переменной:

source .bash_profile
$ echo $VAR2

Переменная недоступна, так как вы создали локальную терминальную сессию, теперь подключитесь по ssh:

ssh user@localhost
$ echo $VAR2

Удалить эту переменную окружения можно так же как и в предыдущем случае, удалив ее из файла.

Замечание: Эти переменные доступны всегда, но не для всех пользователей.

Установка и удаление системных переменных окружения

Создадим переменную, доступную для всех пользователей, во всех терминальных сессиях, кроме удаленных, добавлением ее в /etc/bash.profile:

export VAR=’This is system-wide variable’

Теперь эта переменная доступна для всех пользователей, во всех терминалах:

echo $VAR
$ sudo su
$ echo $VAR
$ su —
$ echo $VAR

Если вы хотите сделать переменную окружения доступной для всех пользователей, которые подключаются к этой машине удаленно, отредактируйте файл /etc/profile:

export VAR1=’This is system-wide variable for only remote sessions’

Обновите конфигурацию, и проверьте доступность переменной, она будет доступна только удаленно:

source /etc/profile
$ echo $VAR1

Если нужно добавить переменную окружения в Linux, так чтобы она была доступна и удаленно, и для локальных сессий, экспортируйте ее в /etc/environment:

Читать еще:  Как узнать какое ядро linux

export VAR12=’I am available everywhere’

source /etc/environment
$ echo $VAR12
$ sudo su
$ echo $VAR12
$ exit
$ ssh localhost
$ echo $VAR12

Как видите, переменная доступна и для локальных пользователей и удаленно.

Выводы

С помощью этих нескольких способов мы можем изменить переменные окружения. Если вы знаете другие интересные способы это сделать, поделитесь в комментариях!

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.

7 комментариев

/etc/profile
«Все переменные из этого файла, доступны любому пользователю в системе, только если он вошел удаленно. »
А что значит вошел удаленно? Через SSH?

Написанное справедливо для всех современных дистрибутивов?

Здравствуйте! Скажите можно ли запускать видео на 2-м мониторе добавив переменную в ./bashrc к примеру:
env DISPLAY=0:1 totem (ну или другой проигрыватель)?
или лучше использовать:
export DISPLAY=0:1 totem

Думаю: лучше env -i DISPLAY=0:1 totem в

/.xinputrc, только вот с totem’ом могут быть те ещё грабли — тут уже не подскажу. а вот если там же, в

/.xinputrc, будет export DISPLAY=0:1, то это подействует и на X-сервер. Ну, и ваше export DISPLAY=0:1 totem — это уже ошибка, тогда уж в две строки:
export DISPLAY=0:1
totem
Но, totem будет запускаться вместе с x-сервером. может проще создать alias с env в

/.bashrc? А может в totem есть ещё какие опции, как, например, в mplayer -display?

«. добавлением ее в /etc/bash.profile
.
Затем обновляем:
source /etc/bash.bashrc»
я думал обновлять надо отредактированный файл, или это опечатка?

Позволю себе добавить к вышесказанному:
VAR=1 # переменная видна только для ТЕКУЩЕГО процесса
$VAR
>> 1: команда не найдена
set | grep VAR # set без параметров отобразит ВСЕ (как локальные так и глобальные) переменные
>> VAR=1
env | grep VAR
>>
bash # запустим дочерний процесс
$VAR # наша переменная в нем не видна
>>
exit # выходим
$VAR # переменная сохранилась в родительском процессе
>> 1: команда не найдена
VAR=2 bash # установим переменную для дочернего процесса
$VAR # она видна в дочернем процессе
>> 2: команда не найдена
set | grep VAR # так же видна в set
>> VAR=2
exit # закрываем дочерний процесс
$VAR # в родительском процессе хранится свой экземпляр переменной
>> 1: команда не найдена
unset VAR
$VAR
>> # значение переменной сброшено

export VAR=3 # переменная видна в ТЕКУЩЕМ и ДОЧЕРНИХ процессах
$VAR
>> 3: команда не найдена
set | grep VAR
>> VAR=3
env | grep VAR
>> VAR=3
printenv | grep VAR
>> VAR=3
bash # запускаем дочерний процесс
env | grep VAR
$VAR # переменная доступна
>> 3: команда не найдена
VAR=2 # можем изменить ее значение
$VAR
>> 2: команда не найдена
unset VAR # сбросим значение
$VAR
>> # переменная не определена
exit
$VAR
>> 3: команда не найдена # родительский процесс хранит значение переменной после сброса в дочернем
env | grep VAR
>> VAR=3

Как установить и отключить переменные локальной, пользовательской и системной среды в Linux

Переменные среды — это специальные переменные, которые определены в оболочке и необходимы программам или скриптам во время выполнения. Они могут быть определены системой или пользователем. Системно-определяемые переменные — это те, которые установлены системой.

Например команда PWD — очень распространенная системная переменная, которая используется для хранения текущего рабочего каталога. Пользовательские переменные обычно устанавливаются либо временно для текущей оболочки, либо постоянно. Вся концепция настройки и изменения параметров среды вращается вокруг некоторого набора файлов и нескольких команд и разных оболочек.

Если говорить более точно, то переменная среды может быть трех типов:

1. Локальная переменная среды

Она определяется для текущего сеанса. Эти переменные среды используются на протяжении текущего сеанса, будь то удаленный сеанс входа в систему или сеанс локального терминала. Эти переменные не указаны в каких-либо файлах конфигурации и создаются и удаляются с помощью специального набора команд.

2. Пользовательская переменная среды

Это переменные, которые определены для конкретного пользователя и загружаются каждый раз, когда пользователь входит в систему с использованием сеанса локального терминала или если этот пользователь регистрируется с помощью сеанса удаленного входа в систему. Эти переменные обычно устанавливаются и загружаются из следующих файлов конфигурации: .bashrc, .bash_profile, .bash_login, .profile, которые присутствуют в домашнем каталоге пользователя.

3. Системные переменные среды

Это переменные среды, доступные в масштабе всей системы, то есть для всех пользователей, присутствующих в этой системе. Эти переменные присутствуют в общесистемных файлах конфигурации, представленных в следующих каталогах и файлах: /etc/environment, /etc/profile, /etc/profile.d/, /etc/bash.bashrc. Эти переменные загружаются каждый раз, когда система включается и в ней регистрируются пользователи, локально или удаленно.

Общие сведения об общих и общесистемных файлах конфигурации

Здесь мы кратко опишем различные файлы конфигурации, перечисленные выше, которые содержат переменные среды, как системные, так и пользовательские.

.bashrc

Этот файл является пользовательским файлом, который загружается каждый раз, когда пользователь создает новый локальный сеанс, т.е. простыми словами, открывает новый терминал. Все переменные среды, созданные в этом файле, вступают в силу каждый раз, когда запускается новый локальный сеанс.

.bash_profile

Переменные среды, перечисленные в этом файле, вызывается каждый раз, когда пользователь регистрируется удаленно, то есть с помощью команды ssh. Если этого файла нет, система ищет файлы .bash_login или .profile.

/etc/environment

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

/etc/bash.bashrc

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

/etc/profile

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

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

Установка или удаление локальных или сеансовых переменных среды в Linux

Локальные переменные среды могут быть созданы с использованием следующих команд:

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

1. Использование env

По умолчанию команда «env» перечисляет все текущие переменные среды. Но, если используется с ключом «-i», то тогда он временно очищает все переменные среды и позволяет пользователю выполнять команду в текущем сеансе в отсутствие всех переменных среды.

Здесь var = value соответствует любой локальной переменной окружения, которую вы хотите использовать только с этой командой.

Запускаем оболочку bash, в которой временно будут очищены все переменные среды. Но при выходе из оболочки все переменные будут восстановлены.

2. Использование отмены

Другой способ очистки локальной переменной окружения — использование команды unset. Чтобы временно отключить любую локальную переменную среды,

Где, var-name — это имя локальной переменной, которую вы хотите удалить или очистить.

3. Задайте имя переменной с помощью пустого значения

Другой менее популярный способ — присвоить имени переменной, которую вы хотите очистить, пустое значение, т.е. VAR=(после равняется ничего нет — нажать enter). Это позволит очистить значение локальной переменной для текущего сеанса, для которого она активна.

ПРИМЕЧАНИЕ . ВЫ МОЖЕТЕ ДЕЙСТВИТЕЛЬНО ИЗМЕНЯТЬ ПЕРЕМЕННЫЕ СИСТЕМЫ, НО ИЗМЕНЕНИЯ БУДУТ ОТРАЖАТЬСЯ ТОЛЬКО В ТЕКУЩЕЙ СЕССИИ И НЕ БУДУТ ПОСТОЯННЫМИ.

Узнайте, как создавать, пользовательские и системные переменные среды в Linux

В этом разделе мы рассмотрим, как установить или отключить локальные, пользовательские и системные переменные окружения в Linux с приведенными ниже примерами:

1. Установка и удаление локальных переменных в Linux.

а) Здесь мы создаем локальную переменную VAR1 и устанавливаем ее на любое значение. Затем мы используем unset и в конце эту переменную удаляем.

б) Другой способ создания локальной переменной — использовать команду export. Созданная локальная переменная будет доступна для текущего сеанса. Чтобы отключить переменную, просто установите пустое значение переменной.

в) Здесь мы создали локальную переменную VAR2 и установили ее значение. Затем, чтобы запустить команду, временно очистив все локальные и другие переменные среды, мы выполнили команду «env -i». Эта команда здесь запустила оболочку bash, очистив все остальные переменные среды. После ввода «exit» в вызываемой оболочке bash все переменные будут восстановлены.

2. Установка и удаление пользовательских переменных окружения в Linux.

a) Измените файл .bashrc в своем домашнем каталоге, чтобы экспортировать или установить переменную среды, которую нужно добавить. После этого запустите файл, чтобы изменения вступили в силу. Тогда вы увидите переменную («CD» в моем случае), которая вступила в силу. Эта переменная будет доступна каждый раз, когда вы открываете новый терминал для этого пользователя, но не для сеансов удаленного входа.

Добавьте следующую строку в файл .bashrc.

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

Чтобы удалить эту переменную, просто удалите строку в файле .bashrc и перезайдите в оболочку.

б) Чтобы добавить переменную, которая будет доступна для сеансов удаленного входа, измените файл .bash_profile.

Добавьте следующую строку в файл .bash_profile.

Читать еще:  Установка 1с на linux mint

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

Здесь VAR2 изначально не доступен, но при выполнении удаленного входа используя ssh пользователю на localhost, переменная становится доступной.

Чтобы удалить эту переменную, просто удалите строку в файле .bash_profile, которую вы добавили, и перечитайте файл.

ПРИМЕЧАНИЕ . Эти переменные будут доступны при каждом входе в систему для текущего пользователя, но не для других пользователей.

3. Установка и удаление системных переменных окружения в Linux.

а) Чтобы добавить системную переменную без входа (то есть та, которая доступна для всех пользователей, когда какой-либо из них открывает новый терминал, но не когда существует удаленный доступ любому пользователю к машине) добавьте эту переменную в файл /etc/bash.bashrc.

После этого перечитайте файл.

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

Здесь же переменная доступна как для пользователя root, так и для обычного пользователя. Вы можете проверить это, войдя в систему под другим пользователем.

б) Если вы хотите, чтобы какая-либо переменная среды была доступна, когда какой-либо из пользователей на вашем компьютере выполнил удаленный вход, но не открывал какой-либо новый терминал на локальном компьютере, вам необходимо отредактировать файл — /etc/profile .

После добавления переменной просто перечитайте файл. Тогда переменная будет доступна.

Чтобы удалить эту переменную, удалите строку из файла /etc/profile и перечитайте ее.

в) Однако, если вы хотите добавить переменную в любую среду, в которой вы хотите быть доступны по всей системе, как для сеансов удаленного входа, так и для локальных сеансов для всех пользователей, просто экспортируйте переменную в /etc/environment.

После этого только перечитайте файл и изменения вступят в силу.

Здесь, мы видим, что переменная среды доступна для обычного пользователя, пользователя root, а также для удаленного сеанса входа.

Чтобы очистить эту переменную, просто удалите запись в файле /etc/environment и перечитайте файл.

ПРИМЕЧАНИЕ . Изменения вступают в силу при перечитывании файла /etc/environment. Но, если нет, вам может понадобиться выйти из системы и снова войти в систему.

Вопросы по статье задавайте в комментариях ниже.

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University.

Обзор Линукс (Linux) — просто о сложном

Это вступительная статья про операционную систему Линукс (Linux). В ней мы пробежимся по основным моментам и особенностям ОС Линукс. Весь материал ориентирован на новичков и написан доступным языком.

1. Что такое Линукс простыми словами

Главная «фишка» операционной системы Линукс в том, что она бесплатна в соответствии с GNU (свободного и открытого программного обеспечения. Например, за привычный всем Windows придется заплатить где-то $100-$200.

Помимо самой ОС Линукс, все пакеты (программы) бесплатны. Это крайне ценится на западе, поскольку у них слабо развито пиратство. Большинство из них платят за программные продукты, которыми они пользуются. В России ситуация не такая. Практически каждый считает, что софт является бесплатным, хотя практически все популярные программы являются платными.

Существует несколько графических интерфейсов или GUI (мы рассмотрим их далее). В большинстве случаев он очень напоминает X Window System, поэтому, кто умеет пользоваться Windows легко освоит и Linux.

Кто является владельцем

ОС Линукс никому не принадлежит. Точнее можно сказать, что она принадлежит сообществу программистов. На бесплатной основе каждый желающий может вносить свои изменения, которые в дальнейшем принимаются сообществом.

Собственно говоря усилиями десятков тысяч программистов и был создан Линукс. Изначально первыми пользователями были опытные пользователи ПК. Сейчас все больше становится и обычных пользователей Линукса.

Отличительно и то, что Линукс работает на всех архитектурах: DEC Alpha, x86, x86-64, ARM и PowerPC.

Линукс является ядром операционной системой, поэтому на профессиональном уровне можно сказать, что Линукс это не ОС, а лишь ядро, но для обычного обывателя для начала работы это мало имеет значение. Ядро Линукс похоже на движок.

Зачастую в различных источниках можно увидеть название «GNU/Linux» (по сути это то же самое, что и Linux). Однако в среде профессионалов даже разгораются жаркие дискуссии по этому поводу.

Тех, кто пользуюется ОС Линукс зачастую называют «линуксойдам».

Говоря про Linux нельзя не упомянуть про проект GNU — это концепция свободного бесплатного программного обеспечения. Основатель Ричард Столлман.

2. История появления Linux

Первым разработчиком и создателем Linux считается «Линус Торвальдс». Собственно в честь его имени и была названа ОС. Торговая марка «Linux» принадлежит его создателю.

В далеком 1981 году он стал работать над собственной операционной системой семейства Unix. В 1984 году на свет появилась первая ее версия доступная для скачивания. В то время ей пользовались буквально пару человек.

Однако широкое распространение система получила лишь 10 лет спустя. После этого сообщество программистов подхватили основную идею GNU и стали вкладывать свои усилия в развитие проекта.

Логотипом и талисманом Linux является пингвин «Tux». От «обычных» пингвинов отличается жёлтым цветом клюва и лап. Придуман и запатентован в 1996 году Ларри Юингом.

В 20 веке Linux стал еще более популярным. Это уже давно не любительский проект, а полноценная операционная система, которая насчитывает миллионы строк кода.

3. Особенности Linux

Перечислим основные особенности ОС Linux.

1 Большинство пользователей среду Линукса являются программисты и администраторы. Это довольно опытные и «прошаренные» пользователи. Поэтому их не пугает то, что очень много действий приходится делать через терминал (консольная строка). Для любителей Windows это покажется настоящим «маразмом», но со временем к терминалу быстро привыкаешь:

Для более быстрого «общения» с командной строкой можно использовать кнопку «Tab», которая сразу подскажет все команды начинающиеся на введённый набор символ или же сразу применит автозаполнение, если возможен лишь один доступный набор.

2 Большинство серверов (хостинги, хранилища и прочее) используют в качестве основной ОС Линукс. Это связано с тем, что она бесплатна, проще настраивается и более стабильна. Однако среди обычных пользователей бесспорное лидерство занимает Windows. Лишь 5% населения пользуются Линуксом в качестве домашней операционной системы.

3 Linux является многозадачной и многопользовательской операционной системой. Windows в этом плане также сильно преуспел, но все же его возможности не очень удобные для работы нескольких пользователей

4 В Linux нету жестких дисков, как на Windows. Здесь все хранится в едином каталоге, который начинается с «/» (корневой каталог, root directory). Файлы пользователей лежат в каталогах «/home/name_users/».

5 Программные оболочки bash или tcsh. С помощью них Linux выполняет команды пользователей. Отдаваемая команда относится к текущему каталогу (current directory). Домашний каталог можно обозначать символом «

» (тильда). Это аналог «/home/name_users/»

6 Файловые системы в Linux отличны от Windows:

  • ext4 — журналируемая файловая система (стандарт для Linux)
  • btrfs — новая файловая система, основанная на структурах B-деревьев
  • xfs — данную файловую систему отличает достаточно высокая производительность в части записи и чтения данных.

Стоит отметить, что Линукс поддерживает очень много файловых систем (в том числе Windows-ие NTFS, FAT32). Напомню, что Windows не поддерживает ext4. Про файловые системы Linux будет рассказано более подробно в отдельной статье.

7 Существует два вида дистрибутивов Linux, которые делятся по способу организации и управления программным обеспечением (пакетами)

  1. DEB — используются в дистрибутиве Debian и во всех основанных на нем дистрибутивах
  2. RPM — менеджер пакетов, использующийся в дистрибутиве Red Hat, а также во многих других популярных дистрибутивах (Fedora)

8 Процессы разделены по ресурсам. Чтобы добавить новое устройств нужен драйвер. Его можно написать самостоятельно и запустить в ядре. Драйверы устройств либо интегрируются непосредственно в ядро, либо добавляются в виде модулей, загружаемых во время работы системы.

9 В Linux все считается файлами: жесткие диски, разделы, папки, приводы оптических дисков, съемные носители информации.

4. Дистрибутивы Linux — что это и какие они бывают

Говоря простыми словами:

Существуют множество видов дистрибутивов Linux. Самые распространённые в мире дистрибутивами являются:

  • Linux Mint . Самый простой для пользователя дистрибутив. Очень напоминает Windwos 7. Основан на Ubuntu и Debian
  • Ubuntu . Долгое время считался самым популярным дистрибутивом. Стабильная и интуитивно понятная версия для ежедневного использования Основан на Debian
  • Debian . Лег в основу множества других популярных Линуксов.
  • Mageia . Предок бывшей и популярной ОС Mandriva.
  • Fedora . Универсальный, быстро развивающейся и современный Linux. Каждый год появляются новые версии.
  • OpenSUSE . стабильный и мощный дистрибутив
  • ArchLinux . Современный и быстро обновляющейся дистрибутив.
  • CentOS
  • PCLinuxOS
  • Slackware . Консервативный подход разработки и использования

Интересными дистрибутивами также являются и те, которые можно самостоятельно собрать. К таким относятся LFS, Gentoo, CRUX.

Линукс также практикует такой вид дистрибутивов, которые не требуют установки на жесткий диск. Они работают в режиме «LiveCD». Информация загружается в оперативную память и уже работает с нее. Примеры таких систем: Knoppix, Fedora.

Существуют и чисто российские версии:

  • Rosa
  • ALT Linux
  • ASPLinux
  • НауЛинукс
  • Calculate Linux
  • Runtu
  • Rosinka
  • Astra Linux

5. Интерфейсы Linux

Поскольку дистрибутивов много, то и различных версий оформления рабочего стола/панели инструментов также много. Однако в Линуксе придумано несколько стандартов, которые поддерживаются популярными версиями ОС.

  • GNOME (GNU Network Object Model Environment) и Unity . Концепцию значков лаунчеров и отображения в стиле панели мониторинга для выбора
  • KDE (K Desktop Environment). Традиционная среда рабочего стола, но она имеет огромное количество функций и основной набор приложений
  • Cinnamon . Основан на GNOME. Традиционная среда рабочего стола, которая похожа на Windows 7.
  • LXDE (Lightweight X11 Desktop Environment). Легкая и приятная среда.
  • MATE является продолжением классического интерфейса GNOME
  • XFCE быстрая и легкая
Читать еще:  Удаление файлов в linux через терминал

6. Репозиторий Linux

В Linux все программы (пакеты) хранятся в репозиториях, который представляет из себя сервер, где программисты выкладывают софт. Здесь можно скачать самые последние и актуальные версии программ.

Для Линукса репозиторий это аналог Play Market для Android.

Чтобы скачать пакет необходимо в терминале написать:

Моя среда разработки в Linux 2018

В этой статье я немного пройдусь по установке и приложениям моего ноутбука на базе Linux. На написание материала меня вдохновил этот пост, но только для Linux.

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

Базовая комплектация

В данный момент компьютер работает на базе LinuxMint 18.3, однако я всерьез подумываю перейти на Ubuntu 18.04 сразу после их релиза. Никаких особых нареканий по части Mint у меня нет, но хотелось бы попробовать заменить Unity на Gnome 3 I и посмотреть, что это за штука.

Инструментарий

  • Boostnote — основное средство создания заметок. Использую его по большей части для хранения сниппетов кода и тематического материала по разработке. Распространяется свободно, кроссплатформенность присутствует, отлично работает в оффлайне. Мне хотелось упростить синхронизацию между несколькими устройствами — раз заметки хранятся в формате CSON, то синхронизацию я делаю через приватный Git- репозиторий.
  • Simplenote — это мой «черновой блокнот» для коротких записей и мыслей. В основном, пользуюсь им с мобильного.
  • Cerebro — кроссплатформенный установщик с открытым кодом, похож на Spotlight и Alfred для Mac. Поддержка так себе, многое еще нужно поработать, но работает на удивление хорошо. Плагинов меньше, чем в Alfred, но нужные мне опции я могу написать сам.

Интернет

  • Google Chrome — Браузер по умолчанию.
  • Firefox — Второй по значимости браузер.
  • Min — Это минималистический браузер. В Linux отсутствуют аналоги Fenetre для Mac. Пользуюсь им, когда нужно почитать документацию, посмотреть какой-то урок или видео в параллельном режиме или Картинка-в-картинке.
  • Dropbox — для обмена файлами.
  • Mailspring — мой почтовый клиент.
  • Corebird — десктопный Twitter клиент.
  • Ramme — десктопный Instagram клиент.
  • Caprine — десктопный клиент мессенджера Facebook.
  • WhatsappDesktop — десктопный WhatsApp клиент, есть встроенные уведомления и интеграция в системный трей.
  • Slack — для чата и общения в сообществах.
  • Wireshark — для анализа сети. Удобно при разработке — видно все взаимодействия между разными приложениями.

Графика и мультимедиа

  • Pinta — еще одна бесплатная программа с открытым кодом, подходит для рисования и редактирования изображений. Мне нравится именно этот графический редактор. Несмотря на то, что самым популярным редактором изображений на Linux считается Gimp, мне кажется, что Pinta намного проще и в чем-то даже похож на Photoshop.
  • XnConvert — мощная и бесплатная кроссплатформенная пакетная обработка изображений. Сочетает в себе порядка 80 действий.
  • Draw.io — мое самое любимое приложение для создания всевозможных диаграмм — от блок-схем до циклограмм и даже каркасных представлений. 100%бесплатно, можно интегрировать с Google Drive.
  • Shutter — для создания скриншотов с добавлением комментариев, стрелок, боксов и т.д. Из полезного — эффект размытия в частях изображения.
  • ffmulticonverter — конвертирует изображения и видео в различные форматы.
  • Peek — позволяет записывать видео с экрана и сохранять в GIFформате. Крайне полезно для создания демо-гифок, например, для добавления их в readme файлы проекта.
  • pick — селектор цвета
  • Trimage — инструмент для сжатия изображения.

Видео и звук

  • VLC — мой любимый медиаплеер. В версии 3 добавлена поддержка Chromecast, что делает приложение еще полезней.
  • Kdenlive — редактирование видео.
  • Kazam — запись скринкастов
  • Spotify — для прослушивания любимой музыки.

Системные утилиты

  • Bleachbit — утилита для очистки системы.
  • Stacer — оптимизатор системы и мониторинг для Linux.
  • Caffeine — чтобы компьютер не засыпал.
  • Pullover — показывает Pushover-уведомления на рабочем столе
  • CopyQ — для управления буфером обмена.

Редакторы

  • Jetbrains (PHPstorm, WebStorm) — мой выбор для IDE.
  • Visualstudiocode — Все в одном текстовом редакторе
  • vim (редактирование файлов в режиме командной строки).

Настройка терминала

  • Tilix — мой любимый эмулятор терминала.
  • Zshshell — отличная альтернатива Bash
  • zplug — для управления zsh плагинами.
  • zsh-completions — дополнительные определения для завершения Zsh.

Утилиты командной строки

  • tldr — это альтернатива man, но только с самым необходимым. Отличный способ быстро найти любой синтаксис команд. yadm — менеджер Dotfiles.
  • fasd — повышает быстродействие командной строки. В нем реализован быстрый доступ к файлам и директориям командной оболочки POSIX. Создатели приложения явно вдохновлялись autojump, z и v. Fasd ведет журнал просмотра файлов и открытых директорий, так что их можно быстро найти в командной строке.
  • fzf — FuzzyFinder для командной строки
  • thesilversearcher — поисковик кода. Похож на ack, только быстрее.
  • lf — диспетчер файлов командной строки.
  • pandoc — конвертирует разные типы файлов из командной строки.
  • pwgen — генератор пароля
  • lnav — расширенное средство просмотра лог-файлов для малых ИС.
  • trash-cli — удаляет файлы, записывая исходный путь, дату удаления и разрешения.
  • opn-cli — открывает всякое разное: сайты, файлы, исполняемые модули. Кроссплатформенность присутствует.
  • ascicinema — записывает и расшаривает терминальные сеансы.
  • hostess — идемпотентная утилита для управления /etc/hostsфайлами.
  • get-port-cli — показывает доступный порт.
  • public-ip-cli — выделяет внешний IP-адрес.
  • internal-ip-cli — выделяет внутренний IP-адрес
  • speedtest-cli — интерфейс командной строки для тестирования скорости интернет-соединения на speedtest.net
  • fkill-cli — нереально круто убивает лишние процессы. Кроссплатформенная.
  • doctoc — генерирует содержание для файлов разметки внутри локального Git-репозитория. Ссылки совместимы с анкорами github и других сайтов.

Среда разработки

В разработке я активно пользуюсь Docker, хотя на хосте и установлены другие популярные среды выполнения кода: go, php, node (с nvm) иruby (с rvm).

  • Docker
  • Docker-compose — определяет и запускает многоконтейнерные приложения сDocker.
  • Minikube — локально запускает Kubernetes.
  • Telepresence — локальная разработка на фоне удаленного кластера Kubernetes или OpenShift.
  • ctop — top-интерфейс для метрик контейнеров.
  • Vagrant — упрощение процесса разработки. Сейчас я не особо пользуюсь Vagrant, только для работы над инфраструктурой проектов (например, проверка вращения нового кластера или тестирование плейбука на Ansible).
  • Dnsdock — управление dns в Docker-контейнерах.

Инструменты разработки

  • how2 — переполнение стека из терминала
  • Pet — простой сниппет командной строки. Там я храню часто используемые команды.
  • caniuse-cmd — инструмент командной строки Caniuse
  • hub — это инструмент командной строки, который разворачивает git с большим количеством опций и команд, что сильно упрощает работу с GitHub.
  • conventional-changelog — генерирует changelog из метаданных git.
  • release-it — запуск git-репозиториев и npm пакетов из командной строки.
  • git-open — печатайте git open для открытия страницы GitHub или другого сайта с репозиториями.
  • git-semver — git-плагин для Semantic Versioning.
  • tig — текстовый git-интерфейс.
  • jq — облегченная и удобная командная строка для JSON-процессора.
  • python-gitlab — GitLab клиент/
  • overcommit — инструмент для управления и конфигурирования хуков в Git.
  • tmux и tmuxp — терминальные мультиплексоры.
  • gitbook-cli — интерфейс командной строки GitBook.
  • pageres-cli — делает скриншоты веб-страниц.
  • httpie — современный http клиент командной строки; отличная альтернатива curl с интуитивным интерфейсом, поддержкой JSON, выделением синтаксиса, wget-подобным скачиванием, расширениями и т.д.
  • yeoman — кодогенерация проектов из набора шаблонов.
  • generator-editorconfig — генерирует .editorconfig файлы.
  • license — создает лицензии из командной строки.
  • gi — создает полезные .gitignore файлы для вашего проекта
  • travis.rb — Travis CI клиент (библиотека Ruby и CLI)
  • http-server — простой http-сервер командной строки с нулевой конфигурацией. Очень мощный инструмент для работы, а еще его легко можно взломать и использовать для тестирования, локальных разработок и обучения.
  • codeclimate-cli — интерфейс командной строки для аналитической платформы Code Climate. Позволяет запускать компоненты Code Climate на локальном компьютере внутри docker-контейнеров.
  • mycli — терминал-клиент для MySQL с автодополнением и подсветкой синтаксиса.
  • json-server — поддельная копия REST API с нулевым кодированием за 30 секунд.
  • localtunnel — открывает публичный доступ к вашим localhost — для легкого тестирования и обмена файлами! Больше не нужно связываться с DNS или развертыванием — ваши изменения смогут протестировать и без них!
  • mailhog — SMTP-тестирование на основе Web и API.
  • artilery — мощный, современный и простой в использовании набор инструментов для тестирования нагрузки. Используйте для передачи масштабируемых приложений, которые остаются работоспособными и отказоустойчивыми при высоких нагрузках.
  • Postman — упрощает API-разработку.
  • Devdocs-Desktop — объединяет документацию по API в быстром, структурированном и адаптированном к поиску интерфейсе. DevDocs.io — это неофициальное десктопное приложение.

Оптимизация разработки

  • doctl — инструмент командной строки для сервисов Digital Ocean.
  • gcloud-sdk — официальный sdk для взаимодействия с инфраструктурой Google Cloud.
  • aws-cli — с этим пакетом вы получите унифицированный интерфейс командной строки для Amazon Web Services.
  • ansible — автоматизирует инфраструктуру.
  • terraform — пишите, планируйте и создавайте инфраструктуру в виде кода.
  • kubectl — интерфейс командной строки для запуска команд в отношении кластеров Kubernetes.
  • kubectx — быстрое переключение между кластерами и пространствами имен в kubectl.
  • kubeval — проверяет конфиг-файлы Kubernetes , поддерживает многие версии Kubernetes.
  • helm — диспетчер пакетов Kubernetes.
  • heroku-cli — интерфейс командной строки Heroku для легкого создания и управления приложениями Heroku напрямую с терминала. Важная составляющая для размещения на Heroku.
  • forge.sh — определяет и развертывает многоконтейнерные приложения на Kubernetes из источника.
  • Firebase tools — инструменты для командной строки Firebase.
  • dpl — читается как ди-пи-эль. Это инструмент для непрерывного развертывания.

Заключение

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

Linux может стать крайне мощной средой для разработки. Поэтому очень жаль, что многие Mac-приложения (тот же Alfred или Fenetre) не имеют полноценных Linux-альтернатив. Их мне действительно не хватает! Не могу похвастаться опытом работы на Mac, но я прямо-таки чувствую функциональную мощь данных приложений!

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector