Ejemplos de scripts en Bash y preguntas frecuentes sobre Linux
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 7,19 KB
1. Mover un archivo a la papelera antes de borrarlo
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Indique el archivo como parámetro"
elif [ -f $1 ]; then
echo "Copio el fichero $1 al directorio papelera y lo borro."
if [ ! -d papelera ]; then
mkdir papelera
fi
cp $1 papelera
rm -f $1
else
echo "El parámetro $1 no es un fichero"
fi
2. Comparar dos números
#!/bin/bash
if [ $# -eq 2 ]; then
echo "Primer número: $1"
echo "Segundo número: $2"
case $1 in
[0-9])
case $2 in
[0-9])
if [ $1 -eq $2 ]; then
relacion="="
else
if [ $1 -gt $2 ]; then
relacion=">"
else
relacion="<"
fi
fi
echo "$1 $relacion $2"
;;
*) echo "$2 no es un número"
;;
esac
;;
*) echo "$1 no es un número"
;;
esac
else
echo "Debe indicar dos parámetros numéricos"
fi
3. Crear directorio, archivo y llenarlo con información
#!/bin/bash
if [ -d dir1 ]; then
echo "El directorio ya existe"
else
mkdir dir1
echo "Creado el directorio dir1"
fi
cd dir1
touch fich1
echo "Creado el fichero fich1"
ls /dev/t*[0-9] >> fich1
cat /etc/passwd | cut -d":" -f1,6 >> fich1
echo "Llenado el fichero fich1"
echo "Contenido del fichero fich1"
more fich1
4. Copiar un archivo en otro
#!/bin/bash
if [ $# -eq 2 ]; then
if [ -f $1 -a -f $2 ]; then
echo "¿Quieres sobrescribir el contenido de $2 con $1? (S/N)"
read resp
if [ $resp = "S" -o $resp = "s" ]; then
cat $1 > $2
echo "Contenido de $2 sobreescrito con contenido de $1"
else
cat $1 >> $2
echo "Contenido de $1 añadido a $2"
fi
else
echo "Alguno de los parámetros no es un fichero"
fi
else
echo "Debe incluir SOLO dos ficheros como parámetros"
fi
5. Menú interactivo
#!/bin/bash
opc=0
while [ $opc -ne 3 ]; do
echo "Menú"
echo "1. Conexiones actuales"
echo "2. Contenido del directorio actual"
echo "3. Limpiar la pantalla y salir del menú"
echo "4. Submenú"
echo "Elige una opción"
read opc
case $opc in
1) echo "Conexiones actuales:"
who
;;
2) echo "Contenido del directorio actual:"
ls
;;
3) clear
;;
4) salir=0
while [ $salir -ne 4 ]; do
echo "Submenú"
echo "1. Dar todos los permisos de lectura."
echo "2. Dar todos los permisos de escritura."
echo "3. Dar todos los permisos de ejecución."
echo "4. Salir submenú"
echo "Elija su opción: "; read salir
case $salir in
1) echo "Indique el archivo: "; read arch
if [ -f $arch ]; then
chmod u+r,g+r,o+r $arch
echo "Concedidos permisos de lectura"
else
echo "$arch no es un archivo"
fi
;;
2) echo "Indique el archivo: "; read arch
if [ -f $arch ]; then
chmod u+w,g+w,o+w $arch
echo "Concedidos permisos de escritura"
else
echo "$arch no es un archivo"
fi
;;
3) echo "Indique el archivo: "; read arch
if [ -f $arch ]; then
chmod u+x,g+x,o+x $arch
echo "Concedidos permisos de ejecución"
else
echo "$arch no es un archivo"
fi
;;
4) clear
;;
*) echo "Opción inválida"
;;
esac
done
;;
*) echo "Opción inválida"
;;
esac
done
Administración de usuarios y comandos
Añadir el usuario Antonio al grupo principal profesores:
adduser Antonio profesores
Cambiar el nombre del usuario Antonio por Toni:
usermod -l toni -d /home/toni -m antonio
Eliminar el usuario antonio del grupo lp:
deluser antonio lp
Contar las líneas de archivo.txt:
wc -l < archivo.txt
Mostrar la ayuda del comando ifconfig de forma paginada:
man ifconfig | less
Número de usuarios que utilizan /bin/bash como shell:
grep /bin/bash /etc/passwd | wc -l
Preguntas frecuentes sobre Linux
- ¿Qué otro nombre recibe el núcleo del sistema operativo Linux?
Kernel - ¿Cuál es el sistema de archivos recomendado para versiones de Linux superiores a la 11.10?
ext4 - ¿El archivo donde se encuentran los repositorios se llama... y está en...?
sources.list, /etc/apt - Indica cuál de las siguientes afirmaciones es cierta:
Los directorios son ficheros que contienen listas de ficheros. - ¿En qué directorio encontramos archivos simbólicos que representan partes del hardware, discos duros, memoria,...?
/dev - ¿En qué directorio encontramos los directorios de los usuarios?
/home - ¿Con qué comando podemos visualizar todos los archivos, incluidos los ocultos?
ls -a - ¿Cómo se borra un árbol de directorios si están vacíos?
rmdir -p - ¿Qué opción del comando
cp
sirve para copiar la estructura de directorios?
-r - ¿Qué es el UID?
Número único dado a cada usuario del sistema. - ¿Qué es el GID?
Número único dado a cada grupo del sistema. - Toda la información relacionada con el usuario la podemos encontrar en:
/etc/passwd - ¿Qué fichero debemos mirar si queremos cambiar la duración de una contraseña?
/etc/shadow - La opción -g en el comando useradd nos indica que vamos a crear un usuario y...
Su grupo inicial. - ¿Qué resultado obtenemos si aplicamos chmod 555 fichero?
r-xr-xr-x - ¿Qué resultado obtenemos si aplicamos chmod g+rw o+x?
r--rw-r-x - ¿Qué función tiene el comando chown?
Modificar el propietario de un fichero. - El directorio de trabajo del administrador del equipo Linux es:
/root - Queremos cambiar el nombre "contabilidad" por "hipoteca":
mv contabilidad hipoteca - Mostrar a partir del tercer campo del fichero /etc/passwd:
cut -d: -f3- /etc/passwd - Número de líneas y de palabras del fichero /etc/passwd:
wc -l -w /etc/passwd - Mostrar los archivos d1t07.mp3 y d1t08.mp3:
ls d1t0{7,8}.mp3 - Crear una jerarquía de directorios de una sola vez:
mkdir -p dir1/dir2/dir3 - Eliminar todos los archivos y directorios dentro de un directorio sin confirmación:
rm -rf directorio