Centos export команда не найдена

Обновлено: 07.07.2024

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

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

Ошибка ifconfig команда не найдена

Первая причина почему вы можете получать эту ошибку, очень проста. Скорее всего, утилита установлена в вашей системе, но интерпретатор bash не может ее найти. Дело в том, что в Linux существует несколько папок для хранения исполняемых файлов. Все утилиты, которые может выполнять только суперпользователь расположены в каталоге /sbin или /usr/sbin.


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


Если даже после этого вы получаете эту ошибку, то это означает, что программа таки не установлена. Дело в том, что утилита довольно давняя, и некоторым разработчикам показалось, что нужно разработать что-то более совершенное, поэтому была разработана утилита ip. Она имеет больше возможностей и лучше. Но она непривычна и имеет сложный синтаксис. Теперь команда ip используется по умолчанию во многих дистрибутивах, а ifconfig удалена.

sudo apt install net-tools

sudo dnf install net-tools

sudo yum install net-tools

sudo pacman -S net-tools

После завершения установки пакета, а это будет выполнено очень быстро, вы можете пользоваться утилитой и ошибки ifconfig command not found больше не будет. Только запускайте ее с помощью sudo. Если вы решили больше не использовать ifconfig смотрите статью про утилиту ip linux.

Выводы

Export - это одна из встроенных команд оболочки bash, поэтому она является неотъемлемой частью вашей командной строки. Она очень проста в использовании, так как синтаксис export допускает использование всего трех опций командной строки. В целом команда export отмечает переменную окружения для экспорта с любым новым дочерним процессом, и это позволяет дочернему процессу наследовать все отмеченные переменные. В данной статье этот процесс будет описан более подробно.

2. Часто используемые опции

-p
выводит список всех имен, экспортированных в текущей оболочке
-n
удаляет имена из списка экспорта
-f
имена экспортируются как функции

3. Основы export

Подумайте над следующим примером:

Строка 1: создается новая переменная с именем "a", содержащая строку "linuxcareer.com".
Строка 2: мы используем команду echo, чтобы вывести содержимое переменной "a".
Строка 3: мы создаем дочерний экземпляр оболочки bash.
Строка 4: переменная "a" теперь не определена.

Из приведенного выше примера можно видеть, что любой дочерний процесс, ответвляющийся от родительского процесса, по умолчанию не наследует переменные родителя. Для этого и нужна команда export. Что произойдет, если мы используем команду export в вышеприведенном примере?

Теперь в строке 3 мы использовали команду export, чтобы экспортировать переменную "a" в созданный новый дочерний процесс. В результате переменная "a" все еще содержит строку "linuxcareer.com", даже после создания нового экземпляра оболочки bash. Здесь важно отметить, что для успешного экспорта "a" необходимо, чтобы процесс, в который экспортируется переменная, ответвлялся от того родительского процесса, из которого экспортируется эта переменная. Связь между дочерним и родительским процессами описана ниже.

4. Дочерние и родительские процессы

В этом разделе мы коротко опишем взимосвязь между дочерним и родительским процессом. Все процессы могут быть родительскими и дочерними одновременно. Единственным исключением является процесс init, который всегда имеет PID (ID процесса) 1. Поэтому init является родительским для всех процессов, запущенных в системе Linux.

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

Строка 1: вывести PID текущей командной оболочки - 27861
Строка 2: создать новый дочерний процесс из процесса с ID 27861
Строка 3: вывести PID текущей командной оболочки - 28034
Строка 4: вывести список дочерних процессов для PID 27861 с помощью команды ps

При создании нового дочернего процесса команда export просто обеспечивает, что все экспортируемые переменные родительского процесса доступны в дочернем процессе.

5. Использование команды export

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

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

Как вы можете видеть, после экспорта переменной MYVAR, она будет показываться в списке экспортируемых переменных (строка 4). Приведенный выше пример можно сократить, используя команду export сразу при присваивании значения переменной.

Наиболее широко команда export применяется для объявления переменной оболочки PATH:

В этом примере мы включаем дополнительный путь /usr/local/bin в существующее определение PATH.

6. Экспорт функций командной оболочки

Используя опцию -f, команда export может быть также использована для экспорта функций. В примере ниже мы создаем функцию оболочки под именем printname, которая просто выводит строку "Linuxcareer.com" с помощью команды echo.

7. Удаление имен из списка экспорта

Выполнив один из вышеприведенных примеров, мы имеет переменную MYVAR, определенную в списке экспорта.

Чтобы удалить переменную из списка экспорта, необходимо использовать опцию -n.

8. Заключение

В этой статье рассмотрены основы использования команды export. Чтобы узнать больше подробностей, используйте команду:

Я обновлял свой .bash_profile, и, к сожалению, я сделал несколько обновлений, и теперь я получаю:

Мой bash_profile фактически извлекает другие файлы .sh (их источники), поэтому я не совсем уверен, какая модификация могла вызвать это.

Теперь, если я даже пытаюсь и список файлов, я получаю:

Любые советы о том, как отследить источник ошибки и как использовать терминал для базовых операций, таких как перечисление файлов и т. Д.?

Что произойдет, если вы используете полный путь, например, так: / bin / ls? И какие изменения вы делали? / bin / ls перечисляет файлы, но затем я вижу эти 2 строки под ним: -bash: sed: command not found -bash: git: command not found Если ваша проблема была с /etc/environment , используйте следующую команду (в centos 6): ssh -t root@<server-ip> "/bin/bash -c '/bin/mv /etc/environment /tmp/'"

Мне кажется, что в тот или иной момент вы перезаписываете PATH переменную среды по умолчанию . Тип ошибок, которые у вас есть, указывает, что PATH не содержит данных /bin , где находятся вышеуказанные команды (в том числе bash ).

Например, если вы делаете

Вы должны использовать '$' во второй строке PATH - export PATH=$PATH:EC2_HOME/bin странно, как 'ec2-description-region' не работает, даже если он у меня на пути, но все же это работает: $ EC2_HOME / bin / ec2-описывает-регионов Я также сделал перезагрузку источника . Послушай, мы не знаем, что ты делаешь, какие другие файлы ты получаешь, что в них. И да, каждый раз, когда вы исходите из файла, вы добавляете вещи к своему пути (что нормально, потому что обычно .bash_profile будет прочитан только один раз). Пройдите через это один за другим и посмотрите, что произойдет. Кроме того, EC2_HOME не является переменной? Если да, то вы должны предшествовать этому $ следующим образом: export PATH=$PATH:$EC2_HOME/bin Я теряю счет, сколько раз я зацикливался на этой проблеме и сколько раз этот ответ мне очень помог

Один из способов начать отладку сценария bash - запустить подоболочку с параметром -x:

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

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

Возможно, я нашел проблему. Это сработало для меня, и это может сработать для вас .

Я по умолчанию с моим редактором в Windows (LF / CR) сохраняет. Поскольку я использую обе системы, это казалось логичным. Когда мне нужно было возиться с моим .bash_profile , я понял, комментируя и пробуя вещи, которые ничего не помогали. Я изменил свои сохранения в формат OS X (только CR) и вуаля! Нет больше "команда не найдена" в терминале!

Это может быть так просто!

Очень тонкая вещь, которая сводила меня с ума. Спасибо за добавление этого ответа! Это было то, что я испытывал! Благодарю. Быстрый совет использует эту команду для конвертации файлов в вашей среде unix: $ dos2unix .bash_profile Вы уверены, что это то, что вы сделали? Поскольку OS X является Unix, в нем используются окончания строк в стиле Unix с одним символом перевода строки (LF), а не возврат каретки (CR). Единственной популярной операционной системой, в которой использовались последние, были OS 9 и более ранние версии, а приложения Linux / Ubuntu были бы весьма смущены этим.

После я не мог перезапустить.

/ .bash_profile или любые обычные команды, такие как whoami, grep и т. д. Я нашел способ просто реэкспортировать требуемые пути:

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

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

Поэтому я искал по всей сети, и я нашел решение. Что в основном открыть терминал, наберите touch

/.bash_profile и нажмите Enter . Это исправило мои проблемы. Надеюсь, это то же самое для вас

У меня такая же проблема, как и у вас. Я не могу использовать многие популярные команды ( ls , vi/vim ..) и не могу редактировать , /root/.bashrc когда я войти с su в корень.

В заключение. Я нашел решение этой проблемы. Просто войдите в систему root с помощью команды:

После этого вы можете использовать

У меня такая же проблема. Возможно, вы пропустили $ при экспорте PATH. Вы должны открыть .bash_profile в TextEdit. Если вы не можете найти файл в каталоге, нажмите Ctrl + Shift +>, чтобы показать скрытые файлы.

Затем внесите исправление в PATH и затем сохраните.

В каталоге на терминале введите: source .bash_profile.

Это должно решить проблему.

Спасибо, это решило мою проблему, и наконец я смог отредактировать файл bash_profile.

У меня была точно такая же проблема:

Если я положу в lxterminal:

если я ввел точно такую ​​же команду в tty2, я получил:

\ r означает конец строки в DOS, поэтому я открыл файл

/.bashrc и изменил концы строк в Krusader на стиль unix. И это уже работает . :-)

DOS EOL создают большие проблемы также в скриптах bash.

Я получил ту же проблему только сейчас, после того как я изменил .bash_profile . И я хочу изменить его обратно, но теперь я не могу, потому что я потерял все команды, особенно команду nano и команду vim, поэтому я не могу открыть .bash_profile с командой. И .bash_profile это скрытый файл, который я не могу открыть с помощью Finder.

Поэтому мне нужно найти способ открыть файл .bash_profile. После того, как я попробовал много способов, я обнаружил, что могу использовать Atom , потому что Atom может читать все файлы в папке проекта, включая скрытые файлы. Так что просто откройте Atom и выберите папку File -> Open , выберите <yourusername> папку, а затем все скрытые файлы, отображаемые в древовидном представлении Atom, включая .bash_profile !! После того, как я удалил последнюю модификацию и снова открыл Терминал, все команды вернулись! :)

Favorite

Добавить в избранное

Главное меню » Linux » Объяснение команды export в Linux

(2 оценок, среднее: 5,00 из 5)

Объяснение команды export в Linux

К оманда export в Linux используется для создания переменных среды. Вы можете использовать ее так:

или сокращение как здесь, чтобы присвоить значение сразу:

Вы можете увидеть значение экспортируемых переменных с помощью команды echo :

Чтобы сделать изменения постоянными, вы должны добавить их в файл

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

Понимание того, как работает команда export

В приведенном ниже примере мы объявляем переменную оболочки var и присваиваю ей значение 3. Пока это переменная оболочки.

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

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

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

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

Сделать экспортированные переменные оболочки «постоянными» с помощью файла bashrc

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

Вот почему принято добавлять команду export в файл конфигурации среды выполнения (rc) вашей оболочки.

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

Если вы используете оболочку bash, у вас должен быть файл bashrc в

/.bashrc. Вы можете отредактировать этот файл в текстовом редакторе, таком как Vim, или просто добавить к нему файл export var = 3 (или что-либо, что вы экспортируете).

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

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

Зачем использовать команду экспорта?

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

Что оно делает? Он добавляет это местоположение каталога к пути. Когда вы пытаетесь запустить команду в Linux, ваша система ищет ее исполняемый файл (обычно в каталоге bin) в каталогах, упомянутых в переменной PATH.

Мы настоятельно рекомендуем прочитать о структуре каталогов Linux, чтобы иметь лучшее представление.

Бонус Совет: удалить переменную из списка экспорта

Мы надеемся, что у вас теперь создалось представление о команде export в Linux. Если у вас есть сомнения, пожалуйста, не стесняйтесь спрашивать в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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