Primeiro commit. Ainda falta muita informação.
[guialinuxUA.git] / primeirospassos / consola.tex
blob9624f3614c5137d269730d04e585fd143bc9d73d
1 \section{Iniciação à consola}
3 \textbf{CLARIFICAR OS TERMOS TERMINAL E CONSOLA}
4 A consola, ou terminal é provavelmente aquilo que mais distingue um utilizador
5 de Linux de um utilizador de Windows\textregistered. Isto acontece porque em
6 Linux é dada muita importância à consola, e bastantes programas que são
7 utilizados diariamente correm em modo de texto, ou seja, na consola. A maior
8 vantagem da consola em relacção às interfaces gráficas, é a capacidade de se
9 automatizarem tarefas via \textit{scripts}, que nada mais são do que uma
10 sequência de comandos armazenada num ficheiro de texto. Em Linux estes scripts
11 denominam-se \textit{shell scripts}.
13 Quando se trabalha em modo gráfico pode-se ter acesso a uma consola através dos
14 \textbf{emuladores de terminais}, que emulam o funcionamento dos terminais que
15 constituiam as estações de trabalho no tempo em que os computadores ainda eram
16 partilhados por muita gente ao mesmo tempo, e as interfaces estavam fisicamente
17 dissociadas da unidade de processamento e armazenameto. Estes terminais
18 permitiam aos utilizadores de um computador introduzir instruções que deviam ser
19 executadas pelo computador, para depois receberem o resultado no ecrã, daí que
20 apenas tivessem um ecrã e um teclado. Os emuladores de terminais mais utilizados
21 são o \textbf{gnome-terminal} em ambientes Gnome, o \textbf{konsole} em
22 ambientes KDE, o \textbf{terminal} em ambientes XFCE e o \textbf{xterm} que vem,
23 tipicamente, instalado em qualquer um destes ambientes. Para iniciar um, é uma
24 questão de procurar nos menus por uma destas aplicações, consoante o ambiente
25 gráfico que estiver a ser utilizado. Quando se trabalha em modo de texto a
26 interacção com o computador já é feita a partir de uma consola.
28 O trabalho feito pela consola é, conceptualmente, bastante simple de entender, e
29 consiste em ler comandos, processá-los e apresentar o seu resultado.
31 Após a abertura de uma consola aparece uma série de informações que merce
32 explicação mais detalhada:
34 INSERIR SCREENSHOT E LEGENDA (prompt, simbolo que indica root, ...)
36 \begin{exercicio}
37 Abra um emulador de terminal.\\
38 Execute o comando \code{date}.
39 \end{exercicio}
41 Observe que a resposta foi impressa imediatamente a seguir à
42 linha do comando, de forma concisa, sem distracções nem grandes explicações.
43 Este comportamento é usual em muitos comandos UNIX e é típico de um certo estilo
44 defendido pelos criadores deste sistema, denominado
45 \href{http://en.wikipedia.org/wiki/Keep\_it\_Simple\_Stupid}{KISS}.
47 \begin{exercicio}
48 Execute o comando \code{cal} e observe o resultado.\\
49 Descubra em que dia da semana nasceu, passando o mês e o ano como
50 \emph{argumentos} ao comando \code{cal}, por exemplo: \code{cal jan 1981}.
51 \end{exercicio}
53 Os comandos em UNIX têm sempre a forma \code{comando argumento1 argumento2 ...}
54 onde \code{comando} é o nome do programa a executar e os argumentos são cadeias
55 de caracteres, que podem ser incluídas ou não, de acordo com a sintaxe esperada
56 por esse programa.
58 Na linha de comandos é possível recapitular um comando dado anteriormente usando
59 as teclas de direcção $\uparrow$ e $\downarrow$. É possível depois editá-lo para
60 produzir um novo comando com argumentos diferentes, por exemplo. Outra
61 funcionalidade muito útil é a possibilidade de o sistema completar
62 automaticamente comandos ou argumentos parcialmente escritos usando a tecla
63 \code{Tab}.
65 \subsection{Navegar no sistema de ficheiros}
66 Tal como noutros sistemas operativos, no Linux a informação é armazenada
67 numa estrutura hierárquica formada por directórios, subdirectórios e
68 ficheiros. O directório-raiz desta árvore é representado simplesmente por
69 uma barra ``/''. Cada utilizador possui um directório próprio nesta árvore,
70 a partir do qual pode (e deve) criar e gerir toda a sua sub-árvore de
71 directórios e ficheiros: é o chamado \emph{directório do utilizador} ou
72 \english{home directory}. Após a operação de \emph{login} o sistema
73 coloca-se nesse directório. Se estiver perdido e precisar de saber qual é o
74 directório actual existe o comando \code{\bf pwd}. O comando pwd deve dar
75 qualquer coisa com a seguinte forma:
76 \begin{verbatim}
77 /home/glua
78 \end{verbatim}
80 Para listar o conteúdo do directório actual existe o comando \code{ls}.
81 Dependendo da configuração do sistema, os nomes nesta listagem poderão
82 aparecer com cores diferentes e/ou com uns caracteres especiais (\code{/},
83 \code{@}, \code{*}) no final, que servem para indicar o tipo de ficheiro mas
84 de facto não fazem parte do seu nome. Ficheiros cujos nomes começam por
85 ``.'' não são listados por defeito, são ficheiros {\emph escondidos}, usados
86 geralmente para guardar informações de configuração de diversos programas.
87 Para listar todos os ficheiros de um directório, incluindo os escondidos,
88 deve executar a variante \code{\bf ls -a}. Uma outra opção do comando ls
89 bastante utilizada é a opção ``-l'', que apresenta alguns detalhes importantes
90 dos ficheiros, como a data de modificação e o tamanho.
92 Para mudar de directório utiliza-se o comando \emph{cd}, que tem como
93 argumento o caminho do directório de destino, que pode ser um \emph{caminho
94 relativo} ou um \emph{caminho absoluto}. Um caminho relativo é um caminho
95 que parte do directório actual, ou seja, se fizermos \code{cd pasta} e o
96 nosso directório actual for \code{/home/glua}, estamos na realidade a mudar
97 para o directório \code{/home/glua/pasta}. Se, por outro lado, fizermos
98 \code{cd /pasta}, estamos a dar um caminho absoluto, e vamos mudar para o
99 directório \code{/pasta}. Um caminho que começe por \code{/} é sempre
100 considerado um caminho absoluto. Se não tiver essa barra, é um caminho
101 relativo. O comando cd sem argumentos muda para o directório do utilizador.
102 Há dois nomes especiais para directórios: ``\code{.}'' e ``\code{..}'' que
103 representam respectivamente o directório actual e o directório pai, ou seja,
104 o directório ao qual o actual pertence.
106 \begin{exercicio}
108 Experimente navegar na árvore de directórios. Vá utilizando o comando
109 \code{pwd} para verificar que está a ir para onde quer.
111 Corra o comando \code{cd .} e analise o resultado.
113 Corra o comando \code{cd ..} e analise o resultado.
115 Corra o comando \code{cd tralha\footnote{Se tiver um directório chamado
116 tralha no directório actual troque tralha por brasnaf. É pouco provável que
117 também tenha uma directório com esse nome no seu directório actual :)}} e
118 analise o resultado.
120 Liste o conteúdo do seu directório de utilizador e analise o resultado.
121 Experimente com as opções ``-l'' e ``-a''.
123 \end{exercicio}
125 \textbf{Importante:}
126 Nos computadores da Universidade existe um item no directório do utilizador
127 chamado arca. Este não se trata de um directório local do PC onde está a
128 trabalhar mas é na verdade a sua área privada de armazenamento no Arquivo
129 Central de Dados (\href{https://arca.ua.pt}{ARCA}), um servidor de ficheiros
130 da Universidade de Aveiro. Esta área também é acessível a partir do
131 ambiente Windows e através da Web, e é natural que já aí tenha colocado
132 ficheiros noutras ocasiões. É neste directório que deve gravar os ficheiros
133 e directórios que criar no decurso das aulas. Os computadores das salas de
134 aulas foram programados para apagarem o directório de utilizador sempre que
135 são reiniciados. Só o conteúdo do subdirectório \code{arca} é
136 salvaguardado. É portanto aí que deve colocar todo o seu trabalho.
138 \subsection{Os comandos mais utilizados e o seu significado}
140 \subsection{Manipulação de ficheiros}
141 Em modo de texto é possível fazer todo o tipo de manipulação de ficheiros, e
142 da árvore de directórios, existindo para tal uma panóplia de comandos.
143 Alguns desses comandos são aqui expostos.
145 Para criar um novo directório existe o comando \emph{mkdir}, que tem como
146 argumento o nome do directório a criar.
148 Para eliminar um ficheiro existe o comando \emph{rm}, que tem como
149 argumentos os nomes dos ficheiros a eliminar.
151 Para eliminar um directório vazio existe o comando \emph{rmdir}, que tem
152 como argumentos os nomes dos directórios a eliminar.
154 Para copiar um ficheiro existe o comando \emph{cp}, que tem como argumentos
155 o ficheiro de origem e o ficheiro de destino, por esta ordem.
157 Para mover um ficheiro existe o comando \emph{mv}, que tem como argumentos
158 o ficheiro a mover e o destino. Se o destino for um directório existente,
159 o ficheiro é movido para dentro desse directório, de outra forma, o ficheiro
160 passa a ser o destino. Este comando é utilizado também para mudar o nome a
161 um ficheiro.
163 MAIS COMANDOS DEPOIS
165 \begin{exercicio}
167 Crie uma pasta com o comando \code{mkdir}.
169 Mude para dentro da pasta que criou.
171 Crie um novo ficheiro com o comando \code{touch ficheiro}.
173 Mude o nome desse ficheiro para \code{fich}.
175 Mude para a pasta ``..''.
177 Elimine a pasta que criou na primeira alínea.
179 \end{exercicio}
181 \subsection{Receitas para tarefas comuns}
182 \subsection{As variáveis de sistema}