Linuxnuevo

Descargar como odt, pdf o txt
Descargar como odt, pdf o txt
Está en la página 1de 18

PROCESO DE ARRANQUE

1.- Tanto BIOS (firmware almacenado en ROM de la placa base) como UEFI hacen primero un
POST (power-on self-test) para detectar fallas simples en dispositivos, y después activan los
componentes básicos para cargar el sistema, como vídeo, teclado y medios de almacenamiento.
2.- Carga de la primera etapa del Boot Loader o Gestor de Arranque, almacenado en un disco duro:
 BIOS tradicionales, MBR (primeros 440 bytes del primer dispo). El gestor de arranque
examina la tabla de particiones y encuentra la partición de arranque.
 EFI. En lugar de emplear MBR, busca la configuración almacenada en la NVRAM de la
placa base, donde se muestra la ubicación de los programas compatibles con UEFI (EFI
applications, como gestores de arranque, selectores de SO, herramientas de diagnóstico, que
deben estar en un dispo de almacenamiento convencional con un sistema de archivos
compatible como FAT12, 16 y 32=usual, en dispos de bloque e ISO-9660 en medios
ópticos). Se ejecutarán auto o se llamarán desde un menú de arranque. El firmware lee los
datos del Boot Manager para ver desde en qué disco y partición se encuentra la partición
EFI (ESP o EFI System Partition). Esta partición no debe compartirse con otros sistemas de
archivos del sistema, como el raíz o los de datos de usuario. Entonces se inicia la aplicación
UEFI por defecto, generalmente un gestor de arranque, por ejemplo GRUB, que cargará el
kernel. UEFI también admite Secure Boot, permitiendo sólo la ejecución de apps UEFI
firmadas, más seguro, pero que puede dificultar la instalación de SO no cubiertos por la
garantía.
El gestor de arranque de la segunda etapa está en /boot. Pantalla para elegir SO. Entonces se carga
el kernel del SO elegido en la RAM, generalmente descomprimiéndolo, y le pasa el control. Ahora
se realizará una comprobación, análisis e inicialización del hardware.
A partir de ahora, ya tiene acceso a almacenamiento masivo. Hasta entonces, la info de fecha, hora
y periféricos más importantes se cargan de una memoria CMOS, alimentada por batería, incluso
cuando está apagado. GRUB, ISOLINUX (arranque desde medios extraíbles), DAS U-Boot
(arranque desde dispositivos integrados).
Si GRUB no muestra la lista de SO al arrancar, se puede invocar con Shift mientras BIOS está
llamando a GRUB (Esc en UEFI). GRUB tiene varios parámetros de arranque:
 acpi=off, deshabilita/habilita compatibilidad con ACPI
 init establece un iniciador alternativo; init=/bin/bash inicia shell tras arranque del kernel
 systemd.unit, activa systemd; systemd.unit=graphical.target p.ej. También acepta niveles de
ejecución definidos para SysV (p.ej. Añadiendo 1 o S de single, se establece el nivel 1)
 mem, establece cantidad de RAM para el sistema, útil en máquinas virtuales; mem=512M
 maxcpus, establece número de núcleos, p.ej, maxcpus=0 o nosmp, para desactivar soporte
multiprocesador, o maxcpus=2
 quiet oculta la mayoría de los mensajes de arranque
 vga selecciona modo de vídeo, p. ej. vga=ask, para que muestre una lista
 root establece una partición raíz distinta de la preconfigurada en el gestor, como root
=/dev/sda3
 rootflags, opciones de montaje para el sistema de archivos raíz
 ro, el montaje inicial del sistema de archivos raíz es de sólo lectura
 rw permite escribir en el sistema de archivos raíz durante el montaje inicial
Los parámetros deben agregarse a / etc/ default/ grub en la línea GRUB_CMDLINE_LINUX para
que sean persistentes a los reinicios. Cada vez que este archivo cambie se debe generar un nuevo
archivo de configuración para el gestor de arranque, con grub-mkconfig -o / boot/ grub/ grub.cfg.
Durante la ejecución del SO pueden verse los parámetros usados por el kernel en /proc/cmdline.
3.- El gestor de arranque carga tanto el kernel como el sistema de archivos inicial basado en RAM
(initramfs) en la memoria, por lo que puede ser usado directamente por el kernel. Initramfs es un
archivo que contiene un sistema de archivos utilizado como raíz temporal durante el arranque , y
que proporciona los módulos necesarios para que el núcleo pueda acceder al sistema de archivos
raíz real. Cuando esté disponible, el núcleo montará todos los sistemas de archivos configurados
en /etc/fstab y ejecutará el primer programa, init. El kernel configura la memoria y el hardware,
incluyendo procesadores, dispos de almacenamiento y I/O y algunas aplicaciones de usuario
necesarias. Instalar un kernel personalizado sin una imagen initramfs adecuada puede hacer que el
sistema de archivos raíz sea inaccesible.
4.- El kernel ejecuta sbin/init, el proceso inicial que origina el resto de procesos (excepto los
procesos kernel, que inicia directamente el propio kernel). Cuando se carga, initramfs se elimina de
la RAM. Init también mantiene el funcionamiento del sistema y apagarlo limpiamente, limpiar los
procesos normales cuando han finalizado, reiniciar los servicios de inicio de sesión cuando los
usuarios entran y salen… Este proceso de arranque tradicionalmente se realizaba a través de SysV,
colecciones de scripts que iniciaban y detenían servicios a través de runlevels, o niveles de
ejecución del 1 al 6. Actualmente el método predominante es systemd, que arranca de forma muy
rápida debido a que el proceso es más sencillo y se realiza en paralelo, en lugar de una serie
secuencial. Además soporta ejecución de demonios a demanda, monitoreo de procesos con cgroups,
snapshot, recuperación de sesión, control de punto de montaje… Ahora systemd se hace cargo del
proceso init, ya que sbin/init apunta a /lib/systemd/systemd. El comando systemctl de systemd
verifica el estado, inicia, detiene, reinicia un servicio, o lo habilita/deshabilita del arranque (en el
ejemplo https, el servidor web Apache):
$ sudo systemctl status|start|stop|restart httpd.service
$sudo systemctl enable|disable httpd.service
En muchas ocasiones, el service puede omitirse.
El mensaje ALERT! /dev/sda3 does not exist. Dropping to a shell!! indica que el núcleo no pudo
encontrar ese dispositivo, determinado como el sistema de archivos raíz.

Inspección de la inicialización

El kernel almacena sus mensajes, incluidos los de arranque, en el kernel ring buffer de la memoria,
aunque se pierde al apagar o con dmesg –clear. Dmesg muestra los mensajes actuales del búfer,
mostrando en la principio de las líneas la cantidad de segundos relativos al inicio de la carga del
núcleo. Los mensajes de inicialización pueden verse con journalctl -b, --boot, -k o –dmesg. El
comando journalctl --list-boots muestra una lista de números de arranque relativos al arranque
actual, su hash de identificación y las marcas de tiempo de primer y último mensajes. Los registros
anteriores también están disponibles, por ejemplo -b 0 o –boot=0 muestra los mensajes del arranque
actual, -b -1 o --boot=-1 los de la inicialización anterior, -2 para el anterior…
Los registros de inicialización suelen tener cientos de líneas, por lo que dmesg -H o dmesg --human
paginarán el resultado.
Los mensajes de inicialización y otros se guaradan en /var/log. Las opciones -D o --directory de
journalctl también pueden leer mensajes en directorios que no sean /var/log/journal/, la ubicación
predeterminada. Los mensajes de registro de systemd se almacenan en texto sin formato, por lo que
se requiere del comando journalctl para leerlos.
Para inspeccionar los logs de un disco duro cuyo punto de montaje es /mnt/hd, y que se desconectó
y conectó a otro pc como unidad secundaria, se podría emplear journalctl -D /mnt/hd/var/log/journal
o journalctl –directory=/mnt/hd/var/log/journal.

Sistema de ficheros

Método de organización/ buscar archivos en el disco duro. Una partición es una sección físicamente
contigua del disco, donde reside el sistema de archivos. La organización del sistema de archivos
obedece a un estándar conocido como FHS (Filesystem Hierarchy Standard). Por ejemplo, un
pendrive llamado Fedora del usuario Mika estaría en /run/media/Mika/Fedora.
Para verlo desde la interfaz gráfica, ir a Aplicaciones/Archivos/Otras ubicaciones. Aquí puede verse
todo el equipo.

Escritorio Gráfico

Uno de los últimos servicios en cargarse es el Display Manager, que proporciona 3 funciones:
 Seguimiento de las pantallas.
 Carga del servidor X, que proporciona servicios gráficos a las aplicaciones o clientes X
(inicio de componentes, su ubicación y movimiento...). Actualmente se está sustituyendo por
Wayland.
 Gestión de inicio de sesión gráfica y elección del entorno gráfico adecuado al usuario.
Si no se inicia auto, puede iniciarse con el comando startx (o iniciar un gestor de pantalla concreto
como gdm = gnome, lightdm = Ubuntu < 18,04, kdm = kde…)
Para configurar el fondo , el tema y otras cosas, más allá de lo normal, se puede recurrir a la utilidad
gnome tweaks o a gnome-extensions-app. A veces se ejecutan con Alt-F2 y después escibir el
nombre.
Bloque de pantalla (todo sigue ejecutándose) con clic en esquina superior derecha y bloquear o con
Super-L (Super = tecla Windows).
Podemos tener varias sesiones de usuarios diferentes simultáneas, eligiendo el usuario en la parte
superior derecha. Cambiar de sesión no la cierra, sino que la bloquea, para acceder a la nueva
sesión.
El modo de suspensión mantiene todas las aplicaciones en la RAM, pero apaga el resto del
hardware, conservando energía y reduciendo el tiempo de puesta en marcha. Se reanuda moviendo
ratón o pulsando una tecla.
Aplicaciones Predeterminadas. Configuración/Aplicaciones predeterminadas.

CLI

Configuración sudo para sistemas donde no está configurado


1. Escribir su y enter (pide contraseña, y generalmente cambia prompt).
2. Creamos archivo conf en /etc/sudoers.d/ con nombre igual al nombre de usuario. Si student:
#echo “student ALL=(ALL) ALL” > /etc/sudoers.d/student
3. Generalmente hay que cambiar permisos: #chmod 440 /etc/sudoers.d/student
Terminales virtuales. A diferencia de las ventanas de terminal de comandos, sólo puede haber una
activa y ocupan toda la pantalla. Suele reservarse uno para el entorno gráfico (VT7 en Ubuntu, Ctrl
+ Alt + F7 y VT1, Ctril + Alt + F1 en Suse/CentOS). Para cambiar entre Vts se puede omitir el Ctrl.
Útil para subsanar algo que no funciona bien en el entorno gráfico.
Iniciar nuevas sesiones de terminal – Ctrl + Alt + F3 en adelante. Se inicia un nuevo modo de
terminal en otro entorno para otro usuario en el que nos piden credenciales. Ctrl + Alt + F2 se
regresa. Con who podríamos ver todos estos usuarios conectados

Desactivación del entorno gráfico. Al ser un servicio:


$sudo systemctl stop|start gdm (o sudo telinit 3|5).
Apagado / reinicio. Shutdown -h (halt o poweroff) detienen el sistema.
Reboot ejecuta shutdown -r.
sudo shutdown -h 10:00 “Apagado por mantenimiento programado” notifica a todos usuarios.

Hostname. Indica el nombre del host de la máquina útil por ejemplo si tienes varias sesiones ssh
abiertas y no sabes cuál es cuál.

Localización de aplicaciones. Suelen estar en /bin, /usr/bin, /sbin, /usr/sbin, /usr/local/bin o


/usr/local/sbin.
Para localizarlas puede usarse which nombre programa o whereis nombreprograma (esta última tb
indica localización en más directorios, ficheros fuente y man empaquetados con el programa.

~ - Directorio home de usuario actual . Directorio actual


.. Directorio un nivel por encima del actual ./ Ejecuta archivo en directorio actual
Tree – Muestra vista en árbol del sistema de archivos.

Historial de directorios pushd – popd


Podemos movernos entre directorios con cd o podemos utilizar pushd, que nos va recordando el
historial de directorios por los que nos hemos movido.Por ejemplo, si estamos en /usr/local:
pushd /temp # nos muestra /temp /usr/local
pushd /boot # nos muestra /boot /temp /usr/local
dirs # nos muestra el listado de sitios dnd he estado, es decir, /boot /temp /usr/local
popd # nos lleva a /boot, el último donde he estado (podemos verlo con pwd)
popd # haciéndolo de nuevo nos lleva a /temp
popd # haciéndolo de nuevo vamos a /usr/local. Si lo hacemos de nuevo nos dirá que la
pila está vacía

Modificación del símbolo de la línea de comando. Aunque generalmente se muestra la opción por
defecto, el administrador puede querer variar el símbolo de CLI para adecuarlo a los diferentes
roles, etc. La variable PS1 es la cadena de caracteres que se muestra como símbolo de sistema. Si
quisiéramos que se mostrara por ejemplo student@c8 $, configuraríamos PS1 a \u@\h \$:
$ echo $PS1
\$
$ PS1= “\u@\h \$”
student@c8 $ echo $PS1
\u@\h \$
student @c8 $

Autocompletar – poner primeras letras y darle a tab. Si se le da 2 veces a tab, se muestran en la


terminal las diferentes opciones que hay. Se pueden autocompletar comandos tb

Ctrl + C – Termina el programa. Recomendable sólo como último recurso.


Ctrl + Z – Pausa un programa en ejecución. Con bg se reinicia en background.
Ctrl + D – Deja el programa tal cual

TIPOS DE USUARIOS

Root (prompt root, home es /root, solo para administracion, identificador de 0), normales )(home
en /home, lo suele crear el root, ID superior a 500 o 1000o de trabajo y de sistema o especiales.
(cuentas de sistema con las que no se puede hacer login, UID 1 a 100, no tienen shell, creadas
generalmente de forma automatica, y ejecutan diversos procesos de sistema como bin, daemon,adm,
mail...)
Los usuarios tienen un directorio home personal al que solo el tiene acceso, una shell y han de
pertenecer al menos a un grupo.

df – h –lista de unidades de almacenamiento, tamaño, uso de memoria, ruta y porcentaje de uso


who — usuario actual, método de conexión y hora fecha del sistema
date
para cancelar comando colgado o solicitud sin resultado o error — Ctrl + C
ls — ubicación actual
free -m — memoria libre del sistema
top – lista de procesos y servicios y recursos que consumen
htop — top más detallado, incluyendo ruta donde se encuentran
pwd – directorio de trabajo en el que me encuentro
cd — Sin argumentos te lleva a home
ls -l ---- Listado detallado de mi directorio actual
ls -all – Listado detallado, incluyendo los directorios superiores
ls -ld /usr— Lista las características del directorio (d), no su contenido
ls -a — También lista archivos y directorios ocultos (En linux basta con que empiecen por ., que no
es por seguridad, sino porque no es necesario verlos para el usuario).
Ls -alh – Vista detallada, pero el tamaño de archivos en KB para que sea más legible
ls -lr – Ordenado alfabéticamente al revés
ls -ls – Ordenado por tamaño
ls -lsh – Los que tiene el mismo tamaño los ordena alfabéticamente.
Ls -l /tmp – Lista el directorio tmp
ls -lt o ls -ltr– Ordena por fecha, de más nuevo a más antiguo o viceversa.
man pwd — Manual del comando, pwd en este caso. Para movernos, podemos usar las flechas o
AvPag, Repag, B (backward) o F (forward). Si se quiere buscar una palabra, poner /copyright (barra
+ la palabra a buscar)

Metacaracteres

* sustituye a cualquier número de caracteres


ls b* – ls *b lista todos los archivos que empiezan / acaban por b (diferenciando mayíscula y
minúscula)
ls * ma * ---- lista todos los archivos que contengan ma en el medio (sin espacios entre * y ma)
ls * m * k * — lista todos los que contengan en medio una m y una k

? sustituye sólo un carácter


ls g? — lista que empiezan por g y siguen por cualquier carácter (fichero de 2 caracteres en total)
ls g?? – como arriba, pero siguen 2 caracteres cualesquiera (fichero de 3 caracteres en total)
ls [af]* – lista ficheros que empiezan por a o f
ls g*[0-9] – ficheros que empiezan por g y acaban en número
ls g*[0-9][0-9] – ficheros que empiezan por g y acaban en 2 números comprendidos entre 0 y 9.

[adf] – Cualquier carácter que incluya a,d o f.


[!adf] – Cualquier carácter que no incluya a, d o f.

en descargas, du -sh d* # muestra disk usage de archivos que comienzan por d


du -sh d*log* # muestra disk usage de archivos que comienzan por d y tienen log
du *.?.* # muestra las que tienen una subcadena con un carácter.
ls elementos que empiezan por d directorios, - archivos y l son links o accesos directos, c son
carácter( pej pantalla) y b tipo bloque (apuntan a direcciones de disco duro)
file Descargas — Nos dice el tipo de archivo que es Descargas (directorio en este caso)

Comandos básicos

mkdir – Crear directorio o carpeta


mkdir -v dir3 – Crea el directorio dir3 y nos muestra un mensaje de que lo ha creado
mkdir -p dir4/prueba — Nos crea el directorio dir4 y la el subdirectorio prueba.

touch f1– crea un archivo vacío si no existe y si existe actualiza fecha de modificación.

Echo hola – Nos muestra hola en la salida estándar (pantalla)


echo prueba > f1.txt – Escribe prueba en el archivo f1. Si no existe lo crea.
Cat f1.txt

cp origen destino – cp etc/pass . (copia pass en el directorio actual (.) Copiar requiere x para
directorio del archivo y r para el archivo a copiar, y requiere r y x en el directorio al que se copia
dd copia archivos o particiones enteras a nivel de bits. Útil para clonar o eliminar discos o
particiones
dd if=/dev/zero of=/tmp/swapex bs=1M count=50
archivo de entrada, de salida,tamaño de bloque (1mega, usar K, M, G u T para otros tamaños), n.º
de bloques
dd if=/dev/sda of=/dev/sdb para clonar un disco duro no hace falta numero ni tamaño de bloques
cp origen destino – Copia el archivo de origen en el destino. Copy f1.txt f2.txt, copia el archivo f1
en f2 (si no existe lo crea)
cp – i origen destino – nos pregunta si quiero sobreescribir el archivo en caso de que sean iguales,
ya que por defecto lo sobreescribe.
Cp f*.txt /tmp — Copia todos los archivos que empiecen por f en el directorio tmp.
Cp -r dir3 dir6 – Para copiar directorios hay que poner la opción -r (recursivo)

mv – mover o renombrar ficheros (si es en el mismo directorio). Requiere r y x en directorios de


origen y destino
mv f2 /tmp – mueve el archivo f2 a la carpeta /tmp
mv f1.txt f1.dat — mueve el archivo a la misma carpeta cambiando extensión (renombrar).
Mv f*txt /tmp – mueve todos los archivos que empiezan por f a la carpeta /tmp.
mv people.csv Work mueve el archivo people.csv a Work
mv numbers-txt letters.txt alpha.txt School mueve 3 archivos a School
mv animals.txt zoo.txt — Mover archivo a mismo directorio cambia su nombre

rmdir – elimina un directorio, pero tiene que estar vacío.


Rm Pruebas1/* elimina todos los archivos de la carpeta Pruebas1
rmdir Pruebas1 ya se puede eliminar el directorio
rm -r dir6 – borra el directorio y todo lo que esté dentro
rm -rf – borra todo el directorio de forma recursiva y a la fuerza
Rm f2 – elimina el fichero f2
rm -i *txt – elimina todos los ficheros con extensión txt, pidiendo confirmación
rm -f – elimina un archivo a la fuerza
rm linux.txt – elimina el archivo. Requiere w y x.
rm -r Work – elimina el directorio y sus archivos

man ls > ejemplo1.txt — Traslada el contenido de man ls a un fichero de texto en lugar de a pantalla

cat ejemplo.txt – visualiza el fichero ejemplo.txt


cat -n ejemplo.txt – visualiza el fichero numerando las lineas
tac – visualiza el fichero al revés, empezando por el final

tail ejemplo.txt — ver las últimas 10 líneas del archivo


tail -n 20 ejemplo (ver las ulimas 20)
head ejemplo.txt – ver las primeras 20 líneas
tail -f ejemplo.txt — ver las ultimas 10 lineas y se queda esperando para ir añadiendo lo que vaya
apareciendo en el archivo, por ejemplo para monitorizar en vivo un log o añadimos algo como echo
hola >> ejemplo.txt

less ejemplo.txt – ve el archivo como en editor, línea a línea con flecha abajo, con barra espaciadora
otra página y con q se regresa
tree – ver el arbol de directorios

touch. Puede crear un archivo vacío (touch filename), y suele usarse para configurar o actualizar
archivos, ya que actualiza por ejemplo la marcha de hora. Con -t puede establecerse una marca de
fecha y hora.
Touch – t 201804301015 somefile # establece la marca de tiempo de somefile a 10:15 del 30 de
abril de 2018
wget – Permite descargar una web o archivo (por su link) de internet
wget https://imgs.xkcd.com/secuity.png
who – usuario conectado

Enlaces

Cuando se crea un archivo, se le asocia un inodo, que contiene los metadatos del archivo (número
de inodo, tamaño, permisos, nombres de grupo/usuario y la dirección de los datos). Hay una tabla
de inodos en el sistema, pero no guarda el nombre del fichero. Estos se guardan en los directorios,
donde se asocia cada nombre de archivo con el número de inodo asociado.
-físicos (hard). Etiqueta o nuevo nombre asociado al archivo, no una copia separada. Son el mismo
fichero con distintos nombres. Son enlaces que apuntan al inodo. Mientras haya un enlace
apuntando al fichero, este no desaparece. Es decir, si tenemos un enlace apuntando a un archivo, y
se borra cualquiera de los dos archivos, permanecerá el otro.

-Simbólicos (soft). Con ln -s. No contiene los datos del archivo, sino que apunta al registro del
sistema de archivos donde se guardan los datos. Es como un acceso directo. Si borramos el fichero
original, el enlace no funciona. Son ficheros independientes que apuntan al fichero que a la vez
apunta al inodo.
Ls -li fichero1.txt – Nos muestra además el numero de inodo
echo adios >> fichero1.txt – añade el texto al final del archivo
du – Tamaño en disco

du -m usr/ bin — tamaño de la carpeta bin, en MB.


du -m carpeta1 nos da el tamaño en MB du -k (en KB) du -b (en Bytes)
du -am — Da el tamaño en megas de todos los ficheros
du -sm usr/bin – muestra el tamaño en megas de la carpeta

df – Muestra el espacio libre de los sistemas de archivos montados.


Df -h lo muestra en GB y MB, y la cantidad disponible. También se puede usar -m (sólo en mb)
df -T tb muestra el tipo de sistema de archivos.

Historial

History -10 – últimos 10 comandos introducidos (sin número, mostrará el historial completo)

!! - ejecuta el último comando que lanzamos en la terminal.


!299 – ejecuta el comando número 299 del historial
history -d 299 – elimina del historial del comando número 299

Comandos internos y externos

Comandos externos – Son los que tienen un binario o ejecutable, como mkdir, ls, cd
Comandos internos o buildt in– Está integrado en la shell, no tiene un binario, como ps, cd, history.
Por ello son más rápidos que los externos. Pueden variar en shells diferentes. Se pueden ver
escribiendo help en la terminal. Si escribimos type más el comando, nos dice si es una orden interna
o un binario localizado en determinada carpeta.

Which ls – Te dice en que localización del directorio está ls


whereis pwd – dice localización del binario, de la documentación y de la librería

alias tam=”du -m home/descargas” – Nos permite crear nuestros propios comandos. Aquí se crea
un alias o macro llamado tam. El sistema sustituye tam por todo lo que está entre comillas.

Tiempo

Time ls – nos muestra el tiempo que tarda un comando o proceso en realizarse. Nos muestra tb
cuanto es el tiempo real, y cuanto de ese tiempo se debe a procesos que está ejecutando el sistema
en segundo plano.

Cal – nos muestra el calendario. Cal 2015 – nos muestra el calendario del año 2015, cal -m 8 nos
muestra agosto, o cal -m 8 1999, nos muestra el mes de agosto de 1999
ncal es un poco más potente y tiene algunas opciones, como ncal -M que permite ver el calendario
empezando en lunes, en lugar desde domingo.
Date – Para ver la hora y fecha actual.
Date + ‘%d’ – visualiza el día actual (m nos muestra el mes, y el año) En mayúscula pone el nombre
completo, en minúscula sólo abreviado.
Date + ‘Hoy es %d %B’ – Hoy es 25 de abril. – Nos lo muestra con formato
date 081522002019 – Nos permite establecer la hora (no recomendado). Requiere root.

Uptime – Nos muestra cuanto tiempo ha estado el SO arrancado, numero de usuarios conectados, y
carga media de los últimos 3, 6 y 22 minutos
uptime -p –nos dice cuanto tiempo lleva el sistema trabajando
uptime -s – nos dice cuando se encendió el sistema

Find y locate

El esquema de find es find dir_inicio opciones termino


find . -name “f*” -- Busca en el directorio actual (.) archivos que empiezan por f. Es parecido a ls,
pero además permite hacer operaciones sobre la búsqueda, como borrar, en lugar de sólo listar.
Find . -not -name “*conf*” | wc -l -- Busca todos los archivos que no tengan ese patrón. Después
los cuenta con detalle
find / -type f -size +9M — Busca en root archivos (-type) de más de 9 MB
find / -iname ‘*.txt’ -atime -2 Busca archivos txt (iname), abiertos (-atime) los 2 últimos días
find / -type f -mtime -2 Busca archivos modificados en los dos últimos días
find / -type f -perm 0777 Busca archivos con permisos de escritura, lectura y ejecución
find -maxdepth 2 -name texto.txt Busca texto.txt en el directorio activo y un nivel más abajo
(subdirectorio)
find . -type f -name “*.deb” -exec cp -f {} /home/pepe/\; busca y copia los .deb en pepe
find . -type f -name “Thumbs.db” -exec rm -f {} \; busca y elimina los Thumbs.db
locate realiza una búsqueda sobre una base de datos de archivos y directorios del sistema
(/var/lib/mlocate/mlocate.db, aunque puede que haya que instalar mlocate), que se actualiza
generalmente una vez al día con un cron, no en el árbol de ficheros, y por eso es más rápido. Se
puede actualizar con sudo updatedb. No sólo busca el archivo, sino que también coincidencias en la
ruta. Se pueden filtrar resultados con grep
locate zip | grep bin
$ locate -b useradd Busca sólo coincidencias al final de la ruta, y no en el medio,
$ locate -c useradd Cuenta las coincidencias de useradd
Hay un archivo de configuración en /etc. cat updatedb.conf, que especifica donde no se buscará con
las búsquedas
Locate LFS300 es lo mismo que find – name “LFS300” -ls (Con ls vemos más detalles).
Pueden emplearse patrones y expresiones regulares con locate.
Locate sirve para buscar ficheros (para buscar el nombre del fichero), grep para buscar en el
contenido de los ficheros y whereis la ruta donde está instalado el recurso.

REDIRECCIONAMIENTO

Entrada estándar – STDIN (0) – Teclado, P.ej. Echo Hola


STDOUT (1) – Pantalla
STDERR (2) – Tb sale por pantalla. Ej. cat eji… No se encontró fichero
cat puede leer tanto un fichero (cat usr/passwd) como la entrada estándar si se pone sin argumentos
(Ctrl + D para salir)
tr a o — Sustituye todas las a por o. Sin argumentos lo sustituye en STDIN
El redireccionamiento es enviar algo que iba por defecto a un sitio, como STDOUT a otro, como un
fichero. Hacen falta permisos X.
Echo hola > f1.txt — Hola se escribe en el archivo f1.txt, en lugar de a la salida estándar. Si el
fichero no existe lo crea, y sino lo sobreescribe. Poniendo >> añade en lugar de sobreescribir
date > f1.txt – Guarda en archivo la fecha

La redirección de entrada es con <. Si tenemos un programa llamado do_something que lee desde
stdin y escribe en stdout y stderr, podemos hacer que reciba la entrada en su lugar desde un archivo:
do_something < archivo_entrada
Si no se especifica nada, se toma como do_something 1, o salida estándar. Si lo que queremos es
redirigir a un archivo únicamente los errores:
do_somethind 2> archivo_error
Para enviar cualquier cosa escrita en stderr (2) al mismo sitio que stdout (1):
do_something > archivo_salida 2>&1 o (en bash) do_something >& archivo_salida
echo esto es una prueba >> documento1.txt
tr e x < documento1.txt — sustituye e por x en el documento1.txt

wc -l – cuenta líneas. Se queda a la espera recibiendo líneas (enter entre líneas, Ctrl + D para salir)
wc -l < documento1.txt – cuenta las líneas del archivo
wc -l << final – va contando líneas hasta que se escribe la palabra final, en entrada estándar
tr a p << end – sustituye todas las a por p hasta que encuentra la palabra end

Redirección de errores

cat documento50 2> error.txt - Visualiza documento50, y como no existe y genera error, y lo
guarda en el archivo error.txt (2 es el código de stderr)
SE podría colocar 1> para la STDOUT, pero como por defecto linux asume que es lo que quieres,
no es necesario

ls dev/null — Todo lo que se envíe a este agujero negro desaparece


cat documento50 2> dev/null — Si no te interesa ni ver los errores ni que se guarden, los enviamos
al agujero negro

Tuberías o Pipe

Redirigir la salida de un comando hacia otro comando


tr a p < documento2.txt > documento3.txt → Sustituye a por p en documento2 y lo pasa a
documento3. Se podría hacer más sencillo y sin archivo intermedio con una pipe:
cat documento2.txt | tr a p
cat documento2.txt | tr a p | wc -l → Además indicará el número de líneas que tiene

Filtros (wc, grep, sort, diff, cut)


uniq – Elimina líneas repetidas, pero tienen que estar a continuación unas de otras, y es case
sensitive. Por ejemplo, en el siguiente archivo llamado nombres, si escribimos: cat nombres | uniq
uniq -c cuenta cuántos hay de cada tipo. Uniq -d muestra sólo los valores que se repiten.
Cat nombres | uniq -d > repetidos.txt – Muestra los repetidos y redirige a repetidos.txt

wc (Word Count)
cat nombres | wc — Nos muestra 7 7 50 , que son líneas, palabras y caracteres
-l cuenta líneas -w cuenta palabras -c cuenta bytes m cuenta caracteres (bytes y caracteres
suele ser lo mismo al trabajar con textos)
-L nos dice cuál es la línea con más caracteres
cat etc/ passwd | wc -l ---- Nos muestra la cantidad de usuarios de nuestro sistema, ya que en el
archivo passwd, cada línea se corresponde con un usuario
ls -l | wc -l – Nos muestra la cantidad de directorios y subdirectorios
uptime | wc -w — Nos muestra la cantidad de palabras de la salida del comando uptime

tee
ls -l | tee listar.txt listar2.txt – Muestra el contenido de ls -l por la salida estándar (pantalla) y al
mismo tiempo lo redirige a los archivos listar.txt y listar2.txt
ping www.google.com | tee archivoping.txt — Nos hace el ping en directo y va guardando en el
archivo las solicitudes que vamos viendo en consola (Ctr + C para detener)

grep
grep antonio nombres – Busca todas las coincidencias de antonio en el archivo nombres
grep antonio * – Busca en todo el sistema
grep -s antonio * – Busca en todo el sistema, pero omite aquellos resultados que producirían
warnings o errores por no tener permisos de lectura o por ser directorio
en var / log están todos los logs del sistema
grep error *.log en este directorio buscará todos los ficheros en los que aparezca la palabra error
grep -sl error *.log – Nos diría únicamente los archivos que contienen error
grep -sc error *.log – Nos dice cuántas veces se encuentra el error
grep -si error * .log – Nos muestra cualquier error generado, ya aparezca la E en mayúscula o
minúscula
grep -r bin / -- Busca en todo el sistema (desde la raíz), recursivamente (en carpetas y subcarpetas)
todas las coincidencias de bin en el nombre del recurso o en la ruta.
ls * | grep D — Recibe la salida del comando ls y filtra todos los elementos que contengan D.
ls * | grep D | wc -l – Además de lo anterior nos cuenta los elementos
ls -l | grep “jul 27” (en var/log) – Nos filtra el resultado de ls. Si el texto tiene comillas o espacios
en blanco, encerrar toda la búsqueda entre comillas.
grep sysadmin passwd – filtra info de passwd que contiene el patrón sysadmin

grep ‘root’ passwd – filtra todas las veces que aparece root en passwd
grep ‘^root’ /etc/passwd – filtra todas las lineas que empiezan por root en passwd
grep ‘r$’ alpha.txt — filtra todas las lineas que acaban en r en alpha.txt
grep ‘r..d’ red.txt – filtra todas las palabras de cuatro letras que empiezan por r y acaban en d
grep ‘[0-9]’ profile.txt – filtra todas las lineas que tienen números
grep ‘[^0-9]’ profile.txt – filtra todas las lineas que contienen caracteres no numericos
grep ‘[.]’ profile.txt – filtra todas las lineas que contienen un punto.
Grep ‘re*d’ red.txt – filtra todas las palabras que empiecen y acaben en r y d, y tengan cero o más e
en el medio
grep ‘r[oe]*d’ red.txt – igual que el anterior, pero con e u o
grep ‘ee*’ red.txt – filtra resultados que contienen al menos una e.
Si no se especifica nada, grep funciona sobre la entrada estándar (el teclado)
Si hacemos cat / etc/passwd , podemos ver todos los usuarios del sistema, y la shell que se está
usando ( o el comando usr/sbin/nologin en caso de usuarios de sistema)
cat / etc/passwd | grep nologin | wc -l – Nos filtra en la salida de cat los usuarios de sistema
(nologin) y los cuenta

sort

Ordenar resultados. Sort nombres o Cat nombres | sort — ordena fichero nombres alfabéticamente
-r es alfabéticamente, pero desde la z
sort nombres -o nombres_ordenados Guarda la salida en el fichero nombres_ordenados. Esto sería
igual que la redirección sort nombres > nombres_ordenados
ls | sort – ordena el ls alfabéticamente
ls | sort -o tmp/etc_ordenados – ordena y guarda en ese archivo
du -ma |sort -n . Ordena el directorio actual por tamaño (de menor a mayor)

cut

Si podemos du -a, nos aparece el tamaño y nombre de todos los ficheros, separados por un
tabulador. Si queremos que sólo aparezca el primer campo, que es el tamaño, obviando nombre y
ubicación, ponemos du -a | cut -f1. Si queremos que sólo muestre el segundo campo, -f2
En cat etc/passwd | cut -f1, las propiedades de cada elemento están separados por : en lugar de por
tabuladores, por lo que se tiene que usar -d, que delimita por :, y en este caso muestra campos 1 y 6
cat /etc/passwd | cut -d ‘:’ -f1,6

ls -l nos muestra varios campos separados por espacios. Para que muestre únicamente el tercer
campo, el propietario: ls -l | cut -d ‘ ‘ -f3. Aquí hay un problema si separamos por tamaño, ya que en
los casos en que el tamaño sea de menos de 4 dígitos (4096), aparecerán más espacios en blanco, no
sólo uno, y linux lo interpreta como que son diferentes campos. Como el tamaño está entre las
posiciones 30 y 39, podríamos poner: ls -l | cut -c 30-39

PROCESOS

Un proceso es una instancia de un programa que se está ejecutando en el SO. Tienen asignados
recursos de CPU y memoria. Estructura jerárquica padre-hijo (procesos adicionales creados, fork).
Estados:
 Modo normal.
 Daemon o servicios en background
 Zombie. Procesos eliminados, pero que no se han limpiado de la lista de procesos.
Propiedades:
 PID – Identificador
 Usuario y propiedad.
 PPID – Proceso padre. Todos excepto en proceso PID 1 (systemd o init en otros SO). Los
procesos hijo se crean por fork del proceso padre, y heredan algunas de sus características
(espacio de direcciones, usuario, grupo…). Pj, ls en proceso hijo de su shell (padre). Para
ver el proceso 1, se puede hacer ls -ls /sbin/ init. Puede verse que el proceso init se ha
convertido ahora en systemd.

 Contexto. Lo que define el proceso, como su espacio de direcciones, variables, código…


Comandos:
 ps. Process Status. Lista los procesos que se ejecutan en la shell.
 Ps -f. Más detallado (padre, usuario, tiempos…)
 ps -l. Aún más detallado (F = tipo de usuario, 0 el usuario final, 4 root; S = estado
(S=suspendido e interrumpible, R = en ejecución; T= detenido; W=paginado; X=muerto; Z
=zombie). PRI = prioridad; memoria.
 Ps -ef. Todos los procesos que están corriendo. Aparecerán muchos. Se puede paginar con ps
-ef | less.
 Si queremos saber cuál es el proceso padre de un proceso, p.ej, el del primer proceso, 1772,
vemos que es 1767 con ps -f. Para ver el padre de este, visualizamos todos los procesos con
ps -ef y filtramos a ese número de proceso:

Aquí podemos ver que el padre es gnome-terminal, cuyo padre a su vez es el 908. Si seguimos
rastreando padres llegaremos al proceso 1, init o systemd

ps ux | less. Podemos ver de forma paginada todos los procesos que se están ejecutando de nuestro
usuario, con el terminal gráfico Xwindow. Añadiendo ps uxf | less se ve de forma jerárquica en
árbol

ps -ef | grep firefox permite ver los procesos en los que se está ejecutando firefox.

pstree | less permite ver todos los procesos en un árbol jerárquico (pstree -p muestra también los
números id de proceso). Si queremos ver el árbol relacionado con un sólo proceso, no el árbol
completo, podemos poner pstree 1772 (muestra el proceso 1772 y sus hijos) o pstree -s 1772 que
muestra también todos los padres hasta systemd

sleep 15 duerme el proceso 15 seg

Prioridades de procesos. La escala de -20 (máx. Prioridad, se les dará más espacio de tiempo para
trabajar) a +19. Por defecto se les dará 0. En ps -l o en ps -elf | less, se puede ver en el campo NI
(nice). Para reducir la prioridad de un proceso:
Tras ejecutar sleep 1000, se crea un proceso dormido de PID 6437. Con ps -eo pueden verse solo
los campos solicitados (en este caso pid, ni y comm = CMD)
renice +10 6437 aumenta el nice del proceso 6437 en 10. Usuarios normales no pueden poner nice
negativos.

Top. Pantalla interactiva de procesos y recursos que consumen (CPU a nivel de usuario, de sistema,
memoria, swap = cuanto menos usada mejor, S = Status, que puede ser Sleeping/Running…).
Se puede ordenar el listado por memoria (M), procesador (C), proceso(P)
c muestra el comando completo
k mata procesos, con esc salimos).
V cambia entre formato normal y árbol,
u permite poner los procesos de determinado usuario escribiendo el nombre del usuario
m la memoria en gráfico de barras, número o no la muestra
t lo mismo con cpu.
Una vez puesto todo como nos gusta, W nos guarda esta personalización, que saldrá cada vez que
usemos top.
Kill. -l nos muestra los códigos de cada señal que puede enviarse a un proceso (más info en man
signal ). Por ejemplo, si creamos un proceso sleep 1000 en la terminal y vemos con ps -ef | grep
sleep que es el proceso 7837, y queremos enviar una señal Kill SIGTERM (código 15 en kill -l),
podemos escribir kill -15 7837.
kill -9 (SIGKILL) mata el proceso evitando que se quede esperando o colgado.

Hacer que un proceso se ejecute en segundo plano (&). sleep 1000 &. Normalmente el proceso
sleep se queda ejecutándose en primer plano y no puedes hacer nada mientras, por lo que si quieres
seguir trabajando tienes que abrir otra terminal. Para ponerlo en segundo plano usas el &, y después
de hacerlo linux nos responde con el ID del proceso o Job que se está ejecutando en segundo plano.

Jobs. Ver todos los procesos o jobs que se están ejecutando en segundo plano. Si creo dos procesos
sleep &, con este comando veré que ambos se están ejecutando. Jobs -l nos muestra también el ID
de los procesos en ejecución

bg Nos permite ver procesos que tenemos en background


fg [número de job] (p. ej. fg 1) nos pasa el proceso de background a foreground.
Si tenemos un proceso ejecutándose (job) que está sacando cosas por pantalla (como du -am), y lo
pasamos a background, aunque hagamos cosas en la terminal, se entremezclará con lo que está
saliendo del proceso. La solución es que en lugar de que saque todo por pantalla, lo que se esté
ejecutando en background se redirija a un archivo: du -am / > /tmp/tam_disco &. Sin embargo, los
errores siguen saliendo por pantalla, por lo que habría que redirigir también los errores a un
segundo archivo:
du -am / > /tmp/tam_disco 2> /tmp/errores.txt &

USUARIOS
El archivo less /etc/passwd contiene todos los usuarios del sistema. Por ejemplo puede mostrar
user001:x:1000:1000:Jose ,,,:/home/user001:/bin/bash, que nos dice que el usuario 001, con
clave encriptada (x) tiene ID 1000 y grupo principal ID 1000, su directorio y su bash
less /etc/group nos permite ver los grupos creados en el sistema
id nos muestra toda la info relevante del usuario, incluyendo todos los grupos a los que pertenece.
Ls -l muestra los permisos. X o escribir tb permite modificaciones como borrar el archivo. La x no
quiere decir que se puede ejecutar, ya que al ser del usuario si está permitido, sino que el archivo no
es un ejecutable (necesitaría ser un programa o script). En un directorio, la x quiere decir que se
puede ver el contenido (acceder a la carpeta), w que podemos modificar o borrar archivos del
directorio.
El directorio /etc tiene los permisos drwxr-xr-x, por lo que permite lectura, escritrura y entrada para
propietario, y lectura y entrada para el grupo y otros. Por ello podemos listar su contenido (r) o
entrar. El archivo /passwd tiene permisos -rw-r—r-- y su grupo es /passwd. Como pertenecemos a
otros, podemos leerlo con cat, pero no modificarlo con touch.
El archivo which de la carpeta /bin, tiene permisos -rwxr-xr-x, y su grupo es root. Por ello puede
ser leído, mod y ejec por el propietario, yleído y ejecutado por el grupo y leído por otros.
El directorio /root tiene permisos drxw------, por lo que sólo tiene permisos para el usuario (nadie
más puede leer, entrar o acceder, por lo que el usuario normal no puede listar el directorio, ni
escribir o leer un fichero dentro de esa carpeta).
Podemos ver que los permitos de shadow, archivo de /etc son -rw-r----- y que su grupo es shadow.
Por lo tanto no lo podemos modificar con touch o leer con cat(usuario por defecto es user001)
Ahora veremos un script para crear un usuario.

# cat crear_usuario.sh # Se ha creado el script crear_usuario.sh


useradd -m udemy # Creación del usuario udemy con pass udemy
passwd udemy
usermod -a -G sudo udemy # posibilidad de acceder a sudo, y shell bash
chsh -s /bin/bash udemy
# chmod +x crear_usuario.sh # Ejecutamos dándole permisos de ejecución
# visualizamos el usuario creado
#cat /etc/passwd | grep udemy # usuario udemy:x:1000::/home/udemy:/bin/bash

Conexión en remoto a un usuario por ssh


Podemos ver si tenemos el puerto 22 ssh en escucha con netstat -ano | head (ya que arriba es donde
indica los puertos que están abiertos)
• Putty – Basta indicar ip del sistema (ifconfig, inet de eth0). Previamente hay que habilitar el
servicio ssh ( service ssh start). Pedirá usuario y contraseña para logging. Kali no permite
autenticarse como root, y por eso hay que crear un usuario y darle la posibilidad de acceder
a root. Por ejemplo, no se nos permitiría cat /etc/shadow, que nos permite ver los usuarios
del sistema con más profundidad que /etc/passwd (pero sí con sudo cat/etc/shadow). Si no
somos un usuario privilegiado, podemos hacernos root con $ sudo su
• Por terminal – ssh udemy@10,1,1,22 – ssh usuario@dirección_ip. Podemos salir con exit
o cambiar de usuario con su udemy por ejemplo.

Comando chmod
chmod u | g | o | a (para usuarios, grupo, otros o todos)
Si tenemos el archivo prueba cuyos permisos son -rw-r—r--, para darle permisos de escritura a
grupos pondríamos chmod g+w prueba pasando a -rw-rw-r--.
chmod go+wr prueba añade permisos de escritura y lectura para el grupo y otros.
Chmod g+rw,o+r prueba añade permisos de escritura y lectura para grupo y lectura a otros.
chmod a-x prueba eliminaría permisos de ejecución para todos.
Con los directorios funciona igual. Si tenemos un directorio dir_prueba, y vemos con ls -ld que sus
permisos son drwxr-xr-x , podemos quitar de escritura en otros con chmod o-x dir_prueba.
Octal. 4 – r 2 – w 1 – x 0 – sin permiso. Se halla la suma para cada parte de los permisos
rw-r- - r - - - - - > 644 rwxrwxrwx - - - > 777 - - x - - x - - x - - > 111
000 o retirar todos los permisos, evita la modificación accidental, aunque como usuario y
propietario, podría cambiar los permisos a unos que sí lo permitan en caso de necesidad.
chmod 444 prueba establece los permisos a r - - r - - r - - en prueba.
Los permisos por defecto de los archivos son 644 (rwxr- - r - -) y 755 para directorios 644

Permisos por defecto umask


umask # nos devuelve 0022 Por defecto los permisos de los ficheros son 666; umask se
resta a este 666 (ignorando el primer dígito, 0). 666 – 022 = 644
Por defecto los permisos de directorios son 777, por lo que restando el umask (022) nos queda 755.
Si queremos modificar los permisos por defecto de los ficheros de 666 a 664, el umask ha de ser
002 (666-664), por lo que debemos escribir en la terminal umask 002. Ahora, al crear fichero, se
hará con la nueva configuración de permisos, y en los directorios se quedaría como 775. Si
queremos que los ficheros creados tengan permiso solo de lectura en los 3 campos (444), el umask
ha de ser 666 – 444 = 222 ( y los directorios quedarían en 555, o r-x para todos los campos).
Cambiar propietario de un fichero. Podemos cambiar sólo de nuestros ficheros o de los que
tenemos permisos de escritura.
# sudo useradd -b /home prueba Crea usuario prueba en el directorio (-b) home. Se puede ver con
cat /etc/passwd
# sudo passwd prueba Agregamos la clave a nuestro usuario
Si entramos en una nueva terminal (ctrl + alt + F3 a F10) con las credenciales de este usuario
prueba, vemos que podemos entrar en cd /home/user001 y ver el contenido con ls -l, pero no
podríamos crear un archivo con touch debido a que no tenemos permisos. Para volver a las
terminales normales, Ctr + Alt + F2)
# sudo chown prueba p1 -- Cambia el fichero p1 al propietario prueba, para que pueda acceder
# sudo chown root hello.sh – Cambia la posesión del archivo a root.
# sudo chgrp root p1 hace lo mismo para cambiar el grupo de un recurso
-R o recursivo cambia la propiedad del directorio y todos sus items.

VARIABLES

printenv o env muestra las variables de entorno, gralmente en mayúsculas, y seguidas de un valor
set muestra variables de entorno y de shell
Para visualizar las variables, puede escribirse printenv USER (se visualizará user001, la variable
que representa nuestro usuario) o printenv PWD (se visualizará /home/user001, la variable que
maneja nuestro directorio home.
Sin embargo, para trabajar con variables en shell script, hay que ponerlas con $, ya que sino las
interpreta como texto plano.
# echo $PWD Nos indica el directorio en el que estamos, por ejemplo /home/user001
$DISPLAY Terminal en el que estamos conectados. :0 es terminal X-Windows.
#echo $TERM Tipo de terminal con el que estamos conectados. Linux en terminal con entorno
tipo carácter Ctrl+Alt+F3, o xterm-256color en un terminal gráfico de X-Window
#echo $HOME Nos permite saber cuál es el directorio home que tenemos actualmente. P. ej.
/home/user001. #cd $HOME nos lleva directamente a la carpeta Home.
#echo $SHELL nos indica la shell que se está ejecutando (bin/bash p.ej)
#echo $LANG nos indica el lenguaje y el juego de caracteres (p.ej. es_ES.UTF-8)
#echo $PATH #/usr/local/bin:/usr/bin:/usr/local/games:/usr/games
indica los directorios donde han de encontrarse los ejecutables.
#echo $PS1 identifica el prompt

Creación de variables de entorno

Las variables de sistema suelen ir en mayúscula, las que creamos en minúscula. No aparecen con
printenv ya que aquí no se ven las de entorno, pero si con set, con las que se ven las variables de
entorno y las creadas para la shell. Podemos ir modificando el valor de la variable en la shell.

# v=10
# echo $v muestra 10. Para usar la variable, hay que emplear $.
# v=20
# echo $y muestra 20

PATH. Nos indica la ruta de los ejecutables. Si el ejecutable está en el path, basta con escribir si
nombre para ejecutarlo. Sino, has de usar ./programa o con la ruta completa.
Crearemos un ejecutable para que Linux lo encuentre. Desde el directorio ejecutable creado en
nuestro directorio personal.
$ echo “ls -l” > listar.sh # creamos un script muy simple listar.sh, que contiene ls -l
$ chmod +x listar.h # le damos permisos de ejecución
$ listar.sh # linux no lo encuentra si lo ejecutamos. Tendríamos que poner
el path completo /home/yolanda/ejecutable/listar.sh o ./listar.sh (./ es directorio actual)
$ set PATH=$PATH:/home/yolanda/ejecutable #Añadimos la dirección al PATH, colocando
también $PATH para no eliminar el contenido que ya tiene, y así se puede ejecutar directaemente
listar.sh

PS1 ( Variable de prompt). Podemos cambiar nuestro prompt. Se suelen usar las siguientes
variables de control:
\u – usuario \H – nombre del equipo
\t o \T – hora actual \s – Nombre del shell
\w – directorio actual \n – Nueva línea
\v – versión de bash \d – Fecha actual
\[ inicio de secuencia de caracteres no imprimibles, para poner scripts
\] -- fin de secuencia de caracteres no imprimibles
$ PS1=”Mi prompt: ” #Cambia nuestro prompt a Mi prompt:
$ PS1=”Usuario \u: ” #Cambia nuestro prompt a Usuario yolanda:

/etc/profile carga las variables de login del sistema, las más globales, una vez al cargar el sistema
/etc/bash.bashrc o /etc/bash_profile carga las variables de entorno de bash, cada vez que se inicia el
bash. Estas dos variables son para todos los usuarios.
Si queremos crear alguna para usuarios específicos, podemos hacerlo en los archivos
ocultos .profile, .bash.

w nos permite ver qué usuarios están conectados ahora al sistema, incluyendo cuándo se ha
autenticado, el tiempo que lleva conectado, etc.
whoami quién soy yo ahora
sudo whoami (pide contraseña del usuario actual). Con sudo tienes privilegios para cambiar
permisos.
finger yolanda info del usuario como nombre, directorio, shell (si no tiene bin/false). Es importante
que los usuarios tengan shell para poder hacer intrusión desde ellos.
Uname -a nos proporciona info de la versión del kernel
cat /proc/cpuinfo | meminfo nos proporciona info del procesador
free memoria libre
df espacio libre en disco en cada partición

Contraseñas
passwd – cambia pass de ese usuario
passwd -S sysadmin para ver info
sysadmin P 12720/2020 0 999999 7 -1
user, activa (L=locked, NP=no pass), fecha, dias que tienen que pasar para poder cambiar,
caducidad, dias en los que la cuenta quedara activa tras expiración de pass

passwd sysadmin – root cambia pass de sysadmin

También podría gustarte