2.2 Polecenia i cechy powłoki bash



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:

Współczesne systemy komputerowe

Packet Tracer - Nawigacja w IOS

Wstęp do systemów wielozadaniowych laboratorium 14 Środowisko i aliasy

Pracownia komputerowa. Dariusz wardecki, wyk II

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Trochę o plikach wsadowych (Windows)

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

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

Pracownia Komputerowa wykład III

EDYTOR TEKSTOWY VIM WYBRANE POLECENIA. Pracownia Informatyczna 5

Windows XP Wiersz polecenia

Ćwiczenie nr 14: System Linux

Laboratorium - Praca z poleceniami wiersza poleceń w systemie Windows

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

Technologie Informacyjne - Linux 3

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

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

Linux cz.3: polecenia systemowe, ćwiczenia

Pracownia Komputerowa wykład III

Ćwiczenie 9 Linux - operacje systemu plików

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

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

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

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

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

Technologie Informacyjne - Linux 1

dokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika

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

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

Podstawy użytkowania Linux a

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

Zespół Szkół Technicznych w Suwałkach. Pracownia Systemów Komputerowych. Ćwiczenie Nr 15 PRACA W TRYBIE MS-DOS. Opracował Sławomir Zieliński

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

System plików - wprowadzenie. Ścieżki dostępu. Informatyka ćw 1

Techniki zaznaczania plików i folderów

Wstęp do obsługi Linux a

Ćwiczenia Linux konsola

BASH - WPROWADZENIE Bioinformatyka 4

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

1. Wyrażenia regularne. Symbole w wyrażeniach regularnych 1 :

Projektowanie aplikacji internetowych Pisanie skryptów wiersza poleceń - pętle

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

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

Podręcznik użytkownika programu. Ceremonia 3.1

Computer Setup Instrukcja obsługi

I. Interfejs użytkownika.

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

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

TEMAT : System operacyjny MS DOS pliki wsadowe

Technologie Informacyjne - Linux 2

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

1 Przygotował: mgr inż. Maciej Lasota

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Znaki globalne w Linuxie

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

Dodatek nr 1: Niektóre polecenia systemu Linux (shell tcsh) A) Informacje wstępne

Pracownia Komputerowa wyk ad II

Ćwiczenie 1: Pierwsze kroki

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

UŻYTKOWNIK. APLIKACJE UŻYTKOWE (wszelkie programy zawarte domyślnie w systemie operacyjnym jak i samodzielnie zainstalowane przez użytkownika systemu)

Pracownia internetowa w szkole ZASTOSOWANIA

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

System plików. Podstawy systemu Linux

Pracownia Komputerowa wykład II

Wstęp do systemu Linux

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

Chemiateoretyczna. Monika Musiał. Ćwiczenia

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Formularz pierwszej oceny w służbie cywilnej

lekcja 8a Gry komputerowe MasterMind

Pracownia Komputerowa wyk ad III

Systemy operacyjne- tematy do opracowania

Ćwiczenie 1. Podstawowe wiadomości

2.6 Edytor sed (Stream Editor)

Prawa dostępu do plików (1)

Instrukcja korzystania z Virtual Box-a i SQLPLUS-a

Programowanie w języku Python. Grażyna Koba

2. Dostosuj listę Szybkiego Dostępu

plansoft.org Zmiany w Plansoft.org Błyskawiczny eksport danych PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Tryb konsolowy ćwiczenie b

Menu główne FUNKCJE SERWISOWE

Skrypty powłoki w systemie Linux

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

1. Wybierz polecenie rysowania linii, np. poprzez kliknięcie ikony W wierszu poleceń pojawi się pytanie o punkt początkowy rysowanej linii:

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

Edytor tekstu Notatnik

Powłoka bash. Kurs systemu Unix 1

Skróty klawiaturowe w PowerPoint

LeftHand Sp. z o. o.


Skróty klawiaturowe w systemie Windows 10

Informatyka III : Instrukcja 1

Jednorazowe zaplanowanie zadania program at.

Transkrypt:

2-44 2.2 Polecenia i cechy powłoki bash Współ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 porównaniu chociażby z interfejsem systemu operacyjnego Microsoft Windows. Pisanie na klawiaturze wydaje się trudniejsze, mniej wygodne niż klikanie myszką. Czy kiedykolwiek próbowałeś/aś zmienić uprawnienia dla 120 plików w Microsoft Windows? Bezdyskusyjnie, bash dostarcza administracyjne w systemie. funkcjonalność upraszczająca pracę W tym rozdziale zajmiemy się najciekawszymi możliwościami powłoki bash. 2.2.1Uzupełnianie wpisywanych poleceń i nazw plików Powłoka bash ma funkcję uzupełniania (kompletacji) wprowadzanych w wierszu poleceń nazw plików 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 powtórnym naciśnięciu klawisza Tab - bash pokaże wszystkie możliwości. Przykładowo wprowadzamy kolejno: M, K, Tab, Tab pojawi się mkallcomposecac mkfontdir mkmanifest hes mkfontscale mknod mkcfm mkhtmlindex mkpasswd mk_cmds mkhybrid mktemp mkcomposecache mkinfodir mkzftree mkdir mkinodedb2 mkzimage_cmdline mkdirhier mkisofs mkfifo

2-45 Ta cecha ułatwia wprowadzanie długich nazw pliku (i ścieżek dostępu). 2.2.2 Stosowanie historii poleceń w bash bash zapamiętuje wszystkie wprowadzane polecenia. Domyślnie są one zapisywane w ukrytym pliku.bash_history w katalogu domowym użytkownika. Maksymalnie plik ten przechowuje 1000 wierszy poleceń. By wyświetlić zawartość pliku, należy użyć polecenia history. Przykład: history 1 ls i 2 ls li 3 history By wyświetlić polecenia przechowywane w pamięci podręcznej (cache), należy użyć klawiszy strzałek. Wyświetlane jest jedno polecenie. Naciśnięcie klawisza á wyświetli poprzednie polecenie, naciśnięcie klawisza â pokaże następne polecenie z historii poleceń. Po znalezieniu poszukiwanego polecenia można zmienić jego zawartość (edycja) i wykonać naciskając klawisz Enter. Przy przeglądaniu zapisów historii można wybrać określone polecenia (filtrowanie poleceń z historii). Wprowadzenie jednej lub więcej liter lub naciśnięcie klawisza PageUp lub PageDown spowoduje wyświetlenie poprzedniego lub następnego polecenia zaczynającego się od tych liter z pamięci podręcznej historii poleceń. Jeżeli wprowadzimy część polecenia (niekoniecznie początkową), a następnie naciśniemy kombinację klawiszy Ctrl i R, to zostaną wyszukane i wyświetlone polecenia zawierające podany ciąg znaków. Proces wyszukiwania zaczyna się od ostatniego polecenia w historii poleceń. Ćwiczenie. Korzystanie z historii poleceń w bash Podaj ostatnie polecenia z historii zawierające następujące słowa: test mkdir

2-46 mv cp 2.2.3Używanie zmiennych bash Zmienne środowiskowe oraz zmienne konfigurację oraz dostosowanie. powłoki bash umożliwiają jego Zmienne środowiskowe kontrolują zachowanie programu uruchamianego z powłoki. Zmienne powłoki kontrolują zachowanie samej powłoki. Zmienne powinno się pisać dużymi literami (np. PATH). własne zmienne, dobrze również przestrzegać tej zasady. Jeżeli definiujemy W skryptach powłoki używa się nazw zmiennych pisanych małymi literami. Najważniejsze zmienne środowiskowe, to: PATH przy startowaniu każdego programu, system szuka go kolejno w katalogach podanych tutaj (katalogi rozdzielone są znakiem : ). Ważna jest więc kolejność (porządek) przechowywanych ścieżek. HOME katalog domowy użytkownika. USER nazwa logowania użytkownika. By wyświetlić wartość zmiennej powłoki lub środowiska, napisz echo $zmienna Przykład: geeko@da51:~ > echo $HOME /home/geeko geeko@da51:~ > Dla jasności będziemy również w tekście podręcznika pisać znak $ przed nazwą zmiennej

2-47 By ustawić wartość zmiennej lub zdefiniować nową zmienna, należy w wierszu poleceń napisać: zmienna=wartość Przykład: geeko@da51:~ > MYVAR=myvalue geeko@da51:~ > echo $MYVAR myvalue geeko@da51:~ > Wartość może być liczbą, znakiem lub łańcuchem (ciągiem). Jeżeli ciąg znaków zawiera spację, należy podać go w cudzysłowie, jak w przykładzie: geeko@da51:~ > MYVAR="my value" geeko@da51:~ > echo $MYVAR my value geeko@da51:~ > Polecenie echo można też użyć do wyświetlenia na ekranie określonego tekstu (komunikatu): echo Hello Geeko Hallo Geeko Ćwiczenie. Używanie zmiennych bash - część I Zapisz wartość zmiennej $PATH na Twoim komputerze: Jeżeli chcemy na ekranie wyświetlić coś takiego: Zmienna $HOME jest ustawiona na zawartość_zmiennej_$home podana powyżej metoda nie zadziała poprawnie. Otrzymamy: echo Variable $HOME is set to $HOME Variable /home/geeko is set to /home/geeko

2-48 Wstawienie tekstu w cudzysłów również nie zadziała: echo "Variable $HOME is set to $HOME" Variable /home/geeko is set to /home/geeko Pojedynczy cudzysłów da natomiast następujący rezultat: echo 'Variable $HOME is set to $HOME' Variable $HOME is set to $HOME Jest jednak parę dobrych rozwiązań tego problemu. Przykłady: kombinacja cudzysłowów echo 'Variable $HOME is set to' "$HOME" Variable $HOME is set to /home/geeko kombinacja mieszana znaków cudzysłowia i nie echo 'Variable $HOME is set to' "$HOME" Variable $HOME is set to /home/geeko maskowanie znaku $ ukośnikiem \ echo "Variable \$HOME is set to $HOME" Variable $HOME is set to /home/geeko Ćwiczenie. Używanie zmiennych bash - część II Przećwicz wszystkie przykłady z tego rozdziału używając zmiennej $PATH zamiast zmiennej $HOME.

2-49 2.2.4 Używanie aliasów w bash Definiowanie aliasów pozwala na tworzenie skrótów klawiszowych dla poleceń oraz ich opcji lub na tworzenie poleceń o całkowicie innych nazwach. W SUSE Linux Enterprise Desktop 10 używając poleceń dir, md, ls używamy aliasów. Polecenie alias pokazuje zdefiniowane w systemie aliasy. Przykładowy wynik polecenia alias: alias +='pushd.' alias ='popd' alias..='cd..' alias...='cd../..' alias beep='echo en "\007"' alias dir='ls l' alias l='ls alf' alias la='ls la' alias ll='ls l' alias ls='/bin/ls $LS_OPTIONS' alias ls l='ls l' alias md='mkdir p' alias o='less' alias rd='rmdir' alias rehash='hash r' alias unmount='echo "Error: Try the command: umount" 1>&2; false' alias which='type p' alias you='su c "/sbin/yast2 online_update"' Widzimy, że dir jest aliasem polecenia ls -l, a md to alias polecenia mkdir -p. Możemy zapytać o znaczenie pojedynczego aliasu: alias md alias md='mkdir p' alias dir

2-50 alias dir='ls l' Celem sprawdzenia, czy dane polecenie jest aliasem, należy użyć polecenia type. type powie nam, czy dane polecenie jest wbudowanym poleceniem powłoki, zwykłym poleceniem, funkcją czy aliasem. Dla zwykłych poleceń, type wyświetli ścieżkę dostępu do programu. Dla aliasów wyświetli element, którego nazwa jest aliasem. type a ls ls is aliased to `/bin/ls $LS_OPTIONS' ls is /bin/ls Powyższy przykład pokazuje, że ls jest aliasem użytym dla dodania pewnych opcji do polecenia. Opcja -a pozwala na wyświetlenie zarówno zawartości aliasu jak i ścieżki do oryginalnego polecenia ls. ls używa opcji przechowywanych w zmiennej $LS_OPTIONS. Te zmienne są odpowiedzialne za wyświetlanie przez ls różnych typów plików różnymi kolorami. Wynik działania zmodyfikowanego i zastąpionego aliasem polecenia ls: Większość systemowych /etc/bash.bashrc. aliasów jest zdefiniowanych w pliku Do definiowania aliasów również użyjemy polecenia alias. Składnia polecenia: alias nazwa_aliasu= polecenie z opcjami Do usunięcia z kolei użyjemy polecenia unalias. Składnia polecenia: unalias nazwa_aliasu Aliasy zdefiniowane w ten sposób działają wyłącznie w bieżącej powłoce, jak

2-51 w poniższym przykładzie: alias ls="echo Hello" ls Hello bash ls bin Desktop Documents public_html Po zakończeniu sesji pracy z powłoką, aliasy te znikają. By zachować je na stałe, należy zapisać je w jednym z plików konfiguracyjnych powłoki. W SUSE Linux Enterprise Desktop, plik ~/.alias jest tworzony dla aliasów definiowanych przez każdego z użytkowników. Plik ten jest wczytywany przez ~/.bashrc, gdzie znajduje się odpowiednie do tego polecenie. Aliasy nie zastąpią skryptów, ale mogą znacznie zaoszczędzić czasu przy pracy w linii poleceń powłoki. Ćwiczenie. Używanie aliasów w bash Utwórz nowy alias spy spakowanego przez gzip. 2.2.5 Używanie wyszukiwaniu wzorców wyświetlający i zawartość zmiennych archiwum globalnych tar przy Czasami chcemy wykonywać operację na grupach plików lub katalogów, bez wymieniania wszystkich po kolei. W takich przypadkach można skorzystać ze wzorców wyszukiwania: zmienna globalna? - zastępuje pojedynczy znak (z wyjątkiem ukośnika / ) ls /bin/s? /bin/sh /bin/su

2-52 zmienna globalna * zastępuje dowolnej długości ciąg znaków (pusty też) za wyjątkiem kropki. na początku nazwy pliku lub ukośnika / : ls /bin/s* /bin/sash /bin/setkeycodes /bin/sh /bin/sort /bin/scsidev /bin/setleds /bin/showconsolefont /bin/stty /bin/sed /bin/setmetamode /bin/showkey /bin/su /bin/setfont /bin/setserial /bin/sleep /bin/sync [0-9] zastępuje dowolny ze znaków kwadratowego (tutaj: cyfry od 0 do 9). podanych wewnątrz nawiasu ls /bin/s[e h]* /bin/sed /bin/setleds /bin/sh /bin/setfont /bin/setmetamode /bin/showconsolefont /bin/setkeycodes /bin/setserial /bin/showkey [abcd] zastępuje jeden ze znaków a, b, c, d. ls /bin/s[abcd]* /bin/sash /bin/scsidev [a-ew-z] zastępuje dowolny znak z zakresów a-e i w-z ls /bin/s[a cm t]* /bin/sash /bin/scsidev /bin/sort /bin/stty [!abc] zastępuje dowolny znak z wyjątkiem a,b oraz c. ls /bin/s[!eh]* /bin/sash /bin/scsidev /bin/sleep /bin/sort /bin/stty /bin/su /bin/sync

2-53 Uwaga. Znaczenie niektórych wzorców wyszukiwania różni się od znaczenia tych wzorców jako wyrażeń regularnych ( w dalszej części podręcznika) Jeżeli używamy wzorców wyszukiwania (zmiennych globalnych), powłoka porównuje je ze wszystkimi nazwami plików, a następnie zastępuje wyrażenie wszystkimi znalezionymi nazwami. Uwaga. Porządek znaków we wzorcu jest inny dla zwykłych użytkowników i użytkownika root, ponieważ domyślnie używają oni innego kodowania znaków. Dla zwykłych użytkowników (kodowanie UTF-8) znak małej litery jest tuż za znakiem dużej litery (między A i C będzie aba AaBaC). Dla użytkownika root (kodowanie POSIX) wszystkie małe litery są za dużymi (między A i C będzie tylko B ABC). Zmienna $LANG odpowiada za język. W poniższym przykładzie język jest ustawiony na US English z kodowaniem UTF-8: echo $LANG en_us.utf 8 A tutaj mamy język polski, również z kodowaniem UTF-8: malgosia@mp:~> echo $LANG pl_pl.utf 8 malgosia@mp:~> Po przełączeniu się na konto roota, widzimy, że kodowanie jest inne: malgosia@mp:~> su Password: mp:~ # echo $LANG POSIX mp:~ # Uwaga. UTF-8 (Unicode) obsługuje wszystkie rodzaje liter, nie tylko łacińskie, podczas gdy POSIX (ASCII) ma tylko litery łacińskie Ćwiczenie. Używanie wzorców wyszukiwania Ile programów w katalogu /bin ma nazwę...

2-54 która zaczyna się od liter sa? która zaczyna się od litery x, y lub z? która kończy się literą s? trzyliterową? która ma w nazwie przynajmniej jedną cyfrę?