Journal ~/bin

Posté par  .
Étiquettes : aucune
0
11
oct.
2004
Salut,
A force de me faciliter la vie, je me suis rendu compte que mon ~/bin commençait à se remplir ( reremplir plutôt, étant donné que le précédent est parti en fumée avec le disque ).
Et vous, êtes-vous de véritables paresseux prêts à sacrifier une soirée pour être tranquille tous les jours ? Votre ~/bin recelle-t-il des perles ?
  • # ~/sys/bin

    Posté par  . Évalué à 4.

    Déjà, personnellement, dans mon home, il y a un répertoire « sys » qui, lui, contient bin,sbin,share,etc,include,lib,man et info.

    Comme ça, quand j'ai envie de compiler mes petits programmes pépère sur le serveur Unix du boulot sans compromettre la sécurité de tout le système, je fais un « ./configure --prefix=~/sys » et j'n'ennuie personne.

    Sinon, dans ~/sys/bin, le programme perso que j'utilise le plus, c'est cl:

    $ cat ~/sys/bin/cl
    #!/bin/bash
    rm -f *~
    rm -f .*~
    rm -f *.bak
    rm -f core

    Et zou, le ménage vite fait, la maison toujours propre.
    • [^] # Re: ~/sys/bin

      Posté par  . Évalué à 3.

      Comme ça, quand j'ai envie de compiler mes petits programmes pépère sur le serveur Unix du boulot sans compromettre la sécurité de tout le système, je fais un « ./configure --prefix=~/sys » et j'n'ennuie personne.


      A moins d'etre root sur le serveur je ne vois pas comment tu pouvais compromettre la sécurité de toute façon !? Au pire ton prog est configuré pour s'installer dans un répertoire système dans lequel tu n'as aucun droit..
      • [^] # Re: ~/sys/bin

        Posté par  . Évalué à 5.

        C'est l'idée: Chaque fois que tu veux installer un programme recompilé et avec ./configure, il est fait pour s'installer par défaut dans /usr, et cela t'oblige à passer root (et j'ai les moyens de le faire si c'est ce qui te tracasse :-) ).

        D'où l'astuce: plutôt que de faire un simple ~/bin, autant reconstruire toute l'architecture (la demi-douzaine de répertoires, quoi), et mettre tes exécutables dedans.

        Comme çà, en plus des exécutables, tu te fabriques également tes bibliothèques perso, tes recettes de cuisines formattées en man-pages, etc.
    • [^] # Re: ~/sys/bin

      Posté par  . Évalué à 3.

      > Sinon, dans ~/sys/bin, le programme perso que j'utilise le plus, c'est cl:

      pourquoi tu te faix pas plutôt un alias (dans ton ~.[[t]c]sh)
      aliac cl 'rm -f *~ .*~ *.bak core'
      nan?
      Sinon, un jour, tu feras une faute dans ton prompt, et tu passseras du côté obscure des users...
      • [^] # Re: ~/sys/bin

        Posté par  . Évalué à 4.

        C'est une question de goût, en fait.

        A dire vrai, j'ai à la fois des aliases et des programmes shell stockés.

        J'ai une floppée d'aliases pour me connecter en ssh sur la demi-douzaine de serveurs que j'utilise le plus fréquement, car la commande complète est chiante à taper, je ne le fais (en principe) qu'une à trois fois par jour, et surtout elle nécessite un prompt interactif et la saisie d'un mot de passe (et aussi parce que je n'ai pas envie d'avoir un sous-shell ouvert sur mon serveur local pendant toute la durée de ma connexion et qui ne sert à rien).

        Ma commande de nettoyage, elle, ne dépend pas des shells, et s'utilise vraiment partout, silencieusement. Il n'est pas exclu que je fasse d'autre petits scripts qui l'invoquent, ou surtout qu'à terme je complexifie la tâche de nettoyage (par date, sur présence d'un autre fichier, d'un flag, en excluant certains répertoires, etc.). J'ai également pensé à rendre cette commande disponible pour tout le monde. Tout cela a fait que c'était plus rapide d'écrire directement un petit shellscript. Quoi qu'il en soit, je ne risque pas grand chose en effaçant les fichiers concernés. Si j'avais mis les *.o par exemple, cela aurait pu être plus gênant dans certains cas, mais là ...
    • [^] # Re: ~/sys/bin

      Posté par  (site web personnel) . Évalué à 2.

      Une version qui nétoie, tout, du sol au plafond.
      #!/bin/bash
      
      find=/usr/bin/find
      
      # Stop if error
      set -e
      
      dir=.
      
      # Process command line options
      args=$*
      for arg in $args ; do
        case $arg in
          -r) recursive=ok ;;
           *) dir=$arg ;;
          -h|--help)
                echo "Usage: $0 -r rep"
        esac
      done
      
      [ ! -d $dir ] && (echo "'$dir' is not a directory"; exit 1)
      
      # here we go !!
      if [ ! "$recursive" = "ok" ]; then
          options="-maxdepth 1"
      fi
      
      cd $dir
      
      $find .  $options \( -name '*~' \
                        -o -name '.*~' \
                        -o -name '#*#' \
                        -o -name '.#*#' \
                        -o -name 'core' \
                        -o -name 'nohup.out' \) \
                        -exec rm -f {} \; -ls
      
    • [^] # Re: ~/sys/bin

      Posté par  . Évalué à 2.

      > rm -f *~
      > rm -f .*~


      Si tes fichiers *~ proviennent de l'usage intensif de vi, je te conseil de rajouter ceci dans ton .vimrc :
      set backupdir=~/.vim/backup
      Ça te regroupera _tous_ tes *~ créés par vi dans le répertoire ~/.vim/backup

      Dans le même genre, il y a :
      set directory=~/.vim/tmp
      qui regroupe les fichiers *.swp dans ~/.vim/tmp
  • # petits scripts slackware

    Posté par  (site web personnel) . Évalué à 1.

    Personnellement je n'ai pas grand chose,

    /c (parfois une réminiscence d'IRC, c'est un symlink vers /bin/clear)

    Sinon, j'utilise "running" qui est un simpe ps aux | grep $1 pour trouver les occurences d'un process en cours d'exécution (oui, pgrep pourrait faire pareil, je sais).
    J'utilise également "pkglook" pour rechercher un paquetage dans /var/log/packages (slackware-current).
    Pour le reste ce sont des scripts liés à la compilation de tarballs,

    structure de /src :
    /src/cvs programmes en CVS (quelques-uns)
    /src/tb tarballs
    /src/tb/arch archives (celles téléchargées sur internet)
    /src/tb/pkgs paquetages slackware
    /src/tmp
    /src/tmp/build répertoire de compilation
    /src/tmp/install/xxxx répertoire d'installation des paquetages (--prefix)

    Je dispose donc de quelques scripts pour construire automatiquement les paquetages (c'est plus propre !).

    Voila, rien de bien impressionnant en somme.
  • # Redémarrer mon modem

    Posté par  (site web personnel) . Évalué à 2.

    rebootModem contient : printf "root\nmotdepasse\nreboot\n"|nc modem 23

    Pratique. Netcat (nc) est une mine inépuisable d'astuces.

    nc va accrocher le modem en telnet (23/TCP), se connecte et demande le redémarrage.
  • # Commentaire supprimé

    Posté par  . Évalué à 1.

    Ce commentaire a été supprimé par l’équipe de modération.

  • # Petites perles ?

    Posté par  . Évalué à 1.

    Votre ~/bin recelle-t-il des perles ?

    Ben là, hier, on m'a envoyé la ROM d'un très vieil engin (une tortue logo réelle, qui roule sur le sol). Comme j'étais obstiné, que je ne trouvais pas mon bonheur ailleurs, j'ai passé la soirée d'hier à écrire un petit désassembleur 6800.

    Voila, c'est le genre de gadgets qu'on trouve dans mon home.
  • # ./scripts

    Posté par  (site web personnel) . Évalué à 2.

  • # Perso, j'ai pas de ~/bin :)

    Posté par  (site web personnel) . Évalué à 2.

    gnumdk@milouse:/mnt$ df -h /usr/local/
    Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
    /dev/hda6 3,9G 820M 3,1G 21% /usr/local
    gnumdk@milouse:/mnt$ ll -d /usr/local/
    drwx------ 25 gnumdk users 4096 2004-10-10 01:30 /usr/local/
    gnumdk@milouse:/mnt$

    Et oui, j'ai des vieux truc :)


    gnumdk@milouse:~$ ll /usr/local/bin/ | grep 2002
    -rwx------ 1 gnumdk users 1577 2002-11-15 20:50 asciiview
    -rwx------ 1 gnumdk users 6013 2002-12-19 16:23 cachegrind
    -rwx------ 1 gnumdk users 254341 2002-12-01 14:38 foobillard
    -rwx------ 1 gnumdk users 298090 2002-10-11 17:59 fr-document-viewer
    -rwx------ 1 gnumdk users 57048 2002-03-02 00:00 gdialog
    -rwx------ 1 gnumdk users 173898 2002-10-07 17:33 kv4lsetup
    -rwx------ 1 gnumdk users 1899 2002-10-07 17:32 mmxnow-config
    -rwx------ 1 gnumdk users 2574139 2002-12-16 14:33 sinek
    -rwx------ 1 gnumdk users 85647 2002-10-11 18:01 tdfsb
    -rwx------ 1 gnumdk users 9162 2002-12-19 16:23 valgrind
    -rwx------ 1 gnumdk users 31653 2002-12-19 16:23 vg_annotate
  • # une partie de mon ~/bin

    Posté par  (site web personnel) . Évalué à 3.

    cam -> configure la webcam, et lance le demon pour mettre sur ma page oueb (utilise le logiciel webcam)
    Gaim -> Gaim en japonais
    Mlterm -> lance mlterm avec un IM prédéfini
    old -> renome en .old le fichier en argument
    new -> l inverse
    randbg.pl -> change mon fond d ecran aléatoirement (peut prendre un fichier en argument)
    xchg -> ZE script utile. Permute deux fichiers. Je l utilise tres souvent quand je modifie des fichiers de conf et tout ca.
    cindent -> indentation de programmes C avec toute une panoplie d options
    japanese -> lance un IM
    qtjap -> Le jap dans les applis QT (surtout dans OOo en fait)
    Rss.pl -> le flux RSS de ma fac (les "nouvelles fraiches")
    LinuxfrNews.pl -> les news de linuxfr au login et en couleur
    ocamlgraph -> toplevel Ocaml avec graphics et tout ca


    Voila donc parmi mes plus utiles scripts situés dans ~/bin
  • # Hehe :)

    Posté par  (site web personnel) . Évalué à 4.

    Je la trouve amusante cette question, elle relève de notre petite vie bien tranquille. "et vous, votre café, vous le prenez avec ou sans sucre ?" ;-)

    Pour ma part, j'ai un ~/sbin , comme jeu de mots entre bin , sbin et shellscripts. Je n'y stocke, en effet, a priori que des shellscripts :

    $ ls -1 ~/sbin
    gen-thumbnails.sh*
    goto-o-pif.epi*
    machine-update*
    music*
    rand_passwd*
    reminder.sh*
    screenshooter*
    xcompmanager.sh*
    (et plein de trucs dont j'ai completement oublié l'utilité et que je devrais virer ^_^ )
    $

    mon préféré étant sans aucun conteste "music", un shellscript fait main, s'interfacant avec xmms et ma base de donnees mysql de tous mes fichiers mp3/ogg :)
    grace a lui, je peux me faire en 3 sec chrono une playlist selon des mots clefs judicieusement choisis, voire sauter directement au pif sur la chanson de mon choix sur xmms (sans passer par la boite de dialogue jump)..

    Si ca interesse qqn, je suis tout a fait partant pour le lui refiler :-)
    (quelques modifs au niveau de la configuration pour l'acces a sa base de donner et ca devrait fonctionner nickel).

    Sinon pour le nettoyage, j'ai aussi recours à un alias dans mon zshrc :

    alias rt='find . -type f \( -name "*~" -o -name ".*~" -o -name "#*#" \) -exec rm -vf \{\} \;'

    je trouve ca infiniment plus propre que les dizaines de rm recursifs que j'ai pu lire çà et là :-/
    rien que le 'find -type f' me permet d'eviter la désagréable surprise d'effacer tout mon dossier personnel.
  • # 21get.sh

    Posté par  . Évalué à 1.

    Moi dans mon ~/bin y'a quelques petits scripts plus ou moins utiles, mais surtout mon petit script bricolé avec amour pour enregistrer ma radio prefferée. Fonctionne en automatique via cron ou en interactif, oui madame !

    Bref c'est pas grand chose mais je suis fort content de l'avoir ce truc qui ne sert qu'a moi, quand je le vois je sais que je suis vraiment à la maison :)
  • # :)

    Posté par  . Évalué à 3.

    Pour ma part, quelques petits scripts qui m'automatisent un peu la vie. Faire le café, la vaisselle, plier le linge... nan j'déconne, c'est plutôt des trucs bricolés à la main pour monter des répertoires réseaux (tout en interface user friendly, zenity powah) sur des machines Windows, d'autres pour faire des remontées d'alertes par SMS (sms_client powah) ou encore des autres machins plus ou moins inutiles de la même trempe.
  • # cvsdiff

    Posté par  (site web personnel) . Évalué à 2.

    Mon ~/bin contient entre autres cvsdiff car je n'ai pas trouvé de commande cvs pour faire cela. Si vous en connaissez une d'ailleurs, je serais intéressé (j'aurais un peu la honte de l'avoir fait mais au moins je serai moins con).

    Il s'agit d'un script présentant les résultat d'un rdiff avec un log en plus (c'est a dire, changement et aussi texte de log du changement, pour tout un module).

    http://www.zarb.org/~gc/t/cvsdiff(...)
    • [^] # Re: cvsdiff

      Posté par  (site web personnel) . Évalué à 2.

      Oulah.
      tu as pas dû lire la page man de CVS :

      cvs diff -D "yesterday" -D "now"

      sachant que tu peux meme passer l'option -u et ce genre de choses ;)
      • [^] # Re: cvsdiff

        Posté par  (site web personnel) . Évalué à 2.

        Il s'agit d'un script présentant les résultat d'un rdiff avec un log en plus (c'est a dire, changement et aussi texte de log du changement, pour tout un module).

        T'es sûr que c'est pareil ?
        • [^] # Re: cvsdiff

          Posté par  (site web personnel) . Évalué à 2.

          dans ce cas tu as aussi
          cvs log
          et mieux:
          man cvs

          à partir du moment où tu as fait un shellscript a la main, forcement que son comportement risque de faire un peu plus de choses.
          mais ce que je lis des fonctionnalités de ton script, tu peux TOUT faire avec la commande cvs.
          enfin tu peux continuer a utiliser ton script mais bon :-)

          c'est tout, quoi.
          • [^] # Re: cvsdiff

            Posté par  (site web personnel) . Évalué à 2.

            ben vas-y montre comment tu fais avec la commande cvs.

            ca commence a me brouter que tu continues d'argumenter sans prendre la peine de regarder ce que le script fait, et quelles commandes il faudrait faire pour avoir l'equivalent. tu connais seulement rdiff ? tu sais comment on utilise cvs log ?
            • [^] # Re: cvsdiff

              Posté par  (site web personnel) . Évalué à 2.

              Te fâche pas...

              En fait, et je tiens à m'en excuser, je partais du principe que les fichiers intégraient dans leurs headers leur propre log, ce qui n'est pas toujours le cas (et même très loin).

              Ceci dit non, je ne connais pas rdiff, et même la lecture du man ne m'explique pas concrètement son intérêt.

              Enfin bref, il n'en reste pas moins que ton script permet d'exploiter des informations que tu peux obtenir, à la base, avec la commande cvs. Exactement comme mon script "music" qui me permet de dire quelle chanson est lue actuellement par xmms, alors que je peux tres bien l'obtenir avec xmms_shell.
              Je sais pas si je suis assez clair pour toi :-/
              • [^] # Re: cvsdiff

                Posté par  (site web personnel) . Évalué à 2.

                Ben évidemment qu'il permet ça, il appelle cvs justement pour les obtenir ces informations. Seulement CVS n'a pas de commande pour faire un rdiff avec logs. C'est le but du script de le faire. Franchement t'es pas normal toi..
  • # site web

    Posté par  . Évalué à 2.

    moi j'essaye de mettre tout ca régulierement sur mon site web:

    http://tardyp.free.fr/config(...)

    comme ca, si je dépanne un pote, je peux avoir en 2 sec mes outils.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.