IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Quelles sont les bonnes pratiques sur les alias ?


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2020
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2020
    Messages : 88
    Par défaut Quelles sont les bonnes pratiques sur les alias ?
    Bonjour,

    J'ai lu dans ce livre = https://www.amazon.fr/ligne-commande.../dp/2351410726
    qu'il était préférable de regrouper les allias que l'on crée dans un fichier à part afin de ne pas polluer le fichier = .bashrc ?
    Cependant il ne détaille pas la procédure.
    Il faudrait dire au système de rechercher les allias dans un autre fichier mais ça je ne sais pas comment faire ?
    J'ai une idée :
    1 Je crée un répertoire ou je veux sur mon système.
    2 J'ajoute le chemin à la variable PATH
    Et ça devrait régler le problème.

    Même question avec les scripts bash que l'on ajoute au systèmes.
    Afin de séparer le natif de l'ajout ne voudrai t'il pas mieux se créer un répertoire de scripts bash ?

    Merci pour votre aide.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 672
    Par défaut
    Bonjour,
    • ouvre un nouevau fichier dans ton éditeur préféré
    • inscris-y tes aliases
    • enregistre le fichier sous .bash_aliases sous ton $HOME
    • mets-y tes aliases
    • source le fichier .bash_aliases dans ~/.bashrc


    si tes aliases n'étaient pas encore disponibles dans ton shell, source ton .bashrc pour que lui-même source le fichier .bash_aliases.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 376
    Par défaut
    En complément de la réponse de N_BaH, la seule bonne pratique des alias est de ne pas utiliser les alias.

    Quand on est débutant, les alias sont de très mauvaises choses car on ne mémorise pas la syntaxe de la vrai commande et quand on doit passer sur un environnement qui n'est pas le sien, on peut vite se retrouver bloquer.

    Et quand on est plus débutant, bah en fait, on a appris à s'en passer...

  4. #4
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2020
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2020
    Messages : 88
    Par défaut
    ok je note pour les bonnes pratiques se passer des alias car on ne mémorise pas les commandes.
    En plus les commandes sont différentes selon les environnements.
    J'ai testé tout marche bien.
    Mais j'ai juste un petit souci, impossible de source aussi bien mon fichier .bashrc que mon fichier .bash_aliases.
    J'utilise vim comme éditeur de texte.
    Et je le fais avec la commande suivante :
    :so %
    Lorsque je fais cela j'ai un beau paquet d'erreur mais je ne comprends pas pourquoi ?
    Je suis obligé de quitté ma session bash et d'en ouvrir une autre à chaque fois.
    Je ne vois aucune erreur dans mon fichier .bashrc, je n'y ai pas touché.
    Ci dessous mon fichier .bashrc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
    # ~/.bashrc: executed by bash(1) for non-login shells.
    # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
    # for examples
     
    # If not running interactively, don't do anything
    case $- in
        *i*) ;;
          *) return;;
    esac
     
    # don't put duplicate lines or lines starting with space in the history.
    # See bash(1) for more options
    HISTCONTROL=ignoreboth
     
    # append to the history file, don't overwrite it
    shopt -s histappend
     
    # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
    HISTSIZE=1000
    HISTFILESIZE=2000
     
    # check the window size after each command and, if necessary,
    # update the values of LINES and COLUMNS.
    shopt -s checkwinsize
     
    # If set, the pattern "**" used in a pathname expansion context will
    # match all files and zero or more directories and subdirectories.
    #shopt -s globstar
     
    # make less more friendly for non-text input files, see lesspipe(1)
    #[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
     
    # set variable identifying the chroot you work in (used in the prompt below)
    if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
        debian_chroot=$(cat /etc/debian_chroot)
    fi
     
    # set a fancy prompt (non-color, unless we know we "want" color)
    case "$TERM" in
        xterm-color|*-256color) color_prompt=yes;;
    esac
     
    # uncomment for a colored prompt, if the terminal has the capability; turned
    # off by default to not distract the user: the focus in a terminal window
    # should be on the output of commands, not on the prompt
    #force_color_prompt=yes
     
    if [ -n "$force_color_prompt" ]; then
        if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    	# We have color support; assume it's compliant with Ecma-48
    	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
    	# a case would tend to support setf rather than setaf.)
    	color_prompt=yes
        else
    	color_prompt=
        fi
    fi
     
    if [ "$color_prompt" = yes ]; then
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    else
        PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    fi
    unset color_prompt force_color_prompt
     
    # If this is an xterm set the title to user@host:dir
    case "$TERM" in
    xterm*|rxvt*)
        PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
        ;;
    *)
        ;;
    esac
     
    # enable color support of ls and also add handy aliases
    if [ -x /usr/bin/dircolors ]; then
        test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
        alias ls='ls --color=auto'
        alias dir='dir --color=auto'
        alias vdir='vdir --color=auto'
     
        alias grep='grep --color=auto'
        alias fgrep='fgrep --color=auto'
        alias egrep='egrep --color=auto'
    fi
     
    # colored GCC warnings and errors
    #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
     
    # some more ls aliases
    alias ll='ls -l'
    alias la='ls -A'
    alias l='ls -CF'
     
    # Alias definitions.
    # You may want to put all your additions into a separate file like
    # ~/.bash_aliases, instead of adding them here directly.
    # See /usr/share/doc/bash-doc/examples in the bash-doc package.
     
    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi
     
    # enable programmable completion features (you don't need to enable
    # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
    # sources /etc/bash.bashrc).
    if ! shopt -oq posix; then
      if [ -f /usr/share/bash-completion/bash_completion ]; then
        . /usr/share/bash-completion/bash_completion
      elif [ -f /etc/bash_completion ]; then
        . /etc/bash_completion
      fi
    fi
    Lorsque je fais la commande suivante avec vim :
    :source % équivalent de source ~/.bashrc
    J'ai un beau paquet d'erreur que je n'arrive pas à expliquer.
    Ci dessous les erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    Error detected while processing /home/ubuntu/.bashrc:
    line    1:
    E488: Trailing characters: # ~/.bashrc: executed by bash(1) for non-login shells.
    line    2:
    E488: Trailing characters: # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
     
    line    3:
    E488: Trailing characters: # for examples
    line    5:
    E488: Trailing characters: # If not running interactively, don't do anything
    line    6:
    E492: Not an editor command: case $- in
    line    7:
    E488: Trailing characters:     *i*) ;;
    line    8:
    E492: Not an editor command:       *) return;;
    line    9:
    E492: Not an editor command: esac
    line   11:
    E488: Trailing characters: # don't put duplicate lines or lines starting with space in the history.
    line   12:
    E488: Trailing characters: # See bash(1) for more options
    line   13:
    E492: Not an editor command: HISTCONTROL=ignoreboth
    line   15:
    E488: Trailing characters: # append to the history file, don't overwrite it
    line   16:
    E492: Not an editor command: shopt -s histappend
    line   18:
    E488: Trailing characters: # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
    line   19:
    E492: Not an editor command: HISTSIZE=1000
    line   20:
    E492: Not an editor command: HISTFILESIZE=2000
    line   22:
    E488: Trailing characters: # check the window size after each command and, if necessary,
    line   23:
    E488: Trailing characters: # update the values of LINES and COLUMNS.
    line   24:
    E492: Not an editor command: shopt -s checkwinsize
    line   26:
    E488: Trailing characters: # If set, the pattern
    line   27:
    E488: Trailing characters: # match all files and zero or more directories and subdirectories.
    line   28:
    E488: Trailing characters: #shopt -s globstar
    line   30:
    E488: Trailing characters: # make less more friendly for non-text input files, see lesspipe(1)
    line   31:
    E488: Trailing characters: #[ -x /usr/bin/lesspipe ] && eval
    line   33:
    E488: Trailing characters: # set variable identifying the chroot you work in (used in the prompt belo
    w)
    ...
    ...
    Vous avez une explication ?
    Je tiens à préciser j'utilise Ubuntu dans une VM sous VMware.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 672
    Par défaut
    :so % est une commande vim, pour sourcer des fichiers de configuration ... vim dans vim pour vim !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    Citation Envoyé par zephyre Voir le message
    Mais j'ai juste un petit souci, impossible de source aussi bien mon fichier .bashrc que mon fichier .bash_aliases.

    Je ne vois aucune erreur dans mon fichier .bashrc, je n'y ai pas touché.
    Ci dessous mon fichier .bashrc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    # Alias definitions.
    # You may want to put all your additions into a separate file like
    # ~/.bash_aliases, instead of adding them here directly.
    # See /usr/share/doc/bash-doc/examples in the bash-doc package.
     
    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi
    Rien compris
    Tu dis ne pas avoir touché à ton .bashrc mais tu as déja "inclu" tes alias dans ton .bashrc (ligne 102)

    Il te suffisait de mettre tes alias dans le bon fichier, et à la prochaine ouverture du terminal, ils sont disponibles (ou dans ton shell, si flemme de fermer le terminal, tu "source" ton .bashrc)

  7. #7
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 294
    Par défaut
    Bonjour

    Il ne faut pas confondre fonction et alias. Une fonction agrège diverses commandes en une seule. Alors que l'alias permet d'écrire en 3 caractères ce qu'on tape 20 fois par jour en 50 caractères.

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 850
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par papajoker Voir le message
    Tu dis ne pas avoir touché à ton .bashrc mais tu as déja "inclu" tes alias dans ton .bashrc (ligne 102)
    Cette ligne 102 est présente dans les .bashrc proposés par défaut des Linux récents. C'est donc pas de son fait et probablement n'y a-t-il pas fait attention.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [Python 3.X] Import dans des modules? Comment faire et quelles sont les bonnes pratiques?
    Par Davjack dans le forum Général Python
    Réponses: 2
    Dernier message: 03/07/2014, 12h13
  2. Réponses: 33
    Dernier message: 18/04/2009, 12h36
  3. Réponses: 7
    Dernier message: 23/03/2009, 22h38
  4. Quelles sont les bonnes pratiques avec Zend Framework ?
    Par Community Management dans le forum Zend Framework
    Réponses: 14
    Dernier message: 02/02/2009, 20h35
  5. [C#/ASP.Net/DAL] Quelles sont les bonnes pratiques ?
    Par fouhaa dans le forum Accès aux données
    Réponses: 4
    Dernier message: 13/07/2006, 23h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo