B2T4 Linux Flashcards
(26 cards)
Que es Linux
Un Sistema Operativo de código abierto y que proviene de la familia de los S.O Unix. Emergió como sistema operativo de un servidor para facilitar el acceso de terminales (otros ordenadores “tontos”) y no como una herramienta de escritorio de usuario
Que es Shell
Interprete de comandos.
En WIndows esta el CMD como nativo.
Di varios tipos de interpretes de comandos, varios tipos de shell en Linux.
ksh-> Originario Unix. Combina bash y csh
bash-> mayoritario en Linux y MacOs
csh-> Similar a lenguaje C
tcsh-> Mejora de csh
Cual es el directorio similar a home en windows?
User
Comandos Bash(Linux)
2 comandos para cambiar el grupo propietario de un usuario propietario
*usermod -add -group <grupo> <usuario>*
usermod -aG developers daniel</usuario></grupo>
*gpasswd -add <usuario> <grupo>*
gpasswd -a daniel developers</grupo></usuario>
Comandos Bash(Linux)
chown
exec <comando>
time <comando>
history
date</comando></comando>
chown-> Para cambiar el grupo propietario
exec <comando> -> Ejecuta el comando y después cierra sesión de SHELL
time <comando> -> Mide el tiempo que tarda en ejecutarse el comando
history-> Muestra lista de comm. recientes
date-> Devuelve la fecha actual</comando></comando>
Comandos Bash(Linux)
su
whoami
id
pwd
touch <nombre_fichero></nombre_fichero>
su-> login con otro usuario
whoami-> Muestra el usuario logged
id-> Muestra usuario logged y sus grupos
pwd-> Muestra el directorio actual
touch <nombre_f> Crea archivo + "nombre"</nombre_f>
Archivos que se ejecutan por defecto en Linux al iniciar sesión:
Archivos globales :
/etc/profile: Archivo ejecutado al inicio de todas las sesiones de shell.
/etc/bash.bashrc: Archivo específico para Bash, ejecutado en cada nueva sesión interactiva.
Archivos de usuario :
~/.profile: Ejecutado al inicio de todas las sesiones de shell para el usuario.
~/.bashrc: Archivo específico para Bash, ejecutado en cada nueva sesión interactiva del usuario.
Variables de entorno en shell, que són y como utilizarlas.
TEST=valor
echo $TEST
export TEST (ya definida)
export TEST=valor (define y exporta)
env
Variable Local-> Definida con
VARIABLE=valor-> Solo está disponible en el shell actual.
Variable de Entorno-> Definida con
VARIABLE=valor-> seguida de->
export VARIABLE
Está disponible en el shell y sus subprocesos.
env-> Te dice todas las variables de entorno de la sesión de shell
TEST=valor “Asigna “valor” a var. TEST
echo $TEST “Imprime la varible TEST
export TEST=valor “var. utilizable en cualquier proceso de ese shell”
Comandos Bash(Linux)
Permisos
umask “Máscara de Permisos”
chmod [opciones] modos archivo/directorio
umask 022-> Esto establece que los nuevos archivos tendrán permisos por defecto de -rw-r–r– (644).
La máscara de permisos se expresa como un número octal
chmod 777 directorio-> Esto otorga permisos de lectura, escritura y ejecución a todos los usuarios (dueño, grupo y otros).
Variables especiales de SHELL para script
Explícame que hacen cada una de estas variables de este script:
echo ‘$0:’ + $0
echo ‘$1:’ + $1
echo ‘$:’ + $
echo ‘$#:’ + $#
echo ‘$$:’ + $$
echo ‘$@:’ + $@
Y si ejecutamos este script en bash con tres variables, di que aparecerá por terminal:
./script.sh param1 param2 param3
$0-> Nombre del script-> ./script.sh
$1,$2, etc.-> Argumentos individuales
$1 = “param1”
$*->Todos los argumentos como una cadena->”param1 param2 param3”
$#-> Número de argumentos->3
$$-> PID del script-> 7256
$@-> Todos los argumentos como una lista separada-> “param1” “param2” “param3”
Comandos Bash(Linux) para archivos/directorios
cat script.sh
nano script.sh
vim script.sh
cp documento.txt copia_documento.txt
cp -r carpeta_original/ carpeta_copia/
mv viejo_nombre.txt nuevo_nombre.txt
mv archivo.txt /ruta/destino/
rm archivo.txt
rm -r carpeta/
rm -rf carpeta/
cat-> Ver un archivo desde terminal
nano-> Editor texto en terminal
vim-> Editor avanzado de texto en terminal
cp(file)-> Copia un archivo en nuevo archivo
cp(dir)-> Copia una carpeta en nueva carp.
mv(renomb.)-> Renombra un archivo/carp.
mv(move)-> Mueve el archivo a otra carpeta
rm-> Eliminar un archivo
rm -r -> Elimina una carpeta y su contenido
rm -rf -> Fuerza a hacer (rm -r) “+ peligroso”
Que hacen los comandos:
cd $OLDPWD
cd -
Los 2 comandos hacen lo mismo.
Volvemos al directorio anterior, del que veniamos.
Que hacen los comandos:
cd $home
cd ~
cd
Hacen los tres lo mismo.
Te mueven al directorio /home
Como nos movemos a una capa más interna de SHELL?
Si creamos una variable de entorno env en una capa externa se ve en las internas? y viceversa?
su nombre_usuario-> Se mueve a una capa interna
exit-> Se mueve a una capa externa
Vemos las env desde capas mas internas si estan definidas desde una externa o la misma, pero no al revés. Es decir si definimos una env en una capa interna y le damos exit para salir a la capa exterior, no tenemos la env definida.
Diferencia entre Vi y Vim?
Vi-> Visual Editor -> Es un editor de texto con: modo Normal/comandos y modo insertar/texto
Vim-> Visual Editor Improved -> Es la evolución de Vi
Actualmente aunque activemos el comando vi fichero.txt (lo crea si no existe)
en la mayoría de dispositivos se abre con vim
q -> salir
q! -> cerrar sin guardar
w -> guardar
Que hace este comando?
ls -li fichero*.txt
ls -> lista archivos y directorios del directorio contenedor
-l -> listar en formato largo
-i -> inode number
fichero*.txt -> Se mostrarán todos los archivos que empiecen con fichero y acaben con .txt
salida:
1308169 -rw-r–r– 1 root root 9 jul 31 20:22 fichero1.txt
1308170 -rw-r–r– 1 root root 18 jul 31 20:23 fichero2.txt
Que datos incluye el inode number?´
Como ver esta información??
nº de inodo “identificador único del file/dir”
site “tamaño en bytes del archivo”
owner uid “usuarios propietario”
group uid “grupo propietario”
[amc] time “fechas”(acceso, modificación y cambio)
file type “tipo de archivo”
permisos “define quien puede leer, escribir y ejecutar el archivo”
stat fichero1.txt (para ver esta información)
Que función tiene el comando touch?
touch -a fichero1.txt
touch -m fichero1.txt
Modificar las fechas de acceso (-a) y modificación (-m) de los stats de un inodo.
Además si el fichero no existe lo crea.
vi fichero1.txt
Si entras al fichero ya se cambiaria la fecha de acceso y cambio(cambio el inodo de fecha acceso) y si además guardas cambios se cambiará la fecha de modificación.
Cuando cambian las fechas de acceso, modificación y cambio de un fichero?
vi fichero1.txt (lo crea si no existe)
touch fichero1.txt (lo crea si no existe)
Acceso-> “atime”
Cuando entras al fichero o haces un touch -a fichero1.txt
Modificación-> “mtime”
Cuando guardas cambios en el fichero o haces un touch -m fichero1.txt
Cambio-> “ctime”
Al modificar los metadatos del archivo (como permisos, propietario, grupo, etc.)
ej: chmod g+w fichero1.txt
(sólo cambia ctime)
Se crea o elimina el archivo(Cambia las tres)
ej: vi fichero1.txt
Se ejecuta el comando touch fichero1.txt sin opciones específicas (cambia las tres).
ej: touch fichero1.txt
Que hace el comando:
touch -c fichero2.txt
Sirve para que si no esta creado el fichero no lo cree.
Como configurar los permisos
Usuario
r
w
x
Grupo
r
w
x
Otros
En que consiste el paquete acl?
apt install acl
ACLs-> Acces Control Lists -> Paquete que permite dar permisos diferentes a usuarios del mismo grupo.
Sin el no se podría ya que sólo diferencia entre usuario propietario, grupo propietario y otros usuarios, no hay más divisiones posibles sin acls.
Explica los permisos con esta línea de terminal sacada con el código:
ls -l
-rw-r–r– 1 root root 15 jul 31 20:36 fichero1.txt
Grupo 1(left) : Permisos para el propietario del archivo.
Grupo 2(mid) : Permisos para el grupo propietario del archivo.
Grupo 3(right) : Permisos para otros usuarios (todos los demás).
Cada grupo consta de tres caracteres:
r : Lectura (read).
w : Escritura (write).
x : Ejecución (execute).