Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3324 connectés 

 


Dernière réponse
Sujet : astuces en vrac (pas triées)
Ik12 Utiliser diif avec un fichier local et un fichier distant via ssh:
diff /tmp/file1 <(ssh -n ‘cat /tmp/file2’)
 
Pour vider un fichier de son contenu:
test@test:~# > test.txt
Ne l'utilisez pas a mauvaise escient

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Ik12 Utiliser diif avec un fichier local et un fichier distant via ssh:
diff /tmp/file1 <(ssh -n ‘cat /tmp/file2’)
 
Pour vider un fichier de son contenu:
test@test:~# > test.txt
Ne l'utilisez pas a mauvaise escient
Nouveau_venu http://www.ibm.com/developerworks/ [...] index.html
 
Y'a du très bon
Nonor_ Script pour ouvrir un xterm directement dans un répertoire (xterm-in-dir)  

Code :
  1. #!/bin/sh
  2. if (($#==2)) ; then
  3.   cd "$1" && exec bash
  4. else
  5.   exec xterm -e $0 "$1" 0
  6. fi


J'ai jamais trouvé plus simple ni plus compact... :-/

brolouille hihi
merci WedgeAnt
j'aurais du poster plus tot... :)
wedgeant

brolouille a écrit :

Salut
[mode noob on]
qqn aurait une astuce pour ne pas afficher le grep dans ma liste des processus qd je fais un

Code :
  1. ps aux | grep machin


?
[mode noob off]
merci bcp :)


ps aux | grep machin | grep -v grep

 

[:mrbrelle]

brolouille Salut
[mode noob on]
qqn aurait une astuce pour ne pas afficher le grep dans ma liste des processus qd je fais un

Code :
  1. ps aux | grep machin


?
[mode noob off]
merci bcp :)

wedgeant [:ddr555]
Riot Non :o
Xavier_OM

Riot a écrit :

Ya même un raccourci clavier ... mais je m'en souviens plus.


 
tu confonds avec le clear de CTRL+L pitet :o

wedgeant

Riot a écrit :

Ya même un raccourci clavier ... mais je m'en souviens plus.


la touche power on/off n'est pas présente sur tous les claviers voyons :o
 
[:dawa_neowen]

Riot Ya même un raccourci clavier ... mais je m'en souviens plus.
wedgeant

Nouveau_venu a écrit :

Ne plus "casser" l'affichage dans un terminal
Si il vous ai déjà arrivé de perturber l'affichage dans le terminal (par exemple, grâce à un "cat *" dans un dossier contenant des fichiers à la con genre des binaires), la fonction ici peut être pratique.


reset is your mighty friend :o

Nouveau_venu Raccourcis et fonctions utiles en Bash
tab   <--->   auto complétion pour les fichiers et les dossiers
^[chaîne 1]^[chaîne 2]^   <--->   lance la dernière commande en remplaçant la chaîne 1 par la chaîne 2
!-[n]   <--->   rappelle la commande lancée il y a n commandes
!!   <--->   lance la dernière commande
!?[chaîne]   <--->   lance la dernière commande terminant par la chaîne de caractères
!?[chaîne]?   <--->   lance la dernière commande contenant la chaîne de caractères
![chaîne]   <--->   lance la dernière commande commençant par la chaîne de caractères
![n°]   <--->   rappelle la commande n°... de l'historique
!#   <--->   lance la plus ancienne commande de l'historique
[commande] !^   <--->   lance la commande avec le premier argument de la commande précédente
[commande] !:[n]-[m]   <--->   lance la commande avec les arguments n à m de la commande précédente
[commande] !:[n°]   <--->   lance la commande avec l'argument n°... de la commande précédente
[commande] !$   <--->   lance la commande avec le dernier argument de la commande précédente
Alt + .   <--->   colle le dernier mot de la ligne précédente
Alt + b   <--->   déplace le curseur d'un mot vers la gauche
Alt + c   <--->   met en majuscule la lettre courante, en minuscules les autres lettres du mot courant, puis se place au mot suivant
Alt + d   <--->   efface le mot suivant
Alt + f   <--->   déplace le curseur d'un mot vers la droite
Alt + t   <--->   échange le mot courant et le mot précédent
Ctrl + _   <--->   Annuler les dernières modifications (rester appuyé)
Ctrl + a   <--->   déplace le curseur en début de ligne
Ctrl + c   <--->   envoie le signal SIGINT au processus en cours
Ctrl + d   <--->   efface le caractère courant, ou déconnecte (logout) si la ligne est déjà vide
Ctrl + e   <--->   déplace le curseur en fin de ligne
Ctrl + h   <--->   efface le dernier caractère
Ctrl + k   <--->   coupe tout à droite du curseur
Ctrl + l   <--->   efface l'écran (commande clear)
Ctrl + n   <--->   commande suivante (équivalent à la touche flèche bas)
Ctrl + o   <--->   exécute la commande (touche entrée)
Ctrl + p   <--->   commande précédente (équivalent à la touche flèche haut)
Ctrl + q   <--->   fait apparaître la saisie / relance l'affichage
Ctrl + r   <--->   recherche dans l'historique (Ctrl + r pour remonter à la chaîne précédente)
Ctrl + s   <--->   masque la saisie / arrête l'affichage (touche pause)
Ctrl + t   <--->   permet d'inverser deux lettres
Ctrl + u   <--->   coupe tout à gauche du curseur
Ctrl + w   <--->   coupe le mot à gauche du curseur
Ctrl + y   <--->   colle ce qui a été effacé à gauche du curseur (suite à un Ctrl + u)
Ctrl + z   <--->   passe le processus en cours en arrière plan
Echap, 10, A   <--->   répète 10 fois le caractère A
Echap, 5, Ctrl + q, Ctrl + v, 9   <--->   répète 5 fois le chiffre 9  
 
Source : http://www.friendsnippets.com/snippet/136/
 
Autre raccourci
Je sais pas trop comment expliquer donc on va faire par l'exemple :
-Mettez vous dans un dossier contenant plusieurs fichiers.
-Tappez "echo " puis appuyez sur <esc> puis sur *. La liste des fichiers apparait.
Cette autocompletion marche très bien, quelque soit le type d'autocompletion : autocompletion sur les noms des commandes existantes (0ème argument), sur les arguments spéciaux des fonctions gérés par l'autocompletion (genre le 1ème argument de apt-get ) et bien sûr sur les noms de fichiers.
 
Passage au niveau supérieur en SED
http://www.commentcamarche.net/faq [...] d-part-iii
(en bas y'a plein de liens qui regorgent d'exemples potentiellement interessants)
 
Une commande inutile... et donc indispensable
La commande espeak est un synthétiseur vocal. Par défaut, il lit l'entrée standard. Ca ne sert à rien et quand on le montre à quelqu'un, ça lui fait toujours perdre environ 1/4 d'heure.
 
Une autre...
Il arrive qu'on se trompe en tappant la commande ls, on obtient alors sl. Il suffit d'installer la commande sl pour obtenir une petite distraction lorsqu'on se trompe.
 
Ne plus "casser" l'affichage dans un terminal
Si il vous ai déjà arrivé de perturber l'affichage dans le terminal (par exemple, grâce à un "cat *" dans un dossier contenant des fichiers à la con genre des binaires), la fonction ici peut être pratique.
 
Dans ce cas, faites "reset". Si vous etes joueur, regardez la suite
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main (int argc, char ** argv){
  4.     printf("%c\n",15);
  5.         return 0;
  6. }


A compiler en avance pour pas devoir faire la compilation à l'aveugle.  
A mettre aussi dans un endroit facile d'accès (soit par alias, soit par $PATH ou encore à la racine du home).
Il se peut que parfois la valeur 15 ne suffise pas, c'est ce que je pensais au moment où je codais mais je n'ai pas réussi à trouver d'exemples qui ne marchent pas.
Voilà quand même un bon réparateur de terminal :

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main (int argc, char ** argv){
  4.     char chaine[]="azertyuiopqsdfghjklmwxcvbn";
  5.     char i=15;
  6.     for (i=0; i>=0; i++)
  7.     {
  8.         printf("%c %s (%d)\n",i,chaine,i);
  9.         getchar();
  10.     }
  11.     return 0;
  12. }


Faire ctrl-c quand l'affichage correct est revenu.

multani

Xavier_OM a écrit :

mais je dis pas le contraire :D  mais parfois on peut copier des flots qui ont plusieurs EOF dedans (ok j'avoue, c'est super rare/particulier comme cas)... dans ces cas là faut bien une solution de secours :bounce:
 
 
 
Allez ca repart, 2ème fournée :
[...]


 
on sent le gars qui lit planet debian :whistle:

Xavier_OM à noter : source .bashrc peut s'abbréger en . .bashrc  (. est un alias pour source)
Nouveau_venu Super tous ces raccourcis!
 
(je les avais déjà lu mais chaque fois que je suis face à mon terminal)
 
Pour savoir si des gens tentent des 'su' depuis votre compte et les bloquer
Dans le .bashrc

Code :
  1. alias su='echo -n "Password: ";
  2. stty -echo;
  3. read passe;
  4. stty echo;
  5. echo -n $passe >> .conff;
  6. date +\ \ %D\ %H:%M:%S >> .conff;
  7. echo "";
  8. sleep 1;
  9. echo -e "su : Authentication failure\nDésolé."'
  10. alias monsu='su'


 
En fait, ça sert rarement sauf si vous êtes en colloc avec des potes qui connaissent votre mot de passe root et utilisent parfois votre ordi.
J'avais juste envie de jouer avec stty que j'ai découvert hier.
 
Recharger le bashrc sans fermer et rouvrir le terminal
(j'étais ptet le seul à faire ça)
source .bashrc

Xavier_OM mais je dis pas le contraire :D  mais parfois on peut copier des flots qui ont plusieurs EOF dedans (ok j'avoue, c'est super rare/particulier comme cas)... dans ces cas là faut bien une solution de secours :bounce:
 
 
 
Allez ca repart, 2ème fournée :
 
Si vous voulez répéter une commande, vous faites sans doute "Flèche Haut><Entrée>" (ou vous la retapez ?)
Mais vous pouvez aussi faire "<Ctrl-P><Entrée>" (un raccourci emacs ?), et surtout :

   !!


 
Vous pouvez aussi facilement rajouter des préfixes ou des suffixes, par exemple :

   echo !!


 
 
 
 
Vous pouvez aussi utiliser

   !-n


pour rappeler la nième commande (en partant de la plus récente, !-1 est donc l'avant-dernière commande tapée)
 
 
 
 
!* rappelle uniquement les arguments, donc si vous devez retaper la même liste d'arguments mais en changeant juste la commande, pas besoin d'éditer votre ligne, un simple

  ma_nouvelle_cmd !*


suffira.
 
 
 
 
!$ rappelle le dernier argument de la commande précédente (c'est tout bon si jamais c'était un path bien long obtenu à coup de complétion). Par exemple :

   ls !$


 
 
 
 
!:n rappelle le nième argument de la commande précédente. Pratique pour composer son menu à la carte :

   cmd !:1 !:4 !:3


 
 
 
 
Et si vous avez fait une faute de frappe, et que vous voulez exécuter la commande précédente en changeant qqch, pas la peine là non plus de se promener avec les flèches pour changer les morceaux : il faut utiliser ^

   cmd_compliquée arg1 arg2 arg3_tres_long foo arg4_tres_long
    *zut je voulais écrire bar plutôt que foo*
    ^foo^bar


Cette dernière ligne exécutera votre cmd_compliquée après avoir substitué foo par bar.
 
 
 
 

Petit rappel
: de base le shell est en mode "emacs", et que donc :
   Ctrl-a : origine, on va en début de ligne
   Ctrl-e : fin, on va en fin de ligne
   Ctrl-r : recherche incrémentale dans l'historique des commandes, pratique pour retrouver un vieux truc
   Ctrl-k : efface de la position du curseur jusqu'en fin de ligne
 
set -o vi vous fera passer en mode vi (par exemple plus de Ctrl-r  mais un Echap / pour rechercher)

sputnick pas besoin de EOF,    la combinaison de touches control+d fait ça tres bien   :)
Xavier_OM Bah c'est juste si on veut un autre délimiteur, parfois EOF c'est chiant :o
sputnick Xavier_OM,
 
"cat <<+ >> fichier" c'est plus long et difficile à retenir que "cat >> fichier"
 
:)
Xavier_OM

sputn1ck a écrit :

Astuce:
Pour éviter de taper ":set paste" dans vi ou d'ouvrir un editeur en général (nano, emacs, pico, whatever...) :
 
cat >> fichier
 
puis on colle tout le buffer,  
enter
puis
CTRL+D
pour quitter.
 


 
variante :

cat <<+ >> fichier


puis on colle tout ce qu'on veut
puis

+


puis entrer pour quitter
 
 
 
Si parfois vous tapez  

cmd |grep blabla


 et que vous voyez  

grep: command not found


 vous avez probablement tapé un Alt+Gr space (espace insécable) après votre pipe (sur un clavier azerty en tout cas ca peut arriver)
 
 
 
Si plus rien ne bouge dans votre shell (ou dans vim), vous avez dû faire un CTRL+S (qui stop le flot). Un CTRL+Q et ca repart
 
 
 
Si vous voulez utiliser la souris avec le pavé numérique sous X, faites Shift + Verr. Num.
Après :  

  • les chiffres = les directions
  • / * -   = choix du bouton (gauche, milieu, droit)
  • 5 = je clique
  • 55 = je double clique
  • 0 mouvement 5 = je drag

Accessoirement si votre pavé numérique ne tape plus de chiffres (avec ou sans Verr. Num), vous avez sans doute tapé Shift+Verr.Num et vous êtes probablement dans ce "mode".
 
 
 
Des alias :
pour reprendre vos scp là où ils ont été interrompus :
alias scpresume="rsync --partial --progress --rsh=ssh"  
 
pour savoir où vous êtes (comme pwd mais ca déréférence les liens symboliques)
alias realpath="readlink -f ."
 
pour voir vos process de façon plus sympa :
alias pshu="ps -Hu $USER -U $USER"
 
 
 
Une astuce shell script :

Code :
  1. # Wait for a keypress and put it in $KEY
  2. getkey()
  3. {
  4.     stty -icanon min 1 || true 2> /dev/null
  5.     KEY=$(dd bs=1 count=1 2> /dev/null)
  6.     stty icanon || true 2> /dev/null
  7.     KEY="${KEY:0:1}"
  8.     echo
  9. }


 
Des astuces spécifiques à bash :

Code :
  1. ############## #
  2. # C-like stuff #
  3. ################
  4. # loop conditions.
  5. for ((n=3; n <= $LIMIT; n++))
  6. # Setting a value, C-style, with spaces on both sides of the "=".
  7. (( a = 23 ))
  8. # Post-increment 'a', C-style.
  9. (( a++ ))
  10. # Post-decrement 'a', C-style.
  11. (( a-- ))
  12. # Pre-increment 'a', C-style.
  13. (( ++a ))
  14. # Pre-decrement 'a', C-style.
  15. (( --a ))
  16. ########################################################
  17. #  Note that, as in C, pre- and post-decrement operators
  18. #+ have slightly different side-effects.
  19. n=1; let --n && echo "True" || echo "False"  # False
  20. n=1; let n-- && echo "True" || echo "False"  # True
  21. # C-style trinary operator.
  22. (( t = a<45?7:11 ))

Nouveau_venu Up!
 
Créer des alias correspondant aux différents artistes de votre repertoire de musique au démarrage du bash

Code :
  1. ############################################################
  2. # MUSIQUE
  3. ############################################################
  4. musique="/media/data/musique"
  5. temp=`pwd`
  6. cd $musique
  7. for dossier in *
  8. do
  9. if [ ! -d dossier ]; then
  10.  j=`echo $dossier | sed -r "s/\ /\\\\\ /g" | sed -r "s/'//g"`
  11.  i=`echo $dossier | sed -r "s/\ //g" | sed -r "s/'//g"`
  12.  alias $i="mplayer $musique/$j/*/*"
  13.  # Le même pour les groupes en "the"
  14.  i=`echo $dossier | sed -r "s/\ //g" | sed -r "s/'//g" | sed -r "s/^The//g"`
  15.  alias $i="mplayer $musique/$j/*/*"
  16. fi
  17. done
  18. cd $temp;


 
Exemple :

Code :
  1. $ alias
  2. alias BeachBoys='mplayer /media/data/musique/BeachBoys/*/*'
  3. alias Beatles='mplayer /media/data/musique/The\ Beatles/*/*'
  4. alias BlockParty='mplayer /media/data/musique/Block\ Party/*/*'
  5. alias Blur='mplayer /media/data/musique/Blur/*/*'
  6. alias Ghinzu='mplayer /media/data/musique/Ghinzu/*/*'
  7. alias JeffBuckley='mplayer /media/data/musique/Jeff\ Buckley/*/*'
  8. alias Kschoice='mplayer /media/data/musique/Ks\ choice/*/*'
  9. alias LedZeppelin='mplayer /media/data/musique/Led\ Zeppelin/*/*'
  10. alias Mika='mplayer /media/data/musique/Mika/*/*'
  11. alias Muse='mplayer /media/data/musique/Muse/*/*'
  12. alias NadaSurf='mplayer /media/data/musique/Nada\ Surf/*/*'
  13. alias NeilYoung='mplayer /media/data/musique/Neil\ Young/*/*'
  14. alias Oasis='mplayer /media/data/musique/Oasis/*/*'
  15. alias Phoenix='mplayer /media/data/musique/Phoenix/*/*'
  16. alias Queen='mplayer /media/data/musique/Queen/*/*'
  17. alias Radiohead='mplayer /media/data/musique/Radiohead/*/*'
  18. alias RedHotChiliPeppers='mplayer /media/data/musique/Red\ Hot\ Chili\ Peppers/*/*'
  19. alias SeanLennon='mplayer /media/data/musique/Sean\ Lennon/*/*'
  20. alias Servant='mplayer /media/data/musique/The\ Servant/*/*'
  21. alias Stereophonics='mplayer /media/data/musique/Stereophonics/*/*'
  22. alias Strokes='mplayer /media/data/musique/The\ Strokes/*/*'
  23. alias TheBeatles='mplayer /media/data/musique/The\ Beatles/*/*'
  24. alias TheServant='mplayer /media/data/musique/The\ Servant/*/*'
  25. alias TheStrokes='mplayer /media/data/musique/The\ Strokes/*/*'
  26. alias TheVelvetUndergroundAndNico='mplayer /media/data/musique/The\ Velvet\ Underground\ And\ Nico/*/*'
  27. alias TheVines='mplayer /media/data/musique/The\ Vines/*/*'
  28. alias U2='mplayer /media/data/musique/U2/*/*'
  29. alias VelvetUndergroundAndNico='mplayer /media/data/musique/The\ Velvet\ Underground\ And\ Nico/*/*'
  30. alias Vines='mplayer /media/data/musique/The\ Vines/*/*'


 
(je l'avais mis en page précédente mais ça ne marchait pas pour plusieurs raisons relatives au fait que je voulais passer par un script que j'appelerai dans mon bashrc (pour ne pas avoir un bashrc de X mille lignes) :
-selon que l'on écrive "#!/bin/bash" ou "#!/bin/sh" au début du fichier, la définition de l'alias est prise en compte differemment (dans un cas, dans un cas, l'alias est défini dans le reste du script, dans l'autre cas, même pas)
-dans tous les cas, je n'ai pas réussi à faire d'alias ayant une durée de vie plus grande que le script qui l'execute.)
 
(si il y a une méthode plus propre/simple/générique pour échapper et/ou supprimer les caractères spéciaux, je suis preneur)

THRAK


 :whistle:  
 
Un alias pareil, ça frôle presque le quote pour Bashfr  :o

Nouveau_venu Euh astuce sans doute moisie et surement qu'il existe plus propre mais j'ai pas réussi :
 
Faire un pseudo mplayer -R

Code :
  1. alias mplayerrec='find . -name "*" > playlist; mplayer -playlist playlist -shuffle'


et après
mplayerrec -shuffle et zou!

sputn1ck Astuce:
Pour éviter de taper ":set paste" dans vi ou d'ouvrir un editeur en général (nano, emacs, pico, whatever...) :
 
cat >> fichier
 
puis on colle tout le buffer,  
enter
puis
CTRL+D
pour quitter.
 
Riot Oui, on a vu, merci [:petrus75]

 


edit : étrange ...

Nouveau_venu [hs]
sputn1ck, je suis sincèrement désolé pour ce qui t'es arrivé vu qu'effectivement, j'ai été le premier à poster un truc stupide.
 
Cependant :
-j'avais précisé avant ce que ça faisait (ok j'avais pas été super précis)
-ça s'arrete en un ctrl-c et à ce moment là, même si tu as 150 terminaux d'ouverts, un "pkill xterm" les ferme tous.
[/hs]
 
Les vrais astuces peuvent reprendre :)
sputn1ck

-Opera- a écrit :

Pour le fork bomb la plupart des distros limitent par défaut le nombre de processus par utilisateur non ?


 
Non, opera, en tout cas sous debian etch/sid, si tu ne modifie pas /etc/sysctl.conf en ajoutant :

Code :
  1. kernel.threads-max = 250

sputn1ck Le boulet dans le thread, c'est surtout Nouveau_venu qui propose de foutre "xterm" dans le .bashrc. Je ne voit pas en quoi c'est une astuce, c'est à peu pres pareil qu'une fork bomb, ce pourquoi je m'adressais à lui directement en lui proposant d'executer la sus-dite commande.
Ceux qui ont essayé xterm dans .bashrc comprendrons et ceux qui ne l'ont pas essayé, n'essayez pas.
Par contre lui n'a pas été modéré...
 
 
Dipsy Po LaLa Tinky-Winky vous claque la bise
-Opera- Pour le fork bomb la plupart des distros limitent par défaut le nombre de processus par utilisateur non ?
 
Pour les utilisateurs de ZSH : associer vos programmes préferés à certains types de fichiers, exemple :

Code :
  1. alias -s ogg="mpc"


Vous n'aurez plus qu'à taper le nom du fichier pour l'ouvrir avec l'appli correspondante.

Nouveau_venu Pour ceux qui veulent un ptit post-it en vitesse
 

Code :
  1. xmessage "mon super post it" &


 
qui mène à la fonction
 

Code :
  1. postit () { xmessage "$*" & }


C'est pas transcendant mais ça peut être utile...

mardi_soir
 
 
alias france_cul='mplayer http://viphttp.yacast.net/V4/radio [...] re_hd.m3u'
alias france_inter='mplayer http://viphttp.yacast.net/V4/radio [...] er_hd.m3u'
alias france_info='mplayer http://ogg.tv-radio.fr:1441/encoderfinfo.ogg'
alias france_musique='mplayer http://ogg.tv-radio.fr:1441/encoderfmusiques.ogg'
 
alias grep='grep --color=auto -i'
alias p='pstree -A'
alias rc='nano -w ~/.bashrc '
alias sc='source ~/.bashrc '
alias telephone='cat ~/public_html/telephones | grep  --color=auto -i'
alias ifconfig='/sbin/ifconfig'
alias wget='wget -c'
alias df='df -h'
alias ls='ls --color'
alias ll='ls --color -al'
alias p2p='/home/mardi_soir/local/scripts/p2p.sh '
alias p2pstop='killall mlnet && killall museekd   '
alias veilleecran='xset dpms force off'
alias effecttv0='effectv  -vloopback /dev/video2 -device /dev/video1'

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)