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.