===== Tutorial de FTP =====
Para ingresar al [[cliente]] de [[ftp|FTP]] inseguro (sólo recomendado para contactar a equipamiento público antiguo desde texto-plano.xyz), ingresa el comando:
ftp
...o bien si deseas ejecutar el modo de FTP seguro (recomendado), podrás utilizar:
sftp
Al ingresar al programa cliente de FTP, el //prompt// del intérprete de comandos cambiará a ''ftp>'' o bien ''sftp>'' para indicarte que estás dentro del cliente en modo inseguro o en modo seguro, respectivamente.
Lo siguiente será conectarte (o en la jerga, "abrir") un servidor remoto de FTP. Introduce en el prompt ''ftp>'' el comando **open** seguido de la dirección del servidor de hospedaje. En caso de un FTP público podrías utilizar:
ftp> open servidor.remoto
...o bien, si se trata de un servidor con permisos de entrada, sería:
sftp> open usuario@servidor
El cliente intentará establecer el enlace. Al lograrlo el servidor remoto podría presentarse con un indicador de status, y en caso de ser un FTP seguro, podría solicitarnos nuestro usuario y contraseña del servidor.
{{ :sesion_ftp.png?200 |}}
Esto nos indica el modo de transferencia establecido por el protocolo FTP. El más normal es modo **binary**, que asegura control de transferencia. El otro sistema disponible es el modo **ascii**, normalmente utilizado para transferencias tipo texto o principalmente para el órdenes de los comandos para el servidor remoto.
>Normalmente el clientes FTP conmuta automáticamente estos modos de transferencia de acuerdo a la necesidad de lo realizado.
==== Comandos FTP ====
Una vez que estés enlazado al servidor de FTP, podrás utilizar los comandos de operación que suelen ser los operaciones similares a UNIX o del intérprete de comandos de Windows. Estos comandos intrínsecos son numerosos y tienen una equivalencia numérica, la cual es empleada por el programa cliente local y el servidor remoto para intercomunicarse.
En el caso de los clientes FTP de terminal, es buena costumbre revisar siempre cuál es el directorio de trabajo actual con **pwd**, pues el //prompt de FTP// es bastante menos potente que un [[interpretes de comandos|intérpretes de comandos]] típico, y como tal no suele ser explícito en mostrarlo. Para ello introduce el comando:
sftp> pwd
El servidor FTP devolverá cuál es el directorio de trabajo en el cual estás colocado. Si deseas ver un listado del los ficheros contenidos en tal directorio de trabajo actual, deberás ingresar **ls**:
sftp> ls
...o el sistema FTP Windows el comando equivalente **dir**.
Asimismo, podrás cambiar el directorio actual con **cd**:
sftp> cd directorio/
...o volver un nivel con:
sftp> cd ..
Estos comandos de cambio de directorio de trabajo ("CWD"), deberían provocar un reconocimiento por parte del servidor en forma del mensaje "250 CWD command successful".
Si quisieras descargar un fichero a través FTP, utiliza el comando **get** (en la jerga, "obtener") para solicitarlo. Por ejemplo:
sftp> get fichero.txt
Esto descargará en el directorio de trabajo (si hubieses iniciado la sesión de FTP desde tu carpeta de usuario, el fichero se almacenaría en tu ''/home/$USER'').
La descarga se producirá a la mayor velocidad acordada entre el cliente y el servidor remoto de FTP. Asimismo, se podría presentar un indicativo de status:
{{ :get_ftp.png?200 |}}
Para enviar un fichero al servidor FTP remoto, debes emplear el comando **put** ("colocar").
sftp> put fichero.local /directorio/remoto/archivo.remoto
Naturalmente, en este caso el ''fichero.local'' se almacenaría como ''archivo.remoto'' en el directorio ''/directorio/remoto/''. Este ya debería existir y en caso de usar SFTP deberíamos contar con permisos de escritura en el mismo.
Si no fuese este el caso, podrías omitir tales parámetros:
sftp> put fichero.local
...y de esta forma ''fichero.local'' se enviará con dicho nombre en la carpeta raíz del servidor.
Conforme has finalizado de transferir ficheros, debes instruir al cliente para que corte la comunicación con la sesión de FTP. Para ello ingresa el comando **quit** ("salir"):
sftp> quit
....y el servidor podría indicar un resumen de la sesión de conexión a través del comando 221 de FTP, y regresarte a nuestro //prompt// del [[interpretes_de_comandos|intérprete de comandos de sistema]].
221-
Data traffic for this session was 39 bytes in 1 file.
Total traffic for this session was 7868 bytes in 3 transfers.
221 Thank you for using the FTP service on servidor.org.
=== Comandos avanzados FTP ===
Si bien FTP cuenta con múltiples comandos, varios de ellos pueden variar de acuerdo al sistema de base del servidor remoto. Sin embargo, la mayoría de ellos son estandarizados. Algunos de los más empleados son:
| **Comando FTP** | **Resultado** |
| **status** | Presenta la configuración del cliente |
| **type** | Presenta el Tipo de transmisión |
| **bin** | Conmuta el Tipo de transmisión en binario (recomendado) |
| **ascii** | Conmuta al Tipo de transmisión de texto |
| **get** | Solicita una copia del archivo al servidor remoto. |
| **send** | Envía un archivo al servidor remoto |
| **user** | Inicia una sesión con usuario distinto (solo en SFTP) |
| **rename** | renombra un archivo remoto. |
| **delete** | borra los archivos remotos. |
| **rmdir** | borra un directorio remoto |
| **close** | Corta la comunicación con el servidor FTP pero no sale del cliente |
==== Conclusión ====
Aunque actualmente está rápidamente siendo reemplazado por el protocolo de Shell Seguro [[SSH]] (especialmente [[scp]]), nunca viene mal dominar el empleo de la consola para encaramarnos a sistemas remotos y transferirnos o recuperar archivos desde ellos. FTP permite hacerlo desde La [[terminal de computadora|terminal]] usando mínimos recursos.