% ENV=var ./a.out 0<STDIN 1>STDOUT 2>STDERR
Andrés Hernández - tonejito
Agosto 2023
Hereda código de alguna de las versiones directamente derivadas
Implementa los mismos conceptos con código propio
GNU/Linux
«Free as in freedom»
shellsh, bash, csh, ksh, zsh, etc.$) y de súper-usuario (#)shell| Comando o atajo | Función |
|---|---|
history |
Historial de comandos |
Crtl+R |
Búsqueda en el historial |
Ctrl+A / Ctrl+E |
Movimiento al principio/final |
Ctrl+⬅️ / Ctrl+➡️ |
Movimiento por palabras |
shellHOME del usuario: ~/.bashrcshell
sourceexport, unset)shell#!/usr/bin/env bash
set -vx
echo "Creando directorios"
for NAME in uno dos tres
do
mkdir -vp directorios/${NAME}
done
echo "Árbol de directorios creados"
tree directorios
-h y --helppwdwhoami , idwhich, whereisman, infofind, locateuname -a/proc/cmdline/etc/os-release/etc/debian_version/etc/redhat-releaselsb_release -a| Directorio | Descripción |
|---|---|
/bin |
Ejecutables esenciales del sistema |
/sbin |
Ejecutables esenciales para el súper-usuario |
/home |
Carpetas personales de cada usuario |
/root |
Directorio HOME del usuario root |
/tmp |
Archivos temporales no persistentes |
| Directorio | Descripción |
|---|---|
/boot |
Configuración de inicio |
/etc |
Configuraciones del sistema |
/dev |
Archivos de dispositivo del sistema |
/proc |
Información sobre los procesos y el sistema operativo |
/run |
Archivos volátiles de los programas en ejecución |
/sys |
Parámetros volátiles de configuración para el kernel |
| Directorio | Descripción |
|---|---|
/lib |
Bibliotecas de código |
/usr |
Contiene el software instalado desde paquetes |
/var |
Archivos de trabajo de los servicios del sistema |
/opt |
Software de terceros que no viene en paquetes |
/srv |
Recursos utilizados por algunos servicios de red |
| Directorio | Descripción |
|---|---|
/lost+found |
Contiene los archivos encontrados después de analizar el sistema de archivos |
/media |
Discos montados con el auto-mounter |
/mnt |
Discos montados manualmente |
- |
Archivo |
d |
Directorio |
l |
Liga simbólica |
b |
Dispositivo de bloques |
c |
Dispositivo de caracteres |
p |
FIFO (named pipe) |
s |
Socket |
*, HFS+*, APFS*Crear archivos vacíos
Crear y borrar directorios
$ mkdir directorio
mkdir: created directory 'directorio'
$ mkdir -p folder/subfolder
mkdir: created directory 'folder'
mkdir: created directory 'folder/subfolder'
$ rmdir -v directorio
rmdir: removing directory 'directorio'
$ rm -vrf folder/
removed directory 'folder/subfolder'
removed directory 'folder/'Renombrar y mover archivos
Renombrar y mover directorios
n-links en lsEl parámetro n-links aumenta con cada liga dura
$ touch archivo
$ ls -l archivo
-rw-r--r-- 1 tonejito users 0 Aug 23 02:21 archivo
$ ln -v archivo liga-dura
'liga-dura' => 'archivo'
$ ls -l archivo liga-dura
-rw-r--r-- 2 tonejito users 0 Aug 23 02:21 archivo
-rw-r--r-- 2 tonejito users 0 Aug 23 02:21 liga-dura
$ ln -v archivo otra-liga-dura
'otra-liga-dura' => 'archivo'
$ ls -l archivo liga-dura otra-liga-dura
-rw-r--r-- 3 tonejito users 0 Aug 23 02:21 archivo
-rw-r--r-- 3 tonejito users 0 Aug 23 02:21 liga-dura
-rw-r--r-- 3 tonejito users 0 Aug 23 02:21 otra-liga-dura$ touch 1-mi-archivo
$ ls -l
-rw-r--r-- 1 tonejito users 0 Aug 23 02:32 1-mi-archivo
$ ln -vs 1-mi-archivo 2-mi-liga-simbolica
'2-mi-liga-simbolica' -> '1-mi-archivo'
$ ls -l
-rw-r--r-- 1 tonejito users 0 Aug 23 02:32 1-mi-archivo
lrwxrwxrwx 1 tonejito users 12 Aug 23 02:33 2-mi-liga-simbolica -> 1-mi-archivo ⬅️$ ln -vs 1-mi-archivo 3-otra-liga-simbolica
'3-otra-liga-simbolica' -> '1-mi-archivo'
$ ls -l
-rw-r--r-- 1 tonejito users 0 Aug 23 02:32 1-mi-archivo
lrwxrwxrwx 1 tonejito users 12 Aug 23 02:33 2-mi-liga-simbolica -> 1-mi-archivo
lrwxrwxrwx 1 tonejito users 12 Aug 23 02:33 3-otra-liga-simbolica -> 1-mi-archivo ⬅️$ ln -vs 2-mi-liga-simbolica 4-liga-a-otra-liga
'4-liga-a-otra-liga' -> '2-mi-liga-simbolica'
$ ls -l
-rw-r--r-- 1 tonejito users 0 Aug 23 02:32 1-mi-archivo
lrwxrwxrwx 1 tonejito users 12 Aug 23 02:33 2-mi-liga-simbolica -> 1-mi-archivo
lrwxrwxrwx 1 tonejito users 12 Aug 23 02:33 3-otra-liga-simbolica -> 1-mi-archivo
lrwxrwxrwx 1 tonejito users 19 Aug 23 02:33 4-liga-a-otra-liga -> 2-mi-liga-simbolica ⬅️$ ln -vs no-existe 5-liga-simbolica-rota
'5-liga-simbolica-rota' -> 'no-existe'
$ ls -l
-rw-r--r-- 1 tonejito users 0 Aug 23 02:32 1-mi-archivo
lrwxrwxrwx 1 tonejito users 12 Aug 23 02:33 2-mi-liga-simbolica -> 1-mi-archivo
lrwxrwxrwx 1 tonejito users 12 Aug 23 02:33 3-otra-liga-simbolica -> 1-mi-archivo
lrwxrwxrwx 1 tonejito users 19 Aug 23 02:33 4-liga-a-otra-liga -> 2-mi-liga-simbolica
lrwxrwxrwx 1 tonejito users 9 Aug 23 02:34 5-liga-simbolica-rota -> no-existe ⬅️También llamada “liga circular”
$ ln -vs 6-liga-circular 6-liga-circular
'6-liga-circular' -> '6-liga-circular'
$ ls -l
-rw-r--r-- 1 tonejito users 0 Aug 23 02:32 1-mi-archivo
lrwxrwxrwx 1 tonejito users 12 Aug 23 02:33 2-mi-liga-simbolica -> 1-mi-archivo
lrwxrwxrwx 1 tonejito users 12 Aug 23 02:33 3-otra-liga-simbolica -> 1-mi-archivo
lrwxrwxrwx 1 tonejito users 19 Aug 23 02:33 4-liga-a-otra-liga -> 2-mi-liga-simbolica
lrwxrwxrwx 1 tonejito users 9 Aug 23 02:34 5-liga-simbolica-rota -> no-existe
lrwxrwxrwx 1 tonejito users 15 Aug 23 02:34 6-liga-circular -> 6-liga-circular ⬅️$ ln -v 2-mi-liga-simbolica 7-liga-dura-a-liga-simbolica
'7-liga-dura-a-liga-simbolica' => '2-mi-liga-simbolica'
$ ls -l
-rw-r--r-- 1 tonejito users 0 Aug 23 02:32 1-mi-archivo
lrwxrwxrwx 2 tonejito users 12 Aug 23 02:33 2-mi-liga-simbolica -> 1-mi-archivo
lrwxrwxrwx 1 tonejito users 12 Aug 23 02:33 3-otra-liga-simbolica -> 1-mi-archivo
lrwxrwxrwx 1 tonejito users 19 Aug 23 02:33 4-liga-a-otra-liga -> 2-mi-liga-simbolica
lrwxrwxrwx 1 tonejito users 9 Aug 23 02:34 5-liga-simbolica-rota -> no-existe
lrwxrwxrwx 1 tonejito users 15 Aug 23 02:34 6-liga-circular -> 6-liga-circular
lrwxrwxrwx 2 tonejito users 12 Aug 23 02:33 7-liga-dura-a-liga-simbolica -> 1-mi-archivo ⬅️EDITORvim / emacs / nanovimvivim/etc/vim/vimrc.local~/.vimrcsyntax on
set hlsearch
set background=dark
set ruler
set mouse=
-rw-r----- tonejito:staff archivo.txt
Modo “simbólico” y modo “octal”
| Tipo | Permisos Dueño | Permisos Grupo | Permisos Otros | Dueño | Grupo |
|---|---|---|---|---|---|
- |
rw- |
r-- |
--- |
tonejito |
staff |
110 |
100 |
000 |
|||
| Archivo normal | Lee Escribe | Lee | (ninguno) | uid | gid |
6 |
4 |
0 |
1000 |
50 |
$ touch archivo.txt
$ chmod 0640 archivo.txt
$ chown tonejito:staff archivo.txt
$ ls -l archivo.txt
-rw-r----- 1 tonejito staff 0 Aug 19 04:58 archivo.txt
$ stat archivo.txt
File: archivo.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fe05h/65029d Inode: 65535 Links: 1
Access: (0640/-rw-r-----) Uid: ( 1000/tonejito) Gid: ( 50/ staff)
Access: 2023-08-19 23:58:59.244000000 -0600
Modify: 2023-08-19 23:58:59.244000000 -0600
Change: 2023-08-19 23:58:59.920000000 -0600
Birth: 2023-08-19 23:58:59.244000000 -0600r| Modo simbólico | Modo Octal ugo |
Permisos Dueño u |
Permisos Grupo g |
Permisos Otros o |
|---|---|---|---|---|
--------- |
000 | 000 |
000 |
000 |
r-------- |
400 | 100 |
000 |
000 |
r--r----- |
440 | 100 |
100 |
000 |
r--r--r-- |
444 | 100 |
100 |
100 |
| Representación | Octal ugo |
Bits rwx |
Bits rwx |
Bits rwx |
w| Modo simbólico | Modo Octal ugo |
Permisos Dueño u |
Permisos Grupo g |
Permisos Otros o |
|---|---|---|---|---|
rw------- |
600 | 110 |
000 |
000 |
rw-r----- |
640 | 110 |
100 |
000 |
rw-r--r-- |
644 | 110 |
100 |
100 |
rw-rw-r-- |
664 | 110 |
110 |
100 |
rw-rw-rw- |
666 | 110 |
110 |
110 |
| Representación | Octal ugo |
Bits rwx |
Bits rwx |
Bits rwx |
xx: Ejecución (archivos)x: Listar (directorios)| Modo simbólico | Modo Octal ugo |
Permisos Dueño u |
Permisos Grupo g |
Permisos Otros o |
|---|---|---|---|---|
rwx------ |
700 | 111 | 000 |
000 |
rwxr-x--- |
750 | 111 | 101 |
000 |
rwxr-xr-x |
755 | 111 | 101 |
101 |
rwxrwxr-x |
775 | 111 | 111 | 101 |
rwxrwxrwx |
777 | 111 | 111 | 111 |
| Representación | Octal ugo |
Bits rwx |
Bits rwx |
Bits rwx |
| Tipo | Identificador | Descripción |
|---|---|---|
| Normal | $ |
Usuario normal del equipo |
| Sistema | |
Asociado a servicios del sistema * |
| Súper-usuario | # |
Administrador del sistema |
* Los usuarios del sistema NO pueden iniciar sesión en el equipo
su: Switch Usersudo: Super User DO/etc/sudoers/etc/sudoers/etc/sudoers.dsudo para dar privilegios a los usuariosDefaults, Alias y reglasdpkgdebdebaptapt-get, aptitude, aptdebmain, contrib, non-freevirtualbox)FlatHubroot@debian:~# flatpak remote-add --if-not-exists flathub \
https://dl.flathub.org/repo/flathub.flatpakreporoot@debian:~# reboot
systemd con PID 1/lib/systemd/system o /etc/systemd/systemsystemctl# systemctl reboot
# systemctl daemon-reload
# systemctl list-units
# systemctl status|is-active <unit>
# systemctl start|stop|restart <unit>
# systemctl enable|disable <unit>
Units:
Se utiliza journalctl para acceder a las bitácoras generadas por SystemD
# journalctl -xe