LINUX - Comandos básicos I

9
Comandos básicos de GNU/LINUX ls – Listado de archivos Sintaxis: ls [-opciones][directorio/archivos] ls es el comando que permite listar los archivos de un directorio determinado. La opción por defecto (sin modificadores ni opciones) simplemente da una lista de los archivos del directorio actual, en formato corto: solo el nombre del archivo, sin dar detalles del tamaño, permisos, dueños, fechas de creación, modificación, etc. Si el parámetro incluye nombre de directorio pero no de archivos, se mostrarán todos los archivos del directorio solicitado, tomando en cuenta que sea una ruta absoluta o relativa 1 . Por el contrario, si se incluye un nombre de archivo, este se tomará como un patrón y se listarán todos los archivos que coincidan con ese patrón (que puede incluir comodines 2 o no): ls /homelista todos los archivos del directorio /home (exceptuando los archivos ocultos) ls /home/mg* lista todos los archivos del directorio /home que comiencen con la cadena “mg” y continúen con cualquier otro carácter (incluso el carácter nulo) ls Descargas lista los archivos del directorio Descargas, que está dentro de nuestro directorio actual Opciones: -a Muestra todos los archivos, incluyendo los ocultos. -l Lista en formato largo la información de un archivo o directorio. -m Lista archivos transversalmente, separados por comas. -r Lista los archivos en orden inverso. -T Lista información de archivos ordenados según el tiempo desde el más reciente al más antiguo. -R Lista los archivos del directorio y de todos los directorios dentro de él. -h Muestra el tamaño de archivos o directorios en un formato más legible -i Muestra información del i-nodo Ejemplo: ls –l Nos mostrará todos los archivos del directorio actual con mucha información sobre cada archivo. En particular la salida del comando tiene la siguiente forma: # ls -l total 176 -rw-r--r-- 1 root root 683 Aug 19 09:59 0001.pcap 1 Ruta absoluta: aquella ruta que comienza siempre desde la raíz “/” Ruta relativa: comienza por cualquier otro punto del árbol de directorios de Linux. Ejemplos: ruta absoluta al archivo que ejecuta Mozilla Firefox: /usr/bin/firefox ruta relativa al mismo archivo estando parado en /usr: bin/firefox 2 Los metacaracteres son los caracteres especiales utilizados para crear determinados patrones de búsqueda. Serán tratados más adelante.

description

Comandos básicos de Linux

Transcript of LINUX - Comandos básicos I

Page 1: LINUX - Comandos básicos I

Comandos básicos de GNU/LINUX

ls – L istado de archivos Sintaxis: ls [-opciones][directorio/archivos] ls es el comando que permite listar los archivos de un directorio determinado. La opción por defecto (sin modificadores ni opciones) simplemente da una lista de los archivos del directorio actual, en formato corto: solo el nombre del archivo, sin dar detalles del tamaño, permisos, dueños, fechas de creación, modificación, etc. Si el parámetro incluye nombre de directorio pero no de archivos, se mostrarán todos los archivos del directorio solicitado, tomando en cuenta que sea una ruta absoluta o relativa1. Por el contrario, si se incluye un nombre de archivo, este se tomará como un patrón y se listarán todos los archivos que coincidan con ese patrón (que puede incluir comodines2 o no): ls /homelista todos los archivos del directorio /home (exceptuando los archivos ocultos)

ls /home/mg* lista todos los archivos del directorio /home que comiencen con la cadena “mg” y continúen con cualquier otro carácter (incluso el carácter nulo)

ls Descargas lista los archivos del directorio Descargas, que está dentro

de nuestro directorio actual Opciones: -a Muestra todos los archivos, incluyendo los ocultos. -l Lista en formato largo la información de un archivo o directorio. -m Lista archivos transversalmente, separados por comas. -r Lista los archivos en orden inverso. -T Lista información de archivos ordenados según el tiempo desde el más reciente al más

antiguo. -R Lista los archivos del directorio y de todos los directorios dentro de él. -h Muestra el tamaño de archivos o directorios en un formato más legible -i Muestra información del i-nodo Ejemplo:

ls –l Nos mostrará todos los archivos del directorio actual con mucha información sobre cada archivo. En particular la salida del comando tiene la siguiente forma:

# ls -l

total 176

-rw-r--r-- 1 root root 683 Aug 19 09:59 0001.pcap

1

Ruta absoluta: aquella ruta que comienza siempre desde la raíz “/” Ruta relativa: comienza por cualquier otro punto del árbol de directorios de Linux. Ejemplos: ruta absoluta al archivo que ejecuta Mozilla Firefox: /usr/bin/firefox ruta relativa al mismo archivo estando parado en /usr: bin/firefox

2

Los metacaracteres son los caracteres especiales utilizados para crear determinados patrones de búsqueda. Serán tratados más adelante.

Page 2: LINUX - Comandos básicos I

-rw------- 1 root root 1586 Jul 31 02:17 anaconda-ks.cfg

drwxr-xr-x 2 root root 4096 Jul 31 02:48 Desktop

drwxr-xr-x 2 root root 4096 Jul 31 02:48 Documents

drwxr-xr-x 4 root root 4096 Aug 16 02:55 Downloads

-rw-r--r-- 1 root root 21262 Aug 12 12:42 fbcmd_update.php

-rw-r--r-- 1 root root 46701 Jul 31 09:58 index.html

-rw-r--r-- 1 root root 48867 Jul 31 02:17 install.log

-rw-r--r-- 1 root root 11439 Jul 31 02:13 install.log.syslog

drwxr-xr-x 2 root root 4096 Jul 31 02:48 Music

drwxr-xr-x 2 root root 4096 Jul 31 02:48 Pictures

drwxr-xr-x 2 root root 4096 Jul 31 02:48 Public

drwxr-xr-x 2 root root 4096 Jul 31 02:48 Templates

drwxr-xr-x 2 root root 4096 Jul 31 02:48 Videos

El primer carácter de cada línea indica el tipo de archivo, que puede estar dentro de estas categorías: Identificador Tipo de Archivo - Archivos sencillos d Directorios l Vínculos simbólicos(flexible, blandos) c Dispositivos de caracteres b Dispositivos de bloques p Tuberías (pipe) con nombre (FIFO) s Socket (conector para comunicaciones (TCP/IP) Luego le siguen 9 caracteres que indican los permisos de acuerdo a dueño, grupo y otros, siendo los permisos de tres tipos para cada grupo: r (read – lectura), w (write – escritura), x (execution – ejecución) Luego viene un número con la cantidad de enlaces que contiene el archivo o directorio Después aparecen los nombres del propietario del archivo y el grupo primario del propietario, cuestiones relacionadas con los permisos de las columnas anteriores. Seguido nos encontramos con el tamaño del archivo (los directorios tienen todos el mismo tamaño, si se toman como archivos independientes, no es el tamaño del contenido total del directorio en cuestión) Fecha y hora de la última modificación Nombre del archivo/directorio Dependiendo de la terminal que utilicemos y de algunas opciones de configuración, la terminal nos puede devolver esta lista con colores o no.

Metacarateres o Comodines: Permiten buscar más de un archivo al mismo tiempo. Se pueden utilizar con varios comandos, incluyendo listar, mover, copiar, borrar, etc. En Linux podemos utilizar los siguientes comodines: * ? [ ] * Hace referencia a cualquier cadena de caracteres, incluyendo una cadena nula (sin ningún carácter)

en algún lugar del nombre del archivo Por ejemplo, si queremos listar los archivos que contengan una letra ‘g’ en cualquier parte del nombre, utilizaríamos: ls *g*

esto nos devolvería mgomez, gomez, ciego, Puig.

? Hace referencia a un solo carácter, que puede ser cualquiera, pero solo uno Por ejemplo, si quiero ver todos los archivos que tengan un nombre de solo 3 letras (o números) ls ???

Si tengo varios archivos llamados carta1, carta2, etc. Y quiero listarlos todos (excluyendo los

Page 3: LINUX - Comandos básicos I

carta23 y carta) ls carta?

[ ] Se buscarán todos los archivos que contengan un carácter que esté dentro de la lista de caracteres especificados entre los corchetes

Por ejemplo, si quiero encontrar todos los archivos cuyo primer carácter sea un número: ls [0-9]* Puedo también negar el contenido de la lista interna: ls [!0-9]* lista todos los archivos que no comienzan con un número

cd – Cambio de Directorio sintaxis: cd <Directorio> El comando cd nos permite cambiar el directorio actual de trabajo. Se puede ingresar la ruta absoluta del directorio al que se quiere ir, o bien ingresar una ruta relativa a partir del directorio actual de trabajo.

cd / Nos lleva hasta la raíz del sistema cd /home Nos lleva al directorio home que depende de la raíz del sistema cd Descargas Nos lleva al directorio Descargas que debe estar dentro del directorio actual

de trabajo cd .. Nos lleva al directorio padre del actual

cd . Nos deja en el directorio actual cd Nos lleva hasta nuestro directorio home cd ../directorio Sube al directorio padre y nos lleva al directorio que está dentro del

directorio padre

cd ../../directorio sube al directorio padre del directorio padre y de allí nos lleva al directorio que está dentro3

cd - Nos lleva al directorio en que estábamos trabajando antes

Árbol de Directorios de Linux

Todo es un archivo: En Sistemas Operativos tipo UNIX todo es un archivo. El sistema de archivos de Linux se organiza en una estructura jerárquica, en forma de árbol, donde el nivel más alto del sistema de archivos es la / o directorio raíz. Todos los demás archivos y directorios cuelgan de la raíz. Es por esta razón que debemos instalar aquí el sistema operativo indicando como directorio raíz de la partición seleccionada la /.

La estructura de archivos y directorios de Linux se organiza según el “Estándar de Jerarquía de Ficheros” (FHS – File System Hierarchy Standard) . El FHS intenta definir unas bases para que tanto los programadores, como los usuarios y administradores del sistema, sepan dónde encontrar lo que buscan. Éste estándar es mantenido por la “Free Standards Group”, una organización sin fines de lucro constituida por compañías de hardware y software.

Es posible distinguir el contenido de un directorio según sea: estático o dinámico y compartible o no compartible.

Estáticos: Contiene binarios, bibliotecas, documentación y otros ficheros que no cambian sin intervención del administrador. Pueden tener permisos de solo lectura (read-only) y no necesitan que se hagan copias de seguridad tan a menudo como con ficheros dinámicos

3

.. y . cumplen una función similar cuando trabajan con ls, de modo que ‘ls ..’ listará los archivos del directorio

padre, y ‘ls ../..’ los archivos del directorio padre del directorio padre

Page 4: LINUX - Comandos básicos I

Dinámicos: Contiene ficheros que no son estáticos. Deben tener permisos de lectura-escritura (read-write). Necesitan que se hagan copias de seguridad a menudo Compartibles: Contiene archivos que se pueden encontrar en una computadora y utilizarse en otra No compartibles: Contiene archivos que no son compartibles. Ejemplos: Estáticos: /bin, /sbin, /opt, /boot, /usr/bin Dinámicos: /var/mail, /var/spool, /var/run, /var/lock, /home Compartibles: /usr/bin, /opt No compartibles: /etc, /boot, /var/run, /var/lock

/ (raíz): Es el nivel más alto dentro de la jerarquía de directorios. De aquí cuelgan el resto de carpetas, particiones y otros dispositivos. Es por esto que donde se instala el sistema, se selecciona la partición deseada y se le indica que el punto de montaje es justamente /.

/bin (binarios): Los binarios son los ejecutables de Linux. Aquí tendremos los ejecutables de los programas propios del sistema operativo, entre ellos comandos como cp, mv, cat, chown, etc. No es el único directorio que contiene ejecutables como veremos más adelante.

/boot (arranque): Aquí nos encontramos los archivos necesarios para el inicio del sistema, desde los archivos de configuración de Grub Lilo, hasta el propio kernel del sistema.

/dev (dispositivos): Linux se basa en la simpleza y en el tratamiento homogéneo de la información. Linux trata los dispositivos como si fueran un fichero más para facilitar el flujo de la información. En esta carpeta tenéis los dispositivos del sistema, por ejemplo los usb, sda (o hda) con sus respectivos números que indican las particiones, etc.

/etc (etcétera): Aquí se guardan los ficheros de configuración de los programas instalados, así como ciertos scripts que se ejecutan en el inicio del sistema. Los valores de estos ficheros de configuración pueden ser complementados o sustituidos por los ficheros de configuración de usuario que cada uno tiene en su respectivo “home” (carpeta personal).

/home (hogar): Este hogar no es más que un directorio que a su vez contiene otros, uno por cada usuario dado de alta en el sistema. Dentro de dichos directorios es donde el usuario tiene su carpeta personal, donde están los ficheros de configuración de usuario, así como los archivos personales del mismo que puede crear, modificar y eliminar bajo su propio criterio.

/lib (bibliotecas): Contiene las bibliotecas (también mal conocidas como librerías) del sistema, así como módulos y controladores (drivers).

/lost+found (perdido y encontrado): Es una carpeta que nos podemos encontrar en todas las particiones. Cuando por cualquier circunstancia se cierra mal el sistema (un apagón por ejemplo), cuando éste se reinicie comprobaréis que se llamará al programa fsck para restaurar la integridad del sistema de ficheros. En esta carpeta encontraremos la información que se mal-guardó debido a la incidencia.

/media (media/medios): Es donde se montan las unidades extraíbles como los dispositivos USB, disqueteras, unidades de CD/DVD y en algunas distros, como Ubuntu, las particiones adicionales.

/mnt (montajes): Es un directorio que se suele usar para montajes temporales de unidades. /opt (opcionales): Destinado para guardar paquetes adicionales de aplicaciones. /proc: Información para la virtualización del sistema de ficheros de Linux. /root: Es el /home del administrador. Es el único /home que no está incluido -por defecto- en el

directorio anteriormente mencionado. /sbin (binarios de sistema): Son los ejecutables de administración, tales como mount, umount,

shutdown… /srv (servicios): Información del sistema sobre ciertos servicios que ofrece (FTP, HTTP…). /sys (sistema): Información sobre los dispositivos tal y como los ve el kernel Linux. /tmp (temporales): Es un directorio donde se almacenan ficheros temporales. Cada vez que se

inicia el sistema este directorio se limpia. /usr: Es el directorio padre de otros subdirectorios de importancia:

o /usr/bin: Conjunto de ejecutables de la mayoría de aplicaciones de escritorio entre otras (por ejemplo firefox).

Page 5: LINUX - Comandos básicos I

o /usr/include: Los ficheros cabeceras para C y C++. o /usr/lib: Las bibliotecas para C y C++. o /usr/local: Es otro nivel dentro que ofrece una jerarquía parecida al propio diretorio /usr. o /usr/sbin: Otra serie de comandos administrativos para el sistema. o /usr/share: Archivos compartidos como ficheros de configuración, imágenes, iconos, etc. o /usr/src: Tiene en su interior el código fuente para el kernel LInux.

var: Ficheros de sistema como el buffer de impresión, logs… o /var/cache: Se almacenan datos cacheados para las aplicaciones. o /var/lib: Información sobre el estado actual de las aplicaciones, modificable por las propias

aplicaciones. o /var/lock: Ficheros que se encargan de que un recurso sólo sea usado por una aplicación

determinada que ha pedido su exclusividad, hasta que ésta lo libere. o /var/log: Es uno de los subdirectorios más importantes ya que aquí se guardan todo tipo de

logs del sistema. o /var/mail: Los correos de los usuarios. o /var/opt: Datos usados por los paquetes almacenados en /opt. o /var/run: Información sobre el sistema desde que se inició. o /var/spool: Datos esperando a que sean tratados por algún tipo de proceso. o /var/tmp: Otro fichero temporal.

mkdir - Creación de directorios Sintaxis: mkdir <directorio> .. <directorio> mkdir nos va a permitir crear nuevos directorios. Para crear un nuevo directorio, tenemos que tener permiso de escritura en el directorio de trabajo. Como usuario común, yo puedo crear todos los directorio que quiera en mi directorio /home/usuario, pero tengo restringida la creación en otros directorios, por ejemplo no puedo crear un directorio nuevo (ni tampoco poner un archivo) en la raíz, ni en el directorio /home, ni tampoco en los directorios de mis compañeros de grupo, salvo que se habiliten los permisos necesarios.

Opciones:

-pPermite crear una estructura de directorios y subdirectorios con una sola entrada

Ejemplo: Quiero crear en mi directorio la siguiente estructura: dos directorios que dependan de mi directorio hogar y dentro de cada uno de ellos 2 directorios. Para ello puedo hacer los siguientes caminos:

1) cd

mkdir dir1

mkdir dir2

cd dir1

mkdir dir3

mkdir dir4

cd ..

cd dir2

mkdir dir5

mkdir dir6

2) cd

mkdir -p dir1/dir3 dir2/dir5

mkdir dir1/dir4 dir2/dir6

Page 6: LINUX - Comandos básicos I

3) cd

mkdir -p dir1/dir3 dir2/dir5 dir1/dir4 dir2/dir5

Para lograr esta última síntesis debemos pensar antes de actuar, tener la estructura creada en la mente o en papel.

rmdir – Borrar directorios

Sintaxis: rmdir <directorio/s> [-opciones] Borra el o los directorios, siempre y cuando estén vacíos. Si no están vacíos nos da un error e imprime un mensaje en pantalla. Opciones: -p Permite borrar una estructura de directorios, directorios padres e hijos, siempre y cuando el directorio padre solo contenga al hijo, sin ningún otro archivos Ejemplos: Teniendo la estructura anterior creada cd

cd dir1

rmdir dir3

cd ..

rmdir –p dir1/dir4

rmdir dir2

Comando touch

Sintaxis: touch [-opciones] nombre_de_archivo Este es un comando un tanto curioso, que lo que realmente hace es cambiar o actualizar la

fecha y hora de modificación de un archivo o un directorio. Pero tiene la funcionalidad de que si el archivo al que le queremos modificar esos atributos no existe, lo crea con la fecha y hora actuales, salvo que le indiquemos lo contrario con una de las opciones.

Entonces si tenemos un archivo llamado “hola” y escribimos en la consola: touch hola veríamos como la fecha y hora del archivo cambian a las actuales. Si el archivo no existía, lo

habrá creado con esa fecha y esa hora. Antes, hagamos un ls –l en la pantalla que estamos, tomemos nota de cuantos archivos

aparecen en pantalla, luego crearemos un archivo llamado nuevo tal como lo vimos recién y hagamos otra vez ls –l.

Listo, tenemos un archivo vacío, que vamos a poder copiar, mover, renombrar y borrar. Pero vamos a ver cómo funciona touch cuando el archivo existe con sus opciones:

Page 7: LINUX - Comandos básicos I

- cambie la hora de acceso - - -

la fecha y hora que queremos Ejemplos: touch hola touch –am –t1212121212 hola (esto pondría el tanto la fecha de modificación como la de

último acceso al 12/12/12 12:12) Formato de fecha es AAMMDDhhmm.ss

Comando cp

Ahora queremos copiar el archivo que creamos en otro directorio, para eso vamos a crear la siguiente estructura con los comandos que ya vimos:

Nuestro hogar es donde estamos parados cuando iniciamos la terminal, entonces creamos 2

directorios llamados nuevo1 y nuevo2 ahí dentro. ¿Cómo creamos directorios nuevos? Accedemos al directorio nuevo1 (¿con qué comando?) y queremos copiar el archivo “hola”

que está en el directorio anterior en este nuevo directorio. Para ello vamos a necesitar un nuevo comando cuyo nombre es cp, de copy (copiar)

Sintaxis: cp [-opciones] ruta/archivo_fuente destino Es decir, que cp va a copiar el archivo_fuente en el archivo destino Cuando lo copiamos ya podemos renombrarlo y para las rutas podemos usar lo que

aprendimos la semana pasada acerca de rutas absolutas y/o relativas En nuestro caso, estamos parados en nuestro home, el archivo que queremos copiar está en

el mismo directorio en el que estamos parados y queremos copiarlo en un directorio que está inmediatamente debajo del directorio en el que estamos. ¿Cuál de estas sería la correcta?:

cp hola /nuevo1 cp /hola ~/nuevo1 cp hola ~/nuevo1 si accedemos al directorio nuevo1 y hacemos un listado de archivos vamos a verlo bueno, ahora estamos en nuevo1, vayamos a nuevo2, ¿cómo lo hacemos con un solo

comando? (con cd ../nuevo2) Estando en nuevo2 queremos copiar el archivo hola que está en nuevo1 a este nuevo

directorio. ¿cuál de estas será la correcta? cp ../nuevo1/hola . cp hola ../nuevo1/hola cp ~/nuevo1/hola ~/nuevo2/

Nuestro Hogar

nuevo1

nuevo2

Page 8: LINUX - Comandos básicos I

Hay dos formas correctas, porque hay varias maneras de utilizar las rutas relativas El punto solo hace referencia al directorio actual, por eso es que en la primera opción

estando parados en nuevo2 si le ponemos como destino el . le estamos diciendo que copie el archivo hola que está en el directorio hermano (porque está en el mismo nivel) en el directorio en el que estamos.

El símbolo ~ (puede salir con la combinación de teclas alt+126 o con Alt Gr + +) es toda la ruta hasta nuestro home, por eso podemos usarlo, si queremos hacer referencia a algún directorio o archivo que esté dentro de nuestro home, como es el caso de los directorios nuevo1 y nuevo2.

También podemos usar la ruta absoluta que empezaba con qué signo? (/) que indica la raíz. Entonces la primera opción sería igual a

cp /home/usuario/nuevo1/hola /home/usuario/nuevo2/ opciones: -i consulta antes de sobre-escribir un archivo que ya existe. Esto es importante,

porque cp sin esta opción sobre-escribe cualquier archivo de destino que ya exista y que tenga el mismo nombre que el archivo fuente

-p copia el archivo con los mismos atributos de permisos y fechas que tenía archivo fuente

-r copia todos los contenidos de un directorio_fuente en el directorio destino, incluyendo todos los sub-directorios

Comando mv

Mueve los archivos de un directorio a otro Sintaxis: mv [-opciones] ruta/archivo_fuente destino Funciona borrando los archivos de fuente y los crea nuevamente en destino. Si el directorio

destino no existe nos da un mensaje de error. Opciones: -f mueve los archivos sin pedir confirmación (si existe un archivo con el mismo

nombre lo sobre-escribe) -i con esta opción sí nos pide confirmación antes de sobre-escribir.

Comando rm

El otro día vimos el comando rmdir que nos permitía borrar un directorio vacío, ahora con el comando rm vamos a poder borrar archivos que no sean directorios

Sintaxis: rm [-opciones] ruta/archivo opciones: -f elimina todos los archivos que queremos sin pedir confirmación -i pide confirmación para cada archivo que vamos a borrar -r borra todos los archivos incluyendo subdirectorios rm –r * borra todos los archivos del presente directorio, incluyendo los directorios debajo,

tengan o no tengan archivos dentro

Page 9: LINUX - Comandos básicos I

Comando pwd

Sintaxis: pwd No tiene opciones ni parámetros. Lo único que hace (y a veces es muy útil) es decirnos en

qué directorio estamos trabajando, porque el prompt de Linux no nos incluye esa información a simple vista.

Como casi todo en Linux, el prompt se puede configurar, existe una variable del sistema que

se denomina PS1 y que contiene el formato en que debe mostrarse la información del prompt. Normalmente el prompt de Linux tiene la forma: usuario@máquina directorio_actual y un signo al final que nos indica si somos usuarios

comunes o root $ para usuarios comunes # para root