LINUX
NEWBIE
ADMINISTRATOR
GUIDE
ver. 0.154 2001-09-02 by Stan, Peter and Marrei Klimas
A última
versão deste guia está disponível em
http://sunsite.dk/linux-newbie.
Copyright (c) <1999,2000,2001> by Peter and Stan Klimas.
Sua resposta, comentários, correções, e
melhorias são apreciados. Envie-os para linux_nag@canada.com
Este material pode ser distribuído somente sob os termos e
condições estabelecidas pela Open Publication License,
v1.0, 8 ou posterior http://opencontent.org/openpub/
com as modificações estabelecidas em lnag_licence.html.
Parte 7: Aprendendo com Linux
Conteúdo :
7.1 Ferramentas Avançadas
Linux de Processamento de Textos: emacs, vi,
joe, diff, patch, grep, expressões
regulares, sed, (g)awk,
cvs, sort e ascii, gpg (pgp)
7.2 Programação
simples sob Linux: perl, python,
tcl/tk/wish, c/c++,
kdevelop, glade
7.3 Ferramentas
matemáticas: dc, bc e "regular"
calculator, scilab,geração de caracteres
randômicos(random)na linha de comando
7.4 : Miscelânea: wine,
RAID ferramentas RAID de disco, controle de banda
de rede(network traffic shaping).
Intro: Esta página contem comandos que não
são essenciais para novatos mas podem ser ótimos e/ou
muito produtivos se você gastar seu tempo para aprende-los.
Acima de tudo, eles podem ser bastante educacionais - - o Linux é
uma grande plataforma para aprendizado.
/usr/games/banner -w79 "Happy Birthday, Marie" >
marie.txt
Cria um banner ascii com o comprimento de 79
caracteres. A saída é enviada para o arquivo marie.txt.
Divertida, uma ferramenta a moda antiga.
script
Registra minha sessão corrente no
terminal texto no arquivo texto typescript . O registro
termina quando eu digito exit ou pressiono <Ctrl>d.
emacs
(no terminal X) O editor de
textos emacs. Editor de textos avançado e sofisticado. Parece
que é somente para guris: "emacs não é
apenas um editor, é um modo de viver". Emacs certamente
parece rico ou sem gosto, dependendo de seu ponto de vista. Há
comumente 3 versões de emacs instaladas em seu sistema: (1)
texto-somente: digite emacs em um terminal texto (não
em X-windows) (Eu evito isto como fogo); (2) modo gráfico:
digite emacs em um terminal X (facilmente usável
mesmo por um novato se você gastar algum tempo para
aprende-lo); e (3) modo X-windows: digite "xemacs" em um
terminal X-windows.
vi
O famoso(notório?) editor
de textos "vi"(definitivamente não recomendado para
novatos). Para sair do "vi" (nenhuma alteração
a ser salva) use estes cinco caracteres: <ESC>:q!<Enter>
Eu uso o editor de textos pico e não preciso nunca de vi(bem,
a menos que tenha que desmontar o subsistema /usr e modificar/editar
alguns arquivos de configuração, então vi é
o único editor disponível). Para ser agradável,
as distribuições modernas Linux usam vim (="vi
improved[vi melhorado]") no lugar de vi, e vim é de
alguma forma melhor que o vi original costuma ser. A interface
gráfica de vi está também disponível
(digite gvim em um terminal X).
Os experts adoram vi, mas vi é definitivamente difícil a menos que você o use todos os dias. Eis uma opinião de um não-novato sobre vi (http://linuxtoday.com/stories/16620.html):
"Eu fui apresentado ao vi em 1988 e eu o odiei. Eu era novato no colégio. VI parecia arcaico,complicado e imperdoável. Passados 12 anos e eu amo vi, ele é quase o único editor que uso. Por que a mudança? Eu realmente aprendi a usar vi... Agora vejo vi para o que ele realmente é , um editor flexível, poderoso, e cheio de recursos..."
Uma curta introdução aos comandos e modos básicos vi podem ser vistos em http://www.thelinuxgurus.org/vitut.shtml.
Para sua diversão, você pode também experimentar o ainda mais antigo editor ed (simplesmente digite ed na linha de comando).
joe
Um bom e relativamente amigável editor de
textos ascii. Aos meus olhos, joe deveria vir depois de pico
se eu pudesse me lembrar das combinações de teclas do
WordStar ou dos ambientes Borland-IDEs.
nano
Esta é uma substituição GNU
nova em folha(March 2001) para o pico. Ele trabalha e se parece como
o pico, mas é menor, melhor e licenciado e esperado com uma
peça de software decente para Linux Ainda não
incluído com RH7.0 ou MDK7.2, mas é logo esperado.
khexedit
(no terminal X) Editor hexadecimal simples.
Um outro editor hexadecimal é hexedit (baseado em
texto, menos amigável). Editores hexa são usados
para edição binária de arquivos (não-ASCII).
diff arquivo1 arquivo2 > arquivo_de_diferenças
Compara o conteúdo de dois arquivos e lista quaisquer
diferenças. Salva a saída no arquivo
arquivo_de_diferenças.
sdiff file1 file2
Comparacao lado a lado de
dois arquivos textos. A saída vai para a saída padrão
a qual normalmente é a tela.
patch file_to_patch patchfile
Aplica o
patch(um arquivo produzido pelo comando diff, o qual lista
diferenças entre dois arquivos) chamado patchfile ao
arquivo file_to_patch. Se o patch foi criado usando o
comando anterior, eu usaria : patch file1 patchfile para
transformar o arquivo file1 no arquivo file2.
grep filter
Pesquisa o conteúdo
de arquivos textos por argumentos. Definitivamente produtivo, deve-se
aprender pelo menos o básico deste comando.
Um simples exemplo. O comando:
cat * | grep my_word | more
pesquisará todos os arquivos do diretório corrente(exceto arquivos que se iniciam por um .(ponto)) e mostrará as linhas que contem o string "my_word".
Uma forma mais curta para se obter o mesmo resultado é:
grep my_word * |more
Os argumentos são especificados usando uma notação padrão e poderosa chamada de expressões regulares.
Existe também uma versão recursiva do comando grep chamada de rgrep. O comando abaixo irá pesquisar todos os arquivos no diretório corrente e seus subdiretórios pelo string my_word e listará os nomes dos arquivos e as linhas onde o string for encontrado:
rgrep -r my_word . | more
Expressões regulares (regexpr)
As expressões
regulares são usadas para pesquisas de strings, substituições,
etc. Elas são frequentemente utilizadas com utilitários(por
exemplo,, grep, sed) e linguagens de
programação(por exemplo, perl). O comando dir,
usa uma variante modificada de expressões regulares (as duas
maiores diferenças são citadas abaixo). Estas breves
notas incluem quase todas as características das expressões
regulares padrões - - elas não são tão
complicadas como parecem a primeira vista. Definitivamente é
vantajoso olha-las mais de perto.
Nas expressões regulares, a maioria dos caracteres devem casar com eles mesmos. Assim, para pesquisar o string "peter", eu usaria um string de pesquisa "peter". As exceções são os assim chamados caracteres especiais(metacaracteres, os quais tem significados especiais.
Os caracteres especiais das expressões regulares são : "\" (backslash), "." (ponto), "*" (asterisco), "[" (abre-colchetes), "^" (negação, especial somente quando inicia um string), "$" (dólar, especial somente ao final de um string). Um caracter terminando um string de pesquisa é também especial para este string.
A barra invertida(backslash), "\"é usada com um caracter de escape, isto é, para indicar um caracter especial que a segue.
Dai, "\\" pesquisa por uma barra invertida, ("\." pesquisa por um ponto, "\*" pesquisa por um asterisco, "\[" pesquisa por um abre-colchetes, "\^" pesquisa pelo sinal de negação mesmo no inicio de um string, "\$" pesquisa pelo sinal de dólar mesmo no fim de um string.
Uma barra invertida seguida por um caracter comum (não especial) pode ganhar um significado especial. Dai, os símbolos \< e \> pesquisam por um string vazio no inicio e fim de uma palavra, respectivamente. O símbolo \b pesquisa por um string vazio no limite de uma palavra e \B pesquisa por um string vazio desde que ele não esteja no limite de uma palavra.
O ponto casa com qualquer caracter, [O comando dir usa "?" para isto.] Dai, "m.a" casa com "mpa" e "mea" mas não com "ma" ou "mppa".
Qualquer string é encontrado por ".*" (ponto e asterisco). [O comando dir usa "*" para isto] Em geral, qualquer string para pesquisa seguido por "*" casa com zero ou mais ocorrências deste string. Dai que, "m*" casa com zero ou mais ocorrências de "m". Para pesquisar por um ou mais "m", eu posso usar "mm*".
O *é um operador de repetição. Outros operadores de repetição são usados menos frequentemente -- eis uma lista completa:
* o item precedente deve ser casado zero ou mais vezes;
\+ o item precedente deve ser casado uma ou mais vezes;
\? o item precedente é opcional e casado no máximo uma vez;
\{n} o item precedente deve ser casado exatamente n vezes;
\{n,} o item precedente deve ser casado n ou mais vezes;
\{n,m} o item precedente deve ser casado no mínimo m vezes, mas não mais que n vezes.
O sinal de negação, "^", significa o inicio da linha". Assim "^a" significa encontre uma linha que se inicie com um "a".
O sinal de dólar, "$", significa "o fim da linha". Assim "a$" significa encontre uma linha terminando com um "a".
Exemplo. Este comando pesquisa no arquivo meuarquivo por linhas que se iniciam por um an "s" e terminam com "n", e as mostra na saída padrão(tela):
cat meuarquivo | grep '^s.*n$'
Qualquer caracter que termina o string de pesquisa é especial, preceda-o com uma barra ao contrário (backslash) se você quer usa-lo neste string.
O abre colchetes "["introduz um conjunto. Dai que [abD] significa : ou a ou b ou D. [a-zA-C] significa qualquer caracter de a a z ou de A a C.
Atenção com alguns caracteres dentro de conjuntos. Dentro de um conjunto, os únicos caracteres especiais são "[", "]", "-", e "^", e as combinações "[:", "[=", e "[.". A barra ao contrário(backslash) não é especial dentro de um conjunto.
Categorias úteis de caracteres são (tal como definido pelo padrão POSIX): [:upper:] =letras maiúsculas, [:lower:] =letras minúsculas, [:alpha:] =alfabético: (letras) significando maiúsculas e minúsculas, [:digit:] =0 a 9, [:alnum:] =alfanumérico: significando alfabético + dígitos, [:space:] =espaço em branco significando <Espaço>+<Tab>+<Newline> e similar, [:graph:] =caracteres graficamente exibiveis exceto espaço, [:print:] =caracteres exibiveis incluindo espaço, [:punct:] =caracteres de pontuação significando caracteres especiais excluindo caracteres alfabéticos e dígitos, [:cntrl:] =caracteres de controle significando caracteres não exibiveis, [:xdigit:] = caracteres que são dígitos hexadecimais.
Exemplo. Este comando pesquisa a saída do comando dir e mostra as linhas que contem uma letra maiúscula seguida por um digito:
dir -l | grep '[[:upper:]][[:digit:]]'
tr
(=tradução). Um
filtro útil para substituir todas as ocorrências de
caracteres em um arquivo texto ou juntar os espaços em
brancos.
Exemplo :
cat meuarquivo | tr 1 2 > novoarquivo
Este comando pega o conteúdo do arquivo meuarquivo e direciona-o para o utilitário de tradução tr, o utilitário tr substitui todas as ocorrências do caracter "1" com "2", a saída do processo é direcionada para o arquivo novoarquivo.
sed
(=editor de stream) Eu uso sed
para para filtrar arquivos textos. O string a ser pesquisado é
tipicamente incluído entre um para de barras e delimitado.
Por exemplo, para imprimir linhas contendo o string "1024", eu uso:
cat nomedoarquivo | sed -n '/1024/p'
Aqui o utilitário sed filtra a saída do comando cat. A opção "-n" diz ao se para bloquear todas as linhas de entrada exceto aquelas que contem a minha expressão. A ação do sed em caso de acha-la é "p"= print(mostrar).
Um outro exemplo, desta vez para deletar as linhas selecionadas:
cat nomedoarquivo | sed '/.*o$/d' > novoarquivo
Neste exemplo, as linhas terminado com um "o" serão deletadas. Eu usei uma expressão regular para casar com qualquer string seguido por um "o" e o fim da linha. A saída (isto é, todas as linhas exceto aquelas terminadas com "o") é direcionada para novoarquivo.
Um outro exemplo. Para procurar e substituir, eu uso a ação do sed a qual vem em frente de duas expressões:
cat nomedoarquivo | sed 's/antigo_string/novo_string/' > novoarquivo
Uma forma mais curta para o ultimo comando é:
sed 's/antigostring/novstring/' nomedoarquivo> novoarquivo
gawk
(=GNU awk. O comando awk é
uma ferramenta tradicional UNIX) Uma ferramenta para
processamento de arquivos textos, de varias maneiras similar ao sed,
mas muito mais poderosa. O Perl pode fazer tudo que o gawk
faz, e muito mais, porisso eu não me preocupo muito com gawk
Para tarefas simples, eu uso o sed, para tarefas mais
complicadas, eu uso perl. Em alguns casos, no entanto, os scripts awk
podem ser mais curtos, mais fáceis de entender e manter, e
mais rápidos que o programa perl equivalente.
gawk é particularmente aconselhável para processamento de tabelas baseadas em textos. Uma tabela consiste de registros(cada linha é normalmente um registro). O registro contem campos separados por um delimitador. Os delimitadores frequentemente usados são, o espaço em branco, a virgula e o sinal de dois pontos. Toda expressão gawk tem um formato
gawk 'argumento {ação}' meu_arquivo. Você pode omitir o string ou a ação: o argumento default é ache qualquer coisa e a ação default é mostre a linha. O gawk pode também ser usado como um filtro(para processar a saída de um outro comando, como mostrado em nossos exemplos).
Exemplo. Para mostra as linhas que contenham o string "1024", eu posso usar:
cat nomedoarquivo | gawk '/1024/ {print}'
O que torna o gawk mais poderoso que o sed são as operações sobre campos. $1 significa "o primeiro campo", $2 significa o "segundo campo", etc. $0 significa a "linha inteira". O próximo exemplo extrai os campos 3 e 2 das linhas que contem "1024" e os mostra com os títulos "Nome" and "ID" :
cat nomedoarquivo | gawk '/1024/ {print "Nome: " $3 "ID: " $2}' > novoarquivo
O terceiro exemplo procura e mostra linhas com o terceiro campo igual a "peter" ou que contenham o string "marie":
cat nomedoarquivo | gawk '$3 == "peter" || $3 ~ /marie/ '
Para entender o ultimo comando, eis aqui uma lista dos testes lógicos em gawk: == igual, != diferente, < menor que, > maior que , <= menor ou igual a, >= maior ou igual a, ~ procurar por uma expressão regular, !~ que sejam diferente de uma expressão regular, || OU lógico, && E lógico, ! negação lógica.
cvs
Sistema de versões
concorrentes. Experimente info cvs para obter mais
informações. Útil para manter o código
fonte repositório" quando diversos programadores estão
trabalhando no mesmo programa de computador.
cervisia
(no terminal X). Uma interface gráfica
para o sistema de versões cvs.
file -z nomedearquivo
Determina o
tipo do arquivo nomedoarquivo. A opção -z faz
com que o comando file procure dentro de arquivos
compactados para determinar qual o tipo do arquivo ali compactado (ao
invés de dizer que é um arquivo compactado).
Para determinar o tipo do arquivo, file procura dentro do arquivo por uma peça particular de conteúdo( números magico) --ele não procura pela extensão do arquivo tal como faz o MS Windows. Os números mágicos" estão guardados no arquivo texto /usr/share/magic--um banco de dados realmente impressionante de tipos de arquivos.
strings nomedoarquivo | more
Mostra os strings contidos no arquivo binário chamado
nomeoarquivo. "strings" pode, por exemplo, ser um
útil primeiro passo para um exame mais próximo de um
executável desconhecido.
od
(=dump em octal). Mostra o
conteúdo como números octais. Isto pode ser útil
quando a saída contem caracteres não exibiveis. Por
exemplo, um nome de arquivo pode conter caracteres não
exibiveis e ser algo realmente doloroso.
Exemplos:
dir | od | more
cat meu arquivo | od |more
od meuarquivo
wc
(=contador de palavras) Mostra o
numero de linhas, palavras e bytes no arquivo.
Exemplos:
dir | wc
cat meuarquivo | wc
wc meuarquivo
cksum nomedearquivo
Calcula o CRC (="verificação
de redundância cíclica") do arquivo nomedoarquivo
para verificar a integridade do mesmo.
md5sum
Calcula o checksum md5(128-bit) do arquivo
nomedoarquivo para verificar sua integridade.
mkpasswd -l 10
Gera um password difícil de se
advinhar com um tamanho de 10 caracteres.
sort -f nomedoarquivo
Agrupa as
linhas do arquivo de acordo com a ordem ascii. A opção
-f diz ao comando sort para ignorar as diferenças
entre letras maiúsculas e minúsculas. O conjunto de
caracteres ascii é (veja man ascii):
Dec Hex Carac
Dec Hex Carac Dec Hex
Carac Dec Hex Carac
---------------------------------------------------------------------------
0 00 NUL
'\0' 32 20 SPACE
65 41 A
97 61 a
1
01 SOH
33 21 !
66 42 B
98 62 b
2
02 STX
34 22 "
67 43 C
99 63 c
3
03 ETX
35 23 #
68 44 D
100 64 d
4
04 EOT
36 24 $
69 45 E
101 65 e
5
05 ENQ
37 25 %
70 46 F
102 66 f
6
06 ACK
38 26 &
71 47 G
103 67 g
7
07 BEL '\a' 39 27
' 72 48
H 104 68
h
8 08
BS '\b' 40 28
( 73 49
I 105 69
i
9 09
HT '\t' 41 29
) 74 4A
J 106 6A
j
10 0A
LF '\n' 42 2A
* 75 4B
K 107 6B
k
11 0B
VT '\v' 43 2B
+ 76 4C
L 108 6C
l
12 0C
FF '\f' 44 2C
, 77 4D
M 109 6D
m
13 0D
CR '\r' 45 2D
- 78 4E
N 110 6E
n
14 0E
SO 46
2E . 79
4F O 111
6F o
15
0F SI
47 2F /
80 50 P
112 70 p
16
10 DLE
48 30 0
81 51 Q
113 71 q
17
11 DC1
49 31 1
82 52 R
114 72 r
18
12 DC2
50 32 2
83 53 S
115 73 s
19
13 DC3
51 33 3
84 54 T
116 74 t
20
14 DC4
52 34 4
85 55 U
117 75 u
21
15 NAK
53 35 5
86 56 V
118 76 v
22
16 SYN
54 36 6
87 57 W
119 77 w
23
17 ETB
55 37 7
88 58 X
120 78 x
24
18 CAN
56 38 8
89 59 Y
121 79 y
25
19 EM
57 39 9
90 5A Z
122 7A z
26
1A SUB
58 3A :
91 5B [
123 7B {
27
1B ESC
59 3B ;
92 5C \ '\\' 124 7C
|
28 1C
FS 60
3C < 93
5D ] 125
7D }
29
1D GS
61 3D =
94 5E ^
126 7E ~
30
1E RS
62 3E >
95 5F _
127 7F DEL
31
1F US
63 3F ?
96 60 `
64 40 @
Se você pensou sobre os caracteres de controle, eis o significado ee alguns deles na console (Fonte: man console_codes). Cada linha abaixo dá o código mnemônico, seu número decimal ASCII, a combinação de teclas para produzir o código na console e uma curta descrição:
BEL (7, <Ctrl>G) bell (=bip de alarme).
BS (8, <Ctrl>H) volta uma coluna (mas não passa do início da linha).
HT (9, <Ctrl>I) tabulação horizontal, vai para o próximo ponto de tabulação ou para o fim da linha se não houver mais pontos de tabulação.
LF (10, <Ctrl>J), VT (11, <Ctrl>K) e FF (12, <Ctrl>L) todos os três geram um linefeed(avanço de linha).
CR (13, <Ctrl>M) gera um carriage return(retorno ao inicio da linha).
SO (14, <Ctrl>N) ativa o conjunto de caracteres G1, e se LF/NL (modo de nova linha) está definido para gerar também um carriage return(retorno ao inicio da linha).
SI (15, <Ctrl>O) ativa o conjunto de caracteres G0.
CAN (24, <Ctrl>X) e SUB (26, <Ctrl>Z)interrompe uma seqüência de escape.
ESC (27, <Ctrl>[) inicia uma seqüência de escape.
DEL (127) é ignorado.
CSI (155) introdutor de uma seqüência de controle.
uniq
(=único) Elimina linhas duplicadas em uma
entrada classificada. Por exemplo: sort meuarquivo | uniq
fold -w 30 -s meuarquivotexto > novoarquivotexto
Quebra as linhas do arquivo texto meuarquivotexto de
forma que haja 30 caracteres por linha. A linha é quebrada nos
espaços. A saída vai para novoarquivotexto.
fmt -w 75 meuarquivotexto > novoarquivotexto
Formata
as linhas no arquivo texto para a largura de de 75 caracteres.
Quebra linhas compridas e junta linhas curtas de acordo com o
requerido mas não remove linhas vazias.
nl meuarquivo > meuarquivocomlinhasnumeradas
Numera
as linhas no arquivo meuarquivo Coloca a saída no
arquivo meuarquivocomlinhasnumeradas.
rev nomedoarquivo > nomedoarquivo1
Mostra o
arquivo nomedoarquivo, cada linha na ordem reversa. No
exemplo acima, a saída é dirigida para nomedoarquivo1.
shred nomedearquivo
Repetidamente regrava o conteúdo
do arquivo nomedearquivo com lixo, de forma que ninguém
será capaz de ler o seu conteúdo original novamente.
paste arquivo1 arquivo2 > arquivo3
Combina dois ou
mais arquivos textos em linhas usando o <Tab> como
delimitador (use a opção d=" para
especificar seu próprio delimitador.
Exemplo. Se o conteúdo do arquivo1 era:
1
2
3
e o do arquivo2 era:
a
b
c
d
o arquivo resultante arquivo3 seria:
1 a
2 b
3 c
d
join arquivo1 arquivo2 > arquivo3
Junta linhas de
dois arquivos em um campo comum. join é um
paralelo com a operação de join tables de
banco de dados, mas funciona em arquivos textos. O padrão
é juntar no primeiro campo da primeira tabela, e o delimitador
default é o caracter espaço. Para ajustar os padrões,
eu uso as opções que são descritas em man
join).
Exemplo: Se o conteúdo de arquivo1 era
1 Barbara
2 Peter
3 Stan
4 Marie
e o do arquivo2 era:
2 Dog
4 Car
7 Cat
o arquivo resultante arquivo3 seria:
2 Peter Dog
4 Marie Car
des -e arquivo arquivo_criptografado
(="Padrão de criptografia de dados") Criptografa
arquivo. Será solicitada você uma chave
que o programa usará para a criptografia. A saída vai
para arquivo_criptografado. Para descriptografar use
des -d arquivocriptografado arquivo_descriptografado.
gpg
"Guarda de privacidade
Gnu"--um software livre equivalente ao PGP ("Pretty Good
Privacy"). gpg é mais seguro que PGP e não
usa nenhum algoritmo patenteado. gpg é usado na
maioria das vezes para assinar mensagens de e-mail. Você
pode usa-la também para criptografar/descriptografar
mensagens. http://www.gnupg.org/
contém os detalhes,incluindo um material detalhado.
Para iniciar, eu precisei de um par de chaves: privada e pública. A chave privada é usada para assinar minhas mensagens. A pública eu a distribuo para que os outros possam usa-la para verificar minha assinatura. [Alguém pode também usar uma chave publica para criptografar uma mensagem de forma que ela possa somente ser lida usando minha chave privada] Eu gero meu par de chaves usando este comando:
gpg --gen-key
Minhas chaves são gravadas no diretório ~/.gnupg (criptografado usando uma frase chave Eu a supri durante a geração da chave). Para listar minha chave publica em arquivo texto, eu uso:
gpg --armor --export meu_endereço_de_email > chave_publica_de_stan.gpg
o qual cria um arquivo chave_publica_de_stan.gpg contendo algo como se segue:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org
mQGiBDmnzEYRBACoN438rxANaMfCy5bfj6KWM0/TR6x6HZ0gpmhGeuouM/SOR2IU
/G30NdCuzHeFs93BhtY0IdzoEMtMyZHnvdhZC2bx/jhgaaMbEaSsXwRhVB0xVPYx
rHbsgSULHYzRFF34MS3/Lse3QWfWxzA7I0lbXB7nLwZKZqaNONRFRR42owCg60hV
TDPEB2N0llMyt12R4ZByFSsEAJ1tE7pb9b6TP7cw21vkIjc+BI2uSzn/B4vNlCWK
TTuZHVv0w0jFcbd8DB0/1tlZUOrIzLSqJyQDGiNn258+7LetQ+LKG/1YKbiAcosz
4QirBuLIeF2M9GuXYCwZypE3Dwv+4YupvybR31CgLTJ8p4sKqC5n0eSr2oSrtdHZ
yuJtA/9v2HcebOncfCNOK+cVRmcTB1Frl/Gh/vNCfeZyXaJxlqDfCU2vJHtBemiE
AtcfZHB/iHy0DM68LfRJSAIFAa5um9iWHh5/vWCGZLqtpwZ7kyMw+2D6CFkWATsy
wQA1g1VcGkNc14Crrd36qf60bI+b8pn2zDhwZtLsELsXyXkNhbQmU3RhbiBKIEts
aW1hcyA8U3RhbktsaW1hc0B3ZWJoYXJ0Lm5ldD6IVgQTEQIAFgUCOafMRgQLCgQD
AxUDAgMWAgECF4AACgkQt+ZBooH8bHd2kwCghAt9aKIk0mRJv+g7YcRPotVtrwkA
n1a4xEVEyaKgKoMaJnopf69K9+vouQENBDmnzH4QBADgFpLP+tWZPnVYg47cn+9b
XQRjdOtNsDE6BYH872/sR1oCrdH6k+gXFOiZxRZ3PElK2/olo59kh5xa9aBxNdEC
FuXJN0UelmhOFbDtqVksIqVWyYfXnLz+wtcXg0Q0L0q8vY4IuTzw2WkV6EkM+/x8
6UhA2XVaMJKBdRKFSVilbwADBQP+JCzLj5HDgpRvf+KM72nzSg7sp8Tki7nF9wNA
PODK0SeQgI3dwXYyF6AVenlETE/3xRWoYQN1bxVZsOex9vzqPrQC3dR0NBljd74r
kfXwUTl2fNQX4N9iuVCo2gCGbi5+gfEk1GhsWDsq0z40f+18k+XBdWmY8sCNiolT
tnvm1QeIRgQYEQIABgUCOafMfgAKCRC35kGigfxsd9SGAJ9/FWSkEfgbE/Yc46d8
Ef1gYg3I1ACff3oLeAMeGGO79gW6UGp9RJ6mRao=
=X1k2
-----END PGP PUBLIC KEY BLOCK-----
Agora, eu posso enviar por email minha chave pública para pessoas com quem eu quero conversar em segurança e privacidade. Eles podem armazena-la em seus sistemas pgp usando;
gpg --import chave_publica_de_stan.gpg
Melhor ainda, eu posso submeter minha chave pública para um servidor de chaves públicas. Para encontrar um servidor mais próximo, eu usei:
host -l pgp.net | grep wwwkeys
e para submeter a chave, eu fiz(pode levar alguns minutos):
gpg --keyserver wwwkeys.pgp.net --send-keys linux_nag@canada.com
O "wwwkeys.pgp.net" é o servidor de chaves que selecionei e "linux_nag@canada.com" é meu endereço de email que me identifica meu anel local de chave. Eu preciso submeter-me a somente um servidor publico de chaves(eles se sincronizam).
Agora, eu posso começar a usar o gpg. Para assinar manualmente um arquivo texto minha_mensagem, eu poderia usar:
gpg --clearsign minha_mensagem
Isto criou minha_mensagem.asc o qual contem alguma coisa como :
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello World!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE5p9+3t+ZBooH8bHcRApn/AJ9kx9+pU3GJBuvJN9Bo3bW3ku/5PwCgquht
mfrPrt7PQtdmGox72jkY0lo=
=rtK0
-----END PGP SIGNATURE-----
Para verificar uma mensagem assinada eu uso :
gpg --verify minha_mensagem.asc
Se o conteúdo da seção assinada em minha_mensagem.asc for ligeiramente modificada a assinatura não será validada.
A assinatura manual pode ser trabalhosa. Mas, por exemplo, kmail pode lançar as assinaturas eletrônicas automaticamente para mim.
ferramentas de docbook"
Docbook é o padrão emergente para repositório
de documentos. As ferramentas de docbooks estão incluídas
no RH6.2 (e posteriores) no pacote "jade" e incluem os
seguintes conversores: db2ps, db2pdf, db2dvi,
db2html, db2rtf os quais convertem arquivos para :
postscript (*.ps), Adobe Portable Document Format (*.pdf), formato de
arquivo independente do dispositivo(device independent file format)
(*.dvi), HyperText Markup Language (*.html), e Rich Text Format
(*.rtf), respectivamente.
"Repositório de documentos" significa que os documentos estão em um formato que podem ser automaticamente traduzidos em outros formatos úteis. Por exemplo, considere um documento(em desenvolvimento) o qual pode, no futuro, precisar ser publicado como um relatório, um jornal, um artigo de jornal, uma pagina web, talvez um livro, Eu (o autor) estou ainda incerto. Formatando o documento usando uma codificação particular(fontes, tamanho de fontes, quebras de paginas, centralização de linhas) é um pouco mais que desperdício de tempo - - os estilos variam muito entre os tipos particulares de documentos e são dependentes de quem os está publicando. A solução é formatar o documento usando elementos de layout lógicos os quais podem incluir o titulo do documento, títulos de capítulos, subcapitulos, estilos de ênfase, nomes de figuras, textos elucidativos, tabelas, etc. Para isto existe o "docbook" --ele é uma descrição de estilos(usando xml, um conjunto que contem o html, e bastante relativo de sgml)--uma assim chamada pagina de estilo(stylesheet). O layout lógico é montado em uma aparência física quando o documento está sendo publicado.
Esta seção será expandida no futuro a medida
em que formos aprendendo sobre docbook.
perl
Linguagem de script poderosa
e amplamente utilizada, muito popular entre os gurus. Perl parece ser
criptografado, ainda é trabalhoso se você precisa fazer
tarefas simples. Imagine o perl como um canivete suíço
para programação simples. Eis como Eric Reymond
(um famoso guru Linux) descreve perl: "Perl, naturalmente, é
o gorila de 5 toneladas das linguagens de script modernas. Ela tem
sido usada largamente para substituir o shell como a linguagem de
script de escolha dos administradores de sistemas, graças
parcialmente ao seu compreensivo conjunto de bibliotecas e chamadas
de sistemas (system calls)UNIX, e parcialmente a grande coleção
de módulos Perl criados por uma comunidade Perl muito ativa. A
linguagem é comumente estimada como a linguagem CGI por trás
de 85% do conteúdo vivo na Internet.. Larry Wall, seu criador,
é corretamente um dos mais importantes lideres na comunidade
Open Source community, e é frequentemente o terceiro no
ranking após Linus Torvalds e Richard Stallman no panteão
dos semideuses hackers."
Como escrever um simples script Perl?
Pode-se usar o pico (ou qualquer outro editor de texto, a sua escolha) para digitar um simples script perl:
pico exemplo_perl
O exemplo abaixo não faz nada útil, a não ser ilustrar algumas características de perl:
#!/usr/bin/perl -w
# um estúpido exemplo de programa perl
# as linhas que se iniciam por um # são comentários exceto a primeira linha
# nomes de variáveis escalares se iniciam por um $
$a=2;
$b=3;
# cada instrução termina com um ponto-e-virgula, como na linguagem C
print $a**$b,"\n";
$alo_mundo='Alô Mundo';
print $alo_mundo,"\n";
system "ls";
A primeira linha diz ao shell como executar meu arquivo texto. A opção "-w" faz com que perl mostre algumas advertências adicionais, etc, que podem ser úteis para depurar o seu script. As próximas três linhas (começando com #) são comentários. As linhas seguintes são quase auto-explicativas, atribuo alguns valores para duas variáveis($a e $b), elevo $a a potência $b e mostro o resultado. O "\n" mostra uma nova linha, tal como na linguagem de programação C A seguir defino uma outra variável para conter o string Alô Mundo" e, na próxima linha, eu a mostro na tela. Finalmente, eu executo o comando ls no sistema operacional local o qual, no Linux, mostra a listagem do conteúdo do diretório corrente. Um script realmente estúpido.
After saving the file, I make it executable:
chmod a+x exemplo_perl
Agora eu posso executar o script digitando:
./exemplo_perl
python
Um interpretador
orientado a objeto moderno e muito elegante. Poderoso e
(questionavelmente) mais legível que perl. Manuais muito bons
(e grandes) escritos por G. van Rossum (o criador de Python) estão
disponíveis na Internet em http://www.python.org/doc/
para navegação ou ftp://ftp.python.org
para download).
Como escrever um programa simples Python?
Edite um arquivo texto que conterá o seu programa Python:
pico exemplo_python
Digite um código simples python para ver se ele funciona:
#!/usr/bin/env python
print 2+2
A primeira linha (iniciando com #) diz ao shell como executar este arquivo texto--ela deve estar ali(sempre a primeira linha) para o Linux saber que este arquivo texto particular é um script Python. A segunda linha é uma expressão simple Python.
Depois de salvar este arquivo eu o torno executável:
chmod a+x exemplo_python
após o que posso executa-lo digitando:
./exemplo_python
Python é uma linguagem moderna de programação excelente. Experimente-a se você gosta de programação orientada a objetos.
Eis aqui um código perl mais longo auto-explicativo:
#!/usr/bin/env python
# Todos os comentários se iniciam com um #
# Este programa converte anos humanos para anos caninos
# toma a idade original
idade = input("Informe a sua idade(em anos humanos): ")
print # mostra uma linha em branco
# verifica se a idade é válida usando um if simples
if idade < 0:
print "Uma idade negativa não é aceitável."
elif idade < 3 or idade > 110:
print "Francamente, não acredito muito em você."
else:
print "Isto é o mesmo que ", age/7, "anos caninos."
tcl
(Pronuncia-se "ticol".)
Uma linguagem script popular.
Um simples programa tcl?
#!/usr/bin/tclsh
puts stdout {Alô Mundo!}
wish
(no terminal X) Uma interface
para Tk uma extensão X-windows do tcl. Frequentemente usada
para criar interfaces para um programa.
Como escrever um programa gráfico simples (usando Tk)?
Tk é uma interface gráfica da linguagem fácil e poderosa tcl.. Por exemplo, use o pico para criar um arquivo texto que conterá um simples programa tk:
pico exemplo_tk
e digite um exemplo simples de tk para ver se ele funciona:
#!/usr/bin/wish
button .meu_botao -text "Alô Mundo" -command exit
pack .meu_botao
A primeira linha (começando com "#!") diz ao shell qual utilitário usar para executar meu arquivo texto. As próximas duas linhas são um exemplo de programa tk simples. Primeiro, eu criei um botao chamado "meu_botao" e coloquei-o na raiz de minha hierarquia de classes(o ponto em frente do "meu_botao. Ao botao, eu amarrei o texto "Alô Mundo" e um comando que termina o programa (quando o botao é pressionado). A última linha faz com que a janela de meu programa ajuste seu tamanho a um tamanho grande o suficiente para conter o botao).
Depois de salvar o arquivo, eu o torno executável:
chmod a+x exemplo_tk
após o que posso executa-lo digitando(no terminal X, por que ele requer X-windows para rodar):
./exemplo_tk
Tk é muito popular para se construir interfaces gráficas.
gcc nome_de_arquivo.c
Compilador GNU C. Manuais extensos estão disponíveis
na Internet.
Como compilar um simple programa C?
Com o seu editor de textos favorito digite o seu programa fonte:
pico hello.c
a seguir, digite a introdução Kerningham e Richie (os criadores de "c") de um programa C:
#include <stdio.h>
void main(void) {
printf("alô mundo \n");
}
Salve o arquivo e chame o compilador C para compilar o arquivo "hello.c":
gcc hello.c
O compilador c produz um executável binário "a.out", o qual posso executar:
./a.out
g++ nome_de_arquivo.C
Compilador GNU C++. A
letra maiúscula "C" é frequentemente usada
para fontes C++. Se você precisa de um ambiente de
desenvolvimento integrado" (IDE), kdevelop é
algo que você realmente irá gostar.
kdevelop
(digite em um terminal X) Ambiente de
desenvolvimento integrado do KDE. Vale realmente a pena baixa-lo(se
ele não veio com sua distribuição).
glade
(no terminal X) Um criador
gráfico de interfaces para o usuário.
"Glade é um criador de interfaces desenvolvido por Damon Chaplin. Ele permite a construção gráfica e interativa de interfaces gráficas de usuários Gnome/Gtk. A partir do Glade, a interface gráfica pode ser salva em um arquivo xml ou diretamente exportada para código C a ser incluído em uma arvore fonte. O Glade também permite definir o nome de manipuladores - - funções -- a serem ativadas nos vários eventos da interface. Por exemplo, a função (name) a ser chamada quando um item especifico de um menu for pressionado." (A partir de: http://linuxtoday.com/news_story.php3?ltsn=2000-07-16-013-04-PS-GN)
Quais funções C estão disponíveis
para programação sob Linux?
Muitas para um
novato como eu. Eu comecei por estudar os arquivos headers(*.h) no
diretório/usr/include e todos os seus subdiretórios.
Para encontrar um arquivo header que contem um protótipo para
uma dada função(por exemplo, cosh) eu poderia fazer
algo como :
cd /usr/include
grep -H "cosh" *.h
guile
Uma implementação
da linguagem de programação "Scheme".
Scheme é um dialeto moderno de LISP.
Exemplos bobos de guile:
(+ 1 1)
(system "ls")
(display "hello\n")
(define a 7)
(exit)
g77
GNU FORTRAN. Se você usar
FORTRAN, você pode ir até:
http://studbolt.physast.uga.edu/templon/fortran.html
para obter um compilador FORTRAN que se adeque a suas necessidades
particulares em Linux.
expect
Linguagem script para diálogos
programados. Veja man expect.
kylix
Este é uma oferta comercial nova em
folha(Fev.2001) da Borland (melhor dizendo Inprise). Para resumir,
ele é o porte Linux do famoso Pascal orientado a objeto
("Delphi"). kylix não é comum no CD de
sua distribuição Linux, você deve pagar por ele,
mas se você quer a melhor plataforma de desenvolvimento rápido
de aplicações(RAD) com uma portabilidade de código
entre Linux e MS Windows, grande numero de componentes
pré-construídos, etc., kylix é o melhor. Em
minha opinião, Delphi é significativamente melhor que
MS Visual Basic.
make
Rode o utilitário
"make"para construir (compilar, linkar,etc) um projeto
descrito no arquivo Makefile encontrado no diretório
corrente.
yes
Gera um string ininterruptamente (ele termina
quando se tecla <Ctrl><c>). Parece ser um
utilitário bobo, mas ele pode ser usado para escrever simples
programas na linha de comando. Por exemplo, o seguinte exemplo
determina a freqüência de dígitos em 100000 números
randômicos( o comando inteiro é uma única linha):
yes | sed '100000q' | awk
'BEGIN{srand();u=6*log(10)}{printf"%e\n",rand()*exp(rand()*u)}'|
cut -c1 | sort | uniq -c
Espero que este exemplo não
assuste muito você - - ele seguramente mostra que a velha linha
de comando UNIX pode ser tão complicada (e poderosa) o quanto
você queira torna-la. Se você está interessado em
como a freqüência de dígitos varia, veja o local de
onde tomei emprestado o exemplo:
http://www.newscientist.com/ns/19990731/letters4.html
dc
Uma calculadora de precisão
arbitraria que usa a notação polonesa reversa(RPN),
como uma calculadora HP. .
dc é baseada no conceito de stack, o qual é central para as operações de um computador digital moderno. Um stack de um computador não é diferente de uma pilha de pratos de uma cozinha, o último a ficar no topo na pilha, é o primeiro a sair (isto é também conhecido como LIFO="last-in, first-out"). Isto contrasta com uma fila(um outro conceito importante) onde o primeiro a entrar é o primeiro a sair(FIFO).
Você pode executar operações somente com o(s0 numero(s) que estão no topo do stack. As duas operações básicas são push e pop (por no topo do stack, e retirar do topo do stack). Operações unárias retiram um valor do stackl(unário significa que requer um operando"). Operações binarias retiram dois valores do stack("binarias" significa que requerem dois operandos"). Operações ternárias pegam três valores do stack("ternárias" significa que requerem três operandos). Em todos os casos, o resultado é sempre colocado no topo do stack.
Calculadoras RPN são muito populares entre pessoas técnicas e em academias. A notação RPN nunca requer parênteses.
Historia. A lógica livre de parênteses foi desenvolvida por matemáticos poloneses Jan Lukasiewicz (1878-1956) antes da segunda grande Guerra. Originalmente, o operador precedia os valores. Para aplicações de computadores, ela foi modificada de forma que que o operador viesse após os valores, dai a palavra reversa em notação polonesa reversa.
Para exercitar algumas operações no stack, experimente isto:
dc [executa a calculadora RPN de precisão arbitraria]
1 [coloca "1" no stack]
2 [coloca um outro número no stack]
3 [coloca ainda um outro número no stack]
4 [coloca mais um outro número no stack]
f [mostra o stack inteiro, você deverá ver 1 2 3 4]
p [mostra o numero no topo do stack sem afetar o stack, você deverá ver 4]
+ [executa a adição (operação binaria), portanto toma os dois últimos valores do stack (4,3), e coloca o resultado (7) no stack]
p [mostra o número no topo do stack, i.e. O resultado da última adição(7).].
p [mostra novamente o número no topo do stack, para ver que que o stack não foi afetado pela exibição anterior(7)]
* [executa multiplicação(operação binaria), portanto pega os dois últimos valores, e coloca o resultado no topo do stack (14)]
p [mostra o resultado da multiplicação (14)]
P [retira o último número do stack (14)]
p [mostra o número no topo do stack]
2000 [coloca um grande valor inteiro no stackl
k [define a precisão para o valor para que está no topo do stack, i.e. 2000]
1 [coloca um outro número no stack]
f [mostra o conteúdo do stack inteiro]
701 [coloca um outro número no stack]
/ [divide os últimos dois números do stack, i.e. "1/701" com 2000 casas de precisão]
p [mostra o resultado da última divisão]
q [fecha a calculadora]
Observe que utilizando a notação polonesa reversa você nunca precisa de parênteses. Experimente man dc para ler a respeito de outras capacidades de dc.
bc
Uma calculadora de precisão
arbitraria. Digite quit para sair de bc. Digite "scale=20"
antes de executar divisões de ponto flutuante ou você
terá o quociente ao invés do resultado em ponto
flutuante da divisão.
kcalc
xcalc
(no terminal X) Calculadora
gráfica padrão.
e '2*3/4+sin(pi/2)'
O avaliador de expressão
"e" não veio com meu CD RH7.x. Ainda é o meu
favorito de todas as calculadoras que trabalham em linha de comando.
Experimente http://www.softnet.tuc.gr/~apdim/projects/e/ para
baixa-la.
expr 1 + 1 / 3
Avalia uma expressão inteira. O
"expr" não é uma calculadora, é mais
usado para o controle de fluxo em script shells. O exemplo acima
retornará o resultado "1", que é correto por
que 1/3 é 0 considerando-se que a divisão é
inteira.
scilab
(no terminal X) Um sistema grande e
sofisticado para computação numérica, de alguma
forma lembrando "matlab". Não o experimente a não
ser que você tenha necessidades matemáticas um pouco
mais sofisticadas, caso contrario você não o apreciará.
Ele está incluído no CD "powertools" do RH7.0
Um exemplo bobo mostrando álgebra matricial. O que eu informo está em negrito.
-->a=[1 1 1;2 3 4]
a =
! 1. 1. 1. !
! 2. 3. 4. !
-->b=[1 1; 2 2;3 3]
b =
! 1. 1. !
! 2. 2. !
! 3. 3. !
-->c=a*b
c =
! 6. 6. !
! 20. 20. !
-->d=inv(c)
d =
1.0E+14 *
! 11.258999 - 3.3776997 !
! - 11.258999 3.3776997 !
-->
head -c 8 /dev/random
cat
/dev/random | od
cat /dev/urandom | memencode
(3
comandos.) Exemplos de como gerar caracteres randômicos
na linha de comando Linux lendo o dispositivo "random" ou
"urandom". O primeiro comando produz aproximadamente 8
caracteres pela leitura do dispositivo "random", o qual
gera números randômicos de alta qualidade (difíceis
de prever). Ele se tornará lento uma vez que a "entropia"
em seu computador esteja exaurida(e.g., ao produzir um punhado de
caracteres randômicos). A solução então é
esperar ou digitar alguma coisa no teclado, mover seu mouse, alterar
o terminal, fazer com que seu disco leia ou grave etc., para
gerar mais ruído randômico ("entropia").
O segundo comando se mantém produzindo caracteres randômicos,
mas os mostra como números octais (usando o "dump octal",
filtro od). Ele tem que ser interrompido com <Ctrl><c>. O
terceiro comando usa o dispositivo "urandom", o qual é
mais rápido que "random" ao gerar um punhado de
caracteres randômicos. Mas quando a entropia do sistema é
baixa, a randomicidade da saída de "urandom" pode
ser comprometida, é ainda bom para a maioria das necessidades
das aplicações. A saída é filtrada para o
formato mime(o padrão de codificação orientado
para correio Internet de 7 bits) e assim é toda exibível.
A descrição detalhada da teoria e implementação
do algoritmo Linux para geração de números
randômicos pode ser encontrada no código fonte
file://usr/src/linux/drivers/char/random.c
em seu sistema Linux.
factor 10533858466222239345
Encontra todos os
divisores primos de um número inteiro. Por exemplo, os fatores
de 6 são 1, 2, 3, e 6.
R
Um ambiente/linguagem de programação
para computação estatística avançada.
Digite "quit()" para sair.
gnuplot
Utilitário para criar gráficos
e plotar. Muito bom para trabalho não interativo(em lote) mas
não é muito simples para uso interativo. Uma boa
introdução para gnuplot pode ser encontrada em
http://www.duke.edu/~hpgavin/gnuplot.html.
Você não vai instalar Linux para rodar aplicações MS Windows. Mesmo assim, a biblioteca wine baseada em Linux permite-me executar alguns binários MS Window embora a custa de penalidade na performance.
Em meu sistema (com o wine instalado), eu posso executar o Solitaire Windows digitando no terminal X:
wine /mnt/dos_hda1/windows/sol.exe
O /mnt/dos_hda1 é o ponto de montagem da partição de hardware que contem o MS Windows, e está montada no momento.
Se você não tem wine instalado, coloque o
seu cd Mandrake no cdrom, monte-o, e então faca algo parecido
com isto(como root):
cd /mnt/cdrom/Mandrake/RPMS/
rpm
-ihv wine-991212-1mdk.i586.rpm
Os pacotes Mandrake são compatíveis com RedHat,
assim você pode usar o CD Mandrake para instalar softwares que
estejam faltando no RedHat.
RAID = "redundant array of inexpensive drives[seqüência
redundante de discos baratos]". O RAID pode ser usado para
espelhamento on the fly(imediato, a medida que acontece)] de um disco
para outro para proteger seus dados e manter seu sistema funcionando
em caso de uma falha em disco. O Linux vem um conjunto de ferramentas
RAID que permite você customizar e projetar um sistema RAID
para se adequar a suas necessidades particulares. Os pedaços
do RAID em Linux são:
mkraid -
inicializa/faz upgrade de arrays de dispositivos RAID
raid0run
- inicia antigos arrays (sem superbloco) RAID0/LINEAR
raidstart
- conjunto de comandos para gerenciar dispositivos md
raidstop
- conjunto de comandos para gerenciar dispositivos md
raidtab
- arquivo de configuração para dispositivos md (RAID)
O RAID opera combinando dois ou mais discos em um único dispositivo lógico. Existem diversos níveis de RAID:
RAID nível 0 ("striping") combina dois ou mais discos em um único dispositivo lógico, sem dar nenhuma redundância. Ele é frequentemente usado para ligar RAID nível 1 ou RAID 5. RAID 0 + RAID 1 é chamado RAID 10. RAID 0 + RAID 5 é chamado RAID 50.
RAID 1 (espelhamento)combina dois discos, cada um contendo os mesmos dados.
RAID 4 combina três ou mais discos, com um deles destinado para paridade. Se algum dos discos falha, o dispositivo lógico inteiro permanece disponível, mas com performance degradada. Ele não é usado frequentemente por causa da performance.
RAID 5 combina três ou mais discos, com a paridade distribuída pelos discos. Funcionalmente similar ao RAID 4 mas aparentemente tem uma performance melhor.
Veja http://www.osfaq.com/vol1/linux_softraid.htm caso você queira definir um raid em seu computador.
Uma boa informação a respeito pode ser obtida em
http://oreilly.linux.com/pub/a/linux/2000/08/24/LinuxAdmin.html
Apesar de nunca precisar ajustar a banda em minha rede domestica,
ainda assim é um exercício interessante para os
curiosos.
Ir para o Apêndice: Como
fazer upgrade do kernel
Voltar
ao Menu Principal