Linux FAQ #1
Jest to wersja 2.1 - druga oficjalna. Cały dokument powstał przy
pomocy pakietu linuxdoc sgml oraz edytora joe. Tym razem autorów jest
wielu, więc występują jako FAQ-Team.
Chciałbym podziękować następującym osobom za pomoc w przygotowaniu
FAQ: (kolejność przypadkowa)
- Bartosz Maruszewski (liczne poprawki, dowcipne komentarze w kodzie
źródłowym, przeróbka z wersji polskawej)
- Cezar Cichocki
- Michał Tyrala (autor pytań o Postscripcie)
- Robert Maron
- Emil Stępniewski
- Tomasz Kłoczko
- Sergiusz Pawłowicz
- Jacek Pliszka
- Krzysztof G. Baranowski
- Tomasz Kaźmierski (autor sekcji modemy i sieci)
- Konrad Stępień (autor sekcji karty sieciowe)
- Sławomir Białek (automagiczne wysyłanie FAQ)
- Andrzej Nakonieczny (admin shadow.eu.org, gdzie znalazło się
miejsce dla oficjalnego site'u)
- Wszyscy, których wypowiedzi znalazły się w FAQ jako odpowiedzi
- Inni, którzy nie zachowali się w moich archiwum
:-(((
Wszyscy oni pomogli wysyłając poprawki, dokładnie czytając i
recenzując FAQ, wskazując narzędzia, które mogłyby być pomocne, itd.
Dzięki! Przepraszam, jesli pomogłeś, a nie ma cię na liście - odezwij
się.
Dziękuje rownież Ianowi Jacksonowi, twórcy świetnego
dokumentu "Linux Frequently Asked Question with Answers", na którym
mocno się opierałem, szczególnie w sekcji dotyczącej ogólnych wiadomości
o Linuxie, oraz w tworzeniu struktury niniejszego dokumentu.
Zrezygnowałem z ,,wersjowania'' Często Zadawanych Pytań. Będzie
to po prostu dokument on-line, do którego w miarę potrzeby, napływających
artykułów i wolnego czasu będę wprowadzał uaktualnienia. Będzie to
wygodniejsze zarówno dla korzystających z FAQ, jak i dla mnie.
FAQ jest dostępny cały czas w formie HTML na LinuxFAQ.shadow.eu.org
Możesz ściągnąć całość w postaci .tar.gz : faq-2.1.tar.gz
Przy okazji dziękuję Dżemikowi (Andrzej Nakonieczny) za możliwość
stworzenia domeny dla FAQ i umieszczenia ich na jego serwerze.
Linux jest systemem operacyjnym należącym do klasy systemów
Unixowych, nie będący jednak bezpośrednim klonem żadnego z nich.
Posiada wszystkie cechy Unixów, takie jak wielozadaniowość, możliwość
pracy wielu użytkowników, ochronę danych, itd. Linux powstał początkowo
jako system pracujący na procesorach Intela (386 i nowszych), jednak dziś
istnieją też wersje na inne platformy.
Linux jest dziś najszybciej rozwijającym się systemem operacyjnym,
posiada tysiące aplikacji, rozbudowaną obsługę sieci, co w połączeniu
z rewelacyjną ceną (0 $) powoduje, że jest on doskonałym rozwiązaniem
zarówno do komputera będącego stacją roboczą jak i serwerem
sieciowym. Istnieją Linuxowe wersje wszystkich najważniejszych Unixowych
programów użytkowych (X Window System, PostScript, TeX, Emacs...).
Sam Linux zajmuje na dysku niewiele (jądro + system plików + powłoka),
to co wypełnia dysk to aplikacje. Wszystko to zależy od tego do czego
chce się wykorzystywać komputer i jakiego typu aplikacje będą
potrzebne. Można z dość dużą pewnością określić, że w 100 MB można
zmieścić system, X Window System i całkiem funkcjonalny zestaw programów.
Aplikacji pozostających do dyspozycji użytkownika systemu Linux jest około
1 gigabajta programów (plus praktycznie wszystkie unixowe, do których
jest dostępny kod źródłowy.
Potrzebujesz komputera z procesorem 386, 486, Pentium, Pentium Pro lub
z kompatybilnymi z przynajmniej 2 MB pamieci RAM, i jedną stacją
dyskietek. Aby używać Linuxa ,,na poważnie'', potrzebujesz więcej pamięci
(minimum 4 MB, lepiej 8 MB lub więcej) oraz twardy dysk. Zarówno VESA LB,
jak i PCI są obsługiwane przez linuxowe jądro.
Nie.
Istnieje jednak coś w rodzaju okrojonego, 16-bitowego jądra, które może
być uruchomione na tym komputerze. Patrz Linux
na 286
Dystrybucja jest po prostu pakietem instalacyjnym dla Linuxa. Poszczególne
dystrybucje różnią się przebiegiem instalacji, zawartością najróżniejszych
"dodatków", z których głównie się składają, oraz zawartością
domyślnych plików startowych. Najpopularniejsze dystrybucje to:
- Slackware
- RedHat
- Debian
- SLS
- Open Linux (komercyjny)
Tak. Linux lubi jednak być na osobnej partycji - jeśli możesz taką
przeznaczyć, nie musisz się bać o swój poprzedni system - jeśli
zastosujesz np. LILO (LInux LOader), w czasie startu komputera będziesz
miał możliwość wyboru systemu operacyjnego.
Istnieją niedestruktywne metody dzielenia istniejącej partycji
dosowej. Może do tego służyć np. program FIPS, lecz należy
takich narzędzi używać ostrożnie i naprawdę wiedzieć co się
robi.
Jeśli Twój poprzedni system to DOS, możesz również zainstalować
Linuxa na tej samej partycji przy użyciu tzw. UMSDOS File System. Tworzy
się wtedy na Twoim dysku DOS-owym katalog \LINUX, który jest montowany
po uruchomieniu jako główny katalog Linuxa.
Więcej informacji: Umsdos-HowTo
Moim zdaniem nie można mówić o tym, że któraś z dystrybucji
szczególnie różni się użytecznością od innych. Jest to wciąż ten
sam system operacyjny.
Powyższa odpowiedź wywołała prawdziwą burzę dyskusji - pisali do
mnie zarówno zwolennicy używanej przez siebie dystrybucji, jak i
przeciwnicy nieużywanej przez siebie dystrybucji.
Przy wyborze dystrybucji, którą się zainstaluje należy się kierować
np. tym, jakiej używają koledzy którzy mają już zainstalowanego
Linuxa, ponieważ łatwiej wtedy uzyskać ewentualną pomoc.
Służy do tego program DosEmu. Udokumentowano uruchomienia wielu dość
wymagajacych aplikacji dosowych (np. gier, łącznie z takimi hitami jak
Doom czy Duke Nukem 3d). DosEmu znajduje się m.in. w dystrybucji RedHat.
Najnowsza wersja jest dostępna w Archiwum
TSX-11 , lub w mirrorze tego serwera, np. Archiwum
Sunsite.
Uwaga! Do instalacji DosEmu jest potrzebna kopia systemu DOS w
jakiejkolwiek wersji!
Istnieje projekt zwany WINE (WINdows Emulator lub Wine
Is Not an Emulator), który ma na celu stworzenie biblioteki umożliwiającej
uruchamianie programów MS Windows w X. Jest on w dość zaawansowanej
fazie rozwoju, i mimo że odnosi coraz większe sukcesy w uruchamianiu
programów, nie jest on jeszcze narzędziem przeznaczonym dla przeciętnego
użytkownika. Niedawno skompilowałem sobie wersję z końca czerwca 1998
roku, i wyniki są wysoce zachęcające (działa część programów 32
bitowych, zaczątki obsługi DirectX, niezła wydajność...)
Innym, prawie idealnym rozwiązaniem jest pakiet WABI firmy Caldera,
niestety jest to już program płatny (280 funtów), więc chyba lepiej
poczekać na WINE...
W grę na razie wchodzą programy dla Windows 3.xx, dopiero w nowszych
wersjach WABI ma się pojawić możliwość uruchamiania programów Win32.
Istnieje jeszcze trzecia możliwość: pakiet bibliotek firmy Willows o
nazwie Twin. Odpowiadają one standardowym bibliotekom MS Windows (commdlg.dll,
wsock.dll itd.), i służą m.in. do tego, aby umożliwić programistom
bezpośrednie wykorzystanie pod Linuxem kodu napisanego pod MS Windows.
Przy kompilacji Twin tworzy się dodatkowo program o nazwie xwin ,
który umożliwia uruchamianie 16-bitowych programów Windowsowych.
Sprawdzałem kilka i działają, wyglądając identycznie jak pod Windows.
Uruchamiałem: Collins Dictionary, Lotus Organizer, Windows Commander oraz
kilka gierek logicznych (więcej programów pod 16-bitowe Windows nie miałem).
Wszystko działało bez zarzutu. W dokumentacji Twin piszą, że można
uruchamiać programy z 16-bitowego Microsoft Office, tylko funkcje związane
z OLE nie działają.
Zależy co uznasz za podstawę do porownań. Jeśli możliwości, to
odpowiednikiem Worda może byc np. Emacs + TeX. Jeśli zaś WYSIWYG, to
edytorami spełniającymi ten wymóg sa m.in. Nedit, LyX, Word Perfect.
Istnieje też pakiet programów biurowych dla Linuxa Star Office zawierający
edytor, arkusz kalkulacyjny, bazę danych i program do rysowania. Jest on
dość popularny w Polsce, a poza tym wczytuje pliki tworzone w programach
z MS Office, z różnym jednak skutkiem. Oprócz tego pojawiły się
ApplixWare (spolonizowany, i możliwy do kupienia w Polsce) i Word Perfect.
Były też próby uruchamiania na Linuxie wersji beta Corel Office for
Java.
Ogólnie: wydaje mi się że warto zmienić przyzwyczajenia i nauczyć
się nowego narzędzia, by je docenić, ponieważ często możliwości
oferowane przez aplikacje dla Linuxa, mimo że nie intuicyjne, są większe
od tych oferowanych przez łatwe dla wszystkich pakiety biurowe dla
Windows.
Należy umieścić w config.sys (DosEmulatora!) jako device
program emufs.sys znajdujący sie na wirtualnym dysku c: .
Umożliwia on montowanie podkatalogów Linuxowych jako dysków w DosEmu.
Oznacza to że dysk D: możemy mieć partycję dosową tylko
jeżeli jest zamontowana w Linuxie. To samo z CD-ROMEM - musi być
zamontowany.
device=c:\emufs.sys /dos
device=c:\emufs.sts /cdrom
Należy stworzyć katalog, gdzie będzie ona widoczna, np. /dosdisk ,
a następnie zamontować ją w tamtym katalogu (zakładamy, że partycja
DOS-owa to /dev/hda1 ):
mount -t msdos /dev/hda1 /dosdisk
Po literze -t można podać inne systemy plików - zależy
jakie masz wkompilowane w jądro. Przykładowo: -t vfat umożliwia
zamontowanie partycji Windows 95, tak aby były widziane długie nazwy
plików.
Jeśli nie wiesz, jakie urządzenie symbolizuje Twoją partycję DOS-ową,
uruchom fdisk .
Odpowiedź jest podobna, jak odpowiedź na pytanie 3.1 - trzeba go
zamontować. Dla większości przypadków jako system plików podajesz iso9660 :
mount -t iso9660 /dev/hdb /cdrom
Oczywiście nazwa urządzenia i katalogu są przykładowe. Pamiętaj,
że w przypadku CD-ROM-u, w odróżnieniu od twardego dysku nie podajesz
numeru partycji, tylko nazwę całego urządzenia, np./dev/hdb .
Zakładając, że chodzi o /dev/fd0 (dyskietka, która w
DOS-ie jawi się jako a: ):
fdformat /dev/fd0
lub:
superformat /dev/fd0
Następnie należy stworzyć na niej system plików:
ext2fs:
mke2fs /dev/fd0
msdos:
mkdosfs /dev/fd0
Polecenie mount
Polecenie mount umożliwia 'podczepienie' DOS-owej
dyskietki jako katalogu na dysku Linuxowym:
mkdir /stacja
mount /dev/fd0 -t msdos /stacja
Pamiętaj, aby przed wyjęciem dyskietki odmontować ją, czyli
wykonać polecenie:
umount /dev/fd0
Odmontowanie jest konieczne ze względu na buforowanie w pamięci
operacji wykonywanych na plikach na dyskietce. Czasami system czeka na
wolną chwilę na wykonanie ich, mimo że wydaje się że zostały
wykonane. Jeśli wyjmiesz dyskietkę nie wykonując umount ,
może nie być już ku temu okazji...
Jeśli chciałbyś dokładniej wyspecyfikować parametry dyskietki, użyj
któregoś z urządzeń w katalogu /dev , które podają np.
rozmiar: /dev/fd0H1440 , /dev/fd0H720 itd. Zapis /dev/fd1H720
oznacza dysk nr 1 czyli b: w DOS-ie, o rozmiarze 720 kb.
Pakiet mtools
Pakiet programów mtools - jest to zestaw programów umożliwiających
dostęp do dysków DOS bez konieczności ich montowania. Znajdują się w
nim odpowiedniki poleceń DOS z literką 'm' na początku: mdir,
mcopy, mdel, itd.
Obsługiwane przez jądro systemy plików możesz zobaczyć w /proc/filesystems .
Jeśli masz (tzn. Twój Linux) jądro modularne, powinieneś też obejrzeć
wynik działania polecenia modprobe -l -t fs .
Tak, obejrzyj sobie konfigurację jądra przed kompilacją. Można
wbudować w nie obsługę m.in. HPFS, systemu Maca, Amigi, NTFS, itd.
Wszystkie dostępne systemy plików można obejrzeć w katalogu /usr/src/linux/fs/
po rozpakowani źródeł jądra.
Ogólnie rzecz biorąc budowa tego systemu plików jest taka, że
defragmentuje sie on sam - i-nody skasowanych (u-link) plików są
wykorzystywane jako pierwsze przy tworzeniu nowych - defragmentacja następuje
samoczynnie. Jeśli jednak się upierasz, to istnieje program defrag
(można go znaleźć na Sunsite
Mirror).
Pliki w katalogu /proc są ,,udawanymi'' plikami - w
rzeczywistości nie zajmują miejsca na dysku. Można z nich uzyskać
wiele interesujących informacji na temat działania systemu (więcej
przeczytasz w man proc ), a plik kcore jest
obrazem pamięci - jego wielkość odpowiada dokładnie wielkości pamięci.
Mowiąc nie-serio, jeśli chcesz go zmniejszyć, wyjmij trochę pamięci
:)).
Załaduj DOS z dyskietki. Napisz:
fdisk /mbr
Gotowe!
Oznaczenia:
- A - Archiwum
- D - Dokument
- Z - Kod źródłowy
Rozszerzenie
Typ
Program
----------------------------------------------------------
.1 -
.8
D
man
.C
Z
g++
.Z
A
compress, uncompress
.arj
A
arj, unarj
.bz2
A
bzip2
.c
Z
gcc
.c++
Z
g++
.deb
A
dpkg
.dvi
D
tex
.gz
A
gzip, gunzip
.html
D
lynx
.info
D
info
.lsm
D
cat, more
.pl
Z
perl
.ps
D
ghostscript, ghostview
.rpm
A
rpm
.sh
Z
sh, csh
.tar
A
tar
.texi
D
info
.tgz
A
tar, gzip
.txt
D
more
.zip
A
zip
Jeśli w tabelce nie ma pliku, którego szukasz, użyj polecenia file ,
na przykład:
file 0223.lzh
0223.lzh: - LHa 2.x? archive data [lh ]
Otóż Linux, tak jak każdy system Unixowy przeszukuje w poszukiwaniu
programów do uruchomienia wyłącznie ścieżki umieszczonej w
zmiennej PATH . W związku z tym prawdopodobnie ścieżki, z
której usiłujesz uruchomić program nie ma w tej zmiennej. Aby dodać
aktualną ścieżkę do przeszukiwania, dopisz do pliku inicjalizującego
(różne w zależności od tego, jakiej powłoki używasz) w miejscu
nadawania wartości zmiennej PATH kropkę (.) Można też
uruchamiać program poprzez dodanie w linii poleceń aktualnej ścieżki,
czyli:
./nazwa_programu
Jednak dodanie aktualnego katalogu do przeszukiwanych katalogów nie
jest zalecane ze względów bezpieczeństwa systemu. Szczegółów dowiesz
się wraz z nabywaniem praktyki jako wieloletni administrator unix-ów :).
Oczywiście jeśli komputer służy tylko do celów domowych, to spokojnie
można tę ścieżkę dodać do zmiennej PATH.
Zmiana w pliku network
W pliku /etc/sysconfig/network zmień linijkę:
networking=yes na:
networking=no
Oto nadesłana przez M.Tyralę kbns@zeus.polsl.gliwice.pl
opinia na ten temat:
Taką poradę przeczytałem na tej liście, jednak trochę
później pojawił się post człowieka, któremu po takiej podmianie
przestał
działać shutdown (oraz reboot i halt), sync powodował zawieszenie
shella. Ja
te same objawy uzyskałem (dwukrotnie), wiec IMHO jest już jakaś
powtarzalność. Na newsach pojawił się głos jakiegoś 'guru', ale było
w nim
tylko coś o RedHacie i odmóżdzeniu userów, aczkolwiek nic więcej.
Zmienna HOSTNAME
Podobno pomaga też zmiana wartości zmiennej $HOSTNAME na
inną niż localhost .
Oto co pisze RedHat w erracie do wersji 4.0 (sent by kbns@zeus.polsl.gliwice.pl):
(02-Dec-1996) On some machines, sendmail appears to pause
when booting up. To fix this, either:
Use netcfg to change the hostname from localhost to
localhost.localdomain, or
edit /etc/sysconfig/network and change the line which
reads:
HOSTNAME=localhost to read:
HOSTNAME=localhost.localdomain
Zazwyczaj w każdej dystrybucji istnieje polecenie (często jest to po
prostu skrypt powłoki) służący do tego celu. Nazywa się najczęściej
adduser , useradd lub jakoś podobnie. Można również
edytować bezpośrednio plik /etc/passwd aby dodać nową
linijkę z pidem użytkownika.
Uwaga! Użytkownicy RedHata często mają problemy z powstającym
w katalogu /etc plikiem .passwd.lock , który
należy usunąć przed wykonaniem polecenia adduser . Można
ten problem rozwiązać dodając do pliku inicjalizującego powłoki w
katalogu root , czyli użytkownika, który ma prawo dodawać użytkowników,
polecenie kasujące ten plik.
Jeśli tworzy core to na pewno wszystko nie jest w porządku.
Ale jeśli chcesz zabronić tworzenia core , bo i tak z nich
nie korzystasz, ustaw odpowiedni limit. Dla powłoki bash
istnieje polecenie ulimit , dla tcsh - limit , a
dla ksh rlimit . Musisz przeczytać manual dla konkretnej powłoki.
W bashu robi się to tak: ulimit -c 0
Chodzi o ukrycie prawdziwego loginu. Odpowiedzi udziela nasz niezastąpiony
Bartek Maruszewski. Dzięki!
W katalogu /usr/src/sendmail-najnowsza.wersja/cf lub /usr/sendmail-cf/cf
tworzymy plik nasza.domena.m4 , w który wpisujemy:
---------- ciach ---------
divert(-1)
OSTYPE(linux)dnl
DOMAIN(generic)dnl
# poniżej zmiana
MASQUERADE_AS(nasza-domena)dnl
define(`HELP_FILE', `/etc/sendmail.hf')dnl
FEATURE(use_cw_file)dnl
FEATURE(genericstable)dnl zmiana loginów <-- to jest to
FEATURE(masquerade_envelope)dnl <-- a tutaj maskujemy to co pojawia
dnl się w programie czytającym pocztę w polu od kogo przyszło
MAILER(local)dnl
MAILER(smtp)dnl
---------- ciach ---------
Piszemy 'm4 m4/cf.m4 nasza-domena.m4 > sendmail.cf' , ZACHOWUJEMY
KOPIE działającego /etc/sendmail.cf i kopiujemy
wygenerowany plik do /etc.
Tworzymy plik /etc/genericstable z wpisami:
jas Janek.Kowalski
.
.
.
Następnie trzeba uruchomić 'makemap hash genericstable <
genericstable' żeby zamienić genericstable na format, który
rozumie sendmail. Te dwie nazwy w tym poleceniu mają być identyczne, nie
pomyliłem się. makemap sam dopisze do pliku wyjściowego '.db'.
Po co kompilować jądro?
Istnieje wiele powodów, dla których ludzie kompilują jądra. Jednym
z najczęstszych to po prostu chęć uaktualnienia swojego systemu. Linux
jest bardzo szybko rozwijającym się systemem, w związku z tym dość często
pojawiają się nowe wersje jąder. Należy jednak pamiętać, że tylko jądra
z parzystą środkową liczbą wersji są uznawane za stabilne. Jądra z
nieparzystą liczbą to tzw. jądra rozwojowe wprowadzające nowe features,
które będą wbudowane kiedyś (po przetestowaniu) do serii stabilnej.
Inny powód samodzielnej kompilacji to chęć posiadania jądra systemu
doskonale dopasowanego do potrzeb konkretnego użytkownika. Można tak
skonfigurować jądro, aby miało wbudowane tylko sterowniki tych urządzeń,
które posiadamy, tylko tych systemów plików, z którymi mamy do
czynienia, etc.
Jak to się robi?
Po pierwsze musisz zdobyć źródła jądra. Oprócz oczywistej możliwości
ściągnięcia ich z sieci, możesz je wziąć z każdej dystrybucji.
Zdobyty plik tar.gz o nazwie np. linux-2.0.33.tar.gz i rozmiarach około
7MB do 9MB należy rozpakować w katalogu /usr/src tak, aby
powstał tam katalog linux zawierający źródła.
Następnie musimy skonfigurować instalację. Będąc w katalogu /usr/src/linux
i będąc oczywiście zalogowanym jako root piszemy:
make config - skrypt konfiguracyjny odpali się na
konsoli
make menuconfig - wygodna konfiguracja z menu
make xconfig - odpala konfigurację w X
Pytania zadawane przez skrypt konfiguracyjny są na tyle oczywiste, że
chyba nie potrzebujesz przy tym pomocy. Następnie należy stworzyć zależności:
make dep
...i rozpocząć kompilację....
make zImage
Zwróć uwagę na duże i małe litery w słowie zImage .
Następnie (po około 10 minutach na Pentium 75) jeśli konfigurowałeś
jądro jako modularne, musisz skompilować moduły i zainstalować je:
make modules
make modules_install
Stare moduły siedzące w /lib/modules/numer.starego.jądra/
można potem usunąć. Ale na razie zainstalujmy jądro. Jest w jednym
podkatalogu źródeł /arch/i386/boot i nazywa się zImage .
Teraz należy dowiedzieć się, gdzie lilo szuka jądra. Jest to napisane
w /etc/lilo.conf . Najpierw robimy kopię zapasową
poprzedniego działającego jądra w katalogu odszukanym w powyższym
pliku (np. cp vmlinuz vmlinuz-old) i dopiero po zrobieniu kopii
nagrywamy do tego katalogu nasze świeżutkie, jeszcze ciepłe jądro :)).
Następnie edytujemy powyższy plik i robimy kopię akapitu opisującego
nasze jądro i wpisujemy label=old i zmieniamy tam vmlinuz
na vmlinuz-old . Ja mam taką zasadę, że nazywam jądra vmlinuz-x.y.z .
Po tych modyfikacjach koniecznie wykonujemy
lilo
Następnie rebootujemy kompa i czekamy trzymając kciuki... Jeśli coś
nie poszło, to można zresetować i przy lilo: wpisać old
co wystartuje nam poprzednią wersję jądra.
Wpisz do pliku /etc/conf.modules :
alias net-pf-4 off
alias net-pf-5 off
Odpowiedź nadesłana przez B.Maruszewskiego (thanx a lot)
Hmm, sprobujmy:
. klasycznie generujesz kernel (make menuconfig dep clean zImage modules
modules_install)
. instalujesz kernel (albo ręcznie albo jak_tam_to_robisz)
. "/sbin/mkinitrd /boot/nowy_init_rd numer.uzywanego.kernela"
. dopisujesz wygenerowany initrd jako root=/nowy_init_rd (o ile dobrze
pamiętam ...)
. uruchamiasz /sbin/lilo
. sprawdzasz czy to powinno działać
. trzy razy się modlisz
. sprawdzasz jeszcze raz
. rebootujesz
. piszesz na listę dlaczego nie poszło :-(
Wykonanie
make clean
powoduje usunięcie stworzonych podczas kompilacji plików obiektowych
(binariów), zaś
make mrproper
jak wyżej plus usunięcie konfiguracji jądra.
Metoda pierwsza. Nalezy sciągnąć sobie pakiet psutils, zainstalować,
po czym wykonać:
psbook nasz_plik.ps | psnup -2 > nasz_plik-x.ps
W zbiorze wyjściowym mamy na przemian strony parzyste z nieparzystymi.
Jeżeli chcielibyśmy mieć osobno parzyste, a osobno nieparzyste, to pomoże
nam programik psselect:
psselect -o -r nasz_plik-x.ps nasz_plik-x-O.ps
psselect -e nasz plik-x.ps nasz_plik-x-E.ps
Przełącznik -r powoduje, że strony nieparzyste są w
odwrotnej kolejności, co pozwala drukować najpierw jeden plik, po
zadrukowaniu iluś tam kartek wyjmujemy je z drukarki, odwracamy stosik,
wkładamy odwrócony stos z powrotem do drukarki i drukujemy zbiór drugi.
(Całość można załatwić dwoma wywołaniami programu pstops ,
jednak jego parametry wywołania mogą na początek wyglądać na nieco
pogmatwane, więc moim zdaniem na początek lepiej jest pocyrkować trochę
kilkoma programami wiedząc miej-więcej co się robi.)
Na deser wykonujemy:
man psbook
man psnup
man psselect
man pstops
Metoda druga. Używamy programu mpage , który jest chyba w
większości dystrybucji. Wykonujemy:
mpage -O -r -o -A -t -P- nasz_plik.ps > nasz_plik-x-O.ps
mpage -E -o -A -t -P- nasz_plik.ps > nasz_plik-x-E.ps
W zbiorze nasz_plik-x-O.ps mamy strony nieparzyste (w
odwrotnej kolejności), a w nasz_plik-x-E.ps -- parzyste.
No i oczywiście na koniec: man mpage
Nieco inaczej mają się sprawy, gdy plik *.ps powstał z
pliku *.dvi , czyli gdy mamy dostęp do źródłowego *.dvi .
1. Jeżeli mamy strony A5 i tylko chcemy je umieścić po dwie na
arkuszu A4 to można posłużyć się programem dvidvi .
dvidvi -m 4:-1,2\(4.25in,0in\) infile.dvi outfile-1.dvi
dvidvi -m 4:-3,0\(4.25in,0in\) infile.dvi outfile-2.dvi
Tak uzyskane dwa pliki dvi drukujemy naszą ulubioną
metodą drukowania plików *.dvi .
2. Jeżeli strony w pliku *.dvi są rozmiaru A4, to robimy
tak: do wywołania dvips'a dodajemy parametr -x707 ,
czyli np:
dvips -x707 -o nasz_plik.dvi nasz_plik.ps
Po czym traktujemy otrzymany postscript tak:
pstops 0@1\(-0.7cm,-8cm\) nasz_plik.ps | psbook \
| psnup -2 -pa4 -Pa5 > nasz_plik-x.ps
Wartości przesunięć strony są dobrane eksperymentalnie i w razie
gdyby coś było poprzesuwane należy je zmienić.
Dwa słowa o tym, dlaczego warto robić książeczki metodą jak powyżej,
zamiast podanej na samym początku: Otóż w metodzie pierwszej czcionki
zawarte w pliku postscriptowym są skalowane przez psnup-a ,
co nie wygląda ładnie (wystarczy się przyjrzeć uważnie literce `N').
W sposobie podanym na końcu czcionki w pliki *.ps są już
odpowiedniej wielkości i po prostu efekt końcowy jest ładniejszy.
Do tego celu można użyć wymienionego w poprzednim pytaniu programu pstops .
Wywołujemy go tak:
pstops 0@skala\(przesx,przesy\) plik_wej.ps > plik_wyj.ps
gdzie:
skala -- współczynnik
skalowania strony (np 0.9)<b>
przesx -- przesunięcie
strony w poziomie (np 1cm)<b>
przezy -- przesunięcie
strony w pionie (np 2cm)<b>
Czyli przykładowe wywołanie może wuglądać tak:
pstops 0@0.9\(1cm,2cm\) plik_wej.ps >
plik_wyj.ps
Owszem, dodanie jakichś konkretnych marginesów wymaga trochę
liczenia, ale to już jest łatwizna i na pewno sobie poradzisz!
5.13 Jak uruchomić telnet na konto root ?
Chciałbym administrować systemem zdalnie!
(Odpowiedź: kloczek :-)
Telnet na konto root'a jest zablokowany specjalnie z powodów bezpieczeństwa
we wszystkich dystrybucjach Linuxa w konfiguracjach podstawowych. Poprostu
jeżeli ktoś nieuprawniony przejmie w jakiś sposób hasło root'a to ma
ułatwione zadanie przy wszelkiego rodzaju ingerencjach w systemie przy możliwości
wejścia na konto root'a bezpośrednio. O wiele ważniejszym powodem jest
to, że podczas negocjacji połączenia poprzez telnet/rsh/rlogin
zarówno sam login jak i hasło są przesyłane jawnie. W przypadku łączenia
się poprzez sieć publiczną czy segmenty sieci co do których nie mamy
pewności, że nikt na nich nie podsłuchuje ruchu łączenie się poprzez
telnet na konto root'a jest z powodów bezpieczeństwa niewskazane.
Do łączenia się poprzez sieć co do której nie mamy zaufania i to
nie zależnie od tego czy chcemy łączyć się na konto root'a czy zwykłego
użytkownika powinno wykorzystywać się ssh (secure
shell). Poprawne zachowanie administratora powinno polegać jednak na tym,
żeby do minimum ograniczał on czas spędzany na koncie root'a. W takim
wypadku po zalogowaniu się na konto użytkownika, żeby zmienić sobie
uprawnienia na czas wykonania jakiejś operacji wykorzystuje się
polecenie su . Polecenie to powinno się wykonywać z
dodatkowym parametrem "-" czyli su -
żeby przy zmianie uprawnień został wywołany osobny shell z pełnym
zestawem zmiennych środowiska właściwym dla root'a co też czasami może
ustrzeże niedoświadczonych administratorów od subtelnych pomyłek czy błędów.
Blokada logowania się zdalnie na konto root'a jest wykonana poprzez
wyszczególnienie w /etc/securetty listy urządzeń na jakie
osoba z uprawnieniami root'a (uid=0, gid=0) może się logować
bezpośrednio. W przypadku posiadania fragmentu sieci bezpiecznej, którą
chcielibyśmy jedna wykorzystywać do logowania na root'a nie powinno się
jednak modyfikować do tego celu pliku żeby dodać kolejne /dev/pty*
gdyż nie ma możliwości w ten sposób zdeterminowania kierunków z
jakich następuje logowanie, a tylko urządzenia. Czyli powinno się postępować
jak powyżej z wykorzystaniem ssh i su .
ssh nie wchodzi w skład żadnej dystrybucji ze względów
licencyjnych. Czyli po zainstalowaniu systemu należy ściągnąć ssh
i je zainstalować. ssh jest dostępne w postaci gotowych
skompilowanych pakietów deb , rpm , a w każdym
innym wypadku można ściągnąć źródła, przekompilować całość i
zainstalować.
|