Modification_du_shell_Bash__english_

Modification of the Bash shell

To improve productivity, it may be useful to extend the bash. There are two main ways to do this:

  • creating aliases,
  • creating functions.

Creating an alias

There are two files in this directory:

  • a normal file myfile.txt,
  • a hidden file myhiddenfile.txt.

To define an alias of command, use the alias command. For example, let’s define an alias myls for the command ls -ah.

Let’s make sure we only see the uncached file with the `ls’ command:

ls
myfile.txt
]0;vagrant@centos71:/vagrant/test

Let’s check that the command myls doesn’t exist:

myls
bash: myls : commande introuvable

Let’s create the alias:

echo 'alias myls="ls -ah"' >> ~/.bashrc

Let’s tell Bash that we want to use this alias in the current session:

. ~/.bashrc
]0;vagrant@centos71:/vagrant/test

Let’s check that the Bash environment now recognizes this alias:

myls
.  ..  myfile.txt  .myhiddenfile
]0;vagrant@centos71:/vagrant/test

So the alias myls does exist.

We could also have created an alias for the command them itself:

echo 'alias ls="ls -ah"' >> ~/.bashrc
]0;vagrant@centos71:/vagrant/test

Reload the alias:

. ~/.bashrc
]0;vagrant@centos71:/vagrant/test

Check that the command ls now has the default arguments -ah:

ls
.  ..  myfile.txt  .myhiddenfile
]0;vagrant@centos71:/vagrant/test

To display the list of aliases, you can use the command alias:

alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls -ah'
alias myls='ls -ah'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
]0;vagrant@centos71:/vagrant/test

Creating a fonction

It is also possible to create a function that accepts the command arguments as parameters. This function must be defined in the ~/.bashrc file. For example, you can define a dpull function to run the docker pull command:

cat <<EOF>> ~/.bashrc
function dpull()
{
    docker pull \$1;
}
EOF

Let’s source the file .bashrc:

. ~/.bashrc
]0;vagrant@centos71:/vagrant/notebooks/linux

Let’s check that the dpull alpine command has the same effect as the docker pull alpine command:

dpull alpine
Using default tag: latest
latest: Pulling from library/alpine

Digest: sha256:c0e9560cda118f9ec63ddefb4a173a2b2a0347082d7dff7dc14272e7841a5b5a
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
]0;vagrant@centos71:/vagrant/notebooks/linux

So we’ve seen two ways to extend Bash to improve our productivity.

Modification_du_shell_Bash__french_

Modification du shell Bash

Pour améliorer la productivité, il peut être utile d’étendre le bash. Pour cela, il y a deux moyens principaux :

  • création d’alias,
  • création de fonctions.

Création d’un alias

Il y a deux fichiers dans ce répertoire :

  • un fichier normal myfile.txt,
  • un fichier caché myhiddenfile.txt.

Pour définir un alias de commande, utiliser la commande alias. Par exemple, définissons un alias myls pour la commande ls -ah.

Vérifions que nous ne voyons que le fichier non caché avec la commande ls :

ls
myfile.txt
]0;vagrant@centos71:/vagrant/test

Vérifions que la commande myls n’existe pas :

myls
bash: myls : commande introuvable

Créons l’alias :

echo 'alias myls="ls -ah"' >> ~/.bashrc

Indiquons à Bash que nous voulons utiliser cet alias dans la session courant :

. ~/.bashrc
]0;vagrant@centos71:/vagrant/test

Vérifions que l’environnement Bash reconnaît maintenant cet alias :

myls
.  ..  myfile.txt  .myhiddenfile
]0;vagrant@centos71:/vagrant/test

L’alias myls existe donc bien.

Nous aurions aussi pu créer un alias de la commande ls elle même :

echo 'alias ls="ls -ah"' >> ~/.bashrc
]0;vagrant@centos71:/vagrant/test

Recharger l’alias :

. ~/.bashrc
]0;vagrant@centos71:/vagrant/test

Vérifier que la commande ls a maintenant les arguments -ah par défaut :

ls
.  ..  myfile.txt  .myhiddenfile
]0;vagrant@centos71:/vagrant/test

Pour afficher la liste des alias, on peut utiliser la commande alias :

alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls -ah'
alias myls='ls -ah'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
]0;vagrant@centos71:/vagrant/test

Création d’une fonction

Il est également possible de créer une fonction acceptant comme paramètres les arguments de la commande. Cette fonction doit être définie dans le fichier ~/.bashrc. Par exemple, on peut définir une fonction dpull pour lancer la commande docker pull :

cat <<EOF>> ~/.bashrc
function dpull()
{
    docker pull \$1;
}
EOF

Sourçons le fichier .bashrc :

. ~/.bashrc
]0;vagrant@centos71:/vagrant/notebooks/linux

Vérifions que la commande dpull alpine a bien le même effet que la commande docker pull alpine :

dpull alpine
Using default tag: latest
latest: Pulling from library/alpine

Digest: sha256:c0e9560cda118f9ec63ddefb4a173a2b2a0347082d7dff7dc14272e7841a5b5a
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
]0;vagrant@centos71:/vagrant/notebooks/linux

Nous avons donc vu deux méthodes pour étendre Bash, afin d’améliorer notre productivité.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×