OVH Cloud OVH Cloud

Definition des alias en bash

9 réponses
Avatar
herve.nospam
Salut,

Quelle est la syntaxe pour définir un alias en bash ?
J'ai essayé de mettre dans ~/.profile :
alias la "ls -a"

mais au login j'ai le message suivant :
-bash: alias: la: not found
-bash: alias: ls -a: not found

Questions subsidaires :
1. où aurais-je pu trouver tout seul la réponse à ma question ? J'ai
essayé man bash, qui parle bien des alias mais ne donne pas d'exemple
de syntaxe.
2. est-il correct de mettre les alias (je n'en ai pas beaucoup) dans
~/.profile ?

Merci d'avance,

Hervé

9 réponses

Avatar
patpro
In article ,
(herve) wrote:

Salut,

Quelle est la syntaxe pour définir un alias en bash ?
J'ai essayé de mettre dans ~/.profile :
alias la "ls -a"

mais au login j'ai le message suivant :
-bash: alias: la: not found
-bash: alias: ls -a: not found


des trucs comme ca sont possibles :

alias d='ls -la --color|more'
alias nano='pico'

psgrep()
{
ps -aux | grep $1 | grep -v grep
}




Questions subsidaires :
1. où aurais-je pu trouver tout seul la réponse à ma question ? J'ai
essayé man bash, qui parle bien des alias mais ne donne pas d'exemple
de syntaxe.


sur le web ? :)

2. est-il correct de mettre les alias (je n'en ai pas beaucoup) dans
~/.profile ?


c'est une idée, le man bash (section "INVOCATION") te dira exactement
quels fchiers sont lus et dans quel ordre selon l'utilisation du shell.
tu en déduiras quoi mettre à quel endroit à ta convenance.


patpro

--
je cherche un poste d'admin UNIX/Mac
http://patpro.net/cv.php

Avatar
Fabien
In article (Dans l'article)
, herve
wrote (écrivait) :

Salut,

Quelle est la syntaxe pour définir un alias en bash ?
J'ai essayé de mettre dans ~/.profile :
alias la "ls -a"


alias la='ls -a'

Avatar
herve.nospam
Salut,

patpro wrote in message news:...
des trucs comme ca sont possibles :

alias d='ls -la --color|more'
(...)


Merci

c'est une idée, le man bash (section "INVOCATION") te dira exactement
quels fchiers sont lus et dans quel ordre selon l'utilisation du shell.


le man me dit que les fichiers lus sont dans l'ordre : /etc/profile,
~/.bash_profile, ~/.bash_login, et ~/.profile.

Seul le premier et le dernier existent chez moi. Je vais donc mettre
mes petites affaires dans ~/.profile.

Autre problème : j'ai un prompt variable !
Après avoir installé Panther, j'avais un truc de la forme :
Ordinateur-de-prenom-nom:~ hf$
où hf est mon nom d'utilisateur abrégé.
Puis après un redémarrage de Panther j'ai eu, je ne sais pas comment :
machine:~ hf$ (ce qui me plaît d'avantage)
et maintenant, je ne sais pas par quel miracle, et alors que je n'ai
rien changé à mes fichiers de configuration, je me retrouve avec la
première version. Peut-être est-ce dû à l'installation de fileutils
que je viens de faire via Fink ?
Je n'ai rien vu qui concerne le prompt dans /etc/profile, donc où sa
syntaxe est-elle définie ?

Hervé

Avatar
patpro
In article ,
(herve) wrote:

Autre problème : j'ai un prompt variable !

Peut-être est-ce dû à l'installation de fileutils
que je viens de faire via Fink ?


ha ben ca... faut pas installer tout et n'importe quoi ;)) (fink en
premier) sans savoir exactement ce que ça va donner.
La je peux pas t'aider, mais je te suggere de faire une relecture
complete de tous les .profiles, et autres .(ba)shrc que tu trouveras
(avec find par exemple)

patpro

--
je cherche un poste d'admin UNIX/Mac
http://patpro.net/cv.php

Avatar
Frédéric Testuz
On 11 Dec 2003 08:03:11 -0800, (herve) wrote:

Salut,

patpro wrote in message news:...
des trucs comme ca sont possibles :

alias d='ls -la --color|more'
(...)


Merci

c'est une idée, le man bash (section "INVOCATION") te dira exactement
quels fchiers sont lus et dans quel ordre selon l'utilisation du shell.


le man me dit que les fichiers lus sont dans l'ordre : /etc/profile,
~/.bash_profile, ~/.bash_login, et ~/.profile.

Seul le premier et le dernier existent chez moi. Je vais donc mettre
mes petites affaires dans ~/.profile.

Autre problème : j'ai un prompt variable !
Après avoir installé Panther, j'avais un truc de la forme :
Ordinateur-de-prenom-nom:~ hf$
où hf est mon nom d'utilisateur abrégé.
Puis après un redémarrage de Panther j'ai eu, je ne sais pas comment :
machine:~ hf$ (ce qui me plaît d'avantage)
et maintenant, je ne sais pas par quel miracle, et alors que je n'ai
rien changé à mes fichiers de configuration, je me retrouve avec la
première version. Peut-être est-ce dû à l'installation de fileutils
que je viens de faire via Fink ?


Je ne peux pas te donner de réponse, mais j'ai un phénomène semblable.
Chez moi, le prompt donne :
nommachine:~ ftestuz$ (nommachine étant choisi dans Partage)

A l'école, lorsque je me connecte par Airport, il devient :
tsf1:~ ftestuz$ (tsf1 étant sans doute le nom donné par
la connexion)

Donc ce nom doit correspondre au nom de ta machine sur le réseau
local.

--
Frédéric Testuz
<mailto:


Avatar
herve.nospam
patpro wrote in message news:...
ha ben ca... faut pas installer tout et n'importe quoi ;)) (fink en
premier) sans savoir exactement ce que ça va donner.


Après réflexion Fink semble hors de cause dans l'affaire, car le
passage - inexpliqué - du prompt :
Ordinateur-de-prenom-nom:~ hf$
au prompt :
machine:~ hf$ (ce qui me plaît d'avantage)
a eu lieu _avant_ l'installation de Fink.

La je peux pas t'aider, mais je te suggere de faire une relecture
complete de tous les .profiles, et autres .(ba)shrc que tu trouveras
(avec find par exemple)


le seul .profile est celui qui est dans ~
aucun .shrc ni .bashrc

par contre, j'ai /private/etc/bashrc qui contient :

# System-wide .bashrc file for interactive bash(1) shells.
PS1='h:w u$ '
# Make bash check it's window size after a process completes
shopt -s checkwinsize

et je crois que le prompt est défini par PS1, non ? Si oui, comment se
décode la syntaxe ci-dessus et comment la modifier ?

D'autre part , j'ai un /private/etc/csh.cshrc qui contient :

# System-wide .cshrc file for csh(1).

if ($?prompt) then
set promptchars = "%#"
if ($?tcsh) then
set prompt = "[%m:%c3] %n%# "
else
set prompt = "[%m:%c3] `id -nu`%# "
endif
endif

mais si ne ne m'abuse, les csh.cshrc, csh.login et csh.logout ne
devraient pas être utilisés puisque mon shell de login est bash, non ?

Hervé

Avatar
Vincent NICOLAS
In article ,
(herve) wrote:

et je crois que le prompt est défini par PS1, non ? Si oui, comment se
décode la syntaxe ci-dessus et comment la modifier ?


Tu peux le modifier dans ton ~/.bashrc
Par exemple, moi j'ai mis :
export PS1="G4:W $ "

Sinon, voici un extrait du man bash qui te dira tout :

PROMPTING
When executing interactively, bash displays the primary prompt PS1 when
it is ready to read a command, and the secondary prompt PS2 when it
needs more input to complete a command. Bash allows these prompt
strings to be customized by inserting a number of backslash-escaped
special characters that are decoded as follows:
a an ASCII bell character (07)
d the date in "Weekday Month Date" format (e.g., "Tue May
26")
D{format}
the format is passed to strftime(3) and the result is
inserted into the prompt string; an empty format results
in a locale-specific time representation. The braces are
required
e an ASCII escape character (033)
h the hostname up to the first `.'
H the hostname
j the number of jobs currently managed by the shell
l the basename of the shell's terminal device name
n newline
r carriage return
s the name of the shell, the basename of $0 (the portion
following the final slash)
t the current time in 24-hour HH:MM:SS format
T the current time in 12-hour HH:MM:SS format
@ the current time in 12-hour am/pm format
A the current time in 24-hour HH:MM format
u the username of the current user
v the version of bash (e.g., 2.00)
V the release of bash, version + patchelvel (e.g., 2.00.0)
w the current working directory
W the basename of the current working directory
! the history number of this command
# the command number of this command
$ if the effective UID is 0, a #, otherwise a $
nnn the character corresponding to the octal number nnn
a backslash
[ begin a sequence of non-printing characters, which could
be used to embed a terminal control sequence into the
prompt
] end a sequence of non-printing characters




--
Vincent Nicolas
En direct de Lyon


Avatar
herve.nospam
(herve) wrote in message news:...
Après réflexion Fink semble hors de cause dans l'affaire, car le
passage - inexpliqué - du prompt :
Ordinateur-de-prenom-nom:~ hf$
au prompt :
machine:~ hf$ (ce qui me plaît d'avantage)
a eu lieu _avant_ l'installation de Fink.


Complément : j'ai retrouvé mon prompt "normal" (machine:~ hf$) après
un redémarrage du Mac, sans avoir changé quoi que ce soit à Fink. Ca a
donc l'air de clocher du côté de MacOS X.

Hervé

Avatar
herve.nospam
Vincent NICOLAS wrote in message news:...
Tu peux le modifier dans ton ~/.bashrc
Par exemple, moi j'ai mis :
export PS1="G4:W $ "


Problème : je n'ai pas de ~/.bashrc, seulement un /private/etc/bashrc
qui n'a pas l'air d'être lu puisque la modif de la syntaxe du PS1 dans
celui-ci ne change rien.

Sinon, voici un extrait du man bash qui te dira tout :


Merci, ça me servira quand j'aurai trouvé quel fichier définit le
prompt sur _mon_ système.
Mon prompt varie au gré des redémarrages entre
"Ordinateur-de-Prenom-Nom" et "Machine".

Hervé