Где хранятся скрипты в linux

Обновлено: 05.07.2024

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

Это хорошая практика для запуска скриптов (BASH, Perl и т.д.) Из другого каталога? Будут ли они обычно находить все необходимое для правильной работы?

Если так, каков наилучший способ запустить "дальний" скрипт? Это

и как использовать sudo в таких случаях? Это, например, не работает:

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

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

1) Симлинк на /usr/bin

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

2) Добавьте каталог Scripts на ваш путь (используя .bash_profile - или любой другой .profile, который есть в вашей оболочке)

3) Создайте псевдонимы в .bash_profile в

/.bash_profile добавьте что-то вроде:

Как вы можете сказать, синтаксис просто псевдоним, цифры, которые вы хотите действовать как команда, команда. Таким образом, ввод "l" в любом месте терминала приведет к ls -l Если вы хотите sudo, просто alias sl="sudo ls -l" чтобы отметить для себя l vs sl (в качестве бесполезного примера).

В любом случае, вы можете просто набрать sudo nameofscript и быть в пути. Не нужно связываться с ./ или. или ш и т. д. Сначала отметьте их как исполняемые:D

Я обычно делаю так, как ты говоришь

И запустить его от имени root/superuser

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

Я обычно храню свои скрипты в /usr/local/bin или /usr/local/sbin/ (если скрипту нужны привилегии root), где, в соответствии со стандартом иерархии файловой системы (FHS), они принадлежат.

Все, что вам нужно сделать, это убедиться, что эти две директории добавлены в вашу PATH . Вы можете сделать это, отредактировав файл $HOME/.bashrc и добавив следующую строку:

Если вы хотите иметь возможность выполнять скрипт от имени root с помощью sudo , вы должны добавить эти каталоги в переменную secure_path в вашем /etc/sudoers .

Редактирование этого файла выполняется с помощью visudo что гарантирует отсутствие ошибок.

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

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

Надеюсь, это помогло кому-то.

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

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

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

Древний вопрос, но вечный.

Решение, которое я постоянно видел, состоит в том, чтобы иметь каталог $HOME/bin и поместить его первым в $PATH (через

/.bashrc если его там еще нет; в некоторых системах

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

Если сценарию требуются дополнительные ресурсы, которые можно найти относительно его собственного местоположения (не редкость), тогда используется envvar $BASH_SOURCE . $BASH_SOURCE всегда содержит абсолютный путь к самому запущенному скрипту, независимо от значения $PWD .

Таким образом, мы видим, что $HOME/bin является первым в $PATH , поэтому все, что я вставлю в

/bin будет работать. У меня есть демонстрационный скрипт

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

Общесистемные идут в / usr / local / bin или / usr / local / sbin, в зависимости от ситуации (скрипты, которые должны запускаться только с правами root, входят в sbin, а скрипты, предназначенные для помощи обычным пользователям переходить в bin), развертываются через конфигурацию управление, чтобы убедиться, что они есть на всех машинах (а также на последних версиях).

Куда в Linux поместить пользовательские скрипты?

Если это только вы, поместите его в

/ bin и убедитесь, что

/ bin находится в вашем PATH. Если какой-либо пользователь в системе сможет запустить сценарий, поместите его в / usr / local / bin. Не помещайте написанные вами скрипты в / bin или / usr / bin.

Куда вы скрипты ставите?

Вы можете разместить любое количество скриптов в HTML-документе. Скрипты можно разместить в , или в раздел HTML-страницы или и то, и другое.

Где хранятся файлы .sh?

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

Куда мне поместить собственные сценарии bash?

Вы должны поместить свой сценарий в $ HOME / bin. Для этого выполните ПУТЬ ниже: Создайте папку, используя mkdir $ HOME / bin. Затем поместите свой сценарий в $ HOME / bin.
.
Это зависит от того, кто будет использовать ваш скрипт:

  1. Только для себя - $ HOME / bin, как сказал @waltinator.
  2. Вы и другие локальные пользователи - / usr / local / bin.
  3. только root - / usr / local / sbin.

Как сохранить сценарий оболочки в Linux?

:x

После того, как вы изменили файл, нажмите [Esc], перейдите в командный режим и нажмите: w и нажмите [Enter], как показано ниже. Чтобы сохранить файл и выйти одновременно, вы можете использовать ESC и и нажмите [Enter]. При желании нажмите [Esc] и введите Shift + ZZ, чтобы сохранить файл и выйти из него.

Как сделать сценарий глобально доступным в Linux?

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

Скрипты должны быть в голове или теле?

Лучше всего использовать JavaScript tags just before the closing tag rather than in the section of your HTML. The reason for this is that HTML loads from top to bottom. The head loads first, then the body, and then everything inside the body.

Где вы кодируете JavaScript?

Как видите, ваш код JavaScript помещается между открывающим и закрывающим тегами скрипта. В качестве примера сценария вы можете написать простую строку текста прямо на веб-странице, как показано ниже (помещенную между а также теги).

Сколько мест мы можем определить сценарий?

В Javascript теги SCRIPT могут быть вставлены в три места: между двумя тегами BODY, между двумя тегами HEAD и в качестве ссылки на внешний файл, также в разделе HEAD. Причина, по которой это делается таким образом, заключается в том, что сама веб-страница будет загружена до того, как будет прочитан скрипт.

Что находится в сценарии оболочки?

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

Что могут делать сценарии bash?

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

Что такое Dirname $ 0?

dirname $ 0 принимает имя файла (в данном случае $ 0 или путь, по которому оболочка нашла этот файл) и отображает каталог, в котором он хранится.

Как мне проверить статистику процессора и памяти?

5 команд для проверки использования памяти в Linux

  1. бесплатная команда. Бесплатная команда - самая простая и удобная в использовании команда для проверки использования памяти в Linux. …
  2. 2. / proc / meminfo. Следующий способ проверить использование памяти - это прочитать файл / proc / meminfo. …
  3. vmstat. Команда vmstat с параметром s отображает статистику использования памяти во многом так же, как и команда proc. …
  4. верхняя команда. …
  5. htop.

Для чего нужен bin bash?

/ bin / bash - наиболее распространенная оболочка, используемая в качестве оболочки по умолчанию для входа пользователя в систему Linux. Название оболочки является аббревиатурой от Bourne-Again shell. Bash может выполнять подавляющее большинство скриптов и поэтому широко используется, потому что он имеет больше функций, хорошо разработан и лучше синтаксис.

Какую команду оболочки вы бы использовали для перемещения файла из одного места в другое в среде Linux?

Перемещение по командной строке. Команда оболочки, предназначенная для перемещения файлов в Linux, BSD, Illumos, Solaris и MacOS, - это mv. Простая команда с предсказуемым синтаксисом, mv перемещает исходный файл в указанное место назначения, каждое из которых определяется абсолютным или относительным путем к файлу.

На серверах POWER /proc/cpuinfo статическое определение тактовой частоты. Процессоры могут быть синхронизированы с командой ppc64_cpu.

Я слышал, что есть некоторые несоответствия между показаниями ppc64_cpu --frequency и показанием cpufreq.

We я должен попросить подробности здесь.

Я сохраняю свои скрипты в /opt/scripts.

Если ваш скрипт должен выполняться каждым системным пользователем, вы можете создать символическую ссылку на /usr/bin.

Если только root должен выполнить скрипт, вы можете создать символическую ссылку на /usr/sbin.

Команда для добавления символической ссылки в /usr/bin/:

Вы можете выполнить скрипт , потому что /usr/bin/ находится в вашем PATH по умолчанию.

Я отметил это как правильный ответ, хотя оба ответа кажутся прекрасными. Причина в том, что я вникнул в рассмотрение документов FHS и ушел с пониманием того, что / opt существует именно для этой цели. Мне нравится идея их просто сим, связывающая мои скрипты в / usr / local / bin. Спасибо за все указатели. – hatterman 22 January 2018 в 17:41

Я сохраняю свои скрипты в /opt/scripts.

Если ваш скрипт должен выполняться каждым системным пользователем, вы можете создать символическую ссылку на /usr/bin.

Если только root должен выполнить скрипт, вы можете создать символическую ссылку на /usr/sbin.

Команда для добавления символической ссылки в /usr/bin/:

ln -s /opt/scripts/<script> /usr/bin/

Вы можете выполнить скрипт , потому что /usr/bin/ находится в вашем PATH по умолчанию.

Я сохраняю свои скрипты в /opt/scripts.

Если ваш скрипт должен выполняться каждым системным пользователем, вы можете создать символическую ссылку на /usr/bin.

Если только root должен выполнить скрипт, вы можете создать символическую ссылку на /usr/sbin.

Команда для добавления символической ссылки в /usr/bin/:

ln -s /opt/scripts/<script> /usr/bin/

Вы можете выполнить скрипт , потому что /usr/bin/ находится в вашем PATH по умолчанию.

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

Затем вы можете сохранить их в /home/$USER/bin. Создайте папку bin, если она там отсутствует, и переместите туда файлы. Папка bin в вашем доме автоматически добавится в переменную среды PATH. Код находится в .profile:

См. Как добавить / home / username / bin в $ PATH?

Или в некоторых системах это может быть в .bashrc:

Если этот скрипт должен использоваться другими пользователями :

Тогда либо /usr/local/bin, либо /opt/bin являются хорошими вариантами. См. Есть ли стандартное место для размещения пользовательских сценариев Linux?

Надеюсь, это поможет

У меня есть каталог, который я использую для быстрой коллекции моих локальных инструментов или вещей, которые я развертываю на разных компьютерах в /usr/local/apollo. От этой директории есть ветви flags, bin и logs.

Для приложений, которые я загружаю и устанавливаю за пределами репозиториев по умолчанию apt-get, помещаются в /opt/ и каталог по имени приложения, с еще одним подкаталогом для конкретной версии приложения. Таким образом, моя скомпилированная версия приложения, такого как vlc или eclipse, не будет конфликтовать с распределенной версией.

Мое использование /opt - это то, как оно в основном официально оформлено.

Кстати, каталоги /usr/local/bin, /usr/local/apollo и /opt выживают при перезаписывании новой версии ОС.

У меня есть каталог, который я использую для быстрой коллекции моих локальных инструментов или вещей, которые я развертываю на разных компьютерах в /usr/local/apollo. От этой директории есть ветви flags, bin и logs.

Для приложений, которые я загружаю и устанавливаю за пределами репозиториев по умолчанию apt-get, помещаются в /opt/ и каталог по имени приложения, с еще одним подкаталогом для конкретной версии приложения. Таким образом, моя скомпилированная версия приложения, такого как vlc или eclipse, не будет конфликтовать с распределенной версией.

Мое использование /opt - это то, как оно в основном официально оформлено.

Кстати, каталоги /usr/local/bin, /usr/local/apollo и /opt выживают при перезаписывании новой версии ОС.

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

Затем вы можете сохранить их в /home/$USER/bin. Создайте папку bin, если она там отсутствует, и переместите туда файлы. Папка bin в вашем доме автоматически добавится в переменную среды PATH. Код находится в .profile:

См. Как добавить / home / username / bin в $ PATH?

Или в некоторых системах это может быть в .bashrc:

Если этот скрипт должен использоваться другими пользователями :

Тогда либо /usr/local/bin, либо /opt/bin являются хорошими вариантами. См. Есть ли стандартное место для размещения пользовательских сценариев Linux?

Надеюсь, это поможет

У меня есть каталог, который я использую для быстрой коллекции моих локальных инструментов или вещей, которые я развертываю на разных компьютерах в /usr/local/apollo. От этой директории есть ветви flags, bin и logs.

Для приложений, которые я загружаю и устанавливаю за пределами репозиториев по умолчанию apt-get, помещаются в /opt/ и каталог по имени приложения, с еще одним подкаталогом для конкретной версии приложения. Таким образом, моя скомпилированная версия приложения, такого как vlc или eclipse, не будет конфликтовать с распределенной версией.

Мое использование /opt - это то, как оно в основном официально оформлено.

Кстати, каталоги /usr/local/bin, /usr/local/apollo и /opt выживают при перезаписывании новой версии ОС.

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

Затем вы можете сохранить их в /home/$USER/bin. Создайте папку bin, если она там отсутствует, и переместите туда файлы. Папка bin в вашем доме автоматически добавится в переменную среды PATH. Код находится в .profile:

См. Как добавить / home / username / bin в $ PATH?

Или в некоторых системах это может быть в .bashrc:

Если этот скрипт должен использоваться другими пользователями :

Тогда либо /usr/local/bin, либо /opt/bin являются хорошими вариантами. См. Есть ли стандартное место для размещения пользовательских сценариев Linux?


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

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

Что мы узнаем из статьи

  • Что такое команда pwd и для чего она нужна
  • Как узнать изнутри Bash-скрипта, по какому пути находится тот же самый скрипт


Что такое pwd?

Команда pwd на Linux при выполнении возвращает рабочий каталог пути.

Где бы мы ни находились в настоящее время и по какому пути ранее переходили (или были помещены в него нашей операционной системой, как, например, когда мы открываем командную строку/терминал), будет текущим путем, когда мы выполним pwd.

Здесь мы перешли в корневой каталог (/) и выполнили pwd.

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

Затем мы перешли в каталог /home и снова выполнили pwd.

Внутри скриптов bash команда pwd будет работать точно так же.

Также стоит отметить, что внутри скрипта Bash (а также в командной строке вне скриптов Bash) мы можем использовать специальную переменную операционной системы $, которая будет автоматически обновляться операционной системой, содержащей наш текущий путь.

Итак, мы можем использовать pwd, верно?

Не совсем. Представьте себе следующую ситуацию:

Здесь мы определили скрипт именем mypath.sh и сделали его исполняемым.

Затем мы перескакиваем на один каталог выше из нашего домашнего каталога и выполняем наш скрипт:

В то время как команда pwd внутри нашего скрипта mypath.sh работает правильно, здесь возникает проблема: pwd вернул путь, по которому мы сейчас находимся, а именно /home, тогда как скрипт фактически хранится в каталоге /home/roel!

Помните название статьи; ищем путь, в котором хранится скрипт! Итак, как мы можем это найти?

Решение

В то время как в Bash нет специальной переменной для указания пути, в котором хранится скрипт, есть простой способ получить ее.

Здесь мы определили вторичный скрипт с именем mypath2.sh.

Посмотрим, работает ли это более правильно, чем использование только pwd:

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

Заключение

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

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

Добавить комментарий Отменить ответ


Существует множество вариантов лучших тем для Ubuntu. Но тестирование всех тем и выбор лучшей из них отнимает много времени и сил. Да и предустановленная тема может вам не понравиться. Поэтому мы отобрали 10 лучших тем Ubuntu для вашего рабочего стола Linux. Итак, как превратить рабочий стол в красивую и элегантную среду? С помощью нескольких простых.

Краткий обзор того, как работают гипервизоры и в чем разница между двумя их типами. Прежде чем вы увидите разницу между гипервизором типа 1 и типа 2 и узнаете, какой из них лучше (если это вообще возможно), давайте сначала рассмотрим, что такое гипервизор. Что такое гипервизор? Гипервизор – это системное программное обеспечение, которое выступает в качестве.

Итак, вы установили свой сервер Linux и установили все необходимые пакеты. Теперь вы собираетесь установить другой сервер с аналогичными пакетами. Вы можете сохранить команды установки первого сервера и запустить их на второй машине. Как быть, если вы делали это в течение нескольких недель и забыли некоторые детали, но вам нужно быстро запустить другой сервер. ssh.

Команда Linux top широко используется системными администраторами Linux в режиме реального времени для проверки использования системных ресурсов, таких как процессор, дисковый ввод/вывод, средняя загрузка системы, запущенные процессы и использование памяти. Я обычно использую Oracle OSWatcher Black Box (OSWbb) для сбора различных системных данных для диагностики проблем производительности в течение определенного периода времени. Но если вы.

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