Trucs linux
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.
liens
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]
- recherche du mot identique après le curseur : [*]
mode visuel [v]
- mode visuel standard : [v]
- mode visuel ligne : [Maj] + [v]
- mode visuel bloc : [Ctrl] + [v]
- copie de la sélection : [y]
- coupe/supprime la sélection : [d]
- ajout/suppression de tabulations : [>>] ou [<<]
mode Explore
- Parmi la fulltitude de fonctions que contient vim, la navigation dans votre système de fichier est bien pratique
- dossier supérieur : [-]
- éditer le fichier ou se déplacer dans le dossier sous le curseur : [Enter]
- idem avec un split horizontal : [o]
- idem avec un split vertical : [v]
- idem dans un nouvel onglet : [t]
- prévisualisation du fichier : [p]
- marquer des fichiers / dossiers : [mf]
- marquer tous les fichiers / dossiers correspondants à une regexp : [mr] puis entrer la regexp
- imprimer les fichiers marqués : [mp]
- tous désélectionner : [mu]
- exécuter une commande sur tous les fichiers marqués : [mx] puis commande
- vim . et [F1] pour plus d'options
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 (nouveau fichier) : :[vne]
- split vertical (même fichier) : [Ctrl] + [w], [Ctrl] + [v]
- split horizontal (nouveau fichier) : [Ctrl] + [w], [Ctrl] + [n] | :[new] | :[split]
- split horizontal (même fichier) : [Ctrl] + [w], [Ctrl] + [s]
- switch d'une fenêtre à l'autre : [Ctrl] + [w], [Ctrl] + [w]
- rotation des splits ouvert : [Ctrl] + [w], [Ctrl] + [r|R|x]
divers
- ouverture d'un fichier : [:e nom_du_fichier]
- activation de la coloration syntaxique : [:syntax on]
- changement de colorscheme : [:colorscheme slate]
- adapter son colorscheme à son environnement : [:set background=dark|light]
- 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 [+]
- répète la dernière commande : [.]
- ...
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
- Avorte le processus courant : Ctrl + z
- Processus au premier plan : fg
- Kill processus : Ctrl + c
- Deconnexion : Ctrl + d
Terminator
split
Horizontal
- split horizontal : [Ctrl]+[maj]+[o]
- resize horizontal : [Ctrl]+[maj]+[↓]|[↑]
Vertical
- split vertical : [Ctrl]+[maj]+[e]
- resize vertical : [Ctrl]+[maj]+[←]|[→]
Navigation
- preview screen : [Ctrl]+[maj]+[p]
- next screen : [Ctrl]+[maj]+[n]
- switch between split : [Ctrl]+[Tab]
Tab
- new tab : [Ctrl]+[maj]+[t]
Outils
- search : [Ctrl]+[maj]+[f]
- zoom le split courant : [Ctrl]+[maj]+[z]
Configuration
- fichier .config/terminator/config
# terminator config file # aspect #font = Monospace 8 background_type = "transparent" enable_real_transparency = True use_theme_colors = False background_darkness = 0.9 background_color = "#000000" foreground_color = "#FFFFFF" borderless = True maximise = True extreme_tabs = False mouse_autohide = False word_chars = "-A-Za-z0-9,./?&_+@~" # nb de lignes enregistrées scrollback_lines = 2000 scrollbar_position = "disabled" # flash lors des erreurs de frappe audible_bell = False # suppression des bips force_no_bell = True # pas de curseur clignotant cursor_blink = False [keybindings] # ne pas interférer avec le déplacement dans les onglets de vim next_tab = <Ctrl>Down prev_tab = <Ctrl>Up
screen
fichier ~/.screenrc
vbell on
autodetach on
defscrollback 5000
hardstatus alwayslastline "%{= k}%{+ y}%w%{-}%=%{+ b}load:%l%{-}%=%{+ y}%D%d/%m/%Y - %c%{-}"
commandes
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- Sur une ubuntu 9.04 zsh est en version 4.3.9
- On en profitera pour mettre des couleurs à less
fichier ~/.zshrc
# prompt shell
export PS1="$(print '%{\e[3;32m%}%m%{\e[0m%}'):$(print '%{\e[1;33m%}%~%{\e[0m%}')"
if [ $USER = "root" ] ; then
export PS1="$PS1%# "
else
export PS1="$PS1%% "
fi
# inscription des info dans la barre de titre des terminaux
case $TERM in
rxvt|*term)
precmd() { print -Pn "\e]0;%n@%m:%~\a" }
preexec () { print -Pn "\e]0;$1\a" }
;;
esac
# historique
export HISTFILE=~/.histfile
export SAVEHIST=5000
export HISTSIZE=5000
setopt HIST_REDUCE_BLANKS # suppression des doublons inutiles
setopt HIST_SAVE_NO_DUPS # ne sauvegarde pas les doublons
setopt SHARE_HISTORY # partage instantanee des historiques
# alias
. ~/.bash_aliases
# ls
eval "`dircolors -b`"
# less
export LESS="-rIg"
export LESSOPEN='| /usr/bin/lesspipe %s'
export LESSCLOSE='/usr/bin/lesspipe %s %s'
# Less Colors for Man Pages
export LESS_TERMCAP_mb=$'\E[01;32m' # begin blinking
export LESS_TERMCAP_md=$'\E[03;32m' # begin bold
export LESS_TERMCAP_me=$'\E[0m' # end mode
export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
export LESS_TERMCAP_so=$'\E[01;42m' # begin standout-mode - info box
export LESS_TERMCAP_ue=$'\E[0m' # end underline
export LESS_TERMCAP_us=$'\E[04;37m' # begin underline
# inscription des info dans la barre de titre des terminaux
case $TERM in
rxvt|*term)
precmd() { print -Pn "\e]0;%n@%m:%~\a" }
preexec () { print -Pn "\e]0;$1\a" }
;;
esac
# Completion of hostnames, pulled out of ~/.ssh/config.
_myhosts=($(cat ~/.ssh/config | sed -ne 's/Host[=\t ]//p'))
zstyle ':completion:*' hosts ${_myhosts[1, -2]} # Slices off the last entry
# process completion
zstyle ':completion:*:processes' command 'ps -au$USER'
zstyle ':completion:*:*:kill:*:processes' list-colors "=(#b) #([0-9]#)*=36=31"
# zstyle
zstyle ':completion:*' completer _expand _complete _ignored _approximate
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' menu select=2
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s'
zstyle ':completion:*:descriptions' format '%U%F{yellow}%d%f%u'
zstyle :compinstall filename '/home/user/.zshrc'
autoload -Uz compinit
autoload colors
compinit
Problème avec les touches suppr, début, fin, Ctrl + ←|→
- utiliser le script zkbd pour les codes qui créait un fichier sous le dossier ~/.zkbd
user:~% zsh -f /usr/share/zsh/4.3.10/functions/Misc/zkbd
- vous pourrez ensuite récupérer les codes qui vous interesse pour compléter votre .zshrc
[...]
typeset -g -A key
key[Insert]='^[[2~'
key[Home]='^[OH'
key[PageUp]='^[[5~'
key[Delete]='^[[3~'
key[End]='^[OF'
key[PageDown]='^[[6~'
bindkey "${key[Insert]}" overwrite-mode
bindkey "${key[Home]}" beginning-of-line
bindkey "${key[Delete]}" delete-char
bindkey "${key[End]}" end-of-line
bindkey ";5C" forward-word
bindkey ";5D" backward-word
[...]
- Pour plus de détails :
- Z schell
- man zshall
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 article 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
Redirection dans un pts
- On utilisera la commande script
# sur la machine distante riri:~$ w rdeniro pts/1 :0.0 12:54 5:36m 0.08s 0.08s /bin/bash riri pts/2 :0.0 17:17 2:39m 0.14s 0.04s ssh riri@machine riri:~$ script -c uptime -f /dev/pts/1 Le script a débuté, le fichier est /dev/pts/1 18:35:57 up 6:15, 4 users, load average: 0.06, 0.04, 0.00 Script complélé, le fichier est /dev/pts/1 # localement sur pts/1 robert verra : rdeniro:~$ Le script complété sur dim. 26 Avril 2009 00:00:00 CEST 18:35:57 up 6:15, 4 users, load average: 0.06, 0.04, 0.00 Script complélé sur dim. 26 Avril 2009 00:00:10 CEST
liens mailto firefox
- Dans firefox vous pouvez faire que les liens du type mailto: pointe sur gmail ou yahoo facilement. Mais vous pouvez également paramétrer un webmail différent :
configuration
- Dans votre barre d'adresse : about:config (puis une recherche sur mailto)
gecko.handlerService.schemes.mailto.2.name=webmail du boulot gecko.handlerService.schemes.mailto.2.uriTemplate=http://example.org/squirrelmail/src/mailto.php?emailaddress=%s
- Pour que les modifications prennent effet incrémentez la valeur de la clef qui suit
gecko.handlerService.defaultHandlersVersion=2
- Redémarrez firefox
- Dans le choix des préférences, onglet application, mailto vous trouverez votre nouvelle entrée.
documentation
- dans votre barre d'adresse : chrome://browser-region/locale/region.properties (puis une recherche sur mailto)
Recherche sur le site http://www.commandlinefu.com/
- Ajouter cette fonction dans votre .bashrc ou .bash_aliases
[...]
# command line fu search
function clfu-search() {
wget -q -O /dev/stdout --post-data "q=$1" http://www.commandlinefu.com/search/autocomplete | \
grep "class=\"autocomplete-command\"" | \
sed -e 's/^.*<strong>\(.*\)<\/strong>/\1/' -e 's/<\/div>//' | sort -u
}
[...]
- Utilisation
user@machine:~# clfu-search find
find . -name "*.[ch]" -exec grep -i -H "search pharse" {} \;
find . -name "*.php" -exec iconv -f ISO-8859-1 -t UTF-8 {} -o ../newdir_utf8/{} \;
find ~ -name '*.sqlite' -exec sqlite3 '{}' 'VACUUM;' \;
find /path/to/dir -type f -print0 | xargs -0 rm
find * -type d -exec mkdir /where/you/wantem/\{\} \;
find ./ -type f -exec chmod 644 {} \;
user@machine:~#
