Konsola i interpreter poleceń



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

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

Narzędzia informatyczne w językoznawstwie

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

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Tryb konsolowy - ćwiczenia. 012a

Windows XP Wiersz polecenia

Systemy operacyjne i sieci komputerowe Szymon Wilk System operacyjny 1

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

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Systemy operacyjne na platformach mobilnych 2 Podstawy obsługi powłoki Bash

Wstęp do systemu Linux

Technologie Informacyjne - Linux 2

Pracownia komputerowa. Dariusz wardecki, wyk II

MentorGraphics ModelSim

Powłoka interpreter poleceń systemu UNIX

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

Powłoka bash. Kurs systemu Unix 1

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

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

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

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

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

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Uruchamianie zadań w środowisku CLUSTERIX z wykorzystaniem klienta tekstowego systemu GRMS

Linux: potoki, przekierowania i inne operatory sterujące w przykładach

Powłoka, redyrekcja, potok

Ministerstwo Finansów Departament Informatyzacji Usług Publicznych

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Systemy Operacyjne. Część II Zarządzanie/Administracja Systemem. 5: Skrypty. autor: mgr inż. Andrzej Woźniak

Moduł 4: Strumienie, potoki, sterowanie procesami

Praca w środowisku Cygwin. Przygotował Mateusz Dudek

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

Laboratorium Strumienie w systemach UNIX 4.2 Filtry strumieniowe

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Pracownia Komputerowa wykład III

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Programowanie obiektowe

Znaki globalne w Linuxie

Python jest interpreterem poleceń. Mamy dwie możliwości wydawania owych poleceń:

Programowanie w języku Python. Grażyna Koba

Język C i C++. Podstawy. Zagadnienia do opanowania. Przykład 1. (modyfikuj kod, aby zrealizować punkty 5., 7.)

Tajemnice bconsole czyli pierwsze kroki z tekstową konsolą Bacula cz.1

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

Egzamin pisemny z przedmiotu: Systemy operacyjne Semestr I

Instrukcja korzystania z Virtual Box-a i SQLPLUS-a

BASH - WPROWADZENIE Bioinformatyka 4

Tworzenie oprogramowania

Systemy operacyjne Programowanie w języku powłoki sh

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

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Administracja systemem Windows XP

Windows 10 - Jak uruchomić system w trybie

1 Przygotował: mgr inż. Maciej Lasota

Pracownia Komputerowa

Ćwiczenie Nr 4 Administracja systemem operacyjnym z rodziny Microsoft Windows

Podstawy konfiguracji środowiska graficznego. Umieszczamy kursor na pustym obszarze na pulpicie i naciskamy prawy guzik:

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

Rozdział 5. Administracja kontami użytkowników

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

Zadanie 1. Stosowanie stylów

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Wiersz poleceń Windows

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

Laboratorium Systemów Operacyjnych Komputerów Tryb linii komend i programowanie wsadowe w systemach DOS/Windows

Ćwiczenie 1. Ćwiczenie 2. Ćwiczenie 3. Opisz działanie następujących komend systemowych : COPY EDIT FDISK FIND FORMAT XCOPY

Wstęp do Informatyki dla bioinformatyków

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

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

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

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

Zakład Systemów Rozproszonych

Telnet. Telnet jest najstarszą i najbardziej elementarną usługą internetową.

Pracownia Komputerowa wyk ad III

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Linux

Wprowadzenie do biblioteki klas C++

Spis treści. Rozdział 3. Podstawowe operacje na plikach...49 System plików Konsola Zapisanie rezultatu do pliku... 50

Systemy operacyjne / Programowanie w języku powłoki sh str.1/19

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

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Tryb konsolowy ćwiczenie b

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna

Podstawy technologii cyfrowej i komputerów

Podstawy informatyki

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

Python wstęp. Michał Bereta

Temat zajęć: Filtry, strumienie standardowe oraz przetwarzanie potokowe. stderr

Skrypty BASH a. Systemy Operacyjne 2. Mateusz Hołenko. 4 października 2012

Tomasz Greszata - Koszalin

Wstęp do systemu Linux

Ćwiczenie nr 14: System Linux

DOS Podstawowe komendy Przygotowanie dyskietki do pracy Praca z katalogami w systemie DOS Operacje kopiowania

Cyfrowe Przetwarzanie Obrazów i Sygnałów

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu

1. Podstawy...P Polecenia podstawowe...p... 18

Transkrypt:

ZGŁASZANIE BŁĘDÓW I ERRATA Rozdział 1. Konsola i interpreter poleceń 1.1. Wykorzystanie interpretera... 27 1.2. Przekierowania... 28 1.3. Przykładowe polecenia wykorzystujące przekierowania... 32 1.4. Bieżący katalog roboczy... 33 1.5. Zmienne środowiskowe... 34 1.6. Skrypt startowy... 38 1.7. Konsola okiem programisty... 40 Ćwiczenia... 44 Bibliografia... 44 23

Pomimo upływu lat konsola nadal jest jednym z podstawowych narzędzi wykorzystywanych przez zaawansowanych programistów i administratorów systemów w praktyce konsola i interpreter poleceń to często niezwykle wygodne i przydatne narzędzia, a w niektórych wypadkach stanowią wręcz jedyną możliwość skorzystania z pewnych programów. Zarówno konsola, jak i interpreter to de facto standard w przypadku większości unixowych systemów operacyjnych (rys. 1). Rysunek 1. ConEmu-Maximus 3, DOSBox 4 z uruchomioną aplikacją w trybie tekstowym oraz GNOME Terminal 5 Na samym początku warto wyjaśnić pewną nieścisłość związaną z używanymi terminami, a mianowicie: czym jest konsola, a czym interpreter poleceń? 3 Nakładka na emulator konsoli pod kontrolą systemu z rodziny Windows. 4 Emulator systemu komputerowego pracującego pod systemem DOS. 5 Domyślny emulator konsoli w niektórych wersjach systemu Ubuntu. 25

ROZDZIAŁ 1. KONSOLA I INTERPRETER POLECEŃ Konsola (nazywana również emulatorem terminalu lub potocznie terminalem) jest pewnego rodzaju środowiskiem wykonania, z którego mogą (ale nie muszą) korzystać aplikacje należy od razu zaznaczyć, że w danym momencie z jednej konsoli może korzystać wiele aplikacji. Elementem centralnym jest bufor tekstowy o określonej (ale niekoniecznie stałej) wielkości, który jest w całości lub częściowo wyświetlany w oknie konsoli i który może być pośrednio lub bezpośrednio modyfikowany przez wszystkie aplikacje z niej korzystające. Dodatkowo w danym momencie jedna aplikacja jest tzw. aplikacją pierwszoplanową (foreground) wejście z klawiatury, a czasem również myszki, jest przekazywane właśnie do niej. Domyślnie dane wypisywane przez aplikację na standardowe wyjście (stdout) oraz standardowe wyjście błędów (stderr) są również odbierane przez konsolę, która wyświetla tekst, biorąc pod uwagę wszystkie znaki specjalne i sekwencje kontrolne, oraz pozycję kursora. Analogicznie wejście z klawiatury jest przesyłane przez konsolę na standardowe wejście (stdin) aplikacji pierwszoplanowej 6. Z punktu widzenia użytkownika konsola jest po prostu tekstowym interfejsem wykorzystywanym przez niektóre programy. Jedną z podstawowych aplikacji korzystających z konsoli jest właśnie interpreter poleceń (command processor lub command-line interpreter), nazywany czasem powłoką systemową (shell) 7, który zwyczajowo udostępnia użytkownikowi zestaw poleceń i funkcji do: Nawigacji w systemie (polecenia typu cd, dir lub ls, pwd itp.). Konfigurowania środowiska uruchomieniowego, w tym zmiennych środowiskowych (set, export, path, ulimit itp.). Uruchamiania innych programów z podanymi argumentami i ewentualnymi przekierowaniami strumieni stdin/stdout/stderr. Tworzenia skryptów automatyzujących powyższe czynności. Przykładowe interpretery poleceń to m.in: cmd.exe (Windows); PowerShell (Windows); Bash (GNU/Linux itp.); Z shell (GNU/Linux itp.). W dalszych podrozdziałach opiszę główne koncepty (przekierowania, argumenty, zmienne środowiskowe, katalog roboczy) wykorzystywane przy pracy z interpreterami poleceń, przy czym skupię się na dwóch z nich: cmd.exe (Windows 7) oraz Bash (Ubuntu 14.04.2 LTS). Ponieważ będzie to opis skrócony, zachęcam czytelników do bliższego 6 W praktyce wszystkie procesy posiadające dostęp do dyskryptora standardowego wejścia w szczególności procesy potomne mogą odbierać wprowadzane dane, choć kolejność dostępu do danych może być niedeterministyczna. 7 Termin shell w odniesieniu do interpretera poleceń jest współcześnie rzadziej używany niż w czasach, gdy systemy operacyjne nie posiadały trybu graficznego i były uruchamiane w trybie teksto wym, w którym jedyną powłoką systemową był właśnie interpreter poleceń. Obecnie shell pasuje bardziej do graficznych interfejsów, takich jak Windows Explorer czy Ubuntu Unity, jednak jest on nadal używany w obu znaczeniach na systemach unixowych. 26

1.1. WYKORZYSTANIE INTERPRETERA przyjrzenia się wybranemu przez siebie interpreterowi we własnym zakresie. Pominę również opis większości poleceń (zarówno wbudowanych, jak i dostępnych w systemie operacyjnym) do operacji na plikach i katalogach zostały one opisane w wielu innych, łatwo dostępnych publikacjach, np.: Bash: http://www.tldp.org/ldp/gnu-linux-tools-summary/html/c2690.htm http://www.tldp.org/ldp/gnu-linux-tools-summary/html/x3289.htm cmd.exe: http://en.wikibooks.org/wiki/guide_to_windows_commands/file_and_directory_management http://en.wikibooks.org/wiki/guide_to_windows_commands/file_commands 1.1. Wykorzystanie interpretera Poniżej zaprezentowalem kilka przykładów użycia interpretera wraz z krótkim, wysokopoziomowym opisem ich działania. Większość użytych mechanizmów jest wyjaśniona w dalszej części tego rozdziału. (Ubuntu) reset && make test (Windows) cls && make test Wyczyszczenie okna konsoli oraz rekompilacja projektu i jego uruchomienie (przy wykorzystaniu skryptu Makefile). W przypadku dystrybucji Ubuntu osobiście preferuję stosowanie komendy reset zamiast clear, ponieważ w emulatorze konsoli, z którego korzystam (GNOME Terminal), reset czyści cały bufor tekstowy konsoli, natomiast clear jedynie przewija ekran niżej tak, by wydawało się, że został on wyczyszczony jest to istotne, gdy kompilacja lub uruchomienie projektu powoduje wypisanie dużej ilości tekstu, a dla nas wygodne byłoby szybkie przewinięcie ekranu na początek danych. Alternatywnie można by skorzystać np. z polecenia make test 2>&1 less. (Ubuntu) python gen_input.py LD_PRELOAD=`pwd`/debug.so./app Uruchomienie skryptu gen_input.py, który generuje na standardowe wyjście pewne dane wejściowe dla aplikacji app są one przekazywane na jej standardowe wejście. Dodatkowo niektóre importowane przez aplikację funkcje zostaną podmienione na funkcje o tej samej nazwie, znajdujące się w dynamicznej bibliotece debug.so, która umieszczona jest w obecnym katalogu roboczym. (Ubuntu) for i in {1..1000}; do./a.out $i; cp out.data data/$i.data; done (Windows) for /l %i in (1,1,1000) do @(a.exe %i && copy out. data data\%i.data) Uruchomienie aplikacji a.out / a.exe tysiąc razy z kolejnymi liczbami (od 1 do 1000) w pierwszym parametrze. Za każdym razem wygenerowany przez aplikację plik 27

ROZDZIAŁ 1. KONSOLA I INTERPRETER POLECEŃ out.data jest kopiowany do katalogu data i nadawana jest mu nowa nazwa w formacie <liczba z argumentu>.data. (Ubuntu) watch pep8 test.py Co dwie sekundy (domyślne opóźnienie programu watch) okno konsoli jest czyszczone, a następnie uruchomiony zostaje walidator stylu PEP 8 języka Python. Jest to wygodne rozwiązanie, jeśli w tym czasie w osobnym oknie poprawiamy skrypt test.py i chcemy od razu widzieć, czy zmiany odniosły zamierzony skutek (tj. czy ostrzeżenie o niepra widłowym stylu zniknęło). Kilka innych przykładów pojawia się również w innych miejscach w tym rozdziale. 1.2. Przekierowania Jedną z najważniejszych cech interpreterów jest możliwość przekierowania standardowego wyjścia (oznaczanego najczęściej deskryptorem 1), wyjścia błędów (2) i wejścia (0) procesów oraz łączenia ich między procesami. Najłatwiej jest to wytłumaczyć na przykładach (które są poprawne zarówno dla Bash, jak i cmd.exe; prawdopodobnie zadziałają również w przypadku większości innych współczesnych interpreterów): program > xyz Wszystkie dane wypisywane na standardowe wyjście przez uruchomiony program trafią do pliku xyz (jeśli plik ten istnieje, zostanie nadpisany). Jest to idealne rozwiązanie, gdy danych jest dużo, a my chcemy je na spokojnie przejrzeć lub użyć jako danych wyjściowych w późniejszym terminie. Alternatywnie można by napisać program 1>xyz, choć nie jest to konieczne, ponieważ standardowe wyjście (1) jest domyślnym argumentem dla przekierowania w tę stronę. program 2> errors Podobnie jak wyżej, z tą różnicą, że do pliku errors trafią dane wypisywane na standardowe wyjście błędów. program >> xyz Analogicznie jak w powyższych przypadkach, przy czym dane (ze standardowego wyjścia) zostaną dopisane na koniec pliku xyz. program < input Program otrzyma dane z pliku input na standardowe wejście (tj. czytanie ze standardowego wejścia będzie równoznaczne z czytaniem z pliku input). To przekierowanie idealnie nadaje się do powtarzanych wielokrotnie testów aplikacji odczytujących dane ze standardowego wejścia dzięki temu nie trzeba ich za każdym razem wprowadzać ręcznie. program 2>&1 Przekierowanie standardowego wyjścia błędów na standardowe wyjścia; przydatne rozwiązanie, jeśli zachodzi potrzeba przefiltrowania standardowego wyjście błędów (patrz dalej). 28