ceu-notes/1/ISO/assignments/t10-ej3-practica-de-comandos/t10-ej3-comandos-linux-naortega.tex

277 lines
7.7 KiB
TeX
Raw Permalink Normal View History

2022-03-21 10:41:55 +00:00
\documentclass[12pt,a4paper]{article}
\usepackage[spanish]{babel}
\usepackage{hyperref}
\usepackage{graphicx}
\usepackage{subcaption}
\title{Tema X Ejercicio III: Práctica de Comandos}
\author{Nicolás A. Ortega Froysa}
\begin{document}
\maketitle
\section{Ejercicios}
\begin{enumerate}
\item Listar todos los archivos del directorio {\tt /bin/}.
\begin{verbatim}
$ ls /bin/
\end{verbatim}
\item Listar todos los archivos del directorio {\tt /tmp/}.
\begin{verbatim}
$ ls /tmp/
\end{verbatim}
\item Listar todos los archivos del directorio {\tt /etc/} que empiecen por
{\tt t} en orden inverso.
\begin{verbatim}
$ ls -r /etc/t*
\end{verbatim}
\item Listar todos los archivos del directorio {\tt /dev/} que empiecen por
{\tt tty} y tengan 5 caracteres.
\begin{verbatim}
$ ls /dev/tty??
\end{verbatim}
\item Listar todos los archivos del directorio {\tt /dev/} que empiecen por
{\tt tty} y acaben en 1, 2, 3, ó 4.
\begin{verbatim}
$ ls /dev/tty*{1,2,3,4}
\end{verbatim}
\item Listar todos los archivos del directorio {\tt /dev/} que empiecen por
{\tt t} y acaben en {\tt C1}.
\begin{verbatim}
$ ls /dev/t*C1
\end{verbatim}
\item Listar todos los archivos, incluidos los ocultos, del directorio raíz.
\begin{verbatim}
$ ls -a /
\end{verbatim}
\item Listar todos los archivos del directorio {\tt /etc/} que {\em no}
empiecen por {\tt t}.
\begin{verbatim}
$ ls /etc/[^t]*
\end{verbatim}
\item Listar los archivos del directorio {\tt /usr/} y sus subdirectorios.
\begin{verbatim}
$ ls /usr/*
\end{verbatim}
\item Cambiarse al directorio {\tt /tmp/} y crear directorio {\tt PRUEBA}.
\begin{verbatim}
$ cd /tmp/ && mkdir PRUEBA
\end{verbatim}
\item Verificar que el directorio actual ha cambiado.
\begin{verbatim}
$ pwd
\end{verbatim}
O también:
\begin{verbatim}
$ [[ $(pwd) == "/tmp" ]] \
&& echo "Ha cambiado." \
|| echo "No ha cambiado."
\end{verbatim}
\item Mostrar el día y la hora actual.
\begin{verbatim}
$ date +"%A %H:%M"
\end{verbatim}
\item Con un solo comando posicionarse en el directorio {\tt \$HOME}.
\begin{verbatim}
$ cd $HOME
\end{verbatim}
\item Verificar que se está en él.
\begin{verbatim}
$ pwd
\end{verbatim}
O también:
\begin{verbatim}
$ [[ $(pwd) == "$HOME" ]] \
&& echo "Ha cambiado." \
|| echo "No ha cambiado."
\end{verbatim}
\item Listar todos los ficheros del directorio {\em HOME} mostrando su
número de {\em inodo}.
\begin{verbatim}
$ ls -i $HOME
\end{verbatim}
\item Mostrar todos los archivos y directorios visibles de vuestro
directorio {\em PRUEBA}.
\begin{verbatim}
$ rm -r /tmp/PRUEBA/*
\end{verbatim}
\item Crear los directorios {\tt dir1/}, {\tt dir2/}, y {\tt dir3/} en el
directorio {\tt PRUEBA}. Dentro de {\tt dir1/} crear el directorio {\tt
dir11/}. Dentro del directorio {\tt dir3/} crear el directorio {\tt
dir31/}. Dentro del directorio {\tt dir31/}, crear los directorios {\tt
dir311/} y {\tt dir312/}.
\begin{verbatim}
$ mkdir -p \
/tmp/PRUEBA/{dir1/dir11/,dir2/,dir3/dir31/{dir311/,dir312/}}
\end{verbatim}
\item Copiar el archivo {\tt /etc/motd} a un archivo llamado {\tt mensaje}
de vuestro directorio {\tt PRUEBA}.
\begin{verbatim}
$ cp /etc/motd /tmp/PRUEBA/mensaje
\end{verbatim}
\item Copiar el mensaje en {\tt dir1/}, {\tt dir2/}, y {\tt dir3/}.
\begin{verbatim}
$ for i in dir*; do cp mensaje $i; done
\end{verbatim}
\item Comprobar el ejercicio anterior mediante un solo comando.
\begin{verbatim}
$ ls /tmp/PRUEBA/dir*
\end{verbatim}
\item Copiar los archivos del directorio {\tt rc.d/}, que se encuentra en
{\tt /etc/}, al directorio {\tt dir31/}.
\begin{verbatim}
$ cp -r /etc/rc.d/* /tmp/PRUEBA/dir3/dir31/
\end{verbatim}
\item Copiar en el directorio {\tt dir311/} los archivos de {\tt /bin/} que
tengan {\tt 1} como segunda letra y su nombre tenga cuantro letras.
\begin{verbatim}
$ cp /bin/?1?? /tmp/PRUEBA/dir3/dir31/dir311/
\end{verbatim}
\item Copiar el directorio de otro usuario y sus subdirectorios debajo de
{\tt dir11/} (incluido el propio directorio).
\begin{verbatim}
$ cp -r /home/nicolas/ /tmp/PRUEBA/dir1/dir11/
\end{verbatim}
\item Mover el directorio {\tt dir31} y sus subdirectorios debajo de {\tt
dir2/}.
\begin{verbatim}
$ mv /tmp/PRUEBA/dir3/dir31/ /tmp/PRUEBA/dir2/
\end{verbatim}
\item Mostrar por la pantalla los archivos ordinarios del directorio {\tt
\$HOME} y sus subdirectorios.
\begin{verbatim}
$ ls $HOME/*
\end{verbatim}
\item Ocultar el archivo {\tt mensaje} del directorio {\tt dir3/}.
\begin{verbatim}
$ mv /tmp/PRUEBA/dir3/mensaje /tmp/PRUEBA/dir3/.mensaje
\end{verbatim}
\item Borrar los archivos y directorios de {\tt dir1}, incluido el propio
directorio.
\begin{verbatim}
$ rm -r /tmp/PRUEBA/dir1/
\end{verbatim}
\item Copiar al directorio {\tt dir312} los fichers del directorio {\tt
/dev/} que empiecen por {\tt port}, acaben en una letra que vaya de la
{\tt a} a la {\tt b}, y tengan cinco letras en su nombre.
\begin{verbatim}
$ cp /dev/port[a-b] /tmp/PRUEBA/dir2/dir31/dir312/
\end{verbatim}
\item Borrar los archivos de {\tt dir312/} que no acaben en {\tt b} y tengan
una {\tt q} como cuarta letra.
\begin{verbatim}
# asumo que también se incluyen directorios (-r)
$ rm -r /tmp/PRUEBA/dir2/dir31/dir312/???q*[^b]
\end{verbatim}
\item Mover el directorio {\tt dir312/} debajo de {\tt dir3/}.
\begin{verbatim}
$ mv /tmp/PRUEBA/dir2/dir31/dir312/ /tmp/PRUEBA/dir3/
\end{verbatim}
\item Crear un enlace simbólico al directorio {\tt dir1/} dentro del
directorio {\tt dir3/} llamado {\tt enlacedir1}.
\begin{verbatim}
$ ln -s /tmp/PRUEBA/dir1/ /tmp/PRUEBA/dir3/enlacedir1
\end{verbatim}
\item Posicionarse en {\tt dir3/} y, empleando el enlace creado en el
ejercicio anterio, crear el directorio {\tt nuevo1} dentro de {\tt
dir1}.
\begin{verbatim}
$ cd /tmp/PRUEBA/dir3/ && mkdir enlacedir1/nuevo1/
\end{verbatim}
\item Utilizando el enlace creado, copiar los archivos que empiecen por {\tt
u} del directorio {\tt /bin/} en el directorio {\tt nuevo1/}.
\begin{verbatim}
$ cp /bin/u* enlacedir1/nuevo1/
\end{verbatim}
\item Crear dos enlaces duros del fichero {\tt fich1}, llamarlo {\tt
enlace}, en los directorios {\tt dir1/} y {\tt dir2/}.
\begin{verbatim}
# asumo que fich1 está en PRUEBA/
$ cd /tmp/PRUEBA/
$ echo dir1/enlace dir2/enlace | xargs -n1 ln /fich1
\end{verbatim}
\item Borrar el archivo {\tt fich1} y copiar el enlace a {\tt dir3/}.
\begin{verbatim}
$ rm fich1; cp dir2/enlace dir3/
\end{verbatim}
\item Crear un enlace simbólico (llamado {\tt enlafich1}) al fichero enlace
de {\tt dir2/} en {\tt dir1/}.
\begin{verbatim}
$ ln -s dir2/enlace dir1/enlafich1
\end{verbatim}
\item Posicionarse en {\tt dir1/} y, mediante el enlace creado, copiar el
archivo {\tt fich1} dentro de {\tt dir311/}.
\begin{verbatim}
$ cd dir1/
$ cp enlace ../dir2/dir31/dir311/
\end{verbatim}
\item Seguir en {\tt dir1/} y, mediante el enlace creado, sacar por pantalla
las líneas que tiene el archivo {\tt fich1}.
\begin{verbatim}
$ cat enlace
\end{verbatim}
\item Borrar el fichero {\tt fich1} de {\tt dir2/}.
\begin{verbatim}
$ rm /tmp/PRUEBA/dir2/enlace
\end{verbatim}
\item Borrar todos los archivos y directorios creados durante los
ejercicios.
\begin{verbatim}
$ cd && rm -r /tmp/PRUEBA/
\end{verbatim}
\end{enumerate}
\pagebreak
\section{Derechos de Autor y Licencia}
\noindent
Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa
<nicolas@ortegas.org>\\
\\
Este documento se distribuye bajo los términos y condiciones de la licencia
Creative Commons Attribution No Derivatives 4.0 International.
\end{document}