Zacznę od małej opowiastki motywacyjnej.

Oto siedzę sobie przed laptopem. Na ekranie mam system na bazie Linuksa. Tym razem to PorteuX, nie mój codzienny Mint.
Ale wersja nie ma aż takiego znaczenia. Próbowałem różnych Linuksów i wszystkie służyły mi dzielnie, nie pokazując ani jednej reklamy. Praca na nich to spokój i zen.

Na głównym pasku (który u mnie jest paskiem dolnym) znajduje się ikona systemu. Kiedy ją kliknę, to rozwinie się menu.
Lista dostępnych programów. Pogrupowanych logicznie, w tematyczne zakładki. Biuro, Akcesoria i tak dalej.

Jednym z dostępnych programów jest często przeglądarka. Firefox. Względnie prywatny, choć od pewnego czasu, niestety, idący ku gorszemu.

Wśród programów jest również osławiony Terminal, zwany konsolą. Czarne pole, w które wpisuje się tekst, żeby poczuć się panem swojego komputera.

Osobiście nie mam nic przeciwko klikaniu, ale czasem lubię „przykonsolić”. Mógłbym na przykład wpisać takie hakierskie polecenie:

firefox

Gdy to wpiszę i nacisnę Enter, to osiągnę ten sam efekt, co w przypadku kliknięcia Firefoksa przez menu. Program się uruchomi.

Pod każdym programem z menu kryje się zazwyczaj coś konsolowego.

W tym przypadku komenda to po prostu nazwa programu, tyle że zapisana małymi literami. Ale warto wiedzieć, że nie jest to zasada uniwersalna; nazwy konsolowe nie muszą odpowiadać tym z menu.

W tym miejscu budzi się moja ciekawość. „A jak ustalić, jaka komenda odpowiada czemuś, co widzę w menu?”. Na przykład programowi od robienia zrzutów (zdjęć) ekranu?
Na to pytanie odpowiem w tym wpisie. Zapraszam!

Rozwiązanie

Należy kliknąć interesujący nas program z menu prawym przyciskiem myszy. Wyświetli się wtedy małe menu kontekstowe z opcjami.

Czasem w tym menu będzie opcja Właściwości. Jeśli tak, to należy ją kliknąć.

A jeśli nie widać takiej opcji?

Brak opcji to nic niepokojącego, po prostu jest tylko na niektórych Linuksach.
Jeśli jej nie ma, to należy wybrać ze wspomnianego wyżej menu opcję Dodaj do pulpitu.

Zrzut ekranu pokazujący menu kontekstowe nad jedną z pozycji z menu głównego. Wyróżnioną opcją jest umieszczenie skrótu na pulpicie.

Tu akurat widok z Porteuksa po angielsku. Jeśli kogoś odstrasza szata graficzna, to uspokoję, że Mint jest ładniejszy.

Następnie należy najechać kursorem na świeżo dodaną ikonkę z pulpitu i nacisnąć prawy przycisk myszy.
Pojawi się menu, w którym już prawie na pewno będzie coś związanego z właściwościami. Można to kliknąć.

Zrzut ekranu pokazujący okno z informacjami na temat programu, takimi jak nazwa i opis. Jedno z pól, podpisane jako 'command', zawiera polecenie konsolowe.

Ciekawostka

Utworzony na pulpicie skrót prowadzi tak naprawdę do pliku z rozszerzeniem .desktop, tak zwanego „uruchamiacza” (ang. launcher).
Dałoby się go otworzyć w Notatniku i znaleźć tam szereg ciekawych informacji. Ale to temat na osobną opowieść.

W ten czy inny sposób wyświetlą się właściwości wybranego programu. Wśród nich szczególnie ciekawa jest ta dotycząca polecenia (ang. command), wyróżniona na obrazku:

Zrzut ekranu pokazujące menu kontekstowe nad ikoną z pulpitu oraz wyróżnioną opcję 'Właściwości'.

Widać tu, że program z mojego przykładu (obecny w menu pod nazwą Take Screenshot) nosi w konsoli nazwę mate-screenshot i jest uruchamiany z parametrem ‑‑interactive.

Całą widoczną tu komendę mógłbym sobie zaznaczyć, skopiować i wkleić do konsoli (domyślnie przez Ctrl+Shift+V!), po czym wykonać, naciskając Enter.
Efekt byłby dokładnie taki sam jak przy kliknięciu ikony w menu.

Uwaga

Czasem komenda zawiera jakąś zmienną. Literę z procentem, na przykład %U.
To ogólne oznaczenie, dzięki któremu program może otwierać pliki (choćby przez menu kontekstowe i opcję Otwórz za pomocą).
Taka komenda nie zadziała w konsoli – przed użyciem należy z niej usunąć zmienną. Albo wpisać zamiast niej ścieżkę i nazwę jakiegoś konkretnego pliku.

Świat możliwości

Znając nazwę konsolową programu, można czasem odkryć możliwości, o jakie go nie podejrzewaliśmy podczas codziennego korzystania.

Pierwszym krokiem po poznaniu nazwy konsolowej może być próba wyświetlenia mikroinstrukcji, jaką posiada każdy szanujący się program konsolowy. Dla programu z przykładu wyżej:

mate-screenshot -h

Wyświetli się omówienie różnych dostępnych opcji. Po lewej stronie argumenty (opcje wpływające na działanie programu). Po prawej opis ich działania.

Widać na przykład, że w przypadku mojego programu argument -c pozwala wysłać zrobionego screena prosto do systemowego schowka, z pominięciem jakiegokolwiek menu graficznego:

mate-screenshot -c

A to już przydatna właściwość, do której bym nie dotarł, korzystając z programu w sposób domyślny! Wciśnięcie klawisza PrintScreen zawsze prowadzi bowiem do pojawienia się graficznego okienka.

Co dalej? Jeśli często przenoszę w schowku screeny, to mógłbym zaoszczędzić sobie czasu, podpinając komendę wyżej pod nowy skrót klawiszowy.

Albo może… dodać jeszcze parę linijek, żeby otrzymać pełnoprawny skrypt konsolowy?

mate-screenshot -c
xclip -selection clipboard -target image/png -out > /tmp/img.png
gimp /tmp/img.png

W tym wypadku program numer jeden wykonuje screena i wrzuca go do schowka. Kolejny program (xclip) go z tego schowka wyciąga i zapisuje do tymczasowego pliku. Program numer trzy – GIMP od grafiki – otwiera ten plik w celu dalszej obróbki.

Stworzony skrypt można lekko dopracować (włączyć jedną opcję i umieścić go w odpowiednim folderze), zyskując przydatne narzędzie, które można wezwać z dowolnej części systemu. Albo nawet podpiąć pod skrót klawiszowy.

A to tylko jedna z wielu możliwości. Ogranicza nas jedynie nasza wyobraźnia… No i znajomość komend kryjących się pod czytelnymi nazwami.
Ale to drugie, mam nadzieję, umiesz już sprawdzić po lekturze wpisu :wink:

Słowo na koniec

To mit, że na Linuksie trzeba używać konsoli. Na wielu popularniejszych swobodnie można jej uniknąć.

Ale kiedy raz się pozna jej możliwości, to trudno wrócić do klikania menu. Stąd się biorą ci różni ludzie na forach, zawsze podsuwający konsolkę jako rozwiązanie. Oni po prostu wsiąkli. Trochę ich rozumiem, choć ciągłe konsolowe rady powielają stereotyp.

Ja z kolei stoję w rozkroku między światami i lubię tłumaczyć z konsolowego na ludzki.

Podobne wpisy

Jeśli chcesz poznać więcej podstaw Linuksa, zaserwowanych w podobny sposób jak tutaj, to zapraszam na przykład do wpisu o włączaniu języka polskiego na Mincie.
Albo do wpisu na temat zdobywania czcionek z Windowsa. Zawarte tam rady pozwolą na przykład używać Comic Sansa w programie Libre Office.