Introducción
GNU/Linux es el término empleado para referirse al sistema operativo similar a Unix que
utiliza como base las herramientas de sistema de GNU y el núcleo Linux. Su desarrollo es
uno de los ejemplos más prominentes de software libre; todo el código fuente puede ser
utilizado, modificado y redistribuido libremente por cualquier persona bajo los términos de la
GPL de GNU (Licencia Pública General de GNU) y otras licencias libres. Esto significa que
tanto el sistema operativo como los programas que usa son GRATUITOS. Las variantes de
este sistema se denominan distribuciones GNU/Linux (o distribuciones Linux). Entre las más
conocidas actualmente encontramos Debian, Ubuntu -la opción más simple y difundida hoy
en día- o Fedora entre otras, y las comerciales orientadas al ambiente corporativo como
Red-Hat y SuSe.
Lo más importante que usted necesita saber es que las distribuciones actuales se instalan
directamente desde un Pendrive o un Live-CD (si aún cuenta con esta reliquia) que se puede
bajar gratuitamente de internet (prueben la distribución Ubuntu). Una vez instalado se opera
con un esquema funcional muy similar a Windows (escritorio, navegador, ventanas, incio de
programas). Los programas más comunes de escritorio del Office tienen su versión GNU
(LibreOffice) compatibles con archivos .doc .xls o .ppt y son similares al Word, Excel, o
Powerpoint.
La aplicación más importante de un sistema Linux es, sin embargo, la “consola”, “terminal” o
“shell”: un entorno de línea de comando similar al antiguo DOS que permite manejo de
archivos y directorios, uso de máquinas-servidores remotos y la realización programas
simples denominados scripts que permiten realizar todo tipo de operaciones de manera
automática.
Averigue más sobre Linux y Ubuntu en:
https://www.ubuntu.com/
http://en.wikipedia.org/wiki/Linux
Uso de la consola
A continuación de describen los comandos básicos de una consola Bourne (BASH). Para
saber más utilice los tutoriales de Internet. Poniendo en Google “Linux shell tutorial” o en
https://www.shellscript.sh/,
Lo primero que usted debe saber es que Linux se encuentra diseñado desde el punto de vista
multiusuario, es decir, que una computadora tiene necesariamente más de un usuario. Dentro
de esta filosofía se encuentra el funcionamiento del sistema de archivos. Usted es un
“usuario” al que le pertenecen ciertos archivos/carpetas y que posee ciertos permisos y
privilegios. Por ejemplo, usted NO puede borrar un archivo que no es suyo. Estos permisos se
extienden también a quién puede instalar programas, cambiar configuraciones del sistema,
etc. El único usuario por defecto que tiene permisos totales en un sistema Linux se denomina
superusuario o root. Por cuestiones de seguridad nunca se utiliza el root (“con grandes
poderes vienen grandes responsabilidades”).
La línea de comando de la consola indica quién es usted, en qué máquina está y en qué
directorio se encuentra. Por ejemplo:
>usuario@máquina:~$
Para cambiar de usuario en la consola use el comando: su usuario2
e ingrese la contraseña del usuario2.
“~” Significa que Ud. está en la raíz del árbol de directorios a los que tiene permisos de
acceder, su home. Para ver qué directorios hay utilice el comando “ls”
> ls
Varios Documentos Bioinformatica Trash Usuario
Para cambiar de directorio: cd directorio
Para ir un directorio para atrás en el árbol: cd ..
Para volver al home: cd
Para saber el camino desde donde usted está hasta la raiz use: pwd
>pwd
/home/aluqb/Bioinformatica/Modeller
Esto indica que desde la Raíz del disco “/” usted está en dentro del directorio /home (que es
donde se encuentran los directorios de los usuarios), dentro del directorio aluqb, dentro del
directorio Bioinformática, dentro del directorio Modeller.
Si usted está en cualquier lado y quiere ir al lugar /home/dir1/dir2/dir3/x use:
>cd /home/dir1/dir2/dir3/x
Comandos para crear/borrar directorios:
Crear directorio: mkdir directorio
Borrar directorio: rmdir directorio (el mismo debe estar vacío) o rm -r directorio (no
es necesario que esté vacío)
Borrar archivos: rm archivo
Copiar archivos: cp archivo_original archivo_destino
Mover archivos/directorios: mv archivo/dir_original archivo/dir_destino
El “.” en lugar de dir/archivo indica el uso del mismo nombre al copiar/mover
Todos estos comandos pueden ser combinados con su dirección en el árbol general de
archivos, por ejemplo:
> cp /home/usuarios/alumno1/datos1 /home/usuarios/alumno2/.
copia el archivo datos1 (que está en /home/usuarios/alumno1 a un archivo del mismo nombre
en /home/usuarios/alumno2
Copy/paste en Linux:
Linux por lo general tiene un copy automático que funciona así: si Ud. selecciona algo con el
mouse, será copiado automáticamente en memoria. Para pegarlo solo tiene que presionar el
boton del medio del mouse (o en caso de mouse de 2 botones, ambos juntos).
Ejecución de comandos:
En una terminal (shell) los comandos se ejecutan directamente, por ejemplo tipee: “vmd” y
ejecutará el programa VMD. Solo los archivos con permisos de ejecución pueden ser
ejecutados. Si Ud. desea convertir un archivo en ejecutable ponga: chmod +x archivo
Contenido/edición de archivos
Para ver el contenido de un archivo en pantalla puede usar: cat archivo o less archivo (eso
solo permite verlo NO editarlo).
Para editar un archivo puede usar editores de tipo gráfico como el kate (> kate archivo) o
usar el editor de línea de comando vi o vim:
> vim archivo
El archivo puede ser un archivo existente o un archivo nuevo que será creado en el momento.
Uso del vi(m)
El vi(m) es un editor de línea de comando muy potente y fácil de utilizar. Una vez iniciado el
vim este tiene dos modos de funcionamiento. Modo comandos “C” y modo escritura “I”.
Cuándo está en el modo C usted puede utilizar los comandos de vim, como grabar, salir,
borrar un línea, numerar las líneas, copiarlas etc. En el modo I usted escribe como en
cualquier procesador de texto. Para pasar del modo C al I se usa el comando insert,
invocado con “i”. Para pasar del modo I al modo C cliquee “ESC”.
Comandos importantes:
Uno de los comandos más importantes del vi es el “:”. Al tipear en modo C “:” usted
habilitará una línea de comando que le permite:
Grabar lo que hizo tipeando: “w” ENTER
Undo: “u” ENTER
Salir: “q” ENTER (aca debe decidir si graba y sale “wq” ENTER, o sale sin grabar “q!”
ENTER)
Insertar un archivo entero: “r archivo” ENTER
Ir a la línea número x: “x” ENTER
Númerar las líneas: “set number” ENTER
Borrar las líneas desde la x hasta la y: “x,yd” ENTER
Borrar desde donde estoy hasta la última: “,$” ENTER ($ =última línea)
Otro comandos útiles del modo C:
“/” le permite buscar lo que escriba luego de introducir “/” Ej: /hola ENTER, buscará la
palabra “hola” en el archivo. N, buscará el próximo.
“dd” borra una línea entera
“x” borra el caracter donde esté el cursor
“r x” reemplaza el carácter donde está el cursor por el carácter x
y muchos otros más...
Fin del uso del Vi(m)
Volvamos a la terminal.
El comando grep. El comando grep busca todas las líneas con la secuencia de caracteres
“query” dentro de un archivo. Ej:
>grep Hola archivo
devuelve todas las lineas del archivo que contengan la palabra Hola. El grep puede incluir
espacios usando '', Ej: grep 'Hola alumno1', devuelve las líneas que contengan la secuencia
'Hola alumno1'
Uso de wildcards. Así como en el viejo DOS linux permite el uso de un carácter genérico
representado por el asterisco *. De este modo el comando:
>cp *.dat /home/alumnox/datos/.
copiará todos los archivos .dat a la carpeta /home/alumnox/datos
Head/Tail: los comandos: >head -x archivo y >tail -x archivo , devuelven las x líneas
superiores o inferiores del archivo
Redireccionamiento: la salida de cualquier comando en Linux puede ser redireccionada a
un archivo con el comando “>”. Así por ejemplo:
grep Hola prueba > lista
enviará todas las lineas del archivo “prueba” con la palabra Hola al archivo “lista”
De manera análoga, los inputs de un comando pueden ser dados en un archivo usando “<” o
sea
commando < archivo
Indica que las necesidades del comando serán enviadas en el archivo archivo
+ Comandos
Linux posee varios comandos integrados que proveen información del sistema (tipo pwd),
algunos útiles son:
>whoami imprime el nombre de usuario
>date imprime fecha y hora
>whereis ejecutable imprime donde se encuentra el ejecutable
>ps -u usuario indica todos los procesos del usuario
>clear limpia la pantalla de la consola
En linux hay comandos para casi todo, solo búsquelos en google cuando los necesita!
Scripts: varios comandos se pueden combinar en un archivo que, al ser ejecutado, ejecutará
los comandos sucesivamente. A este tipo de programa se lo conoce como “script”.
Ejemplo. Suponga que quiere obtener un archivo que contenga la fecha, el nombre del
usuario y la primer línea de un archivo que contiene la frase “es hora de irse” (el archivo
contiene esa frase en muchos lugares!).
Entonces usted hace lo siguiente:
vim script
dentro de script escribe: date > temp1
whoami > temp2
grep 'es hora de irse' archivo > temp3
head temp3 > temp4
cat temp1 temp2 temp4 > salida
rm -f temp*
cat salida
Ahora lo convierte en ejecutable
> chmod +x script
Al ejecutarlo
> ./script
obtendrá lo siguiente por ejemplo:
Sat Jun 6 23:53:21 ART 2017 alumno1 es hora de irse porque ya es tarde.