Voglia di Linux

avventure e soddisfazioni usando software libero

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.

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.

ste

04 aprile 2014



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 0×0, time 68514751, (938,793), root:(1416,1016),
state 0×0, keycode 40 (keysym 0×64, d), same_screen YES,
XLookupString gives 1 bytes: (64) “d”
XmbLookupString gives 1 bytes: (64) “d”
XFilterEvent returns: False

KeyRelease event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0×0, time 68514887, (938,793), root:(1416,1016),
state 0×0, keycode 40 (keysym 0×64, d), same_screen YES,
XLookupString gives 1 bytes: (64) “d”
XFilterEvent returns: False

KeyPress event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0×0, time 68519295, (938,793), root:(1416,1016),
state 0×1, keycode 47 (keysym 0xe7, ccedilla), same_screen YES,
XLookupString gives 2 bytes: (c3 a7) “ç”
XmbLookupString gives 2 bytes: (c3 a7) “ç”
XFilterEvent returns: False

KeyRelease event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0×0, time 68519383, (938,793), root:(1416,1016),
state 0×1, 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 0×64, 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

arch

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

elenco

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

ste

01 gennaio 2013



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 press to 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 exit

MBR 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 0x0B

MBR 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

ste

22 febbraio 2012



Spostare il sistema da una partizione a un altra

Il comando cp fa tutto, non bisogna reinstallare.

  1. Fare un backup su un disco diverso.
  2. 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.
  3. Avviare da sistema live (cd live, penna usb), nel esempio usiamo un CD di ubuntu.
  4. Cliccare la partizione nuova per il sistema e quella esistente dal menu “places” per montarle in /media.
  5. 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 & blkid

    Rimettiamo 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

  6. 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-grub

    anche direttamente dal sistema nuovo, ma non ho testato.

ste

11 giugno 2010



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.