Linux. Wprowadzenie do systemu. Koło Naukowe Systemów Open Source Wyższa Szkoła Biznesu - National-Louis University Marcin Pawełkiewicz mpawelkiewicz@wsb-nlu.edu.pl Nowy Sącz, 5 grudnia 2006
Wprowadzenie. FHS 1 VIM 2 - File System Hierarchy Standard. - Vi IMproved SSH - bezpieczna powłoka 3. SSH to aplikacja typu klient-serwer pozwalająca na pracę terminalową na zdalnym komputerze. SSH jako następca protokołu telnet został wyposażony w mechanizmy silnego uwierzytelniania oraz szyfrowania sesji w oparciu o bezpieczny klucz. Program zapewniając szyforwanie przesyłanych danych jest używany także do przesyłania plików (SCP, SFTP), zdalnej kontroli zasobów czy tunelowania połączeń 4. ssh użytkownik@serwer polecenie nawiazujące połączenie ze zdalnym komputerem. Gdzie szukać pomocy. Dokumentacja: whatis polecenie wyświetla krótki opis podanego programu. whatis przeszukuje bazę manuali i wyświetla każdy opis pasujący do szukanej frazy. whatis crontab man interfejs odwoławczy do dokumentów (manuali) pomocy programów, narzędzi lub funkcji. Wyniki wyszukiwania dzielą się na sekcje. man 1 crontab sekcja o programie wykonywalnym lub komendzie shella. man 5 crontab sekcja o formacie i konwencji pliku. man -k klucz odpowiada funkcjonalnością narzędziu apropos 5. info interfejs odwoławczy do dokumentów info 6. Konqueror man:info, info:info Pomoc do zainstalowanego oprogramowania. System GNU/Linux Debian /usr/share/doc/package-name/ System Novell SUSE 3 Secure Shell 4 Wikipedia. Wolna Encyklopedia, SSH, http://pl.wikipedia.org/wiki/ssh 5 Więcej informacji w man apropos 6 Więcej informacji w man 1 info 2
/usr/share/doc/packages/package-name/ /usr/share/doc/release-notes/ Dodatkowe źródła informacji dostępne w Internecie. - http://www.debian.org/ - http://www.debian-administration.org/ - http://www.suse.com/ - http://www.linux.org/ - http://www.linux.com/ - http://www.linuxjournal.com/ - http://www.tldp.org/ - http://www.linuxplanet.com/ - http://www.securityfocus.com/ (security) - http://www.kernel.org/ - http://www.google.com/linux - http://www.jtz.org.pl/ Zarzadzanie zasobami komputera. cd polecenie zmienia aktualny katalog na wskazany przez użytkownika (change directory). cd - zmiana katalogu na ostatni poprawny katalog. pwd polecenie wyświetla katalog w którym użytkownik aktualnie się znajduje. pwd -P wyświetla aktualny katalog użytkownika z pominięciem linków symbolicznych. touch polecenie modyfikuje timestamp pliku. touch plik jeżeli plik nie istnieje zostanie utworzony, w przeciwnym przypadku zostanie zmodyfikowany jego czas modyfikacji i dostępu. echo polecenie wyświetla podany tekst. echo "Test polecenia echo" 3
tee program czyta ze standardowego wejścia i zapisuje do standardowego wyjścia i pliku. echo "Test polecenia tee tee plik.txt cat polecenie łączy i wyświetla zawartość pliku lub plików. more polecenie wyświetla zawartość pliku lub plików filtrując zawartość tak aby zmieściła się na stronie ekranu. less polecenie posiada podobną funkcjonalność do more, umożliwia jednak poruszanie się po wyświetlonym pliku do przodu jak i do tyłu. Aplikacja nie musi czytać całej zawartości pliku aby go wyświetlić. head polecenie wyświetla początek pliku. tail polecenie wyświetla koniec pliku. tail -f /var/log/messages polecenie czyta i wyświetla nowe liniki z końca podanego pliku. mv polecenie przenosi lub zmienia nazwę pliku. mv -i plik / zapytaj o potwierdzenie przed przeniesieniem. mv -u plik / przenieś tylko pliki, które sa nowsze od docelowych o tej samej nazwie. mv plik1 plik2 zmień nazwę pliku. cp polecenie kopiuje pliki lub katalogi. cp -R kopiowanie rekursywnie. cp -a kopiuj i archiwizuj. cp -r source/. dest/ skopiuj z uwzględnieniem ukrytych plików. cp -r source/* dest/ skopiuj bez uwzględnienia ukrytych plików. mkdir polecenie tworzy nowy katalog. mkdir -p /dir1/dir2/ utwórz kompletne drzewo katalogów. rmdir polecenie usuwa puste katalogi. rm polecenie usuwa pliki lub katalogi. rm -i plik zapytaj zanim usuniesz. rm -f folder usuń pełne katalogi. 4
ln polecenie tworzy link, powiązanie pomiędzy plikami 7. ln plik1 plik2 hard link. ln -s plik1 plik2 symlink, link symboliczny. ls polecenie wyświetla zawartość katalogu. ls -a wyświetla pliki ukryte. ls -l użyj pełnego formatowania typu lista. Przykład z użyciem wyrażeń regularnych 8 (search patterns): ls xc* wyświetl pliki zaczynajace się od liter xc. ls xc[alo]* wyświetl pliki zaczynajace się od xc, które zawieraja a, l lub o. ls xc[a-bf-h] wyświetl pliki zaczynające się od xc, które zawieraja litery z zakresów a do b i f do h. ls xc[!o]* wyświetl pliki zaczynające się od xc, których trzecia litera nie jest o. ls xc*l* wyświetl pliki zaczynajace się od xc, które w dowolnym ciagu znaków zawieraja literę l. ls???? wyświetl pliki, które zawieraja cztery znaki w nazwie. ls????* wyświetl pliki, które zawieraja cztery lub więcej znaki w nazwie. ls [!a-r]* wyświetl pliki, które nie zaczynają się od zakres od a do b. find polecenie pozwala wyszukiwać pliki w systemie. find miejsce kryterium akcja kryterium: -ctime, -gid, -group, -name, -size, -type, -uid, -user akcja: -print, -exec find /home/user -name nazwa* -type f -exec grep kolo {}; -print locate polecenie wyświetla pliki z bazy, które pasują do szukanego wzorca 9. which polecenie wyświetla ścieżkę dostępu do szukanej komendy. which cut whereis polecenie pozwala zlokalizować pliki binarne (-b), source(-s) i manuale(-m) w systemie. whereis cut 7 Więcej informacji http://en.wikipedia.org/wiki/hard_links/ i http://en.wikipedia.org/wiki/symbolic_link/ 8 Więcej informacji o wyrażeniach regularnych (regular expressions) w man 7 regex. 9 Więcej informacji w man locate i man updatedb. 5
type polecenie wyświetla informacje o poleceniu jakie jest wykonywane przy wywołaniu wskazanej komendy. type -P cut grep, egrep polecenia wyświetlaja linie ze wskazanego pliku pasujące do szukanego wzorca 10. egrep (b B)lurb file* egrep [0-9]{6} file Mechanizmy rozszerzania w powłoce Bash. Mechanizm rozszerzania w powłoce Bash polega na zastępowaniu fragmentów tekstu w wywołanym poleceniu innym tekstem. rozszerzanie nawiasów klamrowych zamiana pojedynczego słowa na kilka słów. echo 200{0,1,2,3,4,5,6} rozszerzanie tyldy katalog domowy aktualnego użytkownika, aktualny lub poprzedni katalog roboczy. echo ~ echo ~+ echo ~- rozszerzanie parametrów i zmiennych zmienne środowiskowe. echo ${ZMIENNA} wyświetla zmienną. ${ZMIENNA:=wartość} jeżeli zmienna nie istnieje to zostanie utworzona ze zdefiniowaną wartościa. substytucja komend wykonanie komendy i podstawienie wyniku jej działania na standardowe wyjście. kill -9 pidof program rozszerzanie arytmetyczne podstawianie wyniku działania arytmetycznego. echo $((2+2)) 10 Polecenie egrep działa tak samo jak grep -E 6
rozszerzanie ścieżek dopasowywanie listy wzorców.?(wzorzec) pojedyncze wystapienie wzorca lub jego brak. *(wzorzec) dowolna ilość wystapień wzorca lub ich brak. +(wzorzec) jedno lub więcej wystapienie wzorca. @(wzorzec) dokłanie jeden wzorzec.!(wzorzec) negacja, dopasowanie wykluczajace podane wzorce. Potoki i przekierowania (piping and redirection) 11. Standardowe wejście, przekierowanie: < Standardowe wyjście, przekierowanie: > Standardowe wyjście błędu, przekierowanie: 2> ls /tmp /recive > lista ls /tmp /recive > lista 2>&1 echo Test > plik przekierowanie wyniku polecenia echo do pliku nadpisując jego wcześniejszą zawartość. echo Test >> plik przekierowanie i dodanie wyniku polecenia echo do końca pliku. Użycie wyniku wyjścia jednej operacji jako wejście następnej. komenda1 komenda2 ls -l tee lista2 przekierowanie rezultatu polecenia ls do nowego pliku utworzonego za pomocą polecenia tee. (date, w) > liast3 przekierowanie rezultatu dwóch poleceń do pliku. komenda1&&komenda2 komenda2 wykona się tylko wtedy gdy wykona się komenda1. komenda1 komenda2 komenda2 wykona się tylko wtedy gdy nie wykona się komenda1. Archiwizacja. Kompresje jar, war, zip, tar, gz, bz2. 12 tar narzędzie do archiwizacji danych. Tar nie jest programem użytkowym do kompresji. tar -cvf pliki.tar katalog archiwizacja katalogu do pliku tar tar -xvf pliki.tar wyodrębnienie plików z archiwum pliki.tar tar -tvf pliki.tar wyświetlenie zawartości archiwum 11 Więcej informacji w man bash. 12 gzip, gunzip, bzip2, bunzip, bunzip2, unrar, rar, unzip 7
zip format kompresji plików, który został zastąpiony przez gzip. zip -r katalog.zip katalog spakowanie katalogu. unzip katalog.zip dekompresowanie archiwum. jar format kompresji używany głównie w środowisku Java J2EE. jar cvf katalog.jar katalog spakowanie katalogu. jar xvf katalog.jar dekompresowanie archiwum. jar cvf katalog.war katalog spakowanie katalogu. jar xvf katalog.war dekompresowanie archiwum. gz formar kompresji gzip, jest bardziej skuteczny jak zip 13. gzip plik spakowanie pliku. gzip -d plik.gz lub gunzip plik.gz dekompresowanie archiwum. zcat tekst.gz odczytanie spakowanego pliku tekstowego bezpośrednio bez rozpakowywania. bz2 format kompresji skuteczniejszy od gzip 14. bzip2 plik spakowanie pliku. bzip2 -d plik.bz2 dekompresowanie archiwum. tar.gz i tar.bz2 tar.gz jest odpowiednikiem archiwum tar, które jest skompresowane do formatu gzip. Podobnie tar.bz2, które jest skompresowanym do formatu bzip2 archiwum tar. tar -zcvf katalog.tar.gz katalog spakowanie katalogu. tar -zxvf katalog.tar.gx dekompresowanie archiwum. tar -jcvf katalog.tar.bz2 katalog spakowanie katalogu. tar -jxvf katalog.tar.bz2 dekompresowanie archiwum. Jak ułatwić sobie pracę. alias polecenie tworzy śkrót"do polecenia. alias wyświetla zdefiniowane aliasy. 13 Gzip nie może spakować jednego katalogu bezpośrednio do jednego pliku dlatego najpierw należy skorzystać z archiwizatora np. tar. 14 Bz2 nie może spakować jednego katalogu bezpośrednio do jednego pliku dlatego najpierw należy skorzystać z archiwizatora np. tar. 8
alias md="mkdir -p" tworzenie nowego aliasu. unalias usuwanie aliasu. type polecenie pozwala sprawdzić czy komenda jest aliasem. type -a ls ~/.alias tworzenie własnych aliasów zdefiniowanych na stałe. ~/.bashrc zmiana ustawień profilu użytkownika 15. HISTSIZE=1000 Jak pracować z historia. ~/.bash_history lub ~/.history plik z zawartością historii poleceń użytkownika. history polecenie wyświetlające zawartość historii wykonywanych poleceń użytkownika.!! polecenie odwołujące się do ostatniego wykonanego polecenia.!n polecenie odwołujące się do polecenia numer.!string polecenie odwołujące się do ostatniego polecenia zaczynającego się od słowa.!-2 polecenie odwołujące się do aktualnego minus dwa polecenia w historii. history -c czyść historie. hstory -w zapisz historie. Skróty klawiszowe: <Alt>+. wywołanie ostatniego argumentu z ostatniego polecenia w historii. <Ctrl>+ r szukanie w historii. Wysyłanie wiadomości. 16 mail uzytkownik@serwer.org -s Tytuł < plik 15 Aktualizacja ustawień profilu bez potrzeby przelogowania: source.bashrc lub..bashrc. 16 Więcej informacji w man mail. 9