Você está na página 1de 9

Blog do Beraldo

Sempre Berando o Conhecimento

Curso de Shell Script: Módulo #0 – Comandos Básicos do Linux

Este curso de Shell Script, divido em duas partes, tem por objetivo mostrar os principais conceitos do Bash, seus comandos mais utilizados e a teoria
sobre como criar scripts Shell.

Não adianta querer programar usando Shell Script sem conhecer os comandos básicos do Linux (muitos também presentes no Mac OS X). Por isso
este primeiro módulo (que chamei de Módulo #0) de curso de Shell Script abordará os comandos básicos do Bash, que são fundamentais para a
construção dos scripts Shell.

Em seguida, no Módulo #1 deste Curso de Shell Script, vou mostrar como criar scripts Shell, aplicando os conhecimentos mostrados aqui no Módulo
#0.

NOTA: O conteúdo deste post foi aprimorado e somado a diversos outros temas ligados à Programação usando Shell Script. Tudo isso resultou no
curso “Shell Script Para Programadores“. Conheço melhor o curso neste link.

Estrutura do Curso de Shell Script

Este curso de Shell Script está dividiso em dois módulos. São eles:

Módulo #0: Comandos Básicos do Linux: este módulo, onde mostro quais são os principais comandos do Bash (utilizáveis em Linux e Mac OS
X)
Módulo #1: Scripts Shell e suas estruturas: segundo módulo, onde mostro como estruturar scripts Shell, usando o conhecimento do Módulo
#0 do Curso de Shell Script

Conteúdo do Módulo #0 do Curso de Shell Script

Neste primeiro módulo, vamos analisar alguns comandos do Bash, os mais conhecidos e usados, juntamente com algumas de suas opções. A maioria
dos comandos permitem o uso de inúmeras opções, não sendo possível abordar todos elas neste texto.

Antes de iniciarmos, vale lembrar que os manuais de todos os comandos podem ser lidos usando o comando man nome_do_comando, por exemplo:
$ man echo

A maioria dos comandos também têm a opção -h, ou –help, que lista os parâmetros aceitos pelo programa.

Os comandos estão ordenados alfabeticamente, sem levar em consideração relevância ou complexidade de utilização.

Sumário

awk
cat
cd
chmod
cut
date
di
echo
nd
grep
head
kill
ls
printf
rev
scp
sed
seq
sort
ssh
tac
tail
top

awk

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua
matrícula, clique aqui
 

cat

Exibe o conteúdo de um arquivo.

Opções:
-n : numera as linhas

Exemplos:

$ cat /etc/hostname
orion

$ cat -n /etc/hostname
1 orion

cd

Muda o diretório de trabalho, ou seja, entra em um determinado diretório.

Exemplo:

$ cd /tmp

$ cd ~
chmod

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua
matrícula, clique aqui
 

cut

Separa trechos ou campos de uma linha, por meio de um delimitador. Também trunca textos, exibindo apenas um número especí co de caracteres.

Opções
-d : de ne o delimitador
-f : de ne o(s) campo(s) a ser(em) exibido(s)
-c : número do caractere a ser exibido ou intervalo de caracteres

Exemplos:

$ echo "um:dois:tres:quatro" | cut -d: -f 2


dois

$ echo "um:dois:tres:quatro" | cut -d: -f 2,3


dois:tres

Também é possível de nir intervalo de valores para a opção -f:

$ echo "um:dois:tres:quatro" | cut -d: -f 1-3


um:dois:tres

$ echo "um:dois:tres:quatro" | cut -d: -f 2-


dois:tres:quatro

$ echo "1234567890" | cut -c 7


7

$ echo "1234567890" | cut -c 1,3,5


135

beraldo@orion:~$ echo "1234567890" | cut -c 1-7


1234567

$ echo "1234567890" | cut -c 8-


890

beraldo@orion:~$ echo "1234567890" | cut -c -5


12345

date

Mostra a data atual ou uma data especí ca, com diversas opções para formatação da data.

Opções:
-d : especi ca a data (Ex: tomorrow, 5 days ago)
+%? : de ne o padrão de formatação da data. A lista de opções pode ser lida no manual do comando (man date).

Exemplos:

$ date
Dom Mai 1 20:05:47 BRT 2011

$ date -d "yesterday"
Sáb Abr 30 20:05:59 BRT 2011

$ date -d "2 days ago"


Sex Abr 29 20:06:10 BRT 2011

beraldo@orion:~$ date -d "2 days"


Ter Mai 3 20:06:13 BRT 2011

$ date +"%d/%m/%Y"
01/05/2011

$ date -d "30 days" +"Daqui 30 dias será %d/%m/%Y"


Daqui 30 dias será 31/05/2011

di

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua
matrícula, clique aqui
 

echo

Exibe um texto na saída padrão.

Opções:
-n : não pula linha no nal do texto
-e : interpreta caracteres de escape

Exemplos:

$ echo "sou \n um \n texto"


sou \n um \n texto

$ echo -e "sou \n um \n texto"


sou
um
texto

[cta id=’925′]

nd

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua
matrícula, clique aqui
 

grep

 
Este trecho do artigo está disponível apenas para alunos do meu curso Shell Script Para Programadores. Para conhecer melhor o curso e fazer sua
matrícula, clique aqui
 

head

Mostra o início de um arquivo. O limite pode ser estabelecido em número de linhas ou caracteres. É o inverso do comando tail.

Opções:
-n N : exibe as N primeiras linhas
-c N : exibe os N primeiros caracteres

Exemplos:

$ echo -e "olá, sou\num teste\npara o\ncomando head" | head -n 2


olá, sou
um teste

$ echo -e "ola, sou\num teste\npara o\ncomando head" | head -c 7


ola, so

kill
O comando kill “mata” processos, ou seja, encerra, ou força o encerramento, de um programa.

Opções:
-9 : força o encerramento da execução de um processo
-1 : mata todos os processos que o usuário pode matar

Exemplos:

Força o encerramento do processo 1234:

$ kill -9 1234

Encerra a sessão do usuário, ou seja, força o encerramento de todos os seus processos:

$ kill -1 -9

Os IDs dos processos (PID – Process ID) podem ser encontrados usando o comando ps, que é o gerenciador de processos. Com as opções “ux”, listam-
se os processos do usuário. Com grep podemos ltrar a saída pelo processo desejado:

$ ps ux | grep skype
beraldo 2267 1.0 2.0 281508 82968 ? Sl 09:58 0:41 skype
beraldo 5672 0.0 0.0 10128 848 pts/0 S+ 11:04 0:00 grep --color=auto skype

O skype é o processo 2267. Para forçar seu encerramento, fazemos:

$ kill -9 2267

Como lição de casa, vale ler os manuais dos comandos killall e pkill. :)

ls

Lista o conteúdo de um diretório.

Opções:
-a : lista arquivos e diretórios ocultos
-l : mostra diversos atributos dos arquivos e diretórios, como data de criação, dono, permissões etc
-R : lista o conteúdo recursivamente

Exemplos:

$ ls

$ ls -a

$ ls -l

$ ls -la

$ ls -laR

printf

Exibe um texto na tela, com várias opções de formatação, semelhante à função printf(), da linguagem C.

As opções de formatação são praticamente as mesmas da linguagem C. A lista completa pode ser vista no manual (man printf).

Exemplos:

$ printf "%x\n" 15
f

$ printf "%o\n" 7
7

$ printf "%o\n" 8
10
$ printf "%05d\n" 70
00070

$ printf "%.2f\n" 70
70,00

rev

Esse comando inverte uma string.

Exemplos:

$ echo "texto" | rev


otxet

$ echo "duh" | rev


hud

scp

Copia arquivos e diretórios via ssh, ou seja, cópia segura entre máquinas remotas.

Opções:
-r : cópia recursiva

Sintaxe:

$ scp [opções] maquina:origem destino


$ scp [opções] origem maquina:destino

Exemplos:

$ scp 192.168.0.100:~/arquivo.txt .

$ scp arquivo.txt 192.168.0.102:~

sed

Linguagem para edição de arquivos e textos. Veja um post exclusivo a ela aqui:

http://www.rberaldo.com.br/blog/o-comando-sed-do-linux/

seq

Exibe uma sequência de números.

Opções:
-s : separador (padrão “\n”)
-f : formato (padrão “%g”)

Exemplos:

$ seq 3
1
2
3

$ seq 3 5
3
4
5

$ seq 3 2 10
3
5
7
9

$ seq 10 -2 0
10
8
6
4
2
0

$ seq -s, 10 -2 0
10,8,6,4,2,0

$ seq -s, -f"%04g" 10 -2 0


0010,0008,0006,0004,0002,0000

sort

Ordena linhas de um texto, alfabética ou numericamente.

Opções:
-n : ordena numericamente
-r : ordena inversamente (de Z para A e de 9 para 1)
-f : case-insensitive
-k N : ordena pela coluna N do texto
-t : separador de coluna para a opção -k (padrão TAB)
-o : de ne um arquivo para a saída do comando

Exemplos:

$ echo -e "um\ndois\ntres\nquatro" | sort


dois
quatro
tres
um

$ echo -e "um\tdois\ntres\tquatro" | sort -k 2


um dois
tres quatro

$ echo -e "um\tdois\ntres\tquatro" | sort -k 2 -r


tres quatro
um dois

$ echo -e "1\n10\n100\n2\n20\n200" | sort


1
10
100
2
20
200

$ echo -e "1\n10\n100\n2\n20\n200" | sort -n


1
2
10
20
100
200

ssh

O SSH (Secure Shell) realiza acesso remoto a outras máquinas Linux. Um post exclusivo a SSH pode ser lido aqui:

http://www.rberaldo.com.br/blog/usando-o-ssh

tac

Inverso do comando cat. Exibe o conteúdo de um arquivo do m para o início.

tail

Exibe o m de um texto, exatamente o oposto do comando head


Opções:
-n N : número de linhas a exibir
-c N : número de caracteres a exibir

Exemplos semelhantes ao do comando head.

top

O comando top exibe os processos atualmente em execução. É semelhante ao ps, citado na seção do comando kill, mas atualiza-se automaticamente,
além de possuir várias opções de ordenação.

Exemplo:

$ top

O comando “htop” é mais completo e user-friendly, mas normalmente não vem instalado nas distros Linux. É possível instalá-lo via gerenciador de
pacotes. Por exemplo, em sistemas baseados em Debian:

# apt-get install htop

 Para Onde Ir Agora?

Após conhecer os comandos básicos, é possível juntar vários deles e montar scripts. Veja o Módulo #1 do Curso de Shell Script, onde mostro como
criar Shell Scripts. No Módulo #1 eu abordo as estruturas usadas em Shell Script, variáveis de ambiente e diversas outras técnicas avançadas para criar
Shell Scripts.

Para aprender mais sobre Comandos Linux e Shell Script, veja meu curso Shell Script Para Programadores.

Bio Latest Posts

Roberto Beraldo
Graduado em Ciência da Computação, pela Universidade Federal do Paraná (UFPR), é desenvolvedor de software desde 2008, com
foco em Desenvolvimento Web com PHP.

Seja Legal, Compartilhe:

    
Relacionado

Composer: o gerenciador de Como Atualizar Scripts PHP de MySQL Enviando E-Mails com a Classe PHPMailer
dependências para PHP Para MySQLi 26/01/2011
11/06/2015 29/10/2015 Em "PHP"
Em "Dicas" Em "MySQL"

Você Também Vai Gostar:


Curso de Shell Script – Módulo #1: Scripts Shell e suas estruturas
Principais Comandos do Editor Vim
nd: como encontrar arquivos no Linux
grep: como buscar em arquivos no Linux
O comando SED do Linux
CHMOD: Permissões em Sistemas Linux e Unix-Like
Tutorial AWK

Este post foi publicado em Linux, Programação, Shell Script (Bash) e marcado com a tag Bash, comandos, curso, Linux, script, Shell, Tutorial, unix em
06/05/2011 [http://rberaldo.com.br/curso-shell-script-comandos-basicos-linux/] .
Arktec Guarda
Documentos

Consultoria grátis
Ark Tec

Você também pode gostar