Маленькие хитрости пользовательских скриптов и не только

Я не знаю как у тебя %username% читающего данный пост, а у меня лично тьма скриптов (некоторые еще и связаны друг с другом). Начиная от простых скриптов которые использую для вывода какой либо информации на панель wmii и заканчивая крайне сложными скриптами. Даже соединение с интернет у меня с использованием скрипта. В этом посте я напишу пару хитростей которые должны облегчить вам жизнь.

Учитывая что я постоянно сижу за компьютером, а некоторые скрипты мне бывают нужны крайне часто, бывает очень муторно каждый раз писать путь к ним. Как нибудь так sh ~/.scripts/script_name.sh. Это просто крайне ужасно. Что бы не мучиться так каждый раз, я сделал по другому. Создал папку bin в домашней директории и перекинул все скрипты туда. Затем в .bashrc (или .zshrc что у вас там =] )добавляем к переменной PATH еще один путь:

export PATH="\$PATH:\$USER/bin"

Теперь перезаходим в систему или открываем новую консоль и любой скрипт доступен просто набрав его имя сразу в консоли или через программу запуска - dmenu или gmrun.

Так же не забываем про алиасы. У меня их целая куча, и они заметно облегчают жизнь. Например s - sudo, или sv - sudo vim. Тоже крайне облегчает жизнь. Добавить просто все в тот же .bashrc пишем:

alias s="sudo"  
alias sv="sudo vim"

В общем это не такая и хитрость. Каждый более менее опытный Linux пользователь знает об этом. Единственное что можно добавить к этому, так это то, что если у вас много пользователей, и всем им нужные эти скрипты и столь же быстрый доступ к ним. То можно в каталоге /etc/skel, в файле .bashrc дописать тот же путь что был выше. И любой файл и каталог которые есть в этой папке, так же будет скопирован в папку нового пользователя.

Некоторым скриптам, нужны права супер пользователя для выполнения. И тут я тоже решил себе упросить жизнь. Во первых снова можно использовать sudo, но это не лучший выход по соображениям безопасности. Лучше классический su в данном способе. Просто в начале скрипта, или в месте где нужна права рута пишем su -, а затем когда они уже не нужны просто exit. В данном случае в нужные момент скрипт спросит пароль, а потом закончит сессию рут пользователя. Так же можно создать небольшую проверку и в случае если вы не рут, то завершить работу скрипта:

ROOT_UID=0 # $UID root-а всегда равен 0.  
if [ "\$UID" -eq "\$ROOT_UID" ]  
then  
    echo "Все в порядке, я root. Продолжаем."  
else  
  echo "Вы должны быть супер пользователем для выполнения скрипта!"  
  exit 1; # Завершаем работу с ошибкой.  
fi

Как я уже писал выше. Я крайне ленив. И на каждый новый скрипт писать chmod +x мне тоже крайне лениво. Посему стоит на все новые файлы в этом каталоге устанавливать его автоматом, благо если мне не изменяет память, даже очень старые ядра и файловая система ext2 позволяют это сделать:

cd \~/bin  
umask +x

Теперь достаточно просто создать скрипт в каталоге ~/bin и не надо chmod +x и писать полный путь до него. Так же например в conky или dzen2 так же не нужно писать их полный путь.

У всего этого есть один лишь минус: если не подходить к кому с пол года, а потом пытаться понять как все это работает, то можно сильно запутаться =]


Понравилась статья? Поделись с друзьями!




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