Archive

Archive for the ‘Comandos básicos’ Category

chmod y permisos en linux

June 20th, 2013

Linux es un sistema operativo multiusuario y permite varios usuarios en un mismo ordenador, además estos usuarios pueden estar organizados en grupos. Por ello existen 3 roles diferentes: el usuario que es uno mismo, el grupo al que pertenece el usuario y que puede tener más miembros y todo el mundo. Además, para asegurar la privacidad en linux todos los ficheros tienen 3 tipos de permisos, de lectura “r” (read), de escritura “w” (write) y de ejecucion “x” (eXecution), que según estén activados o no nos permiten leer, escribir o ejecutar un fichero, respectivamente. Asó pues con 3 roles y 3 permisos por rol tenemos 9 permisos que podemos gestionar. Para ver los permisos podemos listar los ficheros (ls) indicándole que nos dé más información el formato largo (-l). Por ejemplo:

$ ls -l hola.sh
-rw-rw-r-- 1 jose departamento 0 abr 24 10:24 hola.sh

El primer carácter si es “-” nos indica que es un fichero, en caso de directorios aparece “d“. Los 3 siguientes caracteres son los permisos del usuario. Como vemos tiene permisos de lectura y escritura (rw). El de ejecución no está activado y aparece “-“. Los 3 siguientes son para el grupo y tiene los mismos permisos, lectura y escritura (rw). El resto de usuarios en el ordenador solo tienen permisos de lectura (r).

Para cambiar los permisos de nuestros ficheros se usa el comando chmod. La manera más intuitiva es indicar a quien – u, g,o o a para indicar usuario, grupo, otros o a todos (all) respectivamente – le queremos dar (+) o quitar (-) permiso de lectura, escritura o ejecución (r, w o x respectivamente). Veamos un ejemplo donde primero añadimos al usuario permiso de ejecución del fichero hola.sh y luego eliminamos permiso de lectura al todo el mundo y finalmente le volveremos a dar permiso de lectura al usuario.

$ ls -l hola.sh
-rw-rw-r-- 1 jose departamento 0 abr 24 10:24 hola.sh
$ chmod u+x hola.sh
$ ls -l hola.sh
-rwxrw-r-- 1 jose departamento 0 abr 24 10:24 hola.sh
$ chmod a-r hola.sh
$ ls -l hola.sh
--wx-w---- 1 jose departamento 0 abr 24 10:24 hola.sh
$ chmod u+r hola.sh
$ ls -l hola.sh
-rwx-w---- 1 jose departamento 0 abr 24 10:24 hola.sh

 

Como vemos al usuario le ha aparecido el permiso de ejecución x, también tiene de lectura y escritura y el grupo tiene de escritura. Hay otro tipo de permisos especiales que no vamos a tratar y otra sintaxis para cambiarlos menos intuitiva.

 

 

 

Comandos básicos, General, Linux

wc

February 1st, 2013

wc

Regla mnemotécnica

wcWord Count

El comando wc nos permite contar el número de palabras que contiene un fichero. Lo mejor es ilustrarlo con ejemplos:

 $ cat lista
100
101
102
103
104
105
106
107
108
109
$ wc lista
10  10  40 lista

la primera columna es el número de palabras, la segunda el número de columnas y el tercero el número de bytes.

Una opción muy práctica es

$ wc -l lista
10 lista

nos da directamente el número de líneas que hay en el fichero.

 

Comandos básicos, Linux

dos2unix y file

December 17th, 2010

dos2unix y file

 

Regla mnemotécnica

fileFile type.

dos2unix:  Convert from DOS to UNIX type.

dos2unix

Los ficheros de texto de Windows tienen una serie de caracteres especiales y ocultos para señalar el fin de línea, fin de fichero, etc. En Linux son diferentes y aunque en muchos casos puede abrir correctamente los ficheros de texto de Windows en otros casos no. El comando dos2unix nos permite  transformar estos archivos de formato Windows (MSDOS) a Linux. Su uso es muy sencillo, para transformar el fichero ejemplo.txt usamos

$ dos2unix ejemplo.txt

dos2unix no mira la extensión del fichero (que en Linux no es necesaria y sólo es parte del nombre) sino en su interior.

file

El comando file nos da información diversa sobre un fichero o directorio: si es un binario, un enlace, una imagen, etc. En particular, para los ficheros de texto nos indica si son de tipo Windows. Veamos unos ejemplos en el que incluimos también un dos2unix:

$ file imagen.jpg
imagen.jpg: JPEG image data, EXIF standard 2.21
$file tar_and_compress.tgz
tar_and_compress.tgz: gzip compressed data, from Unix, last modified: Thu Mar 16 14:41:36 2006
$file windows_file.txt
windows_file.txt: ASCII English text, with CRLF line terminators
$dos2unix windows_file.txt
$file windows_file.txt
windows_file.txt: ASCII English text

Comandos básicos

mv

November 3rd, 2010

mv

Regla mnemotécnica

mvMove

El comando mv nos permite mover o renombrar archivos. Lo mejor es ilustrarlo con ejemplos. Renombrar  un archivo

$ mv outfile outfile_copia_seguridad

Mover un archivo en otra carpeta, en este caso en la carpeta viejo.

$ mv outfile viejo/
$ mv outfile viejo/outfile
$ mv outfile viejo/outfile_viejo

Los dos primeros comandos son equivalentes y el tercero lo mueve con otro nombre.

Podemos mover varios ficheros en otra carpeta (viejo) en un sólo comando

$ mv input_file output_file README viejo

También podemos renombar o mover carpetas. Si la carpeta viejo no existe el siguiente comando renombra la carpeta resultados con el nombre viejo

$ mv resultados viejo

y si la carpeta viejo existe moverá  la carpeta resultados dentro de la carpeta viejo.

Hay más modificadores pero no son especialmente interesante o funcionales para un nivel básico.

Comandos básicos

Comodines: ? y *

September 13th, 2010

Los comodines son los caracteres ? y *

. A la hora de hacer referencia a nombres de ficheros sustituyen a cualquier carácter y se pueden usar con cualquier comando.

  • ?: Sustituye a un único carácter.
  • *: Sustituye a una cadena de carácteres.

Ilustrémoslo con unos ejemplos. Si en la carpeta actual listo los ficheros que tengo con el comando ls

$ ls
datos8.txt
datos9.txt
datos10.txt
resultados

Puedo listar por ejemplo sólo los ficheros de datos pidiendo que se listen todos los ficheros que comiencen con datos, es decir:

$ ls datos*
datos8.txt
datos9.txt
datos10.txt

El comando “ls datos*.txt” produce el mismo resultado en este caso. El comodín ? produce un efecto diferente pues solo sustituye un carácter

$ ls datos?.txt

datos8.txt
datos9.txt

Los comodines se pueden usar con cualquier comando. Si por ejemplo queremos mostrar todos los ficheros de datos podemos usar el comando cat con los comodines

$ cat datos*

y si queremos mostrar todos los ficheros podemos hacerlo diciendo que nos muestre todos los ficheros que se llaman “algo”, es decir:

$ cat *

que equivale en este caso a “cat datos8.txt datos9.txt datos10.txt resultados“.

Comandos básicos

tail

September 3rd, 2010

tail

Regla mnemotécnica

tail: Tail, final

Un comando sencillo que se también se usa para mostrar en pantalla el contenido de ficheros, pero las últimas líneas. Por defecto tail nos mostrará las 10 últimas líneas pero podemos indicarle cuantas queremos que nos muestre. Para visualizar ficheros muy grandes, que abrirlos con editor puede resultar pesado para el ordenador, si sólo queremos ver el final del fichero este comando es ideal pues responde instantáneamente.

Como ejemplo sencillo, si el fichero direccion contiene la dirección del Campus de Leioa-Erandio podemos ver su contenido con esta orden, como tiene menos de 10 líneas nos lo muestra completamente, luego le pediremos que nos imprima solo las 2 últimas líneas:

$ tail direccion

Sarriena S/N
48940 Leioa
Bizkaia

$ tail -2 direccion

48940 Leioa
Bizkaia

El comando tiene alguna otra posibilidad pero la descrita es la principal.

Comandos básicos

head

September 2nd, 2010

head

Regla mnemotécnica

head: Header, cabecera

Un comando sencillo que se también se usa para mostrar en pantalla el contenido de ficheros, pero las primeras líneas. Por defecto head nos mostrará las 10 primeras líneas pero podemos indicarle cuantas queremos que nos muestre. Para visualizar ficheros muy grandes, que abrirlos con editor puede resultar pesado para el ordenador, si sólo queremos ver el comienzo del fichero este comando o more son los ideales pues responden instantáneamente.

Como ejemplo sencillo, si el fichero direccion contiene la dirección del Campus de Leioa-Erandio podemos ver su contenido con esta orden, como tiene menos de 10 líneas nos lo muestra completamente, luego le pediremos que nos imprima solo las 2 primeras líneas:

$ head direccion

Sarriena S/N
48940 Leioa
Bizkaia

$ head -2 direccion

Sarriena S/N
48940 Leioa

El comando tiene alguna otra posibilidad pero la descrita es la principal.

Comandos básicos

more

August 31st, 2010

more

Regla mnemotécnica

more: Más en inglés

Un comando sencillo que se usa para mostrar en pantalla el contenido de ficheros. Su comportamiento es diferente a cat pues con more si el fichero no entra en la pantalla nos muestra todo lo que cabe y nos pregunta si queremos ver más (more?). Así, si nuestra terminal o pantalla tiene 30 líneas nos muestra las 30 primeras líneas del fichero. Luego podemos navegar por el fichero con los siguientes comandos:

  • Con la barra espaciadora avanzamos de página en página (o pantalla en pantalla sería más correcto).
  • Con la tecla enter avanzamos línea a línea.
  • Con la b retrocedemos una pantalla.
  • /palabra nos busca en el fichero la líneas que contienen “palabra”.
  • Con la q salimos.

Si el fichero es pequeño y cabe en la pantalla nos lo muestra completamente, en este caso el comportamiento es el mismo que con cat. Como ejemplo sencillo si

el fichero direccion contiene la dirección del Campus de Leioa-Erandio podemos ver su contenido con esta orden:

$ more direccion

Sarriena S/N
48940 Leioa
Bizkaia

El comando more tiene varios modificadores y acciones más complejas pero de que apenas se usan.

Comandos básicos

cat (y tac)

August 30th, 2010

cat

Regla mnemotecnica

cat:  Concatenate or display file

Un comando también muy sencillo que se usa generalmente para mostrar en pantalla el contenido de ficheros. Así si el fichero direccion contiene la dirección del Campus de Leioa-Erandio podemos ver su contenido con esta orden:

$ cat direccion

Sarriena S/N
48940 Leioa
Bizakaia

El nombre al comando viene porque sirve para encadenar varios ficheros uno tras otro. Por ejemplo, encadenamos el fichero direccion detrás de si mismo

$ cat direccion direccion

Sarriena S/N
48940 Leioa
Bizakaia
Sarriena S/N
48940 Leioa
Bizakaia

O el fichero nombre que tiene nuestro nombre con el fichero direccion:

$ cat nombre direccion

Perico Palotes
Sarriena S/N
48940 Leioa
Bizakaia

Y poco más de interés se puede comentar de este simple comando salvo la existencia del comando tac.

tac

Funciona igual que cat pero nos muestra el fichero en sentido inverso, de la última línea a la primera:

$ tac direccion

Bizkaia
48940 Leioa
Sarriena S/N

Comandos básicos

rmdir

August 26th, 2010

rmdir

Regla mnemotecnica

rmdirRemove directory

Un comando también muy sencillo para borrar carpetas vacías. Ya anteriormente podíamos hacer esto con el comando rm -r, la diferencia es que rm nos borra el directorio y todas sus contenidos (ficheros y subcarpetas) mientras que rmdir sólo borra carpetas vacías. Si la carpeta no está vacía nos da un mensaje de error informando que no puede borrarla. En este sentido es un comando más seguro ya que evita que borremos accidentalmente una carpeta que creyendo está vacía pero no lo está.

Como ejemplo crearemos la carpeta (con mkdir) resultados para inmediatamente borrarla:

$ mkdir resultados
$ rmdir resultados

Y poco más de interés se puede comentar de este simple comando.

Comandos básicos