\documentclass[12pt]{article}
\usepackage[brazil]{babel}
\usepackage[latin1]{inputenc}
\usepackage{indentfirst}
\usepackage{subfigure}
\usepackage{graphicx}
\usepackage{multirow}

\begin{document}
\title{Curso de Linux 2008 - Módulo Básico}
\author{César Gamboa Machado \and Lucas Piva Rocha Corrêa \and Lucas Mendes Marques Gonçalves}
\date{\today}
\maketitle

\tableofcontents
\newpage

\part{Linux???} \label{linux}

\section{GNU/Linux} \label{gnu}
Linux é um sistema operacional baseado no Unix, e é um dos exemplos
mais famosos de software livre. Seu código fonte está disponivel sob
GPL (GNU General Public License) para qualquer pessoa usar, modificar
e redistribuir gratuitamente.\\

GNU/Linux se refere a um Sistema Operacional do tipo Unix com núcleo 
Linux e com os programas de sistema GNU (GNU is Not Unix). Como os casos
de sistemas de núcleo Linux sem os programas de sistema GNU são raros, 
freqüentemente GNU/Linux e Linux são sinônimos.\\

\begin{figure*}[!htb]
	\caption{}
	\centerline{
	\subfigure[Tux, o mascote oficial do Linux]{
		\includegraphics[width=0.3 \linewidth]{tux}
		\label{fig:tux}}
	\hfil
	\subfigure[Logotipo do GNU]{
		\includegraphics[width=0.3 \linewidth]{gnu}
		\label{fig:gnu}}
	}
\end{figure*}

\subsection{As quatro liberdades}\label{liberdades}
No início da década de 80, Richard Stallman formalizou a idéia de 
Software Livre em quatro liberdades:

\begin{enumerate}
	\item A liberdade de executar o software para qualquer uso.
	\item A liberdade de estudar o funcionamento do software e
	      adaptá-lo às suas necessidades.
	\item A liberdade de redistribuir cópias do software.
	\item A liberdade de melhorar o programa e tornar as modificações 
		   públicas para que a comunidade inteira se beneficie da melhoria.
\end{enumerate}

\part{Desktop Gnome}\label{gnome}
Ao contrário do Windows, no Linux há uma separação entre o Sistema
Operacional e o ambiente gráfico. Assim, o Linux pode ser usado 
diretamente pelo modo texto ou através de vários ambientes gráficos 
diferentes. Destes, se destacam o GNOME e o KDE. Na Rede Linux o padrão
é o GNOME, e é sobre ele que esta seção irá tratar.

\section{O Desktop}

\begin{figure}[htb]
	\center	\includegraphics[width=0.6\linewidth]{DesktopGnome}\\
	\label{fig:gnome}
	\caption{\it Desktop do GNOME}
\end{figure}

O Desktop do GNOME \textit{(ver fig. \ref{fig:gnome})} é composto
de duas barras de tarefas e da área de trabalho.\\

As barras se assemelham à barra de tarefas do Windows. A barra superior
é utilizada para abrir programas (Menu Aplicações), acessar diretórios 
ou arquivos recentes (Menu Locais), travar a tela, deslogar, etc (Menu Ações).
A barra inferior mostra os programas abertos. A área de trabalho também funciona
como no Windows. Ela mostra o conteúdo da sua pasta Desktop, além de ícones para
sua pasta pessoal e lixeira.

\section{Comparação entre programas Linux/Windows}\label{linuxwindows}
Esta seção serve como um guia rápido entre os programas mais comuns no Windows e alternativas do Linux:\\
\begin{center}
\begin{tabular}{|c|c|c|} \hline
	Aplicativo & \textbf{Windows} & \textbf{Linux} \\ \hline
	\multirow{2}{*}{Internet}
		& Internet Explorer & Iceweasel \\ 
		& MSN              & Gaim      \\ \hline
	\multirow{3}{*}{Documentos}
		& Excel			   & OpenOffice Calc \\
		& Power Point	   & OpenOffice Impress \\
		& Word			   & OpenOffice Writer \\
		& Note/Wordpad	   & Gedit, Kwrite \\ \hline
	\multirow{1}{*}{Navegação} 
		& Windows Explorer & Nautilus, Konqueror \\ \hline
	\multirow{1}{*}{Arquivos Comprimidos}
		& Winzip, Winrar   & tar, gzip, bzip2 \\ \hline
	\multirow{2}{*}{Audio}
		& Windows Media Player & xmms, amarok, mpg123 \\
		& Nero             & Nautilus(Gnome), k3b \\ \hline
	\multirow{2}{*}{Imagem}
		& Windows Image Viewer & Eye of Gnome, Display, Nautilus \\
		& Photoshop & Gimp \\ \hline
	\multirow{1}{*}{Vídeo}
		& Windows Media Player & Totem, Mplayer \\ \hline
\end{tabular}
\end{center}

\part{Recursos da Rede} \label{recursos}

\section{Gravando CDs}\label{cds}
É possível gravar CDs na Rede Linux. Para isso, abra \textit{Locais/Gravador de CD/DVD}
e arraste os arquivos desejados para a janela que irá se abrir. Quando acabar,
coloque um CD virgem no gravador e clique em Gravar.

\section{USB}\label{usb}
PenDrives podem ser utilizados na Rede Linux. As máquinas já estão configuradas para
montar o PenDrive automaticamente no diretório \textit{/usb/}.\\

\textbf{IMPORTANTE:} Não esqueça de desmontar o seu pendrive antes de tirá-lo do computador!
(Para isso clique com o botão direito no ícone do usb no seu Desktop e clique em Desmontar Volume)
O não desmontamento do drive usb pode causar perda de dados no seu PenDrive.

\section{Webmail}\label{webmail}
Todos os usuários da rede tem direito a um e-mail com o seguinte endereço:
\begin{center} \verb!seulogin@linux.ime.usp.br! \end{center}
Para acessá-lo(Pode ser acessado de fora da Rede Linux) entre no endereço:
\begin{center} \verb@http://webmail.linux.ime.usp.br@ \end{center}
Se você desejar, você pode redirecionar seus e-mails da Rede Linux para um 
outro e-mail. Para isso, abra um terminal(Se não souber como, veja a Parte III),
digite o comando:
\begin{center} \verb@redireciona@ \end{center}

\section{Site Pessoal}\label{site}
Os usuários também possuem um Site Pessoal, em:
\begin{center} \verb@www.linux.ime.usp.br/~seulogin@ \end{center}
Para editar seu site, simplesmente entre na sua pasta www(\verb@~@/www/) e
coloque arquivos lá. Se você entende de html, edite o arquivo index.html
padrão que já existe e crie outros arquivos de sua preferência. \\

O conteúdo da pasta www fica visível de qualquer computador com internet
através do endereço citado acima.

\part{O Terminal}\label{terminal}
Como foi dito anteriormente, além dos ambientes gráficos, o Linux tem um modo
texto, comum a todas as versões. Este pode ser acessado de duas maneiras: 
através do modo texto ``real'', pressionando Ctrl+Alt+F1 (Para voltar ao modo
gráfico pressione Ctrl+Alt+F7 (ou F8)) ou pelo terminal, que é acessado pelo modo
gráfico (\textit{Aplicações/Acessórios/Terminal}).\\

É muito importante ter pelo menos noções básicas de terminal, uma vez que alguns
programas, como compiladores, por exemplo, rodam apenas por ele, e além disso,
o modo texto é muito útil para resolver problemas.\\

A seguir vamos descrever alguns dos comandos básicos do terminal. Há um guia rápido
de comandos na seção \ref{termbasico} e também no site da rede, em: 
\begin{center} \verb@http://www.linux.ime.usp.br/wiki/Terminal_básico@ \end{center}

\section{Diretórios e Arquivos}\label{diretorios}
Quando um comando pede um diretório como parâmetro, você pode defini-lo de dois
jeitos: pelo caminho absoluto (começando com / ou \verb@~@) ou pelo caminho relativo. \\

Ex: Suponha que você está na sua home (/home/curso/login) e quer entrar no seu
private. Você pode usar tanto o comando: 
\begin{center} \begin{verbatim} cd /home/curso/login/private \end{verbatim} \end{center}
Quanto: 
\begin{center} \begin{verbatim} cd private \end{verbatim} \end{center}
O primeiro funcionará de qualquer diretório que você estiver,
enquanto o segundo só funcionará de dentro da sua home. \\

Além disso, você pode usar o caractere \verb@~@ para substituir o endereço do seu home.
No mesmo exemplo que o anterior, você poderia usar o comando
\begin{center} \begin{verbatim} cd ~/private \end{verbatim} \end{center}
De qualquer diretório.\\

Quando estiver trabalhando com caminhos relativos, você pode usar a expressão
``..'' para ir para o diretório acima. (para ir do private para o www, use
``cd ../www'').\\

Finalmente, a expressão ``.'' serve para indicar o diretório atual. Se você está
no bin e quer copiar um arquivo do seu private, use o comando:
\begin{center} \begin{verbatim} cp ../private/arquivo . \end{verbatim} \end{center}

Como pode-se perceber pelo exemplo anterior, estas regras também podem ser usadas para arquivos.\\

\section{A Organização da pasta home}\label{home}
Cada usuário tem um diretório conhecido como home. Seu ``endereço'' é 
\textit{/home/curso/login/}\\

Você pode organizar o sua pasta como quiser, mas existem alguns diretórios padrões.\\

\begin{itemize}
   \item \textbf{bin/} - Nessa pasta você pode guardar seus arquivos executáveis. 
   		                 Se um programa executável estiver aí dentro, você pode 
   		                 chamá-lo de qualquer lugar apenas pelo nome.
   \item \textbf{Desktop/} - É a sua área de trabalho, aquela que aparece ao você 
   		                     abrir o Gnome.
   \item \textbf{Maildir/} - Onde ficam guardados seus e-mails e as configurações
   			                 de e-mails. Não apague esta pasta ou seu e-mail pode ser desconfigurado.
   \item \textbf{private/} - Só você consegue ver o que está aí dentro. Ou seja, 
   			                 é aí que você deve guardar seus trabalhos, etc.
   \item \textbf{www/} - Sua página da Internet. O que está nessa pasta pode
   		                 ser acessado através do endereço \verb@http://www.linux.ime.usp.br/~login@.
\end{itemize}

\textbf{Obs:} Arquivos ou diretórios que começam com '.' (ex: .bashrc .mozilla/)
são arquivos ocultos, e normalmente são arquivos de configuração. Em geral,
não mexa neles se não souber o que está fazendo.

\section{Guia de comandos básicos} \label{termbasico}

Sintaxe: nome do comando \verb@[argumentos opcionais] <argumentos obrigatorios>@ \\
\\
\begin{tabular}{ll}

	pwd                           & Mostra o diretório atual \\
    ls \verb@[diretorio]@         & Lista os arquivos do diretório. Sem argumentos, lista \\
    &                               os arquivos do diretório atual. \\
    cd \verb@[dir]@	              & Vai para o diretório \textbf{dir}. Sem argumentos, vai para \\
    &                               seu diretório home. \\
    cat \verb@<arquivo>@          & Imprime o conteudo de arquivo no terminal corrente. \\
    rm \verb@<arquivo>@           & Remove o arquivo (para diretórios usar a opção -r) \\
    cp \verb@<origem> <destino>@  & Copia o arquivo de origem para o destino especificado \\
    mv \verb@<origem> <destino>@  & Move o arquivo especificado em origem para o destino \\
    &                               especificado. Também serve para renomear arquivos. \\
    &                               Exemplo: mv ep1.c ep2.c (renomeia ep1.c para ep2.c, \\
    &                               obs.: não reutilize seus códigos) \\
    mkdir \verb@<dir>@		      & Cria um novo diretório de nome dir \\
    exit                          & No terminal, fecha o terminal. No modo texto ou logado \\
    &                               por ssh, desloga. \\  
    clear                         & Limpa a tela \\
    man \verb@<comando>@          & Mostra o manual do comando. (curiosidade: tente man man) \\
    &                               (obs: Para sair do man, digite 'q')\\
\end{tabular}

\subsection{Comandos da Rede Linux}\label{termrede}
Aqui descrevemos alguns comandos particulares da rede linux, feitos
por admins para facilitar o uso da rede. \\
\\
\begin{tabular}{ll}
    quota         & Mostra a sua quota de espaço em disco\\
    quotap		  & Mostra a sua quota de impressão\\
	cleanwizard   & Apaga arquivos temporários/inúteis\\
    quotause	  & Mostra quais pastas/diretórios ocupam espaço\\
    monta-usb	  & Monta PenDrive\\
    desmonta-usb  & Desmonta PenDrive\\
    delparent	  & Apaga o lock do Iceweasel(Quase deprecated) \\
    livres		  & Mostra os computadores que não estão em uso \\
\end{tabular}

\section{Usando o ssh}\label{ssh}
Uma das vantagens do Linux é a possibilidade de logar na rede remotamente a
partir de qualquer computador conectado à Internet. Isso é feito através do
protocolo SSH (Secure Shell).\\

Todas as conexões de fora caem na máquina easteregg. De lá você pode logar
em outras máquinas via ssh.\\

Para acessar a Rede Linux de fora da rede use o comando:
\begin{center} \textbf{ssh seulogin@shell.linux.ime.usp.br} \end{center} 

De dentro da rede você pode logar em outra máquina através de:
\begin{center} \textbf{ssh nomedamaquina} \end{center}

Em ambos os casos será pedida sua senha da Rede Linux. Para copiar arquivos
da Rede Linux para sua casa(da sua casa), utilize:
\begin{center} \textbf{scp seulogin@shell.linux.ime.usp.br:caminho/para/arquivo .} \end{center}

Onde o caminho para o arquivo é relativo à sua home. Para copiar algo da sua
casa para a Rede Linux:
\begin{center} \textbf{scp caminho/para/arquivo seulogin@shell.linux.ime.usp.br:} \end{center}

\part{Resolvendo problemas}\label{problemas}

\section{Problemas comuns}\label{faq}

\begin{itemize}
   \item Gnome não abre - Provavelmente é quota \textit{ver seção \ref{quota}}
   \item Firefox/Iceweasel não abre - \textit{ver seção \ref{delparent}}
   \item Webmail não abre - Quota (\textit{seção \ref{quota}}) ou arquivos apagados (\textit{seção \ref{arquivos}})
   \item Apaguei tudo... - \textit{ver seção \ref{arquivos}}
   \item TRAVOU!!! - \textit{ver seção \ref{travou}}
\end{itemize}

\section{Quota cheia}\label{quota}
Caso sua quota em disco esteja lotada, você pode ter problemas ao
logar no modo gráfico (o GNOME travar na tela de carregamento) e 
no webmail (de não receber e-mails a não conseguir acessar a conta). \\

Para verificar sua quota, digite no terminal o comando:
\begin{center} \textbf{quota} \end{center}

Dois comandos úteis para liberar sua quota são o cleanwizard e o quotause.
O cleanwizard procura por arquivos temporários, como o cache de alguns
navegadores, e se oferece para apagá-los. Simplesmente rode do terminal o
comando: 
\begin{center} \textbf{cleanwizard} \end{center}
E responda sim quando ele perguntar se deseja apagar os arquivos. Caso
ainda deseje apagar mais coisas, você pode usar o comando:
\begin{center} \textbf{quotause} \end{center}
Da sua home. Ele mostrará o que está ocupando espaço na sua conta.

\section{Firefox/Iceweasel travado}\label{delparent}
\textit{Firefox is already running, but is not responding. To open a new
window, you must first close the existing Firefox process, or restart your system.} \\

Isto se deve a uma trava que existe no Firefox, e acontece normalmente
quando o Firefox não fechou corretamente da última vez. Existe um script
da rede que tira essa trava, o delparent. Simplesmente abra um terminal e
digite:
\begin{center} \textbf{delparent} \end{center}
E tudo deve voltar ao normal.\\

\section{Arquivos do Sistema}\label{arquivos}
Algumas vezes usuários decidem apagar tudo o que não usam de suas contas
e acabam apagando arquivos importantes. Não apague arquivos se você não
sabe para que eles servem. \\

A maior parte dos arquivos ``importantes'' começam com um ponto(``.'') e 
são ocultos (não são listados normalmente). Como já foi dito anteriormente,
estes arquivos são usados pelo sistema para guardar configurações e preferências. \\

Mas ainda existem outros arquivos/diretórios importantes que não são ocultos,
como por exemplo, Mail/ e Maildir/ que guardam seus e-mails.\\

Outro diretório importante é o private/, que tem as permissões alteradas 
para que só você consiga vê-lo, tornando-o um lugar seguro para guardar 
trabalhos. Muitas pessoas mudam as permissões sem querer, ou apagam a 
pasta private, e perdem essa segurança. \\

Caso você tenha apagado arquivos de configuração ou mexido indevidamente
nas permissões de arquivos, compareça à Administração. \\

\section{USB não desmontado}\label{usb}
Sempre que usar um dispositivo USB (PenDrive), lembre-se de desmontá-lo antes de removê-lo fisicamente. Não desmontar pode implicar em perda de dados, além de poder causar problemas se a próxima pessoa quiser montar o PenDrive dela.
\section{Máquina travada}\label{travou}
Uma máquina pode travar por vários motivos diferentes, tornando difícil a criação de um método universal para resolver problemas, mas aqui vão algumas dicas.\\
Em primeiro lugar, pedimos aos usuários que não reiniciem as máquinas. No linux, é possível que mais de um usuário esteja usando a mesma máquina ao mesmo tempo. Por isso, ao desligar uma máquina, você pode fazer um colega perder o EP dele. Além do que, por motivos de segurança, as máquinas da rede não podem bootar a menos que um admin esteja presente. Assim, se você reboota uma máquina, ela ficará impossível de usar até que um administrador a reboote. Se isto ocorrer num fim de semana ou véspera de feriado, isto pode acarretar que a máquina fique inutilizável até o dia útil seguinte, prejudicando você e seus colegas.\\
Se um programa travar, tente fechá-lo usando Alt+F4, se for um programa gráfico, ou Ctrl+C se for um programa do modo texto. Se isso não funcionar, tente deslogar da máquina.\\
Caso o modo gráfico não esteja respondendo, aperte Ctrl+Alt+Backspace para reiniciá-lo. (Isso demora alguns segundos) e tente logar de novo.\\
Se ainda não deu certo, tente entrar no modo texto, apertando Ctrl+Alt+F1, e, depois de logar (a senha não aparece na tela mesmo), digite ``ps ux'' (esse comando mostra todos os processos que você está rodando.A segunda coluna mostra um número (o PID). Identifique o processo que você acha que está travando e digite ``kill -9 \textit{digite o pid aqui}''. Se você não fizer idéia de qual processo matar, vá matando em ordem até destravar (para voltar para o modo gráfico aperte Ctrl+Alt+F7).\\
Caso você não consiga nem abrir o modo texto na máquina, tente logar em uma outra máquina, e do terminal dela dar o comando ``ssh nomedamaquinatravada''. Se conseguir logar, mate processos, como descrito anteriormente.\\
Se isso falhar, contate um administrador.\\
\textbf{Obs:} As máquinas pretas precisam de uma senha para serem ligadas, então se alguém reiniciou a máquina, ela não irá ligar enquanto não for liberada. Caso veja alguma máquina nesse estado, por favor avise algum dos administradores.\\
\newpage
\begin{figure}[htb]
\center
\includegraphics[width=0.9\linewidth]{dontpanic}\\
\end{figure}

\end{document}
