Sessão 04 Comandos Introdutórios Introdução Estrutura de Ficheiros Redireccionamento Pipe´s Comandos Utilitários Vários Introdução O interpretador de comandos não faz parte do núcleo(Kernel) do Linux, sendo por isso considerado um utilitário. As versões mais divulgadas são o basch(Bourne Shell) e o csh(C-Shell) - comandos versáteis Podem construir-se comandos à custa dos existentes. Para executar comandos no shell: – Executar no KDE o Konsole – Aceder a um dos terminais (ALT+ F(1..7 ou CTRL+ALT+ F(1..7)) consoante se trate de modo texto ou gráfico. Estrutura de Ficheiros Tal como no MS-DOS os ficheiros estão organizados numa árvore de directorias em que a raiz é a directoria / (root) – A root tem vários ramos e cada ramo é uma outra directoria que por sua vez também pode ter mais sub-ramos(outras directorias) Existem três tipos de ficheiros – Ordinários (texto, executáveis dados, imagens) – Directorias – Especiais – associados a dispositivos I/O (discos periféricos, ...) Qualquer um destes tipos podem ter links (ou seja atalhos para outros ficheiros) Os nomes dos ficheiros podem ter até 256 caracteres de qualquer tipo excepto o / (separador) Não é necessário ter extensão para serem executáveis Os ficheiros especiais encontram-se na directoria /dev Estrutura de Ficheiros (cont...1) A especificação de um ficheiro (pathname) pode ser – Absoluta se começar por / – Relativa à directoria actual Em cada directoria (excepto na raiz ou root /) existirá sempre: .. Directoria mãe . Própria directoria Estrutura de Ficheiros (cont...2) A cada ficheiro estão associados: – Identificação do dono do ficheiro – 9 bits de controlo de acessos : » b0..b2 permissões para o dono » b3..b5 permissões para os utilizadores do mesmo grupo » b6..b8 permissões para os restantes utilizadores – Dentro de cada grupo de 3 bits o seu significado é o seguinte: » 1º acesso para leitura (r) » 2º acesso para escrita (w) » 3º acesso para execução (x) Em qualquer dos casos quando o bit for “1” tem acesso permitido e se for “0” não tem Redireccionamento Em Linux existem pré-definidos três ficheiros especiais: – stdin Canal standard de entrada de dados – stdout Canal standard de saída de dados – stderr Canal standard de diagnóstico Por defeito o stdout e stderr estão associados ao ecran enquanto que o stdin está associado ao teclado. Estas associações podem ser alteradas < fich abre fich e este passa a ser a entrada > fich o fich é apagado(caso exista) e depois usado como saída >> fich idêntico ao anterior mas o ficheiro não é apagado (acrescentado) Pipe’s Ao juntarmos dois comandos usando o simbolo | o canal de entrada do segundo comando passa a ser o canal de saida do primeiro Exº: 1- com1 | com2 2- com1>temp; com2<temp; rm temp Fazem ambos o mesmo só que no 2º caso, o 2º comando só começa quando o 2º acaba e este só começa quando o 1º acabar. No primeiro caso os comandos são executados concorrentemente Comandos -01 man comando Dá a descrição de comando (ver man man) pwd Dá o nome(pathname) da directoria actual ls [-ltasdrucifg] [nome] Lista os ficheiros da directoria especificada » l Dá uma linha para cada ficheiro com vários atributos » a Lista também os ficheiros cujo nome começa por . chmod modo nome Muda os acessos ao fiheiro: » Absoluta exº chmod 752 fich1 » Relativa ([ugoa] +- rwx) . u – dono g – grupo o – outros utilizadores a – todos os anteriores - retira privilégio + dá permissão r, w e x são leitura, escrita e executável respectivamente chown dono nome Muda o dono para nome Comandos -02 chgrp grupo nome muda o grupo para nome cat nome escreve o ficheiro em stdout cd nome muda para a directoria nome mkdir nome cria uma directoria nome rmdir nome apaga a directoria (vazia) nome rm nome apaga os ficheiros especificados -i faz com que seja pedida confirmação -r a operação é feita recursivamente em todas as directorias -f apaga os ficheiros mesmo que o utilizador não tenha opções de escrita mv origem destino muda(move) o nome do ficheiro origem para destino cp origem destino copia o ficheiro origem para destino touch cria um ficheiro vazio ln origem destino cria um link do ficheiro origem com o nome destino Em linux/Unix é possível que um mesmo ficheiro possa ser visto com nomes diferentes (caso do link) Ao estabelecer um link de um ficheiro para outro não copiamos o conteúdo e está sempre acrualizado Comandos -03 who [am i] Mostra quais os utilizadores no sistema. Se invocado com am i dá algumas informações acerca do utilizador id dá o numero e o grupo do utilizador logname dá o nome de acesso ao sistema do utilizador passwd permite modificar a password de acesso ao sistema write [utilizador...] Permite escrever mensagens no terminal de outro utilizador mesg [-ym] se invocado com –y inibe a possibilidade de outros escreverem mensagens nesse terminal at [hora] Permite executar comandos a uma determinada hora ps [opções] lista informações sobre os processos existentes u user dá informação sobre os processos do user a Dá informação de todos os processos existentes l Para cada processo dá uma linha com mais informação kill [-signal] pid ... Para mandar abaixo processos wait Espera que todos os processos invocados por este esperem date Dá a hora e a data actuais. Serve ainda para a mudar Comandos -04 cal [mês] [ano] Mostra o calendário desse mês ano. Se o mês for omitido mostra o ano. Se ano for omitido considera que é o actual calendar consulta calendar e mostra todas as linhas onde haja referência à data actual ou a do dia seguinte tee [-a] [ficheiro] copia stdin para stdout e para ficheiro Ex. who | tee fich | wc –l mostra no ecran quantos users estão no sistema e escreve informação sobre eles em fich wc [–lwc] [ficheiro] conta os caracteres(-c), palavras (-w) e linhas (-l) do ficheiro at [hora] Permite executar comandos a uma determinada hora ps [opções] lista informações sobre os processos existentes u user dá informação sobre os processos do user a Dá informação de todos os processos existentes l Para cada processo dá uma linha com mais informação kill [-signal] pid ... Para mandar abaixo processos wait Espera que todos os processos invocados por este esperem nice [comando] faz com que um comando seja executado com prioridade menor clear limpa o ecran Comandos -05 tr [a-z] [A-Z] < fich1 > fich2 coloca em fich2 o texto que se encontra em fich1 convertendo todas as letras minúsculas para maiúsculas. ex. tr [-opções] [string1] [string2] copia para stdout o ficheiro stdin substituindo todas as ocorrências de caracteres de string1 pelo correspondente caracter de string2. Opções c - caracteres que são substituídos são os que não ocorrem em string1 d - todos os caracteres que aparecem em string1 são apagados s – após ser feita a conversão, todas as sequências de caracteres de string2 repetidos são substituídos por um único caracter nl [opções] ficheiro numera as linhas do ficheiro. more [opções] [ficheiro] mostra os ficheiros página a página Utilitários 01 mail [utilizador] correio electrónico. Se visualizado sem parâmetros permite ver as mensagens recebidas. bc (binary Calculator) é um utilitário que permite fazer operações aritméticas com precisão ilimitada. Invocado com um ficheiro envia o resultado para ficheiro cut –cflista [-dchar] [ficheiro...] Permite seleccionar colunas de um ficheiro lista representa a lista de colunas separadas por “,”. Comprimento fixo(opção –c) Comprimento variável (opção –f) delimitado por um caracter especificado (opção –d (TAB por defeito)) paste –dlista fich1 fich2 conactenação por linha de fich1 com fich2 df [file system] (disk free) Dá informação do espaço livre no disco ex. df –h dá a informação em mega ou gigabytes free o mesmo que o anterior du [file system] (disk used) Dá informação do espaço ocupado whereis ficheiro Procura ficheiro em directorias pre-definidas find path-list expressão Procura a partir das directorias existentes em path-list os ficheiros que verifiquem a expressão locate procura um ficheiro Utilitários 02 grep [opções] expreg [ficheiro...] procura nos ficheiros especificados as linhas onde aparece auma ocorrência de expreg e escreve-as em stdout. cmp [-l] [-s] fich1 fich2 Escreve em stdout as diferenças entre os dois ficheiros para cada byte diferente escreve a posição e a linha. diif [-efbh] fich1 fich2 Escreve em stdout as difenrenças entre os dois ficheiros. vi, edit e pico - editores de texto top lista os processos que exigem mais cpu last lista os ultimos utilizadores a entrar no sistema hostname dá o nome do computador logname dá o nome do utilizador apropos palavra dá todos os comandos que tenham a palavra indicada telnet remoto permite aceder a uma maquina atraves de telnet. O telenet não é cifrado ssh remoto permite aceder a uma maquina remoto ping remoto para saber se um determinado pc remoto está ligado ifconfig permite ver as caracteriticas da rede less vizualiza um ficheiro pagina a pagina Utilitários 03 netstat lista as ligações estabelecidas entre o servidor linux e outros pcs route configura e apresenta as rotas de rede do computador su passa para super utilizador em qualquer sessão de outro utilizador para mudar de superuser para outro basta fazer su – nome_do _utilizador rpm –iv nome_pacote.rpm instala um programa nome_pacote.rpm rpm –qa mostra todo o software instalado rpm –qa | grep “programa” verifica se um determinado programa está instalado useradd adiciona um utilizador userdel apaga um utilizador mount serve para montar dispositivos como leitores de disquetes, cdroms, flashdisk... Etc fsck verifica problemas de ficheiros e sectores danificados Vários Putty programa de Windows que permite aceder ao linux via ssh CTR+T para listar directorias apachectl start Inicia o pc como servidor Web através do programa apache. Por defeito fica posicionado em /srv/www e tem idex.html BACKGROUND – exº updatedb& em que updatedb é um programa e o & coloca em background tb pode ser updatedb + ctrl Z + bj fobs Mostra os processos a correr em background fg [num job] volta a colocar o trabalho a correr em terminal top mostra os processos interactivos (para sair ctrl+c) netstat mostra as ligações activas na maquina traceroute mostra os nós por onde a ligação é estabelecida até chegar ao destino(Internet) free mostra a memoria (em /proc fazer cat meminfo;cat cpuinfo;cat partitions) uptime mostra à quanto tempo está ligado last Ultimas pessoas que entrar no PC uname –a Versão do kernel Em /etc/fstab têm-se os periféricos scp filename.jpg user@host:/path/to/upload Winscp programa para ligar ao linux através do Windows Vários Cont... mount /dev/cdrom monta o cdrom mount /dev/hda /mnt/windows0 monta a partição do windows umount desmonta useradd –m utilizador –d home/utilizador Cria um utilizador chown muda o dono chgrp muda o grupo ssh 192.168.2.123 faz um login remoto Comandos compactados de ficheiros http://lynx.isc.org/release/lynx2.8.5.tar.gz Publicar documentos: apachectl start cp <ficheiros a publicar> /srv/www/htdocs para aceder http://NomeDoIP/NomeNoFicheiro Em /opt ficam os programas pagos Configurar um mailserver: http://www.freezcode.net/~terminal/projects/qinstall-bash/ oferece uma pagina de webmail administração de webmail Sistemas de backups: bobs.sourceforge.net instala tudo através de interface web dá para fazer backup de vários servidores Firewall: www.asgardsrealm.net/linux/firewall/ Ftpserver: http://vsftpd.beast.org Vários Cont.. 2 MRTG (Multi Root Trafic Generator) people.ee.ethz.ch/nceticker/webtools/mrtg/ Recursos de Software para Linux freshmeat.net sourceforce.net rpmfind.net