Galleria mappe mentale Funzionamento e manutenzione di Linux
Questa è una mappa mentale sull'apprendimento del funzionamento e della manutenzione di Linux dal vecchio ragazzo, inclusa un'introduzione alla riga di comando di Linux, comandi operativi su file e directory, filtri di file e comandi di modifica ed elaborazione dei contenuti, ecc.
Modificato alle 2024-01-16 11:24:10Questa è una mappa mentale su una breve storia del tempo. "Una breve storia del tempo" è un'opera scientifica popolare con un'influenza di vasta portata. Non solo introduce i concetti di base della cosmologia e della relatività, ma discute anche dei buchi neri e dell'espansione dell'universo. questioni scientifiche all’avanguardia come l’inflazione e la teoria delle stringhe.
Dopo aver letto "Il coraggio di essere antipatico", "Il coraggio di essere antipatico" è un libro filosofico che vale la pena leggere. Può aiutare le persone a comprendere meglio se stesse, a comprendere gli altri e a trovare modi per ottenere la vera felicità.
"Il coraggio di essere antipatico" non solo analizza le cause profonde di vari problemi nella vita, ma fornisce anche contromisure corrispondenti per aiutare i lettori a comprendere meglio se stessi e le relazioni interpersonali e come applicare la teoria psicologica di Adler nella vita quotidiana.
Questa è una mappa mentale su una breve storia del tempo. "Una breve storia del tempo" è un'opera scientifica popolare con un'influenza di vasta portata. Non solo introduce i concetti di base della cosmologia e della relatività, ma discute anche dei buchi neri e dell'espansione dell'universo. questioni scientifiche all’avanguardia come l’inflazione e la teoria delle stringhe.
Dopo aver letto "Il coraggio di essere antipatico", "Il coraggio di essere antipatico" è un libro filosofico che vale la pena leggere. Può aiutare le persone a comprendere meglio se stesse, a comprendere gli altri e a trovare modi per ottenere la vera felicità.
"Il coraggio di essere antipatico" non solo analizza le cause profonde di vari problemi nella vita, ma fornisce anche contromisure corrispondenti per aiutare i lettori a comprendere meglio se stessi e le relazioni interpersonali e come applicare la teoria psicologica di Adler nella vita quotidiana.
Impara il funzionamento e la manutenzione di Linux dal vecchio
Capitolo 1 Introduzione alla riga di comando di Linux
Panoramica della riga di comando di Linux
Introduzione al prompt della riga di comando di Linux
Il segno # è il prompt alla fine della riga di comando dopo aver effettuato l'accesso come super utente root, mentre il segno $ è il prompt alla fine della riga di comando dopo aver effettuato l'accesso come utente normale.
Gli utenti avanzati dispongono di tutte le autorizzazioni per gestire il sistema. Gli utenti ordinari hanno autorizzazioni relativamente limitate e possono eseguire solo operazioni come la visualizzazione delle informazioni di sistema di base e non possono modificare le configurazioni del sistema e i servizi di gestione.
I caratteri davanti al prompt della riga di comando @ rappresentano l'utente attualmente connesso (può essere interrogato da whoami), i caratteri dopo @ sono il nome host (può essere interrogato da hostname) e la posizione di ~ è il percorso del utente corrente nella finestra.
Il prompt dei comandi di Linux è controllato dalla variabile di ambiente PS1. imposta |. grep PS1 PS1='[\u@\h\W]\$'
Comandi di spegnimento, riavvio e logout di Linux
Comando di riavvio o spegnimento: shutdown
spegnimento [OPZIONE]... ORA [MESSAGGIO]
Tieni presente che deve esserci almeno uno spazio tra il comando shutdown e le seguenti opzioni.
Normalmente, il comando di shutdown che eseguiamo è shutdown-h now o shutdown-r now.
Comandi di spegnimento e riavvio: halt/poweroff/reboot
riavviare [OPZIONE]... interrompere [OPZIONE]... spegnimento [OPZIONE]...
Capitolo 2 Comandi operativi su file e directory
pwd: visualizza la posizione corrente
pwd [opzioni]
cd: cambia directory
cd [opzioni] [directory]
Quando si utilizza il comando cd, se si utilizza la funzione di completamento automatico del tasto "Tab" sulla tastiera, è possibile migliorare la velocità e la precisione di input. La funzione di completamento automatico del tasto "Tab" si applica anche ad altri comandi.
Per comprendere il concetto di percorso, ad esempio, un percorso relativo è un percorso che non inizia da "/" (barra), ma inizia dalla directory corrente o da una directory specificata, come: data/, mnt/oldboy an; il percorso assoluto è un percorso che inizia da "/" "(barra) percorso che inizia dalla radice, ad esempio: /data/, /mnt/oldboy.
Quando è necessario passare alla directory in cui si trovava l'ultimo utente corrente, utilizzare "cd-" (notare lo spazio); quando è necessario passare alla directory home dell'utente corrente, utilizzare "cd~" (notare lo spazio ); quando è necessario passare a Quando si specifica il percorso della directory di livello superiore della directory corrente, utilizzare "cd.." (notare lo spazio).
albero: visualizza il contenuto della directory in una struttura ad albero
albero [opzioni] [directory]
mkdir: crea la directory
mkdir [opzioni] [directory]
Il comando mkdir può creare più directory contemporaneamente, nel formato mkdir dir1 dir2…
Crea directory in modo ricorsivo con il parametro -p (mkdir -p oldboy/test)
Aggiungi il parametro -v per visualizzare il processo di creazione della directory. (mkdir -pv oldboy2/prova)
È possibile utilizzare il parametro -m durante la creazione di una directory per impostare le autorizzazioni predefinite per la directory. (mkdir -m 333 dir2)
Crea più directory e sottodirectory multilivello contemporaneamente. (mkdir -pv vecchio/{dir1_1,dir1_2}/{dir2_1,dir2_2} )
tocco: crea un file vuoto o modifica l'attributo timestamp del file
Il comando touch ha due funzioni: una è creare un nuovo file vuoto; l'altra è modificare l'attributo timestamp di un file esistente;
tocca [opzioni] [file]
Crea file (tocca a.txt b.txt)
Modificare l'attributo timestamp di un file
touch -a oldboy.txt #<==-a parametro modifica l'ora dell'ultimo accesso.
touch -m oldboy.txt #<==-m il parametro cambia l'ora dell'ultima modifica.
Specificare gli attributi temporali per creare/modificare i file
touch -d 20201001 oldboy.txt #<==Specifica la modifica del file dopo aver creato il file
touch -r a.txt oldboy.txt #<==Utilizza il parametro -r per rendere l'attributo time di oldboy.txt coerente con a.txt.
touch -t 201512312234.50 oldboy.txt #<==Utilizza l'opzione -t per impostare il file nel formato ora 201512312234.50
ls: visualizza il contenuto e le informazioni sugli attributi correlati della directory
ls [opzioni] [<file o directory>]
Utilizza il parametro -a per visualizzare tutti i file, in particolare quelli nascosti
ls -a#<== Descrizione: aggiungendo il parametro -a verrà visualizzato il contenuto che inizia con "." (punto). Il primo punto visualizzato qui rappresenta la directory corrente, che è la directory di test stessa, e i due punti rappresentano la directory superiore della directory corrente, che qui rappresenta la directory root. La conoscenza di uno e due punti verrà spiegata in dettaglio nel comando ln più avanti.
ls -A #<==Elenca tutti i file, inclusi i file nascosti, ma escluse le directory "." e "..".
Utilizzare il parametro -l per visualizzare informazioni dettagliate.
ls -l #<==La colonna dell'attributo ora qui mostra l'ora dell'ultima modifica del file per impostazione predefinita. #<==Spiegazione: questo parametro -l è il parametro più comunemente utilizzato, il che significa elencare il tipo di file, i permessi, il numero di connessioni, il proprietario (gruppo) e le informazioni sull'ora di creazione e modifica nella directory in formato lungo. È necessario padroneggiare il significato degli attributi di ciascuna colonna e le informazioni sugli attributi verranno discusse in dettaglio in seguito.
Parametro --time-style=long-iso che visualizza l'attributo time completo.
ls -l --time-style=long-iso #<==Visualizza l'ora in modalità long-iso Il risultato di questo comando è ottimo.
I valori dei parametri facoltativi di --time-style sono i seguenti, ad esempio full-iso, long-iso, iso e locale. Il valore predefinito è locale.
Negli scenari di produzione, spesso riscontriamo il problema della visualizzazione incoerente dei file e degli orari delle directory nella stessa directory, quindi dobbiamo utilizzare ls-l--time-style=long-iso per apportare modifiche se ritieni che ce ne siano troppi parametri ed è difficile da ricordare, è possibile impostare una gestione degli alias.
Vale la pena ricordare che quando si eseguono comandi come ls-l, l'ora dell'ultima modifica del file viene visualizzata per impostazione predefinita (se si tratta di un nuovo file, è l'ora della creazione).
ls--full-time viene utilizzato per visualizzare il tempo completo, che equivale a ls-l--time-style=full-iso.
Esegui il comando ls con parametri che visualizzano l'attributo del tempo di accesso del contenuto.
ls -l --time-style=long-iso --time=atime #<==Aggiungi il parametro --time= atime per visualizzare l'ora di accesso.
I comandi correlati includono ls-l--time-style=long-iso--time=ctime, che viene utilizzato per visualizzare l'ora in cui i file cambiano.
La conoscenza della colonna temporale del file e di mtime, atime e ctime è stata spiegata in precedenza quando si è introdotto il comando touch.
Esegui il comando ls con il parametro -F (questo è molto simile al comando -F del tree).
ls -F#<==Spiegazione: Con l'aggiunta di -F, possiamo vedere chiaramente che una barra / viene aggiunta alla fine di tutte le directory. Che utilità ha una funzione del genere per il lavoro? Naturalmente è utile. Ad esempio: se vogliamo filtrare tutte le directory, dobbiamo filtrare solo quelle con le barre.
Utilizzare il parametro -d per visualizzare solo le informazioni sulla directory stessa.
ls -ld dir1 #<==Aggiungi il parametro -d per ottenere ciò che desideri.
Utilizzare il parametro -R per visualizzare ricorsivamente le directory.
ls -R dir1 #<== Simile ma non facile da usare come tree.
Conoscenza degli alias dei comandi ls e dell'impostazione degli alias ls.
alias lst='ls -l --time-style=long-iso' #<==Configura l'alias del comando.
Trova i file aggiornati di recente.
ls -lrt /etc/ #<== -t è ordinato in base all'ora, -r è in ordine inverso, ovvero ordinato in base all'ora in ordine inverso.
Eseguire il backup del database dello scenario di produzione e ottenere un elenco di nomi di database.
ls -F /usr/local/mysql/data|egrep "/"|awk -F "/" '{print $1}' >/root/dbfilename.list#<== Suggerimento: in questo script di backup della tabella del database, viene utilizzato il comando combinato di ls -F più egrep per filtrare il nome della directory del database.
Elimina la spazzatura che occupa i nodi inode negli scenari di produzione.
ls|xargs rm -f #<==Se ci sono troppi file, non possono essere cancellati direttamente da rm -fr *.
Conoscenza approfondita del comando ls-F
Aggiungi "*" per rappresentare un file ordinario eseguibile
Aggiungere "/" per indicare la directory
Aggiungere "=" per indicare i socket
Aggiungere "|" per indicare le FIFO
Aggiungi "@" per indicare un collegamento simbolico
Interpretazione degli attributi del contenuto dell'output del comando ls
ls -lhi #<== Il parametro -l è stato spiegato in dettaglio in precedenza La funzione del parametro -h è visualizzare la dimensione del file in modo leggibile dall'uomo. Puoi facilmente conoscere la dimensione del file come "4.0K" di seguito. Dimensioni, il parametro -i viene utilizzato per visualizzare il valore dell'inode del file.
cp: copia file o directory
cp [opzioni] [file sorgente] [file di destinazione]
cp -a file1.txt file5.txt #<==Utilizzare il parametro -a per copiare file1.txt in file5.txt. Le proprietà copiate utilizzando il parametro -a rimangono invariate.
Quando si utilizza il parametro -a per copiare, l'attributo time del file non cambia. La funzione del parametro -a include la funzione del parametro -p per mantenere gli attributi del file.
cp -i file1.txt file5.txt #<== Usa il parametro -i per copiare il file Ti verrà chiesto se sovrascrivere il file.
Per impostazione predefinita, il sistema CentOS imposta un alias per il comando cp, ovvero viene aggiunto il parametro -i. Tuttavia, quando si esegue cp in uno script di shell, se non è presente il parametro -i, non verrà chiesto se sovrascrivere. Questo perché le variabili di ambiente durante l'esecuzione della riga di comando e degli script di shell sono diverse
cp -r dir1 dir2/ #<==Se usi il parametro -r, copia la directory in modo ricorsivo e copia tutte le sottodirectory e le cartelle nella directory.
cp /etc/ssh/sshd_config{,.ori}#<==Il principio di questo metodo è l'operazione di espansione di bash delle parentesi graffe /etc/ssh/sshd_config{,.ori} si espande in /etc/ssh/sshd_config / etc. /ssh/sshd_config.ori e poi passarlo al comando cp.
mv: sposta o rinomina i file
mv [opzioni] [file sorgente] [file di destinazione]
mv file6.txt file7.txt #<==Se file7.txt non esiste, rinomina file6.txt in file7.txt.
mv file5.txt file7.txt #<==Se file7.txt esiste, sovrascrivi file5.txt con file7.txt.
\mv file4.txt file7.txt #<==Usa \ per proteggere l'alias di sistema e non ti verrà chiesto se sovrascrivere.
mv file7.txt dir1/ #<==dir1 è una directory ed esiste, quindi sposta file7.txt in dir1 Se dir1 non esiste, rinominalo in un file normale in dir1.
mv -t dir1/ file1.txt file2.txt file3.txt file7.txt #<== Usa il parametro -t per scambiare l'origine e la destinazione, -t seguito dalla directory e infine il file da spostare.
rm: elimina un file o una directory
rm [opzioni] [<file o directory>]
Il parametro rm -f file3.txt #<==-f forza la cancellazione senza richiesta.
rm -r dir1 #<==Usa -r per eliminare in modo ricorsivo, ma verrà visualizzata una richiesta di conferma. Puoi usare -f per forzarlo.
Esperienza pratica sulla cancellazione
Usa mv invece di rm. Non eliminarlo in fretta, ma spostalo prima nel cestino/tmp.
Assicurati di eseguire il backup prima di eliminare, preferibilmente un backup su più computer. Puoi ripristinarlo in qualsiasi momento in caso di problemi.
Se è necessario eliminarlo, utilizzare find invece di rm, inclusa la pulizia dei file tramite attività pianificate del sistema.
Se devi eliminarlo tramite il comando rm, modifica prima la directory e poi eliminala. Se puoi fare a meno dei caratteri jolly, non utilizzarli. È vietato utilizzare "rm-rf nome file" per eliminare file, poiché non verrà visualizzato alcun messaggio quando "rm-rf" elimina accidentalmente una directory, il che è molto pericoloso. Utilizzare al massimo "rm-f filename" e si consiglia "rm filename".
rmdir: elimina le directory vuote
rmdir [opzioni] [directory]
Il comando rmdir viene utilizzato per eliminare le directory vuote Quando la directory non è vuota, il comando non funziona.
rmdir -p -v dir1/a/b/ #<== La cancellazione ricorsiva richiede comunque l'elenco di tutte le strutture di directory.
ln: collegamento fisico e collegamento software
ln [opzioni] [file o directory di origine] [file o directory di destinazione]
collegamento duro
Nel file system Linux, è normale e consentito che più nomi di file puntino allo stesso nodo di indice (inode). Il file in questo caso è chiamato hard link.
Più file con lo stesso numero di nodo inode sono file di collegamento reale tra loro.
Elimina il file del collegamento reale o il file di origine, ma l'entità del file non viene eliminata.
L'entità file verrà eliminata solo se vengono eliminati il file di origine e tutti i file di collegamento reale corrispondenti del file di origine.
Quando tutti i file di collegamento reale e i file di origine vengono eliminati, lo spazio di questo file verrà occupato quando verranno archiviati nuovi dati, oppure anche i dati eliminati verranno riciclati dal sistema quando viene controllato l'fsck del disco.
Un file con collegamento reale è un'altra entrata del file (equivalente alla porta d'ingresso e alla porta sul retro del supermercato).
È possibile impedire l'eliminazione accidentale di file importanti impostando i file con collegamento reale ai file.
Eseguire il comando "ln source file hard link file" per completare la creazione dell'hard link.
I file di collegamento reale possono essere eliminati utilizzando il comando rm.
Per i file statici (file che non vengono chiamati da un processo), quando il numero di collegamenti reali corrispondenti è 0 (i_link), il file verrà eliminato. Il metodo di visualizzazione di i_link è ls-lih e la terza colonna del risultato della visualizzazione è il numero di collegamenti reali.
Directory, non è possibile creare collegamenti reali
C'è un collegamento fisico "." sotto ciascuna directory e un collegamento fisico ".." corrispondente alla directory di livello superiore.
Crea una sottodirectory nella directory principale e aumenta il numero di collegamenti nella directory principale di 1 (le sottodirectory hanno ".." per puntare alla directory principale). Ma quando viene creato un file nella directory principale, il numero di collegamenti nella directory principale non aumenterà.
collegamento morbido
I soft link sono simili alle scorciatoie di Windows (puoi visualizzare le loro indicazioni tramite il successivo comando readlink).
Un collegamento software è simile a un file di testo, che memorizza il percorso del file di origine e punta all'entità del file di origine.
Anche se il file di origine viene eliminato, il file di collegamento software continua a esistere, ma non è possibile accedere al contenuto del percorso del file di origine selezionato.
Quando fallisce, di solito lampeggia con lettere bianche e uno sfondo rosso.
Eseguire il comando "ln-s source file soft link file" per completare la creazione del soft link (il nome del file soft link non può esistere in anticipo).
I soft link e i file sorgente sono tipi diversi di file, file diversi e hanno numeri di inode diversi.
Per eliminare i file soft link, utilizzare il comando rm.
readlink: visualizza il contenuto dei file di collegamento simbolici
readlink [opzioni] [file]
readlink /usr/bin/awk #<==Puoi visualizzare il vero contenuto di questo file soft link.
readlink -f /usr/bin/awk #<==Utilizzando il parametro -f verrà visualizzato l'ultimo file di collegamento non simbolico.
find: trova i file in una directory
trova [opzioni] [percorso] [istruzione operativa]
find . -atime -2 #<== "." rappresenta la directory corrente. Utilizzare l'opzione atime per trovare i file a cui si accede entro due giorni.
trova la descrizione del tempo di ricerca
-4 indica che il file è stato modificato entro 4 giorni da adesso.
4 significa che il file è stato modificato 4 giorni fa.
4 significa tra 4 giorni.
find /var/log/ -mtime 5 -name '*.log' #<==Trova i file che terminano con ".log" 5 giorni fa nella directory /var/log/.
find . ! -type d #<== "!" significa negazione, cerca file che non siano directory, presta attenzione alla posizione del punto esclamativo.
find /data/ -perm 755 #<==Trova i file in base ai permessi dei file, 755 sono i permessi
find . -size 1000c #<==Trova file con dimensioni superiori a 1000 byte nella directory corrente.
find /data -path "/data/dir3" -prune -o -print #<==Il parametro -path specifica lo stile del percorso e il parametro -prune viene utilizzato per escludere la directory specificata.
find /data \( -path /data/dir2 -o -path /data/dir3 \) -prune -o -print Usa le parentesi per combinare più espressioni, ma le parentesi hanno un significato speciale nel significato della riga di comando, quindi "\" è usato per scappare qui, che dice a bash di non analizzare il seguente carattere "()", ma di lasciarlo al comando find per l'elaborazione. Inoltre, c'è uno spazio tra la parentesi sinistra e il percorso in "\(-path", e c'è uno spazio tra dir3 e la parentesi destra in "dir3\)".
find . -user nessuno #<==Trova file il cui utente è nessuno.
find . -nouser#<==Trova file che non corrispondono a nessun utente.
find . -group nessuno #<==Questa funzione è simile all'esempio precedente, qui si riferisce alla ricerca di file con il gruppo utente nessuno.
find . -nogroup#<==Trova i file che non corrispondono a nessun gruppo utente.
find . -newer file1.txt ! -newer file2.txt#<==Trova i file la cui ora di modifica è più recente di file1.txt ma precedente a file2.txt.
find . -max Depth 1 -type d #<==-max Depth 1 trova la directory di primo livello, simile all'albero -L 1.
find . -max Depth 1 -type d ! -name "." #<==Utilizzare il punto esclamativo (!) per negare e non visualizzare le righe i cui nomi sono punti.
find . -max Depth 1 -type d ! -name "." -o -name "oldboy"#<==-o significa oppure, visualizza tutte le directory o i file denominati oldboy eccetto "."
find . -max Depth 1 -type d ! -name "." -a -name "ext"#<==-a significa e cerca directory che non siano punti e il cui nome sia ext Directory denominata ext.
find . -type f -exec ls -l {} \;#<==Il comando find corrisponde a tutti i file ordinari nella directory corrente e utilizza il comando ls -l nell'opzione -exec per elencarli.
find . -type f -mtime 14 -exec rm {} \; #<==il comando find trova i file nella directory che sono stati modificati più di 14 giorni fa e utilizza il comando rm nell'opzione -exec per eliminarli.
find /var/log/ -name "*.log" -mtime 5 -ok rm {} \;#<==Il comando find trova tutti i nomi di file che terminano con ".log" e l'ora di modifica in /var/log / file della directory più vecchi di 5 giorni e cancellarli Finora, la funzione di -ok è la stessa di -exec, ma -ok ha anche la funzione di fornire un messaggio prima dell'eliminazione. Premere il tasto y per eliminare il file e premere il tasto n per non eliminare il file, il che sarà più sicuro.
find . -type f|xargs ls -l #<== Passa i file ordinari trovati dal comando find al comando ls per l'esecuzione tramite il simbolo della pipe e il comando xargs. Prestare attenzione al formato del comando. Qui viene utilizzato il simbolo pipe "|" xargs è un comando e un filtro per passare parametri ad altri comandi. È possibile leggere il capitolo sul comando xargs prima di leggere questa parte.
find . -name "*.txt"|xargs -i mv {} dir2/ #<==Usa il parametro -i di xargs in modo che {} rappresenti i file trovati da find Inserisci questi file come parametri dopo il comando mv as Il file sorgente da spostare viene spostato nella directory dir2. Per ulteriori metodi, fare riferimento alla Sezione 2.13.3 "Espandere la conoscenza: diversi metodi per spostare i file trovati in posizioni specificate".
find dir2 -name "file*"|xargs -p rm -f#<== Nota: utilizzando l'opzione -p del comando xargs verrà richiesto di confermare se eseguire i seguenti comandi.
xargs: converte l'input standard in argomenti della riga di comando
xargs [opzioni] Il comando xargs è un filtro che passa i parametri della riga di comando ad altri comandi. Può convertire i dati passati dalla pipe o dall'input standard nei parametri della riga di comando del comando che segue il comando xargs.
xargs < test.txt#<== trasforma tutti i numeri in una riga. Tieni presente che xargs non può connettersi direttamente ai file e deve essere combinato con il carattere di reindirizzamento dell'input "<".
xargs -n 3 < test.txt#<== Visualizza fino a 3 per riga.
echo splitXsplitXsplitXsplitX|xargs -d X -n 2 #<==Usa X come delimitatore e genera fino a 2 per riga.
find . -name "*.log"|xargs -i mv {} dir1/ #<==L'uso dell'opzione -i di xargs consente a {} di sostituire il file o la directory trovata dal comando find precedente.
find . -name "file*"|xargs -I [] cp [] dir2 L'opzione -I può specificare altri caratteri invece di {}, come [].
find . -type f -name "*.txt" -print0|xargs -0 rm -f #<==xargs pensa erroneamente che il loro delimitatore sia uno spazio La soluzione è separare l'output con il carattere null e utilizzare -. 0 opzione.
rinomina: rinomina il file
rinominare da a file
rinomina "_finished" "" * #<==Sostituisci _finished di tutti i file con vuoto.
rinomina .jpg .oldboy *.jpg #<==Sostituisci .jpg in tutti i file con .oldboy.
basename: visualizza il nome del file o il nome della directory
nomebase [<file o directory>] [suffisso]
basename /data/dir1/file1.txt #<==Rimuove la parte del percorso, cioè viene visualizzato solo il nome del file.
dirname: visualizza il percorso del file o della directory
dirname [<file o directory>
dirname /data/dir1/file1.txt #<==Visualizza solo il percorso in cui si trova il file. /dati/dir1
chattr: modifica gli attributi estesi di un file
chattr [opzioni] [modalità] [<file o directory>]
chattr a test #<== aAggiungi attributi aggiuntivi.
chattr i file1.txt #<==Utilizza il parametro i per bloccare il file.
lsattr: visualizza gli attributi dell'estensione del file
lsattr [opzioni] [<file o directory>]
lsattr file1.txt #<==Visualizza gli attributi estesi predefiniti del file.
lsattr -d dir2 #<==Utilizzare l'opzione -d per visualizzare gli attributi estesi della directory.
file: visualizza il tipo di file
file [opzioni] [<file o directory>]
file oldboy oldboy: directory #<==oldboy è una directory.
md5sum: calcola e verifica il valore MD5 del file
md5sum [opzioni] [file]
Il comando md5sum oldboy.txt #<==md5sum può connettere direttamente il file per ottenere il valore MD5 del file.
chown: cambia l'utente e il gruppo di utenti di un file o directory
chown [opzioni] [utente:gruppo] [<file o directory>]
Il ":" può essere sostituito con ".".
I nomi degli utenti e dei gruppi da autorizzare devono effettivamente esistere nel sistema Linux.
chown oldboy file1.txt #<==Autorizza l'utente oldboy, l'utente oldboy deve essere creato in anticipo.
chown .oldboy file1.txt #<==Autorizza il gruppo utenti oldboy Fai attenzione a non perdere il punto. Il punto qui può anche essere sostituito dai due punti.
chown root:root file1.txt #<==È possibile utilizzare ":" o ".".
chown -R oldboy.oldboy dir2/ #<==Usa il parametro -R per autorizzare in modo ricorsivo.
chmod: modifica i permessi di file o directory
Il comando chmod è un comando utilizzato per modificare i permessi di file o directory, ma solo il proprietario del file e il super utente root possono eseguire questo comando.
chmod [opzioni] [modalità] [<file o directory>]
chmod a= file1.txt #<==Imposta tutti i permessi (a) su vuoti (nessun carattere dopo il segno uguale).
chmod u x file1.txt #<==Imposta i permessi di esecuzione del proprietario del file utente.
chmod g w file1.txt #<==Imposta i permessi di scrittura del gruppo utente del file di gruppo.
chmod o file1.txt #<==Imposta altri permessi leggibili per altri utenti.
chmod ug r,o-r file1.txt #<==È possibile utilizzare più operazioni di autorizzazione insieme, separate da virgole ug r è l'abbreviazione di u r e g r.
chmod u=rwx,g=rx,o=x file1.txt #<== "=" revoca tutte le autorizzazioni originali e quindi concede le autorizzazioni fornite.
chmod 000 file1.txt #<==Questo ha lo stesso effetto dell'esempio precedente chmod a= file1.txt.
chmod 753 file1.txt #<==Tutti devono essere esperti nella conversione dei permessi numerici e dei permessi delle lettere.
chmod -R 777 dir2/ #<==Concede ricorsivamente i permessi alla directory dei file 777.
chgrp: cambia il gruppo utente del file
chgrp [opzioni] [gruppo utenti] [<file o directory>]
chgrp oldboy install.log #<==Il gruppo di utenti che modifica il file install.log è oldboy.
chgrp -R root dir1/ #<==Parametro -R autorizzazione ricorsiva.
umask: Visualizza o imposta la maschera di autorizzazione
umask [opzioni] [modalità]
Capitolo 3 Comandi di elaborazione del filtraggio dei file e della modifica dei contenuti
cat: unisci file o visualizza il contenuto del file
gatto [opzioni] [file]
cat >test.txt<<EOF EOF #<== Devi premere Invio per terminarlo. Inoltre, EOF deve apparire in coppia, ma può anche essere sostituito con altri tag accoppiati. Ad esempio: tag carattere oldboy, per impostazione predefinita, la fine EOF deve essere scritta in maiuscolo.
cat -n test.txt#<==Nota: come si può vedere dall'esempio precedente, l'opzione -n serve a numerare il contenuto del file in base alla riga e stampare l'output, comprese le righe vuote.
cat -b test.txt#<==Nota: come si può vedere dall'esempio precedente, l'opzione -b è simile all'opzione -n, ma l'opzione -b non numera le righe vuote.
cat -E test.txt#<== Nota: come si può vedere dall'esempio precedente, l'opzione -E visualizza il simbolo $ dell'identificatore finale nascosto alla fine del file. Anche se è una riga vuota, alla fine c'è un identificatore finale, quindi tutti dovrebbero prestare attenzione a questo.
cat -s test.txt#<==In origine qui c'erano tre righe vuote. Ora, grazie all'opzione -s, diventa una riga vuota.
cat >prova3.txt
I reindirizzamenti Cat e ">" indirizzano l'output standard a un file, che è un modo speciale per modificare i file.
Per terminare la modifica, puoi utilizzare il tasto di scelta rapida Ctrl d o Ctrl c per uscire, ma devi prima eseguire Invio e posizionare il cursore su una nuova riga non immessa.
Quando digiti in questo modo, scoprirai che se commetti un errore e premi semplicemente il tasto Backspace, non sarai in grado di eliminarlo. Devi tenere premuto il "tasto Ctrl Backspace" per eliminarlo.
Questa operazione è un metodo di modifica speciale, menzionato come punto di conoscenza esteso, e viene utilizzato raramente negli ambienti di produzione reali.
cat web01_access_20130522.log web02_access_20130522.log > web_access_20130522.log Utilizzare cat per connettere più file per unire i registri del cluster Web.
tac: visualizza il contenuto del file al contrario
tac [opzioni] [file]
altro: visualizza il contenuto del file nelle pagine
altro [opzioni] [file]
more /etc/services #<==Non accetta alcun parametro e visualizza il contenuto del file a schermo intero.
more -5 /etc/services #<==In questo momento, il contenuto del file non viene visualizzato a schermo intero, vengono visualizzate solo 5 righe di contenuto.
more 888 /etc/services #<==In questo momento, il contenuto del file viene visualizzato direttamente dalla riga 888.
ls /etc/|more -10 #<==Tutti dovrebbero sapere che ci sono molte directory di file in /etc. Direct ls view mostrerà troppo contenuto, quindi puoi usare il comando more per visualizzarlo nelle pagine.
meno: visualizza il contenuto del file in pagine
meno [opzioni] [file]
less /etc/services #<==Non accetta alcun parametro e visualizza il contenuto del file a schermo intero.
less -N /etc/services #<==C'è un numero di riga davanti a ogni riga.
ls /etc/|less #<==Visualizza il contenuto dei file della directory etc in pagine.
head: visualizza l'intestazione del contenuto del file
testa [opzioni] [file]
head /etc/passwd #<==Quando il comando head non riceve alcun parametro, per impostazione predefinita verranno visualizzate le prime 10 righe del file.
head -n 5 /etc/passwd #<==Il primo formato specifica le prime 5 righe da visualizzare.
head -5 /etc/passwd #<==Il secondo formato specifica anche le prime 5 righe da visualizzare, ma questo modo di scrivere è più snello.
head -c 10 /etc/passwd #<==Legge i primi 10 byte del file. Il metodo di scrittura precedente è in unità di riga, mentre -c è in byte. Questa funzionalità non è comunemente utilizzata.
head -n -21 /etc/passwd #<==Il numero qui è un valore negativo e questo metodo di scrittura non è comunemente usato.
tail: visualizza la coda del contenuto del file
coda [opzioni] [file]
tail /etc/passwd #<==Il comando tail non accetta parametri e visualizza le ultime 10 righe per impostazione predefinita.
tail -n 5 /etc/passwd #<==Visualizza le ultime 5 righe di testo
tail -5 /etc/passwd #<==Viene visualizzato il secondo modo di scrivere le ultime 5 righe del testo. Questo modo di scrivere è più semplice.
tail -n 15 /etc/passwd #<==Visualizza il file a partire dalla riga 15. Utilizzo esteso, ma non comunemente utilizzato.
tail -f /application/nginx/logs/access.log #<==tail -f monitora le modifiche ai file in tempo reale Uno scenario comune in produzione consiste nel monitorare i file di registro.
tail -f oldboy #<==Utilizza il parametro -f Quando il file non esiste, verrà segnalato un errore e il comando verrà terminato.
tail -F oldboy #<==Utilizza il parametro -F Quando il file non esiste, verrà restituito un errore, ma attenderà comunque che il file venga generato e non uscirà dal comando.
tailf: file di registro di traccia
tailf [opzioni] [file]
Il comando tailf è quasi equivalente a tail-f. La differenza con tail-f è che se il file non cresce, non accederà al file su disco e non modificherà il tempo di accesso al file.
tailf /application/nginx/logs/access.log #<== può facilmente controllare il file di registro in evoluzione.
cut: estrae una parte di testo dal testo e la visualizza
tagliare [opzione] [file]
cut -b 3 oldboy.txt #<==Visualizza solo il 3° byte.
cut -b 3-5,10 oldboy.txt #<==-b supporta la scrittura nel formato 3-5 e più posizioni sono separate da virgole.
cut -b -3 oldboy.txt #<==-3 significa dal primo byte al terzo byte.
cut -b 3- oldboy.txt #<==3- significa dal terzo byte alla fine della riga.
cut -b -3,3- oldboy.txt #<==Questo modo di scrivere produrrà l'intera riga e non ci saranno due lettere consecutive sovrapposte a.
cut -b 2-10 oldboy.txt#<==Nota: utilizzando l'opzione -c verranno utilizzati i caratteri come unità e l'output sarà normale. L'opzione -b calcolerà solo in byte (8 bit binari) e l'output sarà confuso. Quando si incontrano caratteri multibyte, è possibile utilizzare l'opzione -n -n per indicare a cut di non dividere i caratteri multibyte.
cut -d : -f 1 /etc/passwd #<==L'opzione -d specifica ":" come separatore e l'opzione -f specifica la prima area da visualizzare.
diviso: file diviso
dividere [opzioni] [file di input] [prefisso del nome del file di output]
split -l 10 inittab new_#<== divide ogni 10 righe e il nome del file diviso inizia con new_.
split -l 10 -a 3 inittab new2_#<==Il parametro -a specifica la lunghezza del suffisso.
split -l 10 -d inittab num_#<== Il parametro -d utilizza il suffisso numerico.
split -b 500K -d lvm lvm_#<==Dividi il file ogni 500KB.
incolla: unisci i file
incolla [opzioni] [file]
incolla test1 test2 #<==2 i file vengono uniti riga per riga.
incolla -d: test1 test2 #<==Usa ":" come separatore.
paste -s test1 #<==Utilizza l'opzione -s per convertire il contenuto di 1 colonna in 1 riga.
paste -s test1 test2 #<==Ogni file occupa una riga.
sort: ordinamento del testo
ordinare [opzioni] [file]
sort oldboy.txt #<== non riceve alcun parametro, convertirà il contenuto del file in codice ASCII e quindi confronterà. Poiché nel codice ASCII l'ordine dei numeri è lo stesso della nostra percezione, il risultato è il seguente.
sort -n oldboy.txt #<==Usa l'opzione -n per ordinare i numeri direttamente dal piccolo al grande.
sort -nr oldboy.txt #<== Simile a questa funzione, l'abbiamo già appresa nel comando ls. L'opzione -r significa inverso. Il comando sort ordina per impostazione predefinita in ordine crescente (da piccolo a grande). Se si utilizza l'opzione -r, cambia in ordine decrescente (da grande a piccolo).
sort -u oldboy.txt #<==Usa l'opzione -u per rimuovere le righe duplicate dal file Imparerai un comando uniq in seguito, che può anche rimuovere le righe duplicate.
sort -t " " -k2 oldboy1.txt #<== L'opzione -t specifica uno spazio come separatore e l'opzione -k seguita da 2 indica l'ordinamento in base alla seconda colonna.
unisci: unisci due file con gli stessi campi
unisci [opzioni] [file1] [file2]
join a.txt b.txt#<==Nota: il requisito per utilizzare join per unire file è che i due file devono essere ordinati per ordinamento.
uniq: rimuove le righe duplicate
uniq [opzioni] [file o input standard]
uniq oldboy.txt #<==Rimuove le righe duplicate senza assumere alcun parametro.
uniq -c oldboy.txt #<==Il parametro -c visualizza il numero di occorrenze della riga corrispondente.
sort -n oldboy.txt|uniq -c#<==uniq può deduplicare solo righe duplicate adiacenti, quindi dovresti usare sort per elaborare prima il file e poi deduplicare.
wc: conta il numero di righe, parole o byte del file
wc [opzioni] [file]
wc /etc/inittab 26 149 884 /etc/inittab #<==Se non accetti alcun parametro, cosa significa il numero visualizzato?
wc -l /etc/inittab #<==Numero di righe.
wc -m /etc/inittab #<==Numero di caratteri.
wc -w /etc/inittab #<==Numero di parole.
wc -L /etc/inittab #<==La lunghezza della riga più lunga.
iconv: il formato di codifica del file convertito
iconv [opzioni] [codifica originale] [nuova codifica] [file di input]
iconv -f gb2312 -t utf-8 GB2312.txt #<== Utilizza il parametro -f per specificare la codifica originale del file come gb2312 e utilizza il parametro -t per specificare la codifica da convertire in utf-8.
dos2unix: converte i file in formato DOS in formato UNIX
dos2unix [file]
diff: confronta le differenze tra due file
diff [opzioni] [file1] [file2]
prova di differenza1 prova2 1,3d0 #<==Cancella la riga da 1 a riga 3 del file 1, cancella la riga 0 del file 2, cioè non cancellare.
6a4,5 #<==Aggiungi le seguenti 2 righe di testo alla riga 6 del file 1, ovvero le righe 4 e 5 del testo 2.
Il formato di visualizzazione predefinito di diff presenta i seguenti tre prompt. ·a-aggiungere ·c-cambiamento ·d-elimina
diff -y test1 test2 #<==Utilizza il parametro -y per eseguire l'output affiancato.
diff -y -W 30 test1 test2 #<==Se ritieni che quanto sopra sia troppo largo, puoi utilizzare il parametro -W per specificare la larghezza.
diff /etc/rc3.d/ /etc/rc6.d/ #<==diff può non solo confrontare le differenze nel contenuto dei file, ma anche confrontare le differenze nei file nella directory.
vimdiff: strumento di confronto visivo
vimdiff [opzioni] [file1] [file2]
Vimdiff chiama vim per aprire i file Può aprire 2, 3 o 4 file contemporaneamente, fino a 4 file, e utilizzerà colori diversi per distinguere le differenze tra i file.
vimdiff prova1 prova2 #<==Per uscire dall'interfaccia vimdiff, è necessario eseguire l'operazione di uscita da vim due volte di seguito (:q). Il comando vim verrà spiegato in dettaglio più avanti. Poiché il comando vimdiff richiama la funzione vim, l'operazione di uscita è la stessa di vim.
rev: inverte il contenuto del file di output
rev [file]
echo {1..10}|rev #<==I caratteri sopra sono scritti al contrario.
rev oldboy.txt #<==Puoi confrontarlo con il comando tac che hai imparato in precedenza.
tr: sostituisci o elimina caratteri
tr [opzioni] [car1] [car2]
Il comando tr sostituisce, riduce o elimina caratteri dallo standard input e scrive i risultati sullo standard output.
tr 'abc' 'xyz' < oldboy.txt #<==Il comando tr per connettere i file è speciale e richiede il simbolo di reindirizzamento "<".
tr '[a-z]' '[A-Z]' <oldboy.txt #<==Converti lettere minuscole in maiuscole.
tr '[0-9]' '[a-j]' < oldboy.txt #<==Sostituisci il numero 0 con a, sostituisci 1 con b...corrispondenza uno a uno.
tr -d 'oldboy'<oldboy.txt #<==Utilizza il parametro -d per eliminare i caratteri.
tr -d ' \t' < oldboy.txt #<== Usa il parametro -d per rimuovere tutti i caratteri di nuova riga e i caratteri di tabulazione. Tutte le righe diventano una riga e le lettere sono collegate insieme.
echo 'oooolllddbbboyyyyy' |tr -s oldboy #<==Usa il parametro -s per comprimere caratteri consecutivi in uno solo.
tr '0-9' '*' < oldboy.txt #<==Sostituisci tutti i numeri con *.
tr -c '0-9' '*' < oldboy.txt #<==Utilizza il parametro -c, ad eccezione dei numeri, gli altri caratteri inclusi i ritorni a capo verranno sostituiti con *.
od: visualizza i file in basi diverse
od [opzioni] [file]
tee: targeting multiplo
tee [opzioni] [file]
il comando ls|tee ls.txt #<==ls prende il controllo del comando channel e tee, visualizza il risultato di ls sullo schermo e scrive il risultato in ls.txt.
ls|tee -a ls.txt #<==Utilizzare il parametro -a per aggiungere contenuto al file senza cancellare il contenuto esistente nel file.
vi/vim: editor di testo semplice
vim [opzioni] [file]
Tre modalità di vim
Modalità normale
modalità Modifica
Le operazioni di modifica dell'immissione non possono essere eseguite in modalità normale. È possibile accedere alla modalità di modifica solo premendo lettere come "i, I, o, O, a, A, r, R, s, S" (di cui "I" è la lettera). più comunemente utilizzati). Eseguire operazioni di modifica come l'immissione di testo. Una caratteristica importante per verificare se il file è in modalità di modifica è che deve essere presente un segno di inserimento "--INSERT--" o "--INSERT--" nell'angolo inferiore sinistro della finestra.
modalità di comando
In modalità normale, quando si immette ":" o "/" o "?", il cursore localizzerà automaticamente quella riga. In questa modalità è possibile eseguire operazioni di salvataggio, uscita, ricerca, sostituzione, visualizzazione dei numeri di riga e altre operazioni correlate.
Riepilogo di come aprire i file in vim
vim file: apre/crea un nuovo file, posiziona il cursore all'inizio della riga 1 e file è un nome di file qualsiasi.
vim file n: apri il file, posiziona il cursore all'inizio dell'ennesima riga, n è un numero naturale.
vim file: apri il file e posiziona il cursore all'inizio dell'ultima riga.
vim file /pattern: posiziona il cursore sulla prima stringa che corrisponde a pattern e pattern è qualsiasi stringa.
Capitolo 12 Comandi integrati di uso comune nei sistemi Linux
Esempi di comandi integrati di Linux di uso comune
helpVisualizza la guida del comando integrato
aiuto [opzioni] [comando integrato]
help #<==Usa il comando help per visualizzare tutti i comandi integrati di Linux.
help help #<== Il formato "help comando integrato" ti consente di visualizzare la guida per i comandi integrati e anche l'aiuto stesso è un comando integrato.
help cd #<==Visualizza la documentazione della guida per il comando cd.
help -d cd #<==Emette una breve descrizione del comando integrato.
help -m cd #<==Visualizza nel formato man help.
help -s cd #<==Visualizza solo la sintassi del comando.
Segnaposto":"
if [ $i -eq 1 ] #<==Espressione condizionale. Poi : #<==Se l'istruzione if giudizio viene utilizzata nello script Shell, alcune operazioni verranno solitamente eseguite dopo che il giudizio ha avuto successo, ma a volte non si sa quali operazioni eseguire o certe operazioni non devono essere eseguite. Tuttavia, a causa del formato di sintassi fisso dell'istruzione if, devo scrivere un comando per occupare lo spazio, perché se questa riga non ha contenuto, verrà segnalato un errore di sintassi. A questo punto, sarà il segnaposto ":". usato, ma non preoccuparti, questo comando non avrà alcun impatto sullo script della tua shell, è un po' come il campo pass in altri linguaggi di programmazione. altro eco "Ciao mondo" fi
"." e fonte
"." e source vengono spesso utilizzati per caricare o eseguire script di Shell, ma sono diversi dal metodo convenzionale di esecuzione degli script di Shell. Diamo un’occhiata al confronto qui sotto.
·Il primo metodo, nome-script bash o nome-script sh, è un metodo spesso utilizzato quando il file di script stesso non dispone di permessi eseguibili (ovvero, il bit x dell'attributo di autorizzazione del file è -). l'interprete non è specificato all'inizio del file di script È inoltre necessario quando necessario.
·Il secondo metodo è nome-script di origine o nome-script. Questo metodo solitamente utilizza source o "." (punto) per leggere o caricare il file di script della Shell specificato (come san.sh), quindi, in sequenza, eseguire tutte le istruzioni nel file di script della Shell specificato san.sh. Queste istruzioni verranno eseguite nell'attuale processo padre.sh dello script Shell genitore (diverse altre modalità avvieranno un nuovo processo per eseguire lo script figlio). Pertanto, utilizzando source o "." è possibile passare il valore della variabile o restituire il valore di una funzione nello script san.sh stesso allo script Shell padre corrente padre.sh per l'uso.
Test condizionale "[" e test
·Il formato della sintassi del test condizionale è: test<espressione di test> ·Il formato della sintassi di [] test condizionale è: [<espressione test>]
Devono esserci spazi ad entrambe le estremità delle parentesi. [] equivale a test, ovvero tutte le opzioni di giudizio di test possono essere utilizzate direttamente in [], ma si consiglia di utilizzare [].
test -f file && echo true ||. echo false #<==È vero se il file file esiste ed è un file normale Poiché il file file non esiste, viene restituito false.
[ -f /tmp/oldboy.txt ] && echo 1 ||. echo 0 #<== Vero se il file /tmp/oldboy.txt esiste ed è un file normale, poiché il file non esiste, viene restituito 0.
Alias dei comandi alias e unalias
alias [alias comando]=[istruzione di comando] unalias [alias di comando]
alias #<==Senza parametri vengono visualizzati tutti gli alias dei comandi.
alias rm='echo "Non usare rm."' #<==Definire un nome alias rm per l'echo "Non usare rm." e l'istruzione di comando tra virgolette singole deve essere eseguibile.
alias rm #<==Interroga l'istruzione di comando puntata da rm.
alias eth0='cat /etc/sysconfig/network-scripts/ifcfg-eth0' #<==Definisce l'alias eth0.
·Aggiungi alcuni parametri di protezione ai comandi pericolosi per prevenire errori umani, come l'alias di rm. ·Convertire molte stringhe o comandi complessi in una stringa o un comando semplice, come l'alias di eth0.
unalias eth0 #<==Elimina l'alias utilizzando unalias
Comandi relativi alle attività in background bg/fg/jobs
Il comando bg viene utilizzato per trasferire le attività di esecuzione in primo piano in background o eseguire le attività sospese in background; il comando fg è l'opposto del comando bg, trasferisce le attività in background in primo piano per l'esecuzione del comando jobs per visualizzare l'elenco delle attività in background.
bg [numero sequenza attività] fg [numero sequenza attività] lavori
uscire dal giro
#!/bin/bash for((i=0; i<=5; i )) Fare se [ $i -eq 3 ] ;allora break; #<==Esci dall'intero ciclo e continua l'esecuzione del programma fuori dal ciclo. fi eco $i Fatto eco "ok"
continuare nel ciclo successivo
#!/bin/bash for((i=0; i<=5; i )) Fare se [ $i -eq 3 ] ;allora continue; #<==Termina questo ciclo e continua il ciclo successivo. fi eco $i Fatto eco "ok"
eval esegue i parametri come comandi
echo `hostname -I` #<==Se vuoi eseguire comandi tra virgolette, devi usare i backtick, chiamati anche backtick.
echo ''hostname -I`' #<==Gli apici inversi sono racchiusi tra virgolette singole. La funzione delle virgolette singole è che ciò che vedi è ciò che ottieni, quindi il risultato è `hostname -I`. "nome host -I".
eval echo ''hostname -I`' #<==Aggiungi un comando eval all'inizio del comando, le virgolette singole non sono valide! Perché il comando eval può prima analizzare o eseguire variabili o comandi racchiusi tra virgolette singole.
exit esce dalla riga di comando della Shell
exit #<==Per uscire dalla riga di comando della Shell, è possibile utilizzare il comando exit, il tasto di scelta rapida Ctrl D o il comando logout.
#!/bin/bash for((i=0; i<=5; i )) Fare se [ $i -eq 3 ] ;allora exit #<==Una volta eseguito il comando exit, l'intero script uscirà e il contenuto rimanente dello script non verrà eseguito nuovamente. fi eco $i Fatto eco "ok"
esporta Visualizza o imposta variabili globali
esporta [opzioni]
export -p #<==Stampa tutte le variabili d'ambiente utilizzando l'opzione p.
export MYENV=7 #<==Solo le variabili impostate utilizzando il comando export sono variabili globali.
cronologia Visualizza la cronologia dei comandi
cronologia [opzioni]
History #<==Visualizza tutti i record della cronologia del comando.
History 10 #<== Il comando History seguito dal numero n indica che verranno visualizzati i record di n comandi più recenti.
History -d 991 #<== "history -d numero di sequenza del comando di cronologia" può cancellare il comando di cronologia del numero di sequenza specificato.
cronologia -c #<==Usa l'opzione -c per cancellare la cronologia di tutti i comandi.
leggere la variabile di assegnazione interattiva
Il comando read legge una riga dallo standard input e assegna il valore di ciascun campo della riga di input a una variabile Shell.
leggi [opzione] [nome variabile]
read #<==Esegui il comando read e la riga di comando attende l'input. oldboy #<==Inserisci la stringa oldboy.
echo $REPLY #<==readL'input ottenuto viene memorizzato nella variabile REPLY per impostazione predefinita.
leggi uno #<==leggi è seguito da un nome di variabile e i dati di input verranno assegnati a questa variabile.
leggi uno due #<==leggi può essere seguito da più nomi di variabili. n1 n2 #<== Per impostazione predefinita, gli spazi vengono utilizzati come separatori. Il primo paragrafo n1 è assegnato alla prima variabile uno e il secondo paragrafo n2 è assegnato alla seconda variabile due.
leggi uno due m1 m2 m3 #<==Se i dati di input superano il numero di variabili, tutti i valori finali verranno assegnati all'ultima variabile, m1 verrà assegnato alla variabile uno e "m2 m3" sarà assegnati insieme alla variabile due.
leggi -p "Inserisci la tua età:" età #<==Ci deve essere almeno uno spazio davanti alla variabile età! Utilizzare il parametro -p per definire le istruzioni visualizzate sulla riga di comando, che è più facile da usare.
leggi -t 3 -p "Inserisci la tua età:" età #<==Utilizza il parametro -t per specificare il numero di secondi di attesa Trascorso questo tempo, il comando terminerà automaticamente.
L'opzione -s impedisce che i dati immessi nel comando di lettura vengano visualizzati sullo schermo, come le password.
leggi -n 3 -p "Puoi inserire solo 3 caratteri. Se non mi credi, provalo:" num
type determina il tipo di comando
digitare [opzione] [comando]
digitare ls #<== senza parametri, visualizza le informazioni principali di ls.
type -a ls #<==Visualizza tutte le informazioni rilevanti.
ulimit modifica i limiti di utilizzo delle risorse di sistema
Il comando ulimit viene utilizzato per verificare l'utilizzo delle risorse di sistema. Può anche modificare la quota assegnata alle risorse di sistema da processi o utenti.
limite [opzioni]
ulimit -a visualizza tutti i limiti attuali di utilizzo delle risorse di sistema.
ulimit -n 1024 #<==Il numero massimo predefinito di file aperti (chiamati anche descrittori di file) nel nuovo sistema è 1024. Questo valore è troppo piccolo per il server nell'ambiente di produzione, quindi questo valore viene solitamente modificato durante l'ottimizzazione del server . grande.
ulimit -n 65535 #<==L'importo della regolazione è 65535, ma la regolazione tramite il comando ha effetto solo per la finestra corrente, quindi il file di configurazione deve essere modificato.
echo '* - nofile 65535' >> /etc/security/limits.conf #<==Modifica il file di configurazione e diventa effettivo in modo permanente.
unset cancella le variabili
unset OLDBOY oldgirl #<==il comando unset può cancellare il valore della variabile.
Capitolo 11 Comandi di gestione del sistema Linux
lsof: visualizza i file aperti da un processo
lsof [opzioni]
lsof /var/log/messages mostra i processi che utilizzano il file.
lsof -c rsyslog #<==Utilizzare l'opzione -c per visualizzare i file aperti dal processo specificato.
lsof -p 1277 #<==Utilizzare l'opzione -p per visualizzare i file aperti dal numero di processo specificato.
lsof -i #<==Visualizza tutti i processi.
lsof -i tcp #<==Visualizza le informazioni sul processo di tutte le connessioni di rete TCP.
lsof -i :22 #<==Visualizza il processo con la porta 22. Questo comando è molto comunemente usato.
lsof -i tcp:22 #<==Visualizza i processi che soddisfano sia TCP che la porta 22.
lsof -u oldboy #<==Usa l'opzione -u per visualizzare i file utilizzati dall'utente oldboy.
lsof -U #<==Utilizzare l'opzione -U per visualizzare tutti i file socket.
uptime: visualizza il tempo di funzionamento e il carico del sistema
tempo di attività
free: visualizza le informazioni sulla memoria di sistema
gratuito [opzione]
free #<==Senza parametri, la visualizzazione predefinita è il numero di byte, che è difficile da capire.
free -m #<==Utilizza l'opzione -m per visualizzare l'utilizzo della memoria in MB.
free -h #<==Utilizza l'opzione -h per convertire automaticamente in unità KB, MB e GB in base alla dimensione effettiva per visualizzare l'utilizzo della memoria.
free -h -s 10 #<==Utilizza l'opzione -s per aggiornare regolarmente l'utilizzo della memoria, in pochi secondi.
iftop: visualizza dinamicamente le informazioni sul traffico dell'interfaccia di rete
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum -y installa iftop
iftop [opzioni]
iftop interfaccia: eth0 #<==La prima scheda di rete del sistema di monitoraggio viene utilizzata per impostazione predefinita. È possibile utilizzare l'opzione -i per specificare la scheda di rete di monitoraggio.
iftop -nNBP ·-n: non esegue la risoluzione DNS e visualizza l'indirizzo numerico IP. ·-N: Visualizza il numero della porta in formato numerico. ·-P: Visualizza il numero della porta. ·-B: L'impostazione predefinita è visualizzare il traffico in unità di bit, che deve essere calcolato per conformarsi alla nostra comprensione, ma utilizzando l'opzione -B verrà visualizzato direttamente il traffico in byte.
vmstat: statistiche sulla memoria virtuale
vmstat [opzioni] [intervallo [numero di volte]]
1) Nel comando vmstat e nelle opzioni successive, deve esserci almeno uno spazio tra ciascun elemento. 2) il ritardo rappresenta l'intervallo tra due uscite. 3) count rappresenta il numero di statistiche in base all'intervallo di tempo specificato da ritardo.
vmstat #<==Se i parametri "intervallo" e "numero di volte" vengono omessi, il report verrà visualizzato solo una volta e poi uscirà.
vmstat 5 #<== significa che le informazioni sull'output vengono aggiornate ogni 5 secondi, l'output viene ripetuto in loop e la combinazione di tasti Ctrl C viene premuta per interrompere l'output.
vmstat 5 6 #<== significa che le informazioni sull'output vengono aggiornate ogni 5 secondi e l'output si interrompe dopo aver contato 6 volte.
vmstat -a 2 5 visualizza la memoria attiva e inattiva.
vmstat -s Visualizza i dettagli sull'utilizzo della memoria.
vmstat -d Visualizza le letture/scritture del disco.
vmstat -p /dev/sda1 Visualizza le statistiche di lettura e scrittura del disco /dev/sda1.
mpstat: statistiche sulle informazioni della CPU
mpstat [opzioni] [intervallo di tempo [numero di volte]]
1) Nel comando mpstat e nelle opzioni successive, deve esserci almeno uno spazio tra ciascun elemento. 2) il ritardo rappresenta l'intervallo di tempo tra due uscite. 3) count rappresenta il numero di statistiche in base all'intervallo di tempo specificato da ritardo.
mpstat #<==Se i parametri "intervallo di tempo" e "numero di volte" vengono omessi, il report verrà visualizzato una sola volta e poi uscirà.
mpstat 5 6 #<== significa che le informazioni sull'output vengono aggiornate ogni 5 secondi e l'output si arresta dopo aver contato 6 volte.
mpstat -P 0 #<==Visualizza le informazioni della prima CPU.
iostat: statistiche sulle informazioni di I/O
iostat [opzioni] [intervallo [numero di volte]]
1) Nel comando iostat e nelle opzioni successive, deve esserci almeno uno spazio tra ciascun elemento. 2) intervallo rappresenta l'intervallo tra due uscite. 3) count rappresenta il numero di statistiche in base all'intervallo di tempo specificato da ritardo.
iostat #<==Se i parametri "intervallo di tempo" e "numero di volte" vengono omessi, il report verrà visualizzato una sola volta e poi uscirà.
iostat 2 3 #<==Aggiorna il display ogni 2 secondi e visualizzalo 3 volte in totale.
iostat -d #<==L'opzione -d visualizza solo le statistiche del disco.
iostat -d -k #<==L'opzione -k visualizza i dati in kB.
iostat -d -m #<==L'opzione -m visualizza i dati in MB.
iostat -d -x -k #<==L'opzione -x visualizza informazioni estese.
iostat -c #<==L'opzione -c viene utilizzata solo per visualizzare le statistiche della CPU del sistema.
iotop: visualizza dinamicamente le statistiche I/O del disco
iotop [opzioni]
iotop
sar: raccoglie informazioni di sistema
sar [opzioni] [intervallo [numero di volte]]
1) Nel comando sar e nelle opzioni successive deve esserci almeno uno spazio tra ogni elemento. 2) intervallo rappresenta l'intervallo tra due uscite. 3) count rappresenta il numero di statistiche in base all'intervallo di tempo specificato da interval.
sar -u 2 3 #<==Utilizzare l'opzione -u per visualizzare lo stato di caricamento di tutte le CPU nel sistema durante il tempo di campionamento, seguito da 2 3 che indica le statistiche una volta ogni 2 secondi e 3 volte.
sar -q 2 3 #<==Utilizzare l'opzione -q per visualizzare la dimensione della coda di esecuzione.
sar -r 2 3 #<==Utilizzare l'opzione -r per visualizzare l'utilizzo della memoria di sistema durante il tempo di campionamento.
sar -b 2 3 #<==Utilizzare l'opzione -b per visualizzare l'utilizzo del buffer durante il tempo di campionamento.
sar -n DEV 2 3 #<==Utilizzare -n DEV per visualizzare le informazioni sull'interfaccia di rete.
sar -n EDEV 2 3 #<==Utilizzare -n EDEV per visualizzare le statistiche sugli errori di rete.
sar -n SOCK 2 3 #<==Utilizzare -n SOCK per visualizzare le informazioni sul socket.
sar -d 2 3 #<==Utilizzare l'opzione -d per visualizzare lo stato di utilizzo di tutti i dispositivi a disco rigido nel sistema durante il tempo di campionamento.
chkconfig: gestisci il servizio di avvio
chkconfig [opzioni]
chkconfig --list #<==Utilizza direttamente l'opzione --list per visualizzare lo stato di tutti i servizi.
chkconfig --list sshd #<==Specificare il nome del servizio di sistema per visualizzare lo stato di avvio di questo servizio.
chkconfig sshd off #<==Utilizzare off per disattivare il servizio sshd e avviarlo automaticamente al livello 2, 3, 4 e 5.
chkconfig sshd on #<==Utilizzare on per abilitare l'avvio automatico del servizio sshd al livello 2, 3, 4 e 5.
chkconfig --level 3 sshd off #<==Utilizzare --level per specificare di disattivare il servizio sshd e avviarlo automaticamente al livello 3.
chkconfig --level 3 sshd on #<==Utilizzare --level per specificare che il servizio sshd verrà avviato automaticamente al livello 3.
ntsysv: gestisci il servizio di avvio
ntsysv [opzioni]
ntsysv
setup: strumento di gestione del sistema
Il comando setup è uno strumento di gestione del sistema basato su interfaccia testuale che integra la gestione dell'autenticazione utente, la gestione del firewall, la gestione della rete e la gestione dei servizi di sistema.
impostare
ethtool: interroga i parametri della scheda di rete
ethtool [dispositivo scheda di rete]
ethtool eth0 #<==Connetti la scheda di rete specificata per visualizzare i parametri della scheda di rete.
mii-tool: gestisci lo stato delle interfacce di rete
mii-tool [opzioni] [interfaccia di rete]
mii-tool eth0 #<==Non accetta alcuna opzione e visualizza informazioni semplificate.
mii-tool -v eth0 #<==Usa l'opzione -v per visualizzare informazioni dettagliate.
dmidecode: interroga informazioni sull'hardware del sistema
dmidecode [opzioni]
dmidecode -s nome-prodotto-sistema #<==Il modello del server dell'autore è Dell 2950. PowerEdge 2950
dmidecode -s numero-seriale-sistema #<==Visualizza la parola chiave del numero seriale numero-seriale-sistema.
dmidecode -t memory #<==-Utilizzare l'opzione -t seguita dalla parola chiave memory per visualizzare solo le informazioni sulla memoria. È possibile visualizzare ulteriori parole chiave tramite il comando dmidecode -t.
lspci: mostra tutti i dispositivi PCI
lspci [opzioni]
lspci -s 02:04.0 #<==02:04.0 Dall'esempio 1, possiamo conoscere il numero del dispositivo della scheda di rete.
lspci -s 02:04.0 -v #<==Visualizza informazioni dettagliate.
ipcs: visualizza lo stato delle strutture di comunicazione tra processi
ipcs [opzioni]
ipcrm: cancella le informazioni relative a ipc
ipcrm [opzioni]
ipcrm -s 0 #<==Rimuove il set di segnali con un semidio specificato pari a 0.
giri/min: gestore di pacchetti RPM
giri/min [opzioni]
rpm -qpi lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Visualizza la versione del pacchetto rpm, la data di creazione e altre informazioni.
rpm -qpl lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Visualizza i file nel pacchetto rpm.
rpm -qpR lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Visualizza i file richiesti per installare questo pacchetto rpm.
rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm #<==Installa il pacchetto rpm e utilizza il parametro -h per visualizzare la barra di avanzamento. #<==rpm supporta anche l'installazione online, collegandosi direttamente a un indirizzo URL
rpm -qa lrzsz #<==Il parametro -p non viene utilizzato qui perché lrzsz è il nome del software e non termina con ".rpm".
rpm -e lrzsz #<== Utilizzare il parametro -e per disinstallare il pacchetto software. Questo parametro è più pericoloso In genere, cercare di non disinstallare il pacchetto software se non è necessario, perché è molto probabile che alcuni file necessari per il sistema verrà eliminato per errore causando infine danni al sistema.
rpm -qf $(what ifconfig) #<== A volte scoprirai che il sistema non ha determinati file o comandi, ma non sai a quale pacchetto software appartiene il file o il comando. In questo caso, puoi utilizzare il file -f parametro da interrogare (in Query sul sistema che dispone di questo file). Ad esempio, in questo esempio, il comando ifconfig appartiene al pacchetto software net-tools.
yum: strumento automatizzato di gestione dei pacchetti RPM
yum [opzioni] [comando] [pacchetto]
gnam installa httpd
yum list httpd #<==Controlla l'elenco di installazione httpd.
yum search httpd #<==Cerca i pacchetti contenenti la stringa httpd.
yum grouplist #<==Visualizza i gruppi di pacchetti installati e disinstallati.
yum groupinstall "Supporto SNMP" -y #<==Installa il gruppo di pacchetti, cerca da yum grouplist.
Capitolo 10 Comandi di gestione della rete Linux
ifconfig: configura o visualizza le informazioni sull'interfaccia di rete
ifconfig [interfaccia di rete] [opzioni]
interfaccia è il nome dell'interfaccia di rete. I nomi delle interfacce di rete sotto Linux sono simili a eth0, eth1 e lo, ecc., che rappresentano rispettivamente la prima scheda di rete, la seconda scheda di rete e l'interfaccia di loopback. Questa è un'opzione opzionale. Se non aggiungi questa opzione, verranno visualizzate tutte le informazioni sulla scheda di rete nel sistema. Se aggiungi questa opzione, verranno visualizzate le informazioni sulla scheda di rete specificata.
L'utilizzo del comando ifconfig per configurare le informazioni sulla scheda di rete avrà effetto solo temporaneamente. Il riavvio della configurazione della rete o del server lo invaliderà.
Il comando ifconfig deve essere eseguito come utente root durante la configurazione delle informazioni sulla scheda di rete.
ifconfig #<==Visualizza tutte le informazioni sulla scheda di rete nel sistema.
Il comando Ifconfig eth0 #<== è collegato al nome della scheda di rete per specificare le informazioni della scheda di rete da visualizzare.
ifconfig -a #<==Utilizza l'opzione -a per visualizzare tutte le informazioni sulla scheda di rete.
ifconfig eth1 up #<==Aggiungere dopo il nome della scheda di rete per avviare la scheda di rete.
ifconfig eth1 down #<==Aggiungere down dopo il nome della scheda di rete per spegnerla.
ifconfig eth0 192.168.120.56 #<==Collega l'indirizzo IP direttamente alla scheda di rete da configurare.
ifconfig eth0:0 10.0.0.8 netmask 255.255.255.0 up#<== Formato sintassi: Alias Indirizzo IP Subnet mask Attiva scheda di rete
ifconfig eth0:1 10.0.0.9/24 up #<==Aggiungi un secondo alias IP, 10.0.0.9/24 ha lo stesso effetto di 10.0.0.9 netmask 255.255.255.0, 24 è la maschera di sottorete 255.255.255.0 Un'altra forma di espressione .
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE#<==Parole chiave per modificare l'indirizzo MAC hw (impostare l'indirizzo MAC) ether (tipo di dispositivo di rete).
ifup: attiva l'interfaccia di rete
ifup [interfaccia di rete]
ifup eth0 #<==Attiva l'interfaccia di rete eth0 Poiché eth0 ha già iniziato a funzionare, il prompt è il seguente. RTNETLINK risponde: Il file esiste
ifup eth1 #<==Attiva l'interfaccia di rete eth1 In circostanze normali, non viene visualizzato alcun output.
fup eth2 #<==Attiva l'interfaccia di rete eth2 e segnala un errore Impossibile trovare il file di configurazione di eth2.
ifdown: disabilita l'interfaccia di rete
ifdown [interfaccia di rete]
ifdown eth1 #<==Chiude la scheda di rete eth1.
route: visualizza o gestisci le tabelle di routing
percorso [opzioni]
route #<==Per impostazione predefinita, il comando route eseguirà la risoluzione DNS sull'indirizzo IP per generare un nome host.
route -n #<==Utilizzare l'opzione -n per non eseguire la risoluzione DNS, che velocizzerà la visualizzazione.
route del default #<==Cancella metodo gateway 1.
route add default gw 10.0.0.2 #<== Aggiungi metodo gateway 1, è necessario specificare l'indirizzo gateway 10.0.0.2 o altro indirizzo corretto.
route del default gw 10.0.0.2 #<==Elimina metodo gateway 2.
route add default gw 10.0.0.2 dev eth0#<==Aggiungi metodo gateway 2, utilizza dev per specificare il dispositivo di rete, adatto per host con più dispositivi di rete.
arp: gestisce la cache arp del sistema
arp [opzioni]
arp #<==Visualizza tutte le voci nella cache arp.
arp -n #<==Utilizzare l'opzione -n per visualizzare numericamente tutte le voci nella cache arp.
arp -n 10.0.0.1 #<==Specifica di interrogare le informazioni arp di 10.0.0.1.
arp -s 10.0.0.100 00:0c:29:c0:5a:ef #<==Associa indirizzo IP e indirizzo MAC.
arp -d 10.0.0.100 #<==Elimina il collegamento ARP statico.
ip: strumento di configurazione della rete
ip [opzioni] [oggetto di rete] [comando operativo]
ip link show dev eth1 #<==Visualizza le proprietà della scheda di rete eth1.
ip -s link show dev eth1 #<==Visualizza attributi dettagliati.
ip -s -s link show dev eth1 #<==Utilizzare due -s per visualizzare attributi più dettagliati.
ip link set eth1 up #<==Attiva la scheda di rete eth1.
ip link set eth1 down #<==Spegnere la scheda di rete eth1.
ip link set indirizzo eth1 0:0c:29:13:10:11 #<==Modifica l'indirizzo MAC.
ip a #<==L'effetto è lo stesso dell'indirizzo IP. I risultati visualizzati includono le schede di rete attivate e inattive.
ip a add 172.16.1.12/24 dev eth1 #<==Utilizzare l'opzione add per aggiungere un indirizzo IP 172.16.1.12, subnet mask 255.255.255.0, abbreviato come 172.16.1.12/24, e utilizzare l'opzione dev per specificare la rete dispositivo come eth1.
ip a add 172.16.1.13/24 dev eth1 #<==È possibile aggiungere più indirizzi IP, chiamati IP ausiliari. L'alias creato dal precedente comando ifconfig è IP. Al giorno d'oggi, i software ad alta disponibilità comunemente utilizzati come heartbeat e keepalive utilizzano tutti IP ausiliario.
ip a del 172.16.1.12/24 dev eth1 #<==Elimina l'IP principale, elimina l'indirizzo IP configurato dal comando ip e modifica direttamente l'opzione di aggiunta nel comando add precedente in del.
·L'eliminazione dell'indirizzo IP principale della scheda di rete eliminerà anche tutti gli indirizzi IP della scheda di rete. ·L'eliminazione dell'indirizzo IP ausiliario della scheda di rete non avrà effetto sugli altri indirizzi IP della scheda di rete.
ip a add 10.0.0.20/32 dev eth1 label eth1:1 #<== Usa l'opzione label per creare un IP alias.
ip route|column -t #<==Utilizzare il comando column per formattare, opzione -t, per impostazione predefinita, il numero di colonne nella riga di input è determinato in base alla separazione degli spazi per creare una tabella.
percorso ip aggiungi 10.1.0.0/24 tramite 10.0.0.253 dev eth0 #<==Aggiungi percorso statico.
ip route del 10.1.0.0/24 #<==Elimina route statica.
ip neighbor #<==Utilizzare il comando neighbor per visualizzare la cache arp.
ip neighbor add 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev eth0 #<==Aggiungi ARP statico.
ip neighbor del 192.168.1.100 dev eth0 #<==Elimina ARP statico.
netstat: visualizza lo stato della rete
netstat [opzioni]
netstat -an #<== Le combinazioni comunemente utilizzate -a e -n visualizzano tutte le informazioni sulla connessione.
netstat-lntup La funzione dell'istruzione di comando precedente è visualizzare tutte le informazioni sulla connessione in ascolto TCP e UDP. ·-l: Visualizza tutte le connessioni di rete nello stato ASCOLTA. ·-n: Visualizza l'indirizzo IP senza risoluzione DNS nel nome host e nel nome di dominio. ·-t: Visualizza tutte le connessioni TCP. ·-u: Visualizza tutte le connessioni UDP. ·-p: Visualizza il numero del processo e il nome del processo.
netstat -rn #<==Utilizzare l'opzione -r per visualizzare le informazioni sulla tabella di routing. L'opzione -n non esegue la risoluzione DNS per accelerare l'esecuzione dei comandi.
ss: visualizza lo stato della rete
Il comando ss è uno strumento simile a e sostituirà netstat. Può essere utilizzato per visualizzare le informazioni sullo stato della rete, incluse connessioni TCP, UDP, porte, ecc. Il suo vantaggio è che può visualizzare informazioni sempre più dettagliate sullo stato della connessione di rete ed è più veloce ed efficiente di netstat.
Se il sistema non dispone del comando ss, è necessario installarlo. Il comando ss appartiene al pacchetto iproute, quindi il comando di installazione è yum-y install iproute.
mess [opzioni] [filtro]
ss -an #<==Visualizza tutte le connessioni socket.
ss -an|column -t #<==L'output sopra sarà un po' confuso quando verrà scritto nel documento. Formattiamolo con colonna.
ss -lntup|column -t #<==Visualizza tutte le connessioni TCP e UDP in ascolto.
ss -s #<== Conta il numero corrente di socket TCP stabiliti, chiusi, orfani e in attesa.
ping: verifica la connettività di rete tra host
ping [opzioni] [host di destinazione]
ping www.oldboyedu.com #<==Il comando ping è direttamente collegato al nome di dominio o IP e il risultato del ping verrà sempre visualizzato.
ping -c 3 -i 3 -s 1024 -t 255 www.oldboyedu.com ·-c 3: invia pacchetti ICMP 3 volte. ·-i 3: L'intervallo di tempo tra ogni invio di pacchetti è 3 s. ·-s 1024: imposta la dimensione del pacchetto inviato su 1024 byte. ·-t 255: imposta il valore ttl del pacchetto dati inviato su 255.
traceroute: tiene traccia dello stato del routing della trasmissione dei dati
traceroute [opzioni] [nome host o IP] [dimensione del pacchetto]
arping: invia richiesta arp
arpeggio [opzioni]
arping -f 10.0.0.1 #<== Utilizzare l'opzione -f per uscire quando viene ricevuta la prima risposta per rilevare se l'host di destinazione è attivo.
arping -f 10.0.0.3 #<==Un host che non è in esecuzione non risponderà e il comando attende finché non termina Ctrl C.
telnet: accesso remoto all'host
telnet [opzioni] [nome host o IP] [porta]
telnet 10.0.0.12 22 #<==Sostituisci qui 10.0.0.12 con l'IP del lettore e 22 è il numero di porta predefinito del servizio SSH.
nc: strumento di rete multifunzionale
nc è uno strumento di rete semplice, affidabile e potente in grado di stabilire connessioni TCP, inviare pacchetti UDP, ascoltare qualsiasi porta TCP e UDP, eseguire la scansione delle porte ed elaborare pacchetti IPv4 e IPv6. Se il sistema non dispone del comando nc, è possibile installarlo manualmente. Il comando di installazione è yum-y install nc.
nc [opzioni]
nc -l 12345 >oldboy.nc #<==Ascolta la porta 12345 e scrivi i dati su oldboy.nc. #<==Dopo aver eseguito il comando precedente, la finestra corrente si blocca. #<==Apre una nuova finestra per eseguire il comando.
nc 10.0.0.12 12345 <oldboy.log #<==Utilizzare il comando nc per trasferire il file oldboy.log alla porta 12345 dell'host 10.0.0.12.
nc -z 10.0.0.12 20-30 #<==Scansiona le porte da 20 a 30 dell'host 10.0.0.12.
nc -z 10.0.0.12 22 #<==Un singolo indirizzo o intervallo di indirizzi può essere seguito dall'host.
nc -z -v 10.0.0.12 20-30 #<==Utilizzare l'opzione -v per visualizzare il processo di scansione in dettaglio.
ssh: accedi in modo sicuro a un host in remoto
ssh [opzioni] [utente@][nome host o indirizzo IP] [comando eseguito in remoto]
ssh 10.0.0.29 #<==Questo è il comando abbreviato per l'accesso remoto al server, che equivale a ssh -p 22 root@10.0.0.29 #<==Le seguenti quattro righe verranno richieste solo quando ci si connette al server remoto per la prima volta e non verranno richieste quando ci si connette nuovamente.
ssh -p 22 oldboy@10.0.0.29 #<== Utilizza l'utente oldboy per accedere al server remoto Questo utente deve essere un utente esistente sul server remoto -p specifica la porta 22.
ssh 10.0.0.29 "free -m" #<== Metti semplicemente il comando da eseguire in remoto alla fine Usa le virgolette per renderlo più standardizzato Ecco le informazioni sulla memoria del server in cui lo stai visualizzando.
ssh -v root@10.0.0.19 #<==Utilizza l'opzione -v per accedere alla modalità debug.
wget: strumento di download da riga di comando
·Supporta la funzione di download dei punti di interruzione. ·Supporta i metodi di download FTP e HTTP. ·Supporta il server proxy. ·Molto stabile, ha una forte adattabilità in situazioni con larghezza di banda molto stretta o rete instabile. Se il download fallisce per motivi di rete, wget continuerà a provare finché non verrà scaricato l'intero file. Se il server interrompe il processo di download, si connetterà nuovamente al server e continuerà il download da dove si era interrotto. Ciò è utile per scaricare file di grandi dimensioni da server con tempi di connessione limitati.
wget [opzioni] [indirizzo di download]
wget http://www.oldboyedu.com/favicon.ico #<==wget basta collegarsi all'indirizzo di download.
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo #<==Questo è un comando per aggiornare il sorgente epel, sarà epel-6 Scarica il repository e inseriscilo nella directory /etc/yum.repos.d/ e rinominalo epel.repo.
wget --limit-rate=3k http://www.oldboyedu.com/favicon.ico #<==Utilizza il parametro --limit-rate per impostare la velocità di download massima su 3K/s.
wget -c Utilizza il parametro -c per riprendere il caricamento da un punto di interruzione.
wget -b http://www.oldboyedu.com/favicon.ico Usa wget-b per scaricare file in background.
wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, come Gecko) Chrome/10.0.648.204 Safari/534.16" http://www.oldboyedu. com/favicon.ico #<==Utilizzare il parametro --user-agent per specificare il tipo di client.
wget -q -T 3 --tries=1 --spider www.baidu.com #<== Utilizza accesso silenzioso, timeout tra 3 secondi, riprova una volta, simula l'accesso del crawler.
mailq: visualizza la coda di trasferimento della posta
mailq [opzioni]
mailq #<==Visualizza la coda della posta.
mail: invia e ricevi posta
posta [opzioni]
mail -s "Ciao da oldboyedu" zhangyao@oldboyedu.com #<== Al destinatario viene richiesto di cambiarlo con il proprio indirizzo email. ciao, questo è il contenuto della posta #<==Inserisci manualmente due righe di contenuto della posta. benvenuto su www.oldboyedu.com. EOT #<== Inserisci Ctrl D in una nuova riga vuota per terminare l'input e inviare l'e-mail.
echo -e "ciao, questo è il contenuto della mail. benvenuto su www.oldboyedu.com."|mail -s "Ciao da oldboyedu" zhangyao@oldboyedu.com Descrizione del comando: echo è seguito dal corpo dell'email.
#<==Invia un singolo allegato. [root@oldboy ~]# echo "test"|mail -s "test" -a favicon.jpg zhangyao@oldboyedu.com
#<==Invia più allegati. [root@oldboyedu ~]# echo "test"|mail -s "test" -a favicon.jpg -a web.sh zhangyao@oldboyedu.com
nslookup: strumento per interrogare i nomi di dominio
nslookup [opzioni] [nome dominio/IP] [server DNS]
·Modalità interattiva: gli utenti possono interrogare il server dei nomi di dominio per informazioni su vari host e nomi di dominio o generare un elenco di host nel nome di dominio. ·Modalità non interattiva: ottieni solo nomi specifici o informazioni richieste per un host o un nome di dominio.
nslookup - 223.5.5.5 #<==Puoi specificare direttamente l'indirizzo del server per la risoluzione dei nomi di dominio sulla riga di comando, ma fai attenzione alla scritta e non perdere il "-".
nslookup www.oldboyedu.com 223.5.5.5 #<==Query non interattiva nome di dominio www.oldboyedu.com.
dig: strumento di interrogazione dei nomi di dominio
scavare [opzione]
scava www.oldboyedu.com
dig @223.5.5.5 www.oldboyedu.com #<==Utilizzare @ per specificare il server DNS per la query.
dig -x 101.200.195.98 #<==Utilizza l'opzione -x per la risoluzione inversa del nome di dominio.
dig -t MX oldboyedu.com #<==Utilizza l'opzione -t per selezionare il tipo di query.
dig @223.5.5.5 www.oldboyedu.com trace #<==Visualizza il processo completo di risoluzione del nome di dominio in IP.
dig nocmd nocomment nostat www.oldboyedu.com #<== Semplifica alcune informazioni sulla descrizione.
scava breve www.oldboyedu.com
host: strumento di query del nome di dominio
ospite [opzioni]
host www.oldboyedu.com #<==il comando host può essere collegato direttamente al nome di dominio.
host -a www.oldboyedu.com #<==Utilizza l'opzione -a per richiedere informazioni dettagliate.
host -a www.oldboyedu.com 223.5.5.5 #<== Connettersi direttamente all'IP del server DNS specificato.
host -t MX oldboyedu.com #<==Utilizza l'opzione -t per selezionare il tipo di query.
nmap: strumento di sondaggio della rete e scanner di sicurezza/porte
nmap [tipo di scansione] [opzioni generali] {destinazione di scansione}
nmap 10.0.0.12 #<==nmap si connette direttamente all'host di destinazione ed esegue la scansione delle prime 1~1000 porte per impostazione predefinita.
L'opzione nmap -p 1024-65535 10.0.0.12 #<==-p specifica l'intervallo di scansione.
nmap 10.0.0.0/24 #<==Scansiona la LAN utilizzando il formato del segmento di rete.
nmap -sn 10.0.0.0/24 #<==Utilizzare l'opzione -sn per non scansionare la porta.
nmap -sn 10.0.0.1-10 #<== Questo intervallo di indirizzi può essere utilizzato per la scansione.
nmap -O -sV 10.0.0.12 #<==-sV visualizza il numero di versione del servizio. #<==-O visualizza la versione del sistema, ma il comando nmap confronta l'impronta TCP/IP rilevata con la propria libreria di impronte digitali. Se il sistema non è presente nel database delle impronte digitali, non verrà riconosciuto.
tcpdump: monitora il traffico di rete
tcpdump [opzioni] [espressione]
tcpdump #<==Per impostazione predefinita, l'avvio diretto di tcpdump monitorerà tutti i pacchetti che fluiscono sulla prima interfaccia di rete.
tcpdump -q #<==Per impostazione predefinita, il comando tcpdump restituisce più informazioni. Per visualizzare informazioni semplificate, è possibile utilizzare l'opzione -q.
tcpdump -c 5 #<==Utilizzare l'opzione -c per specificare il numero di pacchetti da monitorare, quindi non è necessario utilizzare Ctrl C.
tcpdump -i eth0 #<==Utilizzare l'opzione -i per specificare la scheda di rete da monitorare
tcpdump -n host 10.0.0.1 #<==Utilizzare l'opzione -n per non eseguire la risoluzione DNS e velocizzare la visualizzazione. La parola chiave per monitorare l'host specificato è host, seguita dal nome host o dall'indirizzo IP. La funzione di questo comando è monitorare tutti i pacchetti di dati ricevuti e inviati dall'host 10.0.0.1.
tcpdump -n src host 10.0.0.1 #<==Ascolta solo i pacchetti di dati inviati da 10.0.0.1, ovvero l'indirizzo di origine è 10.0.0.1 e la parola chiave è src (sorgente, indirizzo di origine).
tcpdump -n dst host 10.0.0.1 #<==Ascolta solo i pacchetti di dati ricevuti da 10.0.0.1, ovvero l'indirizzo di destinazione è 10.0.0.1 e la parola chiave è dst (destinazione, destinazione).
tcpdump -nn port 22 #<==L'uso dell'opzione -n non esegue la risoluzione DNS, ma convertirà alcuni protocolli e porte, come la porta 22 in ssh. I lettori possono confrontare i risultati di output dell'Esempio 10-4. Pertanto questo esempio utilizza l'opzione -nn. La parola chiave per monitorare la porta specificata è port, seguita dal numero di porta.
tcpdump -n arp #<==Ascolta i pacchetti ARP, in modo che l'espressione possa essere scritta direttamente in arp.
tcpdump -n icmp #<==Ascolta i pacchetti di dati icmp (se desideri visualizzare i dati di monitoraggio di seguito, puoi utilizzare altre macchine per eseguire il ping di questa macchina)
tcpdump -n ip host 10.0.0.12 e ! 10.0.0.1 #<==Ottieni i pacchetti ip che l'host 10.0.0.12 comunica con tutti gli host (eccetto l'host 10.0.0.1).
Capitolo 9 Comandi di gestione dei processi Linux
ps: visualizza il processo
p.s. [opzioni]
ps -ef #<== Parametri del formato UNIX, utilizzare il parametro -e per visualizzare tutti i processi, utilizzare il parametro -f per visualizzare inoltre i campi UID, PPID, C e STIME.
ps -ef|grep ssh #<==Usa grep per trovare la parola chiave ssh.
ps aux #<== parametri del formato BSD, utilizzare l'opzione a e l'opzione x per visualizzare tutti i processi e utilizzare l'opzione u per visualizzare le informazioni utente del processo.
ps -u root #<==Parametro formato UNIX, utilizzare il parametro -u per visualizzare le informazioni sul processo relative all'utente specificato.
ps -l #<== Parametro formato UNIX, utilizzare il parametro -l per visualizzare lo stato del processo in un formato dettagliato.
ps -eH #<==Parametri del formato UNIX, utilizzare il parametro -e per visualizzare tutti i processi e utilizzare il parametro -H per visualizzare la struttura dei processi.
ps axf #<==parametri del formato BSD, utilizzare i parametri aex per visualizzare tutti i processi e utilizzare il parametro f per visualizzare l'albero dei processi.
ps -o pid,ppid,pgrp,session,tpgid,comm #<==-o è seguito dai campi da visualizzare, che possono essere confrontati con la prima riga del risultato del comando.
pstree: visualizza l'albero dello stato del processo
pstree [opzioni] [ID processo/utente]
pstree #<==Se il numero PID del processo non è specificato o il nome utente non è specificato, il processo init verrà utilizzato come processo root e verranno visualizzate tutte le informazioni sul processo del sistema.
pstree mysql #<==mysql è il nome utente del sistema.
pstree -c -p mysql #<==Usa l'opzione -c per visualizzare tutti i processi, inclusi i processi figlio e i processi genitore, e usa l'opzione -p per visualizzare il numero del processo.
pstree -u #<==Utilizzare l'opzione -u per visualizzare il nome utente corrispondente al processo.
pgrep: trova i processi che corrispondono alle condizioni
pgrep [opzioni] [criteri di corrispondenza]
pgrep crond #<==Il comando pgrep può essere visto come una combinazione del comando ps e del comando grep. Il comando pgrep specifica il filtraggio del campo crond e ottiene il numero del processo crond.
pgrep -u root #<==Utilizzare l'opzione -u per visualizzare tutti i numeri di processo dell'utente root specificato.
kill: termina il processo
kill [opzioni] [numero processo]
kill -l #<==Il parametro -l visualizza tutti i segnali del sistema.
kill -l SIGKILL #<== È possibile utilizzare il parametro -l per scambiare nomi di segnali e segnali digitali.
kill -s 15 2203 #<==Questo formato utilizza il parametro -s per specificare esplicitamente di inviare un segnale con un valore di 15 e l'effetto è lo stesso di kill 2203.
kill -9 2203 #<==Il segnale 9 terminerà forzatamente il processo, il che porterà alcuni effetti collaterali, come la perdita di dati, o l'impossibilità di ripristinare il terminale allo stato normale, quindi dovrebbe essere evitato il più possibile a meno che il processo non può essere terminato utilizzando altri segnali.
killall: termina il processo in base al nome del processo
killall [opzioni] [nome processo]
killall crond #<==L'uso di killall per terminare il processo può essere eseguito più volte. crond: nessun processo ucciso #<==Quando vedi questo risultato, dimostra che il processo è morto, a condizione che il nome sia corretto.
killall -w crond #<==Utilizza il parametro -w e vedrai che l'operazione del comando termina dopo aver atteso alcuni secondi.
killall -u oldboy nginx #<==Questo metodo può terminare tutti i processi nginx appartenenti all'utente oldboy
pkill: termina il processo in base al nome del processo
pkill [opzioni] [nome processo]
pkill crond #<== Termina il processo dell'attività pianificata.
pkill -t tty1 #<==Usa l'opzione -t per terminare il processo del terminale specificato.
pkill -u oldboy #<==Usa l'opzione -u per terminare tutti i processi dell'utente specificato. È meglio specificare il nome del processo da terminare contemporaneamente per evitare di terminare accidentalmente il servizio.
in alto: visualizzazione in tempo reale dell'utilizzo delle risorse di ciascun processo nel sistema
in alto [opzioni]
top #<==L'uso del comando top solitamente non richiede alcun parametro. Se hai bisogno di altre funzioni più potenti, devi collaborare con i comandi interattivi.
top -a #<==Utilizza il parametro -a per ordinare i processi in base all'utilizzo della memoria.
top -b #<==Utilizza il parametro -b per vedere che i risultati dell'esecuzione del comando vengono continuamente aggiornati verso il basso.
top -c #<==Utilizzare il parametro -c per visualizzare l'intero percorso del comando del processo anziché solo il nome del comando.
top-d 3#<==Utilizzare il parametro -d per specificare il periodo di aggiornamento su 3 secondi, il che significa che i risultati del comando vengono aggiornati ogni 3 secondi.
top -n 2 #<==Utilizzare il parametro -n per specificare il numero di aggiornamenti fino a 2 volte, il che significa che il risultato del comando verrà aggiornato due volte prima di uscire. Il parametro -n può essere utilizzato insieme al parametro -d .
top -p 15456 #<==Utilizzare l'opzione -p seguita dal numero di processo specificato per visualizzare solo le informazioni di questo processo.
carino: regola la priorità del programma quando è in esecuzione
nice [opzione] [istruzione di comando]
Quando il comando nice #<== non riceve alcun contenuto, viene visualizzato che la priorità di esecuzione del programma predefinito del sistema corrente è 0.
nice nice #<== Tra questi, il primo comando nice regola la priorità del secondo comando nice con il valore predefinito di 10, ovvero aggiungendo 10 al programma predefinito del sistema che esegue priorità 0 per ottenere un nuovo programma Esegui priorità 10 , quindi esegui il secondo comando nice con priorità 10. Infine, il secondo comando nice mostra che la priorità corrente del programma in esecuzione è 10.
nice -n -10 vim test2 & #<==Usa nice per regolare a -10.
renice: regola la priorità dei processi in esecuzione
renice [opzioni]
renice -n 5 -p 2711 #<==Utilizza il parametro -p di renice per specificare il processo con un valore di 2711 e regola il suo valore NI su 5.
nohup: l'utente esce dal processo di sistema e continua a lavorare
niente [opzioni]
nohup ping www.oldboyedu.com nohup: ignora l'input e aggiunge l'output a `nohup.out'#<==Il terminale corrente è stato bloccato Se chiudi forzatamente il terminale corrente (come chiudendo l'etichetta o lo strumento client SSH), il comando ping verrà comunque eseguito sullo sfondo.
nohup ping www.oldboyedu.com & #<==Al lavoro, di solito eseguiamo il comando nohup con la e commerciale per far funzionare il programma direttamente in background.
strace: traccia le chiamate di sistema di un processo
strace [opzioni]
strace -tt -f /application/nginx/sbin/nginx #<== Il parametro -f tiene traccia del processo di destinazione e di tutti i processi secondari creati dal processo di destinazione. Il parametro -tt aggiunge informazioni sull'ora prima di ogni riga nell'output, in modo accurato a microsecondi e infine l'istruzione di comando da rilevare. /application/nginx/sbin/nginx è il comando per avviare il servizio Nginx.
strace -tt -f -e trace=file /application/nginx/sbin/nginx #<==-e trace=file viene utilizzato per tracciare solo le chiamate di sistema relative alle operazioni sui file.
strace -tt -f -e trace=file -p 1909 #<==Utilizza il parametro -p per tracciare solo il processo di lavoro e il risultato sarà più snello.
strace -c /application/nginx/sbin/nginx #<==Utilizza il parametro -c per eseguire un'analisi statistica di tutte le chiamate di sistema del processo.
strace -c -o tongji.log /application/nginx/sbin/nginx #<==Utilizzare l'opzione -o per visualizzare i risultati di strace in un file.
strace -T /application/nginx/sbin/nginx #<==Utilizza l'opzione -T per stampare il tempo impiegato per ciascuna chiamata di sistema. Il tempo impiegato per ciascuna chiamata si trova nella parentesi angolare più a destra della linea di chiamata.
ltrace: tiene traccia delle chiamate di processo alle funzioni di libreria
ltrace [opzioni]
ltrace /application/nginx/sbin/nginx #<==ltrace è seguito direttamente dall'istruzione di comando da rilevare.
ltrace -p 3892 #<==Utilizzare -p per specificare il numero del processo.
runlevel: visualizza il runlevel corrente
runlevel [opzioni]
runlevel N3
·0: spegnimento ·1: Modalità utente singolo ·2: Modalità multiutente senza rete ·3: Modalità multiutente ·4: Non utilizzato ·5: Modalità multiutente dell'interfaccia grafica ·6: Riavvia
init: inizializza il processo Linux
inizializzazione [opzioni]
init 0 #<==Spegni
init 6 #<==Riavvia.
servizio: servizio del sistema di gestione
servizio [nome servizio] [comando di esecuzione]
I valori opzionali per il comando includono avvio, arresto, stato, riavvio, ecc.
service --status-all #<==Visualizza tutti gli stati del servizio.
service crond #<==Le informazioni della guida verranno visualizzate quando l'istruzione del comando non è terminata. crond è il nome del servizio dell'attività pianificata.
service crond stop #<==Arresta il servizio.
service crond start #<==Avvia il servizio.
service crond restart #<==Riavvia il servizio.
service crond status #<==Visualizza lo stato del servizio.
Questo comando è stato sostituito da systemctl in CentOS 7.
Capitolo 8 Comandi di gestione del disco e del file system Linux
fdisk: strumento di partizionamento del disco
fdisk [opzioni] [nome dispositivo]
fdisk -l #<==Visualizza le informazioni sulla partizione di tutti i dischi nel sistema corrente.
fdisk /dev/sdb #<==Senza parametri, il partizionamento può essere effettuato collegando direttamente il nome del dispositivo.
partprobe: aggiorna le informazioni sulla tabella delle partizioni del disco rigido del kernel
parteprobe [opzioni]
partprobe /dev/sdb #<==È meglio aggiungere un disco specifico, altrimenti potrebbe essere segnalato un errore Molte persone lo eseguono direttamente e finiscono per segnalare un errore, quindi devono riavviare il sistema.
tune2fs: regola i parametri del file system ext2/ext3/ext4
tune2fs [opzioni]
tune2fs -l /dev/sda1|grep -i Mount#<== Controlla il numero di montaggi del dispositivo sda1, ovvero la partizione /boot.
tune2fs -C 30 /dev/sda1 #<==Il parametro -C imposta il numero di volte in cui il file system è stato montato.
tune2fs -c 40 /dev/sda1 #<==Il parametro -c imposta il numero di montaggi per l'autotest forzato.
tune2fs -c -1 /dev/sda1 #<==Disattiva il controllo automatico e altre funzioni.
tune2fs -l /dev/sda1|grep -i check #<==Visualizza il ciclo di controllo.
tune2fs -i 10 /dev/sda1 #<==L'impostazione del parametro -i viene controllata ogni 10 giorni.
tune2fs -i 0 /dev/sda1 #<==Ripristina allo stato normale.
parted: strumento per il partizionamento del disco
parted [opzioni] [nome dispositivo]
parted -l #<==Visualizza informazioni su tutte le partizioni del disco.
mkfs: crea un file system Linux
mkfs [opzioni] [nome dispositivo]
mkfs -t ext4 -v /dev/sdb #<==Utilizza il parametro -v per visualizzare informazioni dettagliate.
mkfs.ext4 /dev/sdb #<==Questo modo di scrivere è più semplice e l'effetto è lo stesso.
dumpe2fs: esporta le informazioni sul file system ext2/ext3/ext4
dumpe2fs [opzioni] [nome dispositivo]
resize2fs: ridimensiona il file system ext2/ext3/ext4
resize2fs [opzioni] [nome dispositivo]
fsck: controlla e ripara i file system Linux
fsck [opzioni] [file system]
Il file system deve essere smontato prima di poter essere controllato, altrimenti potrebbero verificarsi errori. Non è necessario utilizzare questo comando per controllare il disco in orari normali. È necessario eseguirlo solo quando viene visualizzato un errore del disco all'accensione del sistema.
1) Oltre a seguire le istruzioni di avvio per la riparazione, è anche possibile utilizzare il disco di sistema per accedere alla modalità di ripristino o alla modalità utente singolo per riparare i guasti del sistema. 2) Non eseguire mai fsck per controllare il disco quando il computer è avviato e funziona normalmente, poiché ciò potrebbe causare il guasto del disco normale. 3) Quando l'ultimo numero di colonna in /etc/fstab è 1 o 2, verrà letto fsck per eseguire l'autotest su questi dischi di sistema quando il sistema è acceso. 4) Non eseguire comandi di riparazione del disco come fsck su un file system già montato, poiché ciò potrebbe causare errori.
dd: converti o copia file
gg [opzioni]
dd if=/dev/sda1 of=dev_sda1.img #<==Utilizzare if per leggere i dati da /dev/sda1 e utilizzare of per specificare l'output su dev_sda1.img nella directory corrente.
dd if=/dev/zero of=test.data bs=1M count=2 #<==Leggi i dati da /dev/zero e li scrivi in test.data La dimensione del file generato test.data è bs*count =1M *2=2M.
dd if=test.txt conv=ucase of=test.txt_u#<==Utilizza il parametro conv per impostare ucase per convertire le lettere minuscole in maiuscole.
mount: monta il file system
mount [opzioni] [dispositivo] [directory]
La directory montata deve esistere in anticipo ed è preferibilmente vuota. Se la directory non è vuota, il contenuto della directory precedente verrà coperto dopo il montaggio del dispositivo, ma il contenuto della directory originale non verrà danneggiato, pertanto, se lo è il dispositivo corrispondente disinstallato, sarà possibile accedere nuovamente al contenuto della directory precedente.
mount #<== Immettere direttamente il comando mount e premere Invio per visualizzare le informazioni di montaggio del sistema.
mount -l #<==Il parametro -l può anche visualizzare le informazioni di montaggio.
mount /dev/cdrom /mnt #<==-t iso9660 non è specificato qui, ma il comando mount lo riconoscerà automaticamente. mount: dispositivo a blocchi /dev/sr0 è protetto da scrittura, montaggio in sola lettura#<== Richiede che il dispositivo sia protetto da scrittura e montato in sola lettura.
mount -o remount,rw / #<==remount tenta di rimontare "/" come rw (leggibile e scrivibile).
umount: smonta il file system
umount [opzioni] [directory|dispositivo]
La disinstallazione di umount può connettersi alla directory del punto di montaggio o ai file del dispositivo.
umount /mnt #<== può essere disinstallato collegandosi al punto di montaggio e anche umount /dev/cdrom può essere disinstallato.
umount /mnt/ #<== Poiché è attualmente nella directory mnt, non può essere disinstallato. Qui, esegui il metodo uno per uscire dalla directory corrente e disinstallarlo.
umount -lf /mnt/ #<==Metodo 2: utilizzare il parametro -lf per forzare la disinstallazione.
df: segnala l'utilizzo dello spazio su disco del file system
df [opzioni] [<file o directory>]
Se il parametro file dopo il comando non è specificato, verrà visualizzato l'utilizzo di tutte le partizioni del disco. Se viene fornito un file, verrà visualizzato l'utilizzo della partizione del disco in cui si trova il file.
df #<==Se non si specificano i parametri del file dopo il comando, verrà visualizzato l'utilizzo di tutte le partizioni del disco.
mkswap: crea una partizione di swap
mkswap [opzioni] [file dispositivo]
mkswap /dev/sdb #<==Per impostazione predefinita, l'intero disco non può essere utilizzato come partizione di swap.
mkswap -f /dev/sdb #<==Utilizzare il parametro -f per forzare l'utilizzo dell'intero disco come partizione di swap.
swapon: attiva la partizione di swap
swapon [opzione]
swapon /dev/sdb #<==Attiva la partizione di swap.
swapon -s #<==Usa l'opzione -s per vedere che ci sono due partizioni di swap.
swapoff: disattiva la partizione di swap
scambio [opzione]
Quando chiudi la partizione di swap, assicurati che la partizione di swap non sia in uso. In caso contrario, il sistema visualizzerà il messaggio di errore "il dispositivo è occupato".
swapoff /dev/sdb #<==Chiude la partizione di swap /dev/sdb.
swapoff -a #<==Chiude tutte le partizioni di swap.
sync: svuota il buffer del file system
sincronizza [opzioni]
sync #<== Esegue il comando sync più volte senza alcun output.
Capitolo 7 Gestione degli utenti Linux e comandi di query delle informazioni sull'utente
useradd: crea utente
useradd [opzioni] [nome utente] useradd -D [opzioni]
Quando useradd ett crea un utente, crea anche un gruppo di utenti con lo stesso nome utente. In questo esempio, abbiamo aggiunto un utente di sistema chiamato ett. Quando visualizziamo la directory /home/, scopriremo che il sistema ha creato automaticamente una directory ett, che è la directory di partenza dell'utente dopo aver effettuato l'accesso, ovvero la directory home.
useradd -g sa -u 901 oldgirl #<==L'utente creato oldgirl appartiene al gruppo sa e l'uid è 901.
useradd -M -s /sbin/nologin tingting #<==-M non crea una directory home, -s specifica la shell dopo che l'utente ha effettuato l'accesso, qui è /sbin/nologin, il che significa che l'accesso è proibito. Questo esempio viene spesso utilizzato durante la distribuzione di servizi come Nginx e MySQL in scenari di produzione.
useradd -u 806 -s /bin/sh -c SysUser -G root,sa -e "2017/07/12" -f 2 -d /tmp/inca inca #<==Aggiungi utente inca e imposta le informazioni sui commenti dell'utente Per "SysUser", l'UID è specificato come 806, Appartiene al gruppo utente root e ai membri sa, il suo tipo di shell è /bin/sh, la directory home è impostata su /tmp/inca, la scadenza dell'utente è 2017/07/12 e i diritti dell'utente verranno sospesi due giorni dopo la scadenza.
useradd -D -s /bin/sh #<==Modifica la shell di accesso predefinita.
useradd -D -e "2018/07/12" #<==Modifica il periodo di validità predefinito dell'utente.
La funzione di useradd-D può essere completamente sostituita modificando e modificando vim/etc/default/useradd.
usermod: modifica le informazioni dell'utente
usermod [opzioni] [nome utente]
usermod -u 888 -s /sbin/nologin -c TmpUser -G root,sa,tech -e "2018/07/12" -f 30 -d /home/inca inca #<==le informazioni sui commenti dell'utente di inca vengono modificate in "TmpUser", l'UID viene modificato in 999, la proprietà viene modificata nel gruppo utenti root, sa e membri tech, il tipo di shell è /sbin/nologin, la directory home è impostata su /home/inca, la scadenza dell'utente il tempo è il 12/07/2018, sospensione scaduta dopo 30 giorni.
userdel: cancella utente
userdel [opzioni] [nome utente]
userdel zuma #<==Elimina utente zuma.
userdel -r oldgirl #<== Elimina l'utente oldgirl con il parametro -r.
groupadd: crea un nuovo gruppo utenti
groupadd [opzioni] [gruppo utenti]
groupadd -g 123 test1 #<==Aggiunge il gruppo utente test1 con GID 123.
groupdel: elimina il gruppo utente
groupdel [gruppo utenti]
groupdel root #<==L'eliminazione del gruppo utente root non è riuscita perché l'utente root esiste ancora.
groupdel non può eliminare il gruppo utente principale a cui appartiene l'utente.
passwd: cambia la password dell'utente
passwd [opzioni] [nome utente]
·L'utente root può modificare la password di qualsiasi utente, mentre gli utenti ordinari possono modificare solo la propria password. ·Quando l'utente root modifica la password, se non è conforme alle regole della password di sistema, verrà visualizzato un messaggio di avviso, ma l'impostazione della password avrà comunque effetto. Quando gli utenti ordinari modificano la propria password, se viene utilizzata una password debole, verrà visualizzato un messaggio di avviso e la modifica non sarà valida.
passwd -S vecchia Solo root può farlo. #<==Richiede che questo parametro può essere eseguito solo da root.
echo "123456"|passwd --stdin oldgirl #<==--il parametro stdin può ottenere la password dallo standard input.
passwd -n 7 -x 60 -w 10 -i 30 oldgirl #<==oldgirl L'utente non può modificare la password entro 7 giorni e deve modificare la password dopo 60 giorni. L'utente viene avvisato 10 giorni prima della scadenza e l'utente è vietato accedere dopo 30 giorni.
chage: modifica il periodo di validità della password dell'utente
modifica [opzioni] [nome utente]
chage -m 7 -M 60 -W 10 -I 30 oldboy #<==gli utenti oldboy non possono modificare la propria password entro 7 giorni e dovranno modificarla dopo 60 giorni. Gli utenti Oldboy verranno avvisati 10 giorni prima della scadenza e gli utenti lo faranno verrà impedito l'accesso dopo 30 giorni.
chage -m7 -M60 -W10 -I30 oldboy #<==Il secondo modo di scrivere.
chpasswd: aggiorna in batch le password degli utenti
chpasswd [opzioni]
chpasswd #<==Inserisci chpasswd nella riga di comando e premi Invio. root:123456 #<==Formato Nome utente: Password, l'utente deve esistere. vecchietto:123456 #<==Uno per riga #<==Inserisci Ctrl D su una nuova riga vuota per terminare l'input.
su: cambia utente
su [opzioni] [nome utente]
1) Per passare da un utente normale a un utente root, è possibile utilizzare su- o su-root, ma è necessario inserire la password root per completare il passaggio. 2) Per cambiare l'utente root in un utente ordinario, è possibile utilizzare il metodo di scrittura "nome utente su-ordinario". Non è necessario inserire alcuna password per completare il passaggio. In CentOS 5. /sbin e altri comandi successivi), è necessario utilizzare il percorso completo per eseguire o modificare il contenuto della variabile PATH per gli utenti ordinari. CentOS 6 e CentOS 7 non presentano questo problema. 3) Se desideri eseguire comandi solo sotto un determinato utente senza passare direttamente a quell'utente, puoi utilizzare su-username-c "comando".
visudo: modifica il file sudoers
visivo [opzioni]
visudo -c #<==Utilizzare l'opzione -c per il controllo della sintassi.
sudo: esegue il comando come un altro utente
sudo [opzioni]
Visualizza le informazioni sull'utente e sul gruppo di utenti
id [opzioni] [nome utente]
id #<== non accetta parametri utente, il valore predefinito è l'utente attualmente connesso.
id oldboy #<==Specifica di visualizzare le informazioni dell'utente oldboy.
id -g #<==Visualizza il GID del gruppo utenti.
id -u #<==Visualizza l'ID utente.
id -un #<==Visualizza nome utente (il parametro -n significa non visualizzare i numeri, ma visualizzare il nome).
w: Visualizza le informazioni dell'utente registrato
w [opzioni] [utente]
w #<== generalmente può essere utilizzato senza parametri.
w -h #<==Utilizzare il parametro -h per non visualizzare le prime due righe di informazioni di intestazione.
chi: visualizza le informazioni dell'utente registrato
chi [opzione]
who #<== generalmente può essere utilizzato senza parametri.
who -b #<==Visualizza l'ora di avvio.
who -d #<==Visualizza gli utenti disconnessi.
who -l #<==Visualizza il processo di accesso.
who -H #<==Visualizza titolo.
ho -H -a #<==Utilizza il parametro -H per visualizzare il titolo e utilizza il parametro -a per visualizzare tutte le informazioni.
utenti: visualizza gli utenti registrati
users #<==Se lo stesso utente accede più volte, il nome utente verrà visualizzato più volte.
whoami: visualizza il nome utente attualmente connesso
Il comando whoami viene utilizzato per visualizzare il nome utente attualmente registrato. Questo comando può essere considerato l'abbreviazione della frase inglese who am i.
last: Visualizza l'elenco degli accessi degli utenti
ultimo [opzione]
last #<== mostrerà molte righe.
last -10 #<==Specifica il numero di righe da visualizzare e può essere utilizzato anche con il comando less tramite pipe.
last oldboy #<==Visualizza lo stato di accesso dell'utente oldboy, ma l'utente oldboy non ha effettuato l'accesso, quindi il display è vuoto.
lastb: visualizza i record degli errori di accesso dell'utente
lastb [opzioni]
lastb #<==È necessario prestare maggiore attenzione ai risultati dell'esecuzione di questo comando. Se trovi informazioni sconosciute sugli errori di accesso, devi considerare se il sistema è stato violato violentemente per accedere.
lastlog: visualizza i record di accesso recenti di tutti gli utenti
Capitolo 6 Comandi di backup e compressione dei file
tar: backup del pacchetto
tar [opzioni] [file o directory]
tar zcvf www.tar.gz ./html/ #<==L'opzione v mostrerà il processo di creazione del pacchetto È necessario ricordare la combinazione di comandi di pacchetto comunemente usata zcvf. Se non si desidera visualizzare il processo di creazione del pacchetto, è possibile omettere il file v opzione, ovvero la combinazione di opzioni è zcf.
tar ztvf www.tar.gz #<==Utilizzare l'opzione t per visualizzare il contenuto del pacchetto compresso senza decompressione e l'opzione v per visualizzare gli attributi del file.
tar tf www.tar.gz #<==Se l'opzione z non è specificata, il comando tar determinerà automaticamente anche il tipo di pacchetto compresso e chiamerà automaticamente il comando gzip.
tar zxvf www.tar.gz -C /tmp/ #<==L'opzione C specifica il percorso di decompressione Se C non viene aggiunto, la decompressione avverrà nella directory corrente.
tar xf www.tar.gz -C /tmp/ #<==Se non vuoi vedere troppo output, puoi rimuovere l'opzione v e la funzione non sarà influenzata. Allo stesso tempo, l'opzione z può anche essere omessa finché è coinvolta l'operazione di decompressione, il comando tar può identificare automaticamente il tipo di compressione del pacchetto compresso, ma l'opzione z deve essere aggiunta durante la compressione.
tar zcvf www.tar.gz ./html/ --exclude=html/oldboy/test #<==Non aggiungere / alla fine della directory test, altrimenti l'operazione non avrà successo.
tar zcvf www.tar.gz ./html/ --exclude=html/oldboy/test --exclude=html/oldboy #<== Metodo per escludere più di 2 directory: utilizzare più --exclude in parallelo.
tar zcvfX paichu.tar.gz list.txt ./html/ #<==Utilizzare il parametro X per collegare l'elenco dei file da escludere.
Quando si utilizza l'opzione generale zcf di tar per impacchettare un file, se il file è un file di collegamento come /etc/rc.local, tar impacchetterà solo il file di collegamento stesso, non il file reale a cui punta il file di collegamento, quindi aggiuntivo use - L'opzione h impacchetta il file di entità corrispondente al file di collegamento software
Se la directory da comprimere è un percorso relativo, dopo --exclude è possibile seguire solo il percorso relativo. ·Se la directory da impacchettare è un percorso assoluto, --exclude può essere seguito da un percorso assoluto o relativo. ·Per comodità, il percorso seguito da --exclude e il percorso di confezionamento dovrebbero essere nella stessa forma, ovvero percorsi relativi o percorsi assoluti.
tar zcvf etc.tar.gz 'find etc/ -type f' #<== Utilizzare find per trovare tutti i file ordinari e nidificare un'istruzione di comando find racchiusa tra apici inversi nell'istruzione di comando tar.
gzip: comprime o decomprime file
gzip [opzioni] [file]
gzip *.html #<==Utilizzare il comando gzip per comprimere tutti i file che terminano con ".html" nella directory corrente.
gzip -l *.gz #<== Utilizzare il parametro -l per visualizzare le informazioni di compressione del file senza decompressione Poiché i file di origine sono tutti file vuoti, il tasso di compressione è 0,0%.
gzip -dv *.gz #<==Utilizzare il parametro -d per decomprimere il file e utilizzare il parametro -v per visualizzare il processo di decompressione.
gzip -c services >services.gz #<== Utilizza l'opzione -c con il simbolo di reindirizzamento dell'output per indirizzare l'output a services.gz.
Il comando zcat services.gz|head #<==zcat può connettere direttamente il file compresso per leggere il pacchetto compresso.
zcat services.gz >services #<== può anche essere decompresso direttamente e reindirizzato al file.
zip: comprime e comprime i file
zip [opzioni] [file o directory]
zip services.zip ./services #<==Formato: file compresso nome pacchetto compresso zip.
zip tmp.zip ./tmp/ #<==Comprime solo il file nella directory e i file nella directory non vengono compressi.
zip -r tmp.zip ./tmp/ #<==Utilizzare l'opzione -r per comprimere in modo ricorsivo.
L'opzione zip -r tmp1.zip ./tmp/ -x tmp/services.zip #<==-x specifica i file non compressi.
unzip: decomprime il file zip
decomprimere [opzioni] [file compresso]
unzip -l tmp.zip #<==Utilizzare l'opzione -l per visualizzare l'elenco dei file nel pacchetto compresso.
unzip tmp.zip #<==Estrai il file direttamente nella root Poiché il file sorgente esiste ancora, verrà visualizzato il seguente messaggio. #<==Se sostituire i file, y sì nno ASostituisci tutti i file NNon sostituire tutti i file rRinomina
unzip -v tmp.zip #<==Visualizza alcune informazioni durante la decompressione.
unzip -o tmp.zip #<==Non chiede se sovrascrivere durante la decompressione.
unzip -d /tmp tmp.zip #<==È possibile utilizzare l'opzione -d per connettere la directory per specificare la directory di decompressione.
scp: copia file remota
scp [opzioni] [utente@host1:file1] [utente@host2:file2]
scp /etc/services 10.0.0.9:/tmp#<==scp Nome del file trasferito Indirizzo IP dell'host di destinazione: la directory in cui si desidera trasferire.
scp -p /etc/services 10.0.0.9:/tmp #<== Utilizzare l'opzione -p per mantenere trasferiti gli attributi del file.
scp -rp /tmp 10.0.0.9:/tmp #<==È necessario utilizzare l'opzione -r per copiare la directory
scp 10.0.0.9:/etc/services . #<== Basta invertire l'ordine dei comandi inviati e scaricare il file /etc/services dall'host 10.0.0.9 nella directory corrente.
scp -rp 10.0.0.9:/tmp . #<==Trascina la directory tmp dell'host 10.0.0.9 nella directory corrente.
rsync: strumento di sincronizzazione dei file
1) Modalità locale: rsync [opzioni] [file sorgente] [file di destinazione]
2) Tramite modalità di accesso alla shell remota: Pull: rsync [opzioni] utente@host:file sorgente [file di destinazione] Push: rsync [opzioni] [file sorgente] utente@host:file di destinazione
3) modalità demone rsync Tiro: rsync [opzioni] utente@host::file sorgente [file di destinazione] rsync [opzioni] rsync://utente@host:porta/file di origine [file di destinazione] Spingere: rsync [opzioni] [file sorgente] utente@host::file di destinazione rsync [opzioni] [file sorgente] rsync://utente@host:porta/file di destinazione
rsync -av /data1/ /data2 #<==Se è presente una barra alla fine della directory di origine, verrà copiato il contenuto della directory anziché la directory stessa.
rsync -av /data1 /data2 #<==Se la directory di origine non ha una barra, la directory stessa e il contenuto sotto la directory verranno copiati.
rsync -av /etc/hosts /tmp #<==Il file sorgente /etc/hosts e la directory di destinazione /tmp si trovano entrambi sullo stesso host.
rsync -av --delete /null/ /tmp/ #<== opzione --delete rende il contenuto della directory tmp coerente con la directory vuota Verranno eliminati diversi file e directory, ovvero ciò che è in null in tmp. Se è presente del contenuto che non è in null ma è in tmp, deve essere eliminato Poiché la directory null è vuota, questo comando eliminerà tutto il contenuto nella directory /tmp.
rsync -av 10.0.0.9:/tmp/ /tmp #<== Pull.
rsync -av /tmp/ 10.0.0.9:/tmp/ #<==Push.
rsync -av -e 'ssh -p 22' /tmp 10.0.0.9:/tmp/ #<== Nel caso precedente, i dati sincronizzati utilizzando rsync vengono trasmessi in chiaro Negli scenari in cui è richiesta la sicurezza dei dati, -e può essere utilizzato L'opzione utilizza il tunnel SSH per crittografare e trasmettere i dati -p è l'opzione del comando SSH e specifica il numero di porta per la trasmissione SSH come 22. Il risultato di questo comando è di inserire i dati nel file locale /tmp. directory a 10.0.0.9 attraverso il tunnel crittografato SSH La directory /tmp dell'host. Allo stesso modo, eseguire "rsync -av -e 'ssh -p 22' 10.0.0.9:/tmp/ /tmp" per estrarre i dati dalla directory /tmp dell'host 10.0.0.9 alla directory locale /tmp tramite il Tunnel crittografato SSH.
Capitolo 5 Visualizzazione delle informazioni su Linux e comandi di ricerca dei file
uname: visualizza le informazioni di sistema
uname [opzione]
uname -a #<==Visualizza tutte le informazioni rilevanti sul sistema.
uname -m#<==architettura hardware a 64 bit.
uname -n#<==Il nome host è oldboy.
uname -r#<==Numero di versione del rilascio del kernel.
uname -s #<==Nome del kernel.
uname -v#<==numero di versione del kernel.
uname -p#<==Il tipo di processore è CPU a 64 bit.
uname -o#<==Nome del sistema operativo.
uname -i#<==piattaforma hardware.
hostname: visualizza o imposta il nome host del sistema
nome host [opzioni]
hostname #<==Se non vengono presi parametri, verrà visualizzato il nome host.
Il nome host È possibile utilizzare il comando #<==hostname per modificare temporaneamente il nome host aggiungendo un nome host.
vi /etc/sysconfig/network #<==Solo modificando il file di configurazione il nome host modificato può rimanere valido dopo il riavvio del sistema.
Va notato che nel sistema CentOS7, il file di configurazione del nome host viene modificato in /etc/hostname. La modifica di /etc/sysconfig/network non avrà effetto. È necessario modificare /etc/hostname.
hostname -s #<==Visualizza il nome host in formato breve.
hostname -a #<==Visualizza l'alias dell'host.
hostname -i #<==Quando la rete non è molto buona, i risultati saranno molto lenti.
nomehost -I #<== Si consiglia di utilizzare -I per ottenere l'indirizzo IP del sistema. Il numero di indirizzi IP verrà visualizzato quante sono le schede di rete (con indirizzi IP).
dmesg: diagnosi di anomalie all'avvio del sistema
dmesg [opzioni]
dmesg|less #<==Visualizza il contenuto del buffer sfogliando il comando less, utilizzato per visualizzare informazioni come guasti hardware.
stat: visualizza lo stato del file o del file system
stat [opzioni] [file o directory]
du: statistiche sull'utilizzo dello spazio su disco
du [opzioni] [file o directory]
du -a #<==Visualizza la dimensione di tutti i file nella directory corrente (inclusi i file nascosti e tutti i file nelle sottodirectory).
du -s #<==Visualizza la dimensione totale della directory corrente.
I parametri du -h #<==-h verranno convertiti in risultati facili da leggere e comprensibili come K, M e G.
du -sh #<==-sh è una combinazione di comandi comunemente usata e un metodo consigliato.
du -sh /usr/local/ #<==Visualizza la dimensione totale della directory specificata.
du -h --max- Depth=1 /usr/local/ #<==Visualizza solo la dimensione della directory di primo livello.
du -h --max- Depth=2 /usr/local/ #<==Visualizza solo la dimensione delle directory di primo e secondo livello.
du -h --max- Depth=2 /usr/local/ --exclude=/usr/local/share #<==Non visualizza la dimensione della directory /usr/local/share.
data: visualizza e imposta l'ora del sistema
data [opzioni] [formato data]
data %y #<==Visualizza anno (formato breve).
data %Y #<==Visualizza anno (formato lungo).
data %m #<==Visualizza mese.
data %d #<==Visualizza il giorno.
data %H #<==Visualizza l'ora.
data %M #<==Visualizza minuti.
data %S #<==Visualizza secondi.
data %F #<==Visualizza la data in formato speciale (anno-mese-giorno).
data %T #<==Visualizza l'ora nel formato speciale (ora: minuto: secondo).
date %F -d "-1day" #<==Mostra ieri (scrittura concisa).
date %F -d "ieri" #<==Mostra ieri (scrittura inglese).
date %F -d "-2day" #<==Visualizza l'altro ieri.
data %F -d "1giorno" #<==Visualizza domani.
date %F -d "domani" #<==Visualizza domani (scrittura inglese).
date %F -d "2day" #<==Visualizza 2 giorni dopo.
data %F -d "1 mese" #<==Visualizza 1 mese dopo.
date %F -d "1year" #<==Visualizza 1 anno dopo.
date -s 20170706 #<== è impostato su 20170706 e l'ora specifica è vuota, ovvero 00:00:00.
date -s 00:00:03 #<==Imposta l'ora specifica e la data non verrà modificata.
date -s "00:00:03 20170706" #<==Questo può impostare l'intero tempo.
echo: visualizza una riga di testo
eco [opzioni] [testo]
echo Ciao mondo! #<==echo riceve direttamente il testo che desideri visualizzare.
echo "ciao mondo" >>ciao.txt #<== Usa il simbolo di reindirizzamento ">>" per scrivere il testo nel file.
echo -n "vecchio ragazzo";echo "vecchio ragazzo" #<==Usa l'opzione -n per visualizzare l'output su una riga senza interruzioni di riga.
watch: monitora l'esecuzione del comando
guarda [opzioni] [comando]
watch -n 1 -d netstat -ant #<==netstat verrà spiegato in dettaglio più avanti, -n specifica l'esecuzione del comando ogni secondo e -d lo evidenzia.
watch cat oldboy.log<#==Monitora le modifiche nel file oldboy.log nella directory corrente.
Il parametro watch -t cat oldboy.log -t non visualizza il titolo
which: visualizza il percorso completo del comando
quale [opzione] [nome comando]
which date #<==Visualizza il percorso completo del comando date.
which which #<==Se è impostato un alias per il comando specificato, utilizzando la funzione which verrà visualizzato anche l'alias.
which cd #<== Il comando integrato di Bash non può utilizzare which.
which -a mysql #<==Vengono visualizzati tutti i percorsi contenenti i comandi mysql.
whereis: visualizza il percorso completo del comando e dei file correlati
dov'è [opzioni] [nome file]
dov'è
whereis -b svn #<==Trova solo file eseguibili.
whereis -m svn #<==Cerca solo nel file della guida di man.
whereis -s svn #<==Trova solo i file del codice sorgente.
individuare: individuare rapidamente i percorsi dei file
individua [opzioni] [nome file]
individuare pwd #<== è seguito direttamente dal nome del file che si desidera trovare. Finché contiene la stringa pwd, può essere trovato.
individua -c pwd #<==Visualizza solo il numero di righe corrispondenti.
individuare /etc/sh #<==Output purché parte di esso corrisponda.
individua /etc/sh* #<== Puoi anche usare i caratteri jolly.
localizza -c /etc/*sh*
aggiornatob: aggiorna il database mlocate
aggiornatob [opzioni]
aggiornatob -vU /root/ #<==-v visualizza il processo di aggiornamento, -U specifica il percorso di aggiornamento.
Capitolo 4 I tre moschettieri dell'elaborazione testi
grep: strumento di filtraggio del testo
Il comando grep è uno dei comandi più importanti nel sistema Linux. La sua funzione è filtrare righe e dati corrispondenti da file di testo o flussi di dati di pipe.
grep -v "oldboy" test1.txt #<== Filtra le righe che non contengono la stringa oldboy Presta attenzione alla stringa filtrata e utilizza il più possibile le virgolette doppie.
grep -n "oldboy" test2.txt #<== Visualizza le righe contenenti la stringa oldboy e visualizza il numero di riga.
grep -n "." test2.txt #<== visualizza i numeri di riga di tutte le righe (simile a cat -n test2.txt "." qui significa corrispondere a qualsiasi singolo carattere, ovvero corrispondere a tutto il contenuto, quindi , visualizza i numeri di riga di tutte le righe.
grep -i "alex" test2.txt #<==Utilizza il parametro -i per filtrare alex senza distinzione tra maiuscole e minuscole.
grep -Ei "oldboy|alex" test2.txt #<== Non fa distinzione tra maiuscole e minuscole e filtra le stringhe contenenti oldboy e alex.
grep -Ei --color=auto "oldboy|alex" test2.txt #<==Aggiungi il parametro --color. #<== Le stringhe corrispondenti verranno visualizzate in colore rosso.
grep -c "oldboy" test2.txt conta il numero di stringhe corrispondenti
sed: editor del flusso di caratteri
sed [opzioni] [caratteri di comando integrati sed] [file di input]
sed '2a 106,dandan,CSO' persons.txt #<==Qui viene utilizzata la funzione di accodamento del comando integrato sed.
sed '2i 106,dandan,CSO' persons.txt #<==Qui viene utilizzata la funzione di inserimento del comando integrato sed i.
sed '2a 106,dandan,CSO 107,bingbing,CCO' person.txt aggiunge più righe di testo dopo la riga specificata nel file.
sed '2d' person.txt #<==Il comando integrato sed d viene utilizzato qui per implementare la funzione di eliminazione, specificando la cancellazione del testo nella riga 2
sed '2,5d' person.txt #<== "2,5" è una combinazione di indirizzi numerici, separati da virgole. La sua funzione è eliminare dalla seconda alla quinta riga del file (eliminare più righe) di testo, comprese le righe 2 e 5, quindi rimane solo la riga 1.
sed 's#zhangyao#dandan#g' person.txt #<==Il comando integrato sed s viene utilizzato qui per implementare la funzione di sostituzione e il flag di sostituzione globale g viene utilizzato per sostituire tutte le stringhe che corrispondono a zhangyao nel file . È necessario prestare attenzione al formato grammaticale. Posiziona il testo "zhangyao" che deve essere sostituito tra il primo e il secondo "#" e posiziona il testo sostituito "dandan" tra il secondo e il terzo "#". Il risultato è che "zhangyao" nella seconda riga viene sostituito con "dandan".
sed '2p' person.txt #<== Il comando integrato sed p viene utilizzato qui per implementare la funzione di query e il contenuto della riga 2 è specificato in combinazione con l'indirizzo numerico. Tuttavia, troveremo che il risultato non è solo l'output della riga 2, ma anche il resto del file. Anche il contenuto viene visualizzato perché il comando sed ha una funzione di output predefinita.
sed -n '2p' person.txt #<== Per risolvere il problema del comando precedente che visualizza contenuto ridondante, utilizzare l'opzione -n per annullare l'output predefinito e visualizzare solo il testo della riga corrispondente, in modo da è necessario ricordarsi di utilizzare il comando p con l'opzione richiesta - n.
sed -n '2,3p' person.txt #<==Naturalmente puoi utilizzare l'intervallo di indirizzi "2,3" per visualizzare il contenuto delle righe da 2 a 3.
Iniziare con le basi di awk
awk [parametro] file 'condizione {azione}'...
awk 'NR==5' oldboy.txt #<==Rispetto al contenuto di cui sopra, è effettivamente la riga 5.
awk 'NR==2,NR==6' vecchioragazzo.txt
awk '{print NR,$0}' oldboy.txt aggiunge un numero di riga prima di ogni riga del file.
awk 'NR==2,NR==6 {print NR,$0}' oldboy.txt #<==Visualizza le righe da 2 a 6 del file oldboy.txt e stampa il numero di riga.
awk -F ":" '{print $1,$3,$NF}' oldboy.txt visualizza la prima, la terza e l'ultima colonna del file oldboy.txt.
awk '{gsub("/sbin/nologin","/bin/bash",$0);print $0}' oldboy.txt Sostituisci /sbin/nologin nel file con /bin/bash (pratica della funzione awk).