Nie sudo alternatywa dla / usr / local / bin dla popularnych skryptów


16

Jestem przyzwyczajony do umieszczania typowych skryptów, /usr/local/binaby móc je wykonywać z dowolnego miejsca za pomocą terminala.

Na przykład tworzę skrypt powłoki o nazwie 1, wykonuję go chmod +x 1i wstawiam /usr/local/bin, a wewnątrz skryptu piszę #!/bin/shw pierwszym wierszu, a następnie w moich poleceniach. Odtąd można go bardzo wygodnie używać i szybko uruchamiać, pisząc

1Enter

na terminalu, z dowolnego folderu.

Mój problem polega na tym, że obecnie pracuję na komputerze, na którym nie mogę tego zrobić sudoi nie mogę się spodziewać, że go dostanę, więc nie mogę umieścić mojego skryptu /usr/local/bin.

Jakie są moje opcje? Czy istnieje inna ścieżka z taką samą funkcją „uciekaj z dowolnego miejsca”, do której mogę uzyskać dostęp bez sudo, lub inny sposób na osiągnięcie czegoś równoważnego?

Akceptowana odpowiedź na ten post mówi

W przypadku skryptów o zasięgu użytkownika użyj bin / w katalogu domowym.

Próbowałem, ale nie ma binfolderu w moim katalogu domowym, a kiedy go utworzyłem, nadal nie mogłem uruchomić skryptu z innego miejsca.

Korzystam z systemu Ubuntu 12.04 LTS.


2
Nie używaj 1 lub czegoś takiego jako nazwy skryptu. Spróbuj obliczyć coś w swojej powłoce: np. Wyrażenie 1 + 1 (a jeśli nie, to na pewno zrobi to jakiś skrypt)
frlan

1
@frlan: Jak expr 1 + 1wpłynęłaby na to obecność skryptu o nazwie 1?
psmears

To prawda ... nie wpływa na exprarytmetykę $(( 1 + 1 )).
Campa,

Odpowiedzi:


19

Jakie są moje opcje? Czy istnieje inna ścieżka z tą samą funkcją „uciekaj z dowolnego miejsca”, do której mogę uzyskać dostęp bez sudo, lub inny sposób na osiągnięcie czegoś równoważnego?

Jak to zrobić?

Utwórz katalog w swoim domu, aby przechowywać skrypty zwykle nazywane binkonwencjami.

mkdir ~/bin

Teraz przenieś swoje skrypty do bin

mv somescript ~/bin

Teraz jak sprawić, by dostroił się zewsząd ?!

Musisz dodać bindo ŚCIEŻKI

Otwórz swoje .bashrc

gedit .bashrc

i dodaj ten wiersz:

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

Nie zapomnij zastąpić usernameswoją nazwą użytkownika

Zapisz i wyjdź, a następnie wprowadź bashrc

source .bashrc

a teraz wszystko jest w porządku, możesz uruchomić skrypt tak jak kiedyś! ale musisz zauważyć, że dotyczy to tylko Twojego użytkownika.

Uwaga: lepiej zmienić nazwę skryptu na inną niż 1, 2, ponieważ możesz napotkać pewne problemy z tymi nazwami


AKTUALIZACJA:

Możesz zrobić to samo, po prostu utwórz bin bin w swoim domu source ~/.profilezamiast ~/.bashrc. Ponieważ dodanie ~ / bin do PATH jest już wymienione w.profile

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

Używam, export PATH=$PATH:$HOME/binwięc mogę używać tego samego bashrc do innych kont o różnych nazwach użytkowników.
Anthony G - sprawiedliwość dla Moniki

1
Wystarczy wspomnieć, że ~/bin jest $PATHdomyślnie włączony na Ubuntu. Wystarczy uruchomić source ~/.profilelub wylogować / zalogować po utworzeniu katalogu.
Jacob Vlijm

@JacobVlijm W jakiej wersji? !!! Używam 12.04, 14.04, 15.04 i żaden z nich nie ma ~ / bin w ŚCIEŻCE
Maythux

We wszystkich z nich zawsze go używam, w wielu moich (zaakceptowanych) odpowiedziach, nigdy nie otrzymałem komentarza na ten temat, pracuje również w domu na pięciu systemach, ale, jak już wspomniano, po uruchomieniu source ~/.profile. Zobacz (np.) Tutaj: askubuntu.com/a/247422/72216
Jacob Vlijm

1
Powiedział źródło ~/.profile, nigdy nie powiedział źródło ~/.bashrc. :) Ponadto, zgodnie z ogólną zasadą, zmienne środowiskowe powinny iść w .profilenie .bashrc, ponieważ muszą być tylko skonfigurować jeden raz. (nic z tego nie oznacza, że ​​twoja odpowiedź nie jest dobra, pamiętaj o tobie i +1 ode mnie)
terdon

4

Oprócz /ubuntu//a/643030/218015 możesz także zdefiniować alias w pliku .bashrc dla małych, często używanych zadań. Na przykład

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

stworzy ci „polecenie” ll, które wykonuje ls -l, a ls będzie pokolorowane po zdefiniowaniu aliasu. https://wiki.ubuntuusers.de/alias zawiera jeszcze kilka przykładów i poradników dotyczących konfiguracji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.