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 fileplik wykonywalny:
chmod +x /full/path/to/your/file
Teraz powinieneś być w stanie uruchomić name_of_new_commandw dowolnym momencie w swoim terminalu.
Pamiętaj, że jest to dobre rozwiązanie tylko do użytku domowego z Linuksem.
/usr/local/bintym miejscu dowiązania symbolicznego do skryptu w prywatnym folderze domowym, na przykład /home/jack/myscript.sh, ponieważ tylko użytkownik jackzwykle 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 ~/binfolderze.
Możesz dodać /opt/idea/bindo swojej PATHzmiennej:
PATH=/opt/idea/bin:"$PATH"
Następnie możesz uruchomić go w prosty sposób idea.sh.
Prawdopodobnie chcesz dodać tę linię do swojego ~/.bashrcpliku.
idea, musisz utworzyć link lub alias o tej nazwie wskazującej na idea.shskrypt.
idea.shSkrypt 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 $PATHautomatycznie dodany do twojego . Następnie dzwonisz bezpośrednio file:
$ file
(Jednak zły wybór nazwy, spróbuj nazwać to mniej ogólną).
filedo 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 ~/binsiebie.
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 .desktoprozszerzeniem 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 binddo tego polecenia. Otwórz ~/.bashrcplik 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ę \eprzed dodaniem skrótu, np wymiany ^[[24~z \e[24~.
Możemy również uruchomić /opt/idea/bin/idea.shplik bezpośrednio za pomocąbash_aliases
Otwórz ~/.bashrcplik, 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_aliasesplik,
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 ~/.bashrcpliku,
source ~/.bashrc
Teraz możesz uruchomić /opt/idea/bin/idea.shplik bezpośrednio,
idea
Oprócz innych dobrych odpowiedzi, rozważ symlinkowanie ~/.local/bini dodanie tego katalogu do ŚCIEŻKI ( .bashrcna przykład z poziomu twojego ). Ta metoda nie wymaga specjalnych uprawnień ( /usr/local/binna 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)