Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VARIABES DE ENTORNO
$PATH Contiene una lista que define a la Shell en que
directorios encontrar comandos.
$HOME
$HISTSIZEd Cuantos comandos almacenar en la lista del
historial.
PATH = /usr/bin/custom:$PATH
Alias
Se pueden poner comandos largos en una secuencia de letras abreviadas llamada salias.
Por ejemplo. “ls -l” con poner “ll” el shel lo interpreta como tal.
importante es saber que de esta forma los alias creados permanecerán creados durante la sesión
de ese Shell presente.
Funciones
Su sintaxis es la siguiente :
function_name ()
{ comandos
}
Mi_reporte () {
ls
date
pwd
Comillas
Las dobles comillas pueden utilizarse para que el Shell no interprete metacaracteres o símbolos
especiales de forma literal. Por ejemplo echo “Un asterisco es *” . Lo sacaría normal.
Sin embargo echo “mi ruta es $PATH” interpretaría la variable global literal.
Para que no la pillase utilizaríamos comillas simples ‘$PATH‘no interpretaría la variable global
comillas inversas
La salida del comando será literalmente “hoy es date” pero yo quiero que lo ejecute, así que utilizo
las comillas inversas. Ejemplo:
Punto y coma
Si queremos ejecutar una secuencia de comandos independientes unos de los otros sería con el
carácter “;”. Ejemplo:
Actúa como un “y” lógico. Si el primer comando se ejecuta, lo hará. Si no lo hace el primero, el
segundo tampoco lo hará.
Tubería doble ||
True y false.
Al parecer son 2 comandos que tienen ese mismo valor que define su nombre. Viene bien para
hacer scripts. Por ejemplo:
False && echo hola No ejecutará nada porque el primer valor es falso.
Archivos ocultos
- .bashrc : archivo en el directorio de inicio personaliza características del shell, como crear
o modificar variables y alias.
Caracteres globales
echo etc/t* Todos lo archivos que comienzan por la letra “t”.
echo etc/*.d en este ejemplo mostraría todos los archivos que terminan con extensión ”.d”
El carácter de signo de exclamación !se usa junto con los corchetes para negar un rango. Por
ejemplo, el patrón
IMPORTANTE
Hay una solución simple a este problema: use siempre la -d opción con globs, que le dice al ls
comando que muestre el nombre de los directorios, en lugar de su contenido.
Descomprimir y comprimir
gzip <nombre_archivo>
bunzip2 <nombre_archivo>
Archivar archivos
tar -c Crear archivo
-f -> Usar archivo de
almacenamiento
-z Para comprimir o
descomprimir. Comprimir más .
-t Para ver que hay dentro. Listar
archivos de un archivo.
-x Extraer archivos de un archivo
Ejemplos: tar -cf <nombre_archivo> <archivo a
comprimir>
tar -cf fotos_jesus fotos_*
unzip <nombre_archivo>
Comandos para mostrar el texto de un archivo junto al comando <cat> de una forma páginada.
head y tail. Son comandos para mostrar las líneas de comienzo o final de un archivo. Se le puede
especificar el número poniendo un número.
Ejemplo:
$tail -5 <nombre_archivo>
Estos comandos también se puede aplicar a la salida de otros comandos para hacer todo de una
forma más ordenada. Ejemplo:
ls /etc | nl | tail -5 Se mostraría de una forma enumerada y solo los últimos cinco.
Redirección ENTRADA/SALIDA.
Los comandos cuando se ejecutan arrojan un resultado. Ya sea error o su cometido. Nosotros
podemos redireccionar ese resultado a un archivo por ejemplo con los caracteres. <>
En otro caso, cuando se ejecuta un comando erróneamente, en la terminal sale un mensaje de error.
Podemos redirigir ese mensaje de error a un archivo y que no salga impreso en la pantalla, para ello
ejecutaremos por ejemplo:
Comando tr
Si por ejemplo quiero poner una línea de un archivo de teto en mayúscula, haría:
Este comando no admite argumentos de nombre de archivo. Por lo que si se quiere pasar uno y guardar
habría que hacerlo tal que así.
Comando sort
$sort mypassword
Comando curt
-f opción puede especificar qué campos mostrar, ya sea como un rango con guión o una lista separada
por comas .Ejemplo: cut -d: -f1,5-7 mypasswd
Comando FIND
Example:
En este caso find /etc -name hosts obtenemos dos resultados. Uno true y el false, es decir el error de
permisos, así que si queremos deshacernos de la parte impresa que muestra el error, hacemos:
El comando test.
echo “hola”
echo “adios”
else
fi
Declaración case
#!/bin/bash
Case “$1” in
Hola)
echo “hola”
;;
Adiós)
;;
*)
esac
For : los bucles se utilizan cuando tuene una colección finita sobre la que desea iterar.
#!/bin/bash
For S in $SERVERS; do
#!/bin/bash #!/bin/bash
i=0 Echo “Introduce un número mayor que 100”
while [ $i -lt 10]; do Read num
echo $i While [ $num -le 100 ]
i=$(( $i + 1 )) Do
done Echo “$num no es más grande que 100”
echo “terminó de contar” Echo “¿Eres un poco tonto, no?”
Read num
Un ejemplo de for muy utilizado sería:
Done
Do
Touch prueba$num
Doney
gparted
Directorio /proc/
Este directorio es donde se almacenan ficheros con información del hardware del sistema. Por
ejemplo, muchos comandos como “free”, “top”, “mount”,”umount” su funcionamiento depende
de los archivos de este directorio.
Dentro de /proc/ hay subdirectorios como /sys/ donde se alojan ficheros cargados en memoria ,
estos si que pueden ser modificados por el usuario raíz.
ls /proc/cmdline información que se pasó al núcleo cuando se inició por primera vez.
$ps -aux
$ps -ef
Tened en cuenta que saldrán muchos procesos y que será mejor filtrar si se quiere uno en
particular. Para ello utilizaremos el comando “grep”. Ejemplo:
$ps -aux | grep Firefox firefoz como palabra clave para localizar dicho proceso
Para ver los procesos que esta ejecutando otros usuarios, en el caso de que seamos
administradores, bastaría con indicarlo con el parámetro adecuado.
Comando top este nos muestra los procesos y cu carga en la CPU. De una forma ascendente, es
decir, los que más ocupan estarán los primeros.
Cuando lo ejecutamos pordemos pulsar las teclas “k” para matar un proceso o “R” para reasignarle
una prioridad.
Archivos de registro
Los procesos ejecutados producen una salida que describe cómo se jecutan y los errores, aunque
no se muestre en la pantalla impreso. En vez de ello, se almacena en unos archivos, estos, son
conocidos como archivos de registro.
Estos archivos son útiles, por ejemplo, se pueden consultar para ver si se ha tenido acceso
autorizado o no.
Los demonios de registro syslogd y klogd trabajan juntos, aunque en las distribuciones recientes
solo hay uno llamado rsyslogd que combina a los 2 en uno solo.
Y en las aún más recientes, aquellas basadas en systemd, el demonio de resgistro se llama journald
y os registros están diseñados para permitir la salida de texto.
Para ver el métodos estándar de journald hay que usar el comando journalctl.
$journalctl
Los archivos más comunes que se encuentran en este directorio suelen ser:
o Boot.log Los mensajes generados como servicios se inician durante el inicio del
sistema.
o Cron Mensajes generados por le crond demonio para que los trabajos se
ejecuten de forma recurrente.
o Messages Mensajes del kernel y otros procesos que no pertenecen a otra parte. A
veces de nombra syslog en lugar del messages Daemon que escribe este archivo.
Para realizar esta clasificación, es necesario hacer referencia a subdirectorios por debajo del nivel
superior e directorios. Por ejemplo:
Directorio Contenido
/ La base de la estructura, o raíz del sistema de
archivos, este directorio unifica todos los
directorios independientemente de si son
particiones locales, dispositivos extraíbles o
recursos compartidos en red.
Herramientas de red
$host 192.168.1.2
Cada línea contiene información relativa a un solo usuario. Los campos están separados por
caracteres de 2 puntos.
En un momento, la contraseña del usuario se almacenó en esta ubicación, sin embargo, ahora x en
este campo indica que la contraseña esta en etc/shadow
A cada cuenta se le asigna una identificación de usuario ( UID). El sistema utiliza el UID y no los
nombres de usuario.
Contraseñas
En el archivo podremos observar campos separados por dos puntos. Cada uno de los campos
significa:
Hay
que recordar siempre que el nivel de acceso al sistema no depende únicamente de los
privilegios que tenga la cuenta de usuario sino también del grupo al que pertenezca.
/etc/group
¡
Creación de un grupo
$groupdel Se puede eliminar con este comando siempre que dicho grupo no sea el principal
de un usuario.
Creación de usuarios
$useradd
-k opción que permite usa run SKEL directorio diferente al predeterminado al crear una
nueva cuenta de usuario.
Archivos de configuración e usuario.
/etc/login.defs
Contiene valores que se aplican de forma predeterminada a los nuevos usuarios que se
crea por useradd.
Este archivo contiene muchos comentarios y líneas en blanco, por lo que para ver las
líneas que no son comentarios en blanco, usar:
$newgrp <nombre_grupo>
Si quiero saber los grupos a los que pertenezco de una forma rápida, ejecuto:
$groups
Hay que tener en cuenta que para cambiar de usuario principal permanentemente hay que
hacerlo con privilegios de root. El comando sería:
Chown
- El primer métoo se usa para cambiar solo el usuario propietario del archivo.
$chown jane /tmp/filetest1
- El segundo método es cambiar tanto el usuario como el grupo.Hay que separar el usuario
y el grupo con 2 puntos.
- Si un usuario no tiene privilegios d eraíz, puede usar el tercer método para cambiar el
propietario del grupo de un archivo al igual que el chgrp comando. Para una chown solo para
cambiar la propiedad del grupo del archivo, use dos puntos cmo prefijo del nombre del grupo.
Permisos
Un buen ejemplo para comprenderlo:
Otro ejemplo:
Otro ejemplo:
Otro ejemplo:
Otro ejemplo:
Cambio de permisos.
Chmod
o otros
a todos
Luego hay que legir uno de los siguiente soperadores para indicar cómo modificar los permisos:
+ agregar
- Retirar
- = es igual
Por último, usar los siguientes caracteres para especificar los tipos de permisos que desea
cambiar:
R leer
W escribe
X ejecutar
Ejemplo:
$chmod g+w abc.txt solo se cambio el permiso del propietario del grupo. Tdos lo demás
permisos permanecieron como estaban antes de la ejecución de chmod.
Se puede combinar valores para realizar varios cambios e n los permisos de archivo:
Agrega permisos de jecución al propietario del usuario y al propietario del grupo y eliminar
permiso de lectura para otros.
Agrega permisos específicos y hace que se eliminen los no mencionados. Por ejemplo aquí solo al
propietario del archivo se le dan permisos de ejecución y lectura, eliminando el permiso de
escritura.
Método numérico
SETUID
Se establece en un archivo binario ejecutable. Éste se ejecuta como el propietario del archivo y no
como el usuario que lo ejecutó.
Un ejemplo sería cuando utilizamos el comando passwd, un usuario que no sea root, no puede
acceder a /etc/shadow pero sin embargo al utilizar este comando modifica este archivo ¿Se
entiende o eres gilipollas?
SETGID
Es similar al SETUID solo que este permite ejecutar un arhico binario ejecutable de una manera
que les proporciona acceso de grupo adicional.
Punta adhesiva
Se utiliza para que otros usuarios eliminen archivos que no son de su propiedad en un directorio
compartido.
Un buen ejemplo de sticky bit serían los directorios /tmp, /var/tmp . En estos directorios cualquier
usuario puede crear archivos de forma temporal.