Quelles sont ces lignes de sortie supplémentaires dans bash?

9

C'est pendant un certain temps que ces lignes peuvent être vues après l'exécution d'une commande (au hasard):

[1]-  Done                    wget -c http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html
[2]+  Done                    ts=1460659842

La première ligne est la commande elle-même et cela ne se produit pas toujours. Mais de temps en temps, une application de ligne de commande s'arrête sans revenir à la ligne de commande, jusqu'à ce que j'appuie sur Entrée; qui montre ces lignes.

Mon système ne s'est comporté comme ça que la semaine dernière. Est-ce un problème?

Kaveh Shahbazian
la source

Réponses:

20

Vous avez probablement lancé une commande comme celle-ci:

wget -c http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html&ts=1460659842&something-else

Cette commande contient le caractère spécial &, qui est utilisé pour exécuter plusieurs processus simultanément . Cette commande est interprétée comme trois commandes (ou plus):

# First command (the one that you see after [1]):
wget -c http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html
# Second command (the one that you see after [2]):
ts=1460659842
# Third command (the one which output should be above the "Done" lines):
something-else

Voici un exemple qui peut vous aider à mieux comprendre:

# Here I'm launching three 'echo' commands, the first two in background, the third in foreground
andrea@andrea-laptop:~$ echo first & echo second & echo third
[1] 5033    # This is bash telling me that the first process was started with job number 1 and PID 5033
first       # This is the output from the first process
[2] 5034    # This is bash telling me that the second process was started with job number 2 and PID 5034
third       # This is the output from the third process
second      # This is the output from the second process
andrea@andrea-laptop:~$ 
[1]-  Done                    echo first    # This is bash telling me that the first background job has quit
[2]+  Done                    echo second   # This is bash telling me that the second background job has quit

Vous devez citer correctement les URL pour éviter cela et d'autres effets désagréables:

wget -c 'http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html&ts=1460659842&something-else'
Andrea Corbellini
la source
6
Encore une autre raison pour laquelle vous ne devriez jamais copier-coller aveuglément des commandes de terminal ... Quelqu'un pourrait créer une URL someurl.com/index.php&malicious-command- ici et les gens l'exécuteraient et casseraient leur système.
Nzall