10 items tagged "ligne de commande"

  • commande find sous linux avec l'option -regex

    il est souvent utile de rechercher des fichiers pour par exemple les renommer (voir mon article sur le renommage des photos). La commande en ligne sous linux pour cela est find :

    De façon basique,

    La recherche de fichier

    va être réaliser par :

  • La date heure sous linux

    horloge du dôme de Florence (src: https://commons.wikimedia.org/wiki/User:Watchduck)

    La date est incontournable,

    le sysadmin (ASR) a parfois besoin:

    • de la vérifier
    date
    lundi 11 septembre 2017, 16:02:58 (UTC+0200)
    • et de la définir ou corriger:
    date -s "01/09/2017 16:06:59"
    

     

    Quant au développeur, il peut la vouloir sous un format simple "UNIX" ou "POSIX"

    date +%s
    1505138340
  • manipulation de chaîne de caractères avec les REGEX (expressions rationnelles)

    Les REGEX (REGular EXpressions ou expressions rationnelles) sont une méthode permettant de décrire des chaînes de caractères afin de les rechercher, contrôler (contrôle de saisie dans un formulaire web par exemple) et à fin de les manipuler : ré-ordonnér, recherche/remplace pour adapter un fichier texte ou CSV, renommer des fichiers, changer du code dans un programme...

  • mémento ligne de commande sous GNU/Linux

    recherche de fichier, voir mon article sur find

    recherche de fichier contenant un texte :

    grep -lR "pattern REGEX" /chemin/absolu ou * pour le répertoire courant. Le pattern REGEX est à remplacer par le texte à chercher ou le modèle suivant les règles REGEX (cf. mon article sur les REGEX pour plus de détail)

    Pour exclure des répertoires, on peut ajouter l'option --exclude-dir :

    grep -rn --exclude-dir={rep1, rep2, replist*} terme_recherché

    lister que les fichiers et répertoires cachés :

    ls -d .*

    lister les répertoires cachés :

    ls -d .*/

    lister que les répertoires (non cachés) :

    ls -d */

    connaîre la taille d'un répertoire avec du (disk usage), si le chemin du répertoire est omis, c'est le répertoire courant qui est pris en compte :

    du -hs repertoire

     lister les répertoires ou/et fichiers les plus gros :

    du -hms * | sort -nr | head

    disk usage liste les répertoire ou/et fichiers est exprime leurs tailles en Mo puis on trie (sort) et on ne conserve que les 10 premiers (head). Si on veut les 20 premiers, ajouter -n20 derrière head.

    Pour lister respectivement, la taille totale et/ou la liste d'un type de fichier, bmp dans l'exemple ci-dessous (*):

    find . -regex '.*\.bmp' -print0 | du --files0-from=- -ch | tail -1

    find . -regex '.*\.bmp' -print0 | du --files0-from=- -ch | less

    Pour compter le nombre de fichiers

    find . -type f | wc -l

    On peut aussi utiliser le programme tree, ci-dessous pour lister des fichiers sources:

    tree -P '*.cpp|*.hpp|*.c|*.h'

    Lister l'arborescence avec la taille cumulée du contenu des répertoires:

    tree --du -h

    et

    tree -du -h -C -H . > tree.html

    crée un fichier tree.html contenant l'arborescence et les tailles!

    Lister-extraire l'arborescence (répertoires uniquement) d'un disque ou d'un répertoire :

    sudo find ./ -type d > arborescence.txt

    qui sauve dans le fichier arborescence.txt la liste des répertoires. Le problème est que sur un serveur de fichiers, ça peut faire beaucoup de lignes! Pour réduire le nombre de ligne, je supprime les lignes correspondant à des répertoires de niveau 4 et au delà (il suffit de l'adapter pour aller plus ou moins loin dans les niveaux) :

    dans vim ou notepad++, recherche/remplacer

    .*\/.*\/.*\/.*\/.*\n par rien

    puis

    \.\/ par rien pour supprimer le ./ en début de chaque ligne pour plus de lisibilité.

    Enfin, on peut l'enregistrer en .csv puis finir la mise en forme dans Calc.

    Lister les sessions ouvertes

    sur une machine multi-utilisateurs pour par exemple redémarrer après une mise à jour :

    who -u

    Changer le nom du PC

    sudo hostname nouveau_nom

    qui ne suffit pas, si vous redémarrer, il récupère l'ancien

    il faut aussi changer le nom dans le fichier /etc/hostname

    echo nouveau_nom > /etc/hostname

    enfin, si samba est installé (ce qui doit être le cas par défaut pour le partage avec des machines windows), il faut aussi modifier le fichier /etc/sambal/smb.conf pour définir le nom du partage

    Créer un fichier texte et saisir rapidement des lignes dedans avec la commande cat

    Il est parfois intéressant, par exemple pour un fichier de configuration ou simplement un fichier test, de créer un fichier et de saisir dedans quelques lignes sans lancer un éditeur :

    cat > nouveau_fichier
    ligne1 dans le fichier
    ligne2 dans le fichier

    après la dernière ligne saisie, revenir à la ligne et utiliser la combinaison de touche Ctrl-d pour terminer

     

  • mes options de g++

    https://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html#Overall-Options

    https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/C-Dialect-Options.html#C-Dialect-Options

    Utilisation classique :

    g++ fichier.cpp -std=c++11 -Wall -Wextra -o fichier_executable

    -o fichier_executable

    -o pour output, permet de définir le fichier de sortie. Si absent, le fichier créé est nommé a.out

    Détermine le langage standard:

    -std=c++14

    Compilation simple (sans assemblage) :

  • photocopier avec un scanner et une imprimante grâce aux commandes scanimage et lp

    Comment photocopier facilement... sans jeter mon vieux scanner (de plus de 10 ans mais qui fonctionne parfaitement !) et avec une imprimante classique?

    J'ai commencé tout d'abord par regarder comment imprimer en ligne en commande :

  • redimmensionnements photos en ligne de commande avec ImageMagick

    Besoin : redimensionner un lot d'images pour réduire leur taille et augmenter leur taux de compression afin d'économiser de la place sur le disque dur.

    En effet, les appareils photos d'entrée de gamme et moyen de gamme retournent souvent des images avec des millions de pixels et font donc une taille sur le disque de plusieurs méga-otets alors que la plupart de ces images ne méritent souvent pas plus de 100 ou 200ko. Ce gain d'environ 10x sur des centaines voir des milliers d'images peut permettre un gain significatif de place sur le disque dur.

  • Renommage photos en ligne de commande

     

    Voici quelques exemples pour

    renommer vos photos en ligne de commande

    Un renommage permettant un tri facile et de retrouver rapidement une photo en fonction de sa date, est de mettre en préfixe la date sous la forme AAAAMMDD, par exemple 20140512 (pour plus de lisibilité, vous pouvez ajouter des traits d'union entre les éléments de la date... 2014-05-12).

  • Robocopy

    Quand on est obligé de faire des copies sous windows (migration des données d'un PC utilisateur vers un PC crypté par exemple), il peut être intéressant d'utiliser robocopy.

    Tout d'abord, exécuter la console (cmd) en tant qu'administrateur.

    puis

    robocopy répertoire_source répertoire_destination /e /r:0 /w:1 /zb /DCOPY:T

    /e copie les sous-répertoires, même s'ils sont vides

    Si il y a un problème avec un fichier, /r:0 évite une nouvelle tentative et /w:1 ne patiente qu'une seconde.

    /zb Utilise le mode de redémarrage. Si l'accès est refusé, cette option utilise le mode de sauvegarde.

    /DCOPY:T copie les horodatages des répertoires


    ... sinon (si ni la source, ni la destination n'est crypté), il vaut mieux être sous linux (au besoin démarrer avec une clé bootable) et utiliser rsync par exemple !

  • télécharger une liste de fichiers avec wget (des images par exemple)

    Vous disposez d'un lien internet (URL) où se trouve une liste de fichiers, par exemple, une série d'images. Si vous lancez ce lien dans un navigateur, vous voyez la liste mais vous ne pouvez que les charger une par une ce qui est très fastidieux, surtout s'il y en a plusieurs dizaines voir plus !

EasyTagCloud v2.8