Come nascondere in Linux l’output di un comando nella shell

E’ possibile nascondere l’output di un comando o di un’applicazione della shell in questo modo: […]

E’ possibile nascondere l’output di un comando o di un’applicazione della shell in questo modo:

$ command > /dev/null

Ossia l’output del comando non verrà mostrato nella console, ma sarà rediretto a /dev/null e quindi risulterà non visibile. Il comando viene comunque sempre eseguito.

Per nascondere tutto l’output del comando, compresi gli errori, il comando è invece il seguente:

$ command &> /dev/null

roghan

Come configurare le variabili d’ambiente in Linux

Una variabile è una piccola parte della memoria RAM identificata da un nome e in grado di contenere dei valori (nomi, date, …). Nel momento in cui un utente definisce una nuova variabile, il sistema associa al nome di tale variabile un indirizzo di memoria nel quale viene memorizzato il valore indicato. Per definire una variabile è sufficiente usare la seguente sintassi: […]

Una variabile è una piccola parte della memoria RAM identificata da un nome e in grado di contenere dei valori (nomi, date, …). Nel momento in cui un utente definisce una nuova variabile, il sistema associa al nome di tale variabile un indirizzo di memoria nel quale viene memorizzato il valore indicato. Per definire una variabile è sufficiente usare la seguente sintassi:

# NOME_VARIABILE=valore

Le variabili d’ambiente sono invece particolari variabili che permettono ad ogni utente di configurare il proprio ambiente di lavoro. Vediamo una lista dei comandi da tenere sempre a portata di mano.

Per vedere una lista delle variabili d’ambiente impostate nel sistema il comando è:

# env

environment_variables

Per settare una nuova variabile d’ambiente (“temporanea”, vedere più avanti per la spiegazione):

# export NOME_VARIABILE="valore della variabile"

Per visualizzare il valore di una variabile d’ambiente:

# echo $NOME_VARIABILE

Per cancellare una variabile d’ambiente:

# unset NOME_VARIABILE

E’ importante notare che per cancellare una variabile non è sufficiente effettuare un’assegnazione con un valore nullo, ma bisogna necessariamente usare unset. Ad esempio il comando VARIABILE="" imposterà semplicemente il valore della variabile con quello della stringa vuota, ma non cancellerà la variabile, dunque fate attenzione!

Le variabili d’ambiente possono essere suddivise in 3 categorie: temporanee, locali (per un singolo utente), o globali (per tutti gli utenti). Una variabile definita semplicemente all’interno della sessione di una shell avrà una durata limitata all’esecuzione della shell stessa. In questo caso:

# VARIABILE_PROVA=/home/pippo/tmp
# export VARIABILE_PROVA

la variabile verrà eliminata nel momento in cui la sessione della shell verrà chiusa (logout, exit, riavvio del sistema, …).

Un altra categoria è quella delle variabili d’ambiente locali, ossia relative ad un singolo utente. Queste possono essere definite in:

  • ~/.bash_profile – file è eseguito una volta al login
  • ~/.bashrc – file eseguito eseguito alla creazione di una nuova shell. La maggior parte delle variabili dovrebbe essere posta al suo interno.

Infine ci sono le variabili globali definite in modo simile alle precedenti:

  • /etc/profile – file letto una volta al login;
  • /etc/bashrc – file letto ogni volta che viene avviata una nuova shell.

roghan

Privilegi root per bind di porte 1-1023 in Java

Se dobbiamo creare un server in Java per accettare comunicazioni su TCP, è necessario usare la classe ServerSocket, mentre quella Socket è specifica per il lato client. Durante la creazione della componente client, bisogna fare particolare attenzione a quali porte indichiamo se ci troviamo su sistemi Linux/Unix. […]

Se dobbiamo creare un server in Java per accettare comunicazioni su TCP, è necessario usare la classe ServerSocket, mentre quella Socket è specifica per il lato client. Durante la creazione della componente client, bisogna fare particolare attenzione a quali porte indichiamo se ci troviamo su sistemi Linux/Unix. Ad esempio, il codice per mettere in ascolto un server sulla porta 80 è il seguente:

try
{
     ServerSocket server= new ServerSocket(80);
}catch (IOException iex)
{
     System.err.println(ex);
}

Il codice è corretto, ma potrebbe essere sollevata un’eccezione su sistemi Unix/Linux o anche Windows, in quanto sono necessari i privilegi di root/administrator per poter usare le porte nel range 1-1023.

roghan