Newsgroup: it.comp.os.linux.iniziare
Titolo: perchè la variabile $EDITOR risulta impostata?

~$ grep EDITOR .bashrc || echo NON IMPOSTATA
NON IMPOSTATA
~$ grep EDITOR .profile || echo NON IMPOSTATA
NON IMPOSTATA
 
OK, però adesso succede una cosa strana
 
~$ echo $EDITOR
geany
 
geany?
Perchè?
La variabile risultava NON IMPOSTATA...
 
PS
 
La mia versione del sistema operativo:
 
~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.2 LTS
Release:	20.04
Codename:	focal


La variabile RISULTA IMPOSTATA invece.
 
Nonostante non sia impostata nel file a livello di utente specifico,
non è detto che non lo sia a livello di sistema.
 
Per Ubuntu:
 
https://help.ubuntu.com/community/EnvironmentVariables
 
------------------------------------
- Session-wide environment variables
  [...]
 
- System-wide environment variables
 
  /etc/environment
 
  /etc/profile.d/*.sh
 
  [...]
-------
 
Esempio su Slackware (simile):
------------------------------
$ grep EDITOR /etc/profile.d/*
/etc/profile.d/more-vars.sh:export EDITOR="/usr/bin/vim"
--------------------------------------------------------
 
Magari in Ubuntu avrai un altro file al posto di "more-vars.sh" nella
dir profiles.d, oppure puoi trovare la var EDITOR impostata in
/etc/environment.
 
Ricapitolando, le variabili d'ambiente sono impostate a livello di
sistema in files che solitamente si trovano da qualche parte in
"/etc", a seconda della distribuzione specifica.
Poi volendo puoi personalizzarle a livello di singolo utente nei files
della home, quindi ~/.profile ~/.bashrc ~/bash_profile ecc ecc...

 
 
OK, ma quale di questo file è quello giusto?
Chi dice ~/.profile, chi dice ~/.bashrc, chi dice... dove capita :)

 Chi dice ~/.profile, chi dice ~/.bashrc, chi dice... dove capita :)
 
Leggere il manuale della shell in uso (bash).
E` spiegato tutto (malamente) sulle differenze
tra i vari file di init.
 
Uno e` usato per ogni shell attivata, l'altro
solo per le shell di login.
E forse altro...
 
bye,
 
-- 
 
piergiorgio

 Chi dice ~/.profile, chi dice ~/.bashrc, chi dice... dove capita :)
 
man bash
 
per i dettagli. In breve son giusti tutti, ma è preferibile se non altro
perché lo dice il wiki di ubuntu e tu stai lavorando da lì:
 
~/.profile
 
C'è una priorità che sinceramente così su due piedi non ricordo,
del tipo che se metti la variabile in ~/.bashrc e la imposti
diversamente in ~/.profile tra le due prevale l'una o l'altra.
Puoi fare la prova facilmente...
 
 
 
PS.
vedo adesso la risposta di Piergiorgio che rilancerei così:
 
find /etc -type f 2>/dev/null -print0 | xargs -0 grep EDITOR 2>/dev/null
 
il reindirizzamento degli errori in dev null toglie un po' di casino
ad xargs
 
 
PPS.
Se non si trova nulla in files di testo del genere, l'impostazione
potrebbe anche risiedere in qualche file di configurazione di systemd,
personalmente non lo conosco così bene, ma eventuali file di
configurazione dello stesso potrebbero anche non essere umanamente
leggibili (tipo magari sono binari o database di qualche genere).
Neanche Linux è più quello di una volta... Slackware a parte! ;)
umanamente leggibile come un file di testo
 

 find /etc -type f -print0 | xargs -0 grep EDITOR
 
~$ sudo find /etc -type f -print0 | xargs -0 sudo grep EDITOR|| echo NIENTE
 


E?
 
Tra l'altro, magari puoi provare anche in /home/...
 
bye,
 
-- 
 
piergiorgio

 .pam-environment l'avevi controllato?
 
excl=(
     --exclude-dir=.cache
     --exclude-dir=snap
     --exclude-dir=.local
     --exclude-dir=.mozilla
)
 
grep "${excl[@]}" -r EDITOR /etc/ 2>&1 | grep profile
grep "${excl[@]}" -r EDITOR ~/ 2>&1
/home/.../.selected_editor:SELECTED_EDITOR="/bin/nano"
Il file binario /home/.../.config/chromium/Default/History corrisponde
Il file binario /home/.../.config/chromium/Default/Service 
Worker/ScriptCache/b56d143bc39bda29_0 corrisponde
Il file binario /home/.../.config/chromium/Default/Service 
Worker/ScriptCache/3993e359829516e8_0 corrisponde
Il file binario /home/.../.config/chromium/Default/Service 
Worker/CacheStorage/0f48a22277f64c442756e922770a3faedfa75bed/e8133daf-9fd5-48de-a4e7-85346517c680/2880676132e5b2ed_0 
corrisponde
Il file binario /home/.../.config/chromium/Default/Service 
Worker/CacheStorage/881b8101e3f614915764ae7f8d1f9bd378b0caf9/82308057-a207-44b4-94a8-b4aea3cb7806/550a111c9e1427c7_0 
corrisponde
Il file binario /home/.../.config/chromium/Default/Service 
Worker/CacheStorage/36b879eaee441e0bff5d4af94c21112fc43c4ae5/b8eaeb73-52f9-4234-a00b-7fe77b1290d8/d3868b1d8fb6f1c8_0 
corrisponde
grep: /home/.../.dbus: Permesso negato
Il file binario /home/.../VirtualBox VMs/ubuntu-19.04/ubuntu-19.04.vdi 
corrisponde
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:grep -rin EDITOR
/home/.../.bash_history:grep -rin EDITOR .bashrc
/home/.../.bash_history:grep -rin EDITOR .profile
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:grep -rin EDITOR .bashrc
/home/.../.bash_history:grep -rin EDITOR .profile
/home/.../.bash_history:grep EDITOR .bashrc || echo NON IMPOSTATA
/home/.../.bash_history:grep EDITOR .profile || echo NON IMPOSTATA
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:grep -r EDITOR /etc/profile.d/ || echo "NON TROVATO"
/home/.../dead.letter:/home/.../.profile-extra #export EDITOR=
grep: /home/.../.gvfs: Permesso negato
Il file binario /home/.../java_error_in_PHPSTORM.hprof corrisponde
Il file binario /home/.../java_error_in_phpstorm_.hprof corrisponde
grep "${excl[@]}" EDITOR ~/* 2>/dev/null
/home/.../dead.letter:/home/.../.profile-extra #export EDITOR=
Il file binario /home/.../java_error_in_phpstorm_.hprof corrisponde
Il file binario /home/.../java_error_in_PHPSTORM.hprof corrisponde
grep "${excl[@]}" EDITOR ~/.* 2>/dev/null
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:grep -rin EDITOR
/home/.../.bash_history:grep -rin EDITOR .bashrc
/home/.../.bash_history:grep -rin EDITOR .profile
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:grep -rin EDITOR .bashrc
/home/.../.bash_history:grep -rin EDITOR .profile
/home/.../.bash_history:grep EDITOR .bashrc || echo NON IMPOSTATA
/home/.../.bash_history:grep EDITOR .profile || echo NON IMPOSTATA
/home/.../.bash_history:echo $EDITOR
/home/.../.bash_history:grep -r EDITOR /etc/profile.d/ || echo "NON TROVATO"
/home/.../.selected_editor:SELECTED_EDITOR="/bin/nano"
ls -l ~/.pam-environmen
ls: impossibile accedere a '/home/.../.pam-environmen': File o directory 
non esistente
 

 Description:	Ubuntu 20.04.2 LTS
 
Cosa ti dice questo?
 
$ sudo update-alternatives --display editor
 
Enrico

 non esistente
 
Sbagliato a digitare... Manca una "t" in fondo ad "environmen".
Riprova.
 
E già che sei di strada dai anche un cat di quel file...


Ho un'installazione virtualizzata in libvirt di Ubuntu, versione
20.10, un po' più recente quindi rispetto a quella dell'OP.
 
 
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.10
Release:	20.10
Codename:	groovy
----------------------
 
 
$ update-alternatives --display editor
editor - auto mode
  link best version is /bin/nano
  link currently points to /bin/nano
  link editor is /usr/bin/editor
  slave editor.1.gz is /usr/share/man/man1/editor.1.gz
  slave editor.da.1.gz is /usr/share/man/da/man1/editor.1.gz
  slave editor.de.1.gz is /usr/share/man/de/man1/editor.1.gz
  slave editor.fr.1.gz is /usr/share/man/fr/man1/editor.1.gz
  slave editor.it.1.gz is /usr/share/man/it/man1/editor.1.gz
  slave editor.ja.1.gz is /usr/share/man/ja/man1/editor.1.gz
  slave editor.pl.1.gz is /usr/share/man/pl/man1/editor.1.gz
  slave editor.ru.1.gz is /usr/share/man/ru/man1/editor.1.gz
/bin/ed - priority -100
  slave editor.1.gz: /usr/share/man/man1/ed.1.gz
/bin/nano - priority 40
  slave editor.1.gz: /usr/share/man/man1/nano.1.gz
/usr/bin/vim.tiny - priority 15
  slave editor.1.gz: /usr/share/man/man1/vim.1.gz
  slave editor.da.1.gz: /usr/share/man/da/man1/vim.1.gz
  slave editor.de.1.gz: /usr/share/man/de/man1/vim.1.gz
  slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz
  slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz
  slave editor.ja.1.gz: /usr/share/man/ja/man1/vim.1.gz
  slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz
  slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz
-------------------------------------------------------
 
Sembrerebbe che di default parta con "nano"...
 
 
Nel mio caso, tranttandosi di un'installazione praticamente
vergine nel senso che l'avevo fatta più per alcune prove con
qemu/libvirt/virt-manager e l'emulatore di UEFI TianoCore,
la variabile d'ambiente EDITOR non risulta assegnata.
 
--------------
$ echo $EDITOR
 
--------------
 
Ed in effetti non se ne trova traccia giustamente nei vari
files di configurazione classici, ~/.bashrc ~/.profile
/etc/environment /etc/profile /etc/profile.d/*sh
 
Il tutto avviando il sistema in sessione grafica gnome e
lanciando il terminale con Ctrl+T, l'applicazione emulatore
del terminale dovrebbe essere proprio "Terminal" con molta
fantasia.
 
Probabile che l'OP abbia utilizzato maggiormente il sistema
e che qualche applicazione utilizzata o impostazione grafica
fatta nel corso del tempo abbia settato in modo trasparente
l'editor di testo predefinito popolando anche la var EDITOR
della shell.
In che modo e andando ad agire su quali files sarebbe curioso
capirlo.

 
 
NIENTE

Il 13/05/21 16:48, Piergiorgio Sartor ha scritto:

Solo un riassunto (la lista è lunghissima)
 
sudo: impossibile eseguire /bin/grep: Elenco degli argomenti troppo lungo
sudo: impossibile eseguire /bin/grep: Elenco degli argomenti troppo lungo
sudo: impossibile eseguire /bin/grep: Elenco degli argomenti troppo lungo
sudo: impossibile eseguire /bin/grep: Elenco degli argomenti troppo lungo
sudo: impossibile eseguire /bin/grep: Elenco degli argomenti troppo lungo
sudo: impossibile eseguire /bin/grep: Elenco degli argomenti troppo lungo
sudo: impossibile eseguire /bin/grep: Elenco degli argomenti troppo lungo
sudo: impossibile eseguire /bin/grep: Elenco degli argomenti troppo lungo
/home/USER/.selected_editor:SELECTED_EDITOR="/bin/nano"
/home/USER/dead.letter:/home/USER/.profile-extra #export EDITOR=
Il file binario /home/USER/java_error_in_PHPSTORM.hprof corrisponde
Il file binario /home/USER/java_error_in_phpstorm_.hprof corrisponde
 

 Riprova.
 
ls: impossibile accedere a '/home/rino/.pam-environment': File o 
directory non esistente
 

Il 13/05/21 18:33, Enrico Bianchi ha scritto:

editor - modalità automatica
   la versione migliore del collegamento è /bin/nano
   il collegamento attualmente punta a /bin/nano
   il collegamento editor è /usr/bin/editor
   slave editor.1.gz è /usr/share/man/man1/editor.1.gz
   slave editor.da.1.gz è /usr/share/man/da/man1/editor.1.gz
   slave editor.de.1.gz è /usr/share/man/de/man1/editor.1.gz
   slave editor.fr.1.gz è /usr/share/man/fr/man1/editor.1.gz
   slave editor.it.1.gz è /usr/share/man/it/man1/editor.1.gz
   slave editor.ja.1.gz è /usr/share/man/ja/man1/editor.1.gz
   slave editor.pl.1.gz è /usr/share/man/pl/man1/editor.1.gz
   slave editor.ru.1.gz è /usr/share/man/ru/man1/editor.1.gz
/bin/ed - priorità -100
   slave editor.1.gz: /usr/share/man/man1/ed.1.gz
/bin/nano - priorità 40
   slave editor.1.gz: /usr/share/man/man1/nano.1.gz
/usr/bin/vim.tiny - priorità 15
   slave editor.1.gz: /usr/share/man/man1/vim.1.gz
   slave editor.da.1.gz: /usr/share/man/da/man1/vim.1.gz
   slave editor.de.1.gz: /usr/share/man/de/man1/vim.1.gz
   slave editor.fr.1.gz: /usr/share/man/fr/man1/vim.1.gz
   slave editor.it.1.gz: /usr/share/man/it/man1/vim.1.gz
   slave editor.ja.1.gz: /usr/share/man/ja/man1/vim.1.gz
   slave editor.pl.1.gz: /usr/share/man/pl/man1/vim.1.gz
   slave editor.ru.1.gz: /usr/share/man/ru/man1/vim.1.gz
$ echo $EDITOR
geany
 
nano, geany... boh :)

 nano, geany... boh :)
 
Evidentemente c'è qualcosa di extra che si occupa di settare quella
variabile.
 
E come ho scritto, devi averla inconsapevolmente introdotta tu,
perché sulla mia installazione "vanilla" di ubuntu, EDITOR non
risulta impostato.
 
Potrebbe essere che quando hai installato geany il pacchetto di
installazione preveda anche l'impostazione di quella variabile
appunto a "geany".
 
Nel link che ti avevo messo ad esempio spiega che se usi KDE
l'impostazione della var EDITOR avviene anche in altro modo,
senza che poi tu te la ritrovi in alcun file di testo "classico".
 
Potresti per curiosità fare queste prove:
 
1.
- Ctrl+T (o ctrl+alt+t) per aprire il terminale dall'ambiente
  grafico (desktop) di ubuntu
- digiti "xterm &" e ti si dovrebbe aprire un secondo terminale
- lì dentro dai "echo $EDITOR"
 
2.
-  Ctrl+Alt+F2 (o F3 o F4), dovresti ottenere una schermata con
   il terminale virtuale (non ho provato sulla mia installazione
   di ubuntu) ma da una breve ricerca dovrebbe funzionare anche
   lì (in una leggo ctrl+alt+f1 per andare in console testuale,
   se in quella non ottieni la richiesta di login, premi alt+f2
   per andare sul terminale virtuale numero 2 e lì dovresti..
   insomma leggiti qua in fondo:
 
https://www.informit.com/articles/article.aspx?p=2932143
 
-  Ora sei in console e hai fatto il login col tuo utente semplice
   lo stesso che hai usato nei messaggi precedenti.
-  Da lì prova a lanciare "echo $EDITOR"
-  E fai sapere se la variabile d'ambiente risulta settata sempre
   a "geany", ad altro o se risulta vuota
 

    a "geany", ad altro o se risulta vuota
 
Per andare in console testuale sulla 20.10 bisogna dare:
 
Ctrl+Alt+F3
 
Dovrebbe essere così anche sulla 20.04:
 
https://ubuntuhandbook.org/index.php/2020/05/boot-ubuntu-20-04-command-console/
 
 
Da come ho inteso provando F1 ti manda al login grafico, su F2 c'è la
sessione grafica in uso, quindi ctrl+alt+f2 non porta da nessuna parte.
Invece dando ctrl+alt+f3 ma anche f4,5,6 aprono le tty3,4,5,6.
Oltre 7,8,9 ecc non so... ma non serve per lo scopo.
 
Per tornare alla sessione grafica dalla console testuale Alt+F2.


Si, ma scusa, senza offesa, tu capisci
cosa stai facendo?
 
Per prima cosa, in /home/<user> non c'e`
bisogno di "sudo", dato che sei gia` <user>.
Ed ovviamente non c'e` bisogno di cercare
in _tutta_ /home, ma solo nell'utente che
interessa (mi pareva logico).
 
Secondo, leggere la man page di "xargs" per
vedere come limitare la lista dei parametri
pare troppo brutto?
 
Inoltre, visto che sai gia` quale sia il
valore di EDITOR, magari potresti cercare
anche per valore, invece che per nome.
 
Infine, come gia` scritto da altri, vai
a vedere cosa faccia il pacchetto per cui
EDITOR contiene il valore che ha.
 
bye,
 
-- 
 
piergiorgio

 EDITOR contiene il valore che ha.
 
https://www.geany.org/manual/current/
 
 
https://itectec.com/ubuntu/ubuntu-how-to-make-geany-the-default-editor-on-ubuntu/
 
 
ma non riesco a trovare nulla di interessante

 EDITOR contiene il valore che ha.
 
Per curiosità ho installato geany sulla mia 20.10 virtuale.
 
apt install geany
 
Dopo aver riavviato e dopo aver lanciato il terminale, la
variabile EDITOR da me risulta sempre vuota.
 
Può darsi che l'OP abbia settato l'editor in modo tale che quel
settaggio possa aver esteso geasy come editor preferito e che la
manovra abbia coinvolto anche qualche diavoleria che va ad impostare
anche la var EDITOR, pur non modificando file di testo di configurazione.
Ad esempio "usa geasy come editor di default", tu premi ok, e qualche
automatismo fa il resto... non so, la butto lì.
 
Solitamente cose del genere sono abbastanza legate all'ambiente grafico,
Per quello dicevo: provare da console testuale tty3.

Il 14/05/21 11:31, Joe ha scritto:

xterm non risulta installato, e mi si è anche impallato il computer.
Lasciamo stare va.

 Lasciamo stare va.
 
Non si impalla nulla, se leggevi l'altra mia risposta:
 
Ctrl+Alt+F3
 
per andare in console sulla tty3. Fai il login e ottieni la shell.
 
echo $EDITOR
 
exit
 
Poi per tornare alla sessione grafica Alt+F2.
Ma leggi tutte le mie risposte prima di buttarti a pesce, non siamo
davanti al tuo schermo, una ricerca in google la devi fare anche tu.
 
Diciamo anche che sapere quale automatismo ti abbia settato la
variabile EDITOR, on cambia la vita a nessuno. Se la vuoi impostare
diversamente hai ababstanza materiale in questo topic per sapere come
fare...

 davanti al tuo schermo, una ricerca in google la devi fare anche tu.
 
La stanchezza ;)
 


Se vuoi arrivarci in fondo puoi provare:
 
apt remove geany
 
reboot
 
e riprovare a controllare.
 
Altra prova più semplice:
 
sudo -i
 
dai la password dell'utente e diventi root
 
echo $EDITOR
 
Tanto per capire se l'impostazione riguarda anche altri utenti del
sistema o solo l'utente semplice che usi tu.
 
Ad ogni modo è molto probabile che sia stato tu stesso ad impostare
qualcosa che abbia settato quella variabile d'ambiente in modo
trasparente.
Non è facile capirlo a posteriori per chi non ha usato il tuo sistema,
francamente non conosco neanche tanto bene ubuntu. Resta il fatto che
sulla mia installazione quella variabile è assolutamente vuota, così
come l'editor geasy non è installato di default.
Insomma qui da me i conti tornano: se non c'è var EDITOR configurata
nei files suggeriti, la variabile risulta vuota, come ti saresti
aspettato anche tu. Se lì da te non è così, evidentemente hai impostato
qualcos'altro per vie più automatiche. Cosa di preciso puoi saperlo
più facilmente tu che io o altri di questo ng a quanto pare fin qui.

 
 
Cmq linux non vorrei che inizi a prendere la strada del closed-source, 
di cui apple è la capostipite.

 di cui apple è la capostipite.
 
Qua da me non sembra proprio...
Per il momemto opensource e freesoftware imperano.