Zastanawiałem się, czy mógłbym tworzyć własne polecenia, jak gdybym miał wpisać „muzyka” w wierszu poleceń, mój komputer powinien się otworzyć i zacząć odtwarzać moją listę odtwarzania. VLC jest tylko przykładem, ale pytanie pozostaje.
Czy mogę tworzyć własne polecenia? Jeśli tak to jak?
command-line
harisibrahimkv
źródło
źródło
Odpowiedzi:
Tak - utwórz plik o nazwie muzyka i umieść w nim następujące elementy:
Następnie wpisz
chmod +x music
- powoduje to, że plik jest wykonywalny. Możesz teraz wpisać,./music
aby uruchomić ten skrypt.Dobrym pomysłem jest wpisanie
echo $PATH
i skopiowanie skryptu do jednego z tych katalogów. Sugeruję utworzenie$HOME/bin
i dodanie tego do ŚCIEŻKI za pomocą~/.bash_profile
lub~/.profile
. Można tego dokonać poprzez dodanie (do jednego z tych plików)export PATH="$HOME/bin:$PATH"
. Następnie musisz uruchomićsource .bash_profile
(zakładając, że umieścisz to w tym pliku), aby go ponownie załadować.Inną alternatywą byłoby dodanie polecenia, które chcesz uruchomić, jako alias bash. Możesz to zrobić, dodając następujące elementy do pliku o nazwie
.bash_aliases
w katalogu domowym:Uruchom
source ~/.bash_aliases
lub wyloguj się i zaloguj, a powinno działać :-)źródło
Najlepszym sposobem na to jest zmodyfikowanie (lub utworzenie) pliku wywołanego
.bash_aliases
w folderze domowym.Składnia jest dość prosta:
Za pomocą tego polecenia, jeśli wpiszesz
install
terminal, będzie on interpretowany jakosudo apt-get -y install
Jednak te polecenia nie będą działać nigdzie poza terminalem.
źródło
Każdy plik wykonywalny w katalogu na ścieżce może być „poleceniem”. Może to być skrypt, jak sugerowano w innych odpowiedziach, ale może to być także skompilowany program w dowolnym obsługiwanym języku, który znasz.
Aliasy też będą działały, ale są ograniczone, ponieważ są one „jednowierszowe”, dzięki czemu robienie z nimi czegoś skomplikowanego szybko generuje kod, który jest bardzo trudny do odczytania. Ponadto, ponieważ działają one w tym samym zakresie zmiennych, co powłoka, w której je wpisujesz, mogą łatwo wywoływać niezamierzone skutki uboczne, takie jak pozostawienie cię w innym katalogu lub pozostawienie zdefiniowanych zmiennych, które są potrzebne tylko przez zadanie, które wykonuje alias. (Oczywiście czasami możesz chcieć użyć aliasu właśnie dlatego, że ma on pożądane skutki uboczne).
Jeśli umieścisz nowe polecenia w katalogu na swojej ścieżce, można je znaleźć w powłoce i wykonać. Najczęstszym miejscem na ich umieszczenie jest $ HOME / bin. Jeśli ten katalog istnieje, często będzie automatycznie dodawany do Twojej ścieżki.
Podczas konfiguracji należy pamiętać o dwóch rzeczach: 1) Zazwyczaj najlepiej jest używać unikatowych nazw dla poleceń, które nie pasują do tych, które są już zdefiniowane w systemie. Dyskutuje się na ten temat, ale najważniejsze jest to, że znane komendy nie powinny dawać nieoczekiwanych rezultatów, jeśli ktoś inny używa twojego systemu, a przyzwyczajenie się do wspólnej komendy polegającej na wykonywaniu czegoś specjalnego może sprawić kłopoty podczas pracy na innym systemie gdzie nie jest tak zdefiniowane.
2) Możesz dodać $ HOME / bin na początku lub na końcu ścieżki (lub w dowolnym miejscu pomiędzy, ale zwykle nie jest to zrobione).
Dodanie go na początku ścieżki jest najwygodniejszym wyborem, ponieważ twoja wersja polecenia zawsze będzie tą, która wykonuje i zostanie znaleziona szybciej. Jest to również luka w zabezpieczeniach, ponieważ każdy, kto może uzyskać uprawnienia do zapisu na twoim $ HOME / bin (o wiele łatwiejsze niż uzyskanie dostępu do roota) może bardzo łatwo zastąpić popularne polecenia potencjalnie złośliwym kodem. Ponadto, jeśli kiedykolwiek będziesz musiał poprosić o pomoc kogoś, kto nie zna twojego systemu, to prawdopodobnie będzie on zaskoczony specjalnym zachowaniem niestandardowych poleceń, chyba że poświęcisz dużo dodatkowego wysiłku na wyjaśnienie wszystkiego zadając twoje pytanie.
Dodanie go na końcu instrukcji path jest trochę bezpieczniejsze, ponieważ każde polecenie o tej samej nazwie, co polecenie, które już znajduje się na ścieżce, zostanie znalezione jako pierwsze i uruchomione - a wszystko inne, co zależy od tego polecenia działającego zgodnie z oczekiwaniami, będzie nadal działać .
Aby tego uniknąć (kosztem dodatkowego wpisywania), możesz również umieścić swoje polecenie w katalogu, który nie znajduje się na twojej ścieżce, więc prawie nigdy nie zostanie uruchomiony niezamierzenie, ponieważ będziesz musiał wpisać pełną nazwę ścieżki do Uruchom.
Podobnie jak większość rzeczy w Linuksie, istnieje wiele sposobów tworzenia i używania nowych poleceń, a każda z nich ma swoje zalety i ograniczenia.
źródło