--- authors: - author: 'Annelise Anderson' email: andrsn@andrsn.stanford.edu description: 'Introdução para iniciantes tanto no FreeBSD quanto no UNIX®' tags: ["Introduction", "basics", "FreeBSD", "UNIX"] title: 'Para iniciantes tanto no FreeBSD quanto no UNIX®' trademarks: ["freebsd", "ibm", "microsoft", "opengroup", "general"] --- = Para iniciantes tanto no FreeBSD quanto no UNIX® :doctype: article :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :source-highlighter: rouge :experimental: :images-path: articles/new-users/ ifdef::env-beastie[] ifdef::backend-html5[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] :imagesdir: ../../../images/{images-path} endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [.abstract-title] Resumo Parabéns por instalar o FreeBSD! Esta introdução é destinada a usuários iniciantes tanto no FreeBSD quanto no UNIX(R) - então ela começa com o básico. ''' toc::[] [[in-and-out]] == Logando e Deslogando Faça login (quando você ver `login:`) com o usuário que você criou durante a instalação ou como `root`. (Sua instalação do FreeBSD já terá uma conta para o usuário `root`, o qual pode ir a qualquer lugar e fazer qualquer coisa, incluindo excluir arquivos essenciais, então tenha cuidado!) Os símbolos % e # abaixo representam o prompt (o seu pode ser diferente), sendo que o % indica um usuário comum e o # indica o usuário `root`. Para sair (e obter um novo prompt `login:`), digite [source, shell] .... # exit .... quantas vezes for necessário. Sim, pressione kbd:[enter] após os comandos e lembre-se de que o UNIX(R) é sensível a maiúsculas e minúsculas - use ``exit``, não EXIT. Para desligar o computador, digite [source, shell] .... # /sbin/shutdown -h now .... Ou para reiniciar, digite [source, shell] .... # /sbin/shutdown -r now .... ou [source, shell] .... # /sbin/reboot .... Você também pode reiniciar o sistema com kbd:[Ctrl+Alt+Delete]. Dê um pouco de tempo para que o sistema execute suas tarefas. Isso é equivalente a `/sbin/reboot` nas versões recentes do FreeBSD e é muito, muito melhor do que pressionar o botão de reset. Você não quer ter que reinstalar tudo, certo? [[adding-a-user]] == Adicionando um Usuário com Privilégios de Root Se você não criou nenhum usuário durante a instalação do sistema e, portanto, está conectado como `root`, é provável que você queira criar um usuário agora com o seguinte comando [source, shell] .... # adduser .... A primeira vez que você usa o comando `adduser`, ele pode solicitar algumas opções padrão para salvar. Você pode querer definir o shell padrão como man:csh[1] em vez de man:sh[1], se ele sugerir `sh` como padrão. Caso contrário, basta pressionar Enter para aceitar cada opção padrão. Essas opções padrão são salvas em [.filename]#/etc/adduser.conf#, um arquivo que pode ser editado. Suponha que você crie um usuário chamado `jack` com o nome completo _Jack Benimble_. Defina uma senha para `jack` se a segurança for uma preocupação (mesmo que sejam apenas crianças por perto que possam bater no teclado). Quando o comando `adduser` perguntar se você deseja convidar `jack` para outros grupos, digite `wheel` [source, shell] .... Login group is "jack". Invite jack into other groups: wheel .... Isso tornará possível fazer login como `jack` e usar o comando man:su[1] para se tornar `root`. Então, você não receberá mais repreensões por fazer login como `root`. Você pode interromper o comando `adduser` a qualquer momento digitando kbd:[Ctrl+C], e no final você terá a chance de aprovar o novo usuário ou simplesmente digitar kbd:[n] para não aprovar. Você pode querer criar um segundo usuário para que, ao editar os arquivos de login de `jack`, você tenha um usuário reserva caso algo dê errado. Depois de ter feito isso, use o comando `exit` para voltar ao prompt de login e faça login como `jack`. Em geral, é uma boa ideia fazer o máximo de trabalho possível como um usuário comum que não possui o poder - e o risco - de `root`. Se você já criou um usuário e deseja que o usuário possa fazer `su` para `root`, faça login como `root` e edite o arquivo [.filename]#/etc/group#, adicionando `jack` à primeira linha (o grupo `wheel`). Mas primeiro, você precisa praticar o uso do editor de texto man:vi[1], ou usar um editor de texto mais simples, o man:ee[1], instalado em versões recentes do FreeBSD. Para excluir um usuário, use o comando `rmuser`. [[looking-around]] == Explorando o Sistema Conectado como um usuário comum, explore e experimente alguns comandos que acessarão as fontes de ajuda e informações dentro do FreeBSD. Aqui estão alguns comandos e o que eles fazem: `id`:: Diz quem você é! `pwd`:: Exibe o diretório de trabalho atual. `ls`:: Lista os arquivos presentes no diretório atual. `ls -F`:: Lista os arquivos no diretório atual com um * após os arquivos executáveis, uma `/` após os diretórios e um `@` após os links simbólicos. `ls -l`:: Lista os arquivos no diretório atual em formato longo, mostrando informações como tamanho, data e hora de modificação, permissões de arquivo e proprietário/grupo. `ls -a`:: Lista todos os arquivos no diretório atual, incluindo arquivos ocultos (com ponto no início do nome). Se você estiver logado como `root`, os arquivos ocultos serão listados sem a necessidade do uso do parâmetro `-a`. `cd`:: O comando `cd` é usado para mudar de diretório. `cd ..` volta um nível; observe o espaço após o `cd`. `cd /usr/local` navega até esse diretório. `cd ~` navega até o diretório home do usuário logado, por exemplo, [.filename]#/usr/home/jack#. Experimente o comando `cd /cdrom`, e em seguida `ls`, para descobrir se o seu CDROM está montado e funcionando. `less _filename_`:: Permite visualizar o conteúdo de um arquivo (chamado _filename_) sem modificá-lo. Experimente o comando `less /etc/fstab`. Digite `q` para sair do modo de visualização. `cat _filename_`:: Exibe o conteúdo do arquivo _filename_ na tela. Se o arquivo for muito longo e você conseguir visualizar apenas o final, pressione kbd:[ScrollLock] e use a tecla de seta para cima (kbd:[up-arrow]) para rolar para trás. Você também pode usar kbd:[ScrollLock] com páginas de manual (man pages). Pressione kbd:[ScrollLock] novamente para sair do modo de rolagem. Você pode experimentar o comando `cat` em alguns dos arquivos ocultos em seu diretório home, por exemplo: `cat .cshrc`, `cat .login`, `cat .profile`. Você notará que existem aliases no arquivo [.filename]#.cshrc# para alguns dos comandos `ls` (eles são muito convenientes). Você pode criar outros aliases editando o arquivo [.filename]#.cshrc#. Você pode tornar esses aliases disponíveis para todos os usuários do sistema colocando-os no arquivo de configuração global do `csh`, o [.filename]#/etc/csh.cshrc#. [[getting-help]] == Obtendo ajuda e informações Aqui estão algumas fontes úteis de ajuda. O termo _Text_ significa algo de sua escolha que você digita, geralmente um comando ou nome de arquivo. `apropos _text_`:: Irá retornar todos os comandos e arquivos que contenham a palavra-chave especificada _text_ no `banco de dados whatis`. `man _text_`:: A página de manual para _text_. A principal fonte de documentação para sistemas UNIX(R). `man ls` lhe dirá todas as maneiras de usar o comando`ls`. Pressione kbd:[Enter] para mover pelo texto, kbd:[Ctrl+B] para voltar uma página, kbd:[Ctrl+F] para avançar, kbd:[q] ou kbd:[Ctrl+C] para sair . `which _text_`:: Mostra o caminho completo para o executável do comando _text_ especificado. `locate _text_`:: Todos os caminhos onde a string _text_ é encontrada. `whatis _text_`:: Informa o que o comando _text_ faz e sua página de manual. Digitando `whatis *` irá falar sobre todos os binários no diretório atual. `whereis _text_`:: Localiza o arquivo _text_, fornecendo seu caminho completo. Você pode tentar usar `whatis` em alguns comandos úteis comuns como `cat`, `more`, `grep`, `mv`, `find`, `tar`, `chmod`, `chown`, `date` , e `script`. `more` permite que você leia uma página por vez como no DOS, por exemplo, `ls -l | more` ou `more _filename_`. O * funciona como um curinga, por exemplo, `ls w*` mostrará os arquivos que começam com `w`. Alguns deles não estão funcionando muito bem? Ambos man:locate[1] e man:whatis[1] dependem de um banco de dados que é reconstruído semanalmente. Se sua máquina não vai ficar ligada no fim de semana (e rodando o FreeBSD), você pode querer executar os comandos para manutenção diária, semanal e mensal de vez em quando. Execute-os como `root` e, por enquanto, dê a cada um tempo para terminar antes de iniciar o próximo. [source, shell] .... # periodic daily saída omitida # periodic weekly saída omitida # periodic monthly saída omitida .... Se você cansar de esperar, pressione kbd:[Alt+F2] para obter outro _virtual console_ e faça login novamente. Afinal, é um sistema multiusuário e multitarefa. No entanto, esses comandos provavelmente exibirão mensagens em sua tela enquanto estiverem sendo executados; você pode digitar `clear` no prompt para limpar a tela. Uma vez executados, você pode querer olhar para [.filename]#/var/mail/root# e [.filename]#/var/log/messages#. Executar esses comandos faz parte da administração do sistema - e como único usuário de um sistema UNIX(R), você é seu próprio administrador de sistema. Praticamente tudo o que você precisa fazer como `root` é administração do sistema. Essas responsabilidades não são bem cobertas, mesmo nos grandes e grossos livros sobre UNIX(R), que parecem dedicar muito espaço a abrir menus em gerenciadores de janelas. Se você deseja aprofundar seus conhecimentos em administração de sistemas, pode ser útil obter um dos dois principais livros sobre o assunto. Os dois livros recomendados são "UNIX System Administration Handbook" de Evi Nemeth et al. (Prentice-Hall, 1995, ISBN 0-13-15051-7) - a segunda edição com a capa vermelha; ou "Essential System Administration" de Æleen Frisch (O'Reilly & Associates, 2002, ISBN 0-596-00343-9). Ambos os livros são excelentes recursos para administradores de sistemas e fornecem informações detalhadas sobre administração de sistemas UNIX(R). Eu usei o livro da Nemeth. [[editing-text]] == Editando textos Para configurar o sistema, você precisa editar arquivos de texto. A maioria deles estará no diretório [.filename]#/etc#, e você precisará usar o comando `su` para se tornar `root` e poder alterá-los. Você pode usar o editor de texto `ee` para edição mais simples, mas a longo prazo, vale a pena aprender o editor de texto `vi`. Há um excelente tutorial sobre o vi em [.filename]#/usr/src/contrib/nvi/docs/tutorial#, se você tiver as fontes do sistema instaladas. Antes de editar um arquivo, é recomendável fazer backup dele. Suponha que você deseje editar o arquivo [.filename]#/etc/rc.conf#. Você pode simplesmente usar o comando `cd /etc` para ir para o diretório [.filename]#/etc# e executar o seguinte comando: [source, shell] .... # cp rc.conf rc.conf.orig .... Isso copiaria o arquivo [.filename]#rc.conf# para [.filename]#rc.conf.orig#, e posteriormente você poderia copiar [.filename]#rc.conf.orig# de volta para [.filename]#rc.conf# para recuperar o original. Mas uma opção ainda melhor seria mover (renomear) e depois copiar de volta: [source, shell] .... # mv rc.conf rc.conf.orig # cp rc.conf.orig rc.conf .... porque o comando `mv` preserva a data e o proprietário original do arquivo. Agora você pode editar o arquivo [.filename]#rc.conf#. Se quiser recuperar o original, você pode executar o comando `mv rc.conf rc.conf.myedit` (assumindo que você deseja preservar a versão editada) e depois executar o seguinte comando [source, shell] .... # mv rc.conf.orig rc.conf .... para colocar as coisas de volta da maneira que estavam. Para editar um arquivo, digite [source, shell] .... # vi filename .... Para mover-se pelo texto, use as teclas de seta. Pressione kbd:[Esc] (a tecla de escape) para entrar no modo de comando do `vi`. Aqui estão alguns comandos: `x`:: deleta a letra localizada onde o cursor está `dd`:: Apaga a linha inteira (mesmo se ela estiver aparecendo quebrada na tela em varias linhas) `i`:: Insere um texto na posição do cursor `a`:: Insere um texto após a posição do cursor Depois de digitar `i` ou `a`, você pode inserir texto. `Esc` coloca você de volta no modo de comando onde você pode digitar `:w`:: para gravar suas alterações no disco e continuar editando `:wq`:: para gravar e sair `:q!`:: para sair do arquivo sem salvar as alterações `/_text_`:: para mover o cursor para _text_; `/` kbd:[Enter] (a tecla enter) para encontrar a próxima ocorrência de _text_. `G`:: para ir para o final do arquivo `nG`:: para ir para a linha _n_ no arquivo, onde _n_ é um número kbd:[Ctrl+L]:: para redesenhar a tela kbd:[Ctrl+b] and kbd:[Ctrl+f]:: para voltar e avançar uma tela, como fazem o `more` e o `view`. Pratique com `vi` no seu diretório pessoal, criando um novo arquivo com o comando `vi _nome_do_arquivo_ , adicionando e excluindo texto, salvando o arquivo e chamando-o novamente. O `vi` oferece algumas surpresas porque é realmente bastante complexo e às vezes você inadvertidamente emite um comando que fará algo que você não espera. (Algumas pessoas realmente gostam do `vi` - é mais poderoso que o EDIT do DOS - descubra sobre o `:r`.) Use kbd:[Esc] uma ou mais vezes para ter certeza de que está no modo de comando e prossiga a partir daí quando ele lhe der problemas, salve frequentemente com `:w` e use `:q!` para sair e começar de novo (a partir do último `:w`) quando precisar. Agora você pode fazer `cd` para [.filename]#/etc#, `su` para `root`, usar `vi` para editar o arquivo [.filename]#/etc/group# e adicionar um usuário ao grupo `wheel ` para que ele tenha privilégios de root. Basta adicionar uma vírgula e o nome de login do usuário ao final da primeira linha do arquivo, pressionar kbd:[Esc] e usar `:wq` para gravar o arquivo no disco e sair. Instantaneamente eficaz. (Você não colocou um espaço após a vírgula, colocou?) [[other-useful-commands]] == Outros comandos úteis `df`:: mostra o espaço dos sistemas de arquivos que estão montados. `ps aux`:: Mostra os processos em execução. ps ax é uma forma mais simplificada. `rm _filename_`:: remove o arquivo _filename_. `rm -R _dir_`:: remove um diretório _dir_ e todos os subdiretórios - use com cuidado! `ls -R`:: lista arquivos no diretório atual e todos os subdiretórios; Usei uma variante, `ls -AFR > where.txt`, para obter uma lista de todos os arquivos em [.filename]#/# e (separadamente) [.filename]#/usr# antes de encontrar maneiras melhores de encontrar arquivos. `passwd`:: para alterar a senha do usuário (ou a senha do ``root``) `man hier`:: página de manual no sistema de arquivos UNIX(R) Use o `find` para localizar o arquivo [.filename]#filename# em [.filename]#/usr# ou qualquer um de seus subdiretórios com [source, shell] .... % find /usr -name "filename" .... Você pode usar * como curinga em `"_filename_"` (que deve estar entre aspas). Se você disser ao `find` para procurar em [.filename]#/# ao invés de [.filename]#/usr# ele irá procurar o(s) arquivo(s) em todos os sistemas de arquivos montados, incluindo o CD-ROM e a partição DOS. Um livro excelente que explica os comandos e utilitários do UNIX(R) é Abrahams & Larson, Unix for the Impacient (2ª ed., Addison-Wesley, 1996). Também há muitas informações sobre o UNIX(R) na Internet. [[next-steps]] == Próximos Passos Você agora deve ter as ferramentas necessárias para navegar e editar arquivos, para que possa colocar tudo em funcionamento. Existe uma grande quantidade de informações no Handbook do FreeBSD (que provavelmente está no seu disco rígido) e no site do link:https://www.FreeBSD.org/[FreeBSD]. Uma ampla variedade de pacotes e ports estão no CDROM, bem como no site. O Handbook explica mais sobre como usá-los (obtenha o pacote se existir, com `pkg add _nomedopacote_`, onde nomedopacote é o nome do arquivo do pacote). O CDROM contém listas dos pacotes e ports com breves descrições em [.filename]#cdrom/packages/index#, [.filename]#cdrom/packages/index.txt#, e [.filename]#cdrom/ports/index#, e com descrições mais detalhadas em [.filename]#/cdrom/ports/\*/*/pkg/DESCR#, onde os *s representam subdiretórios de tipos de programas e nomes de programas, respectivamente. Se você achar o handbook muito sofisticado (com isso do `lndir` e tudo mais) ao instalar os ports do CDROM, veja a seguir o que geralmente funciona: Encontre o port que você deseja, digamos o `kermit`. Haverá um diretório para ele no CDROM. Copie o subdiretório para [.filename]#/usr/local# (este é um bom lugar para softwares que você adiciona no sistema e que devem estar disponíveis para todos os usuários) com: [source, shell] .... # cp -R /cdrom/ports/comm/kermit /usr/local .... Isso deve resultar em um subdiretório [.filename]#/usr/local/kermit# que contém todos os arquivos que o subdiretório `kermit` no CD-ROM possui. Em seguida, crie o diretório [.filename]#/usr/ports/distfiles# se ele ainda não existir usando o comando `mkdir`. Agora verifique o [.filename]#/cdrom/ports/distfiles# para localizar um arquivo com um nome que indique que é o port que você deseja. Copie esse arquivo para [.filename]#/usr/ports/distfiles#; nas versões recentes, você pode pular esta etapa, pois o FreeBSD fará isso por você. No caso de `kermit`, não há distfile. Então utilize o `cd` para ir para o subdiretório [.filename]#/usr/local/kermit# que contém o arquivo [.filename]#Makefile#. E execute [source, shell] .... # make all install .... Durante esse processo, o port fará o download via FTP de quaisquer arquivos compactados que precise e que não foram encontrados no CDROM ou no diretório [.filename]#/usr/ports/distfiles#. Se você não tiver a rede funcionando ainda e não houver um arquivo para o port em [.filename]#/cdrom/ports/distfiles#, você precisará obter o distfile usando outra máquina e copiá-lo para [.filename]#/usr/ports/distfiles#. Leia o [.filename]#Makefile# (com `cat` ou `more` ou `view`) para descobrir onde obter o arquivo (o site de distribuição principal) e qual é o nome dele. (Use transferências de arquivo binário!) Em seguida, volte para [.filename]#/usr/local/kermit#, encontre o diretório com o [.filename]#Makefile# e execute o `make all install`. [[your-working-environment]] == Seu ambiente de trabalho Seu shell é a parte mais importante do seu ambiente de trabalho. O shell é o que interpreta os comandos que você digita na linha de comando e, assim, se comunica com o restante do sistema operacional. Você também pode escrever scripts de shell, que consiste em uma série de comandos para serem executados sem intervenção. Dois shells vêm instalados com o FreeBSD: `csh` e `sh`. O `csh` é bom para trabalho na linha de comando, mas os scripts devem ser escritos com `sh` (ou `bash`). Você pode descobrir qual shell você tem digitando `echo $SHELL`. O shell `csh` é bom, mas o `tcsh` faz tudo o que o `csh` faz e muito mais. Ele permite que você recupere comandos com as teclas de seta e edite-os. Ele completa os nomes dos arquivos com a tecla de tabulação (o `csh` usa kbd:[Esc]) e permite alternar para o último diretório em que você estava com `cd -`. Também é muito mais fácil alterar seu prompt com `tcsh`. Ele torna a vida muito mais fácil. Aqui estão os três passos para instalar um novo shell: [.procedure] ==== . Instale o shell como um port ou um pacote, como faria com qualquer outro port ou pacote. . Use `chsh` para alterar seu shell para `tcsh` permanentemente, ou digite `tcsh` no prompt para alterar seu shell sem fazer login novamente. ==== [NOTE] ==== Pode ser perigoso mudar o shell `root` para algo diferente de `sh` ou `csh` nas primeiras versões do FreeBSD e muitas outras versões do UNIX(R); você pode não ter um shell funcionando quando o sistema o coloca no modo de usuário único. A solução é usar `su -m` para se tornar `root`, o que lhe dará o `tcsh` como `root`, porque o shell faz parte do ambiente. Você pode torná-lo permanente adicionando-o ao seu arquivo [.filename]#.tcshrc# como um alias com: [.programlisting] .... alias su su -m .... ==== Quando o `tcsh` iniciar, ele lerá os arquivos [.filename]#/etc/csh.cshrc# e [.filename]#/etc/csh.login#, assim como o `csh`. Ele também lerá [.filename]#.login# em seu diretório inicial e bem como o [.filename]#.cshrc#, a menos que você forneça um [.filename]#.tcshrc#. Isso pode ser feito simplesmente copiando [.filename]#.cshrc# para [.filename]#.tcshrc#. Agora que você instalou o `tcsh`, você pode ajustar seu prompt. Você pode encontrar os detalhes na página de manual do `tcsh`, mas aqui está uma linha para colocar no seu [.filename]#.tcshrc# que lhe dirá quantos comandos você digitou, que horas são e em qual diretório você está. Ele também produz um `>` se você for um usuário comum e um # se você for `root`, mas o tsch fará isso em qualquer caso: set prompt = "%h %t %~ %# " Isso deve ir no mesmo lugar que a linha de configuração do prompt existente, se houver, ou sob "if($?prompt) then" se não. Comente a linha antiga; você sempre pode voltar para ele, se preferir. Não se esqueça dos espaços e aspas. Você pode reaplicar as opções do [.filename]#.tcshrc# digitando `source .tcshrc`. Você pode obter uma lista das outras variáveis de ambiente que foram definidas digitando `env` no prompt. O resultado mostrará seu editor, pager e tipo de terminal padrão, entre possivelmente muitos outros. Um comando útil se você efetuar login de um local remoto e não puder executar um programa porque o terminal não é capaz é `setenv TERM vt100`. [[other]] == Outros Como `root`, você pode desmontar o CDROM com `/sbin/umount /cdrom`, retirá-lo da unidade, inserir outro e montá-lo com `/sbin/mount_cd9660 /dev/cd0a /cdrom` assumindo que cd0a é o nome do dispositivo para sua unidade de CD-ROM. As versões mais recentes do FreeBSD permitem que você monte o CDROM apenas com `/sbin/mount /cdrom`. Usar o sistema de arquivos ao vivo (live filesystem), o segundo dos discos do CDROM do FreeBSD, é útil se você tem espaço limitado. O que está no sistema de arquivos ao vivo varia de versão para versão. Você pode tentar jogar jogos do CDROM. Isso envolve o uso do `lndir`, que é instalado com o X Window System, para informar ao(s) programa(s) onde encontrar os arquivos necessários, pois eles estão em [.filename]#/cdrom# em vez de em [.filename]#/usr# e seus subdiretórios, onde são esperados. Leia `man lndir`. [[comments-welcome]] == Comentários são bem-vindos Se você usou este guia, ficaria interessado em saber onde não ficou claro e o que foi deixado de fora que você acha que deveria ser incluído, e se foi útil. Meus agradecimentos a Eugene W. Stark, professor de ciência da computação da SUNY-Stony Brook, e John Fieber por seus comentários úteis. Annelise Anderson, mailto:andrsn@andrsn.stanford.edu[andrsn@andrsn.stanford.edu]