Archivio della categoria ‘Riga di comando’
Potenziare la ricerca nella history di bash
Per chi usa spesso il terminale volendo riusare comandi già dati è frequente. Il primo passo è usare la freccia insù che ripassa una dopo l’altro, il secondo magari usare comandi tipo
history |grep mount
il terzo usare cltr+r e digitare qualche lettera ma il massimo forse è la BASH History Suggest Box, comando: hh.
Si installa su arch da AUR, su *ubuntu inserendo il ppa (di solo questo software quindi senza rischi)
sudo add-apt-repository ppa:ultradvorka/ppa
sudo apt-get update
sudo apt-get install hh
Digitare per filtrare, sù/giù per selezionare, TAB per usare/modificare il comando selezionato o invio per ridarlo direttamente, Canc per toglierlo dalla history.
Per usare ctrl+r per attivare hh basta modificare :
hh –show-configuration >> ~/.bashrc
Questo aumenta tra altro anche da 500 a 10’000 le voci memorizzate.
Sostituire caratteri dei tasti
A volte sia perché è rotto fisicamente un tasto, sia perché la mappatura non lo identifica correttamente potrebbe essere necessario di imporre un carattere diverso, rimappare uno o più tasti soli. Lanciamo da terminale
xev
che ci apre una piccola finestra bianca, che dobbiamo lasciare a fuoco, mentre premiamo i due tasti che vogliamo scambiare. Esempio vogliamo mettere la d sul tasto ò/ç, nel terminale viene stampato (ci interessa solo le voci con KeyPress:
KeyPress event, serial 36, synthetic NO, window 0x7c00001,
root 0x7c, subw 0x0, time 68514751, (938,793), root:(1416,1016),
state 0x0, keycode 40 (keysym 0x64, d), same_screen YES,
XLookupString gives 1 bytes: (64) “d”
XmbLookupString gives 1 bytes: (64) “d”
XFilterEvent returns: FalseKeyRelease event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0x0, time 68514887, (938,793), root:(1416,1016),
state 0x0, keycode 40 (keysym 0x64, d), same_screen YES,
XLookupString gives 1 bytes: (64) “d”
XFilterEvent returns: FalseKeyPress event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0x0, time 68519295, (938,793), root:(1416,1016),
state 0x1, keycode 47 (keysym 0xe7, ccedilla), same_screen YES,
XLookupString gives 2 bytes: (c3 a7) “ç”
XmbLookupString gives 2 bytes: (c3 a7) “ç”
XFilterEvent returns: FalseKeyRelease event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0x0, time 68519383, (938,793), root:(1416,1016),
state 0x1, keycode 47 (keysym 0xe7, ccedilla), same_screen YES,
XLookupString gives 2 bytes: (c3 a7) “ç”
XFilterEvent returns: False
Ora sappiamo il keycode di d (40) e il keycode di ò/ç, 47:
keycode 40 (keysym 0x64, d)
keycode 47 (keysym 0xe7, ccedilla)keycode 47 (keysym 0xe7, ccedilla)
Basta dare
xmodmap -e ‘keycode 47 = d’
Ovviamente questo funziona solo per la sessione attuale, se vogliamo che sia perenne basta creare uno script in avvio automatico.
Installare Arch Linux
Sto usando da tanti anni principalmente questa distro rolling che attira molti per sua natura, ma non tutti hanno voglia di studiarci troppo la documentazione ricchissima ed ecco che spuntano distro come archbang, chakra e altro che tentano di riunire i pregi di arch con le comodità di ubuntu o altre distro user-friendly. Secondo me non può funzionare a lungo, perché al primo problema manca l’esperienza della strada fatta installandola a mano.
Ma per chi ha voglia: ecco uno script che dovrebbe installare il server grafico, audio, DE e configurare tutto.
Creare elenco dei file presenti in cartelle con sottocartelle
Facile, basta spostarsi con il terminale con cd percorso/cartella nella cartella madre e creare il file “elenco”:
ls -hR $1 > elenco
Varianti:
ls -hR $1|grep .avi > elenco_film
ls -hR $1|grep .epub > elenco_ebook
Gparted “unallocated disk”
Succede che gparted o anche l’installer di ubuntu (e magari anche di altre distro) non vede le partizioni e sistemi installati, anche se perfettamente funzionanti e rilevati da sudo fdisk -l. Lo da per vuoto e non allocato e anche con testdisk non si cava un ragno dal buco.
Il rimedio sembra di essere fixparts. Il programma è disponibile per Linux, MacOsx e Windows (per archlinux in AUR anche se la ricerca non la trova) e di una semplicità disarmante:
#sudo fixparts
FixParts 0.8.2.1
Type device filename, or pressto exit: /dev/sdb Loading MBR data from /dev/sdb
MBR command (? for help): ?
a toggle the active/boot flag
c recompute all CHS values
l set partition as logical
o omit partition
p print the MBR partition table
q quit without saving changes
r set partition as primary
s sort MBR partitions
t change partition type code
w write the MBR partition table to disk and exitMBR command (? for help): p
** NOTE: Partition numbers do NOT indicate final primary/logical status,
** unlike in most MBR partitioning tools!** Extended partitions are not displayed, but will be generated as required.
Disk size is 511744 sectors (249.9 MiB)
MBR disk identifier: 0x00054DF3
MBR partitions:Can Be Can Be
Number Boot Start Sector End Sector Status Logical Primary Code
1 2048 509951 primary Y Y 0x0BMBR command (? for help):
Un backup del MBR prima è senz’altro una idea buona:
sudo dd if=/dev/sda of=/percorso/cartella/MBR-backup bs=512 count=1
o con
sudo sfdisk -d /dev/sda > parts_sda.txt
Spostare il sistema da una partizione a un altra
Il comando cp fa tutto, non bisogna reinstallare.
- Fare un backup su un disco diverso.
- Preparare le partizioni da cd live con gparted (o dal sistema stesso se possiamo lavorare su partizioni smontate), assegnando etichette tipo “sistema”, “ubuntu”, “home” ecc a tutte le partizioni, che ci fa comodo dopo.
- Avviare da sistema live (cd live, penna usb), nel esempio usiamo un CD di ubuntu.
- Cliccare la partizione nuova per il sistema e quella esistente dal menu “places” per montarle in /media.
- Aprire da >accessori > terminale una finestra di terminale e diventare root:
sudo -s
cp -apv /media/etichetta_partizione_vecchia/* /media/etichetta_partizione_nuova
gedit /media/etichetta_partizione_nuova/etc/fstab & blkidRimettiamo a posto fstab, correggando gli UUID confrontandogli con il risultato di blkid e salviamo, ma se vogliamo possiamo anche montare le partizioni in quel modo:
LABEL=home /home ext4 defaults,noatime 0 2
LABEL=var /var ext4 defaults,noatime 0 2
LABEL=sistema / ext3 defaults 0 1 - Sistemare grub:
Se abbiamo grub legacy (grub vecchio con il menu.lst) facciamo lo stesso anche con questo file, correggendo i parametri
(hdX,Y)
X=numero del disco, partenza da 0, Y=numero della partizione, partenza da 0
e tutte le voci UUID nel menu in fondo al file. Un ripristino di grub e siamo a posto.Volendo si può anche aggiungere un menu con i valori corretti nel file menu.lst del vecchio sistema per testare prima il nuovo sistema e rimandare il ripristino (raccomandato)
Per grub2: Riavviare e con il sistema vecchio dare
sudo update-grub
per inserire la voce per il sistema clonato nel menu. Una volta controllato il suo funzionamento eseguire il ripristino di grub prima di formattare il vecchio sistema. Probabilmente si può dare
grub-install /dev/sda
update-grubanche direttamente dal sistema nuovo, ma non ho testato.
Monitor esterno portatile
Comprato su ebay monitor esterno per vedere i film un po’ meglio. Come cambiare da monitor interno (1280×80) a quello esterno senza cliccare e selezionare 7-8 volte qualche cosa? (in KDE: Impostazioni > monitor > selezionare l’esterno > abilita | conferma > cliccare interno > disabilita | conferma)
Nel file ~.bashrc (o se abilitato in ~/.bash_aliases inserire:
alias film=”xrandr –output VGA –auto –output LVDS –off”
alias nofilm=”xrandr –output LVDS –auto && xrandr –output VGA –off”
(sono sempre due i trattini – -, si vede male)
Con
film
nofilm
si cambia da uno all’altro, uno si spegne uno si accende. Ovviamente il comando puoi chiamarlo come vuoi 😉 o creare un lanciatore.
Il comando
xrandr -q
xrandr -h
vale cento schede di configurazione.
Se una vuole una grafica rudimentale che fa lo stesso si può installare il pacchetto lxrandr.