Linux komendy i polecenia, konsola



Konsola (terminal) to „serce” każdego systemu Linux, jest to główne narzędzie, przy pomocy którego sterujemy naszym systemem operacyjnym. W poniższym artykule chciałbym przedstawić wszystkie najważniejsze polecenia oraz ich praktyczne przykłady, z jakimi spotkałem się podczas codziennej pracy z tym systemem. Jeśli chodzi o rodzaj używanej przez was dystrybucji, to nie ma ona znaczenia, w zasadzie 100% poleceń działa na wszystkich wersjach Linuxa (choć nie ukrywam że ja używam najpopularniejszego Ubuntu).

Zaczniemy od najbardziej podstawowych, bez których praca w systemie jest niemożliwa, a skończymy na tych bardziej zaawansowanych.

Skróty klawiszowe

Pracując w konsoli przyda wam się kilka skrótów klawiszowych.

ctrl+shift+C – kopiowanie tekstu z konsoli

ctrl+shift+V - wklejanie tekstu do konsoli, np. czytacie jakiś poradnik w sieci o linuxie (np. ten :) ), kopiujecie z przeglądarki polecenie tak jak zwykle ctrl+c, a w konsoli wklejacie przez ctrl+shift+v

ctrl+C – ten skrót przerywa wykonywanie się skryptu, lub jakiegokolwiek innego procesu, przydatne jak coś wpiszecie omyłkowo, albo jak coś się dłuży jak flaki z olejem

zakładki – używajcie zakładek w konsoli, jeżeli wykonywanie jakiejś komendy trwa długo, możecie kontynuować pracę w drugiej albo trzeciej zakładce

ctrl+shift+F – wyszukuje słowa z tekstu, który się do tej pory wyświetlił w konsoli

Poruszanie się po katalogach

Do poruszania się po katalogach służy polecenie cd, czyli zupełnie tak samo jak w starym DOS-ie. Uruchamiając konsolę, jest ona standardowo na początku w katalogu ~, co oznacza katalog domowy użytkownika, który jest obecnie zalogowany. Pełna ścieżka do katalogu, w którym się teraz znajdujemy to /home/qlwik (qlwik to moja nazwa użytkownika). Przejdźmy do katalogu Dokumenty:

cd Dokumenty

powinno się wyświetlić qlwik@qlwik:~/Dokumenty$

uwaga: wielkość liter w nazwach katalogów ma znaczenie!

jeżeli chcemy wrócić do katalogu niżej wpisujemy:

cd ..

zauważcie, że po cd jest spacja

Jeżeli znamy całą ścieżkę, do której chcemy wejść, to ją po prostu wpisujemy po poleceniu cd, czyli np.:

cd /home/qlwik/Dokumenty/Zdjęcia

wpisując całą ścieżkę, trzeba pamiętać wstawić na początku sybol katalogu głównego, czyli /

Czasami występują katalogi z spacją, aby było możliwe wejście do nich, należy całą ścieżkę katalogu umieścić w cudzysłowu, np.:

cd „/home/qlwik/.wine/drive_c/Program Files”

Do sprawnego poruszania się po katalogach potrzebne jest nam również polecenie:

ls

które wyświetla zawartość katalogu. Zwróćmy uwagę na kilka przydatnych opcji:

ls -l

wyświetla uprawnienia poszczególnych plików i katalogów.

ls -1

wyświetla zawartość katalogu w jednej kolumnie, uporządkowanej alfabetycznie, to polecenie jest szczególnie przydatne w połączeniu przekierowaniem wyjścia, czyli:

ls -1 > lista

polecenie to tworzy plik o nazwie lista, zawierającym całą zawartość katalogu, jest to bardzo przydatne gdy w katalogu znajduje się np. kilka tysięcy plików, a nam jest potrzebny ich spis. Ciekawą opcją jest również:

ls -R

które wyświetla nie tylko listę plików i katalogów, ale również pokazuje zawartość wszystkich podkatalogów. Natomiast, aby wyświetlić ukryte pliki i katalogi zaczynające się ktopką, należy użyć opcji a, czyli

ls -a

Kopiowanie, usuwanie, przenoszenie i zmiana nazwy

Do kopiowania plików słóży polecenie cp, którego należy używać w następujący sposób:

cp /ścieżka_pliku_źródłowego /ścieżka_miejsca docelowego

poniżej przykład:

cp /home/qlwik/Dokumenty/dokument.doc /home/qlwik/Dokumenty/backup/

polecenie to skopiuje tylko jeden plik, jednak najczęściej będziemy używać do tego polecenia opcji -R umożliwiającej kopiowanie całych katalogów i ich zawartości, np.:

cp -R /home/qlwik/Dokumenty/backup /home/qlwik/Pulpit


Do usuwania plików i folderów służy polecenie rm,przykładowo:

rm dokument

usuwa plik o nazwie dokument z katalogu, w którym się znajdujemy, lub:

rm /home/qlwik/Dokumenty/dokument.doc

Natomiast, aby usunąć cały katalog, należy użyć polecenia rm -R, np:

rm -R /home/qlwik/Dokumenty/backup

Trzeba przy tym pamiętać, że mamy możliwość jedynie kasowania plików i katalogów, których jesteśmy właścicielami, lub tych które mają odpowiednie uprawnienia, ale o tym napiszę nieco dalej. proszę również zwrócić uwagę, że polecenie to jest bardzo „potężne”, ponieważ nie zwraca uwagi na to, czy kasuje jakieś wasze niepotrzebne pliki, czy też pliki systemowe, mając np uprawnienia administratora możemy jednym poleceniem usunąć samego Linuxa i całą jego zawartość, służy do tego polecenie:

rm -rf /

ale oczywiście nie polecam tego sprawdzać!

Przenoszenie plików i katalogów i zmiana nazwy to jedno i to samo polecenie , czyli mv, przykład:

mv /home/qlwik/Dokumenty/dokument.doc /home/qlwik/Dokumenty/backup/dokument.doc

podobnie wygląda zmiana nazwy tegoż pliku:

mv /home/qlwik/Dokumenty/dokument.doc /home/qlwik/Dokumenty/dokument2.doc

co nam zmieniło plik z dokument.doc na dokument2.doc

Jeśli chodzi o katalogi, to oczywiście używamy opcji -R, np.

mv -R /home/qlwik/Dokumenty/katalog1 /home/qlwik/Dokumenty/backup/

a zmiana nazwy katalogu wygląda tak:

mv -R /home/qlwik/Dokumenty/katalog1 /home/qlwik/Dokumenty/katalog2

Tworzenie katalogu odbywa się przez polecenie mkdir, np:

mkdir katalog1

a usuwamy go za pomocą rmrid, np.:

rmdir katalog1

Logowanie się jako admin

Aby wykonać większość prac na naszym systemie, potrzebne są nam do tego uprawnienia administratora, jednak aby się do niego zalogować potrzebne będzie nam hasło, zazwyczaj podawane podczas instalacji systemu. Aby się zalogować jako admin należy poprostu wpisać polecenie:

sudo su

a następnie podać hasło, proszę zauważyć, że w czasie wpisywania hasła nic się nie dzieje, tj. nie wyświetlają się nawet żadne gwiazdki itp. jest to normalne, a uniemożliwia ewentualne  odczytanie długości hasła przez osoby postronne. Aby powrócić do użytkownika, należy wpisać:

su nazwa_użytkownika

codzienna praca na konsoli jako admin może być niebezpieczna, ponieważ potencjalne złośliwe oprogramowanie ma wtedy pełen dostęp do naszego systemu. Jeżlei chcemy wykonać np. tylko jedno polecenie wymagające uprawnień admina, można skożystać z polecenia sudo, np.:

sudo rm -R /etc/samba/config

po czym podajemy hasło admina, dzięki temu nadal jesteśmy zalogowani jako użytkownik, a wykonaliśmy polecenie wymagające uprawnień admina.

Uprawnienia

Samo zagadnienie uprawnień wyjaśniłem w osobnym artykule, tutaj jedynie pokażę jak je zmieniać. Do zmiany uprawnień służy polecenie chmod, np. aby ustawić dostęp do pliku na poziomie 777 (pełen dostęp) należy użyć:

chmod 777 plik

należy przy tym pamiętać, że ustawienie uprawnień jest możliwe tyko jeżeli mamy do danego pliku pełen dostęp, dlatego też zazwyczaj ich ustawianie należy robić jako admin, np.:

sudo chmod 777 plik

Podobnie wygląda sytuacja ze zmianą właściciela, którą dokonujemy poleceniem chmod, otóż najlepiej ją wykonywać jako admin, np.:

sudo chmod qlwik:qlwik plik

pierwszy qlwik to nazwa użytkownika, a drugi qlwik to nazwa jego grupy.

Wyszukiwanie plików

Bardzo ciekawą i przydatną w codziennej pracy komendą jest grep. Za jej pomocą możemy znaleźć pliki zawierające w swojej zawartości określone wyrazy, np. załóżmy że nie pamiętamy gdzie wsadziliśmy plik z tekstem opisującym życie sikiratki, w takim wypadku przechodzimy do swojego katalogu domowego poleceniem cd ~ a następnie wpisujemy:

grep ‘sikiratka’ -r *

wyświetli nam się lista plików i ścieżki do nich, zawierających słowo sikoratka :)

Jeżeli natomiast chcemy znaleźć pliki po nazwie lub innych właściwościach, to należy użyć polecenia find, jednak część osób może mieć problemy z jego używaniem, ze względu na mnogość opcji. Najprostszym przykładem będzie:

find ~ -name *.jpg

w tym wypadku szukamy wszystkich plików jpg w katalogu domowym, jak więc łatwo zgadnąć składnia jest następująca:

find ścieżka_gdzie_ma_szukać -name szukanie_po_nazwie_pliku

inny przykład:

find /home/qlwik/Dokumenty -name dokument

natomiast jeżeli chcemy znaleźć katalog wpisujemy takie coś:

find /home/qlwik -type d -name katalog2

tak jak w windowsie funkcjonuje tutaj gwiazdka * która zastępuje dowolny ciąg znaków, lub ? zastępujący jeden dowolny znak. Polecenie find jest o wiele bardziej rozbudowane i posiada mnóstwo opcji, jednak podałem tylko tą, używaną w 95% przypadkach.

Dowiązania

Dowiązanie to w dużym uproszczeniu skrót to jakiegoś pliku, jednak jest on oczywiście maksymalnie rozbudowany, a jego utworzenie przyprawia o ból głowy :) Tak naprawdę nie jest tak źle, do jego tworzenia służy polecenie ln. Do czego może nam się to przydać? Np. instalując jave na kompie w katalogu /usr/lib/java chcemy aby była ona również widoczna przez naszą przeglądarkę firefox (piszę o tym w osobnym artykule), musimy stworzyć dowiązanie z jednego pliku w katalogu /usr/lib/java do katalogu zawierającego firefoxa, czyli np. /usr/lib/firefox, dokonujemy tego wpisując komendę:

cd /usr/lib/firefox

a następnie:

ln -s /usr/lib/java/jakiś_tam_plik

stworzy to w katalogu /usr/lib/firefox dowiązanie symboliczne do pliku /usr/lib/java/jakiś_tam_plik, co oznacza prawie to samo gdybyśmy ten plik tam skopiowali. Dowiązanie symboliczne jest więc czymś więcej niż skrótem z widowsa, ponieważ programy traktują je tak samo jak plik do którego ów skrót prowadzi, zamiast więc wszędzie kopiować wymagany plik, wystarczy zrobić dowiązanie symboliczne. Co ciekawe jest to „łagodniejsza” wersja dowiązania, gdyż istnieje jeszcze dowiązanie twarde (raczej już nie używane), które sprawia, że fizycznie na dysku jest tylko jeden plik, ale jego lokalizacja w strukturze katalogów może być w kilku miejscach. Nie ma sensu się w to wgłębiać bo i tak 99% z was się to nie przyda :)


Szukanie programu

Czasami zachodzi potrzeba odnalezienia miejsca, w którym jest zainstalowany jakiś program. Z pomocą przychodzi nam polecenie whereis, które bardzo dobrze wywiązuje się ze swojego zadania. Np. aby odnaleźć lokalizację naszej przeglądarki internetowej firefox wystarczy wpisać:

whereis firefox

wyświetli nam się lokalizacja pliku konfiguracyjnego, lokalizacja pliku wykonawczego oraz folder z samym programem. Do czego nam się to przyda? Np. jeżeli mamy 4 różne wersje przeglądarki firefox, a nie wiemy która jest obecnie używana, a chcemy w niej zainstalować jave. Zastosowań jest wiele. Dla mnie to polecenie jest bardzo ważne, ponieważ w czasie normalnej pracy z Linuxem używam go dość często.

Zmiana urządzenia wyjściowego, czyli strzałka >

Domyślnym sposobem wyświetlania wyników w Linuxie jest konsola, czyli np. jeżeli wpiszemy polecenie ls, aby wyświetlić pliki z obecnego katalogu, ich lista pokaże nam się na konsoli, jednak czasami jest to dość niewygodne. Czasami lepiej jest, aby wynik jakiegoś polecenia został zapisany do pliku, dzięki temu można ogarnąć duże wyniki działania, np. zawierające tysiące linijek tekstu. Załóżmy, że szukamy wszystkich zdjęć na kompie za pomocą polecenia find, jednak jest ich tak dużo, że na konsoli część wyników została obcięta. Tak samo np. wchodząc w niektóre systemowe katalogi linux i chcąc wyświetlić ich zawartość, liczba plików jest tak duża, że widać tylko wyniki od litery s, co w takim wypadku można zrobić? Można zapisać wyniki do pliku, a służy do tego właśnie niepozorna strzałka >, przykład:

ls > plik

stworzy nam plik o nazwie plik, w którym umieści zawartość katalogu w którym jesteśmy,

find / -name *.jpg > plik

stworzy nam plik o nazwie plik, zawierający listę wszystkich plików jpg znajdujących się na komputerze. Opcja ta jest bardzo przydatna przy pracy na dużej liczbie plików. Oczywiście istnieje dużo więcej opcji związanych ze zmianą urządzenia wyjściowego, linux może nam wyświetlić wynik działania polecenia nawet na naszym nocniku jeżeli sobie tego zażyczymy, jednak podany przykład będzie najczęściej używanym przez was w praktyce.

Ping i whois

Ping i whois są dość często przeze mnie używane, więc je pokrótce omówię.

Ping jest wszystkim znany z windowsa, i służy do wysyłania małych pakietów na podany adres IP, przydatny do badania niezbadanego :) Używamy go w następujący sposób:

ping -c 1 127.0.0.1

w tym wypadku pingujemy adres 127.0.0.1, należy zwrócić uwagę, że bez opcji -c 1 ping będzie nam pingował adres do u*ranej śmierci. Za pomocą programu możemy np. dowiedzieć się czy wogóle dany adres IP żyje, albo np. na jakim hostingu stoi jakaś strona www, co można sprawdzić wpisując np.:

ping -c 1 abclinux.com.pl

Polecenie whois wyświetla właściciela domeny, przydatne dla ludzi zajmującym się tymi sprawami:

whois abclinux.com.pl

domeny zarejestrowane na osoby prywatne nie pokazują właściciela, ale wskazują jaki jest „name serwer” domeny, przez co można szybko znaleźć hosting strony.

 

Edycja plików systemowych

Edycja plików należących do roota bywa dość uciążliwa, dlatego przedstawię sposób który sam wykorzystuję na codzień. Do tego celu używam programu mc, który jest prawie identyczny jak dosowy norton commander. Program ten posiadają wszystkie repozytoria, dlatego aby go zainstalować wystarczy wpisać (w Ubuntu) apt-get install mc.

Załóżmy, że chcemy edytować jakiś plik w folderze /etc, najpierw logujemy się jako admin (sudo su), następnie idziemy do danego folderu, cd /etc, i uruchamiamy mc (wpisując poprostu mc). Najeżdżamy na plik, który chcemy edytować, a następnie wciskamy F4. Po dokonaniu zmian w pliku zapisujemy plik (w przypadku edytora nano) kombinacją ctrl+o, enter, a następnie crtl+x. Zazwyczaj po zmianach w pliku konfiguracyjnym jakiejś usługi, należy ją potem zrestartować. Z programu mc wychodzimy wpisując polecenie exit.

Service

Przydatną komendą, szczególnie podczas instalacji zaawansowanych usług, jest komenda service. Wskazuje nam jakie usługi są obecnie wykonywane, potrafi je również włączać lub wyłączać. Zobaczmy jak to wygląda na przykładzie apache:

service apache2 status

pokazuje nam czy apache jest włączony, czy też nie

service apache2 start

oraz

service apache2 stop

włącza lub wyłącza daną usługę, natomiast aby zobaczyć statusy wszystkich usług wpisujemy:

service –status-all

Pipes – rurki

Rurki są niezwykle przydatne, ale tylko w bardziej skomplikowanych zadaniach. Aby zrozumieć funkcjonowanie rurek, trzeba najpierw wyjaśnić sobie jak działają wejścia i wyjścia poleceń w konsoli Linux. Na przykład, jeżeli chcemy wyszukać jakiś wyraz w konkretnym pliku, to posługujemy się poleceniem grep, tj:
grep ‘szukane_słowo’ < plik
wejściem jest tutaj plik poprzedzony strzałką <, wyjściem natomiast jest standardowo konsola, dlatego wynik wyświetli nam się na ekranie. Aby wynik zapisać do pliku posłużymy się strzałką >, tj:
grep ‘szukane_słowo’ < plik > plik2
wynik zapisze się do plik2. W ten sposób można podawać wejście i wyjście dla każdej komendy linux.
Bardzo często do wykonania jakichś operacji używa się kilku komend, aby uprościć taką procedurę stosujemy właśnie rurki, zobaczmy przykład. Załóżmy, że mam katalog z duża liczbą plików tekstowych, chcę je wszystkie połączyć w jeden plik a następnie zamienić wszystkie wyrazy „kture”, na „które”, normalnie robimy to tak:
cat * > plik #połączyliśmy wszystkie pliki w jeden o nazwie plik
replace kture które < plik > plik2 #tutaj zamieniliśmy słowo kture na które i zapisaliśmy wynik do plik2
Teraz wykorzystamy do tej operacji rurkę, wyglądała by ona tak:
cat * | replace kture które > plik
Wyjście polecenia cat stało się wejściem dla polecenia replace, dlatego nie trzeba było go podawać, na koniec tylko podaliśmy gdzie zapisać wynik operacji. Rurki baaardzo ułatwiają życie :)

Wskazane w powyższym artykule komendy są używane przeze mnie w codziennej pracy z Linuxem, więc uznałem że warto je omówić, co do reszty poleceń, to albo są ich lepsze odpowiedniki programowe, albo są przydatne w bardziej specjalistycznej grupie zadań. Niektóre polecenia, takie jak apt-get omówiłem w osobnym artykule. W komentarzach prosiłbym podawać propozycję omówienia kolejnych poleceń systemu Linux, zapraszam!

Tagi: , , , , , , , , , , , , , , , , , , , , , ,

Odpowiedzi: 4 do wpisu Linux komendy i polecenia, konsola

  1. karol pisze:

    Bardzo przydatny art :) dzięki za wysiłek

  2. Kantor Tychy pisze:

    Bardzo fajne, szkoda że tak mało przykładów!

  3. Estera pisze:

    Bardzo przystępnie opisane komendy. Powiedziałabym, że najlepiej z tych, które dziś przeglądałam. Też uważam, że szkoda, iż tak mało, bo masz dar przekazywania wiedzy w sposób ciekawy :)

  4. MrArt pisze:

    Świetny artykuł bardzo mi pomugł. Wielkie dzięki:D

Dodaj komentarz