Está en la página 1de 15

Introducción a Linux

Comandos básicos
Los comandos sirven para que el sistema operativo realice una operación o función. Estos comandos

pueden administrar todo el sistema operativo. Antes de que existieran las interfaces gráficas (Ventanas

e iconos) todo se manejaba a través de comandos en línea. Es más, todos lo que realizamos mediante el

ratón de manera gráfica equivale a un comando en línea del sistema operativo.

Podemos preguntarnos para qué necesitamos estos comandos si ahora tenemos interfaces gráficas que

son más amigables y fáciles de utilizar. La respuesta es sencilla, a veces es más óptimo emplear

comandos en línea cuando se manejan archivos muy grandes, como suele ser en el caso de la

bioinformática. Un ejemplo es cuando queremos abrir un archivo de texto de 200MB, en un editor de

texto gráfico esta simple tarea requiere de mucha memoria RAM, sin embargo, esto consume mucho

menos en línea de comandos ya que al emplear un conjunto de ellos nos podría mostrar cierta parte del

archivo sin acabarnos toda nuestra memoria RAM.

Los comandos:

ls cat more cp mv rm

rmdir cd pwd ln mkdir chmod

ssh scp ps kill tar uname

sort uniq grep wc tail head

cut paste man


Listar archivos: para mostrar el contenido de un directorio se emplea el comando “ls”
$ ls [opciones] [nombre]
Opción Descripción
-a Lista todo el contenido del directorio, incluyendo
los archivos ocultos.
-l Lista todo el contenido del directorio en formato
largo: permisos, dueño, tamaño, fecha de
modificación, directorio/archivo.
-s Lista todo el contenido del directorio con su
tamaño.

Ejemplo:
Listar todo el contenido del directorio Settings con sus archivos ocultos:
EstacionMM5:~/Settings$ ls -a
. .. settings.txt

Listar el contenido del directorio actual en formato largo:


EstacionMM5:~$ ls -l
total 6527756
-rw-r--r-- 1 carlos carlos 3204 2010-07-01 10:41 algo2.pdb
-rw-r--r-- 1 root root 287298 2010-06-29 13:03 allresultsrun4.txt
-rw-r--r-- 1 carlos carlos 0 2011-06-22 16:51 a.out
drwxr-xr-x 5 carlos carlos 4096 2010-06-17 12:27 Archivos_Genomas
-rw-r--r-- 1 carlos carlos 35417201 2010-09-03 09:45 arch.txt
drwxr-xr-x 2 carlos carlos 4096 2011-05-30 10:06 asciilinux
-rw-r--r-- 1 carlos carlos 6026681 2011-06-20 18:00 avana-0.31-200909141330.jar

Listar el tamaño del contenido del directorio actual


EstacionMM5:~$ ls -s
total 6527756
3004 lista.txt 4 query-test.txt
4 algo2.pdb 24 FiltradosNuevo.txt
2676 list_dengue_genes_uniprot.txt 4 R
284 allresultsrun4.txt 39888 gene_association.goa_human
Mostrar el contenido de uno o varios archivos se emplea el comando “cat”
$ cat [opciones] [archivos]
Ejemplos:
Mostrar el contenido de un archivo:
EstacionMM5:~$ cat GSE13052.txt
"ID_REF","GSM302811","GSM303278","GSM303280","GSM303281"
M305302","GSM305303","GSM305304","GSM305306","GSM305307"
"GI_10047089-S",-14.3,-9.6,1.9,-15.1,-14.5,-34.2,-12.5
"GI_10047091-S",13,24.4,20.5,26.3,24.8,47.6,22.2,16.9
"GI_10047093-S",123,33.1,119.6,176,88.6,206.5,131,75.6

Mostrar el contenido de varios archivos:


EstacionMM5:~$ cat NP_780854.txt NP_780940.txt NP_781135.txt NP_781320.txt NP_782116.txt

Pasar el contenido de varios archivos a uno nuevo solo:


EstacionMM5:~$ cat NP_780854.txt NP_780940.txt NP_781135.txt > salida.txt

Añadir al final de un archivo existente el contenido de otro:


EstacionMM5:~$ cat NP_780854.txt >> salida.txt
Mostrar el archivo en páginas
EstacionMM5:~$ cat NP_780854.txt | more
Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB)
NP_780854 Q8TDN4 KLLP EEEE [RK].L.{0,1}[FYLIVMP] Cyclin_N
NP_780854 Q9BTV7 KLLP EEEE [RK].L.{0,1}[FYLIVMP] Cyclin_N
NP_780854 P78396 KLLP EEEE [RK].L.{0,1}[FYLIVMP] Cyclin_N
NP_780854 P24863 KLLP EEEE [RK].L.{0,1}[FYLIVMP] Cyclin_N
NP_780854 P24385 KLLP EEEE [RK].L.{0,1}[FYLIVMP] Cyclin_N
NP_780854 P30279 KLLP EEEE [RK].L.{0,1}[FYLIVMP] Cyclin_N
--More--
El comando “more” es igual al comando “cat”, solo que muestra el resultado en páginas, puede ser
utilizado en conjunto con otros comandos:
Ejemplos:
EstacionMM5:~$ ls | more
EstacionMM5:~$ cat matrixG27_cipro.txt | more

Para copiar archivos se emplea el comando “cp”


$ cp [opciones] [archivo1] [archivo2]
$ cp [opciones] [archivo] [directorio]
Opción Descripción
-i Pregunta por confirmación de copiado antes de
sobreescribir un archivo existente.
-p Preservar la fecha y los permisos del archivo a
copiar
-r Copiado recursivo del contenido de un directorio

La primera forma copia un archivo con otro nombre, la segunda forma copia un archivo a un directorio.
EstacionMM5:~$ cp matrixG27_cipro.txt miarch2.txt
EstacionMM5:~$ cp matrixG27_cipro.txt Escritorio/

Para mover o renombrar archivos y directorios se emplea el comando “mv”


Ejemplos:
$ mv [opciones] fuente destino
Opción Descripción
-i Pregunta por confirmación antes de sobreescribir
el destino.
-f Forzar para que se ejecute el comando.

Cambiar el nombre a un archivo:


EstacionMM5:~$ mv matrixG27_cipro.txt matrix2.txt
Cambiar de lugar un archivo:
EstacionMM5:~$ mv matrixG27_cipro.txt Escritorio/
El comando “rm” se utiliza para borrar uno o varios archivos. Se debe tener cuidado ya que al ejecutar
este comando no es posible recuperarlo.

$ rm [opciones] archivo(s)
Opción Descripción
-f Forzar el comando para borrar archivos.
-i Pregunta por confirmación antes de borrar los
archivos.
-r Borra directorios con su contenido

Borrar archivos y directorios:


EstacionMM5:~$ rm NP_780854.txt NP_780369.txt
EstacionMM5:~$ rm -r temp/

El comando “rmdir” funciona igual que el comando “rm” la diferencia es que sirve para borrar
directorios vacíos.
$ rmdir directorio(s)
Ejemplo:
EstacionMM5:~$ rmdir temp/

Para movernos entre directorios se emplea el comando “cd”


$ cd directorio
Ejemplo:
EstacionMM5:~$ cd Escritorio

Para saber en qué directorio estamos trabajando mediante el comando “pwd” nos mostrará toda la ruta.
$ pwd
Ejemplo:
EstacionMM5:~$ pwd
/home/usuario/Escritorio/Pruebas/
Un comando bastante útil para ahorrarnos tiempo ya sea para movernos rápidamente a un directorio o
para ejecutar un programa que se encuentra en un lugar diferente al nuestro se emplea el comando “ln”
el cual crea un enlace simbólico hacia ese archivo o directorio.

$ln [opciones] archivo1 archivo2


$ln [opciones] directorio1 directorio2
Opción Descripción
-f Forzar la ejecucion del comando
-n No sobreescribir archivos existentes
-s Crea enlace simbólico a un archivo o directorio

Ejemplos:
EstacionMM5:~$ ln -s /usr/lib/jvm/jdk1.7.0/bin/javac javac
javac -> /usr/lib/jvm/jdk1.7.0/bin/javac*

EstacionMM5:~$ ln -s bio-l/figuras fig


fig -> bio-l/figuras/

La creación de directorios es realizada mediante el comando “mkdir”. Se puede incluso crear una
jerarquía de subdirectorios con una sola instrucción.
$ mkdir directorio
$ mkdir -p directorio1/directorio2/directorio3
Ejemplos:
EstacionMM5:~$ mkdir pruebas
EstacionMM5:~$ mkdir -p datos/micro/nada
El comando “chmod” se emplea para los permisos de ejecución, escritura y lectura de archivos.
$ chmod [opciones]modo archivo

Opción Descripción
-f No muestra mensajes de error en pantalla si falló
al ejecutarse el comando
-R Aplica el cambio recursivamente
Código Descripción
u Usuario
g Grupo
o Otro
a Todos
Operador Descripción
+ Anade permiso
- Remueve permiso
= Asigna permiso
Permiso Descripción
r Lectura
w Escritura
x Ejecución
s Asigna identificador de usuario o grupo
Código Descripción
4 Lectura
2 Escritura
1 Ejecución

EstacionMM5:~$: chmod +wrx netbeans-7.0.1-ml-javase-linux.sh


EstacionMM5:~$: chmod 241 netbeans-7.0.1-ml-javase-linux.sh
rwxrwxrwx 1 root root 31 2011-08-09 10:21 netbeans-7.0.1-ml-javase-linux.sh

Linux también cuenta con un comando para hacer una conexión remota. Por seguridad se emplea un
modo seguro “ssh”
$ ssh usuario host
EstacionMM5:~$ ssh curso@14E.56W.23T.1A
La transferencia de archivos en linux entre computadoras se puede realizar mediante el comando “scp”.
$ scp archivo host

Ejemplo:
EstacionMM5:~$ scp netbeans.rar curso@14E.56W.23T.1A:

Supongamos que por alguna razón un programa se quedó congelado y no responde, por lo que para
poder detener dicho programa necesitamos saber qué proceso es el que se está ejecutando, pasa saber
esto se emplea el comando “ps”.

$ ps [opciones]
Opción Descripción
-a Lista los procesos no asociados a la consola actual
-e Lista todos los procesos
-f Crea una lista completa

Ejemplos:
EstacionMM5:~$ ps -a
PID TTY TIME CMD
11010 pts/0 00:00:00 ps

EstacionMM5:~$ ps -e
PID TTY TIME CMD
1? 00:00:01 init
2? 00:00:00 kthreadd
3? 00:00:00 migration/0

EstacionMM5:~$ ps -f
UID PID PPID C STIME TTY TIME CMD
curso 9874 9871 0 12:52 pts/0 00:00:00 bash
curso 10962 9874 0 14:55 pts/0 00:00:00 ps -f
Una vez que sabemos cuál es el número del proceso del programa que está ejecutándose, procedemos a
eliminarlo mediante el comando “kill”
$ kill [opciones] proceso
Ejemplo:
EstacionMM5:~$ kill 26492
EstacionMM5:~$ kill -9 26492

Linux permite la compresión de archivos y un formato muy difundido es la compresión tar.gz y para
realizar este tipo de compresión es con el comando “tar”
$ tar [opciones] archivos

Opción Descripción
-c Crear un nuevo archivo
-v Lista los archivos que serán empaquetados
-f Guarda los archivos en el paquete
-x Extrae los archivos que fueron empaquetados en
un archivo tar
Ejemplos:
Para crear un archivo comprimido en tar.gz
EstacionMM5:~$ tar -cvf yersiniaouterFasta.tar.gz yersiniaouterFasta/

Para descomprimir un archivo en tar.gz


EstacionMM5:~$ tar -xvf yersiniaouterFasta.tar.gz

Habrá ocasiones en la que necesitaremos saber cierta información de nuestro sistema operativo en este
caso de Bio-Linux y mediante el comando “uname” obtendremos esa información.
$ uname [opciones]
Opción Descripción
-r Nos mostrará la versión del Kernel de nuestro
sistema operativo
-m Nos mostrará la arquitectura de nuestra
computadora (32 o 64)
-s Nos mostrará el nombre del sistema operativo
-v Nos mostrará la versión del sistema operativo
Ejemplos:
EstacionMM5:~$ uname -r
2.6.32-33-generic
EstacionMM5:~$ uname -m
x86_64
EstacionMM5:~$ uname -s
Linux
EstacionMM5:~$ uname -v
#71-Ubuntu SMP Wed Jul 20 17:27:30 UTC 2011

Manejo de archivos de texto con comandos


En muchas ocasiones nos topamos con archivos de texto que contienen mucha información y de la cual
necesitamos extraer solo de algún tipo en especial. Podríamos emplear los programas de oficina pero
muchas veces esto hace que sea tedioso o que por el tamaño de los archivos sea imposible abrirlos con
esas herramientas. Por suerte esto lo podemos hacer mediante el uso de ciertos comandos o conjunto de
comandos.
Unos de los más importantes comandos es el “cat” que ya se mencionó anteriormente, sin embargo,
este comando puede ser potenciado si se emplea en conjunto con otros comandos.

Comando “sort”. Este comando se emplea para ordenar en forma alfabética las líneas de uno o varios
archivos.
$ sort [opciones] archivos
Opción Descripción
-u Ordena y elimina líneas idénticas
-r Ordena en forma inversa
-n Ordena por forma numérica
-f Ignora mayúsculas/minúsculas

Ejemplos:
Ordena todos los archivos que comiencen con NP
EstacionMM5:~$ sort NP*
NP_783074 Q9UQ26 VFFV BEEE .[VYF].[VIL] PDZ
NP_783075 Q9Y2H9 VFFV BEEE .[VYF].[VIL] PDZ
NP_783076 Q9Y3R0 VFFV BEEE .[VYF].[VIL] PDZ
Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB)
Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB)
Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB)

Ordena y elimina las líneas repetidas


EstacionMM5:~$ sort -u NP*
NP_783074 Q9UQ26 VFFV BEEE .[VYF].[VIL] PDZ
NP_783075 Q9Y2H9 VFFV BEEE .[VYF].[VIL] PDZ
NP_783076 Q9Y3R0 VFFV BEEE .[VYF].[VIL] PDZ
Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB)

Invierte el orden de la salida


EstacionMM5:~$ sort -r NP*
Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB)
Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB)
Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB)
NP_783074 Q9UQ26 VFFV BEEE .[VYF].[VIL] PDZ
NP_783075 Q9Y2H9 VFFV BEEE .[VYF].[VIL] PDZ
NP_783076 Q9Y3R0 VFFV BEEE .[VYF].[VIL] PDZ

Otro comando que se utiliza en el mismo sentido que “sort” es el comando “uniq” incluso se emplean
los tres para obtener un filtrado de uno o varios archivos.
$ uniq [opciones] archivos
Opción Descripción
-n Ignora las primeras n campos de una linea
(separados por espacios o tabs)
+n Ignora los primero n caracteres de un campo
-c Muestra una línea por vez
-d Muestra las líneas duplicadas
-u Elimina líneas identicas
Ejemplos:
Este conjunto de comandos en esa forma se le conoce como concatenación de comandos del sistema.
EstacionMM5:~$ cat NP* | sort | uniq -2
NP_782883 Q9H8W5 STHTS EEEBE [ST]..[ST][ST] Filamin
NP_782883 Q9H987 KFII EEEE .[VYF].[VIL] PDZ
NP_783074 A1A586 VFFV BEEE .[VYF].[VIL] PDZ
Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB)

Hay ocasiones en los que el archivo del cual debemos extraer cierta información es enorme y no
sabemos con exactitud si lo que buscamos se encuentra o si la cantidad de datos que cumplan nuestra
búsqueda sea significativa. Para buscar rápidamente en nuestro archivo emplearemos el comando
“grep”.
$ grep [opciones] expresión-regular archivos
Opción Descripción
-i Ignora mayúsculas/minúsculas
-n Muestra la línea donde se encuentra lo que
buscamos y el número de línea
-c Muestra el número total de líneas que encontró
Ejemplos:
EstacionMM5:~$ grep 'B2ZZ83' NP_782116.txt
NP_782116 B2ZZ83 TNSSS EEEEE [ST]..[ST][ST] Filamin
NP_782116 B2ZZ83 TTKSS BEBEE [ST]..[ST][ST] Filamin
NP_782116 B2ZZ83 SRISS EBBEE [ST]..[ST][ST] Filamin

EstacionMM5:~$ grep -n 'P46013' NP_782315.txt


31:NP_782315 P46013 TASA EEEE T..[ILA]

EstacionMM5:~$ cat NP* | sort | grep -n 'Q12959'


189:NP_780938 Q12959 TFNI EEEB .[VYF].[VIL] PDZ
557:NP_781297 Q12959 KYYI EEEE .[VYF].[VIL] PDZ
846:NP_781971 Q12959 MYYI EEEE .[VYF].[VIL] PDZ
1292:NP_782883 Q12959 KFII EEEE .[VYF].[VIL] PDZ
1524:NP_783074 Q12959 VFFV BEEE .[VYF].[VIL] PDZ
Otro comando que se emplea en conjunto con otros es el comando “wc”. Este comando se le conoce
como el contador de palabras o “word count” en inglés.

$ wc [opciones] archivos
Opción Descripción
-l Muestra el total de líneas que contiene un archivo
o el total del conjunto de varios archivos
-w Muestra el total de palabras que contiene un
archivo o el total del conjunto de varios archivos
Ejemplos:
EstacionMM5:~$ cat NP_782116.txt | wc -l
52
EstacionMM5:~$ cat NP_782116.txt | wc -w
312

En Linux existen dos comandos para ver el inicio y el final de un archivo. La diferencia es que
podemos seleccionar cuantas líneas queremos ver del inicio y cuantas del final. Los comandos que nos
permiten hacer esto son el comando “tail” y “head”.

$ tail -[n] archivo


$head -[n] archivo

Ejemplos:
EstacionMM5:~$ head -3 NP_781821.txt
Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB)
NP_781821 P31946 HSISNE EEBEEB [RHK][STALV].[ST].[PESRDIF] 14-3-3
NP_781821 P62258 HSISNE EEBEEB [RHK][STALV].[ST].[PESRDIF] 14-3-3

EstacionMM5:~$ tail -3 NP_781821.txt


NP_781821 B7Z5U6 RRHK EEEB [KR][HR].[KR] SIR2
NP_781821 B7WNN4 RRHK EEEB [KR][HR].[KR] SIR2
NP_781821 B5MCS1 RRHK EEEB [KR][HR].[KR] SIR2
El comando “cut” cortar un archivo en columnas y nos permite definir un delimitador para realizar el
corte.
$ cut [opciones] archivos
Opción Descripción
-f Corta la columna (el tab es reconocido como
delimitador por defecto)
-d Especifica el tipo de limitador para cortar por
columnas
Ejmeplos:
EstacionMM5:~$ cut -f5 NP_781821.txt
Motivo(Patron)
[RHK][STALV].[ST].[PESRDIF]
[RHK][STALV].[ST].[PESRDIF]
[KR][HR].[KR]
[KR][HR].[KR]

EstacionMM5:~$ cut -f5,3,6 NP_781821.txt


Motivo(ProtA) Motivo(Patron) Dominio(ProtB)
HSISNE [RHK][STALV].[ST].[PESRDIF] 14-3-3
HSISNE [RHK][STALV].[ST].[PESRDIF] 14-3-3
RRHK [KR][HR].[KR] SIR2
RRHK [KR][HR].[KR] SIR2

EstacionMM5:~$ cut -d'[' -f5 NP_781821.txt


Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB)
PESRDIF] 14-3-3
PESRDIF] 14-3-3
PESRDIF] 14-3-3
PESRDIF] 14-3-3

El comando “paste” se utiliza para unir varios archivos en uno solo, se puede emplear en conjunto con
el comando cut.
$ paste [opción] archivos
Por regla general el delimitador de unión es un tab, sin embargo, es posible definir otro.
EstacionMM5:~$ paste -d';' NP_781320.txt NP_781329.txt > sal
Proteina_A Proteina_B Motivo(ProtA) Accesibilidad Motivo(Patron) Dominio(ProtB);Proteina_A Proteina_B Motivo(ProtA) Accesibilidad
Motivo(Patron) Dominio(ProtB)

NP_781320 P21333 TNNSS BEEEE [ST]..[ST][ST] Filamin;NP_781329 P21333 SVDSS EBBEE [ST]..[ST][ST] Filamin

NP_781320 O75369 TNNSS BEEEE [ST]..[ST][ST] Filamin;NP_781329 O75369 SVDSS EBBEE [ST]..[ST][ST] Filamin

NP_781320 Q14315 TNNSS BEEEE [ST]..[ST][ST] Filamin;NP_781329 Q14315 SVDSS EBBEE [ST]..[ST][ST] Filamin

Finalmente, un comando que nos resulta muy útil es “man” que no es más que un manual de cómo
utilizar los comandos del sistema operativo.
$ man nombre_comando

También podría gustarte