Oui, c'est possible, et il y en a déjà quelques-uns. Comme /usr/bin/X
:)
[email protected]:~$ ls {/usr{/local,},}/{s,}bin | grep '[A-Z]'
MAKEDEV
amuFormat.sh
GET
HEAD
Mail
POST
X
X11
Xephyr
Xnest
Xorg
NetworkManager
[email protected]:~$ zcat ~/.cache/apt-file /archive.ubuntu.com_ubuntu_dists_precise_Contents-i386.gz | tail -n +33 | cut -f1 | grep -P '^(usr/)?s?bin/.*[A-Z]' | wc -l
758
C'est donc 758 dans tout Ubuntu 12.04. Liste complète :https://gist.github.com/5264777
Il n'y a aucune restriction sur les noms de commande sous Unix. Tout fichier peut être une commande. Et un nom de fichier peut être n'importe quelle séquence d'un ou plusieurs (jusqu'à une limite cependant) de caractères autres que ASCII NUL ou ASCII /
. zsh
lève même cette limitation pour les fonctions où vous pouvez avoir n'importe quelle chaîne comme nom de fonction.
Quelques remarques cependant :
- vous aurez du mal à créer un fichier de commandes appelé
.
ou..
;-). - évitez les noms qui sont déjà pris par des commandes standard ou des commandes intégrées ou des mots-clés (au moins des shells les plus courants comme
bash
,zsh
,tcsh
ouksh
). À cet égard, les majuscules peuvent aider car elles ne sont généralement pas utilisées par les commandes standard. - Il est préférable de se limiter aux caractères ASCII. Les caractères non ASCII ne sont pas exprimés de la même manière dans les différents jeux de caractères existants
- Pendant que vous y êtes, limitez-vous aux lettres, chiffres, tirets, points et traits de soulignement. Tout le reste, bien que légal, peut causer un problème ou un autre avec tel ou tel outil (par exemple,
|
,=
,&
et beaucoup d'autres devraient être échappés dans des shells, si vous utilisez:
, votre commande ne peut pas être utilisée comme shell de connexion...). Vous pouvez même vouloir exclure.
et-
qui ne sont pas autorisés dans les noms de fonction dans de nombreux shells, au cas où vous voudriez autoriser les utilisateurs à envelopper votre commande dans une fonction shell. - Faites du premier caractère une lettre. Encore une fois, pas une exigence stricte. Mais le trait de soulignement est parfois utilisé pour des choses spéciales (comme dans
zsh
les fonctions des systèmes de complétion commencent par_
), et les commandes à tous les chiffres peuvent être un problème dans des choses commecmd>output.log
. Les fichiers dont le nom commence par un point seront cachés par des choses commels
ou shell globbings et de nombreux gestionnaires de fichiers.
La commande la plus connue est stty
, également disponible en tant que STTY
. Il était très pratique de rétablir le comportement normal du terminal avec STTY SANE
.