Versión 1.0 (2014-01-11).
Comentarios, erratas y propuestas a alcortes@it.uc3m.es.
La línea de comandos es una herramienta sencilla y potente que se puede aprender a utilizar en pocos minutos.
Esta guía está pensada para enseñarte lo básico y necesario, en el contexto de una asignatura de introducción a la programación.
Está inspirada en Windows Command Prompt in 15 Minutes.
Es un programa que te permite comunicarte con tu sistema operativo mediante una interfaz textual, que utiliza un lenguaje de alto nivel, cercano al lenguaje natural.
Hoy en día la mayoría de usuarios interaccionan con Windows mediante una
interfaz gráfica (GUI,
Otros nombres por los que se conoce a la Línea de comandos son:
el
Para arrancar la Línea de comandos en Windows has de ejecutar el
programa cmd
.
Una manera rápida de hacer esto es desde el
menú Iniciar
, rellena el campo de texto "Buscar programas
y archivos" con el nombre del programa de la línea de
comandos: cmd
y pulsa la tecla "Entrar".
Aparecerá la ventana de la línea de comandos, con un aspecto similar a este:
La Línea de comandos está lista para trabajar y ejecutar cualquier
orden que tú le des. Estas "órdenes" se
denominan
Para ejecutar un comando simplemente escribe su nombre y pulsa la tecla "Entrar".
Por ejemplo, el comando para cerrar la línea de comandos se
llama EXIT
. Prueba a cerrar la línea de comandos usando
este sencillo comando.
Algunos comandos admiten ECHO
imprime por pantalla
los argumentos que le pases:
C:\Users\Alberto>echo Hola Mundo! Hola Mundo!
Para separar y distinguir los comandos de sus argumentos se utiliza uno (o varios) espacios.
A nivel de programación, la Línea de comandos es un programa muy sencillo, consiste en un simple bucle infinito:
El directorio de trabajo es un concepto fundamental en la Línea de comandos y representa el "lugar" del sistema de ficheros donde estaremos trabajando.
Cuando creamos o accedemos a ficheros desde la Línea de comandos, estos se crearán, por defecto, en nuestro directorio de trabajo.
La Línea de comandos nos recuerda cual es nuestro directorio de
trabajo en todo momento mostrándonos su ruta por pantalla cada vez que
espera a que le introduzcamos un nuevo comando. En los ejemplos
anteriores, el directorio de trabajo
era C:\Users\Alberto
.
El comando CD
(
En el siguiente ejemplo vamos a copiar un fichero java desde el
directorio "practicas" en nuestro "Escritorio"
(C:\Users\Alberto\Desktop\practicas
) a un pincho USB
montado en la unidad E:
. Para ello utilizaremos los
comandos:
CD
: para movernos de un sitio a otro.DIR
: para listar los archivos en un directorio.COPY
: para copiar ficheros de un sitio a otro.C:\Users\Alberto>cd Desktop\practicas C:\Users\Alberto\Desktop\practicas>dir Volume in drive C has no label. Volume Serial Number is A276-0A43 Directory of C:\Users\Alberto\Desktop\practicas 2014-01-12 10:50 <DIR> . 2014-01-12 10:50 <DIR> .. 2014-01-12 10:50 119 HelloWorld.java 1 File(s) 119 bytes 2 Dir(s) 852.358.754.304 bytes free C:\Users\Alberto\Desktop\practicas>copy HelloWorld.java E:\backup 1 file(s) copied. C:\Users\Alberto\Desktop\practicas>cd E:\backup C:\Users\Alberto\Desktop\practicas>E: E:\backup>dir Volume in drive E has no label. Volume Serial Number is 82F9-0FE4 Directory of E:\backup 2014-01-12 10:52 <DIR> . 2014-01-12 10:52 <DIR> .. 2014-01-12 10:50 119 HelloWorld.java 1 File(s) 119 bytes 2 Dir(s) 2.049.359.872 bytes free
La Línea de comandos admite algunas abreviaturas prácticas para referirnos a directorios importantes:
En el siguiente ejemplo vamos a mover el fichero java que copiamos
antes, del directorio E:\backup
al directorio
(E:\backup\practicas
) utilizando el
comando MOVE
.
E:\backup> cd practicas E:\backup\practicas>move ../HelloWorld.java . 1 file(s) moved.
En los ejemplos anteriores ya hemos visto cómo listar los ficheros de un directorio, cómo copiar ficheros y cómo moverlos. A continuación se presenta una lista un poco más extensa de comandos útiles para trabajar con ficheros:
CD
: cambia el directorio de trabajoE:
: nos mueve a la unidad "E:
",
sustituir por el nombre de la unidad apropiada, por
ejemplo C:
.DIR
: lista los archivos contenidos en un
directorioMKDIR
: crea un nuevo directorioRMDIR
: borra un directorioCOPY
: copia un fichero a un directorioMOVE
: mueve un fichero a un directorioDEL
: borra un ficheroMORE
: muestra el contenido de un ficheroLa Línea de comandos admite algunos caracteres comodín, que sirven para referirse a varios ficheros al mismo tiempo. Por ejemplo el carácter "*" sirve para referirse a todos los ficheros de un directorio.
Por ejemplo, para copiar todos nuestros ficheros de prácticas a nuestro pincho USB, podemos utilizar el siguiente comando:
C:\Users\Alberto\Desktop\practicas>dir Volume in drive C has no label. Volume Serial Number is A276-0A43 Directory of C:\Users\Alberto\Desktop\practicas 2014-01-12 11:18 <DIR> . 2014-01-12 11:18 <DIR> .. 2014-01-12 11:18 426 HelloWorld.class 2014-01-12 10:50 119 HelloWorld.java 2 File(s) 545 bytes 2 Dir(s) 852.354.453.504 bytes free C:\Users\Alberto\Desktop\practicas>copy * E:\backup HelloWorld.class HelloWorld.java 2 file(s) copied.
Para trabajar con Java, a nivel básico, es importante conocer los siguientes comandos:
JAVAC
: el compilador de Java. Admite como
argumentos la lista de ficheros .java
que se quiere
compilar. Admite también otros argumentos, la lista completa se
puede obtener ejecutando el comando sin argumentos.JAVA
: la máquina virtual Java. Admite como
argumento el nombre de la clase cuyo método Main
se
quiere ejecutar. Admite también otros argumentos, la lista completa
se puede obtener ejecutando el comando sin argumentos.En el siguiente ejemplo vamos a compilar y ejecutar un sencillo programa Java desde la Línea de comandos:
C:\Users\Alberto\Desktop\practicas>javac HelloWorld.java C:\Users\Alberto\Desktop\practicas>java HelloWorld Hello World!
Los comandos diseñados para funcionar con la Línea de comandos tienen por defecto 3 interfaces de comunicación con el mundo exterior:
System.out.println("Hello
World!")
le está pidiendo a la salida estándar que muestre
ese texto por la pantalla.Estos flujos puede redireccionarse, por ejemplo para guardar el resultado de un comando en un fichero en vez de mostrarlo por pantalla, o para redireccionar la salida de un comando a la entrada de otro comando.
Estas operaciones de redirección se realizan utilizando los operadores "<", ">" y "|" (para redireccionar la entrada estándar, la salida estándar y para enlazar salida y entrada respectivamente).
Por ejemplo, para guardar la salida de nuestro programa HelloWorld
en un fichero llamado salida.txt
y comprobar su contenido
después, podemos ejecutar la siguiente secuencia de comandos:
C:\Users\Alberto\Desktop\practicas>java HelloWorld > salida.txt C:\Users\Alberto\Desktop\practicas>more salida.txt Hello World!
Si tenemos un programa Java que cuenta palabras de su entrada estándar, podemos contar las palabras de nuestro fichero de la siguiente manera:
C:\Users\Alberto\Desktop\practicas>java CountWords < salida.txt 2
También podemos contar las palabras directamente de la salida original de nuestro programa HelloWorld, enlazando las salidas y entradas de ambos comandos:
C:\Users\Alberto\Desktop\practicas>java HelloWorld | java CountWords 2
En muchos sistemas operativos, la Línea de comandos es un programa extremadamente potente y versátil, cuyo manejo profesional es fundamental para un desempeño eficiente de nuestro trabajo.
Sin embargo, la Línea de comandos de Windows es un caso especial, ya que sus funcionalidades son muy limitadas, su lenguaje es inconsistente y su documentación es escasa y confusa.
Aun así, aprender a usarla es muy beneficioso, ya que no solo nos ahorrará tiempo cuando trabajemos en Windows, si no que nos familiarizará con una herramienta que necesitaremos en el futuro, en otros entornos más profesionales.
HelloWo
(por ejemplo para borrar
con un solo comando los ficheros HelloWorld.java
y HelloWorld.class
de un directorio sin borrar otros
ficheros importantes).