T7.-Sistema Operativo Libre II
1.1. Historia
- 1ª Shell programada por Steven Bourne, (sh o bsh)
- C-shell o csh fue la siguiente muy similar a programación en C
- 1986 David Korn mezcló lo mejor de las 2 anteriores creando korn-shell o ksh.
1.2. Generalidades, introducción de comandos
Sintaxis: orden [-modificadores] [argumentos]
- orden: indica la acción a realizar
- -modificadores: indica las opciones o modificaciones de la orden
- argumentos: archivo o directorio sobre el que recae la orden
Modos de ejecución de comandos:
- En secuencia: Se separan por un punto y coma “;” y se ejecuta uno tras otro.
comando1 ; Comando2 ; comando3;
- En segundo plano: Se añade el carácter “&” al finaly se ejecuta en segundo plano, no se espera a que termine para poder continuar.
comando1& comando 2& comando3 &
- Mixto de 1º y 2º plano: Se ejecutan en secuencia y en segundo plano los que acaban en “&” y continúan ejecutándose los siguientes.
comando1 ; comando2 & ; comando3 ; comando4 & ...
1.3. Directorios
Comando para el uso en directorios:
- pwd (print working directory): Muestra la trayectoria absoluta
- ls (list): Muestra una lista del contenido (ls -l lista con detalle)
- chdir o cd (change directory): Comando para movernos entre directorios
- mkdir (make directory): Comando para la creación de directorios.
- rmdir (remove directory): Elimina directorios añade el parámetro -r para eliminar directorios que no estén vacíos.
1.4. Ficheros
Comandos para el uso en ficheros:
- ls (list)
- -l lista con detalle
- -a incluye ficheros ocultos
- -R (mayúscula) lista todos los directorios y subdirectorios
- Los parámetros son combinables (-al, -lR, -aR…)
- cat +fichero (muestra el contenido del fichero)
- more +ruta/fichero (muestra el contenido página a página) Q para salir
- cp +origen +ruta destino (copia ficheros)
- mv +origen +ruta destino (mueve objetos)
1.5.-Usuarios del Sistema
Los usuarios se identifican mediante una numeración, y se almacenan en /etc/passwd
- Usuario root su UID es 0
- Usuario de sistema su UID entre 1 y 1000
- Usuario normal su UID a partir de 1000
Comandos:
- cat /etc/passwd muestra la información de los usuarios del sistema
- nombre_de_usuario: contraseña: UID:GUID: descripción: carpeta_de_trabajo: terminal_de_usuario.
- Nombre_de_usuario: Nombre asignado al usuario (Ej: root)
- Contraseña: se muestra con una x y las pass se almacenan en /etc/shadows aunque es configurable.
- UID: numero identificativo de usuario (Ej: 0)
- GUID: número identificativo del grupo (Ej: 0)
- Descripción: Añade mas datos sobre el usuario (Ej: Usuario admin)
- Terminal: normalmente /bin/bash
- nombre_de_usuario: contraseña: UID:GUID: descripción: carpeta_de_trabajo: terminal_de_usuario.
- cat /etc/group muestra la información de los grupos del sistema (more sustituye a cat para listar por página)
- nombre_de_grupo: contraseña_grupo: GUID: usuarios_de_grupo
- nombre_de_grupo: nombre asignado al grupo
- contraseña: se muestra con una x y se le puede asignar una pass de admin
- GUID: número identificativo del grupo (Ej: 4)
- usuarios_de_grupo: lista de usuarios que pertenecen al grupo
- nombre_de_grupo: contraseña_grupo: GUID: usuarios_de_grupo
- sudo su cambia a modo super usuario
1.6.-Redireccionamiento y tuberías
- comando >+fichero sobrescribe el fichero si existe o lo crea si no existe
- comando >> +fichero añade información al fichero existente o lo crea si no existe
2.-Comandos de permisos
- Permiso de lectura: r
- Permiso de escritura: w
- Permiso de ejecución: x
Representación de permisos -rwxr-xr-x
- -rwxr: El 1º bloque se refiere a los permisos del propietario del fichero (identificador u)
- -xr: El 2º bloque se refiere a los permisos del grupo (identificador g)
- -x: El 3º bloque se refiere al resto de usuarios (identificador o)
- Identificador a recoge todos los usuarios
Comandos asignación de permisos:
- chown: Cambia el propietario de un fichero
- chgrp: Cambia el grupo al que pertenece un fichero
- chmod: Cambia los permisos de acceso.
- r: lectura, w: escritura, x: ejecución (r=4, w=2, x=1)
- -u[+/-r][+/-w][+/-x] Añade o quita permisos a un usuario
- -g[+/-r][+/-w][+/-x] Añade o quita permisos a un grupo
- Ej: chmod javi +rwx fichero1.txt otorga todos los permisos al usuario javi
- Ej2:chmod javi +777 fichero1.txt otorga todos los permisos al usuario javi
- Ej3:chmod u+777 fichero1.txt otorga todos los permisos al usuario propietario del archivo
2.2.-Comandos de utilidad
- echo: muestra el mensaje en pantalla
- df: muestra la ocupación del disco
- du: muestra la ocupación de disco de los ficheros
- date: muestra la fecha del sistema
- cal: muestra el calendario
- grep: busca un texto dentro de un fichero grep “texto a buscar” fichero
- Ipr: manda a imprimir
- shutdown: apaga el sistema en un min (-h now para que lo apague al momento)
- reboot: reinicia el sistema
- uname: muestra la info del sistema
- logname: muestra el usuario que se ha conectado
- apt-get: manipula paquetes de instalación
- at: programa tareas
2.3.-Comandos de red
- ping: comprueba la conectividad
- whois: muestra info sobre un dominio
- traceroute: muestra la ruta en tiempo real de un paquete hasta que llega a destino.
- netstat: muestra información de nuestra red
- -a: muestra los puertos abiertos
- ifconfig: muestra la IP y si no está instalado puedes usar el comando ip address
- Ej: activar o desactivar dispositivos de red:
- ifconfig nombre_interfaz_red down (desactiva)
- ifconfig nombre_interfaz_red up (activa)
2.4.-Comandos de gestión de usuarios
- useradd usuario: permite crear un usuario manualmente
- adduser usuario: permite crear un usuario mediante “asistente”
- userdel usuario: elimina usuario, con el parámetro -r elimita tambien el directorio de usuario
- passwd usuario: cambia la contraseña de ese usuario
- groupadd nuevogrupo: crea un nuevo grupo de usuarios
- groupdel nombregrupo: elimina un grupo de usuarios
- delgroup nombreusuario nombregrupo: elimina un usuario de un grupo
- usermod: cambia atributos de usuarios,
- -g nombregrupo usuario: cambia el grupo principal de un usuario
- -G nombregrupo usuario: añade un usuario a un grupo secundario
- id: muestra el nombre, numero de usuario y grupos al que pertenece
- whoami: muestra el nombre de usuario
- who: muestra los usuarios conectados y la fecha/hora de acceso
La info sobre usuarios grupos y contraseñas se guarda en:
- /etc/passwd: info sobre usuarios
- /etc/group: info sobre grupos
- /etc/shadow: info contraseñas cifradas
2.5.-Comandos de gestion de procesos
- ps: muestra la lista de procesos con su identificación de proceso PID
- -a: parámetro que muestra procesos de otros usuarios
- -x: parámetro que muestra procesos daemons (ajenos al terminal)
- -u usuario: parámetro que muestra procesos de un usuario
- -e: parámetro que muestra todos los procesos
- -F: parámetro que muestra toda la info de cada proceso
- -l: (S: estado, S – Sleep, R – Runing, T – Stopped)
- kill: finaliza procesos
- top: muestra en tiempo real el estado de los procesos
- Ej: ps -eF muestra todos los procesos junto con la información de cada uno.
2.6.-Editores de texto
- nano: editor por defecto en modo texto
- gedit: editor por defecto en modo gráfico
- pico: editor básico
- vi: editor de texto de linus con 2 modos de trabajo
- Modo comando o dos puntos
- Modo introducción de texto
3.- Script de Linux
También llamados guiones de la shell. Conjunto de comandos que se irán ejecutando. Para Indicar que se va a ejecutar el script comienza con una de estas líneas al principio del script:
- #!/bin/bash (shell Bourne Bash)
- #!/bin/sh (shell Bourne)
- #!/bin/ksh (shell Korn)
Para ejecutar un script usaremos ./nombreScript.sh
3.2.-Variables
- Asigar variables usaremoes el “=” o “set“
- Para obtener el valor de la variables usaremos “$” antes de la variable (Ej: $variable1)
- Para solicitar información al usuario como variables usaremos “read“
- Existen variables predefinidas como por ejemplo entre otros muchos:
- $home: directorio raiz del usuario (echo $home)
- $path: lista de directorios separados po “:” (echo $path)
- $pwd: nombre del directorio actual (echo $pwd)
3.3.-Parámetros
- Son argumentos adicionales de datos detrás de un comando o script
- Ej: “usuario@ubuntu-18:-$ sh nombreScript.sh parametro1 parametro2“
- En el Script las variables se marchan $1, $2, $3, etc… aunque se pueden diferenciar como sigue:
- $0: Su valor es el nombre del script que se está ejecutando
- $1: Es el primer parámetro
- $2: Es el segundo parámetro $3, etc…
- $#: Es el número de parámetros que se pasan
- $@ y $*: So todos los parámetros que se listan de una vez.
- $$: pid que tiene el Scritpt. Número de procesos del shell
- $?: Es el valor de salida del último comando ejecutado. En un “exit 1”, se devolverá el valor 1. Si todo sale bien, se devolverá el valor 0. Útil para saber si la última instrucción se ha ejecutado bien o no.
- $_: Último argumento o parámetro que hemos utilizado.
3.4.-Comandos de programación
mañana mas…