Vous êtes sur la page 1sur 18

Comandos bsicos

A Shell do Linux
Uma shell oferece uma interface em formato texto com o kernel do sistema operativo. Permite realizar as operaes mais habituais a um utilizador tal como: operaes sobre ficheiros, gesto do sistema operativo, edio de tecto, desenvolvimento de software, etc. Alm disso esta tipo de interface apresenta como principal vantagem em relao a uma interface grfica a possibilidade de correr programas feitos pelo utilizador utilizando uma linguagem de script. Em Linux existem vrias shells disposio do utilizador: Bourne shell (sh), a verso original presente em todos os sistemas Linux; C shell (csh), uma verso cujo nome deriva do facto de vrias caractersticas de programao terem uma sintaxe semelhante da linguagem de programao C. Tornou-se muito popular devido aos mecanismos de alias (permite criar nomes curtos para sequncias de comando longas) e history (guarda os comandos executados e permite a sua re-execuo); Korn shell (ksh) Tornou-se popular porque mantm a compatibilidade de sintaxe com a Bourne shell e ao mesmo tempo apresenta mecanismos de alias e history como a C shell; Bourne Again shell (bash) uma shell que incorpora as caractersticas mais teis da Bourne shell e da C shell. uma das mais utilizadas comunidade de utilizadores de Linux. CONFIGURAO DA BASH A configurao da Bash vai para alm, dos objectivos desta cadeira no entanto, dada a sua importncia para quem utilizar o Linux frequentemente, transcreve-se abaixo um pequeno texto retirado http://freeunix.dyndns.org:8088/site2/howto/Bash.shtml, onde tambm poder ser encontrada mais informao, por exemplo sobre como mudar o prompt. OBTER AJUDA Para alm de material impresso (livros, guias de referncia, revistas) ou acessvel na Internet, poderemos encontrar ajuda sobre os comandos no prprio sistema Linux. Todas as verses do Linux disponibilizam um comando man (abreviatura de manual) que nos permite obter informao detalhada sobre cada comando instalado no sistema. A ajuda obtm-se executando o comando da seguinte forma:
man comando

Este comando gera uma sada semelhante h existente nos manuais originais do sistema operativo. Podemos-nos movimentar dentro do texto do comando man atravs das teclas:
Enter Space q PageUp pageDown End Home / n N Mover o texto uma linha para baixo Mover o texto uma pgina para baixo Sair Mover o texto meia pgina para cima Mover o texto meia pgina para baixo Mover para o fim do texto Mover para o incio do texto Procura a primeira linha onde se encontra o texto escrito a seguir Move-se para a prxima ocorrncia do texto procurado Move-se para a ocorrncia anterior do texto procurado

Por vezes o mesmo comando poder ser utilizado como um comando Linux ou, por exemplo, como uma funo utilizada num programa em C. Nestes casos para se consultar outra verso do mesmo

comando deve-se utilizar o comando:


man n comando

Em que n representa a verso alternativa da ajuda para esse comando. Algumas distribuies do Linux permitem outras formas de obteno de ajuda atravs do comando help que nos d uma informao mais abreviada e que pode ser usado de duas maneiras:
help comando ou comando --help

Pode-se tambm obter os comandos relacionados com outro comando atravs da utilizao do comando apropos. O exemplo seguinte refere-se obteno dos comandos relacionados com o comando pwd.
>apropos pwd pwd pwd working directory pwd [builtins] pwdx (1) (n) (1) (1) - print name of current/working directory - Return the absolute path of the current - bash built-in commands, see bash(1) - report current working directory of a process

SINTAXE GERAL DOS COMANDOS Linux


$ comando [ opo ... ] [ expresso ] [ ficheiro ... ]

$ - prompt, indicativo de que estamos na shell (normalmente diferente para cada shell) [] - indicam que esta parte do comando opcional ... - indicam que a parte em causa se pode repetir opo - parmetros que condicionam a execuo do comando expresso - dados necessrios para a execuo do comando ficheiro - se o comando opera com ficheiro(s) , estes aparecem sempre no fim do comando Pode-se tambm executar vrios comando seguidos utilizando como separador o ; (ponto-evrgula):
$ comando1 ; comando2 ; ...

A shell executa-os todos, um de cada vez, como se eles tivessem sido introduzidos individualmente. Alguns comandos Linux podero necessitar de mais caracteres do que aqueles que podem ser apresentados no ecr. A shell possibilita-nos lidar com este problema de duas maneiras: Quando chegarmos ao limite do ecr, podemos continuar a escrever. Se o ecr estiver correctamente configurado, os caracteres surgiro automaticamente no incio da linha seguinte. Se no estiver correctamente configurado, o cursor ficar no limite do ecr, e os caracteres sero continuamente apresentados na ltima posio da linha, medida que os formos escrevendo. De qualquer maneira, a shell interpretar correctamente os caracteres introduzidos, sejam eles apresentados correctamente ou no; Outra maneira finalizar a linha com um \ (backslash) mesmo antes de pressionarmos a tecla ENTER. O backslash d indicaes shell de que o comando continua na linha seguinte. Exemplo:
bash> ls \<enter> > -l <enter>

A alterao do prompt para > uma indicao da shell de que est espera da concluso do comando.

ALTERAO DA PASSWORD Um novo utilizador pode a sua password quando fizer login. Existe um comando que permite fazer essa operao. o comando passwd.
$ passwd Changing password for ubuntupt Old password: New password Re-enter password: $

Sendo um dos pilares da segurana num sistema Linux, existem algumas regras que devem ser usadas na definio das passwords: Deve ter no mnimo 6 caracteres e existe um nmero mximo de caracteres que so considerados; Deve ser uma combinao de letras e nmeros; No pode ser o username, o seu inverso ou o username deslocado de um ou mais caracteres; Uma nova password dever ser sempre diferente da anterior.

FICHEIROS E DIRECTRIOS
Os ficheiros e os directrios fazem parte do Sistema de Ficheiros. O sistema de ficheiros o local onde o sistema operativo e os utilizadores guardam e organizam os seus ficheiros. O Linux impe uma estrutura ao sistema de ficheiros que facilita o armazenamento e a procura posterior. DIRECTRIOS
/ bin dev etc lib ficheiro) Linux - directrio raiz (root) - comandos principais do Linux - dispositivos (devices) ligados ao computador - comandos e ficheiros usados pelo administrador do sistema - bibliotecas (conjunto de ficheiros relacionados contidos num nico usadas por compiladores, processadores de texto e outros comandos

lost+found - usado pelo comando fsck (file system check). Este comando usado apenas pelo administrador para verificar o sistema de ficheiros; se o fsck encontra algum ficheiro que parea no estar ligado a nenhum directrio, o comando liga-o ao lost+found, para que posteriormente o administrador decida o que fazer com ele tmp - usado por diversos comandos Linux para criao de ficheiros temporrios; pode ser usado por qualquer utilizador; este directrio limpo regularmente usr - a parte do sistema de ficheiros pertencente aos utilizadores; a partir deste directrio que se estendem os directrios de todos os utilizadores do sistema home - normalmente contm os directrios dos utilizadores

mnt - utilizada para permitir o acesso a sistemas de ficheiros temporrios (p.e. a uma pen) Proc - disponibiliza informao sobre os processo que se encontram a correr no sistema

Home Directory: directrio ao qual temos acesso logo aps o login. Em muitos sistemas, Linux, pode ser abreviado com o sinal ~, ou $HOME Current Working Directory (Directrio corrente): directrio onde estamos em cada momento. Quando fazemos login, o nosso home directory simultaneamente o nosso current working directory. Comando pwd Podemos determinar o nosso directrio de trabalho executando o comando pwd que nos apresenta o caminho completo desde a raiz (/) at ao nosso directrio de trabalho. Por exemplo:
$ pwd /home/ubuntupt $

DIRECTRIOS ESPECIAIS Esto presentes em cada um dos directrios:


. - (ponto) abreviatura do directrio corrente .. - (ponto-ponto) abreviatura do directrio imediatamente acima do corrente (directrio pai)

MUDAR DE DIRECTRIO O comando para mudar de directrio o cd (change directory) cuja sintaxe a seguinte:
cd [ directrio ]

O directrio deve existir e temos de ter permisso para l estar. Se no usarmos nenhum directrio, isto , se executarmos cd sem nenhum parmetro, mudamos para a nossa home directory. Para subirmos um nvel na rvore do sistema de ficheiros podemos recorrer ao directrio especial que representa o "pai" (..) fazendo:
cd ..

Se em qualquer altura, aps vrias mudanas de directrio, no tivermos noo do local exacto onde nos encontramos no sistema de ficheiros, deveremos recorrer ao comando pwd (j referido). CRIAR NOVOS DIRECTRIOS possvel organizarmos os nossos ficheiros no nosso home directory da mesma maneira que o Linux o faz na root directory. Tal conseguido com o comando mkdir (make directory) cuja sintaxe a seguinte:
mkdir directrio ...

Os nomes a utilizar na criao de directrios seguem as mesmas regras que os nomes dos ficheiros: existe distino entre maisculas e minsculas. Algumas pessoas seguem a conveno de criar os directrios em maisculas o que permite uma mais fcil distino dos ficheiros. Se tentarmos criar

um directrio que j existe ou num stio no qual no temos permisso para o fazer, mkdir apresentar uma mensagem de erro. ELIMINAR DIRECTRIOS Quando j no precisamos do directrio podemos elimin-lo com o comando rmdir cuja sintaxe a seguinte:
rmdir directrio ...

Para que um directrio possa ser eliminado, duas condies devem ser respeitadas: o directrio tem de estar vazio: necessrio apagar os ficheiros contidos dentro do directrio a eliminar antes de proceder operao o directrio corrente no pode ser o directrio que estamos a tentar eliminar; o que faz sentido: em que parte do sistema de ficheiros seramos "colocados" se eliminssemos o nosso directrio de trabalho corrente? O rmdir no pede confirmao antes de proceder eliminao. Como muitos outros comandos de Linux, o rmdir assume que sabemos o que estamos a fazer e deixa-nos fazer quase tudo o que queremos sem nos interromper com mensagens triviais! LISTAR NOME DE FICHEIROS O comando ls lista os ficheiros
ls [-aClqrstux] [nome ...]

a (all) mostra ficheiros comeados por . l (long) mostra em formato detalhado h mostra o tamanho dos ficheiros num formato mais perceptvel para humanos (kB, MB, etc). Esta opo apenas funciona quando utilizado em conjunto com o l, p.e. ls lh. t ordena de acordo com a hora de modificao dos ficheiros u ordena de acordo com a hora de acesso dos ficheiros R lista recursivamente todas as directorias abaixo da directoria indicada em nome Para vermos os ficheiros contidos nos directrios usamos o j referido comando ls. Quando usado sem parmetros, permite ver os ficheiros e os directrios do directrio corrente. Eis mais alguns exemplos:
ls dir_name - lista os ficheiros contidos no directrio dir_name e no o directrio em si; se quisermos ver os ficheiros de um directrio no precisamos de fazer cd ls R - modo recursivo: lista os directrios e respectivos contedos. Exemplo: ls R / | more

Existem ainda vrias outras opes, para alm das j referidas, que podem ser usadas com o comando ls. A opo -l d-nos uma lista longa, isto informao detalhada, de ficheiros e directrios. A seguir apresenta-se um exemplo do resultado possvel do comando ls l e a respectiva explicao:
-r-r-r-- 1 root sys 5632 Apr 3 14:59 /etc/passwd

Explicao por ordem.


-r-r-r-1 root sys 5632 Permisses Numero de Links Dono grupo tamanho

Apr 3 14:59 - Data /etc/passwd - Nome do ficheiro

VER O CONTEDO DE UM FICHEIRO O comando cat (abreviatura de concatenate and print ) permite visualizar o contedo de um ou mais ficheiros. A sintaxe do comando a seguinte:
cat [-s] [-v [-t] [-e]] ficheiro ...

O comando cat despeja tudo para o ecr, sem qualquer pausa ou separao entre os contedos dos diversos ficheiros. A opo s suprime quaisquer mensagens de erro ou aviso que possam ser geradas pelo comando. O comando cat usado para apresentar o contedo de ficheiros de texto (ASCII). Se, no entanto, houver caracteres de controlo invisveis, eles podem ser vistos usando a opo v, que faz com que esses caracteres sejam precedidos do acento circunflexo (^). Este modo visual pode ser usado com mais duas outras opes. A opo t permite ver os caracteres tab com Control-I (^I). A opo e podemos ver a posio de fim de linha (end of line) com o cifro ($). Embora seja til em muitas situaes, no o comando que normalmente usado para ver o contedo de um ficheiro. VER O CONTEDO DE UM FICHEIRO PGINA A PGINA O comando more Permite visualizar o contedo de um ficheiro, um ecr de cada vez. A forma mais simples do comando :
more ficheiro ...

Para avanar para a pgina seguinte pressionamos a barra de espaos e Enter para ver linha a linha. VER A PARTE FINAL DUM FICHEIRO Outro comando til para ver o contedo de um ficheiro o tail. Por padro, o tail apresenta as ltimas 10 linhas do ficheiro. A sintaxe do comando :
tail [+|-[nmero] [lbc]] ficheiro

A seguir ao nmero indicamos l para linhas, b para blocos (1024 bytes) e c para caracteres (ou bytes). Se omitirmos a letra, o Linux assume que pretendemos linhas. Por defeito, o tail executa o equivalente a tail -10l. O nmero fornecido como parmetro indica o nmero de linhas que queremos ver. Se usarmos o sinal -, as linhas so contadas do fim para o princpio, para determinar o ponto a partir do qual comea a apresentar as linhas. Se usarmos o sinal +, as linhas so contadas do incio para o fim. VER A PARTE INICIAL DUM FICHEIRO O comando head apresenta caractersticas semelhantes ao tail. A sintaxe a seguinte:
head [-nmero] ficheiro ...

Por defeito, o comando head apresenta as 10 primeiras linhas. O nmero passado como parmetro permite-nos indicar o nmero de linhas que queremos ver. Por exemplo, para vermos as primeiras 6 linhas do ficheiro:
$ head -6 ficheiro

COPIAR UM FICHEIRO O Linux permite-nos efectuar cpias de ficheiros com o comando cp usando a sintaxe:
Cpia dum ficheiro para outro: Cpia de ficheiro para directrio: Cpia de vrios ficheiros para directrio: dir_dest cp fich_orig fich_dest cp fich_orig dir_dest cp fich_orig1 fich_orig2 ...

Quando se copia um ficheiro para outro, o primeiro ficheiro lido e copiado para o segundo ficheiro. Se o segundo ficheiro no existir, criado. Se existir, substitudo. Como na maior parte dos comandos Linux, cp no pede confirmao antes de efectuar a cpia. Quando se copia um ou mais ficheiros para um directrio, cada ficheiro lido individualmente e copiado para um ficheiro com o mesmo nome no directrio indicado. O directrio tem de existir. Se o ficheiro no existir nesse directrio, criado. Se existir substitudo. MOVER OU RENOMEAR FICHEIRO O Linux permite mover um ficheiro ou alterar o seu nome atravs do comando mv.
Mover ou alterar nome dum ficheiro para outro: fich_dest Mover ficheiro para directrio: dir_dest Mover vrios ficheiros para directrio: fich_orig2 ... dir_dest mv [-f] fich_orig mv [-f] fich_orig mv [-f] fich_orig1

Quando se move um ficheiro para outro, o primeiro ficheiro lido e copiado para o segundo. O primeiro ficheiro removido. Se o segundo ficheiro no existir, criado. Se existir, substitudo. Como na maior parte dos comandos Linux, mv no pede confirmao. Quando se move um ou mais ficheiros para um directrio, cada ficheiro lido individualmente e copiado para um ficheiro com o mesmo nome no directrio indicado. Os ficheiros originais so removidos. O directrio tem de existir. Se o ficheiro no existir nesse directrio, criado. Se existir substitudo. Se se tentar mover um ficheiro para outro ficheiro ou directrio, que nos pertence mas para o qual no temos permisso para alterar, o mv pede confirmao para completar a operao. A opo f elimina estas mensagens de aviso e confirmao bem como quaisquer outras mensagens de erro ou aviso que possam ocorrer durante uma operao de move. ELIMINAR FICHEIROS O comando rm permite remover, ou eliminar um ficheiro. A sintaxe do comando a seguinte:
rm [ -fir ] ficheiro ...

Cada ficheiro indicado no comando removido do sistema de ficheiros. Mais uma vez, o Linux assume que sabemos o que estamos a fazer pelo que no efectua qualquer confirmao antes de proceder execuo do comando. Algumas opes podem ser usadas para modificar a execuo do comando rm:
-f Esta opo, fora a execuo do comando, isto , neste caso, a eliminao do ficheiro. Nenhumas perguntas so feitas, nem so apresentados quaisquer avisos ou mensagens de erro.

-i Esta opo a opo de interactividade. Informa o rm para interagir com o utilizador durante a
operao de eliminao. Antes do ficheiro ser efectivamente eliminado, o rm apresenta o nome do

ficheiro seguido de um ?. Se se pretende eliminar, pressiona-se o y seguido do Enter. Qualquer outra resposta salta a eliminao do ficheiro.

-r Esta opo permite ultrapassar a limitao do rmdir na eliminao de directrios no vazios. Com
esta opo, o rm elimina qualquer directrio indicado bem como os ficheiros neles contidos. O rm desce recursivamente ao longo da estrutura de directrios comeando no directrio indicado e elimina todos os ficheiros e directrios rvore acima, incluindo o directrio inicial.

Devido ao facto do Linux ser um sistema multi-utilizador com utilizadores a criar e a eliminar ficheiros constantemente, praticamente impossvel recuperar um ficheiro eliminado. Logo que um ficheiro eliminado, o sistema de ficheiros verifica que existe algum espao livre que pode usar. No prximo pedido de espao que algum faa, o sistema de ficheiros provavelmente usar o espao que acabou de libertar. A nica possibilidade de recuperao de um ficheiro eliminado extrair uma cpia a partir de uma cpia de segurana efectuada recentemente. Ateno ao comando rm. Com apenas 5 teclas podemos colocar o nosso sistema de ficheiros Linux em apuros. O comando rm * remove tudo no directrio corrente, e no nos ser pedida qualquer confirmao. Pior do que isto, se estivermos logged in como administradores do sistema, nunca deveremos experimentar o comando rm r / . Se removermos tudo a partir da raiz, perderemos o nosso sistema de ficheiros por inteiro. Como se pode imaginar, o comando rm no remove efectivamente os dados. Remove uma entrada (um link) na tabela de ficheiros representativa do sistema de ficheiros (conhecida com FAT File Allocation Table). Quando o sistema de ficheiros verifica que no h mais links para o i-node em particular, liberta esse i-node e os blocos de disco a ele alocados para poder ser usado por outro ficheiro.

PERMISSES
O sistema de ficheiro do Linux possui alguns mecanismos bsicos de permisses de acesso a ficheiros e directrios que permitem controlar quem tem acesso aos mesmos e que tipo de operaes pode realizar. UTILIZADORES E GRUPOS Cada utilizador que tem acesso ao sistema Linux tem um login id, atribudo pelo administrador do sistema, que o identifica sem ambiguidade perante o sistema. Adicionalmente, cada utilizador pertence ao grupo de utilizadores relacionados que tem um determinado group id. Um grupo um conjunto de utilizadores que tm uma caracterstica comum, por exemplo, pertencerem ao mesmo departamento. Um utilizador pode pertencer a mais do que um grupo. Um dos motivos principais pelo qual os utilizadores esto relacionados atravs de um grupo conceder-lhes a possibilidade de partilhar ficheiros. Deste modo, vrios utilizadores podero aceder e alterar aos mesmos ficheiros partilhando informao e tarefas de interesse comum. Existe um ficheiro, normalmente no directrio /etc, onde esto registados os diversos utilizadores autorizados a aceder ao sistema bem como os grupos a que eles pertencem. Esse ficheiro o /etc/passwd e basicamente uma base de dados contendo um registo (linha) por cada utilizador. Cada linha composta por registos separados por : que fornecem ao Linux informao importante de cada utilizador.
operator:x:11:0:operator:/var:/bin/sh games:x:12:100:games:/usr/games:/bin/sh nobody:x:65534:65534:Nobody:/:/bin/sh

Cada registo de /etc/passwd apresenta os seguintes campos (indicados pela ordem em que aparecem): Login id login que o utilizador usa para aceder ao sistema Password encriptada nenhuma password guardada no sistema sem ser encriptada User id identificao numrica do utilizador Group id identificao numrica do grupo principal a que o utilizador pertence; informao acerca deste grupo, nomeadamente o seu nome, pode ser encontrada no ficheiro /etc/group Comentrio normalmente este campo usado para o nome completo do utilizador Caminho completo para o home directory do utilizador - este campo usado pelo sistema durante o processo de login para determinar qual o local do sistema de ficheiros onde seremos colocados Caminho completo do programa inicial isto identifica qual o programa a ser executado logo aps o processo de login; normalmente identificada aqui a shell usada pelo utilizador. Outro ficheiro importante o /etc/group. Enquanto que no ficheiro /etc/passwd identificado o grupo inicial a que cada utilizador pertence, o /etc/group especifica quais os grupos disponveis. Este ficheiro tambm uma base de dados semelhante a /etc/passwd e composto pelos seguintes campos: Group name da mesma maneira que cada utilizador tem um nome, cada grupo tem tambm um nome para mais fcil identificao Password encriptada o Linux permite passwords para grupos da mesma maneira que para utilizadores, de tal maneira que se queremos pertencer ao um grupo teremos que conhecer a respectiva password Group id identificao numrica do grupo e que usada no ficheiro /etc/passwd; para sabermos a que grupo o utilizador pertence, procuramos neste ficheiro a linha correspondente ao group id definido no registo do utilizador em /etc/passwd Lista de login ids esta a lista de utilizadores autorizados a pertencer a um determinado grupo. Actualmente, frequente em ambientes com mais de um sistema, existir um mecanismo de autenticao nico. Assim consegue-se uma gesto centralizada pelo administrador do sistema. QUEM S TU E A QUE GRUPO PERTENCES Podemos saber qual o nosso login, user id, group name e group id sem ter necessidade de pesquisar o ficheiro /etc/passwd. O comando id apresenta esta informao. A sintaxe do comando id a seguinte:
id

PERMISSES DE ACESSO Sempre que um ficheiro ou directrio criado, o sistema operativo Linux atribui-lhe um conjunto de permisses de acesso. Estas permisses esto definidas por defeito, mas esse valor de defeito pode ser alterado pelo utilizador para os seus ficheiros. Tambm em qualquer altura o utilizador pode alterar as permisses dos seus ficheiros e directrios como se ver nas prximas seces. As permisses so conjuntos de 10 caracteres divididos em 4 conjuntos que podem ser visualizadas no primeiro campo impresso no ecran pelo comando ls l.

- | r w x | r w - | r - -

Primeiro "-" : - ficheiro de dados d directrio c dispositivo de caracteres b dispositivos de blocos p ficheiro pipe l link Segundo "r w x": Dono (owner) Terceiro "r w -": Grupo (group) Quarto "r - -": Todos os outros (others) Podemos constatar que possvel atribuir diferentes permisses a diferentes tipos de utilizadores: Owner o dono do ficheiro normalmente a pessoa que o criou Group o grupo do ficheiro normalmente o grupo a que o utilizador pertencia no momento em que criou o ficheiro, e refere-se aos utilizadores que pertencem ao mesmo grupo que o dono Others os outros so simplesmente todas as pessoas que no so o dono nem pertencem ao mesmo grupo que ele Cada uma das 3 posies dos caracteres na seco das permisses tem um significado especial que corresponde a 3 diferentes tipos de permisses que cada ficheiro ou directrio possui e tem um determinado significado: Read a existncia da permisso de leitura indica que possvel ler o contedo do ficheiro Write a existncia da permisso de escrita indica que possvel escrever ou alterar o contedo do ficheiro Execute a existncia da permisso de execuo indica que possvel, pelo menos, fazer uma tentativa para executar (correr) o ficheiro como um comando Linux ou um utilitrio Estas permisses so bvias quando se referem a ficheiros: necessrio ter permisso de read (r) para fazer o cat do contedo do ficheiro, necessrio ter permisso de write (w) para editar e necessrio ter permisso de execute (x) nos ficheiros criados executveis ou contendo scripts Linux para que seja possvel execut-los. Mas j no so to bvias quando se referem a directrios: read (r) permite ver o contedo do directrio, isto , os ficheiros nele contidos, write (w) permite copiar ficheiros para o directrio ou apag-los do directrio, execute (x) tambm designada permisso de pesquisa permite ir para o directrio com o comando cd ou usar o directrio em qualquer tipo de pathname. ALTERAR PERMISSES DE ACESSO Se as permisses atribudas por defeito pelo sistema operativo no forem adequadas, podemos alter-las como o comando chmod (change mode). Este comando permite alterar as permisses de cada ficheiro ou directrio que nos pertena. A sintaxe do comando a seguinte:
chmod expresso_permisses ficheiro ... Octal Tipo de Permisso 0 1 2 nenhuma execute write Representao Binrio Linux (000) x (001) w (010)

3 4 5 6 7

write e execute read read e execute read e write read, write e execute

wx r rx rw rwx

(011) (100) (101) (110) (111)

Existe outro tipo de expresso que pode ser usado com o comando chmod. Esse tipo de expresso usa mnemnicas para especificar permisses. Uma srie de cdigos mnemnicos podem ser usados em vez de nmeros em octal e so apresentados nos quadros seguintes:
Classes de utilizadores u User (dono) g Group (grupo) o Others (outros) a All (todos) Operaes de permisses + adiciona retira = estabelece Valores das permisses r read w write x execute

UTILIZAO DO INTERPRETADOR DE COMANDOS (SHELL)


INTERPRETAO E EXECUO DE COMANDOS Aps a introduo do um comando a shell divide o comando em palavras (considerando como separador entre palavras o caracter espao). De seguida define o que comando, opes e nomes de ficheiros. Isto designa-se por executar o parsing do comando. Tambm procura metacaracteres, ou seja, caracteres com significado especial, como por exemplo o asterisco (*). Metacaracter: caracter com um significado especial para a shell. Quando a shell encontra um metacaracter vai tomar as aces que conhece para esse caracter. Podem ser aces de expanso (substituio por um conjunto de caracteres), de redireccionamento, etc. H tambm metacaracteres que permitem que no se interpretem os metacaracteres (metacaracteres de "disfarce"). O prximo passo o de carregar para memria o comando, passar-lhe todas as opes e nomes de ficheiros e esperar que o comando termine. Enquanto o comando processado pelo sistema operativo a shell fica bloqueada.

LOCALIZAO DOS COMANDOS Um comando um ficheiro no sistema de ficheiros e como tal, para ser executado, necessrio que este seja localizado previamente. Contudo esta localizao no uma preocupao do sistema operativo Linux mas sim da shell. A shell responsvel por encontrar os comandos pelo que necessrio um mecanismo que possibilite que ela obtenha tal informao. Para encontrar comandos a shell recorre a uma lista de directrios onde deve ir procurar os comandos. A essa lista chama-se path e est armazenada numa varivel de ambiente com o mesmo nome. A pesquisa de um comando efectuado sequencialmente na path; caso no seja encontrado a shell reporta que no encontrou o comando (Command not found.), o que no significa necessariamente que este no existe, mas apenas que no se encontra em nenhum directrio da lista. No caso de se indicar o

pathname completo, por exemplo /bin/ls l, a shell no vai recorrer varivel path. METACARACTERES DE EXPANSO A maioria dos comandos que operam com ficheiros pode faz-lo com vrios ficheiros ao mesmo tempo. Se os ficheiros esto relacionados ou tm nomes semelhantes (Ex.: capitulo1, capitulo2, etc.) pode tirar-se partido de tais padres de semelhana recorrendo a metacaracteres de expanso. O comportamento da shell quando encontra um metacaracter o seguinte:
1. 2. 3. 4. Retira a palavra com o metacaracter. Procura ficheiros no sistema de ficheiros que correspondem ao padro. Constri um lista com esses ficheiros. Introduz a lista no lugar da palavra que continha o metacaracter.

De seguida explico os metacaracteres mais comuns.


ASTERISCO ( * )

Este caracter especial de expanso pode ser usado em qualquer posio de um nome ou pathname e representa zero ou mais ocorrncias de qualquer caracater.
Ex: Ub*tu pode equivaler a: ubuntu, ubuah4tu, ubkdhyaks57384tu

PONTO DE INTERROGAO ( ? )

Tambm pode ser usado em qualquer posio de um nome de um ficheiro ou pathname, mas apenas representa uma ocorrncia de um qualquer caracter.
Ex: ubuntu? pode representar ubuntup, ubuntuz, ubuntu1, ubuntu5

PARNTESIS RECTO ( [ ] )

Tambm podem ser usados em qualquer posio de um nome de um ficheiro ou pathname, mas apenas representa uma ocorrncia de um caracter que conste entre os parntesis rectos.
Ex: ubuntu[123] representa: ubuntu1, ubuntu2, ubuntu3

Este conceito tambm pode ser utilizado para representar intervalos de letras ou nmeros, recorrendo a um hfen para representar um intervalo. Por exemplo, todas as letras minsculas podem ser representadas por [a-z], como analogamente todos os nmeros, ou apenas parte de um intervalo de letras ou nmeros, por exemplo [5-15].
CHAVETAS ( { } )

Este modo semelhante ao anterior, contudo permite que sejam definidos no apenas um conjunto de possibilidades para um caracter mas um conjunto de possibilidades para vrios conjuntos de caracteres, em que cada conjunto est separado dos restantes por vrgulas.
Ex: {k,u,f,x}buntu representa kubuntu, ubuntu, fubuntu, xubuntu

TIL ( ~ )

Este caracter especial de expanso representa o pathname completo do homedirectory do utilizador.


OS CARACTERES DE "DISFARCE" ( \ , " ", ' ' )

Se por qualquer razo no se pretender que a shell interprete e substitua os metacaracteres com

significado especial deve-se recorrer a caracteres de "disfarce. Assim:


\ - retira o significado ao caracter seguinte " " - retira o significado a todos os caracteres entre as aspas, excepto aos caracteres $, e \ ' ' - retira o significado a todos os caracteres entre as plicas

Comandos bsicos ls [-al]: listagem do diretrio. cp [-ir]: copiar arquivos. mv [-i]: mover ou renomear arquivos. rm [--]: deletar arquivos. mkdir/rmdir: cria/deleta diretrios. ln -s path link: cria links simblicos (symlinks) para arquivos ou diretrios. Outros comandos file: determina o tipo do arquivo (/etc/magic). cat: exibe o contedo do arquivo na tela. head / tail: exibe linhas no inicio / fim do arquivo. less / more: lista o contedo do arquivo. man filename: manual online do programa. ctrl+alt+del/reboot: reinicia o sistema. shutdown -h now/halt: desliga o computador. Combinaes CTRL+C: sai (kill) do programa. CTRL+ALT+BackSpace: sai (kill) do servidor X. CTRL+L: limpa a tela. CTRL+A / E: move o cursor para o incio / fim da linha. CTRL+U / K: deleta da posio do cursor at o incio / fim da linha. CTRL+H: deleta palavra anterior ao cursor. CTRL+R: busca comando digitado no history do bash. CTRL+D: logout (para isto altere ou unset a var. $IGNOREEOF). Mais no terminal stty -a: lista configuraes do terminal. reset: reseta o terminal (volta ao normal). (SHIFT)PGUP/PGDN: barra de rolagem do bash. TAB: auto-completa os comandos digitados no terminal. MOUSE2/3: cola o texto selecionado (gpm). CTRL+S (Scroll Lock): desabilita o vt. CTRL+Q (Scroll Lock): habilita o vt (tente isto caso o terminal trave). ALT+Fx: muda de console. CTRL+ALT+Fx: muda de console em modo grfico. Usurios w: informaes gerais sobre usurios logados e seus processos. who: informaes dos usurios atuais (do utmp) last: listagem do histrico de logins (/var/log/wtmp) lastlog: retorna informaes sobre ltimos logins.

Processos : suspende o processo temporariamente. top: os processos que consomem mais recursos do sistema. jobs: lista as tarefas rodando em fore/background. bg/fg: manda processo para o back/foreground. nice/renice: altera prioridades. ps -auxw: lista todos os processos do sistema: PID (process id), TTY (terminal ou ? caso seja um daemon), STAT (estado do processo), TIME (tempo de CPU consumido), COMMAND (o comando executado). pstree -p: idem. time: calcula o tempo decorrente do incio ao trmino de um processo. # time updatedb real 1m42.233s user 0m0.490s sys 0m10.290s Matando processos kill: as opes mais comuns so (onde id o mesmo que PID): kill -HUP id-do-processo: reinicia processo. kill -9 id-do-processo: mata processo. killall processo: mata processo pelo nome. killall -HUP processo: reinicia processo pelo nome. Sistema df -h (espao livre e ocupado nos discos) du -sh(x) (espao ocupado pelo diretrio e seus subdiretrios) Informaes do sistema: free: status da memria e swap. vmstat: status da memria virtual (processos, cpu). lsdev, lspci: listagem do hardware/dispositivos pci. pnpdump: retorna configurao das placas ISA PnP. lsmod / rmmod: lista/remove mdulos na memria. procinfo: cat /proc ;) Informaes do ambiente X: xdpyinfo: recursos do servidor X. showrgbq: retorna a database de cores rgb. xlsfonts: lista as fontes reconhecidas pelo X. xset m 5/2 1: ajusta a velocidade e acel. do mouse. Rede Listando processos listening na porta 80 e seus PIDs lsof -n -i:80 (-i4: ipv4 e -n: sem resolver hostnames) fuser -v 80/tcp (lista processos que escutam na porta tcp 80 em modo ps-like) Pipes e Redirecionamentos... Atravs de 'pipes', a sada de um comando (stdout [file descriptor 1]) passada como a entrada (stdin) do outro. Em geral, a sada o terminal e a entrada o teclado. Exemplos: dmesg | less ; ls -l | more echo "Broadcast Message" | wall Atravs de '<' e '>' possvel definir qual ser o stdin e o stdout. Exemplos: dmesg > dmesg.txt ; more < dmesg.txt ls -l /tmp >> list.txt (concatena) O sinal de maior equivalente ao comando tee. E para alterar o stderr (mensagens de erro [file descriptor 2]):
CTRL+Z

ls /admin > list.txt 2>erros.txt (se o diretrio no existir, o stderr ser o erros.txt e o stdout o list.txt) ls /admin > list.txt 2>&1 listagem_e_erros.txt (se houver, erros sero repassados para o mesmo local que o stdout) Operadores Lgicos &&: 'e' (retorna true se todas as expresses forem verdadeiras) ||: 'ou' (retorna true se uma das expresses forem verdadeiras) O sinal ';' executar ambas as expresses independente do retorno. Por exemplo: make ; make install (os comandos sero executados em sequncia) make && make install (o segundo comando somente ser executado se o primeiro no retornar erro) Permisses As permisses dos arquivos so definidas atravs dos comandos chmod, chown e chgrp. Estrutura do comando: chmod ou="" diretorio=""

Ao listar as informaes de um arquivo ou diretrio, o formato o seguinte: drwxrwxrwx. Respectivamente: diretrio (d), permisso do dono (read/write/execute), do grupo (read/write/execute) e de outros (read/write/execute). Por exemplo, para transformar um arquivo em executvel: chmod +x nome_do_arquivo (executvel para todos) chmod g+x nome_do_arquivo (executvel para o grupo) Para alterar o usurio e o grupo de um arquivo ou diretrio: chown root.root /sbin/firewall.sh (-R: recursivamente) Outros exemplos: chmod 755 (executvel): -rwxr-xr-x chmod 4700 (suid) set user id para programas que precisam rodar com permisso de root: -rws-----Para calcular o valor numrico das permisses, basta considerar o valor do executavel como 1, de escrita como 2 e de leitura como 4, que seria o equivalente decimal aos bits: rwx = 111 (todos bits ligados) = 2**2 + 2**1 + 2**0 = 7 Dessa forma, uma permissao de leitura e escrita (4+2) para o owner, e de leitura apenas para os outros teria o valor 644. Para calcular a umask, que seria a mscara de permisso aplicada na criao de um novo arquivo, basta ento subtrair 666 (ou 777 para diretrios) resultando em umask 022. Como se encontrar no sistema

Localizar arquivo por nome: find [path...] -name [nome_do_arquivo] find . -name slackware.png find / -name "*.png" -print (arquivos png do dir. atual) find /home -size +5000k -print (arquivos com mais de 5Mb) Local de um binrio: whereis (ou which) [nome_do_arquivo] which gcc gcc: /usr/bin/gcc Criar um banco de dados com o local dos arquivos (para busca imediata) updatedb Para pesquisar: (s)locate [nome_do_arquivo] Localizar texto em arquivo: grep [param] [texto] [arquivo] grep -ni man /var/log/packages/grep.tgz (-i : case insensitive, -n : nmero da linha) (use ' '(aspas simples) no [texto] para procurar palavra exata.) ls -l | grep '^-..x' (lista executveis) ls -l | grep '^d' (lista diretrios - '^' indica a primeira letra da linha) Outros: cd - : alternar entre diretrios pwd: listar caminho atual Verificando integridade de um arquivo: sum: retorna checksum (16-bit) e nmero de blocos de cada arquivo.

$ sum arquivo.tar.gz cksum: retorna CRC checksum e bytes de cada arquivo. $ cksum *.tar.gz > cksums md5sum: retorna o MD5 checksum (128-bit) do arquivo, e verifica a consistncia. $ md5sum --check MD5SUMS Operaes com texto: comm/diff: compara dois arquivos. ispell: verficador ortogrfico (-d br: dicionrio em portugus). sort: ordena em ordem crescente, alfabtica, etc. uniq: remove linhas duplicadas. cut: retorna area delimitada (-c5: quinto caracter). wc: conta linhas, palavras e bytes. fold: ajusta o texto para a largura especificada. nl: numera as linhas de um arquivo. fmt: reformata as linhas de um arquivo. expand/unexpand: converte tabs em espaos e vice-versa. tr: remove e substitui caracteres (-d a-d para remover as letras entre a-d, tr a-d A-D para torn-las maisculas). Alterar data do sistema: $ date 0109143001 (09/01/2001 14:30) $ date -s "mm/dd/aaaa hh:mm:ss" Criando aliases Adicionar arquivo de alias (ex: aliases.sh) em /etc/profile.d/ chmod 755 aliases.sh
# exemplo de script alias.sh # System wide functions and aliases alias cdrom.on="mount /dev/hdd /mnt/cdrom" alias cdrom.off="umount /dev/hdd" alias zipdisk="mount -t vfat /dev/hdb4 /mnt/zip" alias rm="rm -i" alias x="startx -- -nolisten tcp"

Criando arquivos compactados tar.gz possvel criar tarfile (tarball) da seguinte forma: tar -c file1 file2 > foo.tar Para 'zipar' o tar a mesma coisa: gzip -c file1 file2 > foo.tar.gz Ou ento: tar -cvzf diretorio.tar.gz diretorio/ tar.bz2 Troque o 'z' pelo 'j' para criar arquivos bzip2. tar -jxvf arquivo.tar.bz2 (descompactanto bz2) zip zip -r filename.zip files

Screenshots import -w root tela.jpg xwd > tela.xwd O editor vi(m) a / i: adiciona texto (append/insert). y / p: copiar e colar (copy/paste). x: deletar letra. /: buscar palavra (n: next N: prev). u: desfazer (undo). v: selecionar texto (visual). :edit file: cria novo buffer. :ls: lista buffers. :buffer N: edita buffer N. :bdelete: deleta buffer. :so \$VIMRUNTIME/syntax/2html.vim: converte source em html. :ab SW slackware: cria abreviao (abclear: remove abs.) map :qa! : mapeia tecla (adicione em .vimrc) Para gravar digite ESC seguido por :wq (write and quit), :q! (sair sem gravar) ou :qa! (fechar todos). Outros utilitrios no console whatis/apropos: descrio do programa. bc: calculadora (ex: echo "scale=2;1/10"|bc //scale so as casas decimais). nano: editor de texto simples (nano-editor.org). jed: editor de texto para programadores. mc: o midnight commander. Magic SysRq! Para situaes onde no temos acesso ao sistema via ssh/telnet, a combinao ALT + SysRq/PrintScrn + X pode ser muito til. Ex: ALT + SysRq + ... k: mata o VC atual; e: sigterm (exceto ao init); i: sigkill (exceto ao init) Para reiniciar o sistema de forma segura, digite na sequncia:
Alt+SysRq S

(sync), Alt+SysRq U (unmount), Alt+SysRq B (reboot)

No terminal, os processos sero descritos, portanto apenas siga para o prximo passo aps o trmino do primeiro.

Vous aimerez peut-être aussi