# Conceitos Básicos GNU/Linux Os comandos Linux são usados para enviar pedidos ao terminal Linux, também conhecido como Shell. O objetivo do terminal é receber esses comandos, de forma semelhante ao Prompt de comando ou Powershell do Windows e ao Terminal do MacOS, e repassá-los ao sistema operacional, executando as ações solicitadas. Por meio do terminal, é possível realizar modificações no sistema de forma semelhante ao que fazemos utilizando a interface gráfica, porém com mais agilidade e poderes. Contudo, vale lembrar que você deve tomar cuidado ao executar comandos no terminal, já que ele pode realizar modificações drásticas no sistema. # Caminho absoluto e relativo Um caminho absoluto é baseado na raiz da árvore e começa com /, por exemplo: /home/usuario/<pasta>/<arquivo>. Ele permanece válido em qualquer contexto (desde que ainda esteja no mesmo sistema da mesma máquina). Um caminho relativo é a priori relativo ao diretório atual onde o usuário está localizado. Um caminho que começa com algo diferente de / ou ~ é um caminho relativo. Esta noção de posicionamento depende do contexto, mas no Linux você geralmente é encontrado por padrão em seu diretório pessoal, que é /home/<nome do usuário>. Em um terminal, você pode navegar de um diretório para outro com o comando cd. # SSH SSH (Secure Socket Shell) é um protocolo de rede que permite aos usuários acessar e gerenciar servidores pela internet. ## 1. Comando pwd Use o comando **pwd** para visualizar o caminho do diretório atual (da pasta) em que você está. O comando vai retornar um caminho completo (cheio), que é basicamente um caminho que começa com uma barra inclinada (/). Um exemplo de um caminho completo é /home/username. ``` pwd ``` ## 2. Comando cd Para navegar pelo filesystem do Linux, use o comando **cd**. Ele requer ou um caminho completo ou o nome de um diretório, dependendo do diretório atual em que você estiver. Vamos dizer que você esteja em /home/username/Documents e quer ir para Photos, um subdiretório de Documents. Para fazer isso, simplesmente digite cd Photos. Outro cenário em que você quer mudar completamente de diretório, digamos, para /home/username/Movies. Nesse caso, você tem que digitar cd seguido pelo caminho absoluto do diretório. ``` Navegar pelos diretórios: cd "home/documentos1/documentos2" Voltar para diretório anterior: cd .. cd "home/diretorio1" ``` ## 3. Comando ls O comando ls é usado para visualizar conteúdos em um diretório. Por padrão, esse comando vai mostrar os conteúdos apenas do diretório atual em que você estiver. ``` Visualizar conteúdos no diretório documentos2: ls ``` ## 4. Comando mkdir Use o comando mkdir para criar um novo diretório ``` mkdir "nome_diretorio" ``` ## 5. Comando rmdir Se você precisa apagar (deletar) um diretório, use o comando rmdir. Porém, o rdmir só permite que você apague diretórios vazios (sem conteúdos). ``` rmdir "nomeDiretorio" ``` ## 6. Comando RM O comando rmdir é ótimo para remover diretórios não usados e vazios de forma segura. Se você quer remover arquivos ou diretórios que contém arquivos, você deve usar o comando rm. Nota: Tenha muito cuidado com este comando e sempre verifique duas vezes em qual diretório você está. Isso irá deletar tudo e não há opção para desfazer. ``` rm article.txt rm -rf Dir1 ``` ## 7. Comando touch O comando touch permite criar novos arquivos em branco através de uma linha de comando. ``` touch "arquivo1" ``` ## Comando ping Use o comando ping para verificar o status da conexão do seu servidor. O comando vai checar se você está ou não conectado e também medir o tempo de resposta. ``` ping www.globo.com ``` ## Comando history Quando você já estiver familiarizado com o Linux, vai perceber que você pode executar centenas de comandos todos os dias. Por exemplo, o comando history (histórico) é particularmente útil se você quer rever quais comandos já usou antes. ``` history ``` ## Comando cat O cat (abreviação para concatenar) é um dos comandos Linux mais usados. Ele é usado para visualizar o conteúdo de um arquivo na saída. ``` cat "nome_arquivo ``` ## Comando cp Use o comando cp para copiar arquivo do diretório atual em que você estiver. ``` cp "arquivo1 /home/diretorio1" ``` ## Comando mv O usuário habitual do comando mv é mover arquivos, ainda que ele possa também ser usado para renomear arquivos. ``` mv "arquivo1 /home/diretorio1" ``` Já para renomear arquivos. ``` mv "arquivo1 arquivo2" ``` ## Comando uname O comando uname, que significa Unix Name, vai mostrar informações detalhadas sobre seu sistema Linux. Isso inclui o nome da máquina, do sistema operacional, do kernel e assim por diante. ``` uname ``` ## Comando top Equivalente ao gerenciador de Tarefas do Windows, o comando top vai mostrar uma lista de processos que estão em execução e o quanto de CPU cada processo usa. É muito útil para monitorar o uso de espaço no sistema, especialmente para saber qual processo deve ser encerrado porque ele consome muitos recursos. ``` top ``` ## Comando wget Baixar arquivos da internet com a ajuda do comando wget. Para fazer isso, simplesmente digite wget seguido pelo link de download do arquivo. ``` wget "link_arquivo" ``` ## Comando ps comando ps em Linux nos permite obter informações sobre o estado dos processos que estão sendo executados no momento. Estas informações são visualizadas na saída padrão do sistema. É uma ferramenta poderosa para o administrador do sistema, que com ele pode obter muitas informações valiosas para compreender o que está ocorrendo com a máquina em um dado instante. ``` ps -axu ``` ## Comando echo echo é um dos comandos embutidos mais comumente usados para Linux bash e shells C, que normalmente são usados em linguagem de script e arquivos em lote para exibir uma linha de texto / string na saída padrão ou em um arquivo. ``` echo ``` ## Comando sleep Podemos forçar a espera de um certo período de tempo entre a execução de comandos no Linux usando o comando sleep. Este é um comando muito útil em scripts do shell, por exemplo, nos quais podem haver diversas tarefas que devam ser executadas após um certo período de tempo especificado. ``` sleep "10" ``` ## Criar usuários no linux ``` sudo adduser nome ``` ## Excluir usuário ``` sudo userdel nome ``` ## Adicionar grupo ``` sudo addgroup rh ``` ## Deletar Grupo ``` sudo delgroup rh ``` ## 8. Pesquisa sobre Estrutura De Diretórios Do Linux ``` 1.Pesquise sobre estruturas de diretórios no linux. 2.Inicializar a máquina Centos. 3.Dentro de cada diretório criar um arquivo de texto explicando sobre o diretório. Exemplo: Dentro do diretório /etc, criar um arquivo com nome “pesquisa-etc”. Dentro do arquivo deve ter uma explicação com suas palavras referentes aos diretórios que foram pesquisados. Observação: É necessário um arquivo para cada diretório. ``` ## Configurar placa de rede Endereço do arquivo de configuração: * /etc/sysconfig/network-scripts * Editar arquivo "ifcfg-enp0s3" * /etc/resolv.conf * /etc/init.d/network restart ``` ## Autocompletando nomes de arquivos e pastas O console pode autocompletar o nome de um arquivo ou pasta para que você economize o teclado. ## Tipos de usuários Separação de privilégios é algo fundamental para a segurança de qualquer sistema operacional seja ele um servidor ou um computador pessoal. O Linux faz este papel muito bem não permitindo que nenhum usuário padrão execute tarefas que podem afetar a segurança do sistema como um todo (com exceção do superusuário – root).