Страницы

Поиск по вопросам

четверг, 9 января 2020 г.

Куда сохранить свои функции для терминала?

#linux #функции #bash


Мне приходиться работать с разными серверами на linux, подключаюсь по ssh.
И часто приходиться делать разную рутинную работу через консоль.

Я создал себе рабочий файл (.sh), где собрал написанные функции.
Вот самый простой пример: 

cdl() { 
   cd "$@" && ls -la; 
}


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

Можно ли куда-то в ядро или еще куда-то записать эти функции, чтобы не приходилось
каждый раз запускать этот файл, а просто записать эти функции в какой-то файл, который
будет автоматически видеть мои функции?
    


Ответы

Ответ 1



если речь только о программе bash и только об интерактивных сеансах, то подходящим местом для ваших собственных функций будет файл ~/.bashrc. можно либо добавить код функций непосредственно в этот файл: $ cat ~/мои.функции | ssh пользователь@машина 'cat >> ~/.bashrc' либо добавить только вызов этого файла (скопировав и сам файл): $ scp ~/мои.функции пользователь@машина: $ ssh пользователь@машина 'echo "if [ -f ~/мои.функции ]; then . ~/мои.функции; fi" >> ~/.bashrc'

Ответ 2



разделить функции на файлы cdl.sh cdl() { cd "$@" && ls -la; } #запуск функции cdl и можно сделать ссылку в папку bin sudo ln -s -r cdl.sh /bin/cdl и вызывать так bash cdl или chmod -R +x cdl.sh и можно вызывать так cdl еще можете изучить такую тему как bash переменные окружения PATCH но если не хотите делить функции на файлы , добавьте "$@" myFun.sh cdl() { cd "$@" && ls -la; } cd2() { cd "$@" && ls -la; } "$@" потом sudo ln -s -r myFun.sh /bin/myFun chmod -R +x myFun.sh и вызывайте так ~$: myFun cdl ~$: myFun cd2

Комментариев нет:

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