Do konsoli poleceń dostaniemy się, klikając kolejno na Menu, Narzędzia i Konsola.
Najważniejsze komendy konsolowe |
---|
Komenda |
chmod |
cd |
cp |
ls |
mkdir |
mv |
rm |
./configure |
make |
make install |
su - |
mc |
help |
ps |
tar -xvf |
reset |
exit |
Polecenia i cechy powłoki bash
Wspołczesne programy muszą być graficzne, posiadać kolorowe przyciski,
funkcje „przeciągnij i opuść” (drag&drop), być łatwe i przyjemne.
Powłoka bash wydaje się, na pierwszy rzut oka, nieprzyjazna i nieelegancka
w porownaniu chociażby z interfejsem systemu operacyjnego Microsoft
Windows. Pisanie na klawiaturze wydaje się trudniejsze, mniej wygodne niż
klikanie myszką.
Bezdyskusyjnie, bash dostarcza funkcjonalność upraszczająca pracę
administracyjne w systemie.
W tym rozdziale zajmiemy się najciekawszymi możliwościami powłoki bash.
Uzupełnianie wpisywanych poleceń i nazw plików
Powłoka bash ma funkcję uzupełniania (kompletacji) wprowadzanych w wierszu
poleceń nazw plikow oraz nazw poleceń. Po prostu wprowadź pierwsze znaki
i naciśnij klawisz Tab (-->|). bash uzupełni nazwę polecenia lub pliku.
Przykładowo, w katalogu domowym, za znakiem zachęty naciśnij kolejno
klawisze...
M, K, D, Tab, pojawi się → mkdir
C, D, spacja, /, H, Tab → cd /home
V, I, spacja, ., B, A, Tab → vi .bash → _, Tab → vi .bash_history
Jeżeli jest więcej niż jedna możliwość, po powtornym naciśnięciu klawisza Tab
- bash pokaże wszystkie możliwości.
Przykładowo wprowadzamy kolejno: M, K, Tab, Tab → pojawi się
mkallcomposecac
hes
mkcfm
mk_cmds
mkcomposecache
mkdir
mkdirhier
mkfifo
mkfontdir
mkfontscale
mkhtmlindex
mkhybrid
mkinfodir
mkinodedb2
mkisofs
mkmanifest
mknod
mkpasswd
mktemp
mkzftree
mkzimage_cmdline
Podstawowe skróty klawiaturowe w Linuksie i zasadnicze polecenia.
<Ctrl><Alt><F1>
Przełącza na pierwszy terminal. W Linuksie możesz mieć wiele (6 w normalnej instalacji) terminali uruchomionych równocześnie.
<Ctrl><Alt><Fn> (n=1..6)
Przełącza na następne terminale. (Ten sam efekt może być uzyskany przez żadko używaną komendę chvt n.)
tty
Drukuje nazwę terminalu, na którym wpisałeś tą komendę.
<Ctrl><Alt><F7>
Przełącza na pierwszy terminal graficzny (jest na tym terminalu uruchomiony jest X-window).
<Ctrl><Alt><Fn> (n=7..12)
Przełącza na następny terminal graficzny (jeśli terminal GUI jest uruchomiony na ekranie n-1). Domyślnie nic nie jest uruchamiane na terminalach #8-12, ale możesz uruchomić tu inne serwery.
<Tab>
(Na terminalu tekstowym) Auto-dokańczanie komendy, jeśli jest tylko jedna możliwa, albo wyświetlenie wszystkich dostępnych opcji. TEN KLAWISZ JEST SUPER! Działa nawet przy znaku zachęli LILO!
<ArrowUp>
Przewija i modyfikuje historię komend. Naciśnij <Enter> by wykonać
<Shift><PgUp>
Scroll terminal output up. Work also at the login prompt, so you can scroll through your bootup messages.
<Shift><PgDown>
Przewiń dane wyjściowe z terminala w dół.
<Ctrl><Alt><+>
(W X-window) Zmień rozdzielczość X-serwera (jeśli skonfigurowałeś X-serwer do pracy z wieloma rozdzielczościami). Aby uzyskać wiele możliwych rozdzielczości na moim standardowym monitorze i karcie SVGA, mam następującą linię w moim /etc/X11/XF86Config (pierwsza rozdzielczość jest domyślna przy starcie, najwięsza wyznacza rozmiar "virtualnego ekranu"):
Modes "1024x768" "800x600" "640x480" "512x384" "480x300" "400x300" "1152x864"
Oczywiście najpierw musiałem skonfigurować Xserwer, używając Xconfigurator'a albo ręcznie modyfikując plik /etc/X11/XF86Config,
aby obsługuiwał on powyższe rozdzielczości (głównie w drodze odkomentowania linii okreslających chipset mojej karty graficznej i podania częstotliwości synchronizacji mojego monitowa).
<Ctrl><Alt><->
(w X-window) Powróć do poprzedniej rozdzielczości X-serwera.
<Ctrl><Alt><Esc>
(W X-window) Zabija okno, w które klikniesz myszą (wskaźnik myszy zamienia się w coś na kształt trupiej czaszki). Podobny efekt można uzyskać wywołując w xterminalu komendę xkill. Użyteczne, gdy jakiś program X-window nie chce się zamknąć (zawiesi się?).
<Ctrl><Alt><BkSpc>
(in X-windows) Kill the current X-windows server. Use if the X-windows server cannot be exited normally.
<Ctrl><Alt><Del>
Zamknięcie systemu i ponowne jego uruchomienie. Jest to zwyczajny sposób zamknięcia systemu dla użytkownika na konsoli. Nie naciskaj samego przycisku reset aby wyjść z systemu!
<Ctrl>c
Zabij bieżący proces (działa przede wszystkim z małymi, tekstowymi aplikacami).
<Ctrl>d
Wylogu się z bieżącego terminala. Zobacz także następną komedę.
Log out from the current terminal. See also the next command.
<Ctrl>d
Wyślij znak [Koniec-pliku] do bieżącego procesu. Nie wciśnij tego dwukrtonie, bo wylogujesz się z konsoli (zobacz poprzednią komendę).
<Ctrl>s
Zatrzymuje transfer do terminala.
<Ctrl>q
Wznawia transfer do terminala. Spróbuj, jeśli twój terminal z tajemniczych powodów przestaje odpowiadać.
<Ctrl>z
Wyślij bieżący proces w tło.
exit
Wyloguj. Można również użyć w tym samym celu logout. Jeśli uruchomiłeś drugą powłokę, np. używając bash'a, wyjdziesz z drugiej powłoki i znajdziesz się ponownie w pierwszej.
reset
Przywróć do domyślnych ustawień schrzaniony terminal (terminal pokazujący zabawne znaczki). Użyteczne, gdy próbowałeś wyświetlić [cat] plik binarny. Możesz nie być w stanie przeczytać tej komendy, podczas jej wpisywania.
<MiddleMouseButton>
Wklej tekst, który jest aktualnie zaznaczony gdzieś indziej. Jest to normalna operacja kopiowania-wklejania w Linuksie. (Nie zadziała z Netscape i WordPerfect'em, które używają mechanizmów kopiuj-wklej w stylu MS Windows. Działa to na terminalu tekstowym, jeśli uaktywniłeś proces "gpm", przy użyciu "setup".). Najlepiej używać pod Linuksem myszy trzyprzyciskowej (Logitech albo podobnej) albo ustawić "3-mouse button emulation" [emulację środkowego klawisza myszy].
~
(tylda) Mój katalog domowy (normalnie /home/moja_nazwa_uzytkownika). Na przykład komenda cd ~/my_dir zmieni mój bieżący katalog na "my_dir" w moim katalogu domowym. Wpisanie samego "cd" jest równoznaczne z wpisanie "cd~"
.
(kropka) Katalog bierzący. Na przykład, ./moj-program to próba uruchomienia pliku "moj-program", znajdującego się w bieżącym katalogu.
..
(dwie kropki) Katalog nadrzędny w stosunku do bieżącego. Na przykład komedna cd .. zmieni mój bieżący katalog na katalog jeden poziom wyżej.
Odnajdywanie plików
find / -name "nazwa_pliku"
Znajdź plik o nazwie nazwa_pliku w twoim systemie plików, zaczynając poszukiwania od katalogu "/". "nazwa pliku" może zawierać metaznaki (*,?).
locate nazwa_pliku
Znajdź plik o nazwie, która zawiera w swojej nazwie łańcuch znaków nazwa_pliku. Łatwiejsze i prostsze niż poprzednia komenda, ale opiera ona swoje działanie na bazie danych o plikach, która normalnie uaktualniana jest w nocy.
which executable_name
Pokaż pełną ścieżkę pliku wykonywalnego, który uruchomił by się, jeśli wpisał bym go normalnie w linii komend. Na przykład, ta komenda:
which netscape
na moim systemie zwraca:
/usr/bin/netscape
rgrep -r 'ciele' . |more
Skanuje wszystkie pliki w bieżącym katalogu i jego podkatalogach, pod kątem występowania w nich łańcucha znaków "ciele". Drukuje nazwę pliku i linię, zawierającą poszukiwany łańcuch.
ps
(="drukuj status" albo "status procesów") Pokaż listę procesów aktualnie działających z ich identyfikatorami (PID). Użyj ps axu by zobaczyć wszystkie procesy aktualnie uruchomione w twoim systemie (także też te nie podłączone do żadnego terminala sterującego), oraz właściciela każdego z nich. Użyj "top" by uzyskać ciągły wykaz akutalnie działających procesów.
dowolna_komenda &
Uruchamia komendę w tle (symbol "7" oznacza "uruchom poprzedzającą komendę w tle"). Numer_pro
Run any command in the background (the symbol "&" means "run the proceeding command in the background"). The job_number is printed on the screen so you can bring the command in the foreground (see below) if you want.
jobs
Pokazuje listę moich działających w tle lub zatrzymanych procesów, oraz ich numery.
fg job_number
Przywróć działający w tle albo zatrzymany proces "na wierzch" [to foreground czyli na konsolę - dop' tłum].
bg job_number
Umięść proces w tle, co jest dokładnie równoznaczne z uruchomieniem go z &. Komenda ta również zrestartuje zatrzymany proces. Aktualny proces może być często zatrzymany przy uzyciu <Ctrl>z. Jeśli zatrzymałeś lub posłałeś proces w tło, musisz napisać exit dwukrotnie, aby się wylogować.
batch dowolna_komenda
Uruchom dowolną komendę (zwykle taką, która potrzebuje wiele czasu), gdy obiciążenie systemu jest niskie. Mogę się wylogować a proces będzie wciąż działał.
at 17:00
Wykonaj komendę o określonym czasie. Będziesz zapytywany o kolejne komendy, zanim nie naciśniesz <Ctrl>d.
Pokrewną komendą jest atq (wyświetla kolejkę procesów do wykonania przez at) oraz atrm (wyświetla proces z kolejki "at").
kill PID
Wymuś zakończenie działania procesu. Najpierw musisz dowiedzieć się, jaki PID ma proces, który chcesz zabić. Możesz to zrobić przy użyciu ps.
killall program_name
Zabij program(y) na podstawie ich nazw.
Kill program(s) by name.
xkill
(w X-terminal'u) Zabij program, pracujacy w środowisku graficznym. (Najedź wskaźnikiem myszy na okno procesu, który chcesz zabić i kliknij.)
kpm
(w X-terminal'u) Zarządca procesów KDE.
lpc
(jako root) Sprawdź i kontroluj drukarkę(ki). Wpisz "?" a zobaczysz listę dostępnych komend.
lpq
Pokaż zawartość kolejki drukarki. Pod KDE (X-window) możesz użyć graficznego "Kolejka drukarki", dostępnego z "K-Menu" - Narzędzia.
lprm numer_zadania
Usuwa z kolejki drukarki zadanie do drukowania o podanym numerze.
nice nazwa_programu
Uruchom nazwa_programu zmieniając jego priorytet. Jako, że priorytet nie jest określony w tym przykładzie, bedzie on zwiększony o 10 (czyli proces będzie działał wolniej). Niższy numer (większy stopień bycia "niemiłym" dla innych użytkowników systemu) ["nice" - ang. "miły", przyjemny" -dop tłum.] oznacza wyższy priorytet. Priorytet może mieć wartość od -20 do 19. Tylk oroot może nakazywać negatywne wartości. Użyj top by zobaczyć priorytety działających procesów.
renice -18 PID
(jako root) Zmień priorytet uruchomionego procesu do minus 18. Normalny użytkownik może modyfikować tylko swoje własne procesy, i tylko w górę od bieżącego priorytetu (może sprawiać, by działały wolniej). Można także wykonać polecenie renice +10 -u peter by sprawić, że użytkownik peter będzie mniej obciążał procesor, a inni nie będą cierpieć, gdy włącza swoje, mocno obciążające maszynę programy.
<Ctrl>c, <Ctrl>z, <Ctrl>s, i <Ctrl>q także mięszczą się w tematyce tego rozdziału, ale były opisane poprzednio. W skrócie oznaczają one: zatrzymaj bieżące zadanie, przenieś aktualne zadanie w tło, zatrzymaj transfer danych i wznów transfer danych.
Przeglądanie i edycja plików
cat nazwa_pliku | more
Pokazuje zawartość pliku tekstowego o nazwie "nazwa_pliku", jeden ekran na raz. Pionowa kreska "|" to symbol "rury" [w języku polskim używa się raczej terminu "potok"] (na wielu amerykańskich klawiaturach znajduje się on na tym samym klawiszu co "\"). more powoduje, że ekran zatrzymuje się po każdym zapełnieniu. W przypadku długich plików, czasem wygodniej jest użyć komend head i tail które wyświetlają tylko początek lub tylko koniec pliku. Jeśli zdarzyło ci się użyć cat do wyświetlenia binarnego pliku i twój terminal wyświetla zabawne znaki zamiast normalnych liter, możesz przywrócić go do normalnego stanu, używając komendy reset.
cat nazwa_pliku | less
less nazwa_pliku
(dwie komendy, używane zamiennie) Umożliwia poruszanie się po pliku tekstowym. Naciśnij "q" aby zakończyć. "less" jest ekwiwalentem "more", komendy, którą znasz z DOS'a, ale często "less" jest bardziej wygodny niż "more".
head nazwa_pliku
Drukuje pierwsze 10 linii (długiego) pliku tekstowego.
tail nazwa_pliku
Drukuje ostatnie 10 linii (długiego) pliku tekstowego. Użyj tail -f filename by śledzić nowe linie, pojawiające się na końcu pliku -- na prawdę wygodne, by monitorować pliki z logami.
pico nazwa_pliku
Modyfikuj plik tekstowy, przy użyciu prostego i standartowego edytora tekstowego o nazwie pico. Użyj <Ctrl>x aby zakończyć. Istnieje wiele edytorów tekstowych pod Linuksa, w tym również pracujących w środowisku graficznym.
pico -w nazwa_pliku
Modyfikuj plik tekstowy, nie pozwalając na łamanie długich linii. Wygodne przy modyfikowaniu plików konfiguracyjnych, na przykład /etc/fstab.
kwrite
(w X terminalu) Bardzo przyjemny, "zaawansowany edytor". Potrafi zaznaczać pionowe bloki tekstu!
kedit
gedit
(w X terminalu). Małe ale przyjemne edytory tekstowe (pracujące w środowisku graficznym).
gxedit
(w X terminalu) Następny bogato wyposażony edytor tekstowy ogólnego stosowania. Ten nawet posiada automatyczne nagrywanie kopii bezpieczeństwa co jakiś czas.
ispell nazwa_pliku
Sprawdza poprawność pisowni pliku tekstowego ASCII. AbiWord, WordPerfect, StarOffice i inne procesory tekstu posiadają mechanizmy sprawdzania pisowni w czasie wstukiwania tekstu, więc nie musisz się zajmować używaniem prostego ispell'a, zanim na prawdę nie będziesz go potrzebował. Nowsze dystrybucje Linuksa zawierają ulepszony program do sprawdzania pisowni o nazwie aspell, jednak ta powyższa komenda ciągle działa.
touch nazwa_pliku
Zmienia datę/czas pliku nazwa_pliku na akutalną w systemie. Tworzy pusty plik, jeśli plik o podanej nazwie nie istnieje.
Podstawowe operacje
ls
dir
Listuje zawartość bieżącego katalogu. Komenda dir jest aliasem ls, tak więc te dwie komendy robią dokładnie to samo. Lista plików jest normalnie kolorowa: ciemnoniebieski=katalogi, jasnozielony = zwykłe pliki, zielony = pliki wykonywalne, magenta (karmazynowy) = pliki graficzne, czerwony = kompresowane (zzipowane), jasno niebieski = dowiązania symboliczne, żółty = pliki urządzeń, brązowy = FIFO (potoki typu "First-In First-Out" )
ls -al |more
Listuje zawartość bieżącego katalogu, wszystkie pliki (także te zaczynające się od kropki), w formi długiej. Przekierowanie potoku wyjściowego do "more" powoduje, że ekran zatrzymuje się po każdym wypełnieniu.
cd katalog
Zmień katalog. Użycie "cd" bez nazwy katalogu przeniesie cię do twojego katalogu domowego. "cd -" przeniesie cię do poprzedniego twojego katalogu, jest to wygodny sposób na poruszanie się między dwoma katalogami. "cd.." przeniesie cię o jeden katalog wyżej (bardzo użyteczne).
./nazwa_programu
Uruchom plik wykonywalny z bieżącego katalogu, jeśli tenże katalog nie znajduję się w PATH. Pliki wykonywalne, które znajdują się w PATH moża uruchomić wpisując po prostu nazwa_programu.
shutdown -h now
(jako root) Zamyka działanie systemu i wstrzymuje go. Używane głównie do zdalnego wyłączania. Użyj <Ctrl><Alt><Del> by zamknąć system z konsoli (może to zrobić każdy użytkownik).
halt
reboot
init 6
(jako root, trzy komendy) Zamknij lub zrestartuj system. Użyteczne przy zdalnym wyłączaniu, prostsze niż poprzednia komenda. Ponadto doskonałe, gdy komputer "zawiesza sie" (tracisz kontrolę nad klawiaturą) -- telnetuję się wtedy na niego z innej maszyny z sieci i zdalnie restartuję go. Używam <Ctrl><Alt><Del> dla normalnego restartu z lokalnej konsoli.
vlock
(Tego programu nie ma na RedHat CD, ale jest na Mandrake). Blokuje virtualny terminal tekstowy. Można także użyć vlock -a by zablokować wszystkie terminale (chyba niezbyt dobry pomysł). Użyteczne prawdopodobnie przy wylogowywaniu.
Informacje o systemie
pwd
Drukuje bieżący katalog roboczy, czyli wyświetla na ekranie nazwę katalogu, w którym się znajduję.
hostname
Drukuje nazwę hosta (maszyny, na której aktualnie pracujesz). Użyj netconf (jako root) aby zmienić tą nazwę.
whoami
Drukuje moją nazwę użytkownika.
id username
Drukuje identyfikator użytkownika (uid) i jej/jego grupy (gid), efektywny id (jeśli jest różny od realnego) i dodatkowe grupy.
date
Drukuj albo zmień datę w systemie operacyjnym. Na przykład mógłbym zmienić datę i czas na 200-12-31 23:57, używając tej komendy
date 123123572000
By ustawić zegar sprzętowy (BIOS) z poziomu Linuksa, użyj komendy (jako root) setclock
time
Określa ilość czasu, który zużywa proces na wykonanie zdania + inne info. Nie myl jej z komendą date . Na przykład możesz nią sprawdzić jak długo zajmuje wyświetlenie zawartości katalogu:
time ls
who
Określa użytkowników zalogowanych w systemie.
w
Określa kto jest zalogowany w systemie, co kto robi, użycie procesora przez poszczególnych użytkowników, etc. Poręczna komenda, wykorzystywana w celach bezpieczeństwa.
rwho -a
(=zdalne who) Określa użytkowników zalogowanych na innych komputerach w sieci. Usługa rwho musi być włączona, żeby ta komenda działała. Jeśli nie jest, uruchom setup (sposób specyficzny dla RedHat'a) i jako root włącz "rwho".
finger nazwa_użytkownika
Informacje systemowe o użytkowniku. Zobacz finger root
last
Pokazuje listing uytkowników ostatnio logujących się na twój system. Bardzo dobry pomysł na jeden z elementów sprawdzania od czasu do czasu bezpieczeństwa systemu.
lastb
("=last bad" czyli "ostatnie złe") Pokazuje ostatnie złe (nieudane) logowanie do systemu.
history | more
Pokazuje ostatnie (z 1000 lub więcej) komend wykonanych z linii komend na bieżącym koncie. "| mode" powoduje, że ekran zatrzymuje się co jeden pełny ekran. By zobaczyć co inny użytkownik robić w systemie, zaloguj się jako root obejżyj jej/jego "historię". Histora jest przechowywana w pliku .bash_history w katalogu domowym użytkownika (owszem, w takim razie może być modyfikowana/kasowana).
uptime
Pokazuje ilość czasu od ostatniego restartu maszyny.
ps
(="drukuj status" lub "status procesów" [oryg. "print status", "proces status" - dop. tłum.]) Pokazuje listę procesów aktualnie działających i będących własnością akutalnego użytkownika.
ps axu | more
Pokazuje listę procesów aktualnie działających, nawet tych pozbawionych terminala sterującego, razem nazwą ich właściceli.
top
Stały wykaz aktualnie uruchomionych procesów, posortowanych według użycia procesora (najwięcej obciążające najpierw). Naciśnij <Ctrl>c by zakończyć.
gtop
ktop
(w X terminal'u) Dwa graficzne zamienniki top'a. Moim ulubionym jest gtop (dostarczany z gnome). W KDE ktom jest dostępny z "K-menu" pod "Użytki" - "Zarządca procesów".
uname -a
(= "Unix name" z opcją "all") Informacja o twoim (lokalnym) sewerze. Możesz także użyć guname (w terminalu X-window) by obejżeć ją w ładniejszej formie.
cat /etc/issue
Sprawdzisz w ten sposób jakiej dystrybucji używasz. Możesz umieścić swój własny tekst w tym pliku -- jest on wyświetlany w czasie logowania. Bardziej popularne jest jednak umieszczanie swoich własnych wiadomości wyświetlanych przy logowaniu w pliku /etc/motd ("motd"="message of the day" [czyli "wiadomość dnia" - dop. tłum.].
free
Informacja o pamici (w kilobajtach). Pamięć "shared" [wspódzielona - dop. tum.] to pamięć, która może być dzielona pomiędzy procesami (na przykład kod wykonywalny jest "shared). "Buffered' i "cached" to część, w której trzymane są części ostatnio otwieranych plików -- może ona być zwolniona, gdy proces wymaga więcej pamięci.
df -h
(=disk free) Drukuje informacje o wszystkich dyskach w systemie plików (w formie wygodnej dla człowieka).
du / -bh | more
(=użycie dysku) Drukuje dokłade informacje o tym , ile miejsca na dysku zajmuje każdy katalog, zaczynając od "/" (w fromie wygodnej dla człowieka).
cat /proc/cpuinfo
Cpu info-- pokazuje to zawartość pliku cpuinfo. Zwróć uwagę, że pliki w /proc nie są realnymi plikami -- są to "zaczepki" [oryg. hooks -dop. tłumacza], które pozwalają oglądać informacje dostępne dla jądra.
cat /proc/interrupts
Pokaż używane przerwania. Możesz potrzebować tej wiedzy przed włożeniem nowego sprzętu.
cat /proc/version
Wersja Linuksa i inne info.
cat /proc/filesystems
Pokazuje rodzaje systemów plików aktualnie używanych.
cat /etc/printcap |more
Pokazuje konfigurację drukarek.
lsmod
(= "list modules". Jako root, użyj /sbin/lsmod by wykonać tą komendę jeśli jesteś zalogowany jako inny użytkownik). Pokazuje aktualnie załadowane moduły jądra.
set|more
Pokazuje aktualne środowisko użytkownika.
echo $PATH
Pokazuje zawartość zmiennej środowiskowej "PATH". Ta komenda może być użyta do sprawdzania wartości innych zmiennych środowiskowych. Użyj "set" by zobaczyć całe środowisko.
dmesg | less
Drukuje wiadomości jądra (zawartość tak samo zwanego bufora kernela). Naciśnij "q" by wyjść z "less". Użyj less /var/log/dmesg by zobaczyć jakie "dmesg" zostało zrzucone do tego pliku zaraz po starcie systemu.
chage -l my_login_name
Pokazuje informacje o wygasaniu ważności mojego hasła.