¿Hay alguna forma de agregar comandos personalizados /bin?
Por ejemplo, uso docker container lsmucho y me gustaría convertir esto en un comando de acceso directo, como dcls.
Si añado un archivo llamado dclsa /biny dentro del archivo, especifique el comando exacto docker container ls, supongo que esto no funcionaría.
¿Cuál es la forma correcta, si hay una, de hacer algo como esto?
                    
                        ubuntu
                                command-line
                                docker
                                
                    
                    
                        alex067
fuente
                
                fuente

/bin, puede agregar a~/bin(un contenedor en su propio directorio) o a/usr/local/bin(para compartir con todos los usuarios de su sistema, pero no interferir con el administrador de paquetes). O mejor en este caso, usar un alias.Respuestas:
Una manera fácil de un atajo es definir un
aliasEsto se ejecutará
docker container lscuando ingresedclsy el comandoaliasenumere sus alias definidos. Para eliminar este alias, useunalias dcls.Si usa bash, puede guardar el alias en su
~/.bashrco~/.bash_aliases.Si
~/.bash_aliasesno se lee en el inicio, puede agregar esta línea a su~/.bashrc:fuente
~/.bashrco~/.profile, o ... Si no lo hace guardar el alias que se pierde cuando se cierra la sesión o cerrar el terminal.echo "alias dcls='docker container ls'" >> ~/.bashrc, luego. ~/.bashrcobtenerlo o cerrar sesión e iniciar sesión nuevamente.En realidad, lo que describas funcionaría, con algunas notas:
docker container lsen un archivo llamado/bin/dcls. Pero el comportamiento de eso puede ser un poco complicado. Es un poco más confiable comenzar el archivo con una línea llamada "shebang", para que el archivo se vea comoque especifica que el archivo es un script de shell.sudo).Siga los dos pasos anteriores y podrá escribir
que especifica que cualquier argumento que escriba en ladclsy funcionarádocker container ls. Pero, si escribedcls -l foo, todavía lo harádocker container ls. Si quieres que lo hagadocker container ls -l foo, debes cambiar el guión para que digadclslínea de comando debe pasar aldocker container lscomando.Naturalmente, hay cosas más complicadas que puede hacer con argumentos de línea de comandos.
Para una asignación de un comando simple → un comando simple, que no necesita ser compartido con otros usuarios, es más simple definir un alias ( como sugirió Freddy ), o una función de shell. Las funciones más complicadas a menudo se escriben como scripts; es decir, archivos de texto que contienen comandos. Pero, si no necesita compartirlo con otros usuarios, es más común usar un
A continuación, copiebindirectorio privado .dclsa$HOME/bin, y añadira tu~/.bashrc.Además, es común incluir scripts personales
/usr/local/biny salir/binpara los programas que vienen con el sistema.fuente
/bin,/usr/biny generalmente comparten directorios como/usr/local/biny/opt, a veces , por lo que los programas en esos directorios están disponibles para todos los usuarios./usr/local/bin, no interfiera con el administrador de paquetes.$HOME/bin. Realmente deberías usar esto. Este no es solo el alcance correcto, sino que ayuda cuando reinstala su sistema (y mantiene suHOME) para no perder su comando personalizado.~/.local/binen su lugar .Si es solo para usted, un alias está bien, pero de acuerdo con el estándar de jerarquía del sistema de archivos de Linux , los scripts locales de todo el sistema entran
/usr/local/bin/, no/bin./bin, es mejor cumplir con los estándares, especialmente si su software se implementará en los sitios del cliente./optEl guión en sí sería:
fuente