Exercícios - Shell Scripting
Criada por: Frederico Madeira, última modificação em: Wed 16 of Nov, 2011 (01:19 UTC)
1. Faça um script que retorne o dia da semana e o mês por extenso, conforme abaixo:
script: data_extenso.sh
Obs: use o comando date para obter os valores numéricos e if para comparar e exibir os valor literal
Resposta:
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:
Resposta:
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
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:
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:
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