Trucs linux

Un article de Wiki de Nelly & Richard.

Sommaire

Commandes UNIX

mon éditeur de texte préféré : vim

Bon je vais pas en faire son apologie mais avec lui on découvre de nouvelles astuces tous les jours (vi improved).

Je vais simplement mettre quelques raccourcis pratiques tant pour le tous les jours que pour des utilisations spécifiques.

Je par du principe que vous avez installez le paquet vim-full qui contient entre autre vimtutor pour bien commencer.

Il ne reste plus qu'à bouquiner l'aide de vim pour aller plus loin ou les raccourcis de vim.

les frontends graphiques

  • vim pour les nuls : evim (easy vim)
  • vim simplement : gvim

déplacement

  • début de ligne : [^]
  • fin de ligne : [$]
  • début de fichier : [gg]
  • Fin de fichier : [G]

insertion/remplacement

  • insertion : [i]
  • derrière le curseur : [a]
  • début de ligne : [gI]
  • fin de ligne : [A]
  • ligne au-dessus : [O]
  • ligne au-dessous : [o]
  • ajouter x tabulations : x[>>]
  • supprimer x tabulations : x[<<]
  • remplacer x caractères : x + [r]
  • remplacer : [touche inser] ou [R]
  • remplacer le caractère actuel : [s]
  • remplacer la ligne actuelle : [S]
  • défaire : [u]
  • refaire : [Ctrl] + [r]

couper, copier, coller

  • couper x lignes : x[dd]
  • copier x : x[yy]
  • couper x mots : [d]x[w]
  • copier x mots : [y]x[w]
  • coller avant ou après le curseur : [p] ou [P]

chercher/remplacer

  • recherche après le curseur : [/]regex
  • recherche avant le curseur : [?]regex
  • se balader dans la recherche : [n] ou [N]
  • sed : remplacement ligne courante (fonctionne en mode visuel) : [:s/regex_recherchée/remplacement/gi]
  • sed : remplacement sur la totalité du fichier : [:%s/regex_recherchée/remplacement/gi]

mode visuel [v]

  • balader vous avec les flèches
  • copie de la sélection : [y]
  • coupe/supprime la sélection : [d]
  • ajout/suppression de tabulations : [>>] ou [<<]

complétion

  • des mots se trouvant dans votre fichier actuel et séparés par des espaces, des points, slash, ... : [Ctrl] + [p] ou [Ctrl] + [n]
  • des fichiers : [Ctrl] + [x], [Ctrl] + [f] et [Ctrl] + [n] ou [p]
  • python (affiche les choix et split l'écran pour l'aide) : [Ctrl] + [x], [Ctrl] + [o] puis [Ctrl] + [n] ou [p]

onglets

  • nouvel onglet : [:tabnew] ou [:tabnew fichier]
  • onglet suivant : [:tabnext] ou [Ctrl] + [pg down]
  • onglet précédant : [:tablast] ou [Ctrl] + [pg up]

split

  • split vertical : [Ctrl] + [w], [Ctrl] + [v]
  • split horizontal : [Ctrl] + [w], [Ctrl] + [s]
  • switch d'une fenêtre à l'autre : [Ctrl] + [w], [Ctrl] + [w]

divers

  • ouverture d'un fichier : [:e nom_du_fichier]
  • activation de la coloration syntaxique : [:syntax on]
  • changement de colorscheme : [:colorscheme pablo]
  • quitter tout : [:qa]
  • quitter et sauver : [:x] ou [:wq]
  • quitter sans sauver : [:q!]
  • ouverture d'un shell : [:sh] (le quitter avec [Ctrl] + [d])
  • agrandir reduire la taille du texte : [Ctrl] + [-] ou [+]
  • ...

Terminal

Les raccourcis utiles du terminal:

  • Nouvel onglet : Ctrl + Maj + t
  • Début de ligne : Ctrl + a
  • Fin de ligne : Ctrl + e
  • Effacer le dernier mot : Ctrl + w
  • Effacer toute la ligne : Ctrl + u
  • Navigation dans les dernières commandes : ↓ ↑
  • Recherche : Ctrl + r (répéter l'opération pour retrouver les commandes précédentes)
  • Inversion des 2 derniers caractères : Ctrl + t
  • Coller la sélection : Maj + inser ou Clic droit ou Clic bouton du milieu ou Clic simultané gauche et droit
  • Completion : Tabulation
  • Afficher les différentes solutions : Tabulation Tabulation
  • Processus à l'arrière plan : Ctrl + z
  • Processus au premier plan : fg
  • Kill processus : Ctrl + c
  • Deconnexion : Ctrl + d

screen

Les commandes de base :

  • Lancement d'un nouveau screen : screen
  • Lister les screen en cours : screen -ls
  • Réattache le dernier screen (ou liste si > 1) : screen -r


Les commandes qui suivent sont à taper dans un screen :

  • Détacher le screen : Ctrl + a puis d


  • Nouveau shell dans le même screen : Ctrl + a puis Ctrl + c
  • Switch dans les shell d'un screen : Ctrl + a puis [0-9]
  • ou : Ctrl + a puis ' puis nom du shell ou # du shell
  • ou : Ctrl + a puis n ou : Ctrl + a puis p
  • Where are you : Ctrl + a puis N
  • Liste des shell du screen en cours : Ctrl + a puis "
  • ou : Ctrl + a puis w
  • Renommer le shell en cours : Ctrl + a puis A


  • Split : Ctrl + a puis S
  • Changement de région : Ctrl + a puis TAB
  • Tuer la région : Ctrl + a puis X
  • Nouveau shell dans le même screen : Ctrl + a puis Ctrl + c

watch

  • watch permet d'afficher une commande à interval régulier, et entre autre de mettre en surbrillance les différences
# exemple
$ watch -d -n 2 date
  • En voilà une commande qu'elle est sympathique :)

Zsh : le shell alternatif

  • Zsh offre des fonction de complétion avancées.
  • Concernant l'UTF-8, 16, 32 préféré une version beta supérieure à 4.3.1 zsh-beta
  • un exemple de fichier ~/.zshrc
  1. fichier de conf de zsh
# prompt shell
export PS1="%n@%m:$(print '%{\e[1;33m%}%~%{\e[0m%}')$ "
export RPS1="[$(print '%{\e[1;33m%}%D %T%{\e[0m%}')]"

# historique
export HISTFILE SAVEHIST
export HISTFILE=~/.history
export SAVEHIST=1000
setopt HIST_IGNORE_ALL_DUPS # suppression des doublons
setopt SHARE_HISTORY # partage instantanee des historiques

# locales
stty pass8

# alias
alias ls='ls --color=auto'
alias dir='ls --color=auto --format=vertical'
alias vdir='ls --color=auto --format=long'

alias portable='/home/rdumais/PERSO/script/start_conf.sh portable'
alias station='/home/rdumais/PERSO/script/start_conf.sh station'

# completion
autoload -U compinit
compinit

# liste des completions proposees
zstyle ':completion:*::::' completer _expand _complete _ignored _approximate

# titre les completions
zstyle ':completion:*:descriptions' format '%B%d%b'

# parametres personnels
# eteindre le hp interne
xset b off

Les touches multimedia

  • Sous gnome:
Bureau > Préférences > Raccourcis clavier (ou gnome-keybinding-properties)

Vous devriez trouver facilement des touches non définies.

Vous pouvez également les modifier avec gconf-editor

Voici les chemins:
~/.gconf/apps/metacity/global_keybindings
~/.gconf/apps/metacity/window_keybindings
~/.gconf/apps/gnome_settings_daemon/keybindings 
  • En utilisant Xmodmap:

Vous pouvez utiliser xev pour retrouver les keycodes correspondant aux actions, puis à l'aide de /usr/share/X11/XKeysymDB vous pourrez aisément compléter /etc/X11/Xmodmap.

Voici les touches du volume :
keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume

Encodage

  • Informations sur le type et l'encodage de votre fichier :
$ file fichier
  • Convertir des noms de fichiers venant de zindozs par exemple :
$ convmv -r --nosmart --notest -f iso-8859-1 -t utf8 *
  • Convertir des fichiers venant de zindozs par exemple :
$ iconv -f iso-8859-1 -t utf8 file.iso -o file.utf8
  • Pour plus de précision cet aricle est complet.

Conversions

HTML > WIKI

  • Convertir des pages HTML au format wiki (mediawiki, pmwiki, moinmoin, ...)
$ sudo apt-get install libhtml-wikiconverter-perl
$ html2wiki --dialect mediawiki file.html > file.wiki

HTML <> text

  • Convertir du texte HTML en texte et vice versa o_O
$ recode UTF-8..HTML /tmp/index.html

PDF > HTML

  • Conversion d'un fichier PDF en fichier HTML
$ pdftohtml file.pdf file.html

Infos système

Alternatives aux cat /proc/cpuinfo et compagnies lshw avec les options -html ou -xml ou encore -short Aida n'a qu'à bien se tenir.

  • dmidecode
# dmidecode -t
dmidecode: option requires an argument -- t
Type number or keyword expected
Valid type keywords are:
 bios
 system
 baseboard
 chassis
 processor
 memory
 cache
 connector
 slot
  • lspci
  • lsusb
  • lshw

Un man vous en expliquera plus que moi, sinon je vous en laisse deux ou trois sympathiques :

# lshw -class disk -class volume -short
# lshw -html > `hostname`.html && firefox `hostname`.html

LVM

Présentation

  • LVM est très flexible, il permet d'utiliser pleinement vos disques et de les faire évoluer en fonction de vos besoins, de réaliser des snapshots afin de faire des sauvegardes de vos données à l'instant t.

Instalation

# yum install lvm
ou
$ apt-get install lvm2

Exemple d'utilisation

  • Ici je considère que vous possédez 6 disques durs comme suit :
    • /dev/sda : 160Go
    • /dev/sdb : 120Go
    • /dev/sdc : 200Go
    • /dev/sdd : 250Go
    • /dev/sde : 80Go
    • /dev/sdf : 40Go


  • Nous allons réaliser avec les 3 premiers disques un RAID1 de 240Go ainsi qu'une partition de 370Go sur les 3 derniers disques.

Initialisation des disques

  • Créez sur chaque disque une partition LVM (8E via cfdisk) de la totalité de l'espace disponible.
$ sudo cfdisk /dev/sda
...

Volumes Physiques

  • Les volumes physique correspondent à vos partitions et sont nécessaires pour l'intégration à un groupe de volumes.
$ sudo pvcreate /dev/sda1
$ sudo pvcreate /dev/sdb1
$ sudo pvcreate /dev/sdc1

$ sudo pvcreate /dev/sdd1
$ sudo pvcreate /dev/sde1
$ sudo pvcreate /dev/sdf1
  • Commandes utiles
$ pvscan
$ vdisplay

Groupe de Volumes

  • Création du groupe de volumes 1
$ vgcreate vg1 /dev/sda1 /dev/sdb1 /dev/sdc1
  • Création du groupe de volumes 2
$ vgcreate vg2 /dev/sdd1 /dev/sde1 /dev/sdf1
  • Commandes utiles :
$ vgscan
$ vgdisplay
$ vgextend
$ vgreduce

Volume Logique

  • Volume logique 1 et 2
$ sudo lvcreate -L 240Go -n lv1 vg1
$ sudo lvcreate -L 240Go -n lv2 vg1
  • Volume logique 1bis
$sudo lvcreate -L 370Go -n lv1bis vg2
  • Commandes utiles :
$ lvresize
$ lvrename
$ lvscan
$ lvdisplay

Création du RAID1

  • formatage des volumes logique
$ sudo mkfs.ext3 /dev/vg1/lv1
$ sudo mkfs.ext3 /dev/vg1/lv2
  • Bon, je ne vais pas m'attarder sur mdadm, on verra ça par la suite...
$ sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/vg1/lv1 /dev/vg1/lv2

Création partition

  • formatage du volume logique
$ sudo mkfs.ext3 /dev/vg2/lv1bis

Représentation graphique

graphviz-89585dc2fb59280189785b241dc33e78-fdp