Man to polecenie systemowe stronę pomocy dla polecenia

Transkrypt

Man to polecenie systemowe stronę pomocy dla polecenia
Man to polecenie systemowe stronę pomocy dla polecenia wpisanego jako argument.
Manual dzieli się na dziewięć sekcji numerowanych od 1 – 9 i należą do nich (w kolejności od
1 do 9): Programy wykonywalne lub polecenia powłoki, Wywołania systemowe (funkcje
dostarczane przez jądro systemu), Wywołania biblioteczne (funkcje w bibliotekach
programów), Pliki specjalne (które zazwyczaj można znaleźć w /dev), Formaty plików i
konwencje, np. /etc/passwd, Gry, Różnorodne (łącznie z pakietami makr i konwencjami,
Polecenia do administracji systemem (zazwyczaj tylko dla administratora), Wywołania jądra
[Niestandardowa].
Zgodnie z tradycją nazwy sekcji zawierają: nazwa (name), składnia (synopsis), konfiguracja
(configuration), opis (description), opcje (options), kod zakończenia (exit status), wartość
zwracana (return value), błędy (errors), środowisko (environment), pliki (files), wersje
(versions), zgodne z (conforming to), uwagi (notes), błędy (bugs), przykład (example), autorzy
(authors) oraz zobacz także (see also).
Konwencje stosowane w manuałach są następujące:
tekst pogrubiony – wprowadź dokładnie tak, jak pokazano.
kursywa – zastąp odpowiednim argumentem.
[-abc] – wszystkie argumenty w [ ] są opcjonalne.
-a|-b – opcji rozdzielonych znakiem | nie można łączyć.
argument ... – argument można powtarzać.
[wyrażenie] ... – całe wyrażenie w [ ] można powtarzać.
Niektóre z opcji polecenia man:
-C, --config-file=PLIK – używa tego pliku konfiguracyjnego użytkownika
-d, --debug – wyświetla komunikaty diagnostyczne
-D, --default – przywraca wszystkim opcjom ich wartości domyślne
--warnings[=OSTRZE¯ENIA] – włącza ostrzeżenia groffa
Główne tryby działania:
-f, --whatis – odpowiednik whatis
-k, --apropos – odpowiednik apropos
-K, --global-apropos – szuka tekstu we wszystkich stronach
-l, --local-file – interpretuje argumenty STRONA jako nazwy lokalnych plików
Wyszukiwanie stron podręcznika ekranowego:
-L, --locale=UST_JÊZYKOWE – określa ustawienia językowe tego wyszukiwania stron
-m, --systems=SYSTEM – używa stron podręcznika z innych systemów
-M, --manpath=ŚCIEŻKA – ustawia ścieżkę wyszukiwania stron podręcznika na ścieżkę
-S, -s, --sections=LISTA – używa rozdzielonej dwukropkami listy sekcji
-e, --extension=ROZSZERZENIE – ogranicza wyszukiwanie do podanego typu
ROZSZERZENIA
-i, --ignore-case – wyszukuje strony ignorując wielkość liter (domyślnie)
-I, --match-case – wyszukuje strony biorąc pod uwagę wielkość liter
--regex – wyświetla wszystkie strony pasujące do wyr. regularnego
--wildcard – wyświetla wszystkie strony pasujące do maski dopasowania
--names-only – powoduje, że --regex i --wildcard pasują tylko do nazw stron, a nie do opisów
-a, --all – wyszukuje wszystkie pasujące strony podręcznika
-?, --help – wyświetla pomoc
Wyszukiwanie kolejnego słowa w manualu realizuje się poprzez /słowo natomiast
poprzedniego poprzez ?słowo.
Zapis funkcji postaci nazwa_funkcji(nr) pozwala określić o jaki typ funkcji nam chodzi, w
której stronie manuala ma być wyszukana informacja o funkcji. I tak np. passwd(1) mówi nam,
że chodzi nam o polecenie systemowe passwd (sekcja pierwsza: Programy wykonywalne lub
polecenia powłoki) natomiast passwd(5) mówi nam o strukturze pliku (sekcja piąta: Formaty
plików i konwencje). Aby uzyskać opis takiej funkcji należy w konsolę wpisać:
man 5 passwd
Jeżeli w poleceniu nie wyspecyfikujemy którą stronę manuala chcemy czytać (użyjemy
polecenia man passwd) a polecenie lub funkcja jest zawarta w kilku sekcjach manuala to po
wpisaniu takiego polecenia zostanie wyświetlona pierwsza strona manuala w przypadku
polecenia passwd będzie to opis polecenia zmiany hasła.
Proszę przeczytać podrozdział 1.4 Obsługa błędów (str 28-34 bez makro instrukcji)
Programowanie w systemie Unix dla zaawansowanych M.J. Rochkind.
Opcje polecenia gcc:
-B <directory> - dodaj katalog do ścieżki wyszukiwania
-v - Wyświetla programy wywoływane przez kompilator
-E - preprocesuj
-S - kompiluj
-c - kompiluj i asembluj
-o <file> - ustawia wyjście do <file>
-shared - tworzenie biblioteki współdzielonej
-Wall - Włącza ostrzeżenia dotyczące konstrukcji.
Preprocessing
W czasie prekompilacji tworzony jest ostateczny kod programu. W celu wykonania tego etapu
należy wydać polecenie:
gcc -E projekt.c > projekt.i
Compilation
Na tym etapie kompilator przekształca kod źródłowy otrzymany w poprzednim etapie na kod
assemblera. W celu wykonania tego etapu należy wydać polecenie:
gcc -Wall -S projekt.i
Optimalisation
Opcjonalna modyfikacja kodu asemblera w celu zwiększenia jego efektywności.
gcc -O3 projekt.s
Poziomy optymalizacji:
Poziom 0 - kompletnie wyłącza optymalizacje.
Poziom 1 - prowadzi do stworzenia mniejszego i szybszego kodu bez straty dużej ilości czasu
podczas kompilacji. Bardzo podstawowy poziom, często nie przynoszący widocznych efektów.
Poziom 2 - zalecany poziom optymalizacji - kompilator będzie próbował zwiększyć wydajność
kodu za cenę jego rozmiaru oraz czasu kompilacji.
Poziom 3 - nie zalecany dla GCC 4.x - kod będzie miał duży rozmiar, wykonanie będzie mogło
wymagać więcej pamięci, a czas kompilacji mocno się wydłuży. Twórcy GCC nie zalecają
używania tego poziomu optymalizacji.
-Os - nacisk na zmniejszenie rozmiaru kodu + flagi optymalizacyjne jak w poziomie 2
Assembly
Na tym poziomie następuje przetworzenie kodu asemblera na kod maszynowy. W celu
wykonania tego etapu należy wydać polecenie:
gcc -c projekt.s -o projekt.o
5. Konsolidacja (Linkowanie)
Na tym poziomie, GCC wykonuje trzy czynności które dopełniają proces kompilacji. Linker
szuka w bibliotekach systemowych lub wskazanych przez użytkownika kodu który nie został
zdefiniowany w plikach źródłowych. Następnie, przypisuje kod maszynowy do ustalonych
adresów. Na końcu zaś, tworzy wykonywalny plik binarny ELF.
O datach i czasach w Uniksie oraz standardy systemy Unix (str 44-62) proszę poczytać w
książce Programowanie w systemie Unix dla zaawansowanych M.J. Rochkind.