Не-судо альтернатива / usr / local / bin для загальних сценаріїв


16

Я звик вводити загальні сценарії, /usr/local/binщоб я міг їх виконувати з будь-якого місця з терміналом.

Наприклад, я роблю сценарій оболонки з ім'ям 1, роблю його виконуваним chmod +x 1і вставляю його /usr/local/bin, а всередині сценарію я набираю #!/bin/shперший рядок, а потім мої команди. З цього моменту це дуже зручно використовувати та швидко виконувати, набравши текст

1Enter

на терміналі, зсередини будь-якої папки.

Моя проблема полягає в тому, що я зараз працюю на комп’ютері, де не можу зробити, sudoі я не можу розраховувати отримати його, тому я не можу розмістити свій скрипт /usr/local/bin.

Які мої варіанти? Чи є інший шлях із такою ж здатністю "бігти з будь-якого місця", до якої я можу отримати доступ sudo, або інший спосіб досягти чогось еквівалентного?

У прийнятій відповіді на це повідомлення йдеться

Для сценаріїв, визначених користувачем, використовуйте bin / у своєму домашньому каталозі.

Що я спробував, але binв моєму домашньому каталозі немає папки, і коли я створив її, я все ще не міг запустити сценарій з будь-якого місця.

Я працюю на Ubuntu 12.04 LTS.


2
Не використовуйте 1 або щось подібне як назву сценарію. Спробуйте обчислити щось у вашій оболонці: наприклад, expr 1 + 1 (а якщо ні, ви це робите, якийсь сценарій зробить це точно в якийсь момент)
frlan

1
@frlan: Як на це expr 1 + 1вплине наявність імені сценарію 1?
psmears

Правда ... не зачіпаючи expr, ані арифметику $(( 1 + 1 )).
Кампа

Відповіді:


19

Які мої варіанти? Чи є інший шлях із такою ж здатністю "бігати з будь-якого місця", до якої я можу отримати доступ без судо, або іншим способом досягти чогось еквівалентного?

Як це зробити?

Створіть у своєму будинку трохи режиму, щоб зберігати свої сценарії, як правило, названі binяк звичайні.

mkdir ~/bin

Тепер перемістіть свої сценарії до кошика

mv somescript ~/bin

Тепер, як зробити це тюнінг звідусіль ?!

Ви повинні додати binPATH

Відкрий свій .bashrc

gedit .bashrc

і додайте цей рядок:

export PATH=$PATH:/home/username/bin

Не забудьте замінити usernameсвоє ім’я користувача

Збережіть і вийдіть, а потім виведіть bashrc

source .bashrc

і тепер у вас все добре, ви можете запустити свій скрипт, як раніше! але ви повинні помітити, що це стосується лише вашого користувача.

Примітка. Краще перейменувати свої сценарії, ніж 1, 2, оскільки у вас можуть виникнути проблеми з цими іменами


ОНОВЛЕННЯ:

Ви можете зробити те ж саме, щоб створити сміттєвий дір у своєму будинку, а не source ~/.profileзамість нього ~/.bashrc. Оскільки додавання ~ / bin до вашої PATH вже вказано в.profile

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Я використовую, export PATH=$PATH:$HOME/binщоб я міг використовувати той самий bashrc для інших облікових записів з різними іменами користувачів.
Ентоні Г - справедливість для Моніки

1
Зазначимо, ~/bin він $PATHза замовчуванням знаходиться на Ubuntu. Просто створіть source ~/.profileабо вийдіть із системи, увійшовши / увійти після створення каталогу.
Яків Влійм

@JacobVlijm У якій версії? !!! Я використовую 12.04, 14.04, 15.04, і жоден з них не має ~ / bin в PATH
Maythux,

У всіх із них я завжди її використовую, у багатьох своїх (прийнятих) відповідях також ніколи не отримував жодних коментарів до цього, працює і вдома за п’ятьма системами, але, як було сказано, після запуску source ~/.profile. Дивіться (наприклад) тут: askubuntu.com/a/247422/72216
Яків Влійм

1
Він сказав джерело ~/.profile, він ніколи не сказав джерело ~/.bashrc. :) Крім того , як правило, змінні середовища повинні йти в .profileі не .bashrcтак як вони тільки повинні бути створені один раз. (Жоден з цього не сказати , що ваш відповідь не добре, зауважте, і +1 від мене)
terdon

4

На додаток до /ubuntu//a/643030/218015 ви також можете визначити псевдонім у своєму .bashrc для невеликих, часто використовуваних завдань. Напр

alias ll='ls -l'
alias ls='ls --color=auto'

створить вам "команду" ll, яка виконує ls -l, і ls буде кольоровим після визначення псевдоніма. https://wiki.ubuntuusers.de/alias має ще кілька прикладів та способи його налаштування.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.