Sí se puede, y ya hay algunos. Como /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
Eso es 758 en todo Ubuntu 12.04. Lista completa:https://gist.github.com/5264777
No hay restricciones en los nombres de los comandos en Unix. Cualquier archivo puede ser un comando. Y un nombre de archivo puede ser cualquier secuencia de uno o más (aunque hasta un límite) de caracteres que no sean ASCII NUL o ASCII /
. zsh
incluso elimina esa limitación para funciones en las que puede tener cualquier cadena como nombre de función.
Sin embargo, algunas notas:
- le resultará difícil crear un archivo de comando llamado
.
o..
;-). - evite los nombres que ya están tomados por los comandos estándar o las palabras clave integradas de shell (al menos de los shells más comunes como
bash
,zsh
,tcsh
oksh
). En ese sentido, los caracteres en mayúsculas pueden ayudar, ya que generalmente no se utilizan en los comandos estándar. - Es mejor restringir a los caracteres ASCII. Los caracteres que no son ASCII no se expresan de la misma manera en los distintos conjuntos de caracteres que existen
- mientras lo hace, limítese a letras, dígitos, guiones, puntos y guiones bajos. Cualquier otra cosa, aunque sea legal, puede causar un problema u otro con tal o cual herramienta (por ejemplo,
|
,=
,&
y muchos otros necesitarían escaparse en shells, si usa:
, su comando no se puede usar como shell de inicio de sesión...). Es posible que incluso desee excluir.
y-
que no están permitidos en los nombres de funciones en muchos shells, en caso de que desee permitir que los usuarios envuelvan su comando en una función de shell. - Convierta el primer carácter en una letra. Una vez más, no es un requisito estricto. Pero el guión bajo a veces se usa para cosas especiales (como en
zsh
las funciones de los sistemas de finalización comienzan con_
), y los comandos de todos los dígitos pueden ser un problema en cosas comocmd>output.log
. Los archivos cuyo nombre comience con un punto estarán ocultos por cosas comols
o shell globbings y muchos administradores de archivos.
El comando más famoso es stty
, que también estaba disponible como STTY
. Fue muy útil restablecer el terminal a su comportamiento normal con STTY SANE
.