Introducción a Linux. II. 1. más acerca de los comandos A excepción de unos pocos comandos, los comandos de Unix y Linux son cada uno de ellos un programa ejecutable. Cuando tipeas un comando, el shell busca a través de todos los directorios indicados en PATH (una variable de entorno), un ejecutable con el mismo nombre. Si lo encuentra lo ejecuta. De lo contrario, dará un error command not found. La mayoría de los comandos se encuentran en /bin, /usr/bin o /usr/local/bin. Además de comando --help, puedes usar al comando man para obtener información. qué utilidad tiene el comando wc? Prueba: [usuario@maquina Desktop] $ man wc para salir de esa página digita q Otra ayuda puede obtenerse a través de apropos, que busca comandos similares a la palabra guía que tu ingresas. [usuario@maquina Desktop] $ apropos apro Muchos comandos requieren argumentos. En general corresponden a los nombres de los archivos sobre los cuales operará el programa. La mayoría de los comandos también reconocen opciones, las cuales ajustan lo que el programa hace. La opción puede ser un único caracter y/o palabras completas en otros casos. Prueba algunas opciones del comando wc. [usuario@maquina Pruebas] $ wc -c -w Monica.txt [usuario@maquina Pruebas] $ wc -cwl Monica.txt [usuario@maquina Pruebas] $ wc --chars --words --lines Monica.txt
2. comandos útiles Para manipular directorios: ls -l -1 -R ll mv cp rm -i -R mkdir rmdir chmod chown lista ficheros lista ficheros (como un ls -l) mueve o renombra ficheros copia archivos borra archivos (y directorios) crea directorios borra directorios vacíos cambia los permisos de un archivo o directorio cambia el propietario (usuario, grupo) de un elemento(s) del sistema de archivos Para manipular archivos: se usa para encadenar archivos o más usualmente para enviar cat el contenido de un archivo al shell para ser visto si el archivo es muy grande, permite verlo página a página; more funciona incluso si el archivo es tan grande que no puede ser abierto con un editor de texto less una versión mejorada de more permite ver la parte inicial de un archivo; puedes controlar head -n cuántas líneas ver permite ver la parte final de un archivo; puedes controlar cuántas líneas ver; también, para un archivo que crece a tail -n medida que se ejecuta un programa, puedes usar tail para ir viendo su crecimiento wc -c -w cuenta caracteres, palabras o líneas -l sort ordena las líneas de un archivo en forma alfabética o numérica uniq elimina líneas duplicadas de un archivo flitra un archivo recuperando sólo aquellas líneas que siguen grep un patrón especificado; también puede ser invertido para imprimir aquellas líneas que no siguen el patrón especificado sed sustituye patrones en un archivo gzip comprime un archivo gunzip descomprime un archivo tar archiva un directorio entero como un único archivo joe corre el editor de textos joe emacs corre el editor de textos emacs
Para trabajar en red o cambiando de usuario: su ssh -Y passwd scp exit firefox lp permite loggearse como otro usuario permite loggearse en una máquina remota permite cambiar la contraseña pemite realizar copias seguras de archivos entre máquinas diferentes finaliza la conexión a una máquina remota (o en un usuario distinto) inicia el navegador Mozilla Firefox envía un archivo a la impresora 3. usando máquinas remotas Una de las ventajas de Linux (y Unix) es que puedes loggearte fácilmente en una máquina remota, sabido de que ya tienes una cuenta en ella. Si bien existen otros comandos, el mejor es ssh (Secure Shell), ya que tu nombre de usuario y clave viajan en la red en forma encriptada. Además, permite correr aplicaciones gráficas remotamente (por medio de la opción -Y, que abre localmente ventanas gráficas de un programa que corre remoto). Cuando te loggeas usando ssh, el comando asume que el nombre de usuario en la máquina remota es el mismo que en tu máquina local. En el ejemplo, el nombre de usuario es el mismo en ambas máquinas, por lo que la sintaxis de la orden fue simplemente: [usuario@maquina_local ~]$ ssh maquina_remota
Si este no fuera el caso, debes indicar el nombre de usuario de la máquina remota en la línea de comandos de la terminal. Existen dos formas, usando la opción -l o @: [usuario@maquina_local ~]$ ssh -l usuario2 maquina_remota [usuario@maquina_local ~]$ ssh usuario2@maquina_remota Para copiar archivos entre las máquinas local y remota en una forma segura, se utiliza el comando scp (Secure Copy). Incluso son posibles copias entre dos máquinas remotas. En general, en la línea de comandos, la máquina remota se identifica al ir seguida de dos puntos (:). Una opción útil es -r que permite copiar en forma recursiva el contenido de un directorio. Una alternativa para la transferencia de archivos es el uso de ftp, un programa de transferencia en una versión de comandos más simple que la versión gráfica de Windows. Ftp se complementa con los comandos cd, ls, get (get filename), put (put filename) and quit. Con get transiferes un archivo desde la máquina remota a la local, mientras que con put haces la transferencia en el sentido inverso. Como ftp no encripta en la red tu nombre de usuario y clave, actualmente sólo se usa para transferencias anónimas desde servidores FTP públicos.
4. editores de texto para Linux/Unix Además de los programas more y less que permiten leer archivos de texto, también hay varios otros programas, como vim, emacs, joe, que permiten la edición de texto. No sólo se parecen poco a los editores de Windows o Macintosh, ya que no son capaces de dar autoformato, edición WYS/WYG, múltiples tipos o tamaños de fuentes, etc., sino que en realidad están orientados a la generación y manipulación de texto plano. Sin embargo, son capaces de trabajar con archivos de gran tamaño, lo cual los hace ideales para manipular los grandes volúmenes de datos que se manejan en el área de la genómica (tan solo un ejemplo). Además pueden auto-indentar y resaltar sintaxis, por lo que son fundamentales en la escritura de scripts, programas y páginas HTML. Si bien al principio puede resultar algo arcaico, pronto podrás comprender las posibilidades de manejar un editor como joe. Tu puedes ingresar al programa indicando joe (aunque la opción -help deja abierto un cuadro de gran utilidad) y luego abrir un archivo o puedes realizar ambos pasos en uno solo. Descarga de la página del curso el archivo no_se_cuantas_seqs.fa. Prueba abrir en joe el archivo no_se_cuantas_seqs.fa y editarlo, por ejemplo, puedes eliminar una de las secuencias. Recuerda ayudarte con el cuadro guía de joe. [usuario@maquina Secuencias] $ joe -h no_se_cuanttab
Ahora intenta realizar el Ejercicio 1 de la hoja de ejercicios.