===== O "Command Line" e os filosofias do Unix ===== ==== 1 : Um Sistema de Arquivos ==== Unix armazena dados dentro um hierarquia de pastas (//directories//) e arquivos. pwd - onde estou - mostra o caminho absoluto do path onde o usuário está ls - lista o conteúdo do diretório cd PATH - navegar para um diretório diferente ex.: user@notebook:~$ cd /etc/apt cd .. - navegar para diretório acima cd - - navegar ao penúltimo diretório mkdir 'diretório' - criar novo subdiretório Opções : ls -l - mostra todos as detalhas, incluindo as permissoes dos arquivos la -a - mostra arquivos e directories ocluidos la -lat - combinar opções, isso também ordenar as arquivos pela ultima data de editação Ensaio #1 : Cria a seguinte arvore dos directories dentro sua computador calango vants musichacking ataripunk puredata processing sketches videohacking camera micro arduino beaglebone raspberrypi linux commandline === 1.2 : As arquivos === Ensaio #2 : Utilizando qualquer editor no sua computador, cria um arquivo de texto dentro uma destas directories. cp NOME1 NOME2 - fazer um copia de um arquivo para outra mv NOME1 NOME2 - mudar um arquivo de um lugar para outra (pode ser utilizada troca de nome) rm - deletar um arquivo. **Cuidado! Unix não tem lata de lixo ou desfazer deletar!** cat NOME - mostra a conteúdo de um arquivo ==== 2 : Um sistema que ajuda ==== === 2.1 Teclas essenciais === * Use a tecla "Tab" pra completar qualquer palavra * Use a seta para cima pra voltar pra as comandas digitadas anteriormente. === 2.2 "Wild cards" === ls m* - mostra todos as arquivos e pastas que começam com 'm', === 2.3 Manual === man ls - o manual do comande "ls" Ensaio #3 : Pratica com estes poderes. ==== 3 : Unix : um coleção de pequenas ferramentas ==== echo "Todo Bem" - imprimir o string "Todo Bem" cat NOME - mostrar o conteúdo do NOME grep PADRAO NOME - mostrar só as linhas que contem PADRAO dentro o arquivo NOME find PATH - mostrar todo a hierarquia abaixo do PATH apropos "TEXTO" - buscar ferramentas com TEXTO no manual less NOME - mostrar o conteúdo do NOME numa programa que permitir navegar Uteis do less : / - procurar texto dentro o arquivo n - procurar o próximo texto === 3.2 : As pequenas ferramentas podem ser combinados === A parte genial do Unix 'e o "pipe" ou | que pode ser utilizada pra combinar as ferramentas cat NOME | less - mostrar a conteúdo do NOME e encaminhar para o less ls -la | less - executar ls -la e encaminhar o resultado para o less ls -la | grep "v" - executar ls -la e encaminhar o resultado para o grep (o filtro) do carácter "v" Também temos operadores que encaminha para arquivos : ls -la > dir.txt - executar ls -la e colocar o resultado em dir.txt echo "todo bem!" > a.txt - criar arquivo a.txt com o texto "tudo bem!" echo "como vai?" >> a.txt - adicionar o texto "como vai?" ao a.txt Ensaio #4 : Criar alguns arquivos grandes com as ferramentas ls, echo, cat, |, > e >> === 3.3 Ferramentas são programas normais === Um programa simples do Python : import random for i in range(100): print random.random() Colocar isso numa arquivo teste.py e executar com python teste.py A programa só imprimir 100 números randômicos. Mas podemos usar o | do Unix com as outras ferramentas. Por exemplo python teste.py | grep "123" ou colocar as resultados numa outra arquivo python teste.py | grep "123" > com123.txt Isso e a filosofia do Unix. Escrever programas simples, com um proposta, que podem ser combinados pela os usuários no command line. É a maximização do flexibilidade. ==== 4 O Unix é um sistema operacional "multi-tasking" ==== Mudar o programa em Python ao : import random while True : print random.random() Agora, esse programa nunca termina. Mas podemos continuar utilizar numa pipe. python teste.py | grep "1234" Como é possível? As programas teste.py e grep são processos executas //em paralelo//. Abrir um outra terminal. ps - Mostra todas as processos / programas executando neste terminal. ps -e - Mostra todas as processos / programas no maquina. Provavalmente vou vir um lista grande dos processos no computador. Mas afinal seria um coisa como : 8903 pts/25 00:00:02 python 8904 pts/25 00:00:00 grep 8905 pts/27 00:00:00 ps Isso mostra um processo python esta executando, e um processo grep. Vamos assassinar :-) kill -9 NUMERO - Terminar o processo numero NUMERO. (tenta o numero da sua programa em python)