Introducción al intérprete de órdenes

De Wiki de Sistemas Operativos
Revisión del 15:09 25 oct 2018 de Pneira (discusión | contribuciones) (Órdenes básicas)
Saltar a: navegación, buscar

Interprete de órdenes

  • Autocompletado.
  • Ctrl-L, limpia el contenido de la pantalla.
  • Definición de variables.
  • Acceso a variables.

Navegación por el árbol de directorios

ls

Lista el contenido de una carpeta.

  • -a, mostrar todo, incluído los ficheros que empiezan por '.' (en alguna bibliografía se refieren a estos ficheros y directorios como "ocultos").
  • -l, formato largo: rwx.

Los permisos de un fichero se interpretan de la siguiente manera:

  • r (read), permite leer del fichero.
  • w (write), permite modificación y del contenido del fichero, así como su borrado.
  • x (execute), permite la ejecución de un fichero (ya se binario ejecutable o un script).

Para los directorios, la interpretación es diferente:

  • r (read), se puede listar el contenido del directorio.
  • w (write), se pueden añadir nuevos fichero al directorio, así como borrar ficheros.
  • x (execute), se puede acceder al directorio mediante la orden cd.

cd

Cambia el directorio de trabajo actual.

pwd

usuario@pc:~$ pwd
/home/profesor

Manejo de ficheros y directorios

mkdir

Crea un directorio

rm

Borrado de ficheros y directorio (con contenido).

Por ejemplo:

rm fichero.txt

Para borrar un directorio hay que usar la opción '-r':

rm -r xyz

La orden 'rmdir' sirve para borrar directorios vacíos. No muy útil :-(, mejor usar 'rm'.

sort

Ordena un fichero de manera alfanumérica.

cp

Copia ficheros o carpetas.

Por ejemplo, copia el fichero 'fichero1.txt' al directorio temporal.

cp fichero1.txt /tmp

Otro ejemplo, copia una carpeta y su contenido al directorio temporal.

mkdir xyz
echo "hola mundo" > xyz/fichero.txt
cp -r xyz /tmp

La opción '-r' me permite realizar copias recursivas, es decir, de una carpeta y su contenido.

cat

Muestra el contenido de un fichero de texto plano.

cat fichero.txt

También se puede usar para concatenar ficheros:

cat lista-clase.txt lista-clase2.txt

Y podríamos combinarlo con el mecanismo de tuberías para obtener una lista ordenada:

cat lista-clase.txt lista-clase2.txt | sort

Y volcar esa salida a ordenada a un fichero con la redirección de salida:

cat lista-clase.txt lista-clase2.txt | sort > lista-clase-ordenada.txt

grep

Sirve para buscar patrones, por ejemplo:

grep Saavedra lista-de-clase.txt

El primer parametro es el patrón a buscar, el segundo es el fichero en que se se busca el patrón.

Como viene siendo habitual, se puede combinar grep con tuberias, por ejemplo:

sort lista-de-clase.txt | grep Saavedra

wc

Sirve para contar el número de líneas, palabras y caracteres.

wc lista-de-clase.txt
1  3 27 lista-clase.txt

touch

Crea un fichero vacío.

Otros comandos

man

Muestra página de manual

echo

Imprime mensaje en pantalla

curl

Sirve para descargar ficheros, por ejemplo:

curl http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz -O

Manejo de procesos

ps

Muestra la lista de procesos en ejecución.

kill

Termina con la ejecución de un proceso.

kill 4356

o de manera abrupta con:

kill -KILL 4356

top

Monitoriza el uso de los recursos del sistema.

Manejo de usuarios y grupos

adduser

deluser

addgroup

Manejo de permisos

chmod

chown

chgrp

Administración general del sistema

ssh

apt

Ejercicios

  1. 1 Crear un arbol de directorios en la carpeta home con esta pinta:
     carpeta1
         |
         |------ carpeta2
         |
         |------ carpeta3
                    fichero.txt
                    fichero2.txt

Donde fichero.txt contiene la cadena "Probando 1 2 3" y fichero2.txt contiene la cadena "Hola Mundo".

  1. 2 Mover el fichero2.txt al temporal con el nombre fichero3.txt
  1. 3 Contar el número de lineas del fichero fichero3.txt
  1. 4 Concatenar el contenido de fichero.txt y fichero2.txt en un fichero en el home que se llame fichero4.txt

Solución

   mkdir carpeta1
   mkdir carpeta1/carpeta2
   mkdir carpeta1/carpeta3
   echo "Probando 1 2 3" > carpeta1/carpeta3/fichero.txt
   echo "Hola Mundo" > carpeta1/carpeta3/fichero2.txt
   mv carpeta1/carpeta3/fichero2.txt /tmp/fichero3.txt
   wc -l /tmp/fichero3.txt 
   cat carpeta1/carpeta3/fichero.txt /tmp/fichero3.txt > fichero4.txt