У меня есть все такие скрипты в ~ / bin, который также является SVN, работающим для всех скриптов, которые я часто использую на нескольких компьютерах. Он также содержит части моей конфигурации zsh, такие как псевдонимы и переменные среды.
Лучший способ организовать свою sh / bash / python / etc. скрипты
Каков наилучший способ организации сценариев sh / bash / python, которые вы собираете и пишете в своей системе?
12 ответов на вопрос
- Популярные
- Новые
- С комментариями
- Активные
Зависит от цели сценария. Я обычно разбиваю свое между двумя местами. Либо ~ / инструменты для серьезных вещей, которые я регулярно использую, либо ~ / площадка / [название функции, с которой я играю].
У меня есть каталог ~ code, с подкаталогом для каждого языка, который я использую, и в моем .bashrc у меня есть инструкция для ввода каждого из них в мой $ PATH. Например:
dsm@localhost:~ $ cat .bashrc ... export PATH="$( find /home/dsm/code -mindepth 1 -maxdepth 1 -type d -print\ | perl -ne 'chomp; print"$:";' )$" ; ... dsm@localhost:~ $
Так же, как и все остальные, я использую ~/bin
большинство сценариев и оставляю специфичные для проекта вещи ~/projects/whatever
.
Что я делаю, так это:
Иметь / home / myname / Scripts /
Я положил туда все свои скрипты (классифицирует в каталогах в зависимости от их функции / проекта). Теперь самое приятное, что весь / home / myname / Scripts / контролируется версией (с SVN). Таким образом, я могу изменить и все еще могу посмотреть на свои изменения.
чтобы все приложения распознали это, вы можете попробовать добавить путь к / etc / profile (для bash).
в / etc / profile, последняя строка, добавить
export PATH=$:/home/myname/Scripts/
Я храню все свои разработки в папке user \ dev, которая связана с моей папкой dropbox, чтобы сохранить все резервные копии. (хорошо, я соврал, большинство графических вещей предназначено dev\..\graphics
для уменьшения использования Dropbox для вещей, которые не нужно резервировать так часто)
Скрипты остаются в dev, и если я буду использовать их часто, я им что-то псевдоним, а не все на моем пути. («псевдоним» здесь относится к doskey, который я автоматизировал с помощью скрипта python, который я связал с псевдонимом)
В настоящее время я храню все в папке в моем домашнем каталоге, ~ / sh. Я добавил его в PATH в .bashrc (и .zshrc, так как я использую оба.)
Недостатком является то, что приложения, которые не запускаются терминалом, например, X-сервером, не получают измененное значение PATH. Затем я вынужден добавить 'sh /' к имени файла при запуске этих скриптов из графического интерфейса.
Большинство сценариев, которые я пишу, относятся к определенному проекту, поэтому я просто оставляю их в каталоге для этого проекта. Вам не нужно добавлять их в какие-либо PATH, и легко запомнить, для чего они.
С другой стороны, для глобальных сценариев каталог ~ / sh звучит как победитель.
Под окнами вы можете установить общесистемные переменные среды либо для всех пользователей, либо для конкретного пользователя.
Это означает, что всякий раз, когда программа запускается, она знает заданные вами переменные среды. Конечно, вы также можете установить переменные среды из другого процесса, такого как CMD, и в этом случае только программы, которые запускаются из этого процесса, будут знать эти переменные.
Я не знаю способа под Linux установить общесистемные переменные среды для конкретных пользователей, но есть способ установить общесистемные переменные среды для всех пользователей.
Вы можете написать желаемое значение в этом файле: / etc / environment
Значения, установленные в этом файле, будут распознаваться всеми программами для всех пользователей.
Вы можете сделать 'man pam_env', чтобы получить больше информации о демоне, который фактически обрабатывает этот файл.
Надеюсь, поможет,
Джонатан Орлев
Я храню все свои часто используемые скрипты в ~ / scripts и настроил свой / etc / profile для включения этой папки в мой путь для всех пользователей.
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$" else PATH="/usr/local/bin:/usr/bin:/bin:$" fi PATH="$:~/scripts"
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4