Wrzucenie programu/skryptu do /usr/bin

Witam,
zrobiłem testowy skrypt bash’a z “echo test”. Dodałem permisje do uruchmiania i mogę go odpalić z ./test123.
Chcę aby on się uruchamiał po wpisaniu po prostu komendy test123 w terminalu. Wiem, że można dodać albo $PATH do /etc/profile albo w pliku .bashrc dodać alias test123 = “echo test”, aczkolwiek chciałbym zainstalować to jak pakiet do folderu /usr/bin. W jaki sposób tego dokonać? Istniejące tam pliki są skompilowane, więc wrzucenie czystego pliku “test123” do tego folderu raczej nie jest prawidłową opcją (chociaż działa). Z czego mam skorzystać aby przerobić ten mój skrypt w paczkę tak jak wszystkie inne w folderze /usr/bin ?

dodaj alias lub

wszelkie swoje skrypty etc. dodawaj do /usr/local/bin/

tylko że nazwa powinna być test123.sh i wtedy po wpisaniu test123.sh zostanie wykonany


ja tak mam porobione i albo odpalam za pomocą alias lub nazwa skryptu… i działa

Nie koniecznie, plik może być bez .sh, wymagana będzie jednak deklaracja #!/bin/bash :slight_smile:

może o ile skrypt nie ma podobnej nazwy w systemie :wink:

ja korzystam z #!/bin/sh bo z bash mało co mam swojego :wink:

Dokładnie, o ile nie ma podobnej nazwy.
No tak jest sh, bash, zsh etc, ogólnie chodziło o deklarację powłoki :slight_smile:

nawet jak siedziałem na bash na samym początku ( dawno temu ) to wszystkie swoje skrypty miałem z
#!/bin/sh i tak mi zostało że wszystkie swoje skrypty w nazwie mają .sh odróżniają się od reszty :wink:

@robotox1 -> w /bin jest mnóstwo różnych plików: binarki, skrypty, linki, …
Jeżeli chodzi o ‘prywatne’ skrypty, to spotkałem się z dwiema wiodącymi szkołami:

  • wrzucać do /bin (/usr/bin);
  • dopisać do ścieżki wyszukiwania lokalizację, w której skrypty leżą.

Ja wybrałem - po lekturze, doświadczeniach, rozmowach i medytacjach - trzecią drogę. Mam w swoim profilowym folderze katalog /bin, w którym trzymam całe swoje ‘prywatne oprogramowanie’ (pozasystemowe, takie którym ‘ręcznie’ zarządzam), w tym skrypty i tworzę do nich link’i w /bin.

@LinGruby -> bash jest wstecznie kompatybilny z sh - prawie w 100% - więc większość skryptów sh wykonają się w bash’u.

tak jest sh kompatybilny bash

ale nie po to jest wspomniany /usr/local/ żeby był pusty tylko po to coby tam wrzucać swoje rzeczy tego się nauczyłem w 2007 roku i to stosuję nie robiąc śmietnika swoimi skryptami etc. itp. w systemie

a wspomniany przez Ciebie /bin jest skrótem do /usr/bin i jest związany czysto z systemem

W najbliższych latach należy spodziewać się zmian w Filesystem Hierarchy Standard albo przynajmniej poważnej dyskusji. Niewiele dystrybucji stosuje się ściśle do referencyjnej struktury. Przykładem jest Manjaro, które (jak wiele innych) trzyma pliki w ‘zjednoczonych’ katalogach:

/usr/bin/
/usr/lib/

linkując, w ramach zgodności, do:

/bin/
/sbin/
/lib/

Użycie /usr/local/ jest zauważalne po zastosowaniu mikroskopu elektronowego.
Nie wspomnę o dystrybucjach, które radykalnie zrywają z FHS, stosując własne rozwiązania. Nihil stałego sub sole.
Ale, to temat na osobny wątek.

no zwłaszcza w Manjaroi3 gdzie wszystkie skrypty co do I3wm ( blokada itp. ) są własnie w /usr/local/bin tak było w

manjaro-i3-17.0-stable-x86_64.iso

a nie sądzę coby się coś zmieniło :wink: acz nie śledzę już wydań Bernhard’a

Chyba się zmienia, bo obecnie w Manjaroi3 w /usr/local/bin mam tylko:

lightdm-settings xflock4

2 posts were merged into an existing topic: Chcę nauczyć się programować