Skrypty w Linux: narz¦dzia.

Transkrypt

Skrypty w Linux: narz¦dzia.
Skrypty w Linux: narz¦dzia.
mgr Maciej Wróbel
25 pa¹dziernik 2010
1
Wprowadzenie GNU Coreutils
Administracja systemem opracyjnym Linux, a tak»e jego eksploatacja wymaga operacji na
plikach i tekscie. Aby usprawni¢ prac¦ system Linux wyposa»ony jest w zbiór podstawowych
narz¦dzi sªu»¡cych do pracy w powªoce, z tekstem i z plikami. Narz¦dzia te dystrybuowane s¡
w zestawie zwanym GNU Coreutils. Umiej¦tne ich ª¡czenie pozwala wykonywa¢ operacje, do
których z pewno±ci¡ nie mo»na znale¹¢ gotowego oprogramowania. Z cz¦±ci¡ polece« zapoznali±my si¦ ju» na poprzednich zaj¦ciach. Celem bie»¡cego laboratorium jest zapoznanie si¦
z mo»liwo±ciami, jakie daj¡ narz¦dzia podstawowe. Dokumentacja narz¦dzi podstawowych
dost¦pna jest w systemie na stronach
info coreutils
oraz w Internecie (link).
Wiele narz¦dzi do pracy z tekstem, plikami i w powªoce wbudowanych jest tak»e w
sam¡ powªok¦ Bash. Ich lista dost¦pna jest na stronach podr¦cznika Bash w cz¦±ci Builtin
Commands. Cz¦±¢ polece« powªoki nadpisuje polecenia zawarte w Coreutils.
2
GNU Coreutils
Operacje na tekscie:
cat,tac
ª¡czy zawarto±¢ plików podanych jako argumenty (tac wy±wietla wierszami od
ko«ca)
nl
numeruje wiersze pliku
od,base64
fmt,pr,fold
head,tail
formatuj¡ wy±wietlany tekst
wy±wietla
split,csplit
wc
przeksztaªca plik do formatu szesnastkowego lub kodowanego alfabetem base64
n
pocz¡tkowych/ko«cowych wierszy pliku
dziel¡ pliki na mniejsze cz¦±ci
liczy ilo±¢ wierszy, sªów i wyrazów w pliku
sum,cksum,md5sum,sha1sum,sha2
obliczaj¡ funkcje skrótu lub sumy kontrolne dla
plików
1
sort,tsort
sortuje zawarto±¢ pliku wg zadanych kryteriów
shuf
miesza zawarto±¢ pliku
uniq
usuwa (nie)powtarzaj¡ce si¦ wiersze
comm
porównuje posortowane pliki
cut,paste,join
tr
wycinanie,ª¡czenie linii i fragmentów wierszy
usuwa/transliteruje/usuwa powtarzaj¡ce si¦ znaki pliku
expand,unexpand
zamienia spacje na tabulatory i na odwrót
Obsªuga plików itd.:
ls,dir,vdir
wy±wietlanie zwykªe, krótkie i dªugie zawarto±ci katalogów
cp,dd,install
kopiowanie/kopiowanie z konwersj¡/kopiowanie i ustawianie atrybutów
plików
mv
przenoszenie plików
rm,shred
usuwanie/bezpieczne usuwanie plików
link,ln,readlink,unlink
tworzenie linków do plików, wy±wietlanie ich wskaza« i usuwa-
nie linków
mkdir,rmdir
mknod
mkfo
tworzenie/usuwanie katalogów
tworzenie urz¡dze« specjalnych
tworzenie nazwanych ª¡czy
chown,chgrp,chmod
touch
df
du
zmiana wªa±ciciela, grupy i uprawnie« do pliku
zmiana znaczników czasu pliku
raport u»ycia dysków
szacunkowe u»ycie dysku przez pliki
stat
sync
status pliku/systemu plików
synchronizacja buforów pami¦ci i dysku
truncate
zmiana wielko±ci pliku
basename,dirname
pathchk
wycinanie nazwy pliku/nazwy katalogu z peªnej ±cie»ki
testuje poprawno±¢ nazwy pliku
2
mktemp
pwd
tworzenie tymczasowego pliku/katalogu
wy±wietla katalog roboczy
stty,tty
wªasno±ci terminala
printenv
wy±wietla zmienne ±rodowiskowe
Inne:
echo,printf
yes
wy±wietlanie ªa«cucha znaków w niesko«czonej p¦tli
false,true
test
wykonuje wyra»enie arytmetyczne
przekazuje stdin do pliku i na stdout
factor
seq
nic nie robi¡, bez sukcesu i z sukcesem (exit code != 0 i exic code = 0)
porównywanie warto±ci lub testowanie typów plików
expr
tee
wy±wietlanie lini tekstu
faktoryzacja liczby
generowanie podzbioru ci¡gu arytmetycznego
Wªa±ciwo±ci u»ytkowników:
id
wªa±ciwo±ci u»ytkownika
logname,whoami
groups
nazwa u»ytkownika
grupy u»ytkownika
users,who
kto jest zalogowany
Cechy systemu:
date
wy±wietla lub ustawia czas systemowy
arch
architektura procesora
uname
informacje o systemie
hostname,hostid
uptime
informacje o nazwie systemu
informacje o obci¡»eniu i czasie dziaªania systemu
Procesy:
chroot,env,nice,stdbuf,su
zmiana katalogu root/±rodowiska/ poziomu nice/ buforo-
wania/ u»ytkownika dla wywoªywanego polecenia
3
nohup
polecenie odporne na zawieszenie teminala steruj¡cego
timeout
kill
wykonanie polecenia z ograniczonym czasem dziaªania
wysyªanie sygnaªu do procesu
sleep
czekanie
n
sekund/minut/godzin/dni
SELinux:
chcon
zmiana kontekstu SELinux dla pliku
runcon
2.1
wykonanie polecenia z okre±lonym kontekstem SELinux
grep
Polecenie grep wybiera z pliku wiersze pasuj¡ce do podanego wyra»enia regularnego, np.
polecenia:
grep -P '^aab'
grep -P '^a.*z$'
grep -vP 'a'
odltruj¡ kolejno wszystkie wiersze, zawieraj¡ce na pocz¡tku wiersza znaki aab, wiersze, zaczynaj¡ce si¦ od a i ko«cz¡ce na z oraz wszystkie wiersze, nie zawieraj¡ce litery a (przeª¡cznik
-v neguje wybór).
2.2
Sed i Awk
Edytor wierszowy sed zmienia linie pliku wedªug zadanego wzorca, za± j¦zyk programowania
awk pozwala wykonywa¢ operacje na polach wierszy plików. Przykªady u»ycia tych narz¦dzi
mo»na znale¹¢ m. in. w pliku ltry.pdf, w dziale materiaªy (do systemów operacyjnych) na
mojej stronce.
2.3
curl
Narz¦dzia dla www i sieci
pobiera dane z adresu URL (protokoªy http, ftp i inne)
wget
rsync
pobiera pliki
protokóª (m.in. zdalnego) kopiowania plików
W wersji elektronicznej instrukcji podane ni»ej linki s¡ hiperª¡czami.
4
Literatura
[1] Materiaªy MiMUW (j. polski) na
Systemy_operacyjne
http://wazniak.mimuw.edu.pl/index.php?title=
dotycz¡ce u»ytkowania systemu uniksopodobnego.
[2] Ka»dy podstawowy podr¦cznik systemu Linux.
[3] Materiaªy (w j. angielskim) dotycz¡ce certykatu LPI udost¦pniane przez IBM na
http:
//www.ibm.com/developerworks/linux/library/l-lpic1-v3-map/
[4] Podstawy Bash (w j. polskim) udost¦pniane przez spoªeczno±¢ Gentoo na
http://www.
gentoo.org/doc/pl/articles/bash-by-example-p1.xml.
[5] Podr¦cznik Bash (man Bash lub
http://www.gnu.org/software/bash/manual/bash.
html)
[6] Dla zainteresowanych (j. angielski) http://mywiki.wooledge.org/ wiki po±wi¦-
cone systemom Unix, wraz z materiaªami dot. Bash
5