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, ...)
37 Abra um emulador de terminal.\\
38 Execute o comando
\code{date
}.
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
}.
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}.
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
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
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:
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.
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
120 Liste o conteúdo do seu directório de utilizador e analise o resultado.
121 Experimente com as opções ``-l'' e ``-a''.
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
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.
181 \subsection{Receitas para tarefas comuns
}
182 \subsection{As variáveis de sistema
}