Eu deletei minha área de trabalho e tudo congelou. O que eu fiz?

3

Então, eu estava brincando com uma experiência de disco ao vivo (usando um HHD externo como um disco ao vivo) e fiz um script que fez 9.023 diretórios na minha área de trabalho antes que eu pudesse pará-lo. Sendo o noob eu sou eu corri este comando para limpar minha bagunça:

rm -rf Desktop 

Em seguida, criei uma nova pasta chamada Desktop no meu diretório inicial. Meu computador funcionou bem por alguns segundos, então tudo, mas meu mouse congelou. Felizmente foi tudo em um disco ao vivo, então nada foi perdido, mas eu gostaria de saber o que eu realmente fiz.

Eu tentei google "ubuntu delete desktop diretório" e outras variações, mas tudo que eu consegui foi pessoas tentando se livrar dele, não trazê-lo de volta.

EDIT: houve algum interesse na bomba que eu corri. Não ria:

while true; do
for i in a; do
declare b=b+1
mkdir "$b" 
done
done

Eu meio que adivinhei o que isso faria, mas eu estava acostumada a trabalhar com Python, onde eu poderia matá-lo rapidamente antes que ele saísse do controle.

Para qualquer outra pessoa que leia isso em algum momento no futuro: não execute essa fork fork, ela faz uma bagunça.

P.S. Antes de você dizer o quão estúpido foi para mim fazer isso em primeiro lugar, por favor, note que eu estava em um disco ao vivo que foi reservado apenas para o propósito de fazer coisas assim para que eu possa aprender.

    
por unknown 31.10.2015 / 21:08

2 respostas

5

É bom que você tenha feito isso com um Live USB ou tenha perdido alguns dados, quase certamente. Limpar depois disso seria uma enorme perda de tempo.

Primeiro, você executou o que é conhecido como uma bomba garfo. Uma fork fork é um comando simples, muitas vezes ofuscado, que continuará gerando novos processos, pastas ou arquivos até ocupar espaço em disco, consumir ciclos de CPU ou consumir toda a RAM. Isso resulta no congelamento do computador porque não possui mais recursos para fornecer.

Em segundo lugar, você excluiu seu DE (ambiente de área de trabalho), que é o que você vê, os gráficos com os quais você interage, as janelas abertas (mais ou menos: há um gerenciador de janelas, mas vamos ignorar isso por enquanto) . Basicamente, você matou tudo o que você poderia clicar.

É bom aprender. Use o seu mecanismo de busca favorito antes de digitar comandos no terminal. Sempre, sempre saiba o que o comando faz antes de pressionar ENTER . Eu não posso enfatizar isso o suficiente. Existem pessoas que intencionalmente enganam você. O terminal é uma ferramenta potencialmente poderosa. É a sua melhor ferramenta na sua caixa de ferramentas, mas, como todas as ferramentas, ela deve estar empunhando com cuidado.

Se você nos disser qual era o comando, para a bifurcação, poderíamos digerir isso e dizer exatamente o que aconteceu e por quê. Você parece um tipo curioso, então talvez você também gostaria de aprender isso?

Editar:

Você agora incluiu o código para sua bomba no garfo. Eu vou incluir isso para a próxima pessoa a vir junto. Se você olhar para ela e analisar a lógica, você pode ver que ela está dizendo que, enquanto uma condição sair (é verdadeira), faça alguma coisa (faça um diretório enumerado) e, porque não há nada dizendo para parar (um loop), ele continuará até que os recursos sejam consumidos, a RAM seja consumida ou até que haja apenas algum tipo de colisão que faça as coisas congelarem. (Isso pode ser todo tipo de vazamento de memória, mas isso provavelmente não é um fator aqui.)

Pelo som das coisas, ou pelo que estou lendo, parece que você fez um ótimo trabalho. Este é um aviso claro para os outros, para não executar o seu código (você deve adicionar isso ao seu post com a função de edição ou outra pessoa pode, se você quiser). Foi criativo. Eu não acho que eu já tenha visto isso feito dessa maneira, mas a teoria é praticamente a mesma com todos eles. Novamente, para outros, isso pode estar oculto em código ofuscado ou código que você simplesmente não entenderá se não souber como analisar Perl (como um exemplo). Este é um bom exemplo do que não fazer.

Eu ouso dizer, você deve terminar de instalá-lo e se divertir um pouco mais. Apenas mantenha bons backups.

    
por KGIII 31.10.2015 / 22:11
0

Reinicializar, recriar o diretório da área de trabalho a partir de um console virtual e fazer login na área de trabalho novamente deve corrigi-lo. Seu computador travou porque você executou uma bifurcação ou porque seu diretório da área de trabalho desapareceu enquanto seu ambiente de trabalho estava tentando usá-lo, mas em ambos os casos minha correção sugerida irá consertá-lo (embora você tenha perdido o que estava na sua área de trabalho). / p>     

por Micheal Johnson 31.10.2015 / 22:36

Tags