Quel est le scénario le plus utile que vous avez écrit pour la vie quotidienne?

voix
124

Je me demandais ce que les gens petits scripts / programmes ici ont écrit une aide à sa vie quotidienne (aka non reliée au travail).

Tout ce qui va, révolutionnaire ou non. Pour moi, en ce moment, il est un petit script python pour calculer le rythme en cours d'exécution certaine distance et le temps écoulé.

Créé 09/10/2008 à 15:51
source utilisateur
Dans d'autres langues...                            


78 réponses

voix
9

alias dir = 'ls -al' est mon script favori préféré.

Créé 09/10/2008 à 15:53
source utilisateur

voix
14

Mon scénario de sauvegarde .cmd. Il fonctionne tous les soirs, et les noms des fichiers de sauvegarde selon le jour de la semaine sur mon serveur. Une semaine complète de sauvegardes m'a sauvé (et ma famille) à plusieurs reprises:

:: sauvegarde args:
:: / V Vérifier? (Oui Non)
:: / R Limiter l'accès au propriétaire? (Oui Non)
:: / RS stockage amovible? (Oui Non)
:: / HC La compression matérielle (on / off)
:: / M Type de sauvegarde (normal / copie / incrémentielle / différentielle / jour)
:: / L Log type de fichier (f / s / n)
:: / D "Description"
:: / J "Job-name"
:: / F « Nom de fichier »

SETLOCAL

:: veiller à ce que les lecteurs réseau sont montés
APPEL C: \ bat \ configs \ MapShares-home.cmd
écho sur

est aujourd'hui fixé =% DATE: ~ 0,3%
si% aujourd'hui% == Mon jeu hier = 0Sunday
si% aujourd'hui% == mar ensemble hier = 1Monday
si% aujourd'hui% == mer hier = 2Tuesday fixé
si% aujourd'hui% == jeu ensemble hier = 3Wednesday
si% aujourd'hui% == ven ensemble hier = 4Thursday
si%% aujourd'hui == Sat hier = 5Friday fixé
si%% aujourd'hui == Sun set hier = 6Saturday

fixer configsDir =% ~ dp0
définir storepath = C: \ mybackups

:: (par exemple: les fichiers C lundi)
définir title =% jeu hier% de sauvegarde


echo% DATE%% TIME%% Titre%> "% storepath% \% hier% _backup.log"

APPEL BackupConfigs.bat

:: Créer un nouveau fichier BKF
appeler C: \ WINDOWS \ system32 \ ntbackup.exe sauvegarde ^
    "@% ConfigsDir% \ daily.bks" ^
    / V: oui / R: non / RS: no / HC: off / M normal / L: s ^
    / D "% title%" ^
    / J "% title% .job" ^
    / F "% storepath% \% hier% Bkf" ^
    >> "% storepath% \% hier% _backup.log"

echo% DATE%% TIME% Terminé >> "% storepath% \% hier% _backup.log"

copie "% storepath% \% hier% Bkf" "V: \ Backups \ NEPTUNE"

APPEL C: \ bat \ nettoyage temps.bat

defrag -v C:> "% storepath% \% hier% _defrag.log"

:: répertoires de sauvegarde d'affichage
commencer / D "C: \ bat \ Backups \" checkbkf.bat

ENDLOCAL

::pause

Créé 09/10/2008 à 15:53
source utilisateur

voix
2

Un petit programme barre des tâches qui extrait chaque constante code d'erreur d'un JavaDoc tiers et laissez-moi recherche le nom constant pour un code d'erreur donné. De plus, ajoutez toutes les conversions de HEX en décimal, etc.

Cela revient beaucoup quand on travaille dans le débogueur - vous rentrerez le code d'erreur, mais le code de suivi retour au texte est une douleur énorme. Il est encore plus fréquent lorsque l'on travaille avec le logiciel qui encapsule les méthodes natives, les appels OS, ou COM ... souvent, les constantes sont copiées directement à partir d'un fichier d'en-tête d'erreur sans contexte supplémentaire, des valeurs répétées et pas énumérations.

Créé 09/10/2008 à 15:54
source utilisateur

voix
11

Un grattoir HTML fileté pour télécharger tous les sous-titres disponibles pour les séries / films à partir d'un site qui est une douleur à utiliser (vous devez cliquer comme 4 fois après une recherche pour accéder à la page de téléchargement, pour afficher plus d'annonces). Maintenant, je viens de mettre les critères de recherche et de téléchargement de presse.

Créé 09/10/2008 à 15:54
source utilisateur

voix
14

« Backup.sh » qui goudrons le contenu d'un répertoire et il envoie à mon compte gmail.

Créé 09/10/2008 à 15:55
source utilisateur

voix
105

Ma clé o est tombé sur mon ordinateur portable; donc je l'ai écrit dans 200 MS un programme qui remplace deux frappes « 0 » de l'autre comme o, deux frappes « 0 » dans 700 MS de l'autre en tant que 0 et ignorer le reste; pour que je puisse utiliser mon ordinateur portable avant que je le fais, remplacer le clavier.

Sensationnel; Je ne savais pas que ce serait si populaire: p

Quant à savoir comment - Microsoft expose une fonctionnalité peu API bien appelé « crochets ».

http://msdn.microsoft.com/en-us/library/ms644959(VS.85).aspx#wh_keyboard_llhook

En utilisant ce crochet; Je suis capable d'écrire un « filtre » qui a fait ce que je devais à faire (indice: si vous revenez 1 avec vos fenêtres de rappel ne traitera pas la combinaison de touches).

La raison pour laquelle je sais à ce sujet est en fait pas parce que je rédigeais un keylogger - mais parce que je l' ai écrit un smiler de programme Synergy il y a un certain temps.

Et oui. J'ai écrit un autre programme qui a troqué les touches alphanumériques avec une clé alphanumérique aléatoire et oui; il était vraiment drôle: D

Créé 09/10/2008 à 15:56
source utilisateur

voix
7
#! /bin/bash
# check to see if site is up
#   if it is, don't worry
#   if it's down, restart apache after get a process listing
#
# v.1 Warren M Myers - initial stab
#     31 Aug 06
#

ERRCOD='7'
WHEN=`date +%d%b%y`
REPT="~/psaux.$WHEN.txt"
STARS='********************'

curl -I http://www.shodor.org > /var/tmp/curlret.txt

if [ "$?" = "$ERRCOD" ]; then
    # return was unable to connect to host: save ps -aux; mail report
    ps -aux > $REPT
    echo $STARS
    echo 'curl return results'
    echo
    cat curlret.txt
    echo
    echo $STARS
    echo 'ps -aux results'
    cat $REPT
    echo
    echo $STARS
    echo 'restarting apache'
    /etc/init.d/apache2 restart
    echo 'apache restarted'
    echo
    echo "ps -aux results saved in $REPT"
fi

rm -f /var/tmp/curlret.txt
Créé 09/10/2008 à 15:56
source utilisateur

voix
4

Divers Raccourcis vers « net start » et « net stop » commandes afin que je puisse démarrer et arrêter les services sans avoir à entrer dans la console MMC Services

Créé 09/10/2008 à 15:58
source utilisateur

voix
8

fichier de masse renommage par glisser-déposer.

Il y a des siècles que j'ai fait un petit VBScript qui accepte un RegEx et remplace les noms de fichiers en conséquence. Vous simplement laisser tomber un tas de fichiers ou des dossiers sur elle. J'ai trouvé que très utile tout au long des années.

gist.github.com/15824 (Attention, les commentaires sont en allemand)

Créé 09/10/2008 à 15:59
source utilisateur

voix
1

Un backup.sh similaire pour chaque projet, que goudrons et gzip juste la source, se déplace dans un répertoire instantané et étiquettes avec horodatage: projet-mmjjaa-hhmmss. Utile pour le codage entre commits.

Créé 09/10/2008 à 16:00
source utilisateur

voix
1

J'ai eu un script de contrôle de version qui prendrait un répertoire comme argument et copier récursive tous les fichiers à ../dirname/DATE/TIME/

De toute évidence, il était une façon merdique de faire des choses, mais il était à portée de main avant d'installer un boîtier de contrôle réel de version.

Créé 09/10/2008 à 16:00
source utilisateur

voix
5

Un script shell pour effectuer des sauvegardes en rotation en utilisant rsync. Il prend également en charge l'exécution de programmes d'enfants arbitraires pour soutenir d'autres activités pré-sauvegarde (téléchargement de signets délicieux, par exemple).

http://gist.github.com/6806

Créé 09/10/2008 à 16:01
source utilisateur

voix
1

appelés assignIisSite_ToAppPool.js

Vraiment utile lorsque vous voulez vous assurer que certaines ressources sont correctement mises en correspondance.

:)

SetAppPool("W3SVC/1059997624/Root", "MyAppPool");



function SetAppPool(webId, appPoolName)
{
var providerObj=GetObject("winmgmts:/root/MicrosoftIISv2");
var vdirObj=providerObj.get("IIsWebVirtualDirSetting='" + webId + "'");
vdirObj.AppPoolId=appPoolName;
vdirObj.Put_();
}
Créé 09/10/2008 à 16:02
source utilisateur

voix
2

Un script qui passe toutes les heures pour recycler mes filtres anti-spam basée deux dossiers IMAP où la durée et le jambon sont mis.

#!/bin/sh
FNDIR="train-as-spam"
FPDIR="train-as-ham"

for dir in /home/*/.maildir
do
    cd "${dir}"
    USER=`stat -c %U .`

    SRCDIR="${dir}/.${FNDIR}"
    if [ ! -d ${SRCDIR} ]; then
        echo no "${SRCDIR}" directory
    else
        cd "${SRCDIR}/cur"
        ls -tr | while read file
        do
            if grep -q "^X-DSPAM" "${file}"; then
                SOURCE="error"
            else
                SOURCE="corpus"
            fi

            dspam --user "${USER}" --class=spam --source="${SOURCE}" --deliver=innocent,spam --stdout < "${file}" > "../tmp/${file}"
            mv "../tmp/${file}" "${dir}/new/${file%%:*}" && rm "${file}"
        done
    fi

    SRCDIR="${dir}/.${FPDIR}"
    if [ ! -d ${SRCDIR} ]; then
        echo no "${SRCDIR}" directory
    else
        cd "${SRCDIR}/cur"
        ls -tr | while read file
        do
            if grep -q "^X-DSPAM" "${file}"; then
                SOURCE="error"
            else
                SOURCE="corpus"
            fi

            dspam --user "${USER}" --class=innocent --source="${SOURCE}" --deliver=innocent,spam --stdout < "${file}" > "../tmp/${file}"
            mv "../tmp/${file}" "${dir}/new/${file%%:*}" && rm "${file}"
        done
    fi

done
Créé 09/10/2008 à 16:10
source utilisateur

voix
1
#!/usr/bin/perl
use strict;
use utf8;
use Encode;
use File::Find;
binmode STDOUT, ':utf8';
sub orderly {
    my ($x, $y) = @_{$a, $b};
    if (my $z = $x <=> $y) {return $z}
    $x = length $a;
    $y = length $b;
    my $z = $x < $y ? $x : $y;
    if (substr($a, 0, $z) eq substr($b, 0, $z)) {
        return $y <=> $x;
    }
    else {
        return $a cmp $b;
    }
}
my %conf = map +($_ => 0), split //, 'acsxL';
sub Stat {$conf{L} ? lstat : stat}
my @dirs = ();
while (defined ($_ = shift)) {
    if ($_ eq "--") {push @dirs, @ARGV; last}
    elsif (/^-(.*)$/s) {
        for (split //, $1) {
            if (!exists $conf{$_} or $conf{$_} = 1 and $conf{a} and $conf{s}) {
                print STDERR "$0 [-a] [-c] [-s] [-x] [-L] [--] ...\n";
                exit 1;
            }
        }
    }
    else {push @dirs, $_}
}
s/\/*$//s for @dirs;  # */ SO has crappy syntax highlighting
@dirs = qw(.) unless @dirs;
my %spec = (follow => $conf{L}, no_chdir => 1);
if ($conf{a}) {
    $spec{wanted} = sub {
        Stat;
        my $s = -f _ ? -s _ : 0;
        decode(utf8 => $File::Find::name) =~ /^\Q$dirs[0]\E\/?(.*)$/s;
        my @a = split /\//, $1;
        for (unshift @a, $dirs[0]; @a; pop @a) {
            $_{join "/", @a} += $s;
        }
    };
}
elsif ($conf{s}) {
    $spec{wanted} = sub {
        Stat;
        $_{$dirs[0]} += -f _ ? -s _ : 0;
    };
}
else {
    $spec{wanted} = sub {
        Stat;
        my $s = -f _ ? -s _ : 0;
        decode(utf8 => $File::Find::name) =~ /^\Q$dirs[0]\E\/?(.*)$/s;
        my @a = split /\//, $1;
        ! -d _ and pop @a;
        for (unshift @a, $dirs[0]; @a; pop @a) {
            $_{join "/", @a} += $s;
        }
    };
}
if ($conf{x}) {
    $spec{preprocess} = sub {
        my $dev = (Stat $File::Find::dir)[0];
        grep {$dev == (Stat "$File::Find::dir/$_")[0]} @_;
    };
}
while (@dirs) {
    find(\%spec, $dirs[0] eq "" ? "/" : $dirs[0]);
    $_{""} += $_{$dirs[0]} if $conf{c};
    shift @dirs;
}
$_{$_} < 1024 ** 1 ? printf "%s «%-6.6sB» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 0), $_ :
$_{$_} < 1024 ** 2 ? printf "%s «%-6.6sK» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 1), $_ :
$_{$_} < 1024 ** 3 ? printf "%s «%-6.6sM» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 2), $_ :
$_{$_} < 1024 ** 4 ? printf "%s «%-6.6sG» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 3), $_ :
$_{$_} < 1024 ** 5 ? printf "%s «%-6.6sT» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 4), $_ :
$_{$_} < 1024 ** 6 ? printf "%s «%-6.6sP» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 5), $_ :
$_{$_} < 1024 ** 7 ? printf "%s «%-6.6sE» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 6), $_ :
$_{$_} < 1024 ** 8 ? printf "%s «%-6.6sZ» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 7), $_ :
                     printf "%s «%-6.6sY» %s\n", $_{$_}, sprintf("%6.6f", "$_{$_}" / 1024 ** 8), $_
    for grep {$_{$_} > 0} sort orderly keys %_;

Je l' enregistre dans ~/bin/dush, il agit comme une sorte de du -h/ du | sort -nhybride: les tris et donne la taille lisible par l' homme à la fois. Très utile pour trouver ce qui prend de l' espace disque.

Dans la même veine,

#!/usr/bin/perl
$t = 1;
%p = map {$_ => ($t *= 1024)} qw(K M G T P E Z Y);
$t = 4707319808;
if (@ARGV) {
    if (($_ = shift) =~ /^-*dvd/i) {$t = 4707319808}
    elsif (/^-*cd[^w]*$/i) {$t = 737280000}
    elsif (/^-*cd/i) {$t = 681984000}
    elsif (/^-*([\d.]+)([kmgtpezy])/i) {$t = $1 * ($p{"\U$2"} || 1)}
    elsif (/^-*([\d.]+)/) {$t = $1}
    else {unshift @ARGV, $_}
}
($q, $r, $s) = (0, ($ENV{COLUMNS} || 80) - 13, $t);
while (<>) {
    chomp, stat;
    unless (-e _) {
        print STDERR "$_ does not exist\n";
        next;
    }
    if (($s += -s _) > $t) {
        $s && $s < $t && printf "-%7s %s\n",
            sprintf("%2.3f%%", 100 * ($t - $s) / $t), $t - $s;
        printf "-----------%d%*s\n", ++$q, $r, "-" x $r;
        $s = -s _;
    }
    printf "%8s %s\n",
        sprintf("%3.3f%%", $s * 100 / $t),
        /.{4}(.{$r})$/s ? "...$1" : $_;
}
$s && $s < $t && printf "-%7s %s\n",
    sprintf("%2.3f%%", 100 * ($t - $s) / $t), $t - $s;

Je l' enregistrer comme ~/bin/fit. Quand je suis l' archivage d' un tas de fichiers, je cours ls | fitou ls | fit -cdrwpour aider à déterminer si elle va sur un DVD / CD / CDRW, et où les séparer si elles ne le font pas.

Créé 09/10/2008 à 16:21
source utilisateur

voix
7

Un script Greasemonkey pour ajouter une « presse qui touche beaucoup » boîte de contrôle à un jeu en ligne.

Créé 09/10/2008 à 16:41
source utilisateur

voix
2

J'utilise procmail pour trier mes e - mails entrants à différents dossiers. Parce que j'ai du mal à se souvenir de la syntaxe procmailrc, j'utilise m4 comme préprocesseur. Voici comment mon procmailrc commence (ce n'est pas encore le script):

divert(-1)
changequote(<<, >>)
define(mailinglistrule, 
<<:0:
* $2
Lists/$1
>>)
define(listdt, <<mailinglistrule($1,^Delivered-To:.*$2)>>)
define(listid, <<mailinglistrule($1,^List-Id:.*<$2>)>>)
divert# Generated from .procmailrc.m4 -- DO NOT EDIT

Ceci définit deux macros pour les listes de diffusion, donc par exemple listdt (foo, foo@example.com) se développe pour

:0:
* ^Delivered-To:.*foo@example.com
Lists/foo

ce qui signifie que les courriels avec un Delivered-To-tête contenant foo@example.com doit être mis dans le dossier Listes / foo. Elle assure également le fichier traité pour commencer un commentaire qui me conseille de ne pas modifier ce fichier directement.

Maintenant, franchement, m4 me fait peur: si je redéfinis accidentellement une macro et Procmail jeter tout mon email, ou quelque chose comme ça? C'est pourquoi j'ai un script, que j'appelle update-procmailrc, qui me montre au format diff comment mon procmailrc va changer. Si le changement est à seulement quelques lignes et ressemble à peu près à ce que je voulais, je ne peux approuver heureusement, mais s'il y a d'énormes modifications dans le fichier, je sais que regarder mes modifications plus attentivement.

#! /bin/sh

PROCMAILRC=.procmailrc
TMPNAM=.procmailrc.tmp.$$
cd $HOME
umask 077
trap "rm -f $TMPNAM" 0

m4 < .procmailrc.m4 > $TMPNAM
diff -u $PROCMAILRC $TMPNAM

echo -n 'Is this acceptable? (y/N) '
read accept

if [ -z "$accept" ]; then
    accept=n
fi

if [ $accept = 'y' -o $accept = 'Y' ]; then
    mv -f $TMPNAM $PROCMAILRC && \
    chmod 400 $PROCMAILRC && \
    echo "Created new $PROCMAILRC"
    if [ "$?" -ne 0 ]; then
        echo "*** FAILED creating $PROCMAILRC"
    fi
else
    echo "Didn't update $PROCMAILRC"
fi

Le script n'a pas encore empêché toute catastrophe e-mail, mais il m'a fait moins anxieux à changer mon procmailrc.

Créé 09/10/2008 à 16:41
source utilisateur

voix
35

J'ai un script Python qui exécute automatiquement lorsque je branche mon appareil photo numérique.

Elle copie toutes les images au large de la carte sur l'appareil photo, les sauvegarde et les télécharge ensuite sur Flickr.


La pièce de téléchargement vers Flickr vient de uploadr.py (que je ne peux pas prendre le crédit pour).

Voici le code Python pour décharger l'appareil photo. Il récursif par SRCDIR et les chaque image avec la date et l'heure avant de copier les images à DESTDIR.

#!/usr/bin/python

import os
import string
import time
import shutil

###################################################
__SRCDIR__ = "/mnt/camera"
__DESTDIR__ = "/home/pictures/recent"
###################################################
def cbwalk(arg, dirname, names):
    sdatetime = time.strftime("%y%m%d%H%M")
    for name in names:
        if string.lower(name[-3:]) in ("jpg", "mov"):
            srcfile = "%s/%s" % (dirname, name)
            destfile = "%s/%s_%s" % (__DESTDIR__, sdatetime, name)
                    print destfile
            shutil.copyfile( srcfile, destfile)
###################################################
if __name__ == "__main__":
    os.path.walk(__SRCDIR__, cbwalk, None)
Créé 09/10/2008 à 16:43
source utilisateur

voix
13

Je suis un pilote privé. J'ai écrit quelques scripts qui obtiennent des informations météorologiques pour les aéroports locaux de aviationweather.gov. Ils ont été utiles pour une réponse rapide à la question « Est-ce aujourd'hui une bonne journée pour voler? »

Créé 09/10/2008 à 16:43
source utilisateur

voix
2

Un script qui lit un fichier de configuration dans le répertoire courant, se connecte à un compte FTP, et uploads tous les fichiers qui ont changé depuis la dernière fois qu'il a été exécuté. Très pratique pour les clients qui utilisent des services d'hébergement partagé et FTP est ma seule option pour l'accès aux fichiers.

http://lucasoman.com/code/updater

Créé 09/10/2008 à 16:45
source utilisateur

voix
3

J'ai écrit une application simple VB qui a suivi les numéros de jeu de Freecell j'avais joué et terminé avec succès, et toujours lancé avec une graine différente.

.... à partir de 1 ....

Nombre maximum de jeu est 65k. Plutôt triste après plus de 5 ans, je suis toujours en seulement les centaines. Mais au moins je sais que je ne l'ai jamais joué la même main deux fois!

** Postscript - c'est la seule application VB que j'ai jamais écrit. J'ai couru crier retour à C ++ ....

Créé 09/10/2008 à 16:48
source utilisateur

voix
1

J'utilise un programme DOS qui erreurs si elle est passé une certaine date. Je viens de regarder le fichier batch qu'il utilisait pour démarrer et changé de sorte qu'il faudrait d'abord changer la date à 2000, puis exécutez le programme. Sur la sortie, il a changé la date du programme à ce qu'elle était avant qu'il ne soit changé.

Créé 09/10/2008 à 17:07
source utilisateur

voix
1

J'ai écrit une tâche cron pour saisir l'adresse IP de mon routeur et ftp papas à un endroit sûr alors quand il avait besoin d'aide que je pouvais de bureau à distance et fixer son comp.

Créé 09/10/2008 à 17:19
source utilisateur

voix
68

Bouton Super réinitialisation à distance.
Un rack de super spéciale du matériel de simulation (Backin les jours où une salle pleine de caisses a fait moins de VME votre GPU) qu'un utilisateur de l'autre côté du monde échouerait dans les premières heures du matin. Il a fallu une heure pour entrer dans le laboratoire et par la sécurité.

Mais nous n'étions pas autorisés à se connecter au super spéciale contrôleur ou modifier le matériel. La solution était un ancien poste de travail décembre avec une imprimante à matrice de points Epson, ruban à une règle en plastique au bouton d'alimentation du papier, placer l'imprimante près du bouton de remise à zéro.
Connectez-vous à WS en tant qu'utilisateur normal (pas de racine autorisée, tous les ports externes verrouillé), imprimer un document avec 24blank lignes - qui pivotent le bouton d'alimentation du papier et la règle se pressaient sur la remise à zéro sur la super spéciale du matériel.

Créé 09/10/2008 à 17:27
source utilisateur

voix
10

Un script perl qui écorche le Craigslist local, selon certaines catégories, dans une DB SQL que je peux ensuite interroger contre.

V2 de cette mise à jour de la base de données avec une minuterie et me avertit si j'ai un match sur l'une des requêtes, me fournissant essentiellement avec un agent d'arrière-plan CL.

Créé 09/10/2008 à 17:49
source utilisateur

voix
1

En tant que tâche planifiée, de copier tous les fichiers modifiés / nouvelles du disque entier d: à disque de sauvegarde g :, et pour enregistrer les fichiers copiés. Il me aide à garder une trace de ce que je faisais quand, aussi bien.

justdate est un petit programme affiche la date et l'heure à l'écran

g:

cd \ drive_d

ré:

cd \

Type g: \ backup_d.log >> g: \ logs \ backup_d.log

echo ==========================================> g: \ backup_d.log

d: \ mu \ bmutil \ justdate >> g: \ backup_d.log

xcopy / s / j / y / c . g: \ drive_d >> g: \ backup_d.log

Créé 09/10/2008 à 18:00
source utilisateur

voix
4

Une petite application qui a laissé un clic (ou double-clic) tous les « X » pour ms de temps « Y ». Plus besoin de cet oiseau potable de travailler à la centrale nucléaire! ;)

Créé 09/10/2008 à 18:04
source utilisateur

voix
1


Pour ceux d' entre nous qui ne se souviennent pas où nous sommes sur unix, ou qui SID que nous utilisons.
Pop dans votre .profile.

<br>function CD
<br>{
<br>   unalias cd
<br>   command cd "$@" && PS1="\${ORACLE_SID}:$(hostname):$PWD> "
<br>   alias cd=CD
<br>}
<br>
alias cd=CD
Créé 09/10/2008 à 18:06
source utilisateur

voix
3

Je suis un script qui extrait les tags ID3 code les nouvelles chansons dans un certain format, et ajoute ensuite les selon les balises à ma bibliothèque musicale.

300 lignes de python. La plupart du temps parce que boiteux ne peut pas traiter avec des étiquettes dans un joli mode.

Créé 09/10/2008 à 20:22
source utilisateur

voix
62

Sous Windows XP, j'ai mis un travail à exécuter cette commande par jour dans C: \

dir /s /b * > dirlist.txt

Cette liste le chemin complet de tous les fichiers du lecteur C. Ensuite , chaque fois que je dois trouver un fichier, je peux utiliser findstr. Il bat en utilisant l' Explorateur Windows Search , car il permet de faire correspondre l' expression régulière sur tout le chemin. Par exemple:

findstr ".jpg" dirlist.txt
findstr /i /r "windows.*system32.*png$" dirlist.txt

Ceci est une solution très rapide à mettre en place, et bien si vous vous retrouvez avec une nouvelle installation de Windows et aucune connexion Internet.

Si vous devez effectuer une recherche dans certains types de fichiers pour un motif, la première liste tous les fichiers que vous devez vérifier, puis rechercher en eux. Par exemple, pour trouver un programme Java ou Python qui se déplie d'une image que vous pouvez faire ceci:

findstr "\.java \.py" dirlist.txt > narrowlist.txt
findstr /i /r /f:narrowlist.txt "flip.*image"
Créé 09/10/2008 à 20:53
source utilisateur

voix
2

J'ai écrit un script pour le formatage des fichiers source C qui Retraits automatiquement le code à l'aide d'une combinaison appropriée de caractères de tabulation et de l'espace, de sorte que le fichier apparaît correct quel que soit le réglage de l'onglet de votre éditeur est.

Le code source est ici .

Créé 09/10/2008 à 21:10
source utilisateur

voix
1

Eh bien en 2005 je Gentoo Linux et je beaucoup un petit programme appelé genlop pour me montrer l'histoire de ce que j'ai sorti (installé) sur ma boîte de gentoo. Eh bien, pour simplifier mon travail, je l'ai écrit pas un petit script python mais un grand, mais à ce moment-là que je viens de commencer à utiliser python:

    #!/usr/bin/python
##############################################
# Gentoo emerge status              #   
# This script requires genlop,           #   
# you can install it using `emerge genlop`.  #
# Milot Shala <milot@mymyah.com>        #
##############################################

import sys
import os
import time

#colors
color={}
color["r"]="\x1b[31;01m"
color["g"]="\x1b[32;01m"
color["b"]="\x1b[34;01m"
color["0"]="\x1b[0m"


def r(txt):
   return color["r"]+txt+color["0"]
def g(txt):
   return color["g"]+txt+color["0"]
def b(txt):
   return color["b"]+txt+color["0"]

# View Options
def view_opt():   

   print
   print
   print g("full-info - View full information for emerged package")
   print g("cur - View current emerge")
   print g("hist - View history of emerged packages by day")
   print g("hist-all - View full list of history of emerged packages")
   print g("rsync - View rsync history")
   print g("time - View time for compiling a package")
   print g("time-unmerged - View time of unmerged packages")
   print
   command = raw_input(r("Press Enter to return to main "))
   if command == '':
      c()
      program()
   else:
      c()
      program()

# system command 'clear'
def c():
   os.system('clear')


# Base program
def program():
   c()
   print g("Gentoo emerge status script")
   print ("---------------------------")
   print

   print ("1]") + g(" Enter options")
   print ("2]") + g(" View options")
   print ("3]") + g(" Exit")
   print
   command = input("[]> ")


   if command == 1:   
      print
      print r("""First of all  you must view options to know what to use, you can enter option name ( if you know any ) or type `view-opt` to view options.""")
      print
      time.sleep(2)
      command = raw_input(b("Option name: "))
      if (command == 'view-opt' or command == 'VIEW-OPT'):
         view_opt()


      elif command == 'full-info':
         c()
         print g("Full information for a single package")
         print ("-------------------------------------")
         print
         print b("Enter package name")
         command=raw_input("> ")
         c()
         print g("Full information for package"), b(command)
         print ("-----------------------------------")
         print
         pack=['genlop -i '+command]
         pack_=" ".join(pack)
         os.system(pack_)
         print
         print r("Press Enter to return to main.")
         command=raw_input()
         if command == '':
            c()
            program()

         else:
            c()
            program()


      elif command == 'cur':
         if command == 'cur':
            c()
            print g("Current emerge session(s)")
            print ("-------------------------")
            print
            print b("Listing current emerge session(s)")
            print
            time.sleep(1)
            os.system('genlop -c')
            print
            print r("Press Enter to return to main.")
            command = raw_input()
            if (command == ''):
               c()
               program()

            else:
               c()
               program()


      elif command == 'hist':
         if command == 'hist':
            c()
            print g("History of merged packages")
            print ("---------------------------")
            print
            time.sleep(1)
            print b("Enter number of how many days ago you want to see the packages")
            command = raw_input("> ")
            c()
            print g("Packages merged "+b(command)+ g(" day(s) before"))
            print ("------------------------------------")
            pkg=['genlop --list --date '+command+' days ago']
            pkg_=" ".join(pkg)
            os.system(pkg_)
            print
            print r("Press Enter to return to main.")
            command = raw_input()
            if command == '':
               c()
               program()

            else:
               c()
               program()


      elif command == 'hist-all':
            c()
            print g("Full history of merged individual packages")
            print ("--------------------------------------")
            print
            print b("Do you want to view individual package?")
            print r("YES/NO?")
            command = raw_input("> ")
            print
            if (command == 'yes' or command == 'YES'):
               print g("Enter package name")
               command = raw_input("> ")
               print
               pkg=['genlop -l | grep '+command+ ' | less']
               pkg_=" ".join(pkg)
               os.system(pkg_)
               print
               print r("Press Enter to return to main")
               command = raw_input()
               if command == '':
                  c()
                  program()
               else:
                  c()
                  program()

            elif (command == 'no' or command == 'NO'):
               pkg=['genlop -l | less']
               pkg_=" ".join(pkg)
               os.system(pkg_)
               print
               print r("Press Enter to return to main")
               command = raw_input()
               if command == '':
                  c()
                  program()

               else:
                  c()
                  program()

            else:
               c()
               program()


      elif command == 'rsync':
         print g("RSYNC updates")
         print
         print
         print
         print b("You can view rsynced time by year!")
         print r("Do you want this script to do it for you? (yes/no)")
         command = raw_input("> ")
         if (command == 'yes' or command == 'YES'):
            print
            print g("Enter year i.e"), b("2005")
            print
            command = raw_input("> ")
            rsync=['genlop -r | grep '+command+' | less']
            rsync_=" ".join(rsync)
            os.system(rsync_)
            print
            print r("Press Enter to return to main.")
            c()
            program()
         elif (command == 'no' or command == 'NO'):
            os.system('genlop -r | less')
            print
            print r("Press Enter to return to main.")
            command = raw_input()
            if command == '':
               c()
               program()

            else:
               c()
               program()

      elif command == 'time':
         c()
         print g("Time of package compilation")
         print ("---------------------------")
         print
         print

         print b("Enter package name")
         pkg_name = raw_input("> ")
         pkg=['emerge '+pkg_name+' -p | genlop -p | less']
         pkg_=" ".join(pkg)
         os.system(pkg_)
         print
         print r("Press Enter to return to main")
         time.sleep(2)
         command = raw_input()
         if command == '':
            c()
            program()

         else:
            c()
            program()


      elif command == 'time-unmerged':
         c()
         print g("Show when package(s) is/when is unmerged")
         print ("----------------------------------------")
         print

         print b("Enter package name: ")
         name = raw_input("> ")
         pkg=['genlop -u '+name]
         pkg_=" ".join(pkg)
         os.system(pkg_)
         print
         print r("Press Enter to return to main")
         time.sleep(2)
         command = raw_input()
         if command == '':
            c()
            program()

         else:
            c()
            program()

      else:
         print
         print r("Wrong Selection!")
         time.sleep(2)
         c()
         program()


   elif command == 2:
      view_opt()
      command = raw_input(r("Press Enter to return to main "))
      if command == '':
         c()
         program()
      else:
         c()
         program()


   elif command == 3:
      print
      print b("Thank you for using this script")
      print
      time.sleep(1)
      sys.exit()

   else:
      print
      print r("Wrong Selection!")
      time.sleep(2)
      c()
      program()
      command = ("")


program()
Créé 09/10/2008 à 22:28
source utilisateur

voix
1

Un script python qui fait un filewalk et imprime mon arborescence de répertoires classés par l'utilisation du disque.

Créé 10/10/2008 à 04:38
source utilisateur

voix
2

Le plus utile? Mais il y a tellement de ...

  1. d.cmd contient: @dir / ad / sur
  2. dd.cmd contient: @dir / ad / sur
  3. x.cmd contient: @exit
  4. s.cmd contient: @Start.
  5. sx.cmd contient: @Start. & Sortie
  6. ts.cmd contient ce qui suit, ce qui me permet de me connecter correctement à la session de la console d'une autre machine sur RDP, peu importe si je suis sur Vista SP1 ou non.

    @Écho off

    ver | trouver « 6.0.6001 »

    si ERRORLEVEL 0 sinon ErrorLevel 1 (set TSCONS = admin) AUTRE définir TSCONS = console

    écho commande d'émission: mstsc /% TSCONS% / v% 1

    démarrer mstsc /% TSCONS% / v% 1

(Désolé pour la mise en forme bizarre, apparemment, vous ne pouvez pas avoir plus d'un échantillon de code par réponse?)

A partir d'une invite de commande, je vais naviguer à l'endroit où mon dossier de solution VS est, puis je veux l'ouvrir, mais je suis trop paresseux pour taper blah.sln et appuyez sur Entrée. Alors, je l'ai écrit sln.cmd:

@echo off
if not exist *.sln goto csproj
for %%f in (*.sln) do start /max %%f
goto end

:csproj
for %%f in (*.csproj) do start /max %%f
goto end

:end

Donc, je viens de taper sln et appuyez sur Entrée et ouvre le fichier de solution, le cas échéant, dans le répertoire courant. J'enveloppe des choses comme pushd et popd dans pd.cmd et pop.cmd.

Créé 10/10/2008 à 05:16
source utilisateur

voix
31

Il y a quelques années, j'ai écrit une application WinForms avec l'aide de quelques années de win32 api pour me enfermer complètement hors de mon ordinateur pendant une heure afin qu'il me forcer à aller et de l'exercice. Parce que je suis paresseux? Non ... parce que j'avais un objectif de remise en forme personnelle. Parfois, vous avez juste besoin d'un petit coup de pied pour commencer :)

Créé 10/10/2008 à 05:37
source utilisateur

voix
12

Un script Greasemonkey qui supprime les commentaires évidemment stupides [*] à partir du site de jeu Kotaku.com.

[*] Comme il est indiqué par des erreurs d'orthographe, l'écriture en majuscules, l'utilisation excessive de « LOL » et heuristiques similaires.

Créé 10/10/2008 à 06:23
source utilisateur

voix
1

Anime somme de contrôle CRC32:

#!/usr/bin/python                                                                                                                                                                                  

import sys, re, zlib

c_null="^[[00;00m"
c_red="^[[31;01m"
c_green="^[[32;01m"

def crc_checksum(filename):
    filedata = open(filename, "rb").read()
    sum = zlib.crc32(filedata)
    if sum < 0:
        sum &= 16**8-1
    return "%.8X" %(sum)

for file in sys.argv[1:]:
    sum = crc_checksum(file)
    try:
        dest_sum = re.split('[\[\]]', file)[-2]
        if sum == dest_sum:
            c_in = c_green
        else:
            c_in = c_red
        sfile = file.split(dest_sum)
        print "%s%s%s   %s%s%s%s%s" % (c_in, sum, c_null, sfile[0], c_in, dest_sum, c_null, sfile[1])
    except IndexError:
        print "%s   %s" %(sum, file)
Créé 13/10/2008 à 10:59
source utilisateur

voix
1
alias snoot='find . ! -path "*/.svn*" -print0 | xargs -0 egrep '
Créé 13/10/2008 à 11:18
source utilisateur

voix
7

Un script Python rapide et sale qui a regardé le DNS pour google.com toutes les 5 secondes et une fois bipa si elle a réussi deux fois et si elle a échoué.

J'ai écrit ce pendant un moment où je devais vivre avec un réseau domestique très squameuse. Il m'a permis de connaître instantanément l'état du réseau alors même que je dirigeais d'abord sous le bureau dans la chambre avec les deux mains pleines de câble réseau et une lampe de poche dans ma bouche.

Créé 13/10/2008 à 12:52
source utilisateur

voix
4

sauvegarde MySQL. J'ai fait un script batch Windows qui créeraient des sauvegardes incrémentielles des bases de données MySQL, créer un dump frais tous les jours et les sauvegarder toutes les 10 minutes sur un serveur distant. Il a sauvé mon âne nombre incalculable de fois, surtout dans les innombrables situations où un client appellerait, en criant leur tête ce record juste « disparu » de la base de données. Je suis allé « pas de problème, nous allons voir ce qui est arrivé » parce que j'ai aussi écrit un script de recherche binaire qui rechercherait le dernier moment où un record a été présent dans la base de données. De là, il serait assez facile de comprendre qui a « volé » et pourquoi.
Vous ne seriez pas imaginer à quel point utile ceux - ci ont été et j'ai les utilise depuis près de 5 ans. Je ne passer à autre chose tout simplement parce qu'ils ont été à peu près testés et ils sont fabriqués sur mesure, ce qui signifie qu'ils font exactement ce que j'ai besoin et rien de plus , mais je les ai retouché tant qu'il serait un clin d' oeil à ajouter supplémentaire fonctionnalités.
Donc, mon « chef - d'œuvre » est une sauvegarde incrémentale MySQL + sauvegarde à distance + journaux du système de recherche pour Windows. J'ai également écrit une version pour Linux , mais je l' ai perdu quelque part, probablement parce qu'il était seulement environ 15 lignes + un emploi au lieu cron d'environ 1200 lignes de Fenêtres + deux tâches planifiées.

Créé 13/10/2008 à 13:16
source utilisateur

voix
103

Je n'ai pas le code plus, mais peut-être le scénario le plus utile que j'ai écrit était, croyez-le ou non, en VBA. J'ai eu un collègue ennuyeux qui avait si peu de fusible que je l'ai parlé comme Cherry Bomb. Souvent, il se fâcher quand les clients appellent et se lever et commencer rodomontades me sur le mur de la cellule, tuant ma productivité et le moral.

J'ai toujours eu ouvert Microsoft Excel. Quand il le ferait, j'alt-tab pour Excel et là, la barre d'outils, était une nouvelle icône avec une image d'une bombe de cerise. Je discrètement cliquez dessus ... et rien ne se produirait.

Cependant, peu de temps après que je recevrais un appel téléphonique et je dirais que quelque chose comme « ouais, ouais, ça sonne mal. Je ferais mieux de jeter un coup d'oeil. » Et puis je me levais, présenter des excuses à la bombe de cerise et à pied.

Ce qui est arrivé est que nous avons utilisé NetWare et il y avait un système de messagerie primitive construite. Lorsque je clique sur le bouton, un petit script VBA enverrait un message NetWare à mes amis, en leur disant que le Cherry Bomb était à nouveau et Auraient-ils s'il te plait appelle moi. Il n'a jamais pensé à elle :)

Créé 22/10/2008 à 07:38
source utilisateur

voix
8

Ceci, d'un affichage dans mon blog de il y a quelques mois, est passée d'une idée que je pensais était cool à l' un des meilleurs petits hacks que j'ai craché dans la mémoire récente. Je cite en entier ici:

==================

Je passe beaucoup de temps dans bash. Pour les non-initiés, bash est un système que vous trouverez sur la plupart des machines unix et, heureusement, quelques fenêtres et tous les Mac là-bas. À première vue, il n'y a pas de plus d'une interface de ligne de commande, et donc le radar de la plupart des utilisateurs qui voient ces choses comme un anachronisme qu'ils préfèrent oublier.

Je fais presque tout en bash. Je READ MY EMAIL D'UNE LIGNE DE COMMANDE, ce qui est la raison pour laquelle j'évitons e-mail balisé. Naviguer répertoires, modifier des fichiers, se livrer à la caisse de mon code source quotidienne et la livraison, rechercher des fichiers, rechercher des fichiers à l'intérieur, redémarrer la machine, et même parfois parcourir des pages Web à partir de la ligne de commande. bash est le cœur et l'âme de mon existence numérique.

Le problème est que je tendance à avoir environ 6 fenêtres bash ouvertes à la fois. Au travail aujourd'hui, j'ai eu une exécution d'un serveur Web, un autre tripoter ma base de données, un troisième, quatrième et cinquième édition de fichiers différents, tandis qu'un sixième, piocher dans ma machine en essayant d'enregistrer les noms de tous les fichiers du système. Pourquoi? Parce qu'il est à portée de main pour être en mesure de rechercher dans une telle archive si vous voulez savoir où trouver un objet par nom de fichier.

Lorsque vous faites cela, vous vous retrouvez avec beaucoup de fenêtres dans la barre de contrôle nommé simplement « bash ». Cela est bien si vous avez seulement un d'entre eux, mais son agonie quand vous avez 6 ou plus .... et deux douzaines d'autres choses qui se passent. J'ai trois moniteurs sous la commande simultanée d'une paire de clavier / souris et je me sens toujours le besoin de plus. Chacune de ces fenêtres a plusieurs terminaux bash ouvert.

J'ai donc plunked ensemble. Tout d'abord, placez ces lignes dans votre .bash_profile:

  export PROMPT_COMMAND='export TRIM=`~/bin/trim.pl`'
  export PS1="\[\e]0;\$TRIM\a\]\$TRIM> "
  trap 'CMD=`history|~/bin/hist.pl`;echo -en "\e]0;$TRIM> $CMD\007"' DEBUG

Je suis passé par écrit et des dizaines de paragraphes sur la façon dont tout cela fonctionne et exactement pourquoi il est mis en place la façon dont il est, mais vous n'êtes pas vraiment intéressé. Croyez-moi. Il y a un chapitre entier d'un livre pourquoi je l'ai fait « CMD = ...echo ... » sur cette troisième ligne. Beaucoup de gens (y compris bluehost, où mon autre domaine est hébergé) utilisent encore et ancienne version de bash avec des bugs majeurs dans la façon dont il gère les pièges, donc nous sommes coincés avec cela. Vous pouvez supprimer le CMD et le remplacer par BASH_COMMAND $ si vous êtes à jour votre version de bash et se sentir comme faire de la recherche.

Quoi qu'il en soit, le premier script que j'utilise ici. Il crée une belle invite qui contient le nom de votre ordinateur et le répertoire, abattirent à une longueur raisonnable:

                       ============trim.pl===========
  #!/usr/bin/perl

  #It seems that my cygwin box doesn't have HOSTNAME available in the 
  #environment - at least not to scripts - so I'm getting it elsewhere.
  open (IN, "/usr/bin/hostname|");
  $hostname = <IN>;
  close (IN);
  $hostname =~ /^([A-Za-z0-9-]*)/;
  $host_short = $1;

  $preamble = "..." if (length($ENV{"PWD"})>37);

  $ENV{"PWD"} =~ /(.{1,37}$)/;
  $path_short = $1;

  print "$host_short: $preamble$path_short";

                        ==============================

Il y a un avertissement en haut de ce billet de blog que vous devriez lire maintenant avant de commencer à poser des questions stupides du genre: « Pourquoi ne pas simplement utiliser la variable d'environnement via HOSTNAME @ENV? » Simple: Parce que cela ne fonctionne pas pour tous les systèmes que je l'ai essayé sur.

Maintenant, pour le bit vraiment cool. Rappelez-vous la ligne 3 de l'ajout .bash_profile?

  trap 'CMD=`history|~/bin/hist.pl`;echo -en "\e]0;$TRIM> $CMD\007"' DEBUG

Il est le dumping de la sortie du script trim.pl dans le même conteneur que précédemment, l'impression à la fois l'invite de commande et le titre de la fenêtre, mais cette fois il est en ajoutant la commande que vous venez de taper! Voilà pourquoi vous ne voulez pas faire tout cela dans votre .bashrc: script que vous exécutez (sur ma machine, l'homme est l'un d'entre eux) déclenchera cette chose sur chaque ligne. La sortie de l'homme se sérieusement brouillée par ce que nous faisons ici. Nous ne sommes pas jouer exactement agréable avec le terminal.

Pour saisir la commande que vous venez de taper, nous prenons l'histoire et couper en dés un peu du bash:

                        ===========hist.pl============
#!/usr/bin/perl

while (<STDIN>)
{
        $line = $_
}

chomp $line;
$line =~ /^.{27}(.*)/;
print $1;
                        ==============================

Alors maintenant, j'ai une fenêtre bazillion aller et ils disent des choses comme:

  castro: /home/ronb blog
  Ron-D630: /C/ronb/rails/depot script/server
  Ron-D630: /C/ronb/rails/depot mysql -u ron -p
  Ron-D630: /C/ronb/rails/depot find . > /C/ronb/system.map
  Ron-D630: /C/ronb/rails/depot vi app/views/cart.html.erb
  Ron-D630: /C/perforce/depot/ p4 protect
  Ron-D630: /C/perforce/depot/ p4 sync -f
  Ron-D630: /C/perforce/depot/

Dans la barre peu heureux au bas de l'écran, je peux maintenant dire qui est qui, au regard d'un moment. Et parce que nous avons mis PS1, dès qu'une commande fin de l'exécution, le nom de la commande est remplacé par juste la sortie de trim.pl à nouveau.

Mise à jour (même jour): Cette substance (les entrées .bash_profile) mis toutes sortes de l'enfer sur moi quand je l'ai essayé dans mon .bashrc. Votre .bashrc est exécuté par des scripts non interactifs chaque fois que vous invoquez bash comme langue. Je frappe quand je tentais d'utiliser l'homme. Toutes sortes de déchets (le texte intégral de mon .bashrc, plus échapper charecters) sont apparus en haut de la page de manuel. Je suggère de tester ce petit bijou avec une invocation « homme homme » rapide à la ligne de commande une fois que vous obtenez tous ensemble.

Je crois qu'il est temps pour moi de tirer la poubelle personnalisée de mon .bashrc et le mettre là où il appartient ...

Incedentally, je me suis retrouvé en tapant « piège de l'homme » à un moment donné dans ce processus.

Créé 23/10/2008 à 22:22
source utilisateur

voix
1

J'ai un fichier batch qui établit une connexion VPN et entre ensuite une boucle infinie, pinger une machine de l'autre côté de la connexion toutes les cinq minutes pour que le serveur VPN ne supprime pas la connexion en raison de l'inactivité si je ne produis pas tout le trafic sur cette connexion pendant un certain temps.

Créé 23/10/2008 à 23:35
source utilisateur

voix
6

Un petit script qui surveille certains sites Web populaires pour les annonces qui correspondent à mes compétences et me e-mail un email.

Créé 28/10/2008 à 03:35
source utilisateur

voix
1

Meilleur scénario de la vie réelle?

Moi: (chambre entre dans) « Patron, je veux une augmentation. »

Patron: (Offres chaise derrière un bureau) « Une augmentation S'il vous plaît, prenez mon travail! »

Là encore, cela peut être le pire scénario!

Créé 29/10/2008 à 02:33
source utilisateur

voix
92

Un script bash appelé en sorte que si je suis /a/very/deeply/nested/path/somewhereet je veux aller « jusqu'à » N répertoires, je peux taper :up N

#!/bin/bash
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
    P=$P/..
done
cd $P

Par exemple:

/a/very/deeply/nested/path/somewhere> up 4
/a/very> 

NB par GMATT:

Travailler au large de la grande œuvre ci-dessus, il peut être étendu à une fonction de retour en plaçant les éléments suivants dans votre bashrc:

function up( )
{
LIMIT=$1
P=$PWD
for ((i=1; i <= LIMIT; i++))
do
    P=$P/..
done
cd $P
export MPWD=$P
}

function back( )
{
LIMIT=$1
P=$MPWD
for ((i=1; i <= LIMIT; i++))
do
    P=${P%/..}
done
cd $P
export MPWD=$P
}
Créé 29/10/2008 à 02:44
source utilisateur

voix
6

J'utilise cela comme une fonction auto-chargement. Je peux simplement taper « mycd » et une liste de répertoires apparaît souvent que je cd. Si je connais le numéro alors je peux dire quelque chose comme « mycd 2 ». Pour ajouter un répertoire à la liste vous tapez « mycd / tmp / foo / unrépertoire ».

function mycd {

MYCD=/tmp/mycd.txt
touch ${MYCD}

typeset -i x
typeset -i ITEM_NO
typeset -i i
x=0

if [[ -n "${1}" ]]; then
   if [[ -d "${1}" ]]; then
      print "${1}" >> ${MYCD}
      sort -u ${MYCD} > ${MYCD}.tmp
      mv ${MYCD}.tmp ${MYCD}
      FOLDER=${1}
   else
      i=${1}
      FOLDER=$(sed -n "${i}p" ${MYCD})
   fi
fi

if [[ -z "${1}" ]]; then
   print ""
   cat ${MYCD} | while read f; do
      x=$(expr ${x} + 1)
      print "${x}. ${f}"
   done
   print "\nSelect #"
   read ITEM_NO
   FOLDER=$(sed -n "${ITEM_NO}p" ${MYCD})
fi

if [[ -d "${FOLDER}" ]]; then
   cd ${FOLDER}
fi

}
Créé 29/10/2008 à 03:19
source utilisateur

voix
1

J'utilise souvent une macro MS Word qui prend un fichier de code source, il formate dans deux colonnes de type monospaced sur une page paysage, les numéros des lignes, et ajoute en-tête de l'entreprise et les informations de bas de page, comme nom de fichier, la date d'impression, numéro de page, et DECLARATION DE confidentialite.

L' impression des deux côtés de la page utilise environ un quart du papier comme l'équivalent lprcommande. (Quelqu'un utilise - t lprplus ???)

Créé 01/11/2008 à 00:26
source utilisateur

voix
1

J'ai écrit un petit script shell, Tapt, pour le système basé sur Debian. esp. Ubuntu. Ce qu'il fait essentiellement est d'afficher toutes vos activités « apt-get » à votre compte Twitter. Il me permet de garder la trace de ce que et quand je l' ai installé / supprimer des programmes dans mon système Ubuntu. J'ai créé un nouveau compte Twitter juste pour cela et gardé privé. Vraiment utile. Plus d' informations ici: http://www.quicktweaks.com/tapt/

Créé 01/11/2008 à 00:31
source utilisateur

voix
1

Un simple script Python qui convertit les fins de ligne d'Unix vers Windows que je coincé dans mon répertoire system32. Il a été perdu à l'âge de quelques mois, maintenant, mais au fond, ce serait convertir une liste de types de fichiers à base de texte connus à des fins de ligne Windows, et vous pouvez spécifier les fichiers à convertir, ou tous les fichiers, pour une liste générique .

Créé 11/12/2008 à 19:10
source utilisateur

voix
2

Pas tous les jours, mais je ne l' utilise script XSLT pour créer mes invitations de mariage (un fichier Pages pour les insertions aux cartes inviteront, et un fichier HTML pour les étiquettes d'adresse).

Créé 17/12/2008 à 21:40
source utilisateur

voix
1

Un Rakefile dans mon répertoire téléchargements contenant des tâches qui copient des fichiers à partir dudit répertoire à leurs archives médiatiques respectives sur des disques externes. Compte tenu de ma vitesse d'Internet et de la capacité de stockage, il me prendrait des heures de chaque semaine pour copier juste en face et re-nom correctement chaque morceau de support qui est téléchargé (légalement tout à fait, je pourrais ajouter) par hellanzb.

Une autre tâche très utile dans les mêmes journaux de fichiers dans et écorchures IMDB pour les listes d'épisode / discographies de tous les médias dont je bénéficierai, puis vérifie NewzBin des rapports qui comblerait tous les trous que j'ai.

Ensemble, cela signifie que je dois faire absolument rien, et en échange, je me réveille tous les matins avec plus de médias que je pourrais peut-être consommer ce jour-là assis sur mes disques durs externes.

Ai-je mentionné que tout cela est entièrement au-dessus bord et juridique? ré-:

Je vais probablement fusionner tout cela en une sorte de gestionnaire des médias en ligne de commande / lecteur (choses agricoles sur à mplayer), et le publier sur GitHub quand j'ai le temps.

Créé 19/12/2008 à 07:27
source utilisateur

voix
1

Work@Home.ps1 et Work@Work.ps1 => modifier le fichier hosts, passer par LAN ou WAN adresses.

Créé 19/12/2008 à 07:41
source utilisateur

voix
5

J'aime stocker mes photos dans un répertoire en fonction de la date à laquelle la photo a été prise. Par conséquent, j'ai écrit un programme qui scanner une carte mémoire pour les photos, créer des dossiers sur mon disque dur qu'il devait en fonction des dates des photos, puis les copier dans.

Créé 19/12/2008 à 08:04
source utilisateur

voix
7

Je travaillais dans un camp d'été de la technologie, et nous avons dû composer ces revalorisations pour chacun des enfants du groupe à la fin de la semaine, ils seraient alors recevoir et ramener à la maison comme un souvenir. En général, ceux-ci se composait d'un tas de phrases génériques, et une à deux phrases personnalisées. J'ai écrit un script python qui a construit un de ces comptes-rendus sur une banque de phrases en conserve, et permet à l'utilisateur d'ajouter quelques phrases personnalisées au milieu. Cela a sauvé une énorme quantité de temps pour moi et d'autres conseillers que je laisse dans le secret. Même si la mesure où ils ont été automatisés, nos revalorisations semblaient encore mieux que beaucoup de ceux « honnêtes », parce que nous pourrions mettre plus de temps dans les parties personnalisées.

Créé 19/12/2008 à 08:17
source utilisateur

voix
1

J'ai un fichier batch qui se déroule tous les matins, qui lance un navigateur avec les onglets chargés à tous les sites que je veux vérifier chaque jour (Woot, Dilbert, Doonesbury, UserFriendly, saisonnière, Mets de New York scores et electoral-vote.com, plus quelques sites qui doivent être visités régulièrement pour garder actifs membres)

Créé 24/12/2008 à 14:15
source utilisateur

voix
1

J'ai écrit un outil d'extraction de fichiers à utiliser sous Linux, qui peut extraire environ 20 formats de fichiers différents et utilise le contenu du fichier, pas le nom du fichier.

Cet outil se est très populaire, j'ai un flux régulier de personnes qui téléchargent de mon blog. Obtenez-le ici:

Créé 29/12/2008 à 19:45
source utilisateur

voix
1

Parfois, j'oublie ce que sont les fichiers les plus récents que je viens de créer dans un répertoire, mais une commande ls vais juste afficher tous les fichiers dans le répertoire, je veux juste quelques fichiers les plus récents, donc je mets dans mon .cshrc

 ls -l -t | awk 'NR<15{print $0}'

(En fait, il est dans un fichier appelé lt et dans le .cshrc est réglé avec: alias lt ~ / lt)

Alors maintenant ll me montrer quelques fichiers.

Créé 29/12/2008 à 19:57
source utilisateur

voix
3

scripts VBS pour créer une structure de fichier AAAA / AAAA-MM / AAAA-MM-JJ dans mes photos dossier et déplacer des photos de mon appareil photo dans le dossier approprié.

Créé 29/01/2009 à 11:55
source utilisateur

voix
2

J'ai écrit quelques lignes de code pour modifier automatiquement toutes les choses powertop suggère quand je débranche mon ordinateur portable et défais que si je rebranchez l'ordinateur portable. La puissance maximale, une efficacité maximale, un maximum de confort.

Créé 30/01/2009 à 20:56
source utilisateur

voix
1

Courir et je Windows XP ne semblent jamais avoir le temps de lancer une Defrag et attendre qu'elle se termine. Donc, j'ai écrit mon propre script pour déclencher builtin defrag.exe XP et programmé pour exécuter nitivement. Les résultats sont enregistrés dans un fichier journal dans C: \ Temp pour examen ultérieur.

@echo off

GOTO :MAIN
###########################################################
#
#  Reason: 
#     This script runs the defrag utility.
#
#  Suggestion:
#     Schedule this script to run daily (via schtasks)
#
#     Example:
#        SCHTASKS /Create /SC DAILY /ST 03:00:00 
#                 /TR \"C:\path\to\DAILY_DEFRAG.BAT" /TN "Daily Defrag of C Drive\"
#
#     Example:
#        AT 03:00 /every:Su,M,T,W,Th,F,Sa C:\path\to\DAILY_DEFRAG.BAT
#
#  Required OS: 
#     Windows XP or Windows Server 2003
#
#  Required files:
#     DEFRAG.EXE
#
#
###########################################################

:MAIN

   :: Output a listing of scheduled tasks
   SCHTASKS /QUERY /V > C:\temp\schtasks.out



   :: *****************************************************
   :: * SITE SPECIFIC Program Parameters                  *
   :: *****************************************************
   :: * Drive to defrag
        SET TARGET=C:

   :: * Log file
        SET LOGFILE=C:\temp\defrag.log


   :: *****************************************************
   :: * No editable parameters below this line            *
   :: *****************************************************


   SETLOCAL


   :: Announce intentions
   echo.
   echo Beginning defragmentation of disk %TARGET%
   echo ----------------------------------------------

   echo.
   for /f "tokens=1 delims=_" %%a in ('date /t') do set NOW=%%a
   for /f "tokens=1 delims=_" %%a in ('time /t') do set NOW=%NOW% %%a
   echo  Start time: %NOW%

   :: Run the defrag utility
   C:\WINNT\SYSTEM32\defrag.exe %TARGET% -f -v > %LOGFILE%

   echo.
   for /f "tokens=1 delims=_" %%a in ('date /t') do set NOW=%%a
   for /f "tokens=1 delims=_" %%a in ('time /t') do set NOW=%NOW% %%a
   echo    End time: %NOW%

   echo.
   echo ----------------------------------------------
   echo Defrag complete. 
   echo.


:END
Créé 19/02/2009 à 02:04
source utilisateur

voix
1

Eh bien un AutoHotkey script qui rendent ma vie à portée de seulement un clavier:

  1. application souvent utilisée, dossier, etc., au sein d'une victoire + combinaison. Cela signifie souvent activer l'application si elle est déjà lancée, et lancer d'autre application
  2. « Double-clic » de ctrl pour lancer Launchy - ce qui conduit à quelques pas de mes frappes de touches si souvent utilisées des applications
  3. ajouter un tas de manque raccourcis clavier dans l'explorateur Windows (XP), comme créer un nouveau dossier, basculer fichier caché / afficher l'extension de fichier, Ctrl-Entrée pour ouvrir un fichier en tant que fichier texte dans emacs, fenêtre de ligne de commande ouverte (shell cmd et Cygwin) avec le jeu de chemin courant, etc., etc.
  4. manipulation de Windows: déplacer, redimensionner, envoyer à moniteur suivant, max / minimiser, basculer toujours sur le dessus, changer la transparence, etc etc tous avec des combinaisons simplement clés
  5. Divers tels que mise en veille prolongée, éjecter les disques externes, google tout mot sélectionné (dans toutes les applications où ctrl-c comme travaux de copie), minuterie d'arrêt, etc., etc. Tout avec juste une combinaison de touches

Ce script du clavier me faire un happy-camping; et il est en fait la principale raison pour laquelle je suis toujours en utilisant les fenêtres au lieu de Linux comme ma plate-forme primaire depuis autohotkey ne fonctionne que sur Windows.

Créé 19/02/2009 à 03:25
source utilisateur

voix
1

Je suppose que je devrais inclure ma propre réponse à cela, à cause de l'achèvement.

J'ai écrit un script simple qui prend dans les dépenses de deux personnes vivant ensemble, et calcule quelle personne doit l'autre argent à la fin du mois afin que chaque personne a passé également. Je prévois de l'étendre à stocker les catégories de chaque dépense et les stocker dans une base de données. Bien sûr, je pourrais simplement utiliser des logiciels existants ... mais où est le plaisir dans tout cela?

Pas très complexe, bien sûr, mais pour autant que les scripts non liés au travail que j'utilise beaucoup à la maison, celui-ci est le leader actuel.

Créé 26/02/2009 à 22:12
source utilisateur

voix
1

À un certain moment dans le passé lointain, j'ai décidé de mettre tous les fichiers de mon répertoire public_html de l'hébergeur dans un dépôt subversion. Ensuite, je l'ai écrit un script qui:

  1. Crée, supports et formats d'un disque RAM.
  2. Exporte le tronc du référentiel dans le disque RAM.
  3. Les appels rsyncà télécharger tous les fichiers modifiés à partir du disque RAM à mon fournisseur d'hébergement. J'utilise une clé publique / privée paire pour me sauver de taper mes informations de connexion à chaque fois.
  4. Démonte le disque RAM.

Ainsi, en poussant des mises à jour du référentiel vers le serveur est littéralement une opération « une touche ».

Ce qui est le plus satisfaisant sur le script est que, au départ, il était plus d'un exercice de script shell qu'un grand projet. Cependant, il a sans doute m'a sauvé d'innombrables heures de travail et rend la perspective de la mise à jour d'un site Web presque sans stress, peut-être plus que tout autre logiciel sur mon ordinateur.

Créé 26/02/2009 à 22:29
source utilisateur

voix
2

Je suppose que cela dépend de la façon dont vous définissez utile, mais mon petit script préféré est une variante sur le * nix fortuneprogramme. Voir ci - dessous, et vous aurez l'idée de ce qu'il fait:

telemachus ~ $ haiku 

   January--
in other provinces,
   plums blooming.
    Issa

Il n'a pas vraiment fait quoi que ce soit, mais un beau haïku va un long chemin. (J'aime la façon dont l'coloriseur a décidé d'interpréter le poème.) ( Modifier : Si je dois vraiment être utile, je dirais un script qui permet à un utilisateur d'entrer un code postal américain et d' obtenir la météo actuelle et 0-3 jours de prévisions de Google.)

Créé 17/03/2009 à 19:16
source utilisateur

voix
1

J'ai écrit un programme Python pour calculer mes dépenses et la sortie de l'appartement partagé une petite grille propre, avec coloc comme les colonnes et la catégorie de dépenses que la ligne, avec combien d'argent chaque colocataire dû à louer, après ajustement pour tenir compte de sa contribution aux dépenses communes. Nous avions été le partage de cette façon pendant un certain temps, mais juste additionnant les totaux bruts à la fin du mois. Je avais besoin de contrôle plus granulaire. Avec un maximum de huit frappes par ligne point, c'est bien meilleur que Excel. J'étais en quelque sorte dans une quête désespérée d'arrêter la tendance mensuelle d'un colocataire passé 25% de notre budget sur les boissons ...

Créé 17/03/2009 à 19:19
source utilisateur

voix
1

J'ai écrit un simple script Ruby pour aider ma femme et moi quand nous envisageons des noms pour notre premier enfant. Il a généré toutes les combinaisons de nom et vérifié les initiales contre une liste noire des initiales que je voulais éviter, l'exclusion de tout qui ne correspond pas à mes critères. Je me sentais comme une chose appropriée pour un papa ringard à faire et en fait avéré être très utile et utile.

Autre que j'ai écrit quelques scripts Python qui servent bots IRC que j'utilise tous les jours. Une URL enregistre, par correspondance d'expression régulière, à délicieux . Une autre sert comme un simple IRC Twitter interface, me permettant de vérifier mon flux et mises à jour post.

Créé 17/03/2009 à 19:46
source utilisateur

voix
14

J'ai écrit un script Python qui irait à tous les comics web que je lis, et télécharger toute nouvelle bande dessinée. Je viens de courir qu'une fois par jour, et il n'y a pas besoin de visiter chaque site individuellement, il suffit de visiter le / Comics / dossier. ;)

Créé 17/03/2009 à 19:52
source utilisateur

voix
1

Un script pour permettre greping facile des résultats ps:

#!/usr/bin/php -f <?php $process = $argv[1]; echo shell_exec("ps -ef | grep $process | grep -v grep"); exit(0);

Créé 25/03/2009 à 23:36
source utilisateur

voix
1

A écrit un petit script bash qui savait juste assez sur les polices pour rechercher par environ 10k polices et rechercher certains mots clés, malgré leurs noms de fichiers inutiles, mais pas revenir très nombreux faux positifs. A pris un certain temps à courir, environ une minute sur l'iMac Dinky, mais il m'a probablement sauvé 50 heures au cours des dernières années.

Créé 25/03/2009 à 23:49
source utilisateur

voix
1

Cela permet de maintenir 20 jours de sauvegardes diff sans utiliser un tas d'espace. Utilise des liens pour copier et copies rsync si nécessaire


#!/bin/bash                                                                                                                                                                                                                            


BACKUPDIR=/media/proxy/store/backups/                                                                                                                                                                                                  

[ ! -d $BACKUPDIR ] && { echo "BACKUP DIRECTORY NOT AVAILABLE!"; exit; }                                                                                                                                                               

dobackup() {                                                                                                                                                                                                                           
        SDIR=$2                                                                                                                                                                                                                        
        PARENTDIR=$1                                                                                                                                                                                                                   
        echo "BACKING UP $PARENTDIR/$SDIR to $BACKUPDIR"                                                                                                                                                                               
        bnum=20
        count=$bnum
        [ -d ${BACKUPDIR}${SDIR}.$bnum ] && {  mv ${BACKUPDIR}${SDIR}.$bnum ${BACKUPDIR}${SDIR}.tmp; }
        until [ $count -eq 1 ]; do
                let lastdir=$count-1
                [ -d ${BACKUPDIR}${SDIR}.$lastdir ] && { mv ${BACKUPDIR}${SDIR}.$lastdir ${BACKUPDIR}${SDIR}.$count; }
                let count-=1
        done
        cp -al  ${BACKUPDIR}${SDIR}.0  ${BACKUPDIR}${SDIR}.1
        rsync -a --delete --bwlimit=2000  $PARENTDIR/$SDIR ${BACKUPDIR}${SDIR}.0
}

for backup in $(cat /sbin/backup.directories); do
        PDIR=$(echo $backup | awk -F '::' {'print$1'})
        DIR=$(echo $backup | awk -F '::' {'print$2'})
        dobackup $PDIR $DIR
done

exit;


cat /sbin/backup.directories
/media/warehouse::Archive
/media/warehouse::concept

Créé 26/03/2009 à 00:11
source utilisateur

voix
7

A ma place précédente des heures de bureau de travail étaient ridicules. Il était une société de logiciels et mon patron a été aspiré. Il nous donnerait travailler tout autour de 17h30 (à droite quand il était temps de rentrer à la maison) et nous a fait terminer le travail jusqu'après 23h00 (chemin passé nos heures productives idéales). Ou il trouverait des problèmes gênants dans le code qui était encore en cours.

Donc , j'ai fait un fichier de commandes et un script qui transformerait mon ordinateur OFF à un moment aléatoire 19h00-20h00. Il avait une minuterie 1 minute au cas où je resterais après les heures et nécessaire pour interrompre le processus d'arrêt.

Mais je laisserais mon bureau avant 17h00 il ne pouvait pas me trouver pour me garder s'il voulait vider la merde autour de l'heure de départ. S'il est venu à mon bureau et de voir mon ordinateur, il pense que j'étais encore autour de la zone de garde-manger ou à la proximité minimart pour attraper quelques jetons ou quelque chose. Mais si elle était éteinte à cette époque, il appelle mon téléphone portable et me dire de revenir au bureau.

J'ai aussi prévu pour le BIOS sur ma machine pour tourner ma machine ON vers 8h00 ou 9h00 au cas où je me sentais paresseux et je voulais flâner dans environ 10:00 ou 11:00. Si je me suis surpris en train de marcher à mon bureau , il demandait « où vous avez été toute la matinée? » Et je dirais «J'étais lors d' une réunion avec l'équipe de marketing. » ou « Je recevais le petit déjeuner en. »

chien muet

Créé 11/06/2009 à 00:49
source utilisateur

voix
1

Une zone d'alerte, sur une minuterie aléatoire, garanti à au moins une fois par heure pop-up pour me rappeler de faire quelques tractions.

Je l'ai utilisé quand j'étais dans l'armée.

Je les règles d'architecture a également écrit ( http://architecturerules.org ) pour moi et quelqu'un d' autre.

Créé 11/06/2009 à 01:18
source utilisateur

voix
1

J'aime la façon dont les chiffres git quand à une utilisation moins, la subversion n'a pas cette fonction si je veux facilement obtenir une sortie de couleur dans un téléavertisseur. l'alias cgrep me permet de choisir rapidement. sans elle il y a des moments que je reçois la sortie couleur brute.

Moi aussi, quand grepper par le code, n'aime pas voir certains résultats, comme svn ctags fichiers binaires

grep -R sourcecodetext sourcedir | nosvn

Voici ce que j'ai dans mes fichiers de configuration

cat .bash_profile

alias nosvn="grep -v \"\.svn\|tags\|cscope\|Binary\""
alias less="less -R"
alias diff="colordiff -u"
alias cgrep="grep --color=always"

export GREP_OPTIONS='--color=auto'

bin cat / gitdiffwrapper

#!/bin/bash

old_file=$1
tmp_file=$2
old_hex=$3
old_mode=$4
new_file=$5
new_mode=$6

colordiff -u $old_file $tmp_file

cat .gitconfig

[diff]
    external = $HOME/bin/gitdiffwrapper

cat .subversion_config | grep ^ diff-cmd

diff-cmd = /usr/bin/colordiff
Créé 24/06/2009 à 17:19
source utilisateur

voix
4

A écrit un script pour cliquer sur le bouton Démarrer, puis cliquez à nouveau dans une demi-seconde et répéter toutes les 30 secondes.

Me permet de rester marqué en ligne au travail, et je peux faire le travail réel sur mon ordinateur portable personnel juste à côté. Pas embourbé par le logiciel de travail.

Ne dites pas le patron :)

Créé 20/11/2009 à 05:49
source utilisateur

voix
1
copy con c.bat
c:
cd\
cls
^Z
Créé 20/11/2009 à 05:51
source utilisateur

voix
12

J'ai écrit un script qui a fini par être utilisé tous les jours dans mon équipe. Lorsque je travaillais pour Intel que nous avions une application qui a parlé à une base de données d'accès pour saisir une décharge d'information de registre (je travaille sur les chipsets de validation). Il prendrait ces informations (à partir d'une requête SQL) et le vider dans un fichier CSV, fichier HTML et un fichier Excel. Le processus a pris presque 2 heures. Sans blague. Aucune idée pourquoi il a fallu si longtemps. Nous le démarrer une heure avant le déjeuner, aller déjeuner, puis revenir.

Je pensais qu'il devait y avoir une meilleure façon de le faire. J'ai parlé à l'équipe qui a maintenu la base de registre et a obtenu le code SQL d'eux. J'ai alors écrit un script perl qui a saisi les données et dans CSV émis, HTML et formats Excel. Runtime? Environ 1-2 secondes. Une amélioration de grande vitesse.

J'ai aussi écrit quelques scripts alors que j'étais sur le déploiement en Irak en 2006 (j'ai servi dans la Garde nationale pendant 9 ans - suis sorti en Décembre). Nous avons utilisé cette ancienne application appelée Ulls-G (Unité niveau du système logistique - sol) qui a été écrit en ADA et a à l'origine sur DOS. Ils piraté assez là où il fonctionne sous Windows XP dans un shell de commande. Ce système n'a pas une interface souris. Tout était par le clavier et il avait aucune fonctionnalité de traitement par lots. Alors disons que vous vouliez imprimer des licences pour tous les opérateurs de véhicules? Eh bien ... nous avons eu 150 soldats dans notre unité il fallu beaucoup de temps. Disons que tout le monde a qualifié sur un véhicule neuf et que vous vouliez ajouter aux qualifications de l'opérateur de tout le monde? Il fallait le faire un par un.

J'ai pu trouver un pilote ODBC pour la base de données SAGE (ce Ulls-G utilisé) et j'ai donc écrit des scripts Perl qui ont pu parler à la base de données SAGE. Donc , les choses qui ont plus d' une heure, prit quelques secondes seulement. J'ai aussi utilisé mes scripts et le pilote pour les rapports. Nous avons dû signaler toutes les informations jusqu'à bataillon tous les matins. D' autres unités écriraient les informations à la main tous les matins. Je fouetté une macro Excel qui parlait utilisé le même pilote et a parlé à la base de données SAGE et mis à jour la feuille de calcul Excel de cette façon. Il est le plus compliqué et que macro Excel que j'ai jamais écrit. Il a payé parce qu'ils me reçu la Médaille élogieuse de l' armée. Alors oui, je suis une médaille dans l'armée pour écrire des scripts Perl :) Combien de personnes peuvent dire ça? ;)

Créé 17/06/2010 à 23:27
source utilisateur

voix
1

Un simple tout autour de la fonction shell. Juste au moment où je suis trop paresseux pour penser à ce que je suis en train de faire.

Vraiment utile quand je suis juste en train de naviguer dans un répertoire au hasard, et je dois passer de ls, au CD, à moins constamment.

en() {
if [[ -z $1 ]] ; then
ls '.'

elif [[ -d $1 ]] ; then
cd $1

elif [[ -f $1 ]] ; then
less <$1
fi
}
Créé 12/04/2011 à 01:22
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more