Chciałbym wiedzieć, czy istnieje sposób na uruchomienie programu / skryptu powłoki bez wpisywania pełnej ścieżki:
/opt/idea/bin/idea.sh
Chciałbym wiedzieć, czy istnieje sposób na uruchomienie programu / skryptu powłoki bez wpisywania pełnej ścieżki:
/opt/idea/bin/idea.sh
Odpowiedzi:
Możesz po prostu utworzyć dowiązanie symboliczne . Utwórz to w /usr/local/bin
. Wystarczy uruchomić polecenie:
sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command
Następnie powinieneś ustawić swój file
plik wykonywalny:
chmod +x /full/path/to/your/file
Teraz powinieneś być w stanie uruchomić name_of_new_command
w dowolnym momencie w swoim terminalu.
Pamiętaj, że jest to dobre rozwiązanie tylko do użytku domowego z Linuksem.
/usr/local/bin
tym miejscu dowiązania symbolicznego do skryptu w prywatnym folderze domowym, na przykład /home/jack/myscript.sh
, ponieważ tylko użytkownik jack
zwykle byłby w stanie go wykonać. Dowiązanie symboliczne będzie widoczne dla innych użytkowników, ale nie dla pliku, na który wskazuje. W systemie dla jednego użytkownika może to nie mieć znaczenia, ale „dobrą praktyką” jest umieszczanie skryptów (lub linków do skryptów), które mogą czytać wszyscy użytkownicy /usr/local/bin
, oraz prywatnych, samodzielnie wykonanych skryptów (lub linków do skryptów) pojedynczy użytkownik w swoim ~/bin
folderze.
Możesz dodać /opt/idea/bin
do swojej PATH
zmiennej:
PATH=/opt/idea/bin:"$PATH"
Następnie możesz uruchomić go w prosty sposób idea.sh
.
Prawdopodobnie chcesz dodać tę linię do swojego ~/.bashrc
pliku.
idea
, musisz utworzyć link lub alias o tej nazwie wskazującej na idea.sh
skrypt.
idea.sh
Skrypt nie jest taki scenariusz, w rzeczywistości przesuwając go poza jego instalacji dir jest całkowicie obsługiwane. Zasady pakowania Debiana nie mają tutaj zastosowania.
Możesz utworzyć funkcję w ~/.bashrc
:
some-name () {
/path/to/your/file
# or:
#cd /path/to/your
#./path
}
Lub możesz utworzyć alias
:
alias some-name='/path/to/your/file'
# or
#alias some-name='cd /path/to/your/; ./file'
W obu przypadkach możesz go uruchomić, wywołując:
$ some-name
Jeśli plik nie zależy od tego, gdzie jest uruchomiony, rozważ dodanie go do ~/bin
:
mkdir -p ~/bin
cp /path/to/you/file ~/bin
# or mv /path/to/you/file ~/bin
# or ln -s /path/to/you/file ~/bin
~/bin
, jeśli istnieje, zostanie $PATH
automatycznie dodany do twojego . Następnie dzwonisz bezpośrednio file
:
$ file
(Jednak zły wybór nazwy, spróbuj nazwać to mniej ogólną).
file
do twojego ~/bin
, co zwykle robię (dla dłuższych skryptów). Prawdopodobnie nawet umieściłbym ten na górze :) Aliasy są dobre dla skrótów do poleceń o określonych parametrach, np alias l='ls -CF'
. Chociaż widziałem znacznie więcej niesamowitych zastosowań aliasów . Nie mam tendencji do deklarowania funkcji w ~/.bashrc
(wolę mieć wszystkie moje skrypty ułożone w osobnych plikach w ~/bin
). Chociaż wszystko to jest kwestia gustu, chyba :)
cd
, ponieważ skrypt może zależeć od katalogu roboczego. :) W przeciwnym razie tak, zwykle wkładam pliki do ~/bin
siebie.
Możesz utworzyć program uruchamiający za pomocą następującego polecenia:
gnome-desktop-item-edit --create-new <path-where-to-save>
. Otworzę to okno.
Nazwij go, jak chcesz, a następnie w polu poleceń wpisz
sh -c '/opt/idea/bin/idea.sh'
i zapisz to.
Teraz możesz uruchomić ten plik za pomocą nowo utworzonego programu uruchamiającego
LUB
Możesz utworzyć plik .desktop z następującą zawartością
[Desktop Entry]
Name=<whatever-you-want>
Exec=sh -c '/opt/idea/bin/idea.sh'
Terminal=false
Type=Application
Icon='<path to an icon file if you want>'
Teraz zapisz go z .desktop
rozszerzeniem w dowolnym miejscu.
Zrób to za pomocą tego polecenia chmod a+x <your-desktop-file>
Teraz kliknij dwukrotnie, aby go otworzyć.
Możemy zdefiniować funkcję i dodać skrót klawiszowy, używając bind
do tego polecenia. Otwórz ~/.bashrc
plik i dodaj do niego następującą linię:
# define function that opens your program in working directory
Openprog(){
/your-Program/path/here
}
# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'
Teraz, gdy naciśniesz F12, program się uruchomi.
Uwaga: Szybki sposób na określenie kodu ucieczki:
Otwórz terminal i naciśnij Ctrl+ V. Teraz naciśnij ulubiony skrót klawiaturowy. Powinien pojawić się prawidłowy kod ucieczki. Wystarczy upewnić się, aby wymienić ^[
się \e
przed dodaniem skrótu, np wymiany ^[[24~
z \e[24~
.
Możemy również uruchomić /opt/idea/bin/idea.sh
plik bezpośrednio za pomocąbash_aliases
Otwórz ~/.bashrc
plik, uruchamiając,
gedit ~/.bashrc
Usuń #
przed wierszami i zapisz go, aby linie wyglądały,
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Teraz otwórz ~/.bash_aliases
plik,
gedit ~/.bash_aliases
Dodaj poniższe wiersze w tym pliku i zapisz go,
alias idea='cd /opt/idea/bin && sudo ./idea.sh'
Wreszcie źródło ~/.bashrc
pliku,
source ~/.bashrc
Teraz możesz uruchomić /opt/idea/bin/idea.sh
plik bezpośrednio,
idea
Oprócz innych dobrych odpowiedzi, rozważ symlinkowanie ~/.local/bin
i dodanie tego katalogu do ŚCIEŻKI ( .bashrc
na przykład z poziomu twojego ). Ta metoda nie wymaga specjalnych uprawnień ( /usr/local/bin
na przykład w przypadku dowiązania symbolicznego ). W ten sposób możesz mieć standardową strukturę katalogów bez zalewania $ HOME. Przeczytaj więcej na ten temat na tych https://unix.stackexchange.com/ pytaniach:
Lub możesz po prostu użyć
nano ~/.bashrc
i dodaj
PATH=/full/path/to/file:"$PATH"
na końcu, a następnie zapisz i wyjdź. Następnie możesz po prostu wpisać nazwę pliku.
Śledziłem wszystkie odpowiedzi tutaj i w innych miejscach i tak niewielu nie wspomina, że może być konieczne WYLOGOWANIE, aby polecenie mogło w końcu zadziałać.
Podsumowując, szczególnie dla Xubuntu , ale także dla innych wariantów Debiana / Ubuntu , napisałem te proste instrukcje.
(w poniższych instrukcjach używamy katalogu ~ / bin , ponieważ jest to automatycznie miejsce, z którego te systemy operacyjne szukają poleceń. Zobacz tutaj :
# Open Terminal with Ctrl + Alt + T (or your system's own shortcut)
# You'll work in your home folder, no need to use sudo for any of this
cd # Go to home directory
mkdir -p bin # Create folder ~/bin if it doesn't exist
# Be careful not to type /bin, that's the bin folder in system root: /
sudo apt install nano # Skip this if you have Nano installed
nano bin/yournewcommand
# In Nano, type:
printf "Your new command works! \n" # \n means line break
# Ctrl+X To leave Nano
# Ctrl+Y To save the unsaved file
# Enter to confirm
chmod +x bin/yournewcommand
yournewcommand # If you just created the bin folder, this command might not yet work.
# You must now log out and log back in to make the bin folder noticed (I think)
yournewcommand # Now it works! (You can use Tab to autocomplete the command you're typing)
# If you add a second file/command, it should work without logging out (at least in my tests)