Mostrando postagens com marcador debian. Mostrar todas as postagens
Mostrando postagens com marcador debian. Mostrar todas as postagens

domingo, 24 de abril de 2011

Matando processos (encerrando programas que não respondem)

Boa noite a todos,

Trago algo bacana que aprendi esses dias.

Algumas vez você deve ter se deparado com algum programa que, após algum tempo de uso, travou sem mais, nem menos. Simplesmente a janela ficou acinzentada e nada era processado. Isso é comum em programas em fase de testes. Recentemente aconteceu comigo quando testava o novo emesene http://emesene.org/.

O que poderia ser feito?

O comando ps, seguido dos parâmetros aux

$ ps aux (Mais detalhes, acesse ao manpage através do comando man ps)

exibe os processos atualmente sendo executados.

Agora, você pode filtrar por um termo que esteja buscando, utilizando um pipe | seguido por um filtro, com o auxílio do grep. No meu caso, emesene, assim:

$ ps aux | grep emesene

Caso o comando encontre o processo em execução, no caso o do programa emesene, então, serão retornadas duas linhas. A primeira com o processo referente ao emesene. A segunda, referente ao comando executado há pouco.

Para que apenas o primeiro seja exibido, você pode ainda utilizar o comando head com o parâmetro -n 1, que quer dizer, exibir apenas as -n primeiras linhas. No caso, apenas 1 linha:

$ ps aux | grep emesene | head -n 1

Agora, utilizando o comando cut, podemos "cortar" a linha retornada em diversas colunas, segundo algum "critério separador". Na verdade, delimitador, identificado pelo parâmetro -d. Vamos utilizar o espaço em branco: -d ' '. Em seguida, é preciso informar que coluna(s) deseja exibir, com o parâmetro -f. Se fornecermos o parâmetro -f 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, o comando irá exibir as colunas 1, 2, ..., 10 do texto retornado. No nosso caso, o número do processo será encontrado na coluna 4. Então, precisamos apenas de -f 4. Veja como fica agora

$ ps aux | grep emesene | head -n 1 | cut -d ' ' -f 4

Esse comando retorna apenas o número do processo referente ao programa emesene.

Poderíamos atribuir a saída deste comando a uma variável:

$ processo=`ps aux | grep emesene | head -n 1 | cut -d ' ' -f 4`

ou

$ processo=$(ps aux | grep emesene | head -n 1 | cut -d ' ' -f 4)

Se você, neste momento, solicitar ao terminal que exiba o conteúdo da variável que acabou de criar, chamada processo, com o comando

$ echo $processo

Então, será exibido o número do processo armazenado por esta variável.

Agora, podemos chamar o comando kill, seguido do processo que desejamos matar.

$ kill $processo

Não sei aí, mas aqui, o emesene "morreu", encerrou, fechou, ou como queira chamar =)

Uma maneira mais rápida, mas não tão eficiente, de encerrar um processo pode ser feito utilizando o comando killall, cuja função é matar um processo, recebendo um nome como parâmetro. Dessa forma, nosso comando ficaria simplesmente assim:

$ killall emesene

Mas por que cargas d'água eu não disse isso antes? É que eu queria mostrar através do exemplo, outros comandos, que podem ser úteis, como o cut, o head, o grep, assim como diversos outros.

É importante se familiarizar com alguns comandos do GNU/Linux, pois eles podem te salvar, em situações em que, por exemplo, você não soubesse que, clicando com o botão direito no painel superior, no GNOME, e em seguida, Adicionar ao Painel, existe um applet (procure algo como force quit ou forçar...), que, quando você clica nele, é possível encerrar algum programa clicando em seguida no programa. Entendeu? Enfim, era isso...

Até a próxima

sexta-feira, 1 de abril de 2011

Adicionando um novo usuário via terminal

Quando um determinado computador é utilizado por mais de uma pessoa, é ideal optar pela criação de novos usuários, para que cada usuário tenha seus próprios arquivos pessoais e mantenha suas preferências, armazenadas em seu perfil. Então, vamos aprender como utilizar a linha de comando do GNU/Linux para inserir um novo usuário no sistema.

Após ter adicionado seu usuário ao grupo sudo, permitindo executar comandos com o sudo antecedendo o comando desejado, vamos aprender como adicionar um novo usuário no sistema.

Abra o terminal digite

user@host:~$ sudo adduser nome

substituindo "nome" pelo nome do novo usuário. Habitue-se a utilizar o comando man comando (por exemplo man adduser). Isso deve ajudá-lo a compreender melhor o funcionamento e a utilização de determinado comando.

Em seguida será solicitada uma senha UNIX. Forneça uma senha para o novo usuário. Após, confirme a senha. Você pode avançar sem definir uma senha, no entanto, o novo usuário só poderá ser acessado se for definida uma senha para ele. Em seguida, podem ser fornecidas mais informações sobre o novo usuário, como o nome completo, dentre outras. E por fim, irá perguntar se as informações estão corretas. Caso haja algum erro e queira alterar alguma informação, digite 'N' seguido de ENTER. Caso contrário, basta pressiona ENTER, pois 'Y' é a resposta padrão para esta pergunta (observe o Y em maiúsculo no terminal).

Após confirmado, o novo usuário terá sido criado e, por padrão, um sub-diretório de mesmo nome do usuário terá sido criado no diretório /home/. Execute o seguinte comando

user@host:~$ ls /home

para visualizar os diretórios que existem em /home/. Na verdade, o comando lista os arquivos visíveis de /home. E como no UNIX tudo é um arquivo, um diretório não deixa de ser também um.

Para alternar do seu usuário para o novo usuário, execute o comando

user@host:~$ su nome

Em seguida será solicitada a senha do usuário nome.

Para sair e retornar ao seu usuário digite o comando exite, ou simplesmente combine as teclas CTRL+D.

Esta é mais uma dica pra você que está iniciando no mundo GNU/Linux. Neste blog procuro repassar meus conhecimentos adquiridos de forma didática. Caso surja alguma dúvida ou queira comentar este artigo, deixe um comentário que procurarei responder o mais breve possível.

Obrigado pela atenção.

sábado, 26 de março de 2011

Adicionando usuário no grupo sudo (Como habilitar o sudo)

Após a instalação da distribuição Debian, o usuário criado, por padrão, não possui privilégios de administrador. Ou seja, para efetuar alguma alteração que necessite de tais privilégios, deve-se alternar para o usuário root. No entanto, como alguns usuários do Ubuntu pode ter observado, é possível adquirir nível de administrador usando a palavra sudo imediatamente antes do comando. Por exemplo, sudo reboot (comando para reiniciar o sistema).
Para que isso também seja possível no Debian, ou até mesmo em um novo usuário no Ubuntu, é necessário que o usuário pertença ao grupo sudo. Mas antes, o programa de mesmo nome precisa estar instalado. E como fazer para saber se este programa está instalado?

user@host:~$ which sudo

Se estiver instalado, algo parecido com /usr/bin/sudo será exibido. Caso nada apareça, quer dizer que não está instalado. Mas como instalá-lo?

Alterne para root através do comando:

user@host:~$ su

Em seguida, forneça a senha do root.

Após, você poderá executar o comando para realizar a instalação:

root@host:/home/user# apt-get install sudo

Em seguida, é preciso inserir o usuário, que chamarei de user, ao grupo sudo:

root@host:/home/user# addgroup user sudo

Feito isso, reinicie o computador ou simplesmente reinicie a sessão para o usuário. E então, será possível realizar tarefas de administrador utilizando o sudo, conforme você aprendeu lá no Ubuntu.