Mais usos de Man pages do POSIX
Além do que Oli disse sobre como escrever scripts portáteis (e hacking em coreutils ), existem duas outras situações em que as páginas de manual do POSIX podem ser úteis:
1. Você configurou (mais) um comportamento compatível com POSIX.
Se você definir a variável de ambiente POSIXLY_CORRECT
(para qualquer coisa, ela pode ficar em branco), muitos utilitários GNU e alguns outros programas se comportarão da maneira especificada pelo POSIX, mesmo quando os desenvolvedores não vêem motivos que os usuários provavelmente querem esse comportamento.
Isso não faz o seu sistema se comportar como um sistema operacional verdadeiramente compatível com POSIX. O kernel do Linux, o GNU libc e muitas ferramentas de usuário são todas deliberadamente projetadas para serem compatíveis com POSIX somente quando isso é mais útil do que prejudicial . Esta é uma das razões pelas quais os sistemas GNU / Linux, como o Ubuntu, são amplamente considerados como sistemas Unix.
O comportamento de ls
é afetado por muitas coisas a>, mas não é afetado pelo fato de POSIXLY_CORRECT
estar ou não definido. (Você pode verificar isso verificando o código fonte em, digamos, 13.04: ls-ls.c
, ls.h
e ls.c
não faz referência a essa variável de ambiente.
Mas alguns outros utilitários são afetados. Por exemplo, o utilitário df
imprime informações de uso de disco para todos os dispositivos montados. Normalmente, o df
do Ubuntu (fornecido pelo GNU coreutils) mostra isso em blocos de 1 kilobyte. Com POSIXLY_CORRECT
set, mostra em blocos 512B (isto é, meio kilobyte). Esse comportamento é exigido pelo padrão POSIX, mas provavelmente não é útil para a maioria dos usuários , portanto não é o padrão.
ek@Kip:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda8 15481840 11816640 2878768 81% /
udev 1020748 12 1020736 1% /dev
tmpfs 412840 5156 407684 2% /run
none 5120 0 5120 0% /run/lock
none 1032100 240 1031860 1% /run/shm
none 102400 32 102368 1% /run/user
/dev/sda6 245679 159043 73529 69% /boot
/dev/sda9 31458256 10024972 19835284 34% /home
/dev/sdd1 1922859824 1687175656 138008496 93% /media/ek/Noether
/dev/sdc1 1922859824 1700447368 124736784 94% /media/ek/Baker
/dev/sdb1 1922859824 1782944724 42239428 98% /media/ek/Spinoza
ek@Kip:~$ POSIXLY_CORRECT= df
Filesystem 512B-blocks Used Available Use% Mounted on
/dev/sda8 30963680 23573440 5817376 81% /
udev 2041496 24 2041472 1% /dev
tmpfs 825680 10312 815368 2% /run
none 10240 0 10240 0% /run/lock
none 2064200 480 2063720 1% /run/shm
none 204800 64 204736 1% /run/user
/dev/sda6 491358 318086 147058 69% /boot
/dev/sda9 62916512 20049944 39670568 34% /home
/dev/sdd1 3845719648 3374351312 276016992 93% /media/ek/Noether
/dev/sdc1 3845719648 3400894736 249473568 94% /media/ek/Baker
/dev/sdb1 3845719648 3565889448 84478856 98% /media/ek/Spinoza
2. Não há uma página de manual "regular" para o comando / tópico em que você está interessado.
Às vezes, a página de manual do POSIX é a única disponível. Por exemplo, o comando cd
é um shell embutido apenas. Ele é fornecido por shells diferentes e se comporta de maneira um pouco diferente de shell para shell (em que shells diferentes às vezes fazem cd
aceitar diferentes opções de linha de comando ).
O shell interativo padrão no Ubuntu é bash
e você pode obter informações sobre cd
em man bash
. Mas se você quiser uma página de manual apenas para cd
, bem, não há nenhum executável cd
(nenhum comando global% utilizável, independente de shell cd
).
Mas o comando cd
é uma parte necessária do padrão POSIX - os shells devem implementá-lo, e o padrão POSIX "sabe" sobre o que é necessário. Portanto, uma uma página de manual POSIX para cd
é possível e existe.
Procurando por cd
em manpages.ubuntu.com mostra a página de manual do POSIX e outras duas . Este é outro tipo de exemplo de várias páginas de manual com o mesmo nome, a propósito. Quais são os outros? Um é o comando cd
na linguagem Tcl . O outro é um driver de CD-ROM no sistema operacional FreeBSD. As páginas de manual do FreeBSD às vezes são úteis para usuários do Ubuntu, então uma coleção inteira delas pode ser instalada, incluindo man 4 cd
(não é uma das páginas de manual do FreeBSD que provavelmente será útil para usuários do Ubuntu que também não usam o FreeBSD).
Por que planejar 9?
Você pode estar se perguntando por que existem Plan 9 páginas manuais no Ubuntu. Afinal, ao contrário do Ubuntu (e de muitos outros sistemas operacionais como o FreeBSD), o Plan 9 não é nem um estilo Unix- sistema operacional, embora, como Oli diz, há algumas semelhanças.
A razão para isto é que as ferramentas userland do Plan 9 (o conjunto básico de ferramentas correspondendo muito a coreutils) foram portadas para sistemas Unix-like, para que possam ser executadas em sistemas operacionais como como o Ubuntu. Eles e suas páginas de manual são fornecidos pelo pacote 9base
.
Algumas (nem todas) das ferramentas do Plan 9 disponíveis para o Ubuntu têm o mesmo nome que as ferramentas do Ubuntu, e executam funções iguais ou similares.
Uma das razões para ter as ferramentas do Plan 9 no Ubuntu é que algumas delas não correspondem diretamente a nenhuma ferramenta do Ubuntu (mas ainda podem precisar das ferramentas que o fazem, para interoperabilidade).
Outro motivo é suportar software que depende das ferramentas do Plan 9. Por exemplo, o gerenciador de janelas wmii costumava ser empacotado para o Ubuntu (e disponível em fontes de software oficiais do Ubuntu); Este pacote wmii2
dependia de 9base
.