Как добавить в файл строку содержащую информацию о пути к вашей текущей директории linux

Обновлено: 05.07.2024

Мне интересно, где новый путь должен быть добавлен к PATH переменной среды. Я знаю, что это может быть достигнуто путем редактирования .bashrc (например), но не ясно, как это сделать.

printf '\ nPATH = $ PATH: "путь для добавления" \ nexport PATH \ n' >> Если некоторые пути уже добавлены, например PATH=$PATH:$HOME/.local/bin:$HOME/bin , можно добавить другой путь, разделив его: например PATH=$PATH:$HOME/.local/bin:$HOME/bin:/home/ec2-user/pear/bin .

Простые вещи

в зависимости от того, хотите ли вы добавить

/opt/bin в конце (для поиска после всех других каталогов, если есть программа с одинаковым именем в нескольких каталогах) или в начале (для поиска перед всеми другими каталогами).

Вы можете добавить несколько записей одновременно. PATH=$PATH:

/opt/node/bin или вариации на заказ работают просто отлично. Не ставьте export в начале строки, так как это связано с дополнительными сложностями (см. Ниже «Примечания к оболочкам, кроме bash»).

Если ваша система PATH создается из множества различных компонентов, вы можете получить дублирующиеся записи. См. Как добавить путь к домашней директории, который будет обнаружен Unix, какой командой? и удалите дубликаты записей $ PATH с помощью команды awk, чтобы избежать добавления дубликатов или их удаления.

/bin Кстати, некоторые дистрибутивы автоматически помещают в ваш PATH, если он существует.

Где его поставить

Поместите линию , чтобы изменить PATH в

/.bash_profile если это то, что у вас есть.

Обратите внимание, что

/.bash_rc не читается ни одной программой, и

/.bashrc является файлом конфигурации интерактивных экземпляров bash. Вы не должны определять переменные среды в

/.bashrc . Правильное место для определения переменных среды, таких как PATH is

/.bash_profile если вас не волнуют другие оболочки, кроме bash). Посмотрите, в чем разница между ними и какой я должен использовать?

Не помещайте это в /etc/environment или

/.pam_environment : это не файлы оболочки, вы не можете использовать подстановки, как $PATH там. В этих файлах вы можете только переопределить переменную, но не добавлять к ней.

Потенциальные осложнения в некоторых системных скриптах

Вам не нужно, export если переменная уже находится в среде: любое изменение значения переменной отражается в среде. PATH ¹ в значительной степени всегда в среде; все системы Unix устанавливают его очень рано (обычно в самом первом процессе).

Во время входа в систему вы можете полагаться на то, PATH что уже находитесь в среде и уже содержат некоторые системные каталоги. Если вы пишете сценарий , который может быть выполнен в начале при установке какой - то виртуальной среде, необходимо убедиться , что PATH не является пустым и экспортируется: если PATH до сих пор не установлено, то что - то вроде PATH=$PATH:/some/directory бы установлен PATH на :/some/directory , а пустой компонент в начале означает текущий каталог (как .:/some/directory ).

Примечания о снарядах, кроме Баш

В bash, ksh и zsh, export есть специальный синтаксис, и то и другое PATH=

/opt/bin:$PATH и export PATH=

/opt/bin:$PATH делают правильные вещи даже. В других оболочках в стиле Bourne / POSIX, таких как dash (который есть /bin/sh во многих системах), export анализируется как обычная команда, что подразумевает два различия:

Таким образом, в таких оболочках, как dash, export PATH=

/opt/bin:$PATH устанавливается PATH литеральная строка,

/opt/bin/: за которой следует значение PATH до первого пробела. PATH=

/opt/bin:$PATH (голое задание) не требует кавычек и делает правильные вещи. Если вы хотите использовать export в переносимом скрипте, вам нужно написать export PATH="$HOME/opt/bin:$PATH" или PATH=

/opt/bin:$PATH; export PATH (или PATH=$HOME/opt/bin:$PATH; export PATH для переносимости даже в оболочку Bourne, которая не принимала export var=value и не выполняла расширение тильды).

¹ Это было не так в оболочках Bourne (как в реальной оболочке Bourne, а не в современных оболочках в стиле POSIX), но в наши дни вы вряд ли встретите такие старые оболочки.

До сих пор не в состоянии понять сложности с экспортом. не могли бы вы упростить это? @priojeetpriyom Простое объяснение: вам не нужно export . Спасибо за этот ответ, очень подробно. Вы говорите: « Вы не должны определять переменные среды в

/ .bashrc », но, к сожалению, 100% программ, которые я установил в моей системе и которые изменяют путь (FZF и Rust's Cargo), изменяют путь в нем .bashrc . Я предполагаю, что, поскольку FZF написан на Rust, он также следует шаблону Rust.

В любом случае работает, но они не делают то же самое: элементы PATH проверяются слева направо. В вашем первом примере исполняемые файлы in

/opt/bin будут иметь приоритет над установленными, например in /usr/bin , которые могут быть, а могут и не быть теми , которые вы хотите.

В частности, с точки зрения безопасности, опасно добавлять пути вперед, потому что, если кто-то может получить доступ для записи к вашему

/opt/bin , он может добавить, например, другое ls , которое вы, вероятно, вместо этого могли бы использовать вместо этого. из того /bin/ls не замечая. Теперь представьте то же самое для ssh или вашего браузера или выбора . (То же самое происходит трижды для вставки на вашем пути.)

Но если вы хотите иметь свою собственную, настроенную версию ls , вы должны поместить ее в каталог заранее /bin .

Я смущен вопросом 2 (так как удален из вопроса, так как это было связано с не связанной проблемой):

Как можно добавить больше путей в разные строки? Первоначально я думал, что это может сделать свое дело:

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

/opt/node/bin , но и все PATH ранее назначенное.

Это возможный обходной путь:

но для удобства чтения я предпочел бы иметь одно назначение для одного пути.

Если вы говорите

это все, что будет в вашем ПУТИ. PATH - это просто переменная окружения, и если вы хотите добавить ее в PATH, вам нужно перестроить переменную с тем содержимым, которое вы хотите. То есть то, что вы приводите в качестве примера к вопросу 2, это именно то, что вы хотите сделать, если только я полностью не упускаю суть вопроса.

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

Вы правы насчет примера вопроса 2, он работает. Другая проблема, связанная с PATH в моей системе, смутила меня. Простите за это.

Пуленепробиваемый способ добавления / предоплаты

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

Важным моментом является то, что, даже если системные скрипты не используют это (интересно, почему) * 1 , пуленепробиваемый способ добавить путь (например, $HOME/bin ) в переменную среды PATH - это

для добавления (вместо PATH="$PATH:$HOME/bin" ) и

за предлог (вместо PATH="$HOME/bin:$PATH" )

Это позволяет избежать ложного $PATH начального / конечного двоеточия, когда оно изначально пустое, что может иметь нежелательные побочные эффекты и может стать кошмаром , который трудно найти ( этот ответ кратко касается случая «в пути» awk ).

Если parameter равно null или не установлено, ничто не подставляется, в противном случае подставляется расширение word .

Таким образом, $:> расширяется до: 1) ничего, если PATH ноль или не установлен, 2) $: , если PATH установлено.

Примечание : это для bash.

* 1 Я только что обнаружил, что подобные сценарии devtoolset-6/enable действительно используют это,

Linux определяет путь поиска исполняемого файла с помощью $PATH переменной среды. Чтобы добавить каталог / data / myscripts в начало $PATH переменной среды, используйте следующее:

Чтобы добавить этот каталог в конец пути, используйте следующую команду:

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

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

Например, программа оболочки bash включает содержимое файла .bash_profile путем включения. Поместите следующие 2 строки в .bash_profile:

эффективно помещает эти 2 строки кода в программу bash. Таким образом, в bash переменная $ PATH включает $HOME/myscript.sh и из-за оператора экспорта все программы, вызываемые bash, имеют измененную $PATH переменную. И поскольку любые программы, которые вы запускаете из приглашения bash, вызываются bash, новый путь действует для всего, что вы запускаете из приглашения bash.

Суть в том, что для добавления нового каталога к пути вы должны добавить или добавить каталог к ​​переменной среды $ PATH в сценарии, включенном в оболочку, и вы должны экспортировать $PATH переменную среды.

Когда вы запускаете программу из терминала или скрипта, то обычно пишете только имя файла программы. Однако, ОС Linux спроектирована так, что исполняемые и связанные с ними файлы программ распределяются по различным специализированным каталогам. Например, библиотеки устанавливаются в /lib или /usr/lib, конфигурационные файлы в /etc, а исполняемые файлы в /sbin/, /usr/bin или /bin.

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

Переменная PATH в Linux

Для того, чтобы посмотреть содержимое переменной PATH в Linux, выполните в терминале команду:


На экране появится перечень папок, разделённых двоеточием. Алгоритм поиска пути к требуемой программе при её запуске довольно прост. Сначала ОС ищет исполняемый файл с заданным именем в текущей папке. Если находит, запускает на выполнение, если нет, проверяет каталоги, перечисленные в переменной PATH, в установленном там порядке. Таким образом, добавив свои папки к содержимому этой переменной, вы добавляете новые места размещения исполняемых и связанных с ними файлов.

Для того, чтобы добавить новый путь к переменной PATH, можно воспользоваться командой export. Например, давайте добавим к значению переменной PATH папку/opt/local/bin. Для того, чтобы не перезаписать имеющееся значение переменной PATH новым, нужно именно добавить (дописать) это новое значение к уже имеющемуся, не забыв о разделителе-двоеточии:

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

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

В ОС Ubuntu значение переменной PATH содержится в файле /etc/environment, в некоторых других дистрибутивах её также можно найти и в файле /etc/profile. Вы можете открыть файл /etc/environment и вручную дописать туда нужное значение:

sudo vi /etc/environment


Можно поступить и иначе. Содержимое файла .bashrc выполняется при каждом запуске оболочки Bash. Если добавить в конец файла команду export, то для каждой загружаемой оболочки будет автоматически выполняться добавление имени требуемой папки в переменную PATH, но только для текущего пользователя:


Выводы

В этой статье мы рассмотрели вопрос о том, зачем нужна переменная окружения PATH в Linux и как добавлять к её значению новые пути поиска исполняемых и связанных с ними файлов. Как видите, всё делается достаточно просто. Таким образом вы можете добавить столько папок для поиска и хранения исполняемых файлов, сколько вам требуется.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Для пользователей из мира Windows взаимодействие с командной строкой в Linux поначалу может показаться несколько пугающей и запутанной затеей. Однако использовать её не так уж и сложно. В этой статье мы рассмотрим наиболее распространенные команды в Linux.

Навигация по файловой системе

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

Абсолютный (или полный) путь начинается с корневого каталога, обозначаемого символом / , а относительный путь начинается с текущего каталога (в котором в данный момент работает пользователь).

Команда pwd

Результатом будет путь к текущему рабочему каталогу:

Команда cd

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

Так и через абсолютный путь:

Две точки .. обозначают родительский каталог или каталог уровнем выше текущего. Предположим, что в данный момент вы находитесь в каталоге /usr/local/bin. Чтобы перейти в каталог /usr/local (на один уровень выше текущего каталога), необходимо ввести:

Чтобы подняться на два уровня вверх:

Чтобы вернуться к предыдущему рабочему каталогу, используйте символ тире – в качестве опции:

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

$ cd имя\ каталога\ с\ пробелами

Работа с файлами и каталогами

Команда ls

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

По умолчанию, команда ls отображает только имена файлов и каталогов. Для более подробного вывода применяется опция -l :

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

-rw-r--r-- 1 root root 337 Oct 4 11:31 /etc/hosts

По умолчанию, команда ls не показывает скрытые файлы (файлы, имена которых начинаются с точки . ). Чтобы отобразить все файлы, включая скрытые, используйте опцию -a :

Для вывода списка всех файлов в подкаталогах используйте опцию -R :

Команда file

Файлы в Linux не обязаны всегда иметь расширения для того, чтобы с ними можно было работать. Поэтому пользователю иногда трудно определить, что за файл перед ним. Команда file помогает решить данную проблему, отображая информацию о типе файла на основе его содержания:

/etc/fstab: ASCII text

Команда file может работать и с директориями, например:

/tmp/: sticky, directory

Команда touch

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

Чтобы создать новый файл, используйте команду touch с именем (создаваемого) файла в качестве параметра:

Если файл уже существует, команда touch изменит отметку о времени последнего доступа (или изменения) к нему.

Команда mkdir

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

Для создания родительских каталогов используется опция -p :

Вышеприведенная команда создаст полную структуру каталогов.

При использовании команды mkdir с опцией -p , она создает каталог только в том случае, если он изначально отсутствует.

Команда rmdir

Команда ln

$ ln -s имя_файла имя_ссылки

Если в качестве параметра указан только файл, команда ln создаст в текущем рабочем каталоге ссылку на этот файл с тем же именем, что у файла.

Команда rm

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

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

Опция -i указывает команде rm запрашивать у пользователя подтверждение перед удалением файла:

rm: удалить пустой обычный файл 'file.txt'?

Опция -d используется для удаления одного или нескольких пустых каталогов:

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

Примечание: Будьте очень осторожны с командой rm -rf и дважды проверьте, в каком каталоге вы находитесь, т.к. вызов rm -rf безвозвратно (и без дополнительного подтверждения) удалит все файлы и папки из него.

Команда cp

$ cp file file_backup

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

$ cp file.txt /backup

По умолчанию, если файл назначения существует, он будет перезаписан.

Чтобы скопировать каталог, вместе с его файлами и подкаталогами, используйте опцию -R или -r :

$ cp -R Pictures /opt/backup

Команда mv

Чтобы переименовать файл, необходимо указать имя целевого файла, а затем его новое имя:

$ mv file.txt file1.txt

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

$ mv file.tx1 file1.txt /tmp

Команда tar

Команда tar является наиболее часто используемой командой для объединения нескольких файлов в один *.tar-архив — распространенный формат файлов Linux (похожий на формат .zip), причем процедура сжатия для него не является обязательной.

Предположим, что нам нужно создать .tar-архив каталога /etc, для этого необходимо использовать следующую команду:

$ tar -cvf myarchive.tar /etc

Опция -c указывает команде tar на то, что мы создаем .tar-файл, опция -v отображает список обрабатываемых файлов, а опция -f применяется для указания имени архивного файла.

Если вы хотите добавить файл к уже существующему .tar-архиву, то вместо опции -c используется опция -r . Например, давайте добавим к нашему архиву myarchive.tar файл /etc/fstab:

$ tar -rvf myarchive.tar /etc/fstab

Примечание: К уже сжатому .tar-файлу добавить новый файл или каталог не получится.

Извлечение в текущую папку файлов и каталогов из архивного файла выполняется с помощью опции -x :

$ tar -xvf myarchive.tar

Опция -C дает пользователю возможность самостоятельно указывать путь для извлекаемых файлов:

$ tar -xvf myarchive.tar -C /tmp/

Команды zip и unzip

Команда zip применяется для сжатия файлов в .zip-архив, а команда unzip — для извлечения заархивированных файлов из .zip-архива.

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

$ zip newarchive.zip file1 file2 file3

Если вы хотите сжать каталог вместе с вложенными в него файлами, то необходимо использовать опцию -r :

$ zip –r newarchive.zip /home/diego/mydocs/

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

$ zip -9 –r newarchive.zip /home/diego/mytxtfiles/

Для извлечения содержимого архива в текущий каталог используется команда unzip :

Опция -d позволяет распаковать содержимое архива в указанную папку, например:

$ unzip myarchive.zip –d /tmp/

Команда find

Команда find выполняет поиск файлов и каталогов в заданном каталоге. Например, следующая команда будет искать файл с именем notes.txt в каталоге /home и его подкаталогах:

$ find /home/ -name notes.txt

Команда df

Команда du

Владение файлами и права доступа

Команда chmod

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

x (выполнение) = 1

нет разрешений = 0

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

$ chmod 644 имя_файла

Только пользователь root, владелец файла или пользователь с правами sudo могут изменять права доступа к файлу.

Для рекурсивного изменения прав всех файлов и папок в заданном каталоге, используйте команду chmod с опцией -R :

$ chmod -R 755 имя_каталога

Команда chown

Чтобы изменить владельца файла, достаточно выполнить:

$ chown имя_пользователя имя_файла

Чтобы изменить как владельца, так и группу файла, вызовите:

$ chown имя_пользователя:имя_группы имя_файла

Используйте опцию -R , чтобы рекурсивно обработать все файлы и каталоги в заданном каталоге:

$ chown -R имя_пользователя:имя_группы имя_каталога

Команда sudo

Чтобы использовать sudo , просто добавьте префикс sudo перед именем команды:

Управление пользователями и группами

Команда uname

Команда uname с опцией -a выведет подробную информацию о вашей системе: имя машины, версия операционной системы, ядра и т.д.

Команды useradd и passwd

Команда useradd позволяет создавать новых пользователей. Чтобы создать новую учетную запись пользователя, вызовите команду useradd вместе с именем нового пользователя:

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

Команда userdel

Команда userdel используется для удаления учетной записи пользователя:

Опция -r удаляет домашний каталог пользователя и связанные с ним данные:

$ userdel -r имя_пользователя

Команды groupadd и groupdel

Команда groupadd используется для создания новой группы. Просто укажите название группы в качестве параметра:

Чтобы удалить группу, используйте команду groupdel с именем группы в качестве параметра:

Команда usermod

Чтобы добавить существующего пользователя в группу, используйте команду usermod с опцией -G и именем группы:

$ usermod -a -G sudo ravesligroup

Управление процессами

Команда top

Команда kill

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

Всего существует 64 различных сигнала, но самыми популярными являются два:

SIGTERM (15) — сигнал завершения работы программы, при котором ей дается некоторое время, чтобы сохранить свой прогресс и данные.

SIGKILL (9) — сигнал, требующий от программы немедленного завершения. Все несохраненные данные при этом будут потеряны.

Например, зная PID нужного вам процесса, послать ему сигнал можно следующим образом:

В этом примере параметр -9 отвечает за сигнал SIGKILL (9), а 3501 — это идентификатор (PID) нужного вам процесса.

Работа с сетью

Команда ping

Команда ping применяется в тех случаях, когда необходимо проверить состояние подключения к серверу. Например:

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

Команда wget

Команда hostname

Команда hostname используется для проверки имени вашего хоста. Добавление опции -I в её конец покажет его IP-адрес.

Работа с текстом

Команда head

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

$ head -n 5 filename.txt

Команда tail

Команда tail отображает последние десять строк текстового файла:

$ tail -n filename.txt

Команда diff

$ diff file1.txt file2.txt

Команда grep

$ grep blue notepad.txt

Вышеприведенная команда будет искать слово blue в файле notepad.txt и выведет все строки, в которых содержится искомое слово.

Команда echo

$ echo "Hello, world!" >> name.txt

Команда cat

Установка и удаление пакетов

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

Только root или пользователь с привилегиями sudo может устанавливать и удалять пакеты.

apt (Ubuntu и Debian)

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

Индекс apt — это база данных, содержащая записи доступных в репозиториях пакетов, подключенных в вашей системе.

Чтобы обновить установленные пакеты до последних версий, выполните:

Установка пакетов так же проста:

$ apt install имя_пакета

Чтобы удалить установленный пакет, введите:

$ apt remove имя_пакета

dnf (CentOS и Fedora)

Чтобы установить новый пакет в дистрибутивах от Red Hat, вы можете использовать команду yum или dnf:

$ dnf install имя_пакета

Начиная с CentOS 8, dnf заменил yum в качестве менеджера пакетов по умолчанию, при этом dnf обратно совместим с yum .

Чтобы обновить установленные пакеты до последних версий, введите:

Удаление пакетов так же просто, как:

$ dnf remove имя_пакета

Справка

Параметр help

Команда man

Команда man применяется для отображения страницы руководства по заданной команде:

Например, чтобы открыть главную страницу справки по команде cd , вы должны ввести:

Для навигации по справочным страницам используйте клавиши со стрелочками вверх и вниз. Также вы можете нажать:

клавишу Enter для перемещения на одну строку за раз;

клавишу (Пробел) для перехода к следующему экрану;

клавишу b для возврата на один экран назад;

клавишу q для выхода из справочной страницы.

Команда history

Если вы используете Linux в течение определенного периода времени, вы быстро заметите, что можете выполнять десятки (если не сотни) команд каждый день. Таким образом, запуск команды history особенно полезен, если вы хотите просмотреть ранее введенные команды:

Команда whereis

Команда whereis отображает полный путь к исполняемому файлу программы (или к исходным файлам, если они присутствуют в системе). Например:

gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/gcc

Дополнительно

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

Нажатие на клавишу TAB (табуляция) приведет к автоматическому дополнению того, что вы в данный момент набираете в терминале. Например, если вам нужно перейти в папку Documents, то начните вводить команду cd Docu , а затем нажмите на клавишу TAB и терминал автоматически дополнит команду до cd Documents .

Сочетания клавиш:

Ctrl+C — останавливает и завершает команду;

Ctrl+Z — ставит выполнение команды на паузу;

Ctrl+S — временно приостанавливает вывод информации в терминал;

Ctrl+Q — продолжает вывод информации в терминал;

Ctrl+A — перемещает вас в начало строки;

Ctrl+E — перемещает вас в конец строки.

Вы можете запускать несколько команд в одной строке, отделяя их с помощью символа ; , например:

$ Command1; Command2; Command3

Если вместо ; использовать && , то следующая команда выполнится только после успешного выполнения предыдущей.

Как добавить каталог в PATH в Linux

Когда вы вводите команду в командной строке, вы в основном говорите оболочке запустить исполняемый файл с заданным именем. В Linux эти исполняемые программы , такие как ls , find , file и другие, как правило , живут внутри несколько различных каталогов в вашей системе. Любой файл с разрешением на выполнение, хранящийся в этих каталогах, может быть запущен из любого места. Наиболее распространенные каталоги , которые содержат исполняемые программы /bin , /sbin , /usr/sbin , /usr/local/bin и /usr/local/sbin .

Но как оболочка узнает, в каких каталогах искать исполняемые программы или оболочка выполняет поиск по всей файловой системе?

Ответ прост. Когда вы вводите команду, оболочка ищет во всех каталогах, указанных в пользовательской $PATH переменной, исполняемый файл с таким именем.

Что есть $PATH в Linux

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

Чтобы проверить, какие каталоги у вас есть $PATH , вы можете использовать команду printenv или echo :

Вывод будет выглядеть примерно так:

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

Добавление каталога в ваш $PATH

Есть ситуации, когда вы можете захотеть добавить другие каталоги в $PATH переменную. Например, некоторые программы могут быть установлены в разных местах, или вы можете захотеть иметь выделенный каталог для ваших личных записей, но сможете запускать их без указания абсолютного пути к исполняемым файлам. Для этого вам просто нужно добавить каталог в свой $PATH .

Допустим, у вас есть каталог с именем, bin расположенный в вашем домашнем каталоге, в котором вы храните свои сценарии оболочки. Чтобы добавить каталог к ​​вашему $PATH типу в:

Команда export экспортирует измененную переменную в дочерние среды процессов оболочки.

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

Однако это изменение носит временный характер и действует только в текущем сеансе оболочки.

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

Конфигурационные файлы глобальной оболочки, такие как /etc/environment и /etc/profile . Используйте этот файл, если вы хотите, чтобы новый каталог был добавлен всем системным пользователям $PATH .

Конфигурационные файлы для отдельных пользовательских оболочек. Например, если вы используете Bash, вы можете установить $PATH переменную в

/.bashrc файле, а если вы используете Zsh - имя файла

В этом примере мы установим переменную в

/.bashrc файле. Откройте файл в текстовом редакторе и добавьте в конце следующую строку:

Сохраните файл и загрузите новый $PATH в текущий сеанс оболочки, используя source команду:

Чтобы подтвердить, что каталог был успешно добавлен, напечатайте его значение $PATH , набрав:


Вывод

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

Те же инструкции применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.

Читайте также: