Par exemple, puis-je définir:
gb = cd /media/Dan/evolution
... pour que chaque fois que j'exécute gb
en bash, je peux accéder cd
à ce répertoire particulier?
J'ai trouvé quelque chose en ligne: la alias
commande. Mais il semble qu'il ne puisse pas faire le travail ci-dessus.
Est-il possible de le faire? Comment?
alias gb='cd /media/Dan/evolution'
posix
plainte, donc pas seulementbash
.Réponses:
tapez simplement:
Pour rendre ce paramètre permanent (afin qu'il reste après avoir redémarré ou ouvert une autre console), ajoutez cette ligne au fichier ~ / .bashrc (en supposant que vous utilisez le bash comme shell par défaut)
la source
Alternative à l'aliasing
Ceci définit la fonction shell gb, qui ne prend aucun argument et exécute cd / media / Dan / evolution. Comme avec d'autres suggestions, cela peut être ajouté à ~ / .bashrc
la source
type gb
fonctionnera s'il s'agit d'un alias ou d' une fonction.{ echo 'true() { : ; }' >./script ; . ./script ; command -V true ; command -V /usr/bin/true ; }
-true is a shell function\n/usr/bin/true is /usr/bin/true
- les\n
caractères étaient littéralement des retours à la ligne dans la sortie.C'est possible et
alias
c'est la commande que vous recherchez. Par exemple,alias ll="ls -l"
dans bash, vous pourrez taperll
au lieu dels -l
. Veuillez noter qu'aucun espace n'est utilisé lors de la définition d'un alias.man alias
peut également être utile.la source
Alternativement, il est possible d'écrire un programme C qui appelle la commande souhaitée et de l'enregistrer dans / usr / bin.
Pour le compiler, allez dans le répertoire où la source a été enregistrée (en bash) et exécutez (vous aurez peut-être besoin de sudo):
Après de plus amples recherches ici , j'ai réalisé que le simple fait de lancer votre commande
system()
ne fonctionnera pas pour les commandes intégrées de bash. C'est pourquoi vous devez créer une instance d'un bash interactif et y faire écho vos commandes. C'est juste trop compliqué et probablement inutile, sauf si vous voulez, disons, raccourcir un appel à un script shell (some_script
au lieu desh ~/radgeRayden/Scripts/some_script
).Référence pour la fonction system ()
la source
sh -c "cd /media/Dan/evolution"
ne fonctionne pas. Astuce: subshellcd
Mis à part les problèmes de sous-shell, quel est l'avantage d'envelopper une commande shell dans le programme c, quand vous pourriez tout aussi facilement (ou plus facilement) mettre cette commande dans un script shell?