Cos'è fg?

fg: Mandare un processo in foreground (primo piano)

Il comando fg in sistemi operativi Unix e Linux viene utilizzato per spostare un processo dal background al foreground. Questo significa che il processo assume il controllo del terminale, diventando interattivo e richiedendo input direttamente dall'utente.

Funzionamento:

  • Se viene eseguito senza argomenti, fg porta in foreground l'ultimo processo messo in background (ovvero, il processo più recente che è stato sospeso con Ctrl+Z o avviato con il comando bg).
  • Altrimenti, accetta un Job ID come argomento (spesso preceduto da %) per specificare quale processo portare in foreground. Il Job%20ID può essere ottenuto usando il comando jobs.

Sintassi:

fg [Job ID]
  • fg: Porta l'ultimo processo in background in foreground.
  • fg %n: Porta il processo con Job ID n in foreground.

Esempio:

  1. Avvio di un processo in background (ad esempio, sleep 100 &):

    sleep 100 &
    [1] 12345
    

    Dove [1] è il Job ID e 12345 è il Process ID (PID).

  2. Per portare sleep 100 in foreground:

    fg %1
    

    A questo punto, il processo sleep 100 sarà in foreground e potrai interagire con esso (anche se in questo caso non c'è interazione, semplicemente aspetterà 100 secondi).

Argomenti Importanti:

  • Job%20ID: Identificatore unico assegnato a un processo eseguito in background. È necessario per specificare quale processo riportare in foreground quando ci sono più processi in background.
  • Background%20vs.%20Foreground: La differenza fondamentale tra l'esecuzione di un processo in background (non blocca il terminale) e in foreground (blocca il terminale).
  • jobs: Comando che elenca tutti i processi in background, mostrando il loro Job ID e lo stato.
  • Ctrl+Z: Tastiera di scorciatoia che sospende (mette in background) un processo in esecuzione in foreground. Può essere successivamente riportato in foreground con fg.
  • bg: Comando che avvia un processo sospeso in background.
  • Processo: Un'istanza di un programma in esecuzione.

In sintesi: fg è uno strumento essenziale per gestire i processi in esecuzione in un ambiente a riga di comando, permettendo di passare facilmente tra processi in foreground e background e di controllare l'interazione con i programmi.