Tecniche di Amministrazione Linux: Gestione Processi, Priorità e Comandi Essenziali

Classificato in Informatica

Scritto il in italiano con una dimensione di 8,55 KB

Fondamenti di Amministrazione di Sistema Linux: Comandi Essenziali

Gestione di File e Directory

  • Comando per visualizzare le directory: find -type d o ls -l
  • Cartelle di sistema: La directory /dev memorizza i file dei dispositivi di sistema.
  • Come eliminare una cartella e il suo contenuto: Utilizzare rm -r (rimozione ricorsiva).

Gestione dei Processi (FG e BG)

Linux, come ogni sistema Unix, permette di eseguire più attività contemporaneamente. Nei sistemi monoprocessore, viene assegnato un tempo specifico a ogni attività in modo che all'utente sembri che stiano eseguendo contemporaneamente.

Esecuzione in Background (BG)

Per eseguire un programma in background, è sufficiente aggiungere il simbolo commerciale (&) alla fine della riga di comando.

Esempio:

# cp -r /usr/src/linux /tmp &

Dopo aver completato l'esecuzione del programma, il sistema riporta un messaggio di completamento:

[Fatto] cp -r /usr/src/linux /tmp

Spostare un Processo in Background

Se si fosse eseguito il programma senza il simbolo commerciale (&), si potrebbe spostarlo in background come segue:

  1. Sospendere l'esecuzione del programma premendo CTRL + Z.
  2. Eseguire il comando: bg

Comandi jobs, fg e bg

Quando si esegue un comando sulla console, si attende il completamento del processo avviato. Possiamo avviare l'esecuzione e restituire immediatamente il controllo alla console utilizzando l'operatore & al termine del comando.

[utente@host ~]$ firefox &
[1] 23710
[utente@host ~]$

Se l'applicazione non fosse stata avviata in background, la console sarebbe bloccata fino alla chiusura dell'applicazione. Possiamo vedere i processi in esecuzione in background su quella console con il comando jobs.

[utente@host ~]$ jobs
[1] + Running firefox &
[utente@host ~]$

Si può riportare un processo in esecuzione in background in foreground (console) con il comando fg, seguito dal numero del job (indicato da jobs).

[utente@host ~]$ fg 1
firefox

È possibile arrestare un processo sulla console premendo Ctrl + Z o da un'altra console usando il comando kill, e quindi inviare il processo in background con bg.

[1] + Stopped firefox
[utente@host ~]$ bg 1
[1] + Running firefox &
[utente@host ~]$

Importante: Se un processo in background utilizza la console per interagire con l'utente, il processo viene fermato.

Gestione della Priorità dei Processi: nice e renice

Questi comandi consentono di avviare un processo con una priorità specifica (nice) e di modificare la priorità di un processo esistente (renice).

Comando nice

Avvia un programma con una priorità alterata. I processi con un valore "nice" alto (più "gentili") richiedono meno risorse.

  • Il range di nice va da 19 (priorità più bassa, molto "nice") a -20 (priorità più alta, meno "nice").
  • Gli utenti non-root possono specificare nice solo nel range da 1 a 19; l'utente root ha accesso all'intera gamma.
  • Il valore nice predefinito è 10.

Esempi di utilizzo di nice:

Per eseguire un comando con un nice più alto (priorità più bassa):

$ nice -n 10 comando-a-lunga-esecuzione &

Per eseguire un comando con un nice più basso (priorità più alta):

$ nice -n -15 comando-chiave &

Comando renice

Il comando renice modifica il livello di nice di un processo esistente.

  • Gli utenti non-root non sono autorizzati a impostare un livello di nice inferiore (priorità più alta) per i propri processi.
  • Il valore nice è un numero intero. Per i valori negativi (priorità più alta) è necessario il segno meno (-).

Esempi di utilizzo di renice:

Per impostare il processo con PID 2984 al nice massimo (abbassando la sua priorità):

$ renice 20 2984

Per impostare il processo con PID 3598 a un nice basso (priorità più alta):

$ renice -15 3598

È anche possibile modificare il livello di nice di tutti i processi di un utente:

$ renice 15 -u miguel
Sintassi Dettagliata di renice

Il comando renice è utilizzato per modificare la priorità dei processi in esecuzione. Applicare renice a un gruppo di processi fa sì che tutti i processi vedano modificata la loro priorità; applicare il comando renice a un utente fa sì che tutti i processi di quell'utente vedano le priorità di schedulazione modificate.

renice priorità [-p] [pid ...] [-g] pgrp [...] [-u] [utente ...]
  • pid: ID del processo
  • pgrp: ID del gruppo di processi

Opzioni:

  • -g: Forza l'interpretazione dei parametri come ID di gruppo di processo.
  • -u: Forza l'interpretazione dei parametri come nomi utente.
  • -p: Forza l'interpretazione dei parametri come ID di processo (Default).

Esempi:

  • renice 15 785 (785 è il PID)
  • renice +20 -u peter (Peter è l'utente)

Utilità e Configurazione di Sistema

Comandi di Gestione File

  • Comando per eliminare file e directory: rm
  • Per eliminare un file: $ rm nomefile
  • Per eliminare una cartella vuota: $ rm nomecartella (o rmdir)
  • Per eliminare una directory (ricorsivamente): $ rm -R directory

File System e Collegamenti

  • File system supportati da Linux: ext3, ext2, swap.
  • Come creare un collegamento fisso (Hard Link): ln

Utenti e Permessi

  • File contenenti informazioni sugli utenti: /etc/passwd (utenti) e /etc/shadow (password criptate).
  • Umask: Calcolo dei permessi predefiniti: 666 - 022 = 644. Se i permessi desiderati sono 444, l'umask è 222.

Monitoraggio dei Processi

  • Comando per visualizzare i processi: ps aux. Permette di visualizzare tutti i processi aperti, l'uso della memoria e della CPU.

Networking e Sicurezza

Generazione di Chiavi Pubbliche e Private (SSH)

Per creare una coppia di chiavi RSA (pubblica/privata), eseguire il seguente comando:

ssh-keygen -t rsa

Il programma risponderà con:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/javier/.ssh/id_rsa):

Viene richiesto di inserire il nome del file in cui memorizzare la chiave privata (es. /home/javier/.ssh/id_rsa). Premere Invio per accettare il default. Successivamente, viene richiesta una passphrase:

Enter passphrase (empty for no password):
Enter same passphrase again:

Premendo due volte Invio si omette l'uso di una passphrase. Infine, il sistema informa:

Your identification has been saved in /home/javier/.ssh/id_rsa.
Your public key has been saved in /home/javier/.ssh/id_rsa.pub.
The key fingerprint is:
13:08:b:23:74:53:e4:0f:b3:16:49:01:b:79:64:60:7c:38 javier@client

Console e Porte di Rete

  • Come cambiare console virtuale: Ctrl + Alt + F[1-6].
  • Porte di rete e servizi comuni: Le porte da 1 a 1024 sono privilegiate (su un totale di 65535 porte).
    • HTTPS: 443
    • SSH: 22
    • Telnet: 23
    • NetBIOS: 133
    • Stampa: CUPS

Voci correlate: