LINUX Tryb wiersza poleceń Materiały przeznaczone wyłącznie do użytku wewnętrznego Laboratorium Podstaw Informatyki

Podobne dokumenty
Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

EDYTOR TEKSTOWY VIM WYBRANE POLECENIA. Pracownia Informatyczna 5

I. Interfejs użytkownika.

Skrypty startowe. Tryb interaktywny tryb logowania: nie logowanie: Tryb nieinteraktywny

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Podstawy użytkowania Linux a

Aby pobrać program FotoSender naleŝy na stronę lub i kliknąć na link Program do wysyłki zdjęć Internetem.

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Co to jest arkusz kalkulacyjny?

Przedstawię teraz tzw. podstawowe symbole wyrażenia regularne (BRE, Basic Regular Expression)

Okno logowania. Okno aplikacji. 1. Logowanie i rejestracja

Znaki globalne w Linuxie

Umożliwia ona pokazanie ukrytych plików i katalogów, nazwa ich zaczyna się od kropki.

Instrukcja redaktora strony

Technologie Informacyjne - Linux 2

INSTRUKCJE WIKAMP Dotyczy wersji systemu z dnia

Linux Polecenia. Problem nadpisywania plików. Zmienna noclobber i noglob. Filtry i metaznaki. Problem nadpisywania plików. Opracował: Andrzej Nowak

- 1 Laboratorium fotografii cyfrowej Foto Video Hennig

Spis treści REJESTRACJA NOWEGO KONTA UŻYTKOWNIKA PANEL ZMIANY HASŁA PANEL EDYCJI DANYCH UŻYTKOWNIKA EXTRANET.NET...

Zakład Systemów Rozproszonych

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

Instrukcja obsługi programu FotoSender

JPK VAT wysyłka za pośrednictwem profilu zaufanego z systemu epuap

Klawisze szybkiego wyboru układu drabinkowego

asix5 Podręcznik użytkownika Notatnik - podręcznik użytkownika

1. Pobieranie i instalacja FotoSendera

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

Instrukcja obsługi systemu elektronicznego katalogu przedmiotów (sylabusów)

Rozdział 5. Administracja kontami użytkowników

Ćwiczenie 1. Podstawowe wiadomości

tworzenie katalogów Aby utworzyć nowy katalog wpisz: mkdir katalog1 Ta komenda utworzy katalog o nazwie katalog1.

CENTRALNA BAZA DANYCH AKT SĄDOWYCH CEL POWSTANIA I ZASADY FUNKCJONOWANIA

Zgrywus dla Windows v 1.12

Opis klawiatury komputerowej

System plików. Podstawy systemu Linux

WPROWADZENIE. Warto pamiętać o opcji autouzupełniania, której używamy naciskając klawisz [Tab]

Windows XP Wiersz polecenia

Laboratorium Strumienie w systemach UNIX 4.2 Filtry strumieniowe

Powłoka, redyrekcja, potok

Instalacja programu Warsztat 3 w sieci

Za pomocą niniejszej instrukcji baza programu MAK zostanie przygotowania do eksportu na METALIB.

instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI

Elektroniczny system wspomagający proces rekrutacji do klas I szkół podstawowych Szanowni Państwo,

Laboratorium - Praca z poleceniami wiersza poleceń w systemie Windows

Instrukcja zarządzania kontem jednostki samorządu terytorialnego w serwisie internetowym

Zastanawiałeś się może, dlaczego Twój współpracownik,

Instrukcja zarządzania kontem przedsiębiorstwa w serwisie internetowym

Elektroniczny system wspomagający proces rekrutacji do szkół podstawowych Szanowni Państwo,

Packet Tracer - Nawigacja w IOS

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

1. Znajdź za pomocą programu locate wszystkie pliki które zawierają w nazwie słowo netscape locate netscape

1. Uruchom stronię poczta.foof.pl (pisane bez www). Powinien wyświetlić się następujący ekran

Elektroniczny system rekrutacji do klas VII dwujęzycznych prowadzonych przez m.st. Warszawę

Zakład Systemów Rozproszonych

Systemy operacyjne II Laboratorium. Część 1: Pliki wsadowe Windows

1. Opis okna podstawowego programu TPrezenter.

1. Wprowadzanie danych z klawiatury funkcja scanf

Jak wykonać inwentaryzację (spis z natury) w rc sklep lub rc sklep mini.

Podstawy pracy z edytorem tekstu. na przykładzie Open Office

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Jak zamówić zdjęcia przez FotoSender?

Technologie Informacyjne - Linux 1

Instrukcja użytkownika TALENTplus Uniwersytet Medyczny we Wrocławiu

Jak korzystać z Panelu nauczyciela?

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

WPROWADZANIE ZLECEŃ POPRZEZ STRONĘ INSTRUKCJA UŻYTKOWNIKA

Podstawy używania konsoli tekstowej w systemie Linux. Andrzej Zbrzezny

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Programowanie w języku Python. Grażyna Koba

lekcja 8a Gry komputerowe MasterMind

Instrukcja procedowania pracy dyplomowej w systemie APD dla studenta.

Mechanizm zarządzania bazą towarową Quattro i kas firmy ELZAB Wersja RMC 1.9

Instrukcja użytkownika systemu medycznego

Podręcznik użytkownika Wprowadzający aplikacji Wykaz2

unikupon.pl Unikupon PC Instrukcja obsługi

Minimalna wspierana wersja systemu Android to zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

MATERIAŁY - udostępnianie materiałów dydaktycznych w sieci SGH

Instrukcja SO powłoka BASH i skrypty powłoki Istotne jest zrozumienie działania narzędzia history powłoki BASH. Każde polecenie wprowadzone i

I. Program II. Opis głównych funkcji programu... 19

UMOWY INSTRUKCJA STANOWISKOWA

pozwala wydrukować kopię czarno-białą, a przycisku kopię kolorową. Kopiowanie przy użyciu szyby skanera

S P I S T R E Ś C I. Instrukcja obsługi

1 Przygotował: mgr inż. Maciej Lasota

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Przed rozpoczęciem pracy otwórz nowy plik (Ctrl +N) wykorzystując szablon acadiso.dwt

Przypisy i przypisy końcowe

Kopiowanie, przenoszenie plików i folderów

1. Logowanie do systemu

Integracja systemu trigocms! z platformą Facebook

JAK ZAMÓWIĆ ZDJĘCIA PRZEZ PROGRAM FOTOSENDER? 1. POBIERANIE I INSTALACJA PROGRAMU FOTOSENDER

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Panel dla agentów. Instrukcja obsługi dla agentów

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

Podręcznik użytkownika Publikujący aplikacji Wykaz2

Czysta Instalacja systemu Windows XP

Projekty zaliczeniowe Podstawy Programowania 2012/2013

Transkrypt:

LINUX Tryb wiersza poleceń Materiały przeznaczone wyłącznie do użytku wewnętrznego

Powłoka jest interpreterem poleceń udostępniającym zorientowany wierszowo interaktywny interfejs pomiędzy użytkownikiem i systemem operacyjnym. Ty wprowadzasz polecenia w wierszu poleceń, a one są następnie interpretowane przez powłokę i przesyłane jako instrukcje do systemu operacyjnego. Dla Linuxa rozwinięto różne rodzje powłok - trzy główne to: powłoka Bourne Again (BASH), powłoka Public Domain Korn (PDKSH) oraz powłoka TCSH. Wszystkie trzy powłoki są dostępne, z tym że powłoka Bourne a jest domyślna. 1 Rozpoczęcie pracy z systemem 1.1 Logowanie się do Linuxa Logowanie się do Linuxa wymaga dwóch kroków: wprowadzenia Twojej nazwy użytkownika (identyfkatora, login name) i Twojego hasła. Po pojawieniu się monitu logowania wpisz nazwę swojego konta. Następnie zostaniesz poproszony o wprowadzenie hasła (password). Wpisywane hasło nie pojawia się na ekranie. Dzieje się tak po to, by zabezpieczyć je przed podglądaniem przez innych użytkowników. Jeżeli wprowadzisz błędnie nazwę użytkownika lub hasło, system zasygnalizuje to komunikatem i poprosi Cię o wprowadzenie nazwy użytkownika ponownie, uruchamiając znów proces logowania. Po poprawnym wprowadzeniu nazwy i hasła pojawi się monit wiersza poleceń z oczekiwaniem na wprowadzanie przez Ciebie poleceń. Zankiem monitu dla zwykłego użytkownika jest $, natomiast dla administratora (użytkownika uprzywilejowanego, root) znak #. Najczęsciej monit jest poprzedzony nazwą hosta lub/i uzytkownika, a także nazwą katalogu, w którym się aktualnie znajdujesz. Nazwy te będą ujęte w nawiasy kwadratowe np.: [tom@demeter home]$ 1.2 Zmienianie hasła Po zalogowaniu się do systemu możesz zmienić swoje hasło poleceniem passwd. Po pierwsze zdecyduj się, jak ma brzmieć Twoje nowe hasło. Powinno ono być łatwe do zapamiętania i mieć co najmniej pięć znaków 1. Jeżeli dbasz o bezpieczeństwo, hasło powinno zawierać duże i małe litery oraz kilka cyfr. Po ustaleniu nowego hasła jesteś gotowy do jego zmiany. Wpisz polecenie passwd w wierszu poleceń i naciśnij [ENTER]. Pojawi się pytanie o Twoje aktualne hasło. Po wprowadzeniu go i naciśnięciu [ENTER] zostaniesz spytany o nowe hasło. Po wprowadzeniu nowego hasła zostaniesz poproszony o jego powtórne wprowadzenie. Chodzi o to, by upewnić się, że wprowadziłeś hasło, które chciałeś wprowadzić. Ponieważ znaki hasła nie są wyświetlane w czasie wprowa dzania, łatwo jest zrobić błąd i wprowadzić zły znak. $ passwd 1 Wymagania dotyczące hasła w dużej mierze zależą od ograniczeń narzuconych przez administratora systemu. Na różnych komputerach, nawet z tą samą dystrybucją Linuxa, można się spotkać z innymi wymaganiami co do budowy hasła. 2

(current) UNIX password: New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully $ Jeżeli zrobisz błąd przy wprowadzaniu nowego hasła, system wyświetli komunikat błędu, a hasło nie zostanie zmienione. System wykrywa błąd, porównując dwa nowo wprowadzone hasła. Jeżeli nie zgadzają się, wypisywany jest błąd. Jeżeli natomiast zgadzają się, nowe hasło uznawane jest za obowiązujące. Polecenie passwd od razu rejestruje Twoje nowe hasło w systemie. Kiedy będziesz logował się po raz kolejny, musisz użyć nowego hasła. 1.3 Wylogowywanie się Aby zakończyć sesję, wydajesz polecenie logout. Powoduje to powrót do monitu logowania, a Linux czeka, aż załoguje się następna osoba. $ logout 2 Wiersz poleceń Kiedy załogujesz się do Linuxa, pojawia się interfejs wiersza poleceń. Składa się on z pojedynczego wiersza, w którym wprowadzasz polecenia wraz z opcjami i argumentami. Linux domyślnie jest instalowany z powłoką Bourne Again, popularnie zwaną powłoką BASH. Powłoka BASH ma monit w postaci znaku dolara, ale w Linuxie istnieje kilka innych rodzajów powłok, a każda może mieć własny monit. Monit wyznacza początek wiersza poleceń. W następnym przykładzie użytkownik wprowadza polecenie datę powodujące wyświetlenie bieżącej daty. Użytkownik wpisuje polecenie w pierwszym wierszu, a następnie naciska [ENTER] i polecenie jest wykonywane. $ date Sun July 7 10:30:21 CEST 2002 Kiedy się zalogujesz, znajdujesz się pod kontrolą powłoki, która interpretuje wprowadzane przez Ciebie polecenia i wysyła je do systemu. Powłoka interpretuje wiersz poleceń zgodnie ze specjalną składnią. Pierwszym wprowadzonym w wierszu poleceń słowem musi być nazwa polecenia. Potem następują opcje i argumenty polecenia. Każde słowo w wierszu poleceń musi być oddzielone jedną lub kilkoma spacjami, czy też znakami tabulacji. $ Polecenie Opcje Argumenty Po wprowadzeniu polecenia powłoka najpierw odczytuje nazwę polecenia, a następnie sprawdza, czy rzeczywiście w systemie jest polecenie o takiej nazwie. Jeżeli nie ma takiego polecenia, powłoka powoduje wyświetlenie komunikatu o błędzie. 3

2.1 Opcje i argumenty Opcja składa się z jednoznakowego kodu poprzedzonego znakiem minus i powoduje modyfikację działań wykonywanych przez polecenie. Jednym z przykładów polecenia mającego opcje jest ls. Polecenie ls bez opcji powoduje wyświetlenie listy wszystkich plików znajdujących się w bieżącym katalogu. Listowane są jedynie nazwy każdego pliku bez żadnych dodatkowych informacji. Polecenie ls z opcją -l powoduje taką modyfikację zadania wyświetlania wiersza, że można poznać rozmiar i datę oraz czas ostatniej modyfikacji pliku. Minus przed literą jest wymagany, aby odróżnić opcję od argumentu. $ ls -l Inna opcja, -a, powoduje listowanie wszystkich plików z bieżącego katalogu, włącznie z tak zwanymi plikami ukrytymi (ang. hiddenfiles). Pliki ukryte są często plikami konfiguracyjnymi i ich nazwa zawsze rozpoczyna się od kropki. Z tego powodu często są też nazywane plikami z kropką (ang. dot files). W większości przypadków możesz łączyć różne opcje ze sobą. Robisz to, poprzedzając opcję znakiem minus, a następnie wpisując kolejno wszystkie litery. Na przykład opcja -al wyświetli wszystkie informacje o plikach w katalogu, włącznie z plikami ukrytymi. $ ls -al Kolejną opcją polecenia ls jest -F. Dzięki tej opcji polecenie ls powoduje wyświetlenie nazw katalogów ze znakiem ukośnika, tak że można je łatwo odróżnić od plików. Większość poleceń przyjmuje argumenty. Argument jest słowem, które wpisujesz w wierszu poleceń po opcjach. Wiele poleceń zarządzania plikami przyjmuje nazwy plików jako argumenty. Na przykład, jeżeli chcesz uzyskać jedynie informacje o konkretnym pliku, możesz podać jego nazwę po opcji -l: $ ls -l mojadane W zależności od polecenia, musisz lub nie musisz wprowadzać argumentów. Niektóre polecenia, takie jak ls, nie wymagają argumentów. Inne polecenia mogą wymagać minimalnej liczby argumentów. Na przykład polecenie cp wymaga co najmniej dwóch argumentów. Jeżeli liczba argumentów nie zgadza się z wymaganą przez polecenie, powłoka wyświetla komunikat o błędzie. Pamiętaj, że opcje są wprowadzane w wierszu poleceń przed argumentami. W pole- ceniu cp opcja -i, sprawdzająca warunek nadpisania, jest wprowadzana przed ar- gumentami z nazwą pliku. Oto kilka przykładów wprowadzania poleceń: $ ls Polecenie bez opcji $ ls -F Polecenie z opcją $ cp -i mojedane nowedane Polecenie z opcją i argumentami 2.2 Cechy wiersza poleceń Wiersz poleceń w istocie rzeczy jest buforem zawierającym tekst, który możesz edytować. Zanim naciśniesz klawisz [ENTER], możesz wydawać polecenia edycyjne dotyczące 4

wprowadzonego tekstu. Możliwości edycyjne są ograniczone, ale jest to jakiś sposób na poprawienie błędów. Na przykład klawisze [BACKSPACE] i [DEL] służą do usuwania właśnie wpisanego znaku. Posługując się nimi, możesz usunąć znaki z całego wiersza i skasować wszystko, co wprowadziłeś. Kombinacja klawiszy [CTRL+U] powoduje usunięcie całego wiersza i pozwala na wpisanie go od nowa. Powłoka, w której zaczynasz pracę, to powłoka domyślna BASH. Zapewnia ona specjalne możliwości edycji wiersza poleceń i możesz stwierdzić, że są one bardzo przydatne przy nauce Linuxa. Możesz łatwo modyfikować wprowadzone polecenia, zanim je wykonasz, poruszając się po całym wierszu i wprowadzając lub usuwając znaki. Jest to szczególnie pomocne przy bardzo skomplikowanych poleceniach. Możesz używać kombinacji klawiszy [CTRL+F] lub kursora w prawo do przesunięcia się o znak w przód, kombinacji [CTRL+B] lub kursora w lewo do cofnięcia się o znak. [CTRL+D] lub [DEL] usuwa znak znajdujący się pod kursorem. Jeżeli chcesz dodać tekst, po prostu używasz kursorów do przesunięcia się w miejsce, w którym chcesz go wprowadzić i wpisujesz nowy znak. W dowolnej chwili możesz nacisnąć [ENTER] i wykonać polecenie. Jeżeli zrobisz błąd przy wpisywaniu polecenia, zamiast je od nowa wprowadzać, możesz posłużyć się edycją do poprawienia błędu. Możesz również używać kursora w górę (lub [CTRL-P]) w celu wyświetlenia poprzednio wykonanego polecenia. Możesz następnie ponownie wykonać polecenie lub je edytować, jeżeli chcesz wykonać zmodyfikowane polecenie. Stwierdzisz, że jest to bardzo pomocne przy powtarzaniu wielu podobnych operacji, takich jak edycja tego samego pliku. Jest to również pomocne, jeśli właśnie wykonałeś polecenie, które wprowadziłeś nieprawidłowo. W tym przypadku pojawi się komunikat o błędzie i nowy, pusty wiersz poleceń. Wciśnięcie kursora w górę spowoduje wyświetlenie ostatniego polecenia, możesz je poprawić i wykonać ponownie. W ten sposób nie musisz wprowadzać całego polecenia od nowa. Powłoka BASH przechowuje listę zwaną listą historii, która zawiera poprzednio wprowadzone polecenia. Możesz wyświetlić każde polecenie z listy, wciskając kursor w górę. Kursor w dół (lub [CTRL-N]) spowoduje poruszanie się w drugą stronę listy. Niektóre polecenia mogą być bardzo złożone i ich wykonanie może zajmować dużo czasu. Kiedy pomyłkowo wykonasz złe polecenie, możesz je przerwać za pomocą klawiszy [CTRL+C] lub [DEL]. Możesz umieścić więcej niż jedno polecenie w tym samym wierszu, lub możesz użyć kilku wierszy do wprowadzenia pojedynczego polecenia. Aby wprowadzić więcej niż jedno polecenie w tym samym wierszu, oddziel polecenia średnikiem. W następnym przykładzie pokazano polecenia ls i cp wprowadzone w tym samym wierszu. $ ls -F ; cp -i mojadane nowedane Możesz wprowadzić polecenie w kilku wierszach, wpisując znak (\) zanim naciśniesz [ENTER]. Znak backslash maskuje klawisz [ENTER] i pozwala na kontynuowanie wprowadzania polecenia w następnym wierszu. W następnym przykładzie polecenie cp jest wprowadzane w trzech wierszach. Pierwsze dwa wiersze kończą się znakiem backslash, powodując, że wszystkie trzy wiersze są interpretowane jako jeden. cp -i \ 5

mojadane \ nowedane 2.3 Znaki specjalne i argumenty nazw plików Nazwy plików są najczęstszymi argumentami stosowanymi w poleceniach. Często możesz znać jedynie część nazwy pliku lub chcesz odwołać się do kilku nazw plików, które mają takie samo rozszerzenie lub rozpoczynają się takim samym znakiem. Powłoka oferuje zestaw znaków specjalnych, które poszukują, dopasowują i generują listę plików. Tymi znakami specjalnymi są gwiazdka, znak zapytania i nawiasy kwadratowe (*,?, [ ]). Jeżeli zadasz część nazwy pliku, powłoka używa tych operatorów do poszukiwania plików i wygenerowania listy znalezionych nazw. Powłoka podstawia zamiast argumentów w postaci fragmentów nazw listę pasujących nazw. Lista nazw plików może stać się argumentami dla poleceń takich jak ls, które może działać na wielu plikach. Gwiazdki (*) możesz używać do oznaczenia plików zaczynających się lub kończących różnym zestawem znaków. Umieszczasz gwiazdkę przed lub po zestawie znaków tworzących wzorzec poszukiwany w nazwie pliku. Jeżeli gwiazdka jest umieszczona po wzorcu, poszukiwane są nazwy rozpoczynające się wzorcem. Każda zgodna z wzorcem nazwa pliku jest kopiowana do listy nazw plików tworzonej przez tę operację. W następnym przykładzie poszukiwane są wszystkie nazwy plików rozpoczynające się od wzorca dok i tworzona jest ich lista. Następnie poszukiwane są wszystkie nazwy kończące się wzorcem ek i również tworzona jest lista. $ ls doki dok2 dokument dokumenty mójdokument poniedziałek wtorek $ ls dok* doki dok2 dokument dokumenty $ ls *ek poniedziałek wtorek $ Nazwy plików często zawierają rozszerzenie wyszczególnione za kropką i składające się z jednej litery. Rozszerzenie nie jest niczym szczególnym. Ono także stanowi nazwę pliku. Za pomocą gwiazdki można łatwo wybrać pliki o zadanym rozszerzeniu. Gwiazdka umieszczona przed.c stanowi argument dla ls. $ ls *.c kalkulator.c main.c Możesz używać znaku specjalnego (*) z poleceniem rm do usuwania kilku plików jednocześnie. Gwiazdka powoduje najpierw wybieranie listy plików z zadanym rozszerzeniem lub rozpoczynającej się czy kończącej zadanym ciągiem znaków, a następnie przekazuje tę listę poleceniu rm w celu usunięcia. W następnym przykładzie za pomocą polecenia rm usuwane są wszystkie pliki rozpoczynające się od wzorca dok. $ rm dok* 6

Sama gwiazdka oznacza wszystkie pliki. Jeżeli używasz pojedynczej gwiazdki jako argumentu dla polecenia rm, zostaną usunięte wszystkie pliki. Używaj znaku specjalnego (*) ostrożnie i oszczędnie z poleceniem rm. Ich kombinacja może być bardzo niebezpieczna. Pomyłkowo użyta (*) w poleceniu rm bez opcji -i może w prosty sposób wykasować wszystkie pliki. Pierwsze polecenie następnego przykładu usuwa jedynie te pliki, które mają rozszerzenie.c. Drugie polecenie usuwa wszystkie pliki. Zwróć uwagę na spację pomiędzy gwiazdką i kropką w drugim poleceniu. Spacja w wierszu poleceń działa jak ogranicznik, oddzielając argumenty. Gwiazdka jest uznawana jako jeden argument, a.c jako drugi. Sama gwiazdka oznacza wszystkie pliki i jeżeli stosujesz ją jako argument dla polecenia rm, nakazuje poleceniu usunięcie wszystkich plików. $ rm *.c $ rm *.c Znak zapytania (?) oznacza jedynie jeden brakujący znak w nazwach plików. Załóżmy, że chcesz stworzyć wzorzec dla plików doki i doka, ale nie dla dokument. Podczas gdy gwiazdka dopasowywuje nazwy dowolnej długości, znak zapytania ogranicza dopasowywanie do jednego znaku. W następnym przykładzie dopasowywane są pliki rozpoczynające się od słowa dok, za którym następuje jedna litera. $ ls doki doka dokument $ ls dok? doki doka Możesz używać więcej niż jednego znaku zapytania we wzorcu, jeżeli chcesz, a także możesz umieszczać znaki zapytania w dowolnym miejscu wzorca. W nastę pnym przykładzie poszukiwane są nazwy pasujące do wzorca z trzema różnymi znakami. $ ls?oj?ok? mojdokt mojpoks Wojdoki Możesz łączyć znak zapytania (?) z innymi znakami specjalnymi, tworząc bardzo precyzyjne operacje dopasowywania. Podczas gdy znaki specjalne (*) i (?) określają niepełną nazwę pliku, nawiasy kwadratowe ([ ]) pozwalają na określenie zestawu dopuszczalnych znaków, jakie mają być poszukiwane. Dowolne znaki umieszczone w nawiasach będą dopasowywane do nazwy pliku. Załóżmy, że chcesz uzyskać listę plików rozpoczynających się od dok, ale jedynie jeżeli kończą się na 1 lub A. Nie interesują Cię pliki kończące się na 2, B czy inne znaki. Oto jak to zrobić: $ ls doki dok2 dok3 doka dokb dokd dokument $ ls dok[1a] doki doka 7

Możesz również określić zestaw znaków jako zakres, a nie wpisywać jeden po drugim. Znak minus umieszczony pomiędzy dolną i górną granicą zestawu powoduje wybór wszystkich znaków z zadanego zestawu. Zakres jest zwykle określany przez używany zestaw znaków. W zestawie znaków ASCII zakres a-g spowoduje wybór wszystkich małych liter od a do g włącznie. W następnym przykładzie wybierane są pliki rozpoczynające się od wzorca dok, a kończące znakami od l do 3. Następnie wybierane są te, które kończą się literami od B do E. $ ls dok[1-3] dok1 dok2 dok3 $ ls dok[b-e] dokb dokd Możesz łączyć nawiasy kwadratowe z innymi znakami specjalnymi. 3 Standardowe wejście/wyjście i przekierowanie Kiedy został stworzony system Unix, ustalono, że należy odróżnić implementację fizyczną i logiczną organizację pliku. Fizycznie pliki Unixa są ułożone jako loso- wo rozrzucone bloki. Logicznie wszystkie pliki są zorganizowane jako ciągły strumień bajtów. Linux, jako wersja Unixa, ma taką samą organizację. Taka logiczna organizacja plików poszerza się na operacje wejścia i wyjścia. Dane w operacjach wejścia i wyjścia są zorganizowane jak plik. Dane wejściowe z kla- wiatury są umieszczane w strumieniu danych jako ciąg bajtów. Dane wyprowa- dzane z polecenia czy programu są również umieszczane w strumieniu danych w postaci ciągu bajtów. Wejściowy ciąg danych jest w Linuxie nazywany standardowym wejściem, a wyjściowy ciąg danych standardowym wyjściem. Ponieważ standardowe wejście i wyjście mają taką samą organizację jak plik, mogą łatwo współdziałać z plikami. Linux ma mechanizm przekierowań, pozwalający na łatwe przenoszenie danych z plików i do plików. Możesz przekierować standardowe wyjście, a więc zamiast wyświetlania wyniku na ekranie, zapamiętasz go w pliku. Możesz również przekierować standardowe wejście z klawiatury do pliku, a więc dane wejściowe będą czytane z pliku, zamiast z klawiatury. 3.1 Przekierowanie standardowego wyjścia Załóżmy, że zamiast wyświetlać listę plików na ekranie, chcesz zachować tę listę w pliku. Innymi słowy, chcesz skierować standardowe wyjście do pliku, a nie na ekran. Aby tego dokonać, umieszczasz operator przekierowania > (znak większości) i nazwę pliku w wierszu poleceń za poleceniem. W następnym przykładzie wynik polecenia cat jest przekierowany z ekranu do pliku. $ cat mojlist > nowylist Operator przekierowania tworzy nowy plik docelowy. Jeżeli plik już istnieje, zostanie nadpisany danymi ze standardowego wyjścia. 8

3.1.1 Tworzenie pliku przekierowania Mimo że operator przekierowania i nazwa pliku są umieszczane za poleceniem, operator przekierowania nie jest wykonywany po poleceniu. W rzeczywistości jest on wykonywany przed poleceniem. Operacja przekierowania tworzy plik i ustawia przekierowanie, zanim dostanie jakiekolwiek dane ze standardowego wyjścia. Jeżeli plik już istnieje, zostanie zniszczony i zastąpiony nowym plikiem o tej samej nazwie. W istocie rzeczy polecenie generujące dane wyjściowe jest wykonywane po tym, jak zostanie stworzony plik przekierowania. W następnym przykładzie wynik polecenia ls jest przekierowywany z ekranu do pliku. Pierwsze polecenie ls listuje pliki, a następne polecenie ls przekierowuje je do pliku listf. Następnie polecenie cat wyświetla listę plików zapisaną w listf na ekranie. Zwróć uwagę, że lista plików w listf zawiera nazwę pliku listf. Plik listf jest najpierw tworzony przez operację przekierowania, a następnie polecenie ls spowoduje jego wylistowanie razem z pozostałymi plikami. Następnie lista plików wygenerowana przez ls jest przekierowywana przez listf, zamiast być drukowana na ekranie. $ ls mojedane wstep przedmowa $ ls > listf $ cat listf mojedane wstep listf przedmowa Błędy pojawią się, jeżeli będziesz próbował używać tej samej nazwy pliku zarówno dla pliku wejściowego polecenia, jak i dla pliku przeznaczenia przekierowania. W tym przypadku, mimo że operacja przekierowania jest wykonywana wcześniej, plik wejściowy, jeżeli istnieje, zostanie zniszczony i zastąpiony plikiem o tej samej nazwie. Kiedy polecenie zostanie wykonane, stwierdzi, że plik wejściowy jest pusty. W pokazanym dalej poleceniu cat plik mojlist jest nazwą zarówno pliku przeznaczenia dla przekierowania, jak i pliku wejściowego dla operacji cat. Jak pokazano w następnym przykładzie, operacja przekierowania jest wykonywana wcześniej, niszcząc plik mojlist i zastępując go nowym, pustym plikiem mojlist. Następnie operacja cat jest wykonywana i próbuje odczytać dane z pliku mojlist. Jednak w tym momencie w pliku mojlist nie ma już nic. $ cat mojlist > mojlist 3.1.2 Dołączanie standardowego wyjścia Możesz również dołączać standardowe wyjścia do istniejącego pliku, używając operatora przekierowania >>. Zamiast nadpisywać plik, dane ze standardowego wyjścia są dodawane na końcu pliku. W następnym przykładzie pliki mojlist i starylist są dołączane do pliku wszystkielisty. Plik wszystkielisty będzie zawierał treści obu plików: mojlist i starylist. $ cat mojlist >> wszystkielisty $ cat starylist >> wszystkielisty 9

3.2 Standardowe wejście Wiele poleceń Linuxa może odbierać dane ze standardowego wejścia. Standardowe wejście odbiera dane z urządzenia lub pliku. Domyślnym urządzeniem dla standardowego wejścia jest klawiatura. Znaki wpisane na klawiaturze są umieszczane na standardowym wejściu, które następnie jest przekierowane do polecenia Linuxa. Polecenie cat bez argumentu w postaci nazwy pliku odczytuje dane ze standardowego wejścia. Kiedy wpisujesz dane na klawiaturze, każdy znak jest umieszczany na standardowym wejściu i kierowany do polecenia cat. Polecenie cat następnie przesyła znaki na standardowe wyjście - urządzenie ekranu - które wyświetla znaki na ekranie. Jeżeli spróbujesz to zrobić, zauważysz, że wprowadzony wiersz jest od razu wyświetlany na ekranie. Dzieje się tak w związku ze sposobem buforowania wiersza stosowanym w wielu systemach linuxowych. Buforowanie wiersza wymaga od użytkownika wprowadzenia całego wiersza, zanim jakiekolwiek dane wejściowe zostaną przesłane na standardowe wejście. Polecenie cat odbiera cały wiersz ze standardowego wejścia i od razu go wyświetla. W następnym przykładzie użytkownik wykonuje polecenie cat bez argumentów. Kiedy użytkownik wpisuje wiersz, jest on wysyłany do standardowego wejścia, które odczytuje polecenie cat i wysyła na standardowe wyjście: $ cat To jest nowy wiersz To jest nowy wiersz dla polecenia cat dla polecenia cat ^D $ Operacja cat będzie trwała aż do wprowadzenia znaku [CTRL+D] (^D) w wierszu. Znak [CTRL+D] jest znakiem końca pliku dla dowolnego pliku Linuxa. Pamiętaj,że zarówno standardowe wejście, jak i standardowe wyjście mają ten sam format co plik w Linuxie. Jeżeli połączysz polecenie cat z przekierowaniem, masz prosty sposób na zapamiętywanie tego, co wpiszesz w pliku. Jak pokazano w kolejnym przykładzie, wynik polecenia cat jest przekierowany do pliku mojedane. Plik mojedane będzie zawierał wszystkie wpisane z klawiatury dane. Polecenie cat w tym przypadku ciągle nie ma pliku jako argumentu. Będzie odbierało dane ze standardowego wejścia, czyli klawiatury. Operator przekierowania przekieruje wynik polecenia cat do pliku mojedane. Polecenie cat nie ma bezpośredniego kontaktu z żadnymi plikami. Po prostu odbiera dane wejściowe ze standardowego wejścia i wysyła wynik na standardowe wyjście. $ cat > mojedane To jest nowy wiersz dla polecenia cat ^D $ 10

3.3 Przekierowanie standardowego wejścia Tak jak standardowe wyjście, możesz również przekierowywać standardowe wejście. Standardowe wejście może być odbierane z pliku, a nie tylko z klawiatury. Operatorem przekierowywania standardowego wejścia jest znak mniejszości <. W następnym przykładzie standardowe wejście jest przekierowane tak, żeby odbierać dane z pliku mojlist, a nie z klawiatury. Zawartość pliku mojlist jest odczytywana ze standardowego wejścia przez operację przekierowania. Następnie polecenie cat odczytuje standardowe wejście i wyświetla zawartość pliku mojlist. $ cat < mojlist Witaj KOLEGO Jak się masz $ Możesz łączyć operacje przekierowań zarówno standardowego wejścia, jak i standardowego wyjścia. W następnym przykładzie polecenie cat nie ma argumentów w postaci plików. Bez argumentów w postaci nazw plików polecenie cat odbiera dane ze standardowego wejścia i wysyła je na standardowe wyjście. Jednak standardowe wejście zostało przekierowane tak, by odbierać dane z pliku, a standardowe wyjście zostało przekierowane tak, by umieszczać dane w pliku. $ cat < mojlist > nowylist 3.4 Potoki Z pewnością znajdziesz się w sytuacjach, w których trzeba przesłać dane z jednego polecenia do drugiego. Innymi słowy, będziesz chciał przesłać standardowe wyjście polecenia do innego polecenia, a nie do pliku wynikowego. Załóżmy, że chcesz wysłać listę nazw plików na drukarkę, aby ją wydrukować. Aby tego dokonać, potrzebujesz dwóch poleceń: polecenia ls do stworzenia listy nazw plików i polecenia lpr do wysłania tej listy na drukarkę. W istocie rzeczy potrzebujesz wyniku polecenia ls do wykorzystania go jako danych wejściowych dla polecenia lpr. Aby utworzyć takie połączenie w Linuxie, wystarczy wykorzystać tak zwany potok. Operator potoku (pionowa kreska), umieszczony pomiędzy poleceniami, tworzy połączenie między nimi. Standardowe wyjście jednego polecenia staje się standardowym wejściem drugiego. Operacja potoku odbiera wynik polecenia umieszczonego przed operatorem i wysyła te dane jako dane wejściowe do polecenia umieszczonego za operatorem potoku. Jak pokazano w następnym przykładzie, możesz połączyć polecenia ls i lpr w potok. Lista nazw plików utworzona przez polecenie ls jest przesyłana do polecenia lpr. $ ls lpr Możesz łączyć operację potoku z innymi cechami powłoki, takimi jak znaki specjalne. W następnym przykładzie drukowane są jedynie pliki z rozszerzeniem.c. Polecenie ls jest używane wraz z gwiazdką i.c do utworzenia listy nazw plików z rozszerzeniem.c. Następnie ta lista jest przekazywana do polecenia lpr. 11

$ ls *.c lpr Podczas gdy przekierowanie po prostu umieszcza wynik w pliku, potok wysyła wynik do innego polecenia Linuxa. Możesz zdziwić się, że nie można tego zreali- zować za pomocą przekierowania. Musisz pamiętać, że istnieje różnica pomiędzy plikiem a poleceniem: plik jest nośnikiem danych. Możesz zachowywać dane w pliku lub je stamtąd odczytywać. Polecenie jest programem wykonującym instrukcje. Polecenie może odczytywać lub zachowywać dane w pliku, ale samo polecenie nie jest plikiem. Z tego powodu operacja przekierowania działa na plikach, a nie poleceniach. Przekierowanie może przesyłać dane z programu do pliku, ale nie może przesyłać danych z programu do innego programu. Jedynie pliki, a nie inne programy mogą być celem operacji przekierowania. Mimo to możesz zasymulować potok za pomocą szeregu operacji przekierowań. Możesz wysłać wynik polecenia do pliku. Następnie, w kolejnym wierszu, możesz wykonać polecenie, wykorzystując plik jako przekierowane wejście. W następnym przykładzie użyto dwóch operacji przekierowań w dwóch oddzielnych poleceniach do wydrukowania listy nazw plików. To samo zadanie było wykonywane w poprzednim przykładzie za pomocą operacji potoku. Operacja potoku bierze dosłownie standardowe wyjście jednego polecenia i używa go jako standardowego wejścia drugiego polecenia. $ ls *.c > pliktymcz $ lpr < pliktymcz Do tego momentu używaliśmy listy nazw plików jako danych wejściowych, ale ważne jest, by zauważyć, że potoki działają na standardowym wyjściu poleceń bez względu na to, czym ono jest. Zawartość całego pliku lub nawet kilku plików może być przesłana przez potok z jednego polecenia do drugiego. W następnym przykładzie polecenie cat odczytuje i wyprowadza zawartość pliku mojedane, który następnie jest przesłany przez potok do polecenia lpr. $ cat mojedane lpr Niniejsze opracowanie powstało w oparciu o książkę Richarda Petersena: Arkana - Linux 12