Nowe posty

Autor Wątek: Jak zrobić "skrót" do programu  (Przeczytany 4657 razy)

Offline pavbaranov

  • Users
  • Guru
  • *****
  • Wiadomości: 878
    • Zobacz profil
Odp: Jak zrobić "skrót" do programu
« Odpowiedź #15 dnia: 2018-02-26, 11:58:36 »
Taki lekki OFF-TOP, ale jednak na kanwie.
Na początek muszę zrobić drugi :) @Zdzisław Knopp - wprawdzie posłużysz tu jako przykład, ale to co napiszę, to nic osobistego.

Bezpieczeństwo itd. - to sprawy absolutnie oczywiste. Dla świadomego użytkownika. Weźmy jednak pod uwagę, kto zadaje nam pytanie. Akurat Zdzisław jest przykładem totalnego świeżaka, który po prostu linuksa (a nie wiem, czy jakikolwiek inny system) nie zna. Uczy się dopiero jego i to nie tylko po omacku, nie tylko nie sięgając po materiały źródłowe (aczkolwiek wiem, że w przypadku Minta to trudne, bo... ich nie ma :)), to jeszcze bardzo nieuważnym (skoro nie dostrzega tego, co jakiś program mu nawet podpowiada).
Obowiązkiem zatem każdej osoby, która chce mu pomóc winno dać mu taką poradę, która w jak najmniejszym stopniu będzie ingerować w system. Jeśli tylko istnieje jakieś rozwiązanie, które ogranicza się do przestrzeni jego użytkownika, to takie winno zostać mu podane. Inaczej, za chwilę, jego Mint będzie miał z Minta paczki i repozytoria. Oczywiście można i taki system utrzymywać, ale trzeba być takiego systemu świadomym. Zdzisław nie jest i tu zaczyna się podstawowa kwestia i zabawa.

Mniejsza o to, czy utworzy sobie "skrót" (w jego rozumieniu) do programu w postaci aliasu, czy w postaci skryptu. Z pewnego punktu widzenia na jedno wychodzi. Niemniej jednak teraz zrobię to, co być może powinienem na samym początku odpowiadając w tym wątku.

@Zdzisław Knopp - Pamiętaj, że ów "skrót" (jak go rozumiesz) jest pewną ingerencją w system. Piszesz, że chciałbyś by po wpisaniu "l" system wykonał "ls -l". Ok. Wszystko pięknie i ładnie, ale... (to co poniżej, to jedynie przykład).
To jest prawdopodobnie bezpieczne, bowiem być może nie istnieje jakiś program, który masz/możesz mieć zainstalowany, który wykonywałby się poprzez wpisanie samej literki "l". Zwróć jednak uwagę, że w tym momencie dokonałeś pewnej ingerencji. Jeśli zrobiłeś to tak jak ktoś tu proponował w /usr/bin, czy potem w /usr/local/bin, to owe "Twoje" "l" znane jest już całemu systemowi, wszystkim użytkownikom. Jeśli teraz zainstalujesz jakiś program, który będzie się wykonywać w taki sam sposób, to które z owych "l" ma zostać wykonane? To "Twoje", czy to, które zostało dostarczone w paczce?

Dobrymi zasadami tworzenia własnych rozwiązań tego typu w systemie są:
- stwórz taką nazwę, która jest dla Ciebie łatwa do zapamiętania, ale raczej nie przyjdzie do głowy komuś innemu,
- sprawdź, czy jakikolwiek inny program w systemie nie ma takiej nazwy - nazwa musi być absolutnie jednoznaczna,
- umieść takie rozwiązanie wyłącznie w sposób umożliwiający korzystanie z niego przez Ciebie rozumianego jako użytkownik systemu; żaden inny użytkownik (nawet nieistniejący!) nie powinien z niego korzystać, chyba, że jesteś administratorem takiego systemu i doskonale wiesz co robisz i dlaczego,
- pamiętaj, że od chwili zastosowania swojego rozwiązania w systemie, inny program, który będzie się chciał odwołać do programu o takiej samej nazwie, jaką właśnie utworzyłeś, to wykona Twój program (coś tu zakręciłem, ale chyba wiadomo o co chodzi); jeśli np. (trywialne) Twoje rozwiązanie będzie polegać na np. "podmienieniu" cp przez powiedzmy cp -r, to od tej chwili każde wywołanie cp dokona przekopiowania wraz z podkatalogami, czy tego chcesz, czy nie,
- jeśli Twoje rozwiązanie to aliasy, to umieszczaj je wyłącznie w ~/.bashrc, a sam plik ~/.bashrc w wersji "nieruszonej" zachowaj w kopii (choć jego skasowanie winno spowodować odwtorzenie w wersji "oryginalnej" dla danej dystrybucji),
- jeśli to skrypt, to trzymaj w jednym, określonym miejscu (moja sugestia to ~/bin, ale możesz dać cokolwiek innego; jeśli ma być widoczne - dodaj to PATH),
- jeśli po dokonanej przez Ciebie zmianie system zacznie zachowywać się nieobliczalnie, to zastanów się, czy nie jest to spowodowane ową Twoją ingerencją; w pierwszej kolejności przywróć "ustawienia fabryczne" :),
I na koniec... Tak patrzę na tę klawiaturę, którą się posługuję i dostrzegam sporą ilość możliwości. Czy aby nie lepiej zamiast aliasów, czy skryptów dostępnych ogólnie, nie przypisać jakiejś kombinacji klawiszy (tak, znów trzeba sprawdzić, czy jest ona "wolna") tego, co chcesz?

prezes.cc

  • Gość
Odp: Jak zrobić "skrót" do programu
« Odpowiedź #16 dnia: 2018-02-26, 14:53:19 »
Uff, ale lektura ;). Postanowiłem skorzystać z Twojego rozwiązania i nie robić aliasów ani skryptów. Zostawie wszystko jak jest. Za długo pielęgnowałem system, żeby go teraz rozwalić.

Offline pavbaranov

  • Users
  • Guru
  • *****
  • Wiadomości: 878
    • Zobacz profil
Odp: Jak zrobić "skrót" do programu
« Odpowiedź #17 dnia: 2018-02-26, 15:19:34 »
Nie - nie rozwalisz systemu, jeśli zmiany wprowadzasz sensownie.
Popatrz sobie na fragment mojego ~/.bashrc (nie nadaje się - przynajmniej w części dla Ciebie po to inny system):
# Moje aliasy:
alias Syu='sudo pacman -Syu'
alias Rcns='sudo pacman -Rcns'
alias update-grub='sudo grub-mkconfig -o /boot/grub/grub.cfg'
alias mirror='sudo reflector --verbose --latest 5 --sort rate --save /etc/pacman.d/mirrorlist'
alias KDEinfo='qdbus org.kde.KWin /KWin supportInformation'
(nie mówię, że to rozwiązanie najlepsze, jedyne - po prostu wskazuję jak może to wyglądać):
Syu, czy Rcns - tak nazywających się binarek nie dostarcza żadna paczka. Spokojnie zatem mogę zrobić taki alias. Jednocześnie dla mnie jest bardzo czytelne (to fragment polecenia: pacman -Syu lub pacman -Rcns). Podwójnie zatem jest ok: raz - rozwiązanie funkcjonuje wyłącznie na moim koncie, dwa - brak obawy, że jakaś paczka to zdubluje. Podobnie np. w przypadku KDEinfo. Nie ma takiej obawy. Dwa następne wymagają odmiennego potraktowania. Jeśli chodzi o "mirror" - cóż - tu w istocie nie mogę wykluczyć, że jakaś paczka mogłaby dostarczyć tak nazywającej się binarki. Sprawdziłem jednak - nie mam w systemie, zatem może być. Przynajmniej do chwili, w której nie zainstaluję czegoś, co dostarczy /usr/bin/mirror. No i słowo odrębne, czyli update-grub (tak, wiem w AUR jest paczka, która instaluje taki skrypt, jednakże nie jest on mi potrzebny, a ze względu na to, że jest w AUR nie obawiam się, że jakaś paczka instalowana z repozytorium zainstaluje mi taką zależność; to, co buduję z AUR jest natomiast przeze mnie wnikliwie przeglądane). W moim systemie zatem nie ma czegoś takiego jak update-grub - mogę bezpiecznie użyć takiego aliasu. Inaczej sprawa wygląda z Mintem, który taką paczkę dostarcza (nie powiem, czy obecnie to update-grub, czy update-grub2) - ustawienie takiego aliasu byłoby zatem bez sensu.

Jeśli zatem zrobisz z głową, to szanse, że coś sknocisz są minimalne. Nawet jeśli uda Ci się sknocić, to całość wprowadzanych zmian masz w jednym pliku (~/.bashrc), do którego masz dość łatwy dostęp nawet gdy coś w nim sknocisz. Jeśli wszystkie aliasy będziesz miał w jednym miejscu tego pliku to łatwo się tu połapiesz i... wszystko masz czytelne. Przy czym aliasy nadają się na właśnie jakieś skróty dłuższych poleceń. Musisz jednak pamiętać, by nie zastąpić polecenia systemowego. Skrypty - wg mnie - do bardziej zaawansowanego użytku i jeśli już wprowadzane do systemu (czyli nie w /home, a umieszczane w katalogach systemowych), to bezwzględnie za pomocą paczki, którą ich menedżer będzie mógł zarejestrować (tak wiem, w przypadku deb to droga przez mękę, choć o ile pamiętam, to był jakiś programik, który ze skryptów robił nie tylko deb, ale nawet i przetwarzał taki skrypt do binarki).
Jeśli w moim przykładzie, jako alias dałbym coś takiego:
alias pacman='sudo pacman -Rcns'
To wywołanie wówczas systemowej komendy
pacman -S program
zwróci informację:
błąd:  tylko jedna operacja może być użyta na raz
Łatwo zapomnieć o takim "cudownym" aliasie, a przedstawiając na jakimś forum taki "problem" spowodujesz jedynie konsternację innych użytkowników, bowiem mało kto wpadnie na to, że swoim aliasem podmieniłeś polecenie systemowe i to powoduje jego wadliwe działanie.

Podsumowując: jeśli wiesz co robisz - krzywdy sobie nie zrobisz. Ważne by wiedzieć jak i co.

Offline marcin'82

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 402
    • Zobacz profil
Odp: Jak zrobić "skrót" do programu
« Odpowiedź #18 dnia: 2018-02-26, 17:54:32 »
Cytuj
Aktywna powłoka bash , więc --> ~/.bashrc ( ewentualnie dla root /root/.bashrc , a nie żadne /etc ! ponieważ przy aktualizacji system nadpisze plik )

Nie nadpisze, a przynajmniej nie powinien, bo wtedy koszmarem byłoby wprowadzenie modyfikacji globalnie dla wszystkich użytkowników systemu.

W tym konkrentym przypadku dopisanie zmian do /etc/bash.bashrc jest bezpieczne i nie zostanie utracone przy aktualizacji, o co dba system pakietowania:
%config(noreplace) /etc/bashrc   ### Fedora
backup=(etc/bash.bash{rc,_logout} etc/skel/.bash{rc,_profile,_logout})  ### Arch Linux

W przypadku systemu Debian i "zstępnych" system pakietowania automatycznie oznacza pliki w lokalizacji /etc/* jako konfiguracyjne i przy aktualizacji porównuje plik lokalny z plikiem dostarczonym w pakiecie, a w razie różnicy pyta co zrobić.

Zdzichu został przestraszony (czasami się przydaje), zbombardowany informacjami i uwrażliwiony ... "Miej świadomość" jak śpiewa Kazik :D
marcin82

raczyk

  • Gość
Odp: Jak zrobić "skrót" do programu
« Odpowiedź #19 dnia: 2018-02-26, 18:19:13 »
#
« Ostatnia zmiana: 2018-02-28, 13:35:09 wysłana przez raczyk »

Offline pavbaranov

  • Users
  • Guru
  • *****
  • Wiadomości: 878
    • Zobacz profil
Odp: Jak zrobić "skrót" do programu
« Odpowiedź #20 dnia: 2018-02-26, 20:29:40 »
A ja wybrałem GNU/Linux bo jest to oprogramowanie do swobodnego działania i nie rozumiem dlaczego jako początkujący użytkownik mam nie mieć wolności modyfikowania wedle własnego uznania.
Cóż i jeśli tego nie rozumiesz, to... w zasadzie nie powinieneś używać jakiegokolwiek systemu z linuksem na czele.

A zostawienie wszystkiego tak jak jest bo działa i jest ok, to niestety myślenie typowo MS - myślenie komercyjne - nie dotykaj bo zepsujesz! Nie ruszaj bo jest jakaś polityka... W Linux nie ma żadnej polityki jest wolność.
NIe, to nie żadna polityka i nie myślenie MS. To rozsądek.
Pierwsze to nie "wolność", a absolutnie proste: you known your system! Dopiero jak poznasz, to możesz cokolwiek - a i to ostrożnie - robić. I to na własną odpowiedzialność. Jak zaczniesz cokolwiek, komukolwiek radzić, to musisz być tego rozwiązania na 100% pewny, a rozwiązanie sprawdzone. Innymi słowy obowiązuje stara, lekarska zasada: primum non facere. Właśnie dlatego, że linux daje taką wolność.

Sorry, ale nie wytrzymałem.

Offline mackeire

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 490
    • Zobacz profil
Odp: Jak zrobić "skrót" do programu
« Odpowiedź #21 dnia: 2018-02-27, 13:06:38 »
nie mylmy wolności z anarchią ;)

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2757
  • 1709
    • Zobacz profil
Odp: Jak zrobić "skrót" do programu
« Odpowiedź #22 dnia: 2018-02-27, 22:36:26 »
Odnośnie wolności, trochę chaotycznie ...
[ Po za tematem o aliasach. ]

Jeżeli ktoś współdzieli z kimś np. sprzęt komputerowy...
Często się spotykam z osobami które czegoś nie potrafią czegoś, bo
- matka , ojciec, starszy brat, albo siostra za nich robiły
- albo nie potrafią, boją się i nie mogą bo im się ogranicza dostęp
- albo im się nie chce zgłębiać wiedzy.

W przypadku dwóch pierwszych grup ludzi,
jeżeli jest potrzeba im udostępnienia pewnych uprawnień, to po prostu trzeba ich najpierw nauczyć.
Tłumaczenie " Nie dam, bo nie potrafią. " w tym przypadku jest głupie,
no chyba, że ktoś jest nie odpowiedzialny kompletnie i ma wszystko gdzieś, i nie można mu pozwolić.

Przysłowia mówią
Cytuj
" Najlepiej jest uczyć się na cudzych błędach "
oraz
Cytuj
" Trening czyni mistrza. "

Jak jest w przypadku rozwiązań produkcyjnych ?
Przynajmniej w teorii ...
Jest testowane np. na systemach wirtualnych lub testowym sprzęcie.
Po pomyślnym przejściu testu, przechodzi się do prawdziwego wdrażania zmian
np. aktualizacji systemu.

Ograniczenia / polityka bezpieczeństwa
Są raczej zaleceniami, ponieważ są osoby które potrzebują przetestować czy da się zniszczyć system,
lub go poświęcić kosztem jego zniszczenia.
Ale należy  wspominać o zagrożeniach, by być świadomym zagrożenia.

Mądrości, przysłowia nie w każdej sytuacji się sprawdzają, ale chciałem jedno przedstawić
Cytuj
Jeśli znasz siebie i swego wroga, przetrwasz pomyślnie sto bitew. Jeśli nie poznasz swego wroga,
 lecz poznasz siebie, jedną bitwę wygrasz, a drugą przegrasz.
 Jeśli nie znasz ni siebie, ni wroga, każda potyczka będzie dla Ciebie zagrożeniem.

Ograniczenia licencyjne
Nie podlega to dyskusji. Używając jakiś program innej osoby należy się z nią zapoznać i jej przestrzegać,
jeśli chcemy z innymi dobrze żyć i być uczciwi.

Ograniczenia kierowane przez zasady, reguły, standardy.
To są raczej zalecenia, a nie ograniczenia.
Czyli są to wspólnie( lub przez przedstawicieli ) ustalone, przyjęte jakieś zasady dla wspólnego dobra,
by łatwiej nam się żyło, łatwiej można było coś odnaleźć lub z innych powodów.
W Linuxie najczęsciej się mówi o
1. Linux Standard Base (LSB) http://refspecs.linuxfoundation.org/lsb.shtml
2. Filesystem Hierarchy Standard (FHS) http://refspecs.linuxfoundation.org/fhs.shtml
3. Freedesktop Specifications (FS) https://www.freedesktop.org/wiki/Specifications/

Dystrybucje Linuxa ( niektóre ), tworzą wiki, dokumentację, poradniki
z którymi początkujący użytkownik może się zapoznać w celu lepszego poznania systemu.

Ponieważ ludzie bywają omylni i nie tylko,
niedoskonałość ludzką i z nimi związane niedoskonałe rzeczy, należy brać także pod uwagę.
« Ostatnia zmiana: 2018-02-27, 22:46:55 wysłana przez 1709 »
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

prezes.cc

  • Gość
Odp: Jak zrobić "skrót" do programu
« Odpowiedź #23 dnia: 2018-03-03, 11:38:18 »
Cytuj
Jeśli znasz siebie i swego wroga, przetrwasz pomyślnie sto bitew. Jeśli nie poznasz swego wroga,
 lecz poznasz siebie, jedną bitwę wygrasz, a drugą przegrasz.
 Jeśli nie znasz ni siebie, ni wroga, każda potyczka będzie dla Ciebie zagrożeniem.

Bardzo mądre powiedzenie, o którym wspomniano w książce Sztuka wojny Sun Tzu i Sun Pina.