GNU/LinuxIniziare con GNU / Linux


Scorciatoie utili

Usando il terminale

Gli esempi in questo documento presuppongono che si stia utilizzando una shell compatibile con POSIX (come bash , sh , zsh , ksh ).

Grandi porzioni di funzionalità GNU / Linux sono ottenute usando il terminale. La maggior parte delle distribuzioni di Linux include emulatori di terminale che consentono agli utenti di interagire con una shell dal proprio ambiente desktop. Una shell è un interprete della riga di comando che esegue i comandi immessi dall'utente. Bash (Bourne Again SHell) è una shell di default comune tra molte distribuzioni Linux ed è la shell di default per macOS.

Queste scorciatoie funzioneranno se stai usando Bash con le combinazioni di tasti emacs (impostate di default):

Terminale aperto

  • Ctrl + Alt + T o Super + T

Movimento del cursore

  • Ctrl + A Vai all'inizio della riga che stai attualmente digitando.
  • Ctrl + E Vai alla fine della linea che stai attualmente digitando.
  • Ctrl + XX Sposta tra l'inizio della linea e la posizione corrente del cursore.
  • Alt + F Sposta il cursore in avanti di una parola sulla linea corrente.
  • Alt + B Sposta il cursore indietro di una parola sulla linea corrente.
  • Ctrl + F Sposta il cursore in avanti di un carattere sulla linea corrente.
  • Ctrl + B Sposta il cursore indietro di un carattere sulla linea corrente.

Manipolazione del testo

  • Ctrl + U Taglia la linea dalla posizione corrente all'inizio della riga, aggiungendola negli appunti. Se sei alla fine della linea, taglia l'intera linea.
  • Ctrl + K Taglia la linea dalla posizione corrente alla fine della riga, aggiungendola negli appunti. Se sei all'inizio della linea, taglia l'intera linea.
  • Ctrl + W Elimina la parola prima del cursore, aggiungendola negli appunti.
  • Ctrl + Y Incolla l'ultima cosa dagli Appunti che hai tagliato di recente (annulla l'ultima eliminazione nella posizione corrente del cursore).
  • Alt + T Scambia le ultime due parole prima del cursore.
  • Alt + L Crea caratteri minuscoli dal cursore alla fine della parola.
  • Alt + U Crea lettere maiuscole dal cursore alla fine della parola.
  • Alt + C Capitalizza alla fine della parola iniziando dal cursore (parola intera se il cursore si trova all'inizio della parola).
  • Alt + D Elimina alla fine della parola iniziando dal cursore (parola intera se il cursore si trova all'inizio della parola).
  • Alt +. Stampa l'ultima parola scritta nel comando precedente.
  • Ctrl + T Scambia gli ultimi due caratteri prima del cursore.

Accesso alla storia

  • Ctrl + R Consente di cercare tra i comandi utilizzati in precedenza.
  • Ctrl + G Lascia la modalità di ricerca della cronologia senza eseguire un comando.
  • Ctrl + J Consente di copiare il comando corrente corrispondente sulla riga di comando senza eseguirlo, consentendo di apportare modifiche prima di eseguire il comando.
  • Alt + R Ripristina eventuali modifiche a un comando che hai estratto dalla cronologia, se lo hai modificato.
  • Ctrl + P Mostra l'ultimo comando eseguito, ovvero riporta indietro la cronologia dei comandi (simile alla freccia su).
  • Ctrl + N Mostra il prossimo comando eseguito, cioè cammina avanti attraverso la cronologia dei comandi (simile alla freccia giù).

Controllo terminale

  • Ctrl + L Cancella lo schermo, simile al comando di cancellazione.
  • Ctrl + S Interrompe tutti gli output sullo schermo. Questo è utile quando si eseguono comandi con molto output lungo. Ma questo non ferma il comando di marcia.
  • Ctrl + Q Riprende l'output sullo schermo dopo averlo fermato con Ctrl + S.
  • Ctrl + C Termina attualmente il processo in esecuzione e restituisce il prompt.
  • Ctrl + D Esci dalla sessione shell corrente, simile al comando exit o logout. In alcuni comandi, funge da segnale Fine del file per indicare che è stata raggiunta la fine di un file.
  • Ctrl + Z Sospende (pausa) attualmente in esecuzione processo foreground, che restituisce prompt della shell. È quindi possibile utilizzare il comando bg consentendo a tale processo di essere eseguito in background. Per portare nuovamente quel processo in primo piano, usa il comando fg . Per visualizzare tutti i processi in background, utilizzare il comando jobs .
  • Scheda Completa automaticamente i file e i nomi delle directory.
  • Scheda Tab Mostra tutte le possibilità, quando i caratteri digitati non corrispondono in modo univoco a un nome di file o directory.

Personaggi speciali

  • Ctrl + H Come Backspace.
  • Ctrl + J Come Return (storicamente avanzamento riga).
  • Ctrl + M Come Return (storicamente Ritorno a capo).
  • Ctrl + I Uguale a Tab.
  • Ctrl + G Bell Character.
  • Ctrl + @ Null Character.
  • Esc Deadkey equivalente al modificatore Alt .

Chiudi il terminale

  • Ctrl + Maiusc + W Per chiudere la scheda del terminale.
  • Ctrl + Shift + Q Per chiudere l'intero terminale.

In alternativa, è possibile passare alla combinazione di tasti vi in bash usando set -o vi . Usa set -o emacs per tornare alle combinazioni di tasti emacs .

Utilità di base di Linux

Linux ha un comando per quasi tutte le attività e la maggior parte di esse sono intuitive e facilmente interpretabili.

Ottenere aiuto in Linux

Comando usabilità
man <name> Leggi la pagina di manuale di <nome>.
man <section> <name> Leggi la pagina di manuale di <nome>, relativa alla sezione specificata.
man -k <editor> Emetti tutto il software le cui pagine man contengono la parola chiave <editor>.
man -K <keyword> Emette tutte le pagine man contenenti <parole chiave> al loro interno.
apropos <editor> Emetti tutte le applicazioni la cui descrizione di una riga corrisponde all'editor di parole. Quando non è possibile richiamare il nome dell'applicazione, utilizzare questo comando.
help Nella shell di Bash, questo mostrerà l'elenco di tutti i comandi di bash disponibili.
help <name> Nella shell di Bash, questo mostrerà le informazioni sul comando <name> bash.
info <name> Visualizza tutte le informazioni su <nome>.
dpkg -l Mostra un elenco di tutti i pacchetti installati su un sistema basato su Debian.
dpkg -L packageName Elencherà i file installati e i dettagli del percorso per un determinato pacchetto su Debian.
dpkg -l | grep -i <edit> Restituisce tutti i pacchetti .deb installati con <modifica> indipendentemente dai casi.
less /var/lib/dpkg/available Restituisce le descrizioni di tutti i pacchetti disponibili.
whatis vim Elenca una descrizione di una riga di vim.
<command-name> --help Mostra le informazioni di utilizzo su <nome-utensile>. A volte funziona anche il command -h , ma non per tutti i comandi.

Identificazione dell'utente e chi è chi nel mondo Linux

Comando usabilità
hostname Mostra il nome host del sistema.
hostname -f Visualizza il nome di dominio completo (FQDN) del sistema.
passwd Cambia password dell'utente corrente.
whoami Nome utente degli utenti collegati al terminale.
who Elenco di tutti gli utenti attualmente loggati come utente.
w Visualizza lo stato attuale del sistema, l'ora, la durata, l'elenco degli utenti attualmente connessi al sistema e altre informazioni utente.
last Chi ha recentemente utilizzato il sistema.
last root Quando è stata l'ultima volta che la root ha effettuato l'accesso come utente.
lastb Mostra tutti i tentativi di accesso errati nel sistema.
chmod Modifica delle autorizzazioni: leggere, scrivere, eseguire un file o una directory.

Informazioni relative al processo

Comando usabilità
top Elencare tutti i processi ordinati in base al loro attuale utilizzo delle risorse di sistema. Visualizza una visualizzazione dei processi continuamente aggiornata (per impostazione predefinita 3 secondi). Usa il tasto q per uscire in alto.
ps Elenca i processi attualmente in esecuzione sulla sessione corrente della shell
ps -u root Elenca tutti i processi e i comandi root in esecuzione
ps aux Elenca tutti i processi di tutti gli utenti sul sistema corrente

Comandi per la gestione dei file

Linux usa alcune convenzioni per le directory attuali e madri. Questo può essere un po 'di confusione per i principianti.

Ogni volta che ti trovi in ​​un terminale in Linux, sarai in quella che viene chiamata la directory di lavoro corrente . Spesso il prompt dei comandi visualizza la directory di lavoro completa o solo l'ultima parte di quella directory. Il tuo prompt potrebbe apparire come uno dei seguenti:

user@host ~/somedir $
user@host somedir $
user@host /home/user/somedir $
 

che dice che la directory di lavoro corrente è /home/user/somedir .

In Linux .. rappresenta la directory principale e . rappresenta la directory corrente.

Pertanto, se la directory corrente è /home/user/somedir , cd ../somedir non cambierà la directory di lavoro.

La tabella seguente elenca alcuni dei comandi di gestione file più utilizzati

Navigazione delle directory

Comando Utilità
pwd Ottieni il percorso completo della directory di lavoro corrente.
cd - Passa all'ultima directory in cui stavi lavorando.
cd ~ o solo cd Passare alla directory home dell'utente corrente.
cd .. Vai alla directory principale della directory corrente (fai attenzione allo spazio tra cd e .. )

Elenco dei file all'interno di una directory

Comando Utilità
ls -l Elenca i file e le directory nella directory corrente nel formato lungo (tabella) (Si consiglia di utilizzare -l con ls per una migliore leggibilità).
ls -ld dir-name Elenca le informazioni sulla directory dir-name directory dir-name posto del suo contenuto.
ls -a Elencare tutti i file compresi quelli nascosti (I nomi dei file che iniziano con un . Sono i file nascosti in Linux).
ls -F Aggiunge un simbolo alla fine del nome di un file per indicare il suo tipo ( * significa eseguibile, / significa directory, @ significa collegamento simbolico, = significa socket, | means named pipe, > significa door).
ls -lt Elenca i file ordinati per l'ultima volta con i file modificati più di recente visualizzati in alto (ricorda che l'opzione -l fornisce il formato lungo che ha una migliore leggibilità).
ls -lh Elenca le dimensioni dei file in formato leggibile.
ls -lR Mostra tutte le sottodirectory in modo ricorsivo.
tree Genera una rappresentazione ad albero del file system a partire dalla directory corrente.

File / directory crea, copia e rimuovi

Comando Utilità
cp -p source destination Copierà il file da source a destinazione. -p sta per conservazione. Conserva gli attributi originali del file durante la copia come proprietario di file, timestamp, gruppo, permessi, ecc.
cp -R source_dir destination_dir Copierà la directory di origine nella destinazione specificata in modo ricorsivo.
mv file1 file2 In Linux non esiste un comando di rinomina in quanto tale. Quindi mv sposta / rinomina il file1 in file2.
rm -i filename Ti chiede prima di ogni rimozione dei file per conferma. SE SEI UN NUOVO UTENTE ALLA LINEA DI COMANDO LINUX, DEVI SEMPRE UTILIZZARE rm -i . È possibile specificare più file.
rm -R dir-name Rimuoverà la directory dir-name directory in modo ricorsivo.
rm -rf dir-name Rimuoverà la directory dir modo ricorsivo, ignorando i file inesistenti e non richiederà mai nulla. FARE ATTENZIONE A QUESTO COMANDO! È possibile specificare più directory.
rmdir dir-name Rimuoverà la directory dir-name directory, se è vuota. Questo comando può solo rimuovere le directory vuote.
mkdir dir-name Crea un dir-name directory.
mkdir -p dir-name/dir-name Crea una gerarchia di directory. Crea directory madri secondo necessità, se non esistono. È possibile specificare più directory.
touch filename Crea un filename file, se non esiste, altrimenti modifica la data / ora del file in base all'ora corrente.

Permessi e gruppi di file / directory

Comando Utilità
chmod <specification> filename Cambia le autorizzazioni del file. Specifiche = u utente, gruppo g , o altro, + aggiungi permesso, - rimuovi, legge r , scrive w , esegue x .
chmod -R <specification> dir-name Modificare le autorizzazioni di una directory in modo ricorsivo. Per cambiare il permesso di una directory e di tutto ciò che si trova in quella directory, usa questo comando.
chmod go=+r myfile Aggiungi permessi di lettura per il proprietario e il gruppo.
chmod a +rwx myfile Consenti a tutti gli utenti di leggere, scrivere o eseguire myfile .
chmod go -r myfile Rimuovi i permessi di lettura dal gruppo e da altri.
chown owner1 filename Modifica la proprietà di un file all'utente owner1 .
chgrp grp_owner filename Modifica la proprietà del gruppo principale del filename file per il gruppo grp_owner .
chgrp -R grp_owner dir-name Modifica la proprietà del gruppo principale della directory dir-name directory al gruppo grp_owner modo ricorsivo. Per modificare la proprietà del gruppo di una directory e tutto ciò che si trova all'interno di quella directory, utilizzare questo comando.

Manipolazione dei file

File e directory (un altro nome per le cartelle) sono al centro di Linux, quindi essere in grado di creare, visualizzare, spostare ed eliminare dalla riga di comando è molto importante e abbastanza potente. Questi comandi di manipolazione dei file consentono di eseguire le stesse attività eseguite da un esploratore di file grafico.

Crea un file di testo vuoto chiamato myFile :

touch myFile
 

Rinominare myFile in myFirstFile :

mv myFile myFirstFile 
 

Visualizza il contenuto di un file:

cat myFirstFile
 

Visualizza il contenuto di un file con pager (uno schermo alla volta):

less myFirstFile
 

Visualizza le prime righe di un file:

head myFirstFile
 

Visualizza le ultime righe di un file:

tail myFirstFile
 

Modifica un file:

vi myFirstFile
 

Guarda quali file ci sono nella tua attuale directory di lavoro:

ls
 

Creare una directory vuota denominata myFirstDirectory :

mkdir myFirstDirectory
 

Crea directory a più percorsi: (crea due directory, src e myFirstDirectory)

mkdir -p src/myFirstDirectory
 

Sposta il file nella directory:

mv myFirstFile myFirstDirectory/
 

Puoi anche rinominare il file:

user@linux-computer:~$ mv myFirstFile secondFileName
 

Cambia la directory di lavoro corrente in myFirstDirectory :

cd myFirstDirectory
 

Elimina un file:

rm myFirstFile
 

Spostati nella directory superiore (che è rappresentata come .. ):

cd ..
 

Elimina una directory vuota:

rmdir myFirstDirectory
 

Elimina una directory non vuota (cioè contiene file e / o altre directory):

rm -rf myFirstDirectory
 

Prendi nota che quando elimini le directory, cancelli ./ non / che cancellerà tutto il tuo filesystem.

Dettagli file / directory

Il comando ls ha diverse opzioni che possono essere utilizzate insieme per mostrare più informazioni.

Dettagli / Diritti

L'opzione l mostra i permessi, le dimensioni e l'ultima data di modifica del file. Quindi se la directory radice conteneva una dir chiamata test e un file someFile il comando:

user@linux-computer:~$ ls -l
 

Produrrebbe qualcosa come

-rw-r--r-- 1 user users   70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4096 Jul 21 07:18 test
 

Le autorizzazioni sono in formato di drwxrwxrwx . Il primo carattere rappresenta il tipo di file d se è una directory - altrimenti. Le prossime tre rwx sono le autorizzazioni che l'utente ha sul file, le tre successive sono le autorizzazioni che il gruppo ha sul file e le ultime tre sono le autorizzazioni che tutti hanno sul file.

Il r di rwx sta per se un file può essere letto, il w rappresenta se il file può essere modificato, e la x sta per se il file può essere eseguito. Se non viene concesso alcun permesso, a - sarà al posto di r , w o x .

Quindi da sopra l' user può leggere e modificare someFile.txt ma il gruppo ha solo diritti di sola lettura.

Per cambiare i diritti puoi usare il comando chmod ### fileName se hai i diritti sudo. r è rappresentato da un valore di 4, w è rappresentato da 2, e x è rappresentato da un 1. Quindi se solo vuoi essere in grado di modificare il contenuto nella directory di test

Owner rwx = 4+2+1 = 7
Group r-x = 4+0+1 = 5
Other r-x = 4+0+1 = 5
 

Quindi l'intero comando è

chmod 755 test
 

Ora facendo un ls -l mostrerei qualcosa di simile

drwxr-xr-x 2 user users 4096 Jul 21 07:20 test
 

Dimensione leggibile

Utilizzato in combinazione con l'opzione l opzione h mostra le dimensioni del file che sono leggibili dall'uomo. In esecuzione

user@linux-computer:~$ ls -lh
 

Uscirebbe:

total 4166
-rw-r--r-- 1 user users   70 Jul 22 13:36 someFile.txt
drwxrwxrwx 2 user users 4.0K Jul 21 07:18 test
 

Nascosto

Per visualizzare i file nascosti utilizzano l' un'opzione. a Per esempio

user@linux-computer:~$ ls -a
 

Potrebbe elencare

.profile
someFile.txt
test
 

Dimensione totale della directory

Per visualizzare le dimensioni della directory corrente utilizzare l'opzione s (l'opzione h può essere utilizzata anche per rendere la dimensione più leggibile).

user@linux-computer:~$ ls -s
 

Uscite

total 4166
someFile.txt      test
 

Vista ricorsiva

Diciamo che la directory di test aveva un file anotherFile e si voleva vederlo dalla cartella radice, si poteva usare l'opzione R elencare l'albero ricorsivo.

user@linux-computer:~$ ls -R
 

Uscite

.:
someFile.txt    test

./test:
anotherFile
 

Ciao mondo

Digita il codice seguente nel tuo terminale, quindi premi Invio :

echo "Hello World"
 

Questo produrrà il seguente risultato:

Hello World
 

Ricerca di file in base a modelli in nome / contenuto

Un compito comune di qualcuno che usa la Linux Command Line (shell) è di cercare file / directory con un certo nome o contenente un determinato testo. Ci sono 2 comandi sui quali dovresti familiarizzare per ottenere ciò:


Trova i file per nome

find /var/www -name '*.css'
 

Questo stamperà il percorso completo / nome file per tutti i file in /var/www che terminano in .css . Esempio di output:

/var/www/html/text-cursor.css
/var/www/html/style.css
 

Per maggiori informazioni:

man find
 

Trova file contenenti testo

grep font /var/www/html/style.css 
 

Questo stamperà tutte le linee contenenti il font del modello nel file specificato. Esempio di output:

font-weight: bold;
font-family: monospace;
 

Un altro esempio:

grep font /var/www/html/
 

Questo non funziona come speravi. Ottieni:

grep: /var/www/html/: Is a directory
 

Hai bisogno di grep modo ricorsivo per farlo funzionare, usando l'opzione -R :

grep -R font /var/www/html/
 

Ehi bello! Controlla l'output di questo:

/var/www/html/admin/index.php:  echo '<font color=red><b>Error: no dice</b></font><br/>';
/var/www/html/admin/index.php:  echo '<font color=red><b>Error: try again</b></font><br/>';
/var/www/html/style.css:  font-weight: bold;
/var/www/html/style.css:  font-family: monospace;
 

Si noti che quando grep fa corrispondere più file, prefigura le linee corrispondenti con i nomi dei file. Puoi usare l'opzione -h per sbarazzartene, se vuoi.

Per maggiori informazioni:

man grep