• Vuoi Pubblicare un Articolo | Contattaci
Tech News, Magazine & Review WordPress Theme 2017
  • Home
  • PC & MOBILE
    • All
    • ANDROID
    • IPHONE E IPAD
    • LINUX
    • MAC
    • WINDOWS
    Come utilizzare il comando cp in Linux

    Come utilizzare il comando cp in Linux

    How to check network interface status in CentOS8

    How to check network interface status in CentOS8

    Collisione: app Linux per verificare l'integrità dei file utilizzando gli hash

    Collisione: app Linux per verificare l’integrità dei file utilizzando gli hash

    Metadata Cleaner: Remove Your Traces Within a File

    Metadata Cleaner: Remove Your Traces Within a File

    Create Contact Form Using HTML and PHP

    Create Contact Form Using HTML and PHP

    Piwigo: An Open-Source Google Photos Alternative

    Piwigo: An Open-Source Google Photos Alternative

    10 Best Webcams for Ubuntu in 2022

    10 Best Webcams for Ubuntu in 2022

    Make Applications Start in the Center of Screen in Ubuntu - It's FOSS

    Make Applications Start in the Center of Screen in Ubuntu – It’s FOSS

    Golang Time Format

    Golang Time Format

  • INTERNET
    • All
    • COMUNICAZIONI
    • FACEBOOK
    • SICUREZZA
    • STRUMENTI
    Come limitare chi può contattarti su Instagram

    Come limitare chi può contattarti su Instagram

    I federali scoprono un "coltellino svizzero" per l'hacking di sistemi industriali

    I federali scoprono un “coltellino svizzero” per l’hacking di sistemi industriali

    Come l'invasione russa ha innescato un giro di vite degli Stati Uniti sui suoi hacker

    Come l’invasione russa ha innescato un giro di vite degli Stati Uniti sui suoi hacker

    Blockchains Have a ‘Bridge’ Problem, and Hackers Know It

    Blockchains Have a ‘Bridge’ Problem, and Hackers Know It

    Forcing WhatsApp and iMessage to Work Together Is Doomed to Fail

    Forcing WhatsApp and iMessage to Work Together Is Doomed to Fail

    A Mysterious Satellite Hack Has Victims Far Beyond Ukraine

    A Mysterious Satellite Hack Has Victims Far Beyond Ukraine

    The TSA’s First Crack at Protecting Pipelines From Hackers Falls Short

    The TSA’s First Crack at Protecting Pipelines From Hackers Falls Short

    Russia Wants to Label Meta an ‘Extremist Organization’

    Russia Wants to Label Meta an ‘Extremist Organization’

    Chinese Spies Hacked a Livestock App to Breach US State Networks

    Chinese Spies Hacked a Livestock App to Breach US State Networks

  • LIFESTYLE
    • All
    • DIVERTIMENTO
    • NOTIZIE
    • PRODUTTIVITÀ
    Array

    Array

    9 migliori cuscini per cullare la tua zucca per un'ottima notte di sonno

    9 migliori cuscini per cullare la tua zucca per un’ottima notte di sonno

    5 consigli su come aiutare i bambini con bisogni speciali a prosperare

    5 consigli su come aiutare i bambini con bisogni speciali a prosperare

    La settimana lavorativa di 4 giorni aumenta la tua produttività per un migliore equilibrio?

    La settimana lavorativa di 4 giorni aumenta la tua produttività per un migliore equilibrio?

    Come trovare un lavoro in linea con i tuoi valori fondamentali

    Come trovare un lavoro in linea con i tuoi valori fondamentali

    5 strategie per far crescere il tuo business continuamente

    5 strategie per far crescere il tuo business continuamente

    Diventare un Life Coach: come trasformo l'esperienza di vita in coaching

    Diventare un Life Coach: come trasformo l’esperienza di vita in coaching

    9 migliori coperte per aiutarti a dormire meglio di un bambino

    9 migliori coperte per aiutarti a dormire meglio di un bambino

    how to work from home without getting distracted

    How to Work from Home Without Getting Distracted?

No Result
View All Result
  • Home
  • PC & MOBILE
    • All
    • ANDROID
    • IPHONE E IPAD
    • LINUX
    • MAC
    • WINDOWS
    Come utilizzare il comando cp in Linux

    Come utilizzare il comando cp in Linux

    How to check network interface status in CentOS8

    How to check network interface status in CentOS8

    Collisione: app Linux per verificare l'integrità dei file utilizzando gli hash

    Collisione: app Linux per verificare l’integrità dei file utilizzando gli hash

    Metadata Cleaner: Remove Your Traces Within a File

    Metadata Cleaner: Remove Your Traces Within a File

    Create Contact Form Using HTML and PHP

    Create Contact Form Using HTML and PHP

    Piwigo: An Open-Source Google Photos Alternative

    Piwigo: An Open-Source Google Photos Alternative

    10 Best Webcams for Ubuntu in 2022

    10 Best Webcams for Ubuntu in 2022

    Make Applications Start in the Center of Screen in Ubuntu - It's FOSS

    Make Applications Start in the Center of Screen in Ubuntu – It’s FOSS

    Golang Time Format

    Golang Time Format

  • INTERNET
    • All
    • COMUNICAZIONI
    • FACEBOOK
    • SICUREZZA
    • STRUMENTI
    Come limitare chi può contattarti su Instagram

    Come limitare chi può contattarti su Instagram

    I federali scoprono un "coltellino svizzero" per l'hacking di sistemi industriali

    I federali scoprono un “coltellino svizzero” per l’hacking di sistemi industriali

    Come l'invasione russa ha innescato un giro di vite degli Stati Uniti sui suoi hacker

    Come l’invasione russa ha innescato un giro di vite degli Stati Uniti sui suoi hacker

    Blockchains Have a ‘Bridge’ Problem, and Hackers Know It

    Blockchains Have a ‘Bridge’ Problem, and Hackers Know It

    Forcing WhatsApp and iMessage to Work Together Is Doomed to Fail

    Forcing WhatsApp and iMessage to Work Together Is Doomed to Fail

    A Mysterious Satellite Hack Has Victims Far Beyond Ukraine

    A Mysterious Satellite Hack Has Victims Far Beyond Ukraine

    The TSA’s First Crack at Protecting Pipelines From Hackers Falls Short

    The TSA’s First Crack at Protecting Pipelines From Hackers Falls Short

    Russia Wants to Label Meta an ‘Extremist Organization’

    Russia Wants to Label Meta an ‘Extremist Organization’

    Chinese Spies Hacked a Livestock App to Breach US State Networks

    Chinese Spies Hacked a Livestock App to Breach US State Networks

  • LIFESTYLE
    • All
    • DIVERTIMENTO
    • NOTIZIE
    • PRODUTTIVITÀ
    Array

    Array

    9 migliori cuscini per cullare la tua zucca per un'ottima notte di sonno

    9 migliori cuscini per cullare la tua zucca per un’ottima notte di sonno

    5 consigli su come aiutare i bambini con bisogni speciali a prosperare

    5 consigli su come aiutare i bambini con bisogni speciali a prosperare

    La settimana lavorativa di 4 giorni aumenta la tua produttività per un migliore equilibrio?

    La settimana lavorativa di 4 giorni aumenta la tua produttività per un migliore equilibrio?

    Come trovare un lavoro in linea con i tuoi valori fondamentali

    Come trovare un lavoro in linea con i tuoi valori fondamentali

    5 strategie per far crescere il tuo business continuamente

    5 strategie per far crescere il tuo business continuamente

    Diventare un Life Coach: come trasformo l'esperienza di vita in coaching

    Diventare un Life Coach: come trasformo l’esperienza di vita in coaching

    9 migliori coperte per aiutarti a dormire meglio di un bambino

    9 migliori coperte per aiutarti a dormire meglio di un bambino

    how to work from home without getting distracted

    How to Work from Home Without Getting Distracted?

No Result
View All Result
Soluzioni CRM
No Result
View All Result

Comprensione della configurazione della shell Bash all’avvio – Suggerimento Linux

by Staff
14 Gennaio 2021
Comprensione della configurazione della shell Bash all'avvio - Suggerimento Linux
Share on FacebookShare on Twitter


Per anni la shell Bash [1] è stato parte integrante di molte distribuzioni Linux. All’inizio, Bash è stata scelta come shell GNU ufficiale perché era ben nota, abbastanza stabile e offriva un discreto insieme di funzionalità.

Oggi la situazione è leggermente diversa: Bash è ancora presente ovunque come pacchetto software ma è stato sostituito da alternative nell’installazione standard. Questi includono, ad esempio, la shell Debian Almquist (Dash) [2] (per Debian GNU / Linux) o Zsh [3] (per GRML [5]). Nelle ben note distribuzioni Ubuntu, Fedora, Arch Linux e Linux Mint, Bash è rimasta finora la shell standard.

È molto utile comprendere l’avvio di Bash e sapere come configurarlo correttamente. Ciò include la personalizzazione del proprio ambiente di shell, ad esempio, l’impostazione della variabile $ PATH, la regolazione dell’aspetto del prompt della shell e la creazione di alias. Inoltre, daremo uno sguardo ai due file .bashrc e .bash_profile che vengono letti all’avvio. La conoscenza corrispondente viene verificata nell’esame 1 della certificazione Linux Professional Institute [4].

Confronto tra un accesso interattivo e una shell batch non interattiva

Indice Articolo

  • Confronto tra un accesso interattivo e una shell batch non interattiva
  • Shell di accesso interattivo
  • Shell interattiva non di accesso
  • Shell non interattiva non di accesso
  • Shell di accesso non interattiva
  • File di avvio Bash
  • Spiegazione dei diversi file di configurazione
  • / etc / profile
  • ~ / .bash_profile
  • ~ / .bash_login
  • ~ / .profile
  • /etc/bash.bashrc e ~ / .bashrc
  • Cosa configurare in quale file
  • Collegamenti e riferimenti
  • Grazie

In generale, una shell ha due modalità di funzionamento. Può essere eseguito come shell di login interattiva e come shell batch non interattiva. La modalità di funzionamento definisce l’avvio di Bash e quali file di configurazione vengono letti [7]. La modalità di funzionamento può essere differenziata come segue [6] – shell di login interattiva, shell non di login interattiva, shell di login non interattiva e shell non di login non interattiva (batch).

Per dirla semplicemente, una shell interattiva legge e scrive sul terminale di un utente. Al contrario, una shell non interattiva non è associata a un terminale, come quando si esegue uno script di shell batch. Una shell interattiva può essere una shell di login o non di login.

Shell di accesso interattivo

Questa modalità si riferisce all’accesso al computer su una macchina locale utilizzando un terminale che va da tty1 a tty4 (dipende dall’installazione – potrebbero esserci più o meno terminali). Inoltre, questa modalità copre l’accesso remoto a un computer, ad esempio, tramite Secure Shell (ssh) come segue:

$ ssh utente@sistema remoto

$ ssh utente@comando a distanza del sistema remoto

Il primo comando si connette al sistema remoto e apre solo una shell interattiva. Al contrario, il secondo comando si connette al sistema remoto, esegue il comando dato in una shell di login non interattiva e termina la connessione ssh. L’esempio seguente mostra questo in modo più dettagliato:

$ ssh localhost uptime

utente@localhostla password di:

11:58:49 fino a 23 giorni, 11:41, 6 utenti, media di caricamento: 0,10, 0,14, 0,20

$

Per scoprire se hai effettuato l’accesso al tuo computer utilizzando una shell di login, digita il seguente comando echo nel tuo terminale:

Per una shell di login, l’output inizia con un “-” seguito dal nome della shell, che nel nostro caso risulta “-bash”. Per una shell non di login, l’output è solo il nome della shell. L’esempio seguente mostra questo per i due comandi echo $ 0 e il tempo di attività viene assegnato a ssh come parametro di stringa:

$ ssh localhost “echo $ 0; uptime”

utente@localhostla password di:

bash

11:58:49 fino a 23 giorni, 11:41, 6 utenti, media di caricamento: 0,10, 0,14, 0,20

$

In alternativa, usa il comando shopt integrato [8] come segue:

$ negozi login_shell

login_shell off

$

Per una shell non di login, il comando restituisce “off” e per una shell di login “on”.

Per quanto riguarda la configurazione per questo tipo di shell, vengono presi in considerazione tre file. Questi sono / etc / profile, ~ / .profile e ~ / .bash_profile. Vedi sotto per una descrizione dettagliata di questi file.

Shell interattiva non di accesso

Questa modalità descrive l’apertura di un nuovo terminale, ad esempio xterm o Gnome Terminal, e l’esecuzione di una shell al suo interno. In questa modalità, vengono letti i due file / etc / bashrc e ~ / .bashrc. Vedi sotto per una descrizione dettagliata di questi file.

Shell non interattiva non di accesso

Questa modalità è in uso quando si esegue uno script di shell. Lo script della shell viene eseguito nella propria sottoshell. È classificato come non interattivo a meno che non richieda l’input dell’utente. La shell si apre solo per eseguire lo script e la chiude immediatamente una volta terminato lo script.

Shell di accesso non interattiva

Questa modalità copre l’accesso a un computer da remoto, ad esempio tramite Secure Shell (ssh). Lo script di shell local-script.sh viene eseguito localmente, per primo, e il suo output viene utilizzato come input di ssh.

./local-script.sh | ssh utente@sistema remoto

L’avvio di ssh senza ulteriori comandi avvia una shell di login sul sistema remoto. Nel caso in cui il dispositivo di input (stdin) di ssh non sia terminale, ssh avvia una shell non interattiva e interpreta l’output dello script come comandi da eseguire sul sistema remoto. L’esempio seguente esegue il comando uptime sul sistema remoto:

$ eco “uptime” | ssh localhost

Lo pseudo-terminale non verrà allocato perché stdin non è un terminale.

Franco@localhostla password di:

I programmi inclusi con il sistema Debian GNU / Linux sono software libero;

i termini esatti di distribuzione per ogni programma sono descritti nel

singoli file in / usr / share / doc / * / copyright.

Debian GNU / Linux viene fornita ASSOLUTAMENTE NESSUNA GARANZIA, nella misura in cui

consentito dalla legge applicabile.

Hai nuova posta.

11:58:49 fino a 23 giorni, 11:41, 6 utenti, media di caricamento: 0,10, 0,14, 0,20

$

È interessante notare che ssh si lamenta del fatto che stdin non sia un terminale e mostra il messaggio del giorno (motd) che è memorizzato nel file di configurazione globale / etc / motd. Per accorciare l’output del terminale, aggiungere l’opzione “sh” come parametro del comando ssh, come mostrato di seguito. Il risultato è che una shell viene aperta per prima ei due comandi vengono eseguiti senza visualizzare prima il motd.

$ eco “uptime” | ssh localhost sh

Franco@localhostla password di:

12:03:39 su 23 giorni, 11:46, 6 utenti, media di caricamento: 0,07, 0,09, 0,16

$$

Successivamente, daremo uno sguardo ai diversi file di configurazione per Bash.

File di avvio Bash

Le diverse modalità Bash definiscono quali file di configurazione vengono letti all’avvio:

  • shell di login interattiva
    • / etc / profile: se esiste, esegue i comandi elencati nel file.
    • ~ / .bash_profile, ~ / .bash_login e ~ / .profile (in quest’ordine). Esegue i comandi dal primo file leggibile trovato dalla lista. Ogni singolo utente può avere il proprio set di questi file.
  • shell interattiva non di login
    • /etc/bash.bashrc: configurazione Bash globale. Esegue i comandi se quel file esiste ed è leggibile. Disponibile solo in Debian GNU / Linux, Ubuntu e Arch Linux.
    • ~ / .bashrc: configurazione Bash locale. Esegue i comandi se quel file esiste ed è leggibile.

Potrebbe essere utile vederlo come un grafico. Durante la ricerca, abbiamo trovato l’immagine qui sotto, che ci piace molto [9].


Immagine: config-path.png
testo: Processo di valutazione per la configurazione Bash

Spiegazione dei diversi file di configurazione

Per i file spiegati di seguito, non esiste un set di regole generali su quale opzione memorizzare in quale file (ad eccezione delle opzioni globali rispetto alle opzioni locali). Inoltre, l’ordine in cui vengono letti i file di configurazione è progettato tenendo presente la flessibilità in modo che una modifica della shell che si utilizza assicuri che sia ancora possibile utilizzare il sistema Linux. Ecco perché sono in uso diversi file che configurano la stessa cosa.

/ etc / profile

Questo file viene utilizzato dalla shell Bourne (sh) e dalle shell compatibili Bourne come Bash, Ash e Ksh. Contiene le voci predefinite per le variabili di ambiente per tutti gli utenti che accedono in modo interattivo. Ad esempio, questo influenza il $ PATH e il design del prompt per gli utenti regolari, nonché per l’utente denominato “root”. L’esempio seguente mostra una parte di / etc / profile da Debian GNU / Linux.

setuserpath(){

# Directory comuni agli eseguibili per tutti gli utenti

SENTIERO=“/ usr / local / bin: / usr / bin: / bin”

# Test per l’utente root da aggiungere per i programmi di amministrazione del sistema

Se [ “`id -u`“ -eq 0 ]; poi

SENTIERO=“/ usr / local / sbin: / usr / sbin: / sbin:$ PATH“

altro

SENTIERO=“/ usr / local / games: / usr / games:$ PATH“

essere

esportare SENTIERO

}

setuserpath()

# PS1 è la stringa del prompt dei comandi principale

Se [ “$PS1“ ]; poi

Se [ “$BASH“ ] && [ “$BASH“ != “/bin/sh” ]; poi

# Il file bash.bashrc imposta già la PS1 predefinita.

# PS1 = ‘ h: w $’

Se [ -f /etc/bash.bashrc ]; poi

. /eccetera/bash.bashrc

essere

altro

Se [ “`id -u`“ -eq 0 ]; poi

PS1=“#”

altro

PS1=“$”

essere

essere

essere

Ulteriori file di configurazione possono essere salvati nella directory /etc/profile.d. Vengono inseriti nella configurazione Bash non appena / etc / profile viene letto.

~ / .bash_profile

Questo file di configurazione locale viene letto ed eseguito quando Bash viene invocato come una shell di login interattiva. Contiene comandi che dovrebbero essere eseguiti una sola volta, come la personalizzazione della variabile d’ambiente $ PATH.

È abbastanza comune riempire ~ / .bash_profile solo con righe come sotto l’origine del file .bashrc. Ciò significa che ogni volta che accedi al terminale, viene letto il contenuto della tua configurazione Bash locale.

Se [ -f ~/.bashrc ]; poi

. ~/.bashrc

essere

Se il file ~ / .bash_profile esiste, Bash salterà la lettura da ~ / .bash_login (o ~ / .profile).

~ / .bash_login

I due file ~ / .bash_profile e ~ / .bash_login sono analoghi.

~ / .profile

La maggior parte delle distribuzioni Linux utilizza questo file invece di ~ / .bash_profile. Viene utilizzato per individuare il file locale .bashrc e per estendere la variabile $ PATH.

# se si esegue bash

Se [ -n “$BASH_VERSION“ ]; poi

# includi .bashrc se esiste

Se [ -f “$HOME/.bashrc” ]; poi

. “$ HOME/.bashrc “

essere

essere

# imposta PATH in modo che includa il cestino privato dell’utente, se esiste

Se [ -d “$HOME/bin” ] ; poi

SENTIERO=“$ HOME/bidone:$ PATH“

essere

In generale, ~ / .profile viene letto da tutte le shell. Se esiste ~ / .bash_profile o ~ / .bash_login, Bash non leggerà questo file.

/etc/bash.bashrc e ~ / .bashrc

Questo file contiene la configurazione di Bash e gestisce gli alias locali, i limiti della cronologia memorizzati in .bash_history (vedi sotto) e il completamento di Bash.

# non inserire righe o righe duplicate che iniziano con uno spazio nella cronologia.

# Vedere bash (1) per ulteriori opzioni

HISTCONTROL= ignora entrambi

# aggiungi al file della cronologia, non sovrascriverlo

negozi -S histappend

# per impostare la lunghezza della cronologia, vedere HISTSIZE e HISTFILESIZE in bash (1)

HISTSIZE=1000

HISTFILESIZE=2000

Cosa configurare in quale file

Come hai imparato finora, non esiste un singolo file ma un gruppo di file per configurare Bash. Questi file esistono solo per ragioni storiche, in particolare per il modo in cui le diverse shell si sono evolute e hanno preso in prestito utili funzionalità l’una dall’altra. Inoltre, non sono note regole rigide

definire quale file è destinato a mantenere una certa parte della configurazione. Questi sono i consigli che abbiamo per te (basati su TLDP [10]):

  • Tutte le impostazioni che vuoi applicare a tutti gli ambienti dei tuoi utenti dovrebbero essere in / etc / profile.
  • Tutti gli alias e le funzioni globali dovrebbero essere archiviati in / etc / bashrc.
  • Il file ~ / .bash_profile è il file di configurazione preferito per configurare gli ambienti utente individualmente. In questo file, gli utenti possono aggiungere ulteriori opzioni di configurazione o modificare le impostazioni predefinite.
  • Tutti gli alias e le funzioni locali dovrebbero essere archiviati in ~ / .bashrc.

Inoltre, tieni presente che Linux è progettato per essere molto flessibile: se uno qualsiasi dei file di avvio sopra indicati non è presente nel tuo sistema, puoi crearlo.

Collegamenti e riferimenti

  • [1] GNU Bash, https://www.gnu.org/software/bash/
  • [2] Shell Debian Almquist (Dash), http://gondor.apana.org.au/~herbert/dash/
  • [3] Zsh, https://www.zsh.org/
  • [4] Certificazione Linux Professional Institute (LPIC), Livello 1, https://www.lpice.eu/en/our-certifications/lpic-1
  • [5] GRML, https://grml.org/
  • [6] Differenziare login interattivo e shell non di login non interattiva, AskUbuntu, https://askubuntu.com/questions/879364/differentiate-interactive-login-and-non-interactive-non-login-shell
  • [7] File di avvio Bash, https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html#Bash-Startup-Files
  • [8] The Shopt Builtin, https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html
  • [9] Introduzione a Unix – Ordine di caricamento dei file di avvio di Bash, https://medium.com/@youngstone89/unix-introduction-bash-startup-files-loading-order-562543ac12e9
  • [10] The Linux Documentation Project (TLDP), https://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_01.html

Grazie

L’autore desidera ringraziare Gerold Rupprecht per i suoi consigli mentre scriveva questo articolo.


Staff

Staff

Next Post
Come esprimere te stesso in modo autentico e sicuro

Come esprimere te stesso in modo autentico e sicuro

Raccomandati.

Microsoft afferma che gli hacker di SolarWinds hanno visualizzato il codice sorgente, ma le sue difese hanno ostacolato un ulteriore accesso

La risposta di Microsoft agli attacchi di Exchange Server viene esaminata con l’aumentare della portata dell’attacco

8 Marzo 2021
Why You Feel Lonely In Your Marriage And How To Deal With It

Why You Feel Lonely In Your Marriage And How To Deal With It

9 Aprile 2021

Tendenza.

No Content Available

DISCLAIMER

Questo sito non costituisce testata giornalistica e non ha carattere periodico essendo aggiornato secondo la disponibilità e la reperibilità dei materiali. Pertanto non può essere considerato in alcun modo un prodotto editoriale ai sensi della L. n. 62 del 7/3/2001.

Pagine

  • CONTATTACI

© 2019 Soluzioni-crm.it

No Result
View All Result

© 2022 JNews - Premium WordPress news & magazine theme by Jegtheme.