login
Fri 02 of Jun, 2023 (04:44 UTC)

[root@madeira.eng.br ~]#

Linux - It is now safe to turn on your computer

atualizar cache imprimir

Exercícios - Shell Scripting

Criada por: Frederico Madeira, última modificação em: Wed 16 of Nov, 2011 (01:19 UTC)
data_extenso.sh.txt
lista_processo.sh.txt
1. Faça um script que retorne o dia da semana e o mês por extenso, conforme abaixo:

script: data_extenso.sh

[labcst4@REC-LABCST0418 ~]$ data_extenso.sh
Hoje são 29 (sábado) do 10 (Outubro) de 2011


Obs: use o comando date para obter os valores numéricos e if para comparar e exibir os valor literal

Resposta:
data_extenso.sh.txt


2. O comando ps -aux nos mostra todos os processos que estão em execução na máquina. Faça um script que liste apenas os campos: dono do processo, PID e nome do processo.
O comando kill -9 PID é utilizado para matar(encerrar) um processo em execução.
Ao final deste script, solicite que o usuário informe um PID de um processo a ser finalizado. Valide se aquele PID informado é válido e pergunte ao usuáro se ele realmene deseja finalizar aquele processo.
Veja exemplo abaixo:


[labcst4@REC-LABCST0418 ~]$ ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   2932  1396 ?        Ss   09:33   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    09:33   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    09:33   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S    09:33   0:00 [migration/0]
labcst4   1859  0.5  0.8 122680 17324 ?        Sl   09:34   0:07 gedit
root      1946  0.0  0.0  13828  1756 ?        Ss   09:39   0:00 sendmail: accepting connections
labcst4   1949  0.0  0.6 129908 13052 ?        Sl   09:40   0:00 gnome-terminal
labcst4   1952  0.0  0.0   2112   608 ?        S    09:40   0:00 gnome-pty-helper
labcst4   1953  0.0  0.0   5336  1724 pts/0    Ss   09:40   0:00 bash

[labcst4@REC-LABCST0418 ~]$ lista_processo.sh
root         {1}  /sbin/init
root         {2}  [kthreadd]
root         {3}  [ksoftirqd/0]
root         {4}  [migration/0]
labcst4   {1859}  gedit
root      {1946}  sendmail: accepting connections
labcst4   {1949}  gnome-terminal
labcst4   {1952}  gnome-pty-helper
labcst4   {1953}  ash


INFORME o PID A SER ENCERRADO: 1859
	Deseja realmente encerrar o programa gedit em execução pelo labcst4 ?


Resposta:
lista_processo.sh.txt


3. Faça um script que liste os usuários do sistema e informe o diretório home dele e o nome do grupo padrão. Se for passado um nome de usuário, executar o script apenas para ele. Se forem informados mais de um usuário como parâmetro, liste apenas para eles.

Dica: Os usuários estão no arquivo /etc/passwd e os grupos estão em /etc/group
[labcst4@REC-LABCST0418 ~]$ cat /etc/passwd
pulse:x:493:489:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
onde:
	pulse -> login
	489 -> GID - ID do grupo padrão deste usuário (existe em /etc/group)
	/var/run/pulse -> Diretório Home deste usuário
[labcst4@REC-LABCST0418 ~]$ cat /etc/group
pulse:x:489:
onde:
	pulse -> nome do grupo
	489 -> GID - ID deste grupo

Exemplo:
[labcst4@REC-LABCST0418 ~]$ lista_grupo.sh
pulse -> o grupo deste usuário é pulse e seu diretório home é em /var/run/pulse	

ou
[labcst4@REC-LABCST0418 ~]$ lista_grupo.sh pulse labcst4 root
pulse -> o grupo deste usuário é pulse e seu diretório home é em /var/run/pulse	
labcst4 -> o grupo deste usuário é labcst4 e seu diretório home é em /home/labcst4	
root -> o grupo deste usuário é root e seu diretório home é em /root

Comentários