1. Ejecuta los siguientes comandos echo a b echo a b echo “a b” echo ‘a b’ echo ‘a/// b ¿Cuántos argumentos hay para cada uno de estos comandos? - 2 Argumentos - 2 Argumentos - 1 Argumento - 1 Argumento - 1 Argumento 2. Vaya al directorio / y teclee el comando echo * ¿Cuál es su resultado? ¿Por qué? Nos muestra todo el contenido del directorio /, porque eso es lo que hace el * 3. ¿Cómo visualizar literalmente la cadena de caracteres “el carácter * es un carácter genérico”? echo "el carácter * es un carácter genérico" echo ‘el carácter * es un carácter genérico’ echo el carácter \* es un carácter genérico 4. ¿Cómo visualizar literalmente la cadena de caracteres “ la variable referenciada por $var3”? echo la variable referenciada por \$var3 echo ‘la variable referenciada por $var3’ 1. Ejecute el comando cat sin argumentos después teclee algunas palabras y finalícelo normalmente ¿Qué observas? Muestra lo que se le escribe. 2. Ejecute el comando wc sin argumentos después teclee algunas palabras y finalícelo normalmente ¿Qué observas? Que cuenta el número de palabras y de caracteres de lo que se ha escrito 3. Utilice el comando cat para visualizar el contenido del archivo /etc/hosts de dos maneras: pasando el nombre del archivo como argumento, después utilizando una redirección cat /etc/hosts cat < /etc/hosts 4. Utilice el comando wc para contar el número de líneas del archivo /etc/passwd de dos maneras: pasando el nombre del archivo como argumento, después utilizando una redirección ¿Qué observas? wc -l /etc/passwd wc -l < /etc/passwd Con la redirección se pierde el nombre del archivo 5. Utilice el comando cat para escribir algunas palabras en el archivo /tmp/ficcat cat > /tmp/ficcat 6. Utilice el comando cat sin argumentos para copiar el archivo /tmp/ficcat en /tmp/ficcat2 cat < /tmp/ficcat >/tmp/ficcat2 7. Utilice el comando cat para añadir algunas palabras al archivo /tmp/ficcat existentes cat >> /tmp/ficcat 8. Utiliza el comando cat para concatenar el contenido de los archivos /tmp/ficcat y /etc/hosts en el archivo /tmp/ficcat3 cat /tmp/ficcat /etc/hosts > /tmp/ficcat3 9. Vaya al directorio /etc y redirija la salida del comando ls a el archivo /tmp/ls.out ¿Qué contiene ese archivo? cd /etc ls > /tmp/ls.out 10. Utilice el comando wc sin argumentos para contar el número de líneas contenidas en el archivo /tmp/ls.out wc -l < /tmp/ls.out 11.¿Cuántos archivos hay en el directorio /etc? Suprima el archivo /tmp/ls.out ls /etc/ | wc -l 12. Sin utilizar un archivo intermedio cuente de nuevo el número de archivos presentes en el directorio /etc ls /etc/ | wc -l 13. Empleando una tubería cuente de nuevo el número de archivos presentes en el directorio /etc escribiendo el resultado del comando ls en el archivo /tm/ls.out ls /etc/ | tee /tmp/ls.out | wc -l 14. Ejecute el comando ls /etc/passwd glop y anote su resultado ls /etc/passwd glob 15. Ejecute el comando ls /etc/passwd glop redirigiendo las salidas al archivo /tmp/ls.out y los mensajes de error al archivo /tmp/ls.err ls /etc/passwd glob > /tmp/ls.out 2> /tmp/ls.err 16. Ejecute el comando ls /etc/passwd glop redirigiendo las salidas al archivo /tmp/ls.out y suprimiendo los mensajes de error ls /etc/passwd glob > /tmp/ls.out 2> /dev/null 17. Ejecute el comando ls /etc/passwd glob redirigiendo las salidas y los mensajes de error al archivo /tmp/ls.out ls /etc/passwd glob > /tmp/ls.out 2 > & 1 2. Vaya a su directorio personal visualice la lista de todos los archivos presentes en su árbol. ls -r 3. Visualice la lista de todos los archivos presentes en los directorios /bin y /lib find /bin /lib 4. Liste los archivos de su subdirectorios capitulo5 visualizándolo únicamente los nombres de los directorios. Después proceda del mismo modo visualizando únicamente los nombres de los archivos ordinarios. find /capitulo5/ -type d find /capitulo5/ -type f 5. Vaya al subdirectorio capitulo5 y visualice todos los nombres de archivos que comiencen por la cadena “fic” presentes en el árbol find /capitulo5/ -name “fic*” 6. Busque en todo el árbol del sistema, todos los archivos con un tamaño superior a diez megabytes o con los permisos de acceso 4755 find / -size +10M -o -perm 4755 2>/dev/null ¿Hay mensajes de error? En caso afirmativo ¿Por qué? Si, por no tener permiso de acceso a esos archivos Suprima los mensajes de error posibles con una redirección 7. Visualice el formato de cada archivo donde el nombre comience por la letra “p” en el árbol del directorio /etc find /etc/ -name p* -exec file {}\; 2>/dev/null Suprima los mensajes de error posibles con una redirección ¿Por qué en el directorio tmp puede cualquier usuario escribir si esta en raíz? ¿Porque no puedo borrar un fichero de otro usuario si tengo permisos de escritura? 8. Busque de nuevo en su subdirectorio capitulo5, todos los nombres de archivos que comiencen por la cadena “fic” presentes en el árbol. Y suprima los archivos donde el nombre contenga una cifra find /capitulo5/ -name fic* -ok rm -f {} \; 1. Visualice el PID de los procesos bash actualmente iniciados en sistema. Ps -ef | fgrep bash | tr -s “ “ “ “ | cut -d” “ -f2 2. Visualice todas las líneas del archivo /etc/services que contengan la cadena de caracteres “http” grep http /etc/services 3. Filtre de nuevo el archivo /etc/services esta vez, con la cadena de caracteres “http” como palabra grep -w http /etc/services 4. Visualice las líneas del archivo /etc/passwd que no contengan la cadena de caracteres “home”. grep -v home /etc/passwd 5 ¿Cuántas líneas del archivo /etc/passwd contienen la cadena de caracteres “sbin”? grep -c sbin /etc/passwd 6. ¿Qué archivos del directorio /etc contienen la cadena de caracteres “ tux”? Suprime los mensajes de error grep -l tux /etc 2> /dev/null 7. ¿En qué número de líneas se encuentra la cadena de caracteres “tux” en los archivos anteriores? Suprima los mensajes de error eventuales con una redirección grep -ln “tux” /etc 2> /dev/null 1. Visualice el primer y el tercer campo del archivo /etc/group cat /etc/group | cut -d: -f1,3 2. Visualice una lista detallada de los archivos presentes en el directorio /etc. Después conserve únicamente la información siguiente: ls -l /etc/ | tr -s “ “ “ “ | cut -d“ “ -f1,5,9 - Permisos del archivo: - Tamaño del archivo: - Nombre del archivo: 1. Clasifique el archivo /etc/passwd alfabéticamente por el nombre de conexión (login) de cada usuario sort /etc/passwd 2. Clasifique el archivo /etc/passwd alfabéticamente por el nombre completo (campo GECOS) de cada usuario sort -k5 -t: /etc/passwd 3. Clasifique el archivo /etc/passwd numéricamente por el UID de cada usuario. sort -k3 -t: -n /etc/passwd 4. Visualice una lista detallada de archivos presentes en el directorio /etc. Después clasifique los archivos de mayor a menor. ls -l --sort -size /etc 1. Visualice las cinco primeras líneas del archivo /etc/passwd head -5 /etc/passwd 2. Visualice las siete últimas líneas del archivo /etc/protocols tail -7 /etc/protocols 3. Utilice el comando tail en una tubería para no visualizar la primera línea devuelta por el comando ls -L ls -l | tail -n+2 4. Visualice de la línea 188 a 191 del archivo /etc/services head -n191 /etc/services | tail -n+188 Buscar con find todos los ficheros que se han modificado a partir de un fichero find -type f -newer ; = Hacer 2 cosas a la vez && = Si lo primero da error lo siguiente no se hace || = Si eso no se hace se hace lo de después de esto cat /etc/shadow 2> /dev/null && echo “abierto” || echo “no abierto” Estudiar: Find, enlaces duros y simbolicos, head y tail, alias, buscar donde esta el archivo de modificar el PATH EJEMPLO PARA MODIFICAR PATH : ~/.bashrc ~/.bash_profile $ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin imaginemos que nuestro binario que no está en el PATH está aquí: /opt/tacata/ pues sólo hay que añadir esa ruta de directorio al PATH. Editamos nano /home/pepito/.bashrc y le añadimos estas dos líneas: PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/ sbin:/opt/tacata/" export PATH Esto se puede aplicar cambiando path por otra variable ps -e | grep bash | cut -cl-5 9 mkdir -p carpeta1/carpeta4,carpeta2/carpeta3 1