Comandos Básico de Linux II
Comandos II
• date indica la hora del sistema
• date -d “next friday” date -d “tomorrow”
• date -d “4 weeks” date -d “4 weeks ago”
• date -d “3 years ago 4 month ago 3 days ago”
• date +%B
• date +%F
• date +%d%m%y
Comandos II
• Formatos horarios:
– utc (Tiempo universal coordinado)
– cet (Central European Time (UTC+1) )
– cest (Central European Summer Time (UTC+2) )
[Link]
[Link]
• date muestra la hora en formato cest
• date -u muestra la hora en formato utc
• date -u +”%H horas, %M minutos y %S segundos”
• date +”%H horas, %M minutos y %S segundos”
Comandos II
• Cambiar hora del sistema:
– date --set ó date -s
– date -s “2020-09-15 13:00”
– date no se ha cambiado ya que se actualiza
automáticamente.
– timedatectl
Local time: lun 2020-10-19 11:28:26 CEST
Universal time: lun 2020-10-19 09:28:26 UTC
RTC time: lun 2020-10-19 09:28:25
Time zone: Europe/Madrid (CEST, +0200)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
– sudo timedatectl set-time "2020-09-19 11:26"
Failed to set time: Automatic time synchronization is enabled
Comandos II
• Calculo de tiempo transcurrido entre dos intervalos:
– Definición de la variable TIEMPO1
– TIEMPO1=$(date +%s) Definición de la variable
• 1569512460
– Trascurrido un tiempo, ejecutamos
– TIEMPO2=$(date +%s) Definición de la variable
• 1569512478
– DIF=$((( $TIEMPO2-$TIEMPO1 ))) Resta
Comandos II
• cal
• cal 12 1970 cal -3 12 1970
• ncal -w muestra también número de la semana
Comandos II
Encadenado de comandos: operador ;
• La ejecución de los comandos es secuencial:
• Se ejecuta primero, comando1, una vez que
haya acabado la ejecución de comando1, se
ejecutará comando2, y una vez finalizada la
ejecución de comando 2 se ejecutará por último
comando3
• comando1;comando2;comando3
• date;pwd;cal
Comandos II
Visualizar texto por pantalla:
• Comando echo
– echo “Hola Mundo”
– Para dar formato al texto utilizar opción -e
– echo –e “Hola\nme\nllamo\nPepe”
– \n: Salto de línea. \\: barra
– \t: Tabulación horizontal.
– \b: carácter atrás.
Comandos I
• Sintaxis de un comando
– Comando [parámetros] [argumentos]
– Los corchetes indican, que lo que encierran, es opcional,
es decir puede estar o no.
– [parámetros] son las opciones del comando. Suelen
comenzar con un guión, opción POSIX, o doble guión,
opción GNU/Linux, y afectan al comportamiento del
comando.
– [argumentos] son los valores en los que un comando
debe realizar una acción, ficheros, texto etc.
– Los comandos pueden tener ninguno o varios parámetros
y argumentos.
Comandos I
• Sintaxis de un comando
– Los parámetros pueden ponerse de forma individual:
• ls -l -i -h -a
– O agrupados:
• ls -liha
– Pueden mezclarse el formato corto y largo: ls --all -l
– Los parámetros no están estandarizados, el mismo
parámetro es posible que no tenga el mismo significado
en distintos comandos.
• ls -l aquí tiene el significado de formato largo
• wc -l aquí cuenta el número de líneas devueltas
• df -h;ls -h aquí tienen el mismo significado, ¿cuál?
Comandos I
• Sintaxis de un comando
– Los parámetros también puede ir precedidos por doble -,
opción GNU/Linux
– De esta forma, el parámetro es más identificable
• df -h ó df--human-readable
• ls -d ó ls --directory
– Doble guión, - - sin opción, significa final de los
parámetros y principio de los argumentos
– Comando -- y presionas dos veces tabulador, aparecerá
todas las opciones válidas. Cosa que no ocurre con un
único guión -
Comandos I
• Comando internos y externos:
– Comando externos: son los programas binarios
almacenados en HD y cargados en memoria, para
poder ejecutarlos, se ejecutan en una nueva shell.
– Comando internos: son los que se ejecutan dentro de
la Shell donde se invocan, forman parte del Shell.
– type comando indica tipo comando
– file path-absoluto_fichero indica tipo fichero
Comandos I
• Comando internos y externos:
– Ciertos comandos tienen una implementación interna
y externa:
– El comando interno se ejecutará con mayor prioridad
– La ejecución de un comando interno es más rápida.
– Comando type interpreta si el comando es interno,
pero no precisa si hay una implementación externa.
– type pwd
– ls -l /bin/pwd type /bin/pwd
– type nombre_función
• Indica que es una función y muestra su código.
Comandos I
• Atajos para comandos:
– [Ctrl] C: Interrupción del programa, se
termina.
– [Ctrl] Z: Para el programa.
• find /
• ps --aux
– [Ctrl] D: finalización de archivo,interrumpe
introducción de datos en un promt >
– cat > [Link] Introduce texto CTRL D
– mail
Comandos I
• Histórico de comandos:
– history
– history n muestras los últimos n comandos
– Variable $HISTSIZE contiene el número de comandos
– !! Vuelve a ejecutar el comando anterior
– !-n Ejecuta el comando introducido hace n comandos
– !$ Muestra el último parámetro del comando anterior
– !* Muestra todos los parámetros del comando anterior
– !número comando: ejecuta ese comando.
– Con !numero, ver o editar el comando antes de presionar enter:
CTRL+ALT+e ó CTRL+ESC+e
– Se almacena en ~/.bash_history
– history –c: ¿borra histórico?
Comandos I
• Ruta relativa:
– Alias del directorio personal: ~ (Virgulilla)
– ALT + ñ
– Las rutas pueden ser relativas a la virgulilla,
pero ésta no debe ir precedida por carácter
alguno.
• cd ~/docu
• /~ Error
Comandos I
• cd:
– Change Directory.
– cd . No se mueve.
– cd .. Sube un nivel.
– cd sin argumento vuelve al directorio
personal del usuario.
– cd ../home
– cd ../../usuario
Comandos I
• Listado de ficheros y directorios:
– ls, tree
– ls -l es la opción más completa.
– ls -S ordena por tamaño de mayor a menor
– ls -t ordena por tiempo primero los más recientes
– r invierte el criterio especificado
– n uid, gid numéricos
– a Ficheros ocultos
Comandos I
1
1 2 3 4 5 6 7 8
• 1 -: ordinario, d: directorio, l: vínculo simbólico.
• 2 Permisos
• 3 contador de vínculos duros, en caso de ser [Link]
caso de ser un directorio, número de subdirectorios.
• 4 Propietario del fichero que suele ser el creador.
• 5 El grupo al cual pertenece
• 6 El tamaño del fichero en Bytes.
• 7 Fecha de la última modificación.
• 8 Nombre del fichero.
Comandos I
• Crear ficheros vacíos:
– touch nombre_fichero1
– > nombre_fichero2
– :> nombre_fichero3
– Muy práctico para saber si un sistema de
archivos está en modo solo lectura.
Comandos I
Crear directorios
– mkdir nombre
– mkdir dir1 dir2 dir3
– mkdir -p prueba/dirt1 prueba/dir2
– mkdir -p ./mnt/{dir1,dir2,dir3}
– mkdir -m 750 prueba Crea con los permisos 750
Suprime directorios:
– rmdir
Comandos I
• Suprime directorios:
– rmdir no suprime una estructura.
– El directorio a eliminar no puede tener ni
ficheros ni directorios, aunque los
subdirectorios están vacíos.
– Para suprimir una estructura utilizar:
• $ rm.
Comandos I
• rm : Suprime uno o varios fichero y estructuras
completas.
• ¡¡ALTAMENTE PELIGROSO!!.
• rm [opciones] fic1 fic2 fic3
• -i: Confirmación para cada uno de los ficheros a
eliminar.
• -r: siguiente parámetro debe ser un directorio. La
supresión es recursiva. Se suprimen todos los
niveles inferiores.
• -f: fuerza la supresión.
• Muy práctico pero peligroso combinar: -rf
• No tiene funcionalidad tipo papelera, como ocurre
en GUI
• Si se quiere recuperar fichero borrado: foremost
• 1 - Actividad con foremost:
• Crea algunos ficheros de tipo png
• Bórralos con rm
• Intenta recuperarlos siguiendo el
siguiente tutorial:
• [Link]
es/article/7900-como-usar-
foremost-linux-y-recuperar-
archivos-borrados/
Comandos I
• Copiar ficheros:
– cp fich1 [fich2 fich3] Destino
– -i: Pide confirmación de escritura para cada fichero.
– -r: recursivo, copia un directorio y todo su contenido. No
conserva atributos de los archivos. Si conserva enlaces
simbólicos. $ cp –r dir1 dir2
– -a: recursivo, copia un directorio y todo su contenido. Si
conserva atributos de los archivos. Si conserva enlaces
simbólicos. $ cp –r dir1 dir2
– -p: se preservan los permisos y las fechas.
– -f: forzar la copia.
– -u o -- update: copia el archivo sólo si el original es más
reciente.
• 2 – Final de los Parámetros y
Comienzo de los Argumentos
• Crear un fichero de nombre: -i
• Tratar de borrarlo.
• Ayuda: utiliza la opción GNU - - que
significa final de los parámetros y
principio de los argumentos, ó
prueba a añadir una ruta relativa ./
al fichero.
Comandos I
• Mover y renombrar ficheros:
– mv
– mv fich1 [Link] Cambia nombre
– mv fich2 dir/fich2 Mueve fichero
– mv fich2 dir/[Link] Mueve fichero y cambia
nombre
– mv dir1/ dirold Cambia nombre
– mv dir2/ dir1/dir2/ Mueve directorio
Comandos I
• Mover y renombrar directorios:
– mv dir1/ dirold Cambia nombre al directorio
– mv dir2/ dir3/ Mueve directorio y su contenido
– Apreciar la barra final, que aparecerá con el directorio al
tabular. Esto evitará posibles errores de escritura
• 3 – Demuestra el uso de –u con el
comando cp y con el comando mv
• Crea un directorio origen y un fichero
de texto [Link]
• Copialo con cp a otro directorio distinto
llamado destino, manteniendo el
nombre del fichero
• Edita el fichero [Link] del directorio
origen, añadiendo algo de texto.
• Utiliza el comando -u con cp y
comprueba lo que pasa.
• Edita el fichero [Link] del directorio
destino.
• Copia el fichero del directorio origen al
directorio destino, con cp, utilizando el
parámetro –u y comprueba lo que pasa.
• Realiza la misma prueba con el
comando mv, utilizando la opción -u
Comandos I
• Ruta de archivos
– Impresión únicamente del nombre de fichero,
excluye el path y el sufijo si se especifica.
• basename ruta [sufijo]
• basename /home/usuario/[Link] txt
– Resultado: fichero1
– Impresión únicamente del path del archivo,
excluye el nombre del fichero.
• dirname ruta
• dirname /home/usuario/[Link]
– Resultado: /home/usuario
Comandos I
• Búsqueda de ficheros:
– Comando find permite buscar ficheros en el
sistema de ficheros mediante criterios.
– find permite actuar sobre los resultados
devueltos.
– $ find ruta criterios opciones
– find es recursivo, su punto de inicio es el
especificado en ruta.
– Sitúate en el directorio /tmp
– $find ; $find /tmp ¿Qué diferencia encuentras?
Comandos I
• Búsqueda de ficheros, criterios:
-name: selección por nombres de ficheros. El
criterio debe ir entre comillas dobles. Se
pueden utilizar comodines en la
especificación de nombre.
• $find . -name “fich*” -print
• $find . -name “p*”
• $find . -name “origen*”
• -iname
Comandos I
• Búsqueda de ficheros, criterios:
-type: selección por tipo de fichero.
• b: Ficheros tipo bloque.
• c: Ficheros tipo carácter.
• d: dicheros tipo directorio
• f: ficheros tipo ordinario
• l: ficheros tipo simbólico.
• p: ficheros tipo tubería con nombre
• s: socket conexión a red.
• $find -name “p*” -type d -print
• $find / -name “p*” -type d -print
Comandos I
• Búsqueda de ficheros, criterios:
-user, -group: búsqueda por el propietario o
UID. Por grupo de pertenencia del propietario
o GUID.
• $id muestra información sobre UID y
GUID.
• $find . -name “p*” -type d -user 1000 -print
• $find . -type f -user fjgc
Comandos I
• Búsqueda de ficheros, criterios:
-size: indica el tamaño de los ficheros
buscados, por defecto se emplea como
unidad el bloque, 512Bytes.
• b: Por defecto, bloque de 512 Bytes.
• c: Un carácter ASCII, 1 Byte.
• w: Una palabra, 2 Bytes.
• k: KiloByte, 1024 Bytes.
• + o – precediendo al valor indican mayor de
o menor de.
Comandos I
• Búsqueda de ficheros, criterios:
-size 100c busca ficheros de 100 Bytes
-size 100k busca ficheros de 100 kBytes
-size +5k busca ficheros de mas de 5kB.
-size -10k busca ficheros de menos de 10kB.
-size 0 busca ficheros vacíos.
-empty
-size +10M -size -20M busca ficheros de mas
de 10M y menos de 20M
Comandos I
• Búsqueda de ficheros, criterios:
– -atime: fecha de último acceso (access time),
puede ser última lectura como último listado
ls.
– -mtime: fecha de última modificación
(modification time).
– -ctime: (change time) fecha de última
modificación del numero de inodo.
Modificación de nombre, cambio de derechos,
tamaño etc.
Comandos I
– atime, mtime y ctime, trabajan con días (n*24h).
– +n busca valores mayor que n
– -n busca valores menor que n
– n busca exactamente el valor n
– 0 significará el mismo día.
– 1 significará ayer, entre 24 y 48 horas.
– 2 significará antes de ayer, etc
– -mtime 1 ficheros modificados ayer 24-48h
– -atime -3 accedidos hace menos de 3 días, es decir 72
horas
– -atime +4 ficheros accedidos hace más de 4 días
Comandos I
– atime, mtime y ctime
– Modificados hace más de 120 minutos
• find . -mmin +120 -type f -ls
– Modificados hace menos de 120 minutos pero
más de 60 minutos
• find . -mmin -120 -mmin +60 -type f -ls
Comandos I
– Busca en la ayuda de find, el significado de
los siguientes criterios:
• -newer
• -anewer
• -cnewer
– Sacado de man find: -newerXY reference
– m The modification time of the file reference
– t reference is interpreted directly as a time
– find . -newermt "2020-11-01" ! -newermt "2020-11-30" -ls
– find ~/ -newermt "last Sunday" -name "*odp"
– find ~/ -newermt "1 month ago" -name "*odp"
– find ~/ -newermt "1 week ago" -name "*odp"
Comandos I
• Búsqueda de ficheros, criterios:
– perm: búsqueda en las autorizaciones de acceso (derechos,
SUID, SGID, Sticky bit).
– Los derechos se indican de forma numérica o alfabética
– $find . -perm -220
– $find . -perm 664
– $find . -perm -664
– $find . -perm /220
– $find . -perm /u+w,g+w
– $find . -perm /u=w,g=w
– Busca en el manual referente a find el criterio -perm y vete a la
sección de EXAMPLES
Comandos I
• Búsqueda de ficheros, comandos:
– -print: imprime resultados
– -ls: Muestra información detallada de los
ficheros encontrados coincidentes con el
criterio introducido.
• $find / -name “Prueba” -ls
Comandos I
• Búsqueda de ficheros, comandos:
– -exec: ejecutará el comando colocado a
continuación con cada una de las
coincidencias que encuentre.
– $find . -type f -name “*.jpg” -exec rm -f {} \;
– El comando asociado a -exec deberá terminar
siempre con \; \escapa a ;
– {} sustitución de fichero encontrado por find
con {} delimitados los argumentos pasados al
comando.
Comandos I
• Búsqueda de ficheros, comandos:
– -Muy importante el comando asociado a -
exec no esperará a la finalización de find,
sino que se aplicará con las coincidencias
que vaya encontrando.
Comandos I
• Búsqueda de ficheros, comandos:
– -ok: realiza la misma acción que -exec, pero
pide confirmación para cada coincidencia
encontrada.
– $find . -type f -name “*.jpg” -ok rm -f {} \;
Comandos I
• Búsqueda de ejecutables:
– $ whereis nombre
– $ which comando
– $ locate fichero
• locate --regex 'bin/wc$'
Comandos I
• Búsqueda de ejecutables:
– $ whereis nombre
– Busca en rutas de binarios -b
– Entradas en el manual -m
– Fuentes de los ficheros -s
Comandos I
• locate
– Búsqueda de ficheros por nombre. No en el sistema
de ficheros sino en una Base de Datos de ficheros.
– Mantiene y consulta un índice de un árbol de
directorios.
– updatedb genera un índice de archivos y directorios.
– $ sudo updatedb Actualiza la Base de datos.
– locate de GNU se puede usar para consultar
rápidamente dicho índice
Comandos I
• locate
– $ locate fichero
– -c muestra el número de resultados
– -i no distingue entre mayúsculas y minúsculas
– Se puede utilizar comodines y expresiones regulares.
– locate *.mp3
– locate --regex '.*duk.mp3$'