Stringhe di comandi su bash
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Stringhe di comandi su bash
Salve a tutti,
molti di voi magari l'avranno notato sulla shell.
Quando richiamiamo comandi con argomenti particolarmente lunghi (tanto da andare a capo-riga) il testo di "sovrappone"
ES 1:
Sul comando "ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ /usr/ /usr/lib/ /usr/lib/alsa-lib/ /mnt/cdrom"
Il risultato è "/oot '~' ~> ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ /usr/ /usr/lib/ /usr/lib/alsa-lib/ /mnt/cdrom"
(Notare la prima parte del terminale che dovrebbe essere "root '~' ~>", invece la 'r' viene sovrascritta dall'ultimo / (slash) di "/mnt/cdrom/" che per
motivi di lunghezza è andato a capo.
ES 2:
Devo rieseguire il comando Premo "Freccia SU" e scorro al contrario con "Freccia SX" fino a che devo modificare qualcosa nel comando
Risultato:
4;34mroot '~' ~> ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ ssdcusr/ /usr/lib/ /usr/lib/alsaa /usr/lib/alsaasa-lib/ /root asa-lib/ /root /sa-lib/ /root /h
home/ /root/ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ ssdcusr/ /usr/lib/ /usr/lib/alsa-lib/ /root /h
ES 3: bash reverse-search
root '~' ~>
(reverse-i-search)`ls': ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ ssdcusr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/
se proviamo a scorrere il comando con "Freccia DX" per far diventare ls in ls -l succede cosi
root '~' ~> [0m '~' ~> ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ ssdcusr/ /usr/lib/ /usr/lib/al/usr/lib/alsa-lib/ /root /home/ /root/home/ /root
Quindi si agganciano solo in echo!! nella realtà qualunque di questi 3 esempi una volta premuto invio funziona...
solo che è illegibile sebbene funzioni...
Ho potuto avere riscontro di questa cosa su Linux / xBSD / Solaris ecc...
Qualcuno di voi ne ha trovato soluzione?
Grazie e Ciao.
molti di voi magari l'avranno notato sulla shell.
Quando richiamiamo comandi con argomenti particolarmente lunghi (tanto da andare a capo-riga) il testo di "sovrappone"
ES 1:
Sul comando "ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ /usr/ /usr/lib/ /usr/lib/alsa-lib/ /mnt/cdrom"
Il risultato è "/oot '~' ~> ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ /usr/ /usr/lib/ /usr/lib/alsa-lib/ /mnt/cdrom"
(Notare la prima parte del terminale che dovrebbe essere "root '~' ~>", invece la 'r' viene sovrascritta dall'ultimo / (slash) di "/mnt/cdrom/" che per
motivi di lunghezza è andato a capo.
ES 2:
Devo rieseguire il comando Premo "Freccia SU" e scorro al contrario con "Freccia SX" fino a che devo modificare qualcosa nel comando
Risultato:
4;34mroot '~' ~> ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ ssdcusr/ /usr/lib/ /usr/lib/alsaa /usr/lib/alsaasa-lib/ /root asa-lib/ /root /sa-lib/ /root /h
home/ /root/ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ ssdcusr/ /usr/lib/ /usr/lib/alsa-lib/ /root /h
ES 3: bash reverse-search
root '~' ~>
(reverse-i-search)`ls': ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ ssdcusr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/
se proviamo a scorrere il comando con "Freccia DX" per far diventare ls in ls -l succede cosi
root '~' ~> [0m '~' ~> ls /usr/ /usr/lib/ /usr/lib/alsa-lib/ /root /home/ /root/ ssdcusr/ /usr/lib/ /usr/lib/al/usr/lib/alsa-lib/ /root /home/ /root/home/ /root
Quindi si agganciano solo in echo!! nella realtà qualunque di questi 3 esempi una volta premuto invio funziona...
solo che è illegibile sebbene funzioni...
Ho potuto avere riscontro di questa cosa su Linux / xBSD / Solaris ecc...
Qualcuno di voi ne ha trovato soluzione?
Grazie e Ciao.
-
- Packager
- Messaggi: 1339
- Iscritto il: sab 27 mar 2004, 0:00
- Slackware: current
- Desktop: fluxbox.git
- Località: Collegno, but made in Friûl
- Contatta:
Re: Stringhe di comandi su bash
Non so come si possa risolvere questo problema: di certo è fastidioso e talvolta è capitato pure a me. Non mi è mai successo con slackware, tuttavia succede spesso sulla redhat che utilizzo in azienda. Non solo: succede anche "in verticale"; talvolta , dopo aver già riempito una schermata di comandi o output, accedendo ad un'applicazione testuale che occupa tutta l'area visibile del terminale e poi uscendone, mi ritrovo con il cursore in mezzo alla schermata precedente e scrivendo i caratteri vanno a "sovrascrivere" quelli pre-esistenti. Risolvo con un clear, ma è ovvio che non è una soluzione alla radice del problema! Topic interessante...
Re: Stringhe di comandi su bash
E' un problema che ognitanto si è verificato anche a me.
Normalmente con il konsole, soprattutto quando partivo con una finestra piccola che poi allargavo.
La butto li (nessuna certezza però vado a naso): credo dipenda dal TERM utilizzato... se vi capita provate con un
$ export TERM=vt100
PS fate sapere se funziona.
Normalmente con il konsole, soprattutto quando partivo con una finestra piccola che poi allargavo.
La butto li (nessuna certezza però vado a naso): credo dipenda dal TERM utilizzato... se vi capita provate con un
$ export TERM=vt100
PS fate sapere se funziona.
Re: Stringhe di comandi su bash
Idem, molto probabilmente si tratta di un errore derivato dalle variabili locali che vengono generate all'apertura della finestra che memorizzano dinamicamente la grandezza della stessa; indi per cui nel momento che richiami il comando, scorrendo la cronologia, il terminale genera questo bug rendendo illeggibile il comando stesso anche se perfettamente eseguibileE' un problema che ognitanto si è verificato anche a me.
Normalmente con il konsole, soprattutto quando partivo con una finestra piccola che poi allargavo.
Re: Accorgimenti, studio problema e casi critici
Interessante tener conto di alcune cosette:
Se accedo da login testuale (init 3) come root o qualsiasi utente che non ha una sessione grafica avviata il problema non si presenta, anzi addirittura attuando una ricerca inversa una volta premuto una freccetta la scritta "(reverse-i-search)`': " in echo scompare!
Cosi infatti dovrebbe essere!
Infatti noto che TERM=linux (per tutti quelli non affetti da uno "startx").
In KDE il problema si presenta.
Interessante notare anche però che se da ambiente grafico si accede su un'altra linux utilizzando come utente di login chiunque non abbia una sessione grafica avviata il tutto funziona correttamente, altrimenti siamo punto e a capo!
Es.
# Prima di premere una freccetta
> ssh root@xxx.domain
root@xxx.domain password:
Last login: Thu Apr 17 23:12:30 2008
/bin/bash $ >>[ctrl + r]<<
(reverse-i-search)`dhcp': /usr/sbin/dhcpd
# dopo la pressione della freccetta
/bin/bash $ /usr/sbin/dhcpd
A questo punto mi viene da pensare a qualche impostazione in X.org
Se accedo da login testuale (init 3) come root o qualsiasi utente che non ha una sessione grafica avviata il problema non si presenta, anzi addirittura attuando una ricerca inversa una volta premuto una freccetta la scritta "(reverse-i-search)`': " in echo scompare!
Cosi infatti dovrebbe essere!
Infatti noto che TERM=linux (per tutti quelli non affetti da uno "startx").
In KDE il problema si presenta.
Interessante notare anche però che se da ambiente grafico si accede su un'altra linux utilizzando come utente di login chiunque non abbia una sessione grafica avviata il tutto funziona correttamente, altrimenti siamo punto e a capo!
Es.
# Prima di premere una freccetta
> ssh root@xxx.domain
root@xxx.domain password:
Last login: Thu Apr 17 23:12:30 2008
/bin/bash $ >>[ctrl + r]<<
(reverse-i-search)`dhcp': /usr/sbin/dhcpd
# dopo la pressione della freccetta
/bin/bash $ /usr/sbin/dhcpd
A questo punto mi viene da pensare a qualche impostazione in X.org
- algol
- Linux 3.x
- Messaggi: 969
- Iscritto il: gio 7 set 2006, 1:19
- Slackware: 12.1
- Kernel: 2.6.26.1
- Desktop: xfce4.4.2
Re: Stringhe di comandi su bash
A proposito di stranezze in bash: a volte mi capita che mi si autocancelli la history.
Ad esempio, digito un comando, poi un altro, e così via, poi quando faccio freccia su per ripescare quelli vecchi a volte mi riappare un'altra cronologia più vecchia con tutt'altri comandi!
Che significa? E' forse finito il buffer in memoria della shell?
Tutto ciò in vari emulatori di terminale all'interno di sessione grafica.
Ad esempio, digito un comando, poi un altro, e così via, poi quando faccio freccia su per ripescare quelli vecchi a volte mi riappare un'altra cronologia più vecchia con tutt'altri comandi!
Che significa? E' forse finito il buffer in memoria della shell?
Tutto ciò in vari emulatori di terminale all'interno di sessione grafica.
Re: Stringhe di comandi su bash
Si l'ho notato anch'io...
A me succede però se accidentalmente premo qualche tasto che non ho ben chiaro quale sia.
L'impressione è che ci siano varie history (tipo una per ogni shell aperta) ...
Magari non ci si fa caso.. (perchè si usa sempre la finestra principale) Ctrl + Alt + F1
ma a volte riscontro che history(Ctrl + Alt + F1) != history(Ctrl + Alt + F2) .... != history(Ctrl + Alt + F6)
In KDE (konsole)
Scheda 1
> qwerty
bash: qwerty: command not found
(reverse-i-search)`qwe': qwerty
>>>[freccia SX]<<<
> qwerty
Scheda 2 (Ctrl + Alt + n)
> (reverse-i-search)`': (battendo 'q') non appare nulla.
-----------------------------------------------
Però ad esempio su questa macchina (basata su ubuntu) i caratteri in Konsole non si accavallano sebbene
> echo $TERM
xterm
>
Strano no?
A me succede però se accidentalmente premo qualche tasto che non ho ben chiaro quale sia.
L'impressione è che ci siano varie history (tipo una per ogni shell aperta) ...
Magari non ci si fa caso.. (perchè si usa sempre la finestra principale) Ctrl + Alt + F1
ma a volte riscontro che history(Ctrl + Alt + F1) != history(Ctrl + Alt + F2) .... != history(Ctrl + Alt + F6)
In KDE (konsole)
Scheda 1
> qwerty
bash: qwerty: command not found
(reverse-i-search)`qwe': qwerty
>>>[freccia SX]<<<
> qwerty
Scheda 2 (Ctrl + Alt + n)
> (reverse-i-search)`': (battendo 'q') non appare nulla.
-----------------------------------------------
Però ad esempio su questa macchina (basata su ubuntu) i caratteri in Konsole non si accavallano sebbene
> echo $TERM
xterm
>
Strano no?
Re: Stringhe di comandi su bash
Il problema delle stringhe di comando in bash (la sovrapposizione) avviene solo in un caso:
se viene lanciato un comando da una console e successivamente questa viene allargata a tutto schermo. Infatti se si scrive in un terminale appena aperto, l'a capo funziona correttamente.
Analogamente, se si apre un terminale e PRIMA di confermare qualunque comando con invio si allarga la finestra alla larghezza massima, la continuazione sulla riga successiva funziona.
Forse quando si apre una shell, viene inizializzata la lunghezza ad un valore che non viene aggiornato quando si allarga la finestra, creando una discrepanza tra valore memorizzato e lunghezza effettiva della riga.
se viene lanciato un comando da una console e successivamente questa viene allargata a tutto schermo. Infatti se si scrive in un terminale appena aperto, l'a capo funziona correttamente.
Analogamente, se si apre un terminale e PRIMA di confermare qualunque comando con invio si allarga la finestra alla larghezza massima, la continuazione sulla riga successiva funziona.
Forse quando si apre una shell, viene inizializzata la lunghezza ad un valore che non viene aggiornato quando si allarga la finestra, creando una discrepanza tra valore memorizzato e lunghezza effettiva della riga.
-
- Iper Master
- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: Stringhe di comandi su bash
Ogni shell guarda alla partenza i valori, controllabili con set | lesscarocco ha scritto:Il problema delle stringhe di comando in bash (la sovrapposizione) avviene solo in un caso:
se viene lanciato un comando da una console e successivamente questa viene allargata a tutto schermo. Infatti se si scrive in un terminale appena aperto, l'a capo funziona correttamente.
Analogamente, se si apre un terminale e PRIMA di confermare qualunque comando con invio si allarga la finestra alla larghezza massima, la continuazione sulla riga successiva funziona.
Forse quando si apre una shell, viene inizializzata la lunghezza ad un valore che non viene aggiornato quando si allarga la finestra, creando una discrepanza tra valore memorizzato e lunghezza effettiva della riga.
COLUMNS=nnn
LINES=nn
cambiando shell senza login ... attaccati al tram
Mario Vanoni
-
- Linux 1.x
- Messaggi: 107
- Iscritto il: dom 5 mar 2006, 2:22
- Slackware: 12.1
- Kernel: 2.6.24.5
- Desktop: Kde
- Località: Roma
Re: Stringhe di comandi su bash
Questo è normale perchè ogni sessione che viene aperta, ti carica tutta l'history memorizzata che solitamente è all'interno ~/.bash_history e in aggiunta avrai i comandi lanciati in quella determinata sessione. Solamente dopo la corretta chiusura della sessione quest'ultimi vengono salvati e successivamente li ritroverai.ir0c ha scritto: Magari non ci si fa caso.. (perchè si usa sempre la finestra principale) Ctrl + Alt + F1
ma a volte riscontro che history(Ctrl + Alt + F1) != history(Ctrl + Alt + F2) .... != history(Ctrl + Alt + F6)
- danix
- Staff
- Messaggi: 3287
- Iscritto il: ven 27 ott 2006, 19:32
- Nome Cognome: Danilo M.
- Slackware: 64 current
- Kernel: 5.4.43 x86_64
- Desktop: i3
- Località: Siderno (RC)
- Contatta:
Re: Stringhe di comandi su bash
A proposito di questo problema, ho notato che in debian qualsiasi terminale all'interno di gnome ridimensiona la riga del testo quando io ridimensiono la finestra, e nel .bashrc di default di debian ho trovato queste righe, magari possono tornare utili:Mario Vanoni ha scritto:Ogni shell guarda alla partenza i valori, controllabili con set | less
COLUMNS=nnn
LINES=nn
cambiando shell senza login ... attaccati al tram
Mario Vanoni
Codice: Seleziona tutto
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
Ciau
- conraid
- Staff
- Messaggi: 13630
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: Stringhe di comandi su bash
Apri una console, mettila a tutto schermo e dai
poi ridimensionala e dai nuvoamente
senza fare login o altro
Poi fai lo stesso con LINES
dopo se vuoi dai quel comando di Debian e ripeti la procedura.
IMHO il problema, che ho sempre avuto anche io, è altrove.
Codice: Seleziona tutto
$ set | grep COLUMNS
Codice: Seleziona tutto
$ set | grep COLUMNS
Poi fai lo stesso con LINES
dopo se vuoi dai quel comando di Debian e ripeti la procedura.
IMHO il problema, che ho sempre avuto anche io, è altrove.
- danix
- Staff
- Messaggi: 3287
- Iscritto il: ven 27 ott 2006, 19:32
- Nome Cognome: Danilo M.
- Slackware: 64 current
- Kernel: 5.4.43 x86_64
- Desktop: i3
- Località: Siderno (RC)
- Contatta:
Re: Stringhe di comandi su bash
conraid non credo di aver capito cosa fa quel comando... ho fatto come dici tu ma il risultato prima di dare il comando e dopo averlo dato sono uguali...
mi dispiace di non essere stato d'aiuto... speravo servisse a qualcosa...
mi dispiace di non essere stato d'aiuto... speravo servisse a qualcosa...
- conraid
- Staff
- Messaggi: 13630
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: Stringhe di comandi su bash
Quel risultato non cambia niente, ti mostra solamente il valore della variabiledanix85 ha scritto:conraid non credo di aver capito cosa fa quel comando... ho fatto come dici tu ma il risultato prima di dare il comando e dopo averlo dato sono uguali...
mi dispiace di non essere stato d'aiuto... speravo servisse a qualcosa...
Re: Stringhe di comandi su bash
Oggi operavo su un computer sul quale abbiamo installato slackware.
Ho provato a vedere se questo "bug" persisteva e con piacere mi sono accorto che non si presentava.
A differenza mia (che ho una schera ATI) quel pc ha una GeForce (ho dovuto solo settare driver "nv" in xorg.conf per far partire kde..)
Ora quindi la mia domanda è per quelli con scheda NVIDIA:
A voi funziona tutto bene o vi siete riconosciuti in tutta questa discussione?
Anche dopo aver installato i driver ufficiali?
ir0c.
Ho provato a vedere se questo "bug" persisteva e con piacere mi sono accorto che non si presentava.
A differenza mia (che ho una schera ATI) quel pc ha una GeForce (ho dovuto solo settare driver "nv" in xorg.conf per far partire kde..)
Ora quindi la mia domanda è per quelli con scheda NVIDIA:
A voi funziona tutto bene o vi siete riconosciuti in tutta questa discussione?
Anche dopo aver installato i driver ufficiali?
ir0c.