Controllo dei job (bg, fg, jobs)
Impari a gestire i processi in background e in primo piano, mettendo in pausa, riprendendo ed elencando i job nella sessione della shell.
Controllo dei job (bg, fg, jobs) è una lezione Linux Command Line & Bash Scripting Mastery gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Linux Command Line & Bash Scripting Mastery, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Linux Command Line & Bash Scripting Mastery include 4 lezioni in totale.
Che cos’è il controllo dei job?
Benvenuto nel controllo dei job! Questa potente funzionalità della shell Linux consente di gestire i programmi in esecuzione senza chiudere il terminale né aprirne altri.
Lo si può considerare come una forma di multitasking per la riga di comando. È possibile mettere in pausa un’attività, spostarla in background o riportarla in primo piano.
Primo piano e background
Quando esegue un comando, questo viene normalmente eseguito in primo piano. Ciò significa che prende il controllo del terminale e che non può digitare nuovi comandi finché non termina.
Un processo in background, invece, viene eseguito in modo indipendente. Lascia libero il terminale, così può continuare a lavorare su altre attività mentre il processo viene eseguito.
Mettere in pausa un processo (Ctrl+Z)
Per mettere in pausa un processo in primo piano attualmente in esecuzione, usi la scorciatoia da tastiera Ctrl+Z. In questo modo invia un segnale SIGTSTP, sospendendo il processo.
Il processo non viene terminato: diventa un job «stopped», in attesa che gli indichi cosa fare.
Visualizzare i job (jobs)
Dopo aver messo in pausa un processo (o averne inviato uno in background), può visualizzare l'elenco di tutti i job attivi nella sessione corrente della shell usando il comando jobs.
Ogni job riceve un numero univoco (come [1], [2] e così via) e il relativo stato (ad esempio, Stopped o Running).
sleep 50 &
sleep 60 &
jobsPortare in primo piano (fg)
Se ha un job sospeso o in background, può riportarlo in primo piano usando il comando fg, seguito dal numero del job (ad esempio, %1).
In questo modo il job torna a essere il processo attivo nel terminale.
sleep 100 &
jobs
# Now, let's bring it to foreground
fg %1Inviare in background (bg)
Per riprendere un job stopped e inviarlo in background, usi il comando bg con il relativo numero del job.
Il processo continuerà a essere eseguito senza bloccare il terminale e il prompt sarà nuovamente disponibile immediatamente.
sleep 200
# Press Ctrl+Z to stop it
# Then type:
bg %1
jobsEseguire in background ( & )
Non è sempre necessario avviare un processo in primo piano e poi metterlo in pausa. Può avviare un comando direttamente in background aggiungendo una e commerciale (&) alla fine del comando.
È particolarmente utile per le attività di lunga durata con cui non deve interagire.
echo "Starting long task..." &
sleep 300 &
jobsNumeri dei job e PID
Quando usa jobs, visualizza numeri di job come [1] e [2]. Questi numeri sono specifici della sessione della shell.
Ogni processo in esecuzione ha anche un Process ID (PID) univoco, ovvero un numero valido a livello di sistema. Può visualizzare i PID con jobs -l o ps.
sleep 100 &
jobs -lTerminare i job (kill)
Per terminare un job in background o sospeso, può usare il comando kill. Può specificare il numero del job (ad esempio, kill %1) oppure il relativo PID (ad esempio, kill 12345).
kill invia un segnale al processo. Per impostazione predefinita, il segnale è SIGTERM (terminazione regolare). Per una terminazione forzata, usi kill -9 %job_number o kill -9 PID.
sleep 500 &
jobs
# Assuming sleep is job 1:
kill %1
jobsQuiz sul controllo dei job
Ha avviato un comando di lunga durata (ad esempio, find / -name *.txt), ma ora ha bisogno di riottenere il terminale per digitare un altro comando. Qual è la sequenza corretta per mettere in pausa il comando find, inviarlo in background in modo che continui a essere eseguito e poi verificare che sia un job in background?
Riepilogo: controllo dei job
Ha imparato a gestire i job.
Ctrl+Zmette in pausa un processo in primo piano.jobselenca tutti i job attivi.fg %Nporta il jobNin primo piano.bg %Ninvia il job sospesoNin background.- Aggiungendo
&, esegue direttamente un comando in background. kill %Nokill PIDtermina un job.
In questo modo può gestire più attività in modo efficiente all'interno di un'unica sessione del terminale.
Domande Frequenti
La lezione «Controllo dei job (bg, fg, jobs)» è gratuita?
Sì — il testo completo di «Controllo dei job (bg, fg, jobs)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Linux Command Line & Bash Scripting Mastery, passa a CoddyKit PRO. Il corso Linux Command Line & Bash Scripting Mastery include 4 lezioni in totale.
Cosa imparerò in «Controllo dei job (bg, fg, jobs)»?
Impari a gestire i processi in background e in primo piano, mettendo in pausa, riprendendo ed elencando i job nella sessione della shell. Eserciti Linux Command Line & Bash Scripting Mastery con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Linux Command Line & Bash Scripting Mastery?
Non è richiesta alcuna esperienza precedente. Linux Command Line & Bash Scripting Mastery su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Controllo dei job (bg, fg, jobs)»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Linux Command Line & Bash Scripting Mastery?
Sì. Ogni lezione Linux Command Line & Bash Scripting Mastery include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Controllo dei job (bg, fg, jobs)
- Espansione della shell e globbing
- Alias e prompt personalizzati
- Funzioni della shell e snippet riutilizzabili