Diferencia entre revisiones de «Introducción al intérprete de órdenes»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(touch =)
(ssh)
 
(No se muestran 29 ediciones intermedias del mismo usuario)
Línea 8: Línea 8:
 
* Acceso a variables.
 
* Acceso a variables.
  
= Órdenes básicas =
+
= 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 ==
 
== pwd ==
Línea 15: Línea 38:
 
  /home/profesor
 
  /home/profesor
  
== ls ==
+
= 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
 +
 
 +
== 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
 +
 
 +
== touch ==
  
Lista el contenido de una carpeta.
+
Crea un fichero vacío.
  
* -a, mostrar todo, incluído "ocultos".
+
== echo ==
* -l, formato largo: rwx.
 
** r, lectura.
 
** w, escritura (actualización del contenido del fichero o directorio).
 
** x, ejecución (en directorio, se refiere al acceso).
 
  
== cd ==
+
Imprime mensaje en pantalla
  
Cambia el directorio de trabajo actual.
+
= Documentación =
  
 
== man ==
 
== man ==
Línea 33: Línea 135:
 
Muestra página de manual
 
Muestra página de manual
  
== echo ==
+
= 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 ==
 +
 +
Para acceder al sistema 'regula.lsi.us.es' con el usuario prueba:
 +
 
 +
ssh prueba@regula.lsi.us.es
 +
 
 +
Para copiar el fichero 'debian-9.5.0-amd64-netinst.iso' a regula.lsi.us.es con el usuario ''prueba'':
 +
 
 +
scp debian-9.5.0-amd64-netinst.iso prueba@regula.lsi.us.es:
 +
 
 +
Muy importante los ':' del final en la línea anterior.
 +
 
 +
== apt ==
 +
 
 +
= Ejercicios =
 +
 
 +
#1 Crear un arbol de directorios en la carpeta home con esta pinta:
 +
 
 +
      carpeta1
 +
          |
 +
          |------ carpeta2
 +
          |
 +
          |------ carpeta3
 +
                    fichero.txt
 +
                    fichero2.txt
  
Imprime mensaje en pantalla
+
Donde fichero.txt contiene la cadena "Probando 1 2 3" y fichero2.txt contiene la cadena "Hola Mundo".
  
== touch ==
+
#2 Mover el fichero2.txt al temporal con el nombre fichero3.txt
  
Crea un fichero vacío.
+
#3 Contar el número de lineas del fichero fichero3.txt
  
== mkdir ===
+
#4 Concatenar el contenido de fichero.txt y fichero2.txt en un fichero en el home que se llame fichero4.txt
  
Crea un directorio
+
Solución
  
== rmdir ==
+
    mkdir carpeta1
 +
    mkdir carpeta1/carpeta2
 +
    mkdir carpeta1/carpeta3
 +
    echo "Probando 1 2 3" > carpeta1/carpeta3/fichero.txt
 +
    echo "Hola Mundo" > carpeta1/carpeta3/fichero2.txt
  
Borra directorio (sólo si está vacío). No muy útil :-(
+
    mv carpeta1/carpeta3/fichero2.txt /tmp/fichero3.txt
  
== rm ==
+
    wc -l /tmp/fichero3.txt
  
Borrado de ficheros y directorio (con contenido).
+
    cat carpeta1/carpeta3/fichero.txt /tmp/fichero3.txt > fichero4.txt

Revisión actual del 16:03 25 oct 2018

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

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

touch

Crea un fichero vacío.

echo

Imprime mensaje en pantalla

Documentación

man

Muestra página de manual

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

Para acceder al sistema 'regula.lsi.us.es' con el usuario prueba:

ssh prueba@regula.lsi.us.es

Para copiar el fichero 'debian-9.5.0-amd64-netinst.iso' a regula.lsi.us.es con el usuario prueba:

scp debian-9.5.0-amd64-netinst.iso prueba@regula.lsi.us.es:

Muy importante los ':' del final en la línea anterior.

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