diff --git a/Figuras/LinuxKernel.jpg b/Figuras/LinuxKernel.jpg new file mode 100644 index 0000000..015aa5f Binary files /dev/null and b/Figuras/LinuxKernel.jpg differ diff --git a/Figuras/LogoDUI.jpg b/Figuras/LogoDUI.jpg new file mode 100644 index 0000000..f3b5f43 Binary files /dev/null and b/Figuras/LogoDUI.jpg differ diff --git a/Figuras/LogoLinux.jpg b/Figuras/LogoLinux.jpg new file mode 100644 index 0000000..8e0b413 Binary files /dev/null and b/Figuras/LogoLinux.jpg differ diff --git a/Figuras/actividad3.jpg b/Figuras/actividad3.jpg new file mode 100644 index 0000000..7a62a4c Binary files /dev/null and b/Figuras/actividad3.jpg differ diff --git a/Figuras/actividad3b.jpg b/Figuras/actividad3b.jpg new file mode 100644 index 0000000..56cd3c9 Binary files /dev/null and b/Figuras/actividad3b.jpg differ diff --git a/Figuras/actividad4a.jpg b/Figuras/actividad4a.jpg new file mode 100644 index 0000000..b41c998 Binary files /dev/null and b/Figuras/actividad4a.jpg differ diff --git a/Figuras/actividad4b.jpg b/Figuras/actividad4b.jpg new file mode 100644 index 0000000..3d9e2b9 Binary files /dev/null and b/Figuras/actividad4b.jpg differ diff --git a/Figuras/actividad4c.jpg b/Figuras/actividad4c.jpg new file mode 100644 index 0000000..c436a27 Binary files /dev/null and b/Figuras/actividad4c.jpg differ diff --git a/Figuras/actividad5.jpg b/Figuras/actividad5.jpg new file mode 100644 index 0000000..bf47b80 Binary files /dev/null and b/Figuras/actividad5.jpg differ diff --git a/Figuras/actividad6.jpg b/Figuras/actividad6.jpg new file mode 100644 index 0000000..27741a0 Binary files /dev/null and b/Figuras/actividad6.jpg differ diff --git a/Figuras/linux_negro_blanco.png b/Figuras/linux_negro_blanco.png new file mode 100644 index 0000000..a76b28a Binary files /dev/null and b/Figuras/linux_negro_blanco.png differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..31db43b --- /dev/null +++ b/README.md @@ -0,0 +1,55 @@ +# LaTeX_BashScripting-Doc + Introduction to GNU/Linux OS Administration & Bash Scripting. + +In this repo you'll find the LaTeX code of the Introduction to GNU/Linux OS Administration & Bash Scripting UNC Cordoba Argentina 2015 GNU/Linux Diploma + Bash scripts code. + + +Ejercicios Tema1: Introducción al entorno gráfico de un Sistema GNU/Linux y herramientas + + Kernel / Distribuciones / Gnome / Nautilus / LibreOffice / GUI & TTY + +Ejercicios Tema3: Línea de Comandos. Comandos básicosI + + commands: cd; sudo; less; /bin & /sbin; ls -la & ls -l; mkdir; touch; chmod; rm; cp; mv; ln + +Ejercicios Tema 4: Linea de comandos. Comandos básicos II + + commands: find; locate; grep; df; tar (tar.gz) + +Ejercicios Tema 6: Uso básico de la consola + + Regular expressions: ^, $, ., *, [] + command: history + +Parcial 1 - Parte 2 - Cuestionario Práctico + + Regular expressions: ^, $, ., *, [] + commands: history; find; tar; ls + +Ejercicios Tema 7: Shell scripting básico + + STDOUT & STDERR + commands: head; tail; | (pipe); cat; grep; wc + script1: find & sort; for loops + extra: “ - in between Grave accent character + +Ejercicios Tema 8: Herramientas para procesar texto + + commands: cat; less; grep & regex; head; sort; cut; sed + +Ejercicios Tema 10: Shell scripting intermedio + + commands: tar; gzip; head + script2: divisible por 2. + script3: tar - gzip - date format output + script4: find directories by name - for - if - test - ls + script5: True or False - for - if - test - ls + +Ejercicios Tema 11: Configuración de Bash + + Variable de entorno PS1 + Limpiar History y /tmp + init.d and processes + Alias for grep command + script6: backup script - tar gz + script7: given a value to a variable diff --git a/TPs_Diplomatura_Linux.aux b/TPs_Diplomatura_Linux.aux new file mode 100644 index 0000000..6377e14 --- /dev/null +++ b/TPs_Diplomatura_Linux.aux @@ -0,0 +1,301 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\catcode `"\active +\catcode `<\active +\catcode `>\active +\@nameuse{es@quoting} +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\bibstyle{apalike} +\@writefile{toc}{} +\reset@newl@bel +\select@language{spanish} +\@writefile{toc}{\select@language{spanish}} +\@writefile{lof}{\select@language{spanish}} +\@writefile{lot}{\select@language{spanish}} +\undonewlabel{acro:gnu} +\newlabel{acro:gnu}{{}{\es@scroman {ii}}{\contentsname \@mkboth {\MakeUppercase \contentsname }{\MakeUppercase \contentsname }}{section*.3}{}} +\acronymused{gnu} +\acronymused{gnu} +\acronymused{gnu} +\undonewlabel{acro:gnome} +\newlabel{acro:gnome}{{}{\es@scroman {ii}}{\contentsname \@mkboth {\MakeUppercase \contentsname }{\MakeUppercase \contentsname }}{section*.4}{}} +\acronymused{gnome} +\undonewlabel{acro:gtk} +\newlabel{acro:gtk}{{}{\es@scroman {ii}}{\contentsname \@mkboth {\MakeUppercase \contentsname }{\MakeUppercase \contentsname }}{section*.5}{}} +\acronymused{gtk} +\undonewlabel{acro:cd} +\newlabel{acro:cd}{{}{\es@scroman {ii}}{\contentsname \@mkboth {\MakeUppercase \contentsname }{\MakeUppercase \contentsname }}{section*.6}{}} +\acronymused{cd} +\citation{linuxkernel1} +\citation{wikikernel} +\@writefile{toc}{\contentsline {section}{\numberline {1}Ejercicios Tema1: Introducci\IeC {\'o}n al entorno gr\IeC {\'a}fico de un Sistema GNU/Linux y herramientas}{1}{section.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Actividad 1.}{1}{subsection.1.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.1}Kernel: Definici\IeC {\'o}n}{1}{subsubsection.1.1.1}} +\citation{linuxkernel} +\acronymused{gnu} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.2}Versi\IeC {\'o}n actual de kernel estable en \ac {gnu}/Linux}{2}{subsubsection.1.1.2}} +\citation{linuxkernel1} +\citation{linuxkernel1} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces \emph {The Linux Kernel Archives \cite {linuxkernel1}.}\relax }}{3}{figure.caption.9}} +\citation{wikikernel1} +\citation{fedoraproject} +\acronymused{gnu} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.3}Versi\IeC {\'o}n mas usada de kernel estable en \ac {gnu}/Linux}{4}{subsubsection.1.1.3}} +\undonewlabel{acro:eol} +\newlabel{acro:eol}{{1.1.3}{4}{Versión mas usada de kernel estable en \ac {gnu}/Linux}{section*.10}{}} +\acronymused{eol} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Actividad 2.}{4}{subsection.1.2}} +\acronymused{gnu} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.2.1}\IeC {\textquestiondown }De qu\IeC {\'e} distribuci\IeC {\'o}n deriva \ac {gnu}/Linux Fedora?}{4}{subsubsection.1.2.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.3}Actividad 3.}{4}{subsection.1.3}} +\acronymused{gnome} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.3.1}Imprimir pantalla del escritorio \ac {gnome}}{4}{subsubsection.1.3.1}} +\acronymused{gnome} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces \emph {Capturando pantalla en ubuntu 14.04.}\relax }}{5}{figure.caption.11}} +\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces \emph {Verificando que la captura se haya guardado correctamente en la folder /home/delivery/image/.}\relax }}{5}{figure.caption.12}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.4}Actividad 4.}{6}{subsection.1.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.4.1}Navegaci\IeC {\'o}n de directorios con Nautilus}{6}{subsubsection.1.4.1}} +\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces \emph {Navegaci\IeC {\'o}n de archivos con Nautius folder: /home .}\relax }}{7}{figure.caption.13}} +\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces \emph {Navegaci\IeC {\'o}n de archivos con Nautius folder: /etc .}\relax }}{8}{figure.caption.14}} +\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces \emph {Navegaci\IeC {\'o}n de archivos con Nautius folder: /root.}\relax }}{8}{figure.caption.15}} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.5}Actividad 5.}{9}{subsection.1.5}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.5.1}LibreOffice Writer: Guardado de archivos .doc en .odt }{9}{subsubsection.1.5.1}} +\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces \emph {LibreOffice Writer: Guardado de archivos .doc en .odt.}\relax }}{9}{figure.caption.16}} +\citation{xhost} +\@writefile{toc}{\contentsline {subsection}{\numberline {1.6}Actividad 6.}{10}{subsection.1.6}} +\acronymused{gtk} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.6.1}Consolas virtuales y \ac {gtk}-Warning}{10}{subsubsection.1.6.1}} +\undonewlabel{acro:gui} +\newlabel{acro:gui}{{1.6.1}{10}{Consolas virtuales y \ac {gtk}-Warning}{section*.17}{}} +\acronymused{gui} +\acronymused{gui} +\acronymused{gnome} +\undonewlabel{acro:kde} +\newlabel{acro:kde}{{1.6.1}{10}{Consolas virtuales y \ac {gtk}-Warning}{section*.18}{}} +\acronymused{kde} +\acronymused{gnome} +\acronymused{gui} +\citation{osamu} +\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces \emph {Linux virtual consoles.}\relax }}{11}{figure.caption.19}} +\@writefile{toc}{\contentsline {section}{\numberline {2}Ejercicios Tema3: L\IeC {\'\i }nea de Comandos. Comandos b\IeC {\'a}sicosI }{12}{section.2}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Actividad 1.}{12}{subsection.2.1}} +\acronymused{cd} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.1.1}\ac {cd} command}{12}{subsubsection.2.1.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Actividad 2.}{12}{subsection.2.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.2.1}Sudo y permisos de administraci\IeC {\'o}n}{12}{subsubsection.2.2.1}} +\undonewlabel{acro:sudo} +\newlabel{acro:sudo}{{2.2.1}{13}{Sudo y permisos de administración}{section*.20}{}} +\acronymused{sudo} +\acronymused{sudo} +\acronymused{sudo} +\acronymused{sudo} +\acronymused{sudo} +\acronymused{sudo} +\acronymused{sudo} +\acronymused{sudo} +\acronymused{sudo} +\acronymused{sudo} +\acronymused{sudo} +\acronymused{sudo} +\citation{debiansudo} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.3}Actividad 3.}{15}{subsection.2.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.3.1}less command}{15}{subsubsection.2.3.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.4}Actividad 4.}{15}{subsection.2.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.4.1}/bin and /sbin}{15}{subsubsection.2.4.1}} +\citation{wikifhs} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.5}Actividad 5.}{17}{subsection.2.5}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.5.1}Listado de permisos ''ls -la`` command}{17}{subsubsection.2.5.1}} +\citation{mirizioe} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}Actividad 6.}{18}{subsection.2.6}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.6.1}Listado de permisos ''ls -l`` command}{18}{subsubsection.2.6.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.7}Actividad 7.}{19}{subsection.2.7}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.7.1}mkdir make directory}{19}{subsubsection.2.7.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.8}Actividad 8.}{20}{subsection.2.8}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.8.1}Creaci\IeC {\'o}n de archivos con ''touch``}{20}{subsubsection.2.8.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.9}Actividad 9.}{20}{subsection.2.9}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.9.1}Cambio de permisos con ''chmod``}{20}{subsubsection.2.9.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.10}Actividad 10.}{21}{subsection.2.10}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.10.1}Eliminar recursivamente con ''rm`` command}{21}{subsubsection.2.10.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.11}Actividad 11.}{21}{subsection.2.11}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.11.1}Copia recursiva de directorio con ''cp`` command}{21}{subsubsection.2.11.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.12}Actividad 12.}{22}{subsection.2.12}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.12.1}Renombrar archivos con ''mv`` command}{22}{subsubsection.2.12.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.13}Actividad 13.}{23}{subsection.2.13}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.13.1}Copia de dirs mediante path relativo}{23}{subsubsection.2.13.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.14}Actividad 14.}{23}{subsection.2.14}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.14.1}Enlaces simb\IeC {\'o}licos ''ln'' command}{23}{subsubsection.2.14.1}} +\citation{utlai} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.15}Actividad 15.}{25}{subsection.2.15}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.15.1}Navegaci\IeC {\'o}n de directorios con Nautilus}{25}{subsubsection.2.15.1}} +\citation{utlai} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.16}Actividad 16.}{26}{subsection.2.16}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {2.16.1}Interpertaci\IeC {\'o}n de comandos}{26}{subsubsection.2.16.1}} +\citation{digitalocean} +\@writefile{toc}{\contentsline {section}{\numberline {3}Ejercicios Tema 4: Linea de comandos. Comandos b\IeC {\'a}sicos II }{29}{section.3}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Actividad 1.}{29}{subsection.3.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.1.1}``find'' and ``locate'' commands}{29}{subsubsection.3.1.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Actividad 2.}{29}{subsection.3.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}locate -d command}{29}{subsubsection.3.2.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Actividad 3.}{31}{subsection.3.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}``find`` without name}{31}{subsubsection.3.3.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Actividad 4.}{31}{subsection.3.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1}''find'' buscando por permisos de usuario}{31}{subsubsection.3.4.1}} +\citation{digitalocean} +\citation{linuxbible} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.5}Actividad 5.}{33}{subsection.3.5}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.5.1}``find'' para archivos modificados en un per\IeC {\'\i }odo de tiempo}{33}{subsubsection.3.5.1}} +\citation{digitalocean} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.6}Actividad 6.}{35}{subsection.3.6}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.6.1}``grep`` command}{35}{subsubsection.3.6.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.7}Actividad 7.}{36}{subsection.3.7}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.7.1}''grep`` recursivo}{36}{subsubsection.3.7.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.8}Actividad 8.}{36}{subsection.3.8}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.8.1}''df`` commands}{36}{subsubsection.3.8.1}} +\citation{vivkg} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.9}Actividad 9.}{37}{subsection.3.9}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.9.1}''tar.gz`` command p/ comprimir}{37}{subsubsection.3.9.1}} +\citation{vivkg} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.10}Actividad 10.}{38}{subsection.3.10}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.10.1}''tar.gz`` command p/ descomprimir}{38}{subsubsection.3.10.1}} +\@writefile{toc}{\contentsline {section}{\numberline {4}Ejercicios Tema 6: Uso b\IeC {\'a}sico de la consola }{39}{section.4}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Actividad 1.}{39}{subsection.4.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.1.1}Regular expressions - \texttt {\^} , \$ , . , *}{39}{subsubsection.4.1.1}} +\citation{tldpre} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Actividad 2.}{41}{subsection.4.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Regular expressions - \texttt {\^} , \$ , . , *}{41}{subsubsection.4.2.1}} +\citation{tldpre} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Actividad 3.}{42}{subsection.4.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}Regular expressions - \texttt {\^} , . , []}{42}{subsubsection.4.3.1}} +\citation{tldpre} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.4}Actividad 4.}{44}{subsection.4.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.4.1}Regular expressions - \texttt {\^} , \$ , []}{44}{subsubsection.4.4.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.5}Actividad 5.}{45}{subsection.4.5}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.5.1}Regular expressions - \texttt {\^} , \$ , []}{45}{subsubsection.4.5.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.6}Actividad 6.}{46}{subsection.4.6}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.6.1}The command-line history}{46}{subsubsection.4.6.1}} +\citation{serverschool} +\citation{tldphist} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.7}Actividad 7.}{48}{subsection.4.7}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.7.1}history, variable HISTSIZE}{48}{subsubsection.4.7.1}} +\citation{tecmint} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.8}Actividad 8.}{49}{subsection.4.8}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.8.1}HISTCONTROL variable}{49}{subsubsection.4.8.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.9}Actividad 9.}{50}{subsection.4.9}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.9.1}clear history (history -c)}{50}{subsubsection.4.9.1}} +\@writefile{toc}{\contentsline {section}{\numberline {5}Parcial 1 - Parte 2 - Cuestionario Pr\IeC {\'a}ctico}{51}{section.5}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Actividad 1.}{51}{subsection.5.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.1.1}Regular expressions - \texttt {\^} , \$ , . , *}{51}{subsubsection.5.1.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Actividad 2.}{51}{subsection.5.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}find command}{51}{subsubsection.5.2.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Actividad 3.}{51}{subsection.5.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}Regular expressions and ls command}{51}{subsubsection.5.3.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Actividad 4.}{52}{subsection.5.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.1}Regular expressions - Tar command}{52}{subsubsection.5.4.1}} +\@writefile{toc}{\contentsline {section}{\numberline {6}Ejercicios Tema 7: Shell scripting b\IeC {\'a}sico}{53}{section.6}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Actividad 1.}{53}{subsection.6.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.1.1}STDERR redirection to file}{53}{subsubsection.6.1.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Actividad 2.}{54}{subsection.6.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.2.1}STDOUT \& STDERR redirection to file}{54}{subsubsection.6.2.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.3}Actividad 3.}{54}{subsection.6.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.3.1}Head - Tail - Pipe}{54}{subsubsection.6.3.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.4}Actividad 4.}{56}{subsection.6.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.4.1}Cat - Grep - Wc}{56}{subsubsection.6.4.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.5}Actividad 5.}{57}{subsection.6.5}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.5.1}Find \& Sort script}{57}{subsubsection.6.5.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.6}Actividad 6.}{58}{subsection.6.6}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.6.1}`` - in between Grave accent character }{58}{subsubsection.6.6.1}} +\citation{mirizioe2} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.7}Actividad 7.}{60}{subsection.6.7}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {6.7.1}FOR - loops and iteration}{60}{subsubsection.6.7.1}} +\@writefile{toc}{\contentsline {section}{\numberline {7}Ejercicios Tema 8: Herramientas para procesar texto}{61}{section.7}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Actividad 1.}{61}{subsection.7.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.1.1}cat command}{61}{subsubsection.7.1.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Actividad 2.}{62}{subsection.7.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.1}less command}{62}{subsubsection.7.2.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.3}Actividad 3.}{63}{subsection.7.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.3.1}grep \& regular expessions}{63}{subsubsection.7.3.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.4}Actividad 4.}{63}{subsection.7.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.4.1}head command}{63}{subsubsection.7.4.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.5}Actividad 5.}{64}{subsection.7.5}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.5.1}sort command}{64}{subsubsection.7.5.1}} +\citation{thegeekstuff} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.6}Actividad 6.}{68}{subsection.7.6}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.6.1}cut command }{68}{subsubsection.7.6.1}} +\citation{thegeekstuff2} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.7}Actividad 7.}{72}{subsection.7.7}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.7.1}sed command}{72}{subsubsection.7.7.1}} +\citation{thegeekstuff3} +\@writefile{toc}{\contentsline {section}{\numberline {8}Ejercicios Tema 10: Shell scripting intermedio}{79}{section.8}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Actividad 1.}{79}{subsection.8.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.1.1}tar - gzip - date format output}{79}{subsubsection.8.1.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Actividad 2.}{80}{subsection.8.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.2.1}script : ''divisible por 2``}{80}{subsubsection.8.2.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.3}Actividad 3.}{81}{subsection.8.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.3.1}script: tar - gzip - date format output}{81}{subsubsection.8.3.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.4}Actividad 4.}{84}{subsection.8.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.4.1}head command}{84}{subsubsection.8.4.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.5}Actividad 5 (ejercitaci\IeC {\'o}n evaluaci\IeC {\'o}n).}{84}{subsection.8.5}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.5.1}script: find directories by name - for - if - test - ls}{84}{subsubsection.8.5.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {8.6}Actividad 6 (ejercitaci\IeC {\'o}n evaluaci\IeC {\'o}n).}{84}{subsection.8.6}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {8.6.1}script: True or False - for - if - test - ls}{84}{subsubsection.8.6.1}} +\@writefile{toc}{\contentsline {section}{\numberline {9}Ejercicios Tema 11: Configuraci\IeC {\'o}n de Bash}{85}{section.9}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.1}Actividad 1.}{85}{subsection.9.1}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.1}Variable de entorno PS1}{85}{subsubsection.9.1.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.2}Actividad 2.}{85}{subsection.9.2}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.2.1}Limpiar History y /tmp}{85}{subsubsection.9.2.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.3}Actividad 3.}{85}{subsection.9.3}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.3.1}init.d and processes}{85}{subsubsection.9.3.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.4}Actividad 4.}{85}{subsection.9.4}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.4.1}backup script - tar gz}{85}{subsubsection.9.4.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.5}Actividad 5.}{86}{subsection.9.5}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.5.1}Alias for grep command}{86}{subsubsection.9.5.1}} +\@writefile{toc}{\contentsline {subsection}{\numberline {9.6}Actividad 6.}{86}{subsection.9.6}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.6.1}script: given a value to a variable}{86}{subsubsection.9.6.1}} +\bibdata{miscitas} +\bibcite{utlai}{{A}sociaci\IeC {\'o}n Cultural U.T.L.A.I. (Cantabria\unhbox \voidb@x \penalty \@M \ Espa\IeC {\~n}a), 2009} +\bibcite{debiansudo}{{D}ebian org, 2014} +\bibcite{digitalocean}{{D}igitalOcean\begingroup \let \relax \relax \endgroup [Pleaseinsert\PrerenderUnicode{™}intopreamble] Inc., 2015} +\bibcite{tldpre}{{H}ogbin E., 2005a} +\bibcite{tldphist}{{H}ogbin E., 2005b} +\bibcite{serverschool}{{H}osting\unhbox \voidb@x \penalty \@M \ News LLC, 2010} +\bibcite{linuxkernel1}{{L}inux Kernel Organization\unhbox \voidb@x \penalty \@M \ Inc., 2014a} +\bibcite{linuxkernel}{{L}inux Kernel Organization\unhbox \voidb@x \penalty \@M \ Inc., 2014b} +\bibcite{mirizioe}{{M}irizio {E}., 2015a} +\bibcite{mirizioe2}{{M}irizio {E}., 2015b} +\bibcite{tecmint}{{N}atarajan R., 2015} +\bibcite{linuxbible}{Negus, 2015} +\bibcite{osamu}{{O}samu {A}oki, 2013} +\@writefile{toc}{\contentsline {section}{Bibliograf\'{\i }a}{87}{section*.21}} +\bibcite{fedoraproject}{{R}ed Hat, 2015} +\bibcite{xhost}{Scheifler\unhbox \voidb@x \penalty \@M \ B., } +\bibcite{thegeekstuff3}{{S}hrestha {N}., 2009} +\bibcite{thegeekstuff2}{{S}hrestha {N}., 2013a} +\bibcite{thegeekstuff}{{S}hrestha {N}., 2013b} +\bibcite{vivkg}{{V}ivek {G}., 2006} +\bibcite{wikifhs}{{W}ikipedia Project, 2015a} +\bibcite{wikikernel1}{{W}ikipedia Project, 2015b} +\bibcite{wikikernel}{{W}ikipedia Project, 2015c} +\@writefile{toc}{\contentsline {section}{Siglas y Acr\'onimos}{89}{section*.21}} +\newacro{cd}[\AC@hyperlink{cd}{cd}]{change directory} +\newacro{eol}[\AC@hyperlink{eol}{EOL}]{End of Life} +\newacro{gnu}[\AC@hyperlink{gnu}{GNU}]{GNU's Not Unix!} +\newacro{gnome}[\AC@hyperlink{gnome}{Gnome}]{GNU Network Object Model Environment} +\newacro{gtk}[\AC@hyperlink{gtk}{GTK}]{Graphical user interface toolkit} +\newacro{gui}[\AC@hyperlink{gui}{GUI}]{Grafic User Interface} +\newacro{kde}[\AC@hyperlink{kde}{KDE}]{K desktop environment} +\newacro{sudo}[\AC@hyperlink{sudo}{sudo}]{Super-user do} diff --git a/TPs_Diplomatura_Linux.bbl b/TPs_Diplomatura_Linux.bbl new file mode 100644 index 0000000..7909acb --- /dev/null +++ b/TPs_Diplomatura_Linux.bbl @@ -0,0 +1,142 @@ +\begin{thebibliography}{} + +\bibitem[{A}sociación Cultural U.T.L.A.I. (Cantabria~España), 2009]{utlai} +{A}sociación Cultural U.T.L.A.I. (Cantabria~España) (2009). +\newblock Enlaces de ficheros: enlaces duros y enlaces simbólicos. +\newblock \url{ http://www.nodo50.org/utlai/linux/27010712.htm}. +\newblock [03-10-2015]. + +\bibitem[{D}ebian org, 2014]{debiansudo} +{D}ebian org (2014). +\newblock sudo. +\newblock \url{https://wiki.debian.org/sudo)}. +\newblock [20-09-2015]. + +\bibitem[{D}igitalOcean™ Inc., 2015]{digitalocean} +{D}igitalOcean™ Inc. (2015). +\newblock {H}ow to use find and locate to search for files on a linux vps. +\newblock + \url{https://www.digitalocean.com/community/tutorials/how-to-use-find-and-locate-to-search-for-files-on-a-linux-vps}. +\newblock [03-10-2015]. + +\bibitem[{H}ogbin E., 2005a]{tldpre} +{H}ogbin E., {K}omarinski~M., M.~D. (2005a). +\newblock The linux documentation project: A brief introduction to regular + expressions. +\newblock \url{http://tldp.org/LDP/abs/html/x17129.html#FTN.AEN17134}. +\newblock [01-11-2015]. + +\bibitem[{H}ogbin E., 2005b]{tldphist} +{H}ogbin E., {K}omarinski~M., M.~D. (2005b). +\newblock The linux documentation project: The command-line history. +\newblock \url{http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x1712.htm}. +\newblock [02-11-2015]. + +\bibitem[{H}osting~{N}ews LLC, 2010]{serverschool} +{H}osting~{N}ews LLC (2010). +\newblock Dedicated server school: Using the linux “history” command. +\newblock + \url{http://www.serverschool.com/dedicated-servers/using-the-linux-history-command/}. +\newblock [02-11-2015]. + +\bibitem[{L}inux Kernel Organization~Inc., 2014a]{linuxkernel1} +{L}inux Kernel Organization~Inc. (2014a). +\newblock The linux kernel archives. +\newblock \url{https://www.kernel.org)}. +\newblock [16-09-2015]. + +\bibitem[{L}inux Kernel Organization~Inc., 2014b]{linuxkernel} +{L}inux Kernel Organization~Inc. (2014b). +\newblock The linux kernel archives: Frequently asked questions. +\newblock \url{https://www.kernel.org/category/faq.html)}. +\newblock [16-09-2015]. + +\bibitem[{M}irizio {E}., 2015a]{mirizioe} +{M}irizio {E}. (2015a). +\newblock Guía teórica - diplomatura linux modulo 1. +\newblock \url{http://www.di.artec.unc.edu.ar/course/view.php?id=4§ion=2)}. +\newblock [20-09-2015]. + +\bibitem[{M}irizio {E}., 2015b]{mirizioe2} +{M}irizio {E}. (2015b). +\newblock Guía teórica - diplomatura linux modulo 7. +\newblock + \url{http://www.di.artec.unc.edu.ar/pluginfile.php/8003/mod_resource/content/1/Tips_Scripts.txt}. +\newblock [06-12-2015]. + +\bibitem[{N}atarajan R., 2015]{tecmint} +{N}atarajan R. (2015). +\newblock Tecmint: The power of linux “history command” in bash shell. +\newblock \url{http://www.tecmint.com/history-command-examples/}. +\newblock [02-11-2015]. + +\bibitem[Negus, 2015]{linuxbible} +Negus, C. (2015). +\newblock {\em Linux Bible}. +\newblock Wiley, 9 edition. + +\bibitem[{O}samu {A}oki, 2013]{osamu} +{O}samu {A}oki (2013). +\newblock Debian reference - chapter 1. gnu/linux tutorials - 1.1.6. virtual + consoles. +\newblock + \url{https://www.debian.org/doc/manuals/debian-reference/ch01.en.html#_virtual_consoles)}. +\newblock [19-09-2015]. + +\bibitem[{R}ed Hat, 2015]{fedoraproject} +{R}ed Hat, I. (2015). +\newblock {F}edora project wiki - what is the fedora project? +\newblock \url{https://fedoraproject.org/wiki/Fedora_Project_Wiki)}. +\newblock [16-09-2015]. + +\bibitem[Scheifler~B., ]{xhost} +Scheifler~B., G.~J. +\newblock xhost man page. +\newblock \url{http://www.x.org/archive/X11R7.5/doc/man/man1/xhost.1.html}. +\newblock [19-09-2015]. + +\bibitem[{S}hrestha {N}., 2009]{thegeekstuff3} +{S}hrestha {N}. (2009). +\newblock Unix sed tutorial: Find and replace text inside a file using regex. +\newblock + \url{http://www.thegeekstuff.com/2009/09/unix-sed-tutorial-replace-text-inside-a-file-using-substitute-command/}. +\newblock [07-12-2015]. + +\bibitem[{S}hrestha {N}., 2013a]{thegeekstuff2} +{S}hrestha {N}. (2013a). +\newblock 10 practical linux cut command examples to select file columns. +\newblock \url{http://www.thegeekstuff.com/2013/06/cut-command-examples/}. +\newblock [07-12-2015]. + +\bibitem[{S}hrestha {N}., 2013b]{thegeekstuff} +{S}hrestha {N}. (2013b). +\newblock How to sort files in linux using sort command. +\newblock \url{http://www.thegeekstuff.com/2013/04/sort-files/}. +\newblock [07-12-2015]. + +\bibitem[{V}ivek {G}., 2006]{vivkg} +{V}ivek {G}. (2006). +\newblock How do i compress a whole linux or unix directory. +\newblock + \url{http://www.cyberciti.biz/faq/how-do-i-compress-a-whole-linux-or-unix-directory}. +\newblock [04-10-2015]. + +\bibitem[{W}ikipedia Project, 2015a]{wikifhs} +{W}ikipedia Project (2015a). +\newblock Filesystem hierarchy standard. +\newblock \url{https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard}. +\newblock [20-09-2015]. + +\bibitem[{W}ikipedia Project, 2015b]{wikikernel1} +{W}ikipedia Project (2015b). +\newblock Linux kernel. +\newblock \url{ https://en.wikipedia.org/wiki/Linux_kernel#2.6.x.y_releases)}. +\newblock [16-09-2015]. + +\bibitem[{W}ikipedia Project, 2015c]{wikikernel} +{W}ikipedia Project (2015c). +\newblock What is the fedora project? +\newblock \url{https://es.wikipedia.org/wiki/N%C3%BAcleo_(inform%C3%A1tica)}. +\newblock [16-09-2015]. + +\end{thebibliography} diff --git a/TPs_Diplomatura_Linux.blg b/TPs_Diplomatura_Linux.blg new file mode 100644 index 0000000..3419883 --- /dev/null +++ b/TPs_Diplomatura_Linux.blg @@ -0,0 +1,48 @@ +This is BibTeX, Version 0.99d (TeX Live 2013/Debian) +Capacity: max_strings=35307, hash_size=35307, hash_prime=30011 +The top-level auxiliary file: TPs_Diplomatura_Linux.aux +The style file: apalike.bst +Database file #1: miscitas.bib +Warning--empty year in xhost +You've used 22 entries, + 1935 wiz_defined-function locations, + 569 strings with 6787 characters, +and the built_in function-call counts, 5648 in all, are: += -- 615 +> -- 154 +< -- 22 ++ -- 58 +- -- 44 +* -- 332 +:= -- 1128 +add.period$ -- 87 +call.type$ -- 22 +change.case$ -- 132 +chr.to.int$ -- 16 +cite$ -- 23 +duplicate$ -- 224 +empty$ -- 339 +format.name$ -- 66 +if$ -- 1044 +int.to.chr$ -- 7 +int.to.str$ -- 0 +missing$ -- 2 +newline$ -- 134 +num.names$ -- 66 +pop$ -- 51 +preamble$ -- 1 +purify$ -- 132 +quote$ -- 0 +skip$ -- 193 +stack$ -- 0 +substring$ -- 272 +swap$ -- 1 +text.length$ -- 0 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 130 +warning$ -- 1 +while$ -- 44 +width$ -- 0 +write$ -- 308 +(There was 1 warning) diff --git a/TPs_Diplomatura_Linux.lof b/TPs_Diplomatura_Linux.lof new file mode 100644 index 0000000..1a0bb3f --- /dev/null +++ b/TPs_Diplomatura_Linux.lof @@ -0,0 +1,9 @@ +\select@language {spanish} +\contentsline {figure}{\numberline {1}{\ignorespaces \emph {The Linux Kernel Archives \cite {linuxkernel1}.}\relax }}{3}{figure.caption.9} +\contentsline {figure}{\numberline {2}{\ignorespaces \emph {Capturando pantalla en ubuntu 14.04.}\relax }}{5}{figure.caption.11} +\contentsline {figure}{\numberline {3}{\ignorespaces \emph {Verificando que la captura se haya guardado correctamente en la folder /home/delivery/image/.}\relax }}{5}{figure.caption.12} +\contentsline {figure}{\numberline {4}{\ignorespaces \emph {Navegaci\IeC {\'o}n de archivos con Nautius folder: /home .}\relax }}{7}{figure.caption.13} +\contentsline {figure}{\numberline {5}{\ignorespaces \emph {Navegaci\IeC {\'o}n de archivos con Nautius folder: /etc .}\relax }}{8}{figure.caption.14} +\contentsline {figure}{\numberline {6}{\ignorespaces \emph {Navegaci\IeC {\'o}n de archivos con Nautius folder: /root.}\relax }}{8}{figure.caption.15} +\contentsline {figure}{\numberline {7}{\ignorespaces \emph {LibreOffice Writer: Guardado de archivos .doc en .odt.}\relax }}{9}{figure.caption.16} +\contentsline {figure}{\numberline {8}{\ignorespaces \emph {Linux virtual consoles.}\relax }}{11}{figure.caption.19} diff --git a/TPs_Diplomatura_Linux.log b/TPs_Diplomatura_Linux.log new file mode 100644 index 0000000..44959c7 --- /dev/null +++ b/TPs_Diplomatura_Linux.log @@ -0,0 +1,7165 @@ +This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) (format=pdflatex 2015.9.14) 19 JAN 2016 19:17 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**TPs_Diplomatura_Linux.tex +(./TPs_Diplomatura_Linux.tex +LaTeX2e <2011/06/27> +Babel <3.9h> and hyphenation patterns for 7 languages loaded. +(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls +Document Class: article 2007/10/19 v1.4h Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@section=\count80 +\c@subsection=\count81 +\c@subsubsection=\count82 +\c@paragraph=\count83 +\c@subparagraph=\count84 +\c@figure=\count85 +\c@table=\count86 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2008/03/30 v1.1d Input encoding file +\inpenc@prehook=\toks14 +\inpenc@posthook=\toks15 + +(/usr/share/texlive/texmf-dist/tex/latex/ucs/utf8x.def +File: utf8x.def 2004/10/17 UCS: Input encoding UTF-8 +)) +(/usr/share/texlive/texmf-dist/tex/latex/ucs/ucs.sty +Package: ucs 2013/05/11 v2.2 UCS: Unicode input support + +(/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uni-global.def +File: uni-global.def 2013/05/13 UCS: Unicode global data +) +\uc@secondtry=\count87 +\uc@combtoks=\toks16 +\uc@combtoksb=\toks17 +\uc@temptokena=\toks18 +) +(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2013/12/03 3.9h The Babel package + +(/usr/share/texlive/texmf-dist/tex/generic/babel-spanish/spanish.ldf +Language: spanish.ldf 2014/01/29 v5.0m Spanish support from the babel system + +(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.def +File: babel.def 2013/12/03 3.9h Babel common definitions +\babel@savecnt=\count88 +\U@D=\dimen103 +) +\es@datefmt=\count89 +\es@quottoks=\toks19 +\es@quotdepth=\count90 +Package babel Info: Making " an active character on input line 496. +Package babel Info: Making . an active character on input line 599. +Package babel Info: Making < an active character on input line 644. +Package babel Info: Making > an active character on input line 644. +)) +(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +)) +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +Package: times 2005/04/12 PSNFSS-v9.2a (SPQR) +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty +Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements +\every@verbatim=\toks20 +\verbatim@line=\toks21 +\verbatim@in@stream=\read1 +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks22 +) +\lst@mode=\count91 +\lst@gtempboxa=\box26 +\lst@token=\toks23 +\lst@length=\count92 +\lst@currlwidth=\dimen104 +\lst@column=\count93 +\lst@pos=\count94 +\lst@lostspace=\dimen105 +\lst@width=\dimen106 +\lst@newlines=\count95 +\lst@lineno=\count96 +\lst@maxwidth=\dimen107 + +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2013/08/26 1.5b (Carsten Heinz) +\c@lstnumber=\count97 +\lst@skipnumbers=\count98 +\lst@framebox=\box27 +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2013/08/26 1.5b listings configuration +)) +Package: listings 2013/08/26 1.5b (Carsten Heinz) + +(/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count99 +\calc@Bcount=\count100 +\calc@Adimen=\dimen108 +\calc@Bdimen=\dimen109 +\calc@Askip=\skip43 +\calc@Bskip=\skip44 +LaTeX Info: Redefining \setlength on input line 76. +LaTeX Info: Redefining \addtolength on input line 77. +\calc@Ccount=\count101 +\calc@Cskip=\skip45 +) +(/usr/share/texlive/texmf-dist/tex/latex/setspace/setspace.sty +Package: setspace 2011/12/19 v6.7a set line spacing +) +(/usr/share/texlive/texmf-dist/tex/latex/base/fixltx2e.sty +Package: fixltx2e 2006/09/13 v1.1m fixes to LaTeX +LaTeX Info: Redefining \em on input line 420. +) +(/usr/share/texlive/texmf-dist/tex/generic/ulem/ulem.sty +\UL@box=\box28 +\UL@hyphenbox=\box29 +\UL@skip=\skip46 +\UL@hook=\toks24 +\UL@height=\dimen110 +\UL@pe=\count102 +\UL@pixel=\dimen111 +\ULC@box=\box30 +Package: ulem 2012/05/18 +\ULdepth=\dimen112 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty +Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC) + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package color Info: Driver file: pdftex.def on input line 130. + +(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) +) +\Gread@gobject=\count103 +)) +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2012/11/06 v6.83m Hypertext links for LaTeX + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty +Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO) + + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty +Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO) +Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO) +Package hobsub Info: Skipping package `infwarerr' (already loaded). +Package hobsub Info: Skipping package `ltxcmds' (already loaded). +Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO) +Package ifvtex Info: VTeX not detected. +Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO) +Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in PDF mode is detected. +Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) +Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) +Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO) +Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO +) +Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO) +Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO) +) +Package hobsub Info: Skipping package `hobsub' (already loaded). +Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO) +Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO) +Package: xcolor-patch 2011/01/30 xcolor patch +Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO) +Package atveryend Info: \enddocument detected (standard20110627). +Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO) +Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO) +Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty +Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) +) +\@linkdim=\dimen113 +\Hy@linkcounter=\count104 +\Hy@pagecounter=\count105 + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2012/11/06 v6.83m Hyperref: PDFDocEncoding definition (HO) +) +\Hy@SavedSpaceFactor=\count106 + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +Package hyperref Info: Hyper figures OFF on input line 4443. +Package hyperref Info: Link nesting OFF on input line 4448. +Package hyperref Info: Hyper index ON on input line 4451. +Package hyperref Info: Plain pages OFF on input line 4458. +Package hyperref Info: Backreferencing OFF on input line 4463. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4688. +\c@Hy@tempcnt=\count107 + +(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip10 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 5041. +\XeTeXLinkMargin=\dimen114 +\Fld@menulength=\count108 +\Field@Width=\dimen115 +\Fld@charsize=\dimen116 +Package hyperref Info: Hyper figures OFF on input line 6295. +Package hyperref Info: Link nesting OFF on input line 6300. +Package hyperref Info: Hyper index ON on input line 6303. +Package hyperref Info: backreferencing OFF on input line 6310. +Package hyperref Info: Link coloring OFF on input line 6315. +Package hyperref Info: Link coloring with OCG OFF on input line 6320. +Package hyperref Info: PDF/A mode OFF on input line 6325. +LaTeX Info: Redefining \ref on input line 6365. +LaTeX Info: Redefining \pageref on input line 6369. +\Hy@abspage=\count109 +\c@Item=\count110 +\c@Hfootnote=\count111 +) + +Package hyperref Message: Driver (autodetected): hpdftex. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2012/11/06 v6.83m Hyperref driver for pdfTeX +\Fld@listcount=\count112 +\c@bookmark@seq@number=\count113 + +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty +Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +82. +) +\Hy@SectionHShift=\skip47 +) +(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +)) +(/usr/share/texmf/tex/latex/xcolor/xcolor.sty +Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +LaTeX Info: Redefining \color on input line 702. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. +Package xcolor Info: Model `RGB' extended on input line 1353. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. +) +(/usr/share/texlive/texmf-dist/tex/latex/tocvsec2/tocvsec2.sty +Package: tocvsec2 2011/08/07 v1.3 variable ToC section entries + +(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) +) +\c@max@tocdepth=\count114 +\c@max@secnumdepth=\count115 +) +(/usr/share/texlive/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count116 +\float@exts=\toks25 +\float@box=\box31 +\@float@everytoks=\toks26 +\@floatcapt=\box32 +) +(/usr/share/texlive/texmf-dist/tex/latex/tocbibind/tocbibind.sty +Package: tocbibind 2010/10/13 v1.5k extra ToC listings +Package tocbibind Info: The document has section divisions on input line 50. + + +Package tocbibind Note: Using section or other style headings. + +) (/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2013/01/14 v2.14 AMS math features +\@mathmargin=\skip48 + +For additional information on amsmath, use the `?' option. +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2000/06/29 v2.01 + +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 +\@emptytoks=\toks27 +\ex@=\dimen117 +)) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d +\pmbraise@=\dimen118 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 1999/12/14 v2.01 operator names +) +\inf@bad=\count117 +LaTeX Info: Redefining \frac on input line 210. +\uproot@=\count118 +\leftroot@=\count119 +LaTeX Info: Redefining \overline on input line 306. +\classnum@=\count120 +\DOTSCASE@=\count121 +LaTeX Info: Redefining \ldots on input line 378. +LaTeX Info: Redefining \dots on input line 381. +LaTeX Info: Redefining \cdots on input line 466. +\Mathstrutbox@=\box33 +\strutbox@=\box34 +\big@size=\dimen119 +LaTeX Font Info: Redeclaring font encoding OML on input line 566. +LaTeX Font Info: Redeclaring font encoding OMS on input line 567. +\macc@depth=\count122 +\c@MaxMatrixCols=\count123 +\dotsspace@=\muskip11 +\c@parentequation=\count124 +\dspbrk@lvl=\count125 +\tag@help=\toks28 +\row@=\count126 +\column@=\count127 +\maxfields@=\count128 +\andhelp@=\toks29 +\eqnshift@=\dimen120 +\alignsep@=\dimen121 +\tagshift@=\dimen122 +\tagwidth@=\dimen123 +\totwidth@=\dimen124 +\lineht@=\dimen125 +\@envbody=\toks30 +\multlinegap=\skip49 +\multlinetaggap=\skip50 +\mathdisplay@stack=\toks31 +LaTeX Info: Redefining \[ on input line 2665. +LaTeX Info: Redefining \] on input line 2666. +) +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2005/09/27 v1.99g Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71. + +(/usr/share/texlive/texmf-dist/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +) +LaTeX Info: Redefining \oldstylenums on input line 266. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310. +Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 311. +Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 312. +Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 313. +Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 314. +Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 315. +Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 316. +Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 317. +Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 318. +Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 319. +Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 320. +Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 321. +Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 322. +Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 323. +Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 324. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 325. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 326. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 327. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 328. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 329. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 330. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 331. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 332. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 333. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 334. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 335. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 336. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 337. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 338. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 339. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 340. +) +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty +Package: caption 2013/05/02 v3.3-89 Customizing captions (AR) + +(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty +Package: caption3 2013/05/02 v1.6-88 caption3 kernel (AR) +Package caption3 Info: TeX engine: e-TeX on input line 57. +\captionmargin=\dimen126 +\captionmargin@=\dimen127 +\captionwidth=\dimen128 +\caption@tempdima=\dimen129 +\caption@indent=\dimen130 +\caption@parindent=\dimen131 +\caption@hangindent=\dimen132 +) +\c@ContinuedFloat=\count129 +Package caption Info: float package is loaded. +Package caption Info: hyperref package is loaded. +Package caption Info: listings package is loaded. +) +(/usr/share/texlive/texmf-dist/tex/latex/booktabs/booktabs.sty +Package: booktabs 2005/04/14 v1.61803 publication quality tables +\heavyrulewidth=\dimen133 +\lightrulewidth=\dimen134 +\cmidrulewidth=\dimen135 +\belowrulesep=\dimen136 +\belowbottomsep=\dimen137 +\aboverulesep=\dimen138 +\abovetopsep=\dimen139 +\cmidrulesep=\dimen140 +\cmidrulekern=\dimen141 +\defaultaddspace=\dimen142 +\@cmidla=\count130 +\@cmidlb=\count131 +\@aboverulesep=\dimen143 +\@belowrulesep=\dimen144 +\@thisruleclass=\count132 +\@lastruleclass=\count133 +\@thisrulewidth=\dimen145 +) +(/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +\bigstrutjot=\dimen146 +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty +Package: multicol 2011/06/27 v1.7a multicolumn formatting (FMi) +\c@tracingmulticols=\count134 +\mult@box=\box35 +\multicol@leftmargin=\dimen147 +\c@unbalance=\count135 +\c@collectmore=\count136 +\doublecol@number=\count137 +\multicoltolerance=\count138 +\multicolpretolerance=\count139 +\full@width=\dimen148 +\page@free=\dimen149 +\premulticols=\dimen150 +\postmulticols=\dimen151 +\multicolsep=\skip51 +\multicolbaselineskip=\skip52 +\partial@page=\box36 +\last@line=\box37 +\mult@rightbox=\box38 +\mult@grightbox=\box39 +\mult@gfirstbox=\box40 +\mult@firstbox=\box41 +\@tempa=\box42 +\@tempa=\box43 +\@tempa=\box44 +\@tempa=\box45 +\@tempa=\box46 +\@tempa=\box47 +\@tempa=\box48 +\@tempa=\box49 +\@tempa=\box50 +\@tempa=\box51 +\@tempa=\box52 +\@tempa=\box53 +\@tempa=\box54 +\@tempa=\box55 +\@tempa=\box56 +\@tempa=\box57 +\@tempa=\box58 +\c@columnbadness=\count140 +\c@finalcolumnbadness=\count141 +\last@try=\dimen152 +\multicolovershoot=\dimen153 +\multicolundershoot=\dimen154 +\mult@nat@firstbox=\box59 +\colbreak@box=\box60 +\multicol@sort@counter=\count142 +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/bm.sty +Package: bm 2004/02/26 v1.1c Bold Symbol Support (DPC/FMi) +\symboldoperators=\mathgroup6 +\symboldletters=\mathgroup7 +\symboldsymbols=\mathgroup8 +LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 138. +LaTeX Info: Redefining \bm on input line 204. +) +(/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +Package: pdfpages 2013/08/25 v0.4v Insert pages of external PDF documents (AM) + +(/usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +Package: eso-pic 2013/10/06 v2.0d eso-pic (RN) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg +File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 91. +) +\Gin@req@height=\dimen155 +\Gin@req@width=\dimen156 +) +(/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +File: pppdftex.def 2013/08/25 v0.4v Pdfpages driver for pdfTeX (AM) +) +\AM@pagebox=\box61 +\AM@toc@title=\toks32 +\c@AM@survey=\count143 +\AM@templatesizebox=\box62 +) +(/usr/share/texlive/texmf-dist/tex/latex/acronym/acronym.sty +Package: acronym 2012/10/29 v1.38 Support for acronyms (Tobias Oetiker) + +(/usr/share/texlive/texmf-dist/tex/latex/bigfoot/suffix.sty +Package: suffix 2006/07/15 1.5 Variant command support +) +(/usr/share/texlive/texmf-dist/tex/generic/xstring/xstring.sty +(/usr/share/texlive/texmf-dist/tex/generic/xstring/xstring.tex +\@xs@message=\write3 +\integerpart=\count144 +\decimalpart=\count145 +) +Package: xstring 2013/10/13 v1.7c String manipulations (C Tellechea) +) +\AC@clearlist=\toks33 +) +(/usr/share/texlive/texmf-dist/tex/latex/subfig/subfig.sty +Package: subfig 2005/06/28 ver: 1.3 subfig package +\c@KVtest=\count146 +\sf@farskip=\skip53 +\sf@captopadj=\dimen157 +\sf@capskip=\skip54 +\sf@nearskip=\skip55 +\c@subfigure=\count147 +\c@subfigure@save=\count148 +\c@lofdepth=\count149 +\c@subtable=\count150 +\c@subtable@save=\count151 +\c@lotdepth=\count152 +\sf@top=\skip56 +\sf@bottom=\skip57 +) +(./TPs_Diplomatura_Linux.aux +LaTeX Info: Redefining \. on input line 26. +LaTeX Info: Redefining \% on input line 26. +) +\openout1 = `TPs_Diplomatura_Linux.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 89. +LaTeX Font Info: ... okay on input line 89. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 89. +LaTeX Font Info: ... okay on input line 89. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 89. +LaTeX Font Info: ... okay on input line 89. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 89. +LaTeX Font Info: ... okay on input line 89. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 89. +LaTeX Font Info: ... okay on input line 89. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 89. +LaTeX Font Info: ... okay on input line 89. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 89. +LaTeX Font Info: ... okay on input line 89. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 89. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 89. + +(/usr/share/texlive/texmf-dist/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 89. +LaTeX Font Info: Try loading font information for T1+ptm on input line 89. + +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ptm.fd +File: t1ptm.fd 2001/06/04 font definitions for T1/ptm. +) +(/usr/share/texlive/texmf-dist/tex/latex/ucs/ucsencs.def +File: ucsencs.def 2011/01/21 Fixes to fontencodings LGR, T3 +) +LaTeX Info: Redefining \. on input line 89. +LaTeX Info: Redefining \% on input line 89. +\c@lstlisting=\count153 + +(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count154 +\scratchdimen=\dimen158 +\scratchbox=\box63 +\nofMPsegments=\count155 +\nofMParguments=\count156 +\everyMPshowfont=\toks34 +\MPscratchCnt=\count157 +\MPscratchDim=\dimen159 +\MPnumerator=\count158 +\makeMPintoPDFobject=\count159 +\everyMPtoPDFconversion=\toks35 +) +\AtBeginShipoutBox=\box64 +Package hyperref Info: Link coloring OFF on input line 89. + (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section + +(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty +Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO) +) +\c@section@level=\count160 +) +LaTeX Info: Redefining \ref on input line 89. +LaTeX Info: Redefining \pageref on input line 89. +LaTeX Info: Redefining \nameref on input line 89. + +(./TPs_Diplomatura_Linux.out) (./TPs_Diplomatura_Linux.out) +\@outlinefile=\write4 +\openout4 = `TPs_Diplomatura_Linux.out'. + +Package caption Info: Begin \AtBeginDocument code. +Package caption Info: subfig package v1.3 is loaded. +Package caption Info: End \AtBeginDocument code. + +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty +Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty +Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) +) +Package grfext Info: Graphics extension search list: +(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 452. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +(/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uni-0.def +File: uni-0.def 2013/05/13 UCS: Unicode data U+0000..U+00FF +) +LaTeX Font Info: Try loading font information for U+msa on input line 92. + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2013/01/14 v3.01 AMS symbols A +) +LaTeX Font Info: Try loading font information for U+msb on input line 92. + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2013/01/14 v3.01 AMS symbols B +) + +LaTeX Warning: No \author given. + + + +File: /home/delivery/Desktop/DiploLinuxLatex/Figuras/LogoDUI.jpg Graphic file ( +type jpg) + + +Package pdftex.def Info: /home/delivery/Desktop/DiploLinuxLatex/Figuras/LogoDUI +.jpg used on input line 97. +(pdftex.def) Requested size: 180.0pt x 90.57141pt. + + +File: /home/delivery/Desktop/DiploLinuxLatex/Figuras/LogoLinux.jpg Graphic file + (type jpg) + + +Package pdftex.def Info: /home/delivery/Desktop/DiploLinuxLatex/Figuras/LogoLin +ux.jpg used on input line 101. +(pdftex.def) Requested size: 143.9978pt x 85.84343pt. +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <14.4> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 112. +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <10.95> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 122. +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <12> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 126. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 133. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 133. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 133. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 133. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 133. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 133. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 133. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 133. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 133. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 133. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 133. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 133. + [1 + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} ] (./TPs_Diplomatura_Linux.toc +LaTeX Info: Redefining \. on input line 2. +LaTeX Info: Redefining \% on input line 2. +Package acronym Info: Label `acro:gnu' newly defined as it shall be overridden +although it is yet undefined on input line 6. + +Overfull \hbox (23.49051pt too wide) in paragraph at lines 6--6 + [][] [][]\T1/ptm/m/n/10.95 Versin ac-tual de ker-nel es-ta-ble en [][][] GNU' +s Not Unix! ([])[]/Linux[] [][] + [] + +Package acronym Info: Label `acro:gnome' newly defined as it shall be overridde +n +although it is yet undefined on input line 11. +Package acronym Info: Label `acro:gtk' newly defined as it shall be overridden +although it is yet undefined on input line 17. + +Overfull \hbox (4.12796pt too wide) in paragraph at lines 17--17 + [][] [][]\T1/ptm/m/n/10.95 Consolas vir-tua-les y [][][] Grap-hi-cal user in-t +er-fa-ce tool-kit ([])[]- + [] + +Package acronym Info: Label `acro:cd' newly defined as it shall be overridden +although it is yet undefined on input line 20. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 41. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 41. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 41. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 41. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 41. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 41. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 41. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 41. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 41. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 41. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 41. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 41. +[2] +LaTeX Font Info: Try loading font information for T1+pcr on input line 74. + (/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1pcr.fd +File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. +) +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 83. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 83. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 83. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 83. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 83. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 83. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 83. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 83. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 83. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 83. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 83. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 83. + [3] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 124. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 124. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 124. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 124. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 124. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 124. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 124. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 124. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 124. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 124. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 124. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 124. + [4]) +\tf@toc=\write5 +\openout5 = `TPs_Diplomatura_Linux.toc'. + + +(./TPs_Diplomatura_Linux.lof +LaTeX Info: Redefining \. on input line 1. +LaTeX Info: Redefining \% on input line 1. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 5. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 5. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 5. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 5. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 5. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 5. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 5. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 5. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 5. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 5. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 5. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 5. + [5]) +\tf@lof=\write6 +\openout6 = `TPs_Diplomatura_Linux.lof'. + + (./TPs_Diplomatura_Linux.lot +LaTeX Info: Redefining \. on input line 1. +LaTeX Info: Redefining \% on input line 1. +) +\tf@lot=\write7 +\openout7 = `TPs_Diplomatura_Linux.lot'. + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 142. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 142. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 142. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 142. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 142. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 142. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 142. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 142. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 142. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 142. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 142. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 142. + [6] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 149. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 149. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 149. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 149. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 149. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 149. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 166. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 166. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 166. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 166. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 166. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 166. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 167. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 167. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 167. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 167. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 167. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 167. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 183. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 183. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 183. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 183. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 183. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 183. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 193. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 193. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 193. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 193. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 193. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 193. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 193. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 193. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 193. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 193. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 193. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 193. + [1] +Underfull \hbox (badness 10000) in paragraph at lines 216--217 + + [] + +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <8> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 220. + +Overfull \hbox (14.32527pt too wide) in paragraph at lines 226--226 + []\T1/pcr/m/n/8 Linux delivery-laptop 3.16.0-33-generic #44~14.04.1-Ubuntu SMP + Fri Mar[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 227. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 227. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 227. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 227. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 227. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 227. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 227. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 227. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 227. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 227. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 227. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 227. +[2] +LaTeX Font Info: Font shape `T1/ptm/bx/it' in size <10.95> not available +(Font) Font shape `T1/ptm/b/it' tried instead on input line 233. + +Overfull \hbox (69.83762pt too wide) in paragraph at lines 233--236 +\T1/ptm/m/n/10.95 pue-de ve-ri-fi-car-se en el si-tio web ofi-cial de Li-nux Ke +r-nel Or-ga-ni-za-tion Inc (https://www.kernel.org/). + [] + + + +File: /home/delivery/Desktop/DiploLinuxLatex/Figuras/LinuxKernel.jpg Graphic fi +le (type jpg) + + +Package pdftex.def Info: /home/delivery/Desktop/DiploLinuxLatex/Figuras/LinuxKe +rnel.jpg used on input line 240. +(pdftex.def) Requested size: 360.0pt x 310.2179pt. +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <9> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 241. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 244. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 244. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 244. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 244. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 244. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 244. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 244. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 244. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 244. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 244. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 244. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 244. + [3 ] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 246. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 246. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 246. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 246. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 246. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 246. +Package acronym Info: Label `acro:eol' newly defined as it shall be overridden +although it is yet undefined on input line 251. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 260. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 260. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 260. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 260. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 260. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 260. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 262. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 262. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 262. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 262. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 262. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 262. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 277. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 277. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 277. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 277. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 277. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 277. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 279. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 279. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 279. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 279. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 279. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 279. + + +File: /home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad3.jpg Graphic fil +e (type jpg) + + +Package pdftex.def Info: /home/delivery/Desktop/DiploLinuxLatex/Figuras/activid +ad3.jpg used on input line 288. +(pdftex.def) Requested size: 360.0pt x 199.7762pt. + + +LaTeX Warning: `!h' float specifier changed to `!ht'. + + + +File: /home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad3b.jpg Graphic fi +le (type jpg) + + +Package pdftex.def Info: /home/delivery/Desktop/DiploLinuxLatex/Figuras/activid +ad3b.jpg used on input line 295. +(pdftex.def) Requested size: 360.0pt x 258.63966pt. + + +LaTeX Warning: `!h' float specifier changed to `!ht'. + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 301. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 301. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 301. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 301. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 301. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 301. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 301. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 301. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 301. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 301. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 301. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 301. +[4 + +] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 302. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 302. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 302. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 302. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 302. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 302. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 304. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 304. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 304. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 304. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 304. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 304. + +Underfull \hbox (badness 10000) in paragraph at lines 312--313 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 313. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 313. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 313. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 313. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 313. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 313. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 313. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 313. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 313. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 313. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 313. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 313. +[5 ] + +File: /home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4a.jpg Graphic fi +le (type jpg) + + +Package pdftex.def Info: /home/delivery/Desktop/DiploLinuxLatex/Figuras/activid +ad4a.jpg used on input line 328. +(pdftex.def) Requested size: 360.0pt x 350.6353pt. + + +LaTeX Warning: `!h' float specifier changed to `!ht'. + + + +File: /home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4b.jpg Graphic fi +le (type jpg) + + +Package pdftex.def Info: /home/delivery/Desktop/DiploLinuxLatex/Figuras/activid +ad4b.jpg used on input line 335. +(pdftex.def) Requested size: 360.0pt x 226.55748pt. + + +LaTeX Warning: `!h' float specifier changed to `!ht'. + + + +File: /home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4c.jpg Graphic fi +le (type jpg) + + +Package pdftex.def Info: /home/delivery/Desktop/DiploLinuxLatex/Figuras/activid +ad4c.jpg used on input line 342. +(pdftex.def) Requested size: 360.0pt x 193.36719pt. + + +LaTeX Warning: `!h' float specifier changed to `!ht'. + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 346. +[6] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 346. + [7 ] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 346. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 346. + +[8 ] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 349. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 349. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 349. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 349. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 349. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 349. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 351. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 351. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 351. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 351. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 351. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 351. + + +File: /home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad5.jpg Graphic fil +e (type jpg) + + +Package pdftex.def Info: /home/delivery/Desktop/DiploLinuxLatex/Figuras/activid +ad5.jpg used on input line 356. +(pdftex.def) Requested size: 360.0pt x 229.12581pt. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 363. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 363. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 363. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 363. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 363. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 363. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 363. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 363. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 363. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 363. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 363. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 363. + [9 + + ] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 364. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 364. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 364. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 364. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 364. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 364. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 366. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 366. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 366. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 366. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 366. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 366. + +Underfull \hbox (badness 10000) in paragraph at lines 370--371 + + [] + +Package acronym Info: Label `acro:gui' newly defined as it shall be overridden +although it is yet undefined on input line 373. +Package acronym Info: Label `acro:kde' newly defined as it shall be overridden +although it is yet undefined on input line 393. + +Underfull \hbox (badness 10000) in paragraph at lines 375--395 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 396--397 + + [] + +(/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uni-32.def +File: uni-32.def 2013/05/13 UCS: Unicode data U+2000..U+20FF +) +Overfull \hbox (7.16818pt too wide) in paragraph at lines 406--407 +[]\T1/ptm/m/it/10.95 ''\T1/ptm/b/it/10.95 Virtual con-so-les: \T1/ptm/m/it/10.9 +5 In the de-fault De-bian sys-tem, the-re are \T1/ptm/b/it/10.95 six swit-cha-b +le VT100- + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 408--409 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 409. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 409. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 409. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 409. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 409. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 409. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 409. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 409. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 409. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 409. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 409. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 409. +[10] + +File: /home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad6.jpg Graphic fil +e (type jpg) + + +Package pdftex.def Info: /home/delivery/Desktop/DiploLinuxLatex/Figuras/activid +ad6.jpg used on input line 415. +(pdftex.def) Requested size: 360.0pt x 269.43913pt. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 419. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 419. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 419. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 419. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 419. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 419. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 419. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 419. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 419. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 419. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 419. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 419. + [11 ] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 422. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 422. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 422. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 422. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 422. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 422. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 433. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 433. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 433. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 433. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 433. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 433. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 435. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 435. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 435. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 435. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 435. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 435. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 469. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 469. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 469. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 469. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 469. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 469. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 471. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 471. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 471. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 471. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 471. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 471. +Package acronym Info: Label `acro:sudo' newly defined as it shall be overridden + +although it is yet undefined on input line 476. + +Underfull \hbox (badness 10000) in paragraph at lines 476--477 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 477. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 477. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 477. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 477. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 477. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 477. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 477. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 477. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 477. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 477. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 477. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 477. +[12 + +] +Underfull \hbox (badness 10000) in paragraph at lines 478--483 + + [] + + +Overfull \hbox (58.95026pt too wide) in paragraph at lines 526--526 + []\T1/pcr/m/n/8 Defaults secure_path=``/usr/local/sbin:/usr/local/bin:/usr/sbi +n:/usr/bin:/sbin:/bin``[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 540. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 540. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 540. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 540. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 540. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 540. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 540. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 540. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 540. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 540. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 540. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 540. +[13] +Underfull \hbox (badness 10000) in paragraph at lines 574--578 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 595--598 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 599. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 599. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 599. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 599. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 599. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 599. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 599. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 599. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 599. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 599. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 599. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 599. +[14] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 615. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 615. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 615. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 615. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 615. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 615. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 617. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 617. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 617. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 617. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 617. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 617. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 630. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 630. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 630. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 630. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 630. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 630. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 632. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 632. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 632. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 632. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 632. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 632. +LaTeX Font Info: Font shape `T1/ptm/bx/n' in size <6> not available +(Font) Font shape `T1/ptm/b/n' tried instead on input line 641. + +Overfull \hbox (32.54903pt too wide) in paragraph at lines 647--647 + []\T1/pcr/m/n/6 bash chvt fgconsole lesspipe nc + ntfstruncate sed[] + [] + + +Overfull \hbox (46.94899pt too wide) in paragraph at lines 648--648 + []\T1/pcr/m/n/6 bunzip2 cp fgrep ln nc +.openbsd ntfswipe setfacl[] + [] + + +Overfull \hbox (46.94899pt too wide) in paragraph at lines 649--649 + []\T1/pcr/m/n/6 busybox cpio findmnt loadkeys ne +tcat open setfont[] + [] + + +Overfull \hbox (50.54898pt too wide) in paragraph at lines 650--650 + []\T1/pcr/m/n/6 bzcat dash fuser login ne +tstat openvt setupcon[] + [] + + +Overfull \hbox (28.94904pt too wide) in paragraph at lines 651--651 + []\T1/pcr/m/n/6 bzcmp date fusermount loginctl ni +sdomainname pidof sh[] + [] + + +Overfull \hbox (57.74896pt too wide) in paragraph at lines 652--652 + []\T1/pcr/m/n/6 bzdiff dbus-cleanup-sockets getfacl lowntfs-3g nt +fs-3g ping sh.distrib[] + [] + + +Overfull \hbox (39.74901pt too wide) in paragraph at lines 653--653 + []\T1/pcr/m/n/6 bzegrep dbus-daemon grep ls nt +fs-3g.probe ping6 sleep[] + [] + + +Overfull \hbox (28.94904pt too wide) in paragraph at lines 654--654 + []\T1/pcr/m/n/6 bzexe dbus-uuidgen gunzip lsblk nt +fs-3g.secaudit plymouth ss[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 654. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 654. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 654. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 654. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 654. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 654. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 654. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 654. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 654. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 654. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 654. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 654. +[15] +Overfull \hbox (54.14897pt too wide) in paragraph at lines 655--655 + []\T1/pcr/m/n/6 bzfgrep dd gzexe lsmod nt +fs-3g.usermap plymouth-upstart-bridge static-sh[] + [] + + +Overfull \hbox (36.14902pt too wide) in paragraph at lines 656--656 + []\T1/pcr/m/n/6 bzgrep df gzip mkdir nt +fscat ps stty[] + [] + + +Overfull \hbox (28.94904pt too wide) in paragraph at lines 657--657 + []\T1/pcr/m/n/6 bzip2 dir hostname mknod nt +fsck pwd su[] + [] + + +Overfull \hbox (36.14902pt too wide) in paragraph at lines 658--658 + []\T1/pcr/m/n/6 bzip2recover dmesg ip mktemp nt +fscluster rbash sync[] + [] + + +Overfull \hbox (39.74901pt too wide) in paragraph at lines 659--659 + []\T1/pcr/m/n/6 bzless dnsdomainname kbd_mode more nt +fscmp readlink tailf[] + [] + + +Overfull \hbox (32.54903pt too wide) in paragraph at lines 660--660 + []\T1/pcr/m/n/6 bzmore domainname kill mount nt +fsdump_logfile red tar[] + [] + + +Overfull \hbox (50.54898pt too wide) in paragraph at lines 661--661 + []\T1/pcr/m/n/6 cat dumpkeys kmod mountpoint nt +fsfix rm tempfile[] + [] + + +Overfull \hbox (39.74901pt too wide) in paragraph at lines 662--662 + []\T1/pcr/m/n/6 chacl echo less mt nt +fsinfo rmdir touch[] + [] + + +Overfull \hbox (36.14902pt too wide) in paragraph at lines 663--663 + []\T1/pcr/m/n/6 chgrp ed lessecho mt-gnu nt +fsls rnano true[] + [] + + +Overfull \hbox (46.94899pt too wide) in paragraph at lines 664--664 + []\T1/pcr/m/n/6 chmod egrep lessfile mv nt +fsmftalloc running-in-container udevadm[] + [] + + +Overfull \hbox (28.94904pt too wide) in paragraph at lines 679--679 + []\T1/pcr/m/n/6 acpi_available e2fsck fstrim-all iptables-app +ly mkfs.bfs nameif rmmod[] + [] + + +Overfull \hbox (28.94904pt too wide) in paragraph at lines 680--680 + []\T1/pcr/m/n/6 agetty e2image gdisk iptables-res +tore mkfs.cramfs ntfsclone route[] + [] + + +Overfull \hbox (32.54903pt too wide) in paragraph at lines 681--681 + []\T1/pcr/m/n/6 alsa e2label getcap iptables-sav +e mkfs.ext2 ntfscp rtacct[] + [] + + +Overfull \hbox (28.94904pt too wide) in paragraph at lines 682--682 + []\T1/pcr/m/n/6 apm_available e2undo getpcaps iptunnel + mkfs.ext3 ntfslabel rtmon[] + [] + + +Overfull \hbox (39.74901pt too wide) in paragraph at lines 683--683 + []\T1/pcr/m/n/6 apparmor_parser ethtool getty isosize + mkfs.ext4 ntfsresize runlevel[] + [] + + +Overfull \hbox (32.54903pt too wide) in paragraph at lines 684--684 + []\T1/pcr/m/n/6 badblocks fatlabel halt iwconfig + mkfs.ext4dev ntfsundelete setcap[] + [] + + +Overfull \hbox (39.74901pt too wide) in paragraph at lines 685--685 + []\T1/pcr/m/n/6 biosdevname fdisk hdparm iwevent + mkfs.fat on_ac_power setvtrgb[] + [] + + +Overfull \hbox (32.54903pt too wide) in paragraph at lines 686--686 + []\T1/pcr/m/n/6 blkid findfs hwclock iwgetid + mkfs.minix pam_tally sfdisk[] + [] + + +Overfull \hbox (32.54903pt too wide) in paragraph at lines 687--687 + []\T1/pcr/m/n/6 blockdev fixparts ifconfig iwlist + mkfs.msdos pam_tally2 sgdisk[] + [] + + +Overfull \hbox (54.14897pt too wide) in paragraph at lines 688--688 + []\T1/pcr/m/n/6 bridge fsck ifdown iwpriv + mkfs.ntfs parted shadowconfig[] + [] + + +Overfull \hbox (39.74901pt too wide) in paragraph at lines 689--689 + []\T1/pcr/m/n/6 capsh fsck.cramfs ifquery iwspy + mkfs.vfat partprobe shutdown[] + [] + + +Overfull \hbox (39.74901pt too wide) in paragraph at lines 690--690 + []\T1/pcr/m/n/6 cfdisk fsck.ext2 ifup kbdrate + mkhomedir_helper pivot_root slattach[] + [] + + +Overfull \hbox (28.94904pt too wide) in paragraph at lines 691--691 + []\T1/pcr/m/n/6 cgdisk fsck.ext3 init killall5 + mkntfs plipconfig start[] + [] + + +Overfull \hbox (39.74901pt too wide) in paragraph at lines 692--692 + []\T1/pcr/m/n/6 crda fsck.ext4 initctl ldconfig + mkswap plymouthd startpar[] + [] + + +Overfull \hbox (93.74887pt too wide) in paragraph at lines 693--693 + []\T1/pcr/m/n/6 ctrlaltdel fsck.ext4dev insmod ldconfig.rea +l mntctl poweroff startpar-upstart-inject[] + [] + + +Overfull \hbox (72.14893pt too wide) in paragraph at lines 694--694 + []\T1/pcr/m/n/6 debugfs fsck.fat installkernel logsave + modinfo rarp start-stop-daemon[] + [] + + +Overfull \hbox (32.54903pt too wide) in paragraph at lines 695--695 + []\T1/pcr/m/n/6 depmod fsck.minix ip losetup + modprobe raw status[] + [] + + +Overfull \hbox (25.34904pt too wide) in paragraph at lines 696--696 + []\T1/pcr/m/n/6 dhclient fsck.msdos ip6tables lsmod + mountall reboot stop[] + [] + + +Overfull \hbox (36.14902pt too wide) in paragraph at lines 697--697 + []\T1/pcr/m/n/6 dhclient-script fsck.nfs ip6tables-apply MAKEDEV + mount.fuse regdbdump sulogin[] + [] + + +Overfull \hbox (43.349pt too wide) in paragraph at lines 698--698 + []\T1/pcr/m/n/6 dmsetup fsck.vfat ip6tables-restore mii-tool + mount.lowntfs-3g reload swaplabel[] + [] + + +Overfull \hbox (36.14902pt too wide) in paragraph at lines 699--699 + []\T1/pcr/m/n/6 dosfsck fsfreeze ip6tables-save mkdosfs + mount.ntfs resize2fs swapoff[] + [] + + +Overfull \hbox (32.54903pt too wide) in paragraph at lines 700--700 + []\T1/pcr/m/n/6 dosfslabel fstab-decode ipmaddr mke2fs + mount.ntfs-3g resolvconf swapon[] + [] + + +Overfull \hbox (50.54898pt too wide) in paragraph at lines 701--701 + []\T1/pcr/m/n/6 dumpe2fs fstrim iptables mkfs + mount.vboxsf restart switch_root[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 731. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 731. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 731. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 731. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 731. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 731. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 733. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 733. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 733. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 733. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 733. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 733. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 736. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 736. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 736. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 736. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 736. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 736. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 736. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 736. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 736. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 736. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 736. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 736. +[16] +Overfull \hbox (10.95023pt too wide) in paragraph at lines 768--768 + []\T1/pcr/m/n/8 -rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient- +clipboard.pid[] + [] + + +Overfull \hbox (1.35022pt too wide) in paragraph at lines 769--769 + []\T1/pcr/m/n/8 -rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient- +display.pid[] + [] + + +Overfull \hbox (20.55023pt too wide) in paragraph at lines 770--770 + []\T1/pcr/m/n/8 -rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient- +draganddrop.pid[] + [] + + +Overfull \hbox (6.15022pt too wide) in paragraph at lines 771--771 + []\T1/pcr/m/n/8 -rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient- +seamless.pid[] + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 779--782 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 783--784 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 785--787 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 793. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 793. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 793. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 793. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 793. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 793. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 793. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 793. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 793. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 793. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 793. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 793. +[17] +Underfull \hbox (badness 10000) in paragraph at lines 798--800 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 817--819 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 822. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 822. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 822. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 822. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 822. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 822. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 824. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 824. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 824. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 824. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 824. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 824. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 843. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 843. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 843. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 843. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 843. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 843. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 843. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 843. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 843. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 843. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 843. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 843. +[18] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 872. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 872. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 872. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 872. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 872. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 872. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 874. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 874. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 874. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 874. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 874. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 874. + +Overfull \hbox (172.16936pt too wide) in paragraph at lines 891--891 +[]\T1/pcr/m/n/10.95 curso@ubuntu:~$ mkdir ./raiz ./raiz/bin ./raiz/home ./raiz/ +home/BarrireroExequiel[] + [] + + +Overfull \hbox (40.76952pt too wide) in paragraph at lines 892--892 +[]\T1/pcr/m/n/10.95 ./raiz/home/Desktop ./raiz/home/bin ./raiz/var ./raiz/var/l +og[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 896. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 896. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 896. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 896. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 896. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 896. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 896. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 896. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 896. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 896. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 896. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 896. +[19] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 922. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 922. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 922. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 922. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 922. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 922. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 924. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 924. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 924. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 924. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 924. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 924. + +Overfull \hbox (7.91956pt too wide) in paragraph at lines 929--929 +[] \T1/pcr/m/n/10.95 curso@ubuntu:~$ touch /home/curso/raiz/var/log/messages + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 937. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 937. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 937. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 937. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 937. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 937. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 939. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 939. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 939. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 939. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 939. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 939. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 945. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 945. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 945. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 945. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 945. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 945. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 945. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 945. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 945. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 945. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 945. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 945. +[20] +Overfull \hbox (40.76952pt too wide) in paragraph at lines 950--950 +[]\T1/pcr/m/n/10.95 curso@ubuntu:~$ chmod g+rwx /home/curso/raiz/var/log/messag +es[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 958. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 958. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 958. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 958. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 958. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 958. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 960. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 960. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 960. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 960. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 960. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 960. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 973. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 973. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 973. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 973. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 973. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 973. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 975. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 975. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 975. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 975. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 975. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 975. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1000. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1000. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1000. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1000. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1000. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1000. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1000. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1000. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1000. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1000. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1000. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1000. +[21] +Overfull \hbox (1.35022pt too wide) in paragraph at lines 1005--1005 + []\T1/pcr/m/n/8 lrwxrwxrwx 1 root root 15 Sep 29 19:21 blkid.tab -> /dev +/.blkid.tab[] + [] + + +Overfull \hbox (20.55023pt too wide) in paragraph at lines 1018--1018 + []\T1/pcr/m/n/8 lrwxrwxrwx 1 root root 23 Sep 29 19:21 vtrgb -> /etc/alt +ernatives/vtrgb[] + [] + + +Overfull \hbox (53.9095pt too wide) in paragraph at lines 1045--1045 +[] \T1/pcr/m/n/10.95 Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECT +ORY.[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1052. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1052. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1052. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1052. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1052. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1052. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1054. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1054. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1054. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1054. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1054. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1054. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1059. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1059. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1059. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1059. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1059. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1059. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1059. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1059. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1059. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1059. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1059. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1059. +[22] +Overfull \hbox (10.95023pt too wide) in paragraph at lines 1062--1062 + []\T1/pcr/m/n/8 1968 -rw-rw-r-- 1 curso curso 2013003 Sep 21 21:13 BarrireroEx +equiel.tar.gz[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1079. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1079. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1079. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1079. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1079. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1079. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1081. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1081. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1081. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1081. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1081. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1081. + +Overfull \hbox (23.7988pt too wide) in paragraph at lines 1083--1084 +[]\T1/ptm/b/n/10.95 Copie el di-rec-to-rio /ho-me/-cur-so/-roo-t/-va-r/-log a / +ho-me/-cur-so/-roo-t/-va-r/-log.original + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1105. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1105. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1105. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1105. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1105. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1105. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1107. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1107. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1107. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1107. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1107. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1107. + +Underfull \hbox (badness 10000) in paragraph at lines 1124--1125 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1126. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1126. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1126. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1126. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1126. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1126. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1126. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1126. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1126. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1126. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1126. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1126. +[23] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1176. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1176. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1176. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1176. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1176. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1176. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1176. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1176. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1176. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1176. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1176. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1176. + [24] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1214. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1214. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1214. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1214. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1214. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1214. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1216. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1216. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1216. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1216. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1216. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1216. +LaTeX Font Info: Font shape `T1/pcr/bx/n' in size <10.95> not available +(Font) Font shape `T1/pcr/b/n' tried instead on input line 1220. + +Underfull \hbox (badness 10000) in paragraph at lines 1220--1221 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1220--1221 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1222--1227 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1227. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1227. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1227. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1227. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1227. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1227. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1227. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1227. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1227. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1227. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1227. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1227. +[25] +Underfull \hbox (badness 10000) in paragraph at lines 1232--1233 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1241. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1241. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1241. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1241. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1241. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1241. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1243. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1243. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1243. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1243. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1243. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1243. + +Underfull \hbox (badness 10000) in paragraph at lines 1264--1265 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1273--1276 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1283--1284 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1284. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1284. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1284. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1284. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1284. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1284. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1284. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1284. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1284. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1284. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1284. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1284. +[26] +Underfull \hbox (badness 10000) in paragraph at lines 1305--1306 + + [] + + +Overfull \hbox (16.5353pt too wide) in paragraph at lines 1312--1316 +[]\T1/ptm/m/n/10.95 SYNOPSIS ch-mod [OP-TION]... MO-DE[,MODE]... FI-LE... ch-mo +d [OP-TION]... + [] + + +Overfull \hbox (41.86461pt too wide) in paragraph at lines 1329--1330 +[]\T1/pcr/m/n/10.95 touch: no se puede efectuar `touch' sobre ^^Schau^^T: Permi +so + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1332--1333 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1337--1338 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1341. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1341. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1341. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1341. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1341. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1341. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1341. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1341. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1341. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1341. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1341. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1341. +[27] +Underfull \hbox (badness 10000) in paragraph at lines 1344--1345 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1349. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1349. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1349. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1349. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1349. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1349. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1349. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1349. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1349. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1349. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1349. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1349. +[28] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1350. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1350. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1350. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1350. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1350. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1350. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1361. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1361. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1361. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1361. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1361. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1361. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1363. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1363. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1363. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1363. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1363. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1363. + +Underfull \hbox (badness 10000) in paragraph at lines 1366--1367 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1368--1371 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1376--1377 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1384--1385 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1386--1388 + + [] + +LaTeX Font Info: Try loading font information for TS1+ptm on input line 1389 +. +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ts1ptm.fd +File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm. +) +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1391. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1391. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1391. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1391. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1391. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1391. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1393. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1393. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1393. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1393. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1393. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1393. + +Underfull \hbox (badness 10000) in paragraph at lines 1397--1398 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1401--1402 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1402. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1402. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1402. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1402. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1402. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1402. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1402. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1402. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1402. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1402. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1402. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1402. +[29] +Underfull \hbox (badness 10000) in paragraph at lines 1403--1407 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1471. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1471. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1471. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1471. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1471. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1471. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1471. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1471. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1471. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1471. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1471. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1471. +[30] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1483. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1483. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1483. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1483. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1483. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1483. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1485. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1485. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1485. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1485. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1485. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1485. + +Overfull \hbox (25.35023pt too wide) in paragraph at lines 1507--1507 + []\T1/pcr/m/n/8 /home/curso/.cache/software-center/icons/tic-tac-toe2:i386-ico +n-64_hmojXQC.png[] + [] + + +Overfull \hbox (15.75023pt too wide) in paragraph at lines 1508--1508 + []\T1/pcr/m/n/8 /home/curso/.cache/software-center/icons/ mycraft-icon-mc-laun +cher.svg64.png[] + [] + + +Overfull \hbox (63.75026pt too wide) in paragraph at lines 1509--1509 + []\T1/pcr/m/n/8 /home/curso/.cache/software-center/icons/audovia:i386-icon-Son +gBuilderColourIcon64.png[] + [] + + +Overfull \hbox (54.15025pt too wide) in paragraph at lines 1511--1511 + []\T1/pcr/m/n/8 /home/curso/.cache/software-center/icons/ my-weather-indicator +:i386-icon-mwi_064.png[] + [] + + +Overfull \hbox (1.35022pt too wide) in paragraph at lines 1515--1515 + []\T1/pcr/m/n/8 /home/curso/.cache/thumbnails/normal/f458b2702111282ba10cca5dd +d511daf.png[] + [] + + +Overfull \hbox (1.35022pt too wide) in paragraph at lines 1516--1516 + []\T1/pcr/m/n/8 /home/curso/.cache/thumbnails/normal/ee9cf2ab26402213d518127e9 +b5b1149.png[] + [] + + +Overfull \hbox (1.35022pt too wide) in paragraph at lines 1517--1517 + []\T1/pcr/m/n/8 /home/curso/.cache/thumbnails/normal/b2bdf6f2a85194544d0558983 +df41eb0.png[] + [] + + +Overfull \hbox (1.35022pt too wide) in paragraph at lines 1518--1518 + []\T1/pcr/m/n/8 /home/curso/.cache/thumbnails/normal/76fbdecd1d2173df80d31f3d4 +a2ca4e3.png[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1523. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1523. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1523. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1523. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1523. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1523. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1525. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1525. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1525. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1525. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1525. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1525. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1534. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1534. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1534. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1534. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1534. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1534. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1534. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1534. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1534. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1534. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1534. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1534. +[31] +Overfull \hbox (5.0331pt too wide) in paragraph at lines 1534--1536 +[]\T1/pcr/m/n/10.95 find -type type_descriptor query \T1/ptm/m/n/10.95 So-me of + the most com-mon des- + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1545--1546 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1561--1562 + + [] + + +Overfull \hbox (51.19952pt too wide) in paragraph at lines 1565--1566 +[]\T1/pcr/m/n/10.95 788884 28 -rwxr-xr-x 1 root root 28176 Mar 10 2014 /bin/ech +o + [] + + +Overfull \hbox (70.9095pt too wide) in paragraph at lines 1569--1570 +[]\T1/pcr/m/n/10.95 144503 4 drwxrwxrwx 8 chris chris 4096 June 23 2014 /home/c +hris + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1569--1570 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1571--1575 + + [] + + +Overfull \hbox (57.76952pt too wide) in paragraph at lines 1578--1579 +[]\T1/pcr/m/n/10.95 685035 0 -rw-rw-r-- 1 chris chris 0 Dec 30 2014 /tmp/write/ +abc + [] + + +Overfull \hbox (70.9095pt too wide) in paragraph at lines 1582--1583 +[]\T1/pcr/m/n/10.95 266230 0 -rw-rw-rw- 1 chris chris 0 Dec 20 2014 ./LINUX_BIB +LE/a + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1582--1583 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1583. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1583. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1583. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1583. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1583. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1583. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1583. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1583. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1583. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1583. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1583. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1583. +[32] +Overfull \hbox (73.35027pt too wide) in paragraph at lines 1596--1596 + [] \T1/pcr/m/n/8 23477 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/sys/kernel/ns_last_pid[] + [] + + +Overfull \hbox (68.55026pt too wide) in paragraph at lines 1597--1597 + [] \T1/pcr/m/n/8 24246 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/1/task/1/attr/current[] + [] + + +Overfull \hbox (54.15025pt too wide) in paragraph at lines 1598--1598 + [] \T1/pcr/m/n/8 24248 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/1/task/1/attr/exec[] + [] + + +Overfull \hbox (73.35027pt too wide) in paragraph at lines 1599--1599 + [] \T1/pcr/m/n/8 24249 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/1/task/1/attr/fscreate[] + [] + + +Overfull \hbox (78.15027pt too wide) in paragraph at lines 1600--1600 + [] \T1/pcr/m/n/8 24250 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/1/task/1/attr/keycreate[] + [] + + +Overfull \hbox (82.95027pt too wide) in paragraph at lines 1601--1601 + [] \T1/pcr/m/n/8 24251 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/1/task/1/attr/sockcreate[] + [] + + +Overfull \hbox (34.95024pt too wide) in paragraph at lines 1602--1602 + [] \T1/pcr/m/n/8 24337 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/1/attr/current[] + [] + + +Overfull \hbox (20.55023pt too wide) in paragraph at lines 1603--1603 + [] \T1/pcr/m/n/8 24339 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/1/attr/exec[] + [] + + +Overfull \hbox (39.75024pt too wide) in paragraph at lines 1604--1604 + [] \T1/pcr/m/n/8 24340 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/1/attr/fscreate[] + [] + + +Overfull \hbox (44.55025pt too wide) in paragraph at lines 1605--1605 + [] \T1/pcr/m/n/8 24341 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/1/attr/keycreate[] + [] + + +Overfull \hbox (49.35025pt too wide) in paragraph at lines 1606--1606 + [] \T1/pcr/m/n/8 24342 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/1/attr/sockcreate[] + [] + + +Overfull \hbox (68.55026pt too wide) in paragraph at lines 1607--1607 + [] \T1/pcr/m/n/8 24433 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/2/task/2/attr/current[] + [] + + +Overfull \hbox (54.15025pt too wide) in paragraph at lines 1608--1608 + [] \T1/pcr/m/n/8 24435 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/2/task/2/attr/exec[] + [] + + +Overfull \hbox (73.35027pt too wide) in paragraph at lines 1609--1609 + [] \T1/pcr/m/n/8 24436 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/2/task/2/attr/fscreate[] + [] + + +Overfull \hbox (78.15027pt too wide) in paragraph at lines 1610--1610 + [] \T1/pcr/m/n/8 24437 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/2/task/2/attr/keycreate[] + [] + + +Overfull \hbox (82.95027pt too wide) in paragraph at lines 1611--1611 + [] \T1/pcr/m/n/8 24438 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/2/task/2/attr/sockcreate[] + [] + + +Overfull \hbox (34.95024pt too wide) in paragraph at lines 1612--1612 + [] \T1/pcr/m/n/8 24445 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/2/attr/current[] + [] + + +Overfull \hbox (20.55023pt too wide) in paragraph at lines 1613--1613 + [] \T1/pcr/m/n/8 24447 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/2/attr/exec[] + [] + + +Overfull \hbox (39.75024pt too wide) in paragraph at lines 1614--1614 + [] \T1/pcr/m/n/8 24448 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/2/attr/fscreate[] + [] + + +Overfull \hbox (44.55025pt too wide) in paragraph at lines 1615--1615 + [] \T1/pcr/m/n/8 24449 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/2/attr/keycreate[] + [] + + +Overfull \hbox (49.35025pt too wide) in paragraph at lines 1616--1616 + [] \T1/pcr/m/n/8 24450 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /p +roc/2/attr/sockcreate[] + [] + + +Overfull \hbox (20.55023pt too wide) in paragraph at lines 1623--1623 + []\T1/pcr/m/n/8 532295 4 drwxrwxrwt 2 root root 4096 Sep 29 1 +8:57 /var/crash[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 1624--1624 + []\T1/pcr/m/n/8 525560 4 drwxrwxrwt 2 root root 4096 Sep 29 2 +1:02 /var/tmp[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 1629--1629 + [] \T1/pcr/m/n/8 8715 0 drwxrwxrwt 2 root root 140 Oct 3 2 +0:45 /run/shm[] + [] + + +Overfull \hbox (15.75023pt too wide) in paragraph at lines 1630--1630 + [] \T1/pcr/m/n/8 8712 0 drwxrwxrwt 2 root root 40 Oct 3 1 +5:01 /run/lock[] + [] + + +Overfull \hbox (39.75024pt too wide) in paragraph at lines 1632--1632 + []\T1/pcr/m/n/8 156905 4 drwxrwxrwt 2 root root 4096 Oct 3 1 +6:25 /tmp/.ICE-unix[] + [] + + +Overfull \hbox (39.75024pt too wide) in paragraph at lines 1633--1633 + []\T1/pcr/m/n/8 156904 4 drwxrwxrwt 2 root root 4096 Oct 3 1 +5:00 /tmp/.X11-unix[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1637. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1637. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1637. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1637. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1637. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1637. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1639. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1639. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1639. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1639. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1639. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1639. + +Underfull \hbox (badness 10000) in paragraph at lines 1642--1643 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1644. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1644. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1644. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1644. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1644. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1644. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1644. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1644. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1644. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1644. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1644. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1644. +[33] +Underfull \hbox (badness 10000) in paragraph at lines 1664--1665 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1668--1669 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1672--1673 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1676--1677 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1681--1682 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1705. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1705. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1705. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1705. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1705. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1705. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1705. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1705. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1705. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1705. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1705. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1705. +[34] +Overfull \hbox (58.95026pt too wide) in paragraph at lines 1706--1706 + []\T1/pcr/m/n/8 532723 4 -rwxrw---- 1 curso curso 198 Sep 29 19:24 /h +ome/curso/.cache/one...[] + [] + + +Overfull \hbox (58.95026pt too wide) in paragraph at lines 1707--1707 + []\T1/pcr/m/n/8 533520 4 -rwxr----- 1 curso curso 5 Oct 3 16:25 /hom +e/curso/.vboxclient-...[] + [] + + +Overfull \hbox (44.55025pt too wide) in paragraph at lines 1708--1708 + []\T1/pcr/m/n/8 565991 4 drwx------ 4 curso curso 4096 Oct 3 16:25 / +home/curso/.gconf...[] + [] + + +Overfull \hbox (58.95026pt too wide) in paragraph at lines 1709--1709 + []\T1/pcr/m/n/8 566119 4 drwx------ 2 curso curso 4096 Oct 3 16:28 / +home/curso/.gconf/ap...[] + [] + + +Overfull \hbox (58.95026pt too wide) in paragraph at lines 1710--1710 + []\T1/pcr/m/n/8 566211 4 -rwx------ 1 curso curso 110 Oct 3 16:28 /h +ome/curso/.gconf/app...[] + [] + + +Overfull \hbox (58.95026pt too wide) in paragraph at lines 1711--1711 + []\T1/pcr/m/n/8 566121 4 drwx------ 2 curso curso 4096 Oct 3 16:28 / +home/curso/.gconf/ap...[] + [] + + +Overfull \hbox (58.95026pt too wide) in paragraph at lines 1712--1712 + []\T1/pcr/m/n/8 569336 4 -rwx------ 1 curso curso 467 Oct 3 16:28 /h +ome/curso/.gconf/app...[] + [] + + +Overfull \hbox (58.95026pt too wide) in paragraph at lines 1713--1713 + []\T1/pcr/m/n/8 566123 4 drwx------ 2 curso curso 4096 Oct 3 16:28 / +home/curso/.gconf/ap...[] + [] + + +Overfull \hbox (58.95026pt too wide) in paragraph at lines 1714--1714 + []\T1/pcr/m/n/8 569337 4 -rwx------ 1 curso curso 954 Oct 3 16:28 /h +ome/curso/.gconf/app...[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1719. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1719. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1719. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1719. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1719. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1719. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1721. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1721. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1721. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1721. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1721. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1721. + +Underfull \hbox (badness 10000) in paragraph at lines 1726--1727 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1772. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1772. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1772. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1772. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1772. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1772. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1772. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1772. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1772. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1772. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1772. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1772. +[35] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1776. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1776. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1776. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1776. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1776. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1776. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1778. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1778. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1778. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1778. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1778. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1778. + +Overfull \hbox (1.35022pt too wide) in paragraph at lines 1793--1793 + []\T1/pcr/m/n/8 ls: cannot open directory /etc/polkit-1/localauthority: Permis +sion denied[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1802. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1802. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1802. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1802. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1802. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1802. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1804. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1804. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1804. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1804. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1804. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1804. + +Underfull \hbox (badness 10000) in paragraph at lines 1807--1808 + + [] + +(/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uninames.dat +File: uninames.dat 2013/05/13 UCS: Unicode character names, compressed +) +(/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uni-32.def +File: uni-32.def 2013/05/13 UCS: Unicode data U+2000..U+20FF +) + +! Package ucs Error: Unknown Unicode character 8208 = U+2010, +(ucs) possibly declared in uni-32.def. +(ucs) Type H to see if it is available with options. + +See the ucs package documentation for explanation. +Type H for immediate help. + ... + +l.1819 ...system containing each file name argu‐ + +Unicode character 8208 = U+2010: +HYPHEN +Character is not defined in uni-*.def files. +Enter I! to define the glyph. + +LaTeX Font Info: Try loading font information for OT1+pcr on input line 1819 +. +(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1pcr.fd +File: ot1pcr.fd 2001/06/04 font definitions for OT1/pcr. +) +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1838. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1838. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1838. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1838. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1838. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1838. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1838. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1838. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1838. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1838. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1838. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1838. + [36] +Overfull \hbox (63.75026pt too wide) in paragraph at lines 1865--1865 + []\T1/pcr/m/n/8 /dev/sr0 iso9660 56M 56M 0 100% /media/curso/VB +OXADDITIONS_4.3.26_98988[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1869. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1869. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1869. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1869. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1869. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1869. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1871. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1871. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1871. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1871. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1871. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1871. + +Overfull \hbox (399.75047pt too wide) in paragraph at lines 1881--1881 + []\T1/pcr/m/n/8 BarrireroExequiel BarrireroExequiel.tar.gz Desktop Document +s Downloads etc.tar.gz group Music picture.PNG Pictures Public root Te +mplates Videos[] + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1888--1889 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1890--1891 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1900--1901 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1905. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1905. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1905. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1905. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1905. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1905. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1905. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1905. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1905. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1905. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1905. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1905. +[37] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1906. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1906. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1906. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1906. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1906. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1906. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1908. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1908. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1908. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1908. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1908. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1908. + +Underfull \hbox (badness 10000) in paragraph at lines 1915--1917 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 1922--1923 + + [] + + +Overfull \hbox (49.35025pt too wide) in paragraph at lines 1937--1937 + []\T1/pcr/m/n/8 acpi cron.d gnome-app-install + kernel-img.conf[] + [] + + +Overfull \hbox (20.55023pt too wide) in paragraph at lines 1938--1938 + []\T1/pcr/m/n/8 adduser.conf cron.daily gnome-settings-da +emon landscape[] + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 1940--1940 + []\T1/pcr/m/n/8 anacrontab cron.monthly groff + ld.so.cache[] + [] + + +Overfull \hbox (25.35023pt too wide) in paragraph at lines 1941--1941 + []\T1/pcr/m/n/8 apg.conf crontab group + ld.so.conf[] + [] + + +Overfull \hbox (34.95024pt too wide) in paragraph at lines 1942--1942 + []\T1/pcr/m/n/8 apm cron.weekly grub.d + ld.so.conf.d[] + [] + + +Overfull \hbox (1.35022pt too wide) in paragraph at lines 1943--1943 + []\T1/pcr/m/n/8 apparmor cups gtk-2.0 + legal[] + [] + + +Overfull \hbox (39.75024pt too wide) in paragraph at lines 1944--1944 + []\T1/pcr/m/n/8 apparmor.d cupshelpers gtk-3.0 + libaudit.conf[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 1945--1945 + []\T1/pcr/m/n/8 apport dbus-1 hdparm.conf + libnl-3[] + [] + + +Overfull \hbox (25.35023pt too wide) in paragraph at lines 1946--1946 + []\T1/pcr/m/n/8 apt dconf host.conf + libpaper.d[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 1947--1947 + []\T1/pcr/m/n/8 at-spi2 debconf.conf hostname + lightdm[] + [] + + +Overfull \hbox (20.55023pt too wide) in paragraph at lines 1948--1948 + []\T1/pcr/m/n/8 avahi debian_version hosts + lintianrc[] + [] + + +Overfull \hbox (34.95024pt too wide) in paragraph at lines 1949--1949 + []\T1/pcr/m/n/8 bash.bashrc default hosts.allow + locale.alias[] + [] + + +Overfull \hbox (20.55023pt too wide) in paragraph at lines 1950--1950 + []\T1/pcr/m/n/8 bash_completion deluser.conf hosts.deny + localtime[] + [] + + +Overfull \hbox (15.75023pt too wide) in paragraph at lines 1951--1951 + []\T1/pcr/m/n/8 bash_completion.d depmod.d ifplugd + logcheck[] + [] + + +Overfull \hbox (25.35023pt too wide) in paragraph at lines 1952--1952 + []\T1/pcr/m/n/8 bindresvport.blacklist dhcp ImageMagick + login.defs[] + [] + + +Overfull \hbox (44.55025pt too wide) in paragraph at lines 1953--1953 + []\T1/pcr/m/n/8 blkid.conf dictionaries-common init + logrotate.conf[] + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 1954--1954 + []\T1/pcr/m/n/8 blkid.tab doc-base init.d + logrotate.d[] + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 1955--1955 + []\T1/pcr/m/n/8 bluetooth dpkg initramfs-tools + lsb-release[] + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 1956--1956 + []\T1/pcr/m/n/8 bonobo-activation drirc inputrc + ltrace.conf[] + [] + + +Overfull \hbox (1.35022pt too wide) in paragraph at lines 1957--1957 + []\T1/pcr/m/n/8 byobu emacs insserv + magic[] + [] + + +Overfull \hbox (25.35023pt too wide) in paragraph at lines 1958--1958 + []\T1/pcr/m/n/8 ca-certificates environment insserv.conf + magic.mime[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 1959--1959 + []\T1/pcr/m/n/8 ca-certificates.conf fonts insserv.conf.d + mailcap[] + [] + + +Overfull \hbox (39.75024pt too wide) in paragraph at lines 1960--1960 + []\T1/pcr/m/n/8 calendar fstab iproute2 + mailcap.order[] + [] + + +Overfull \hbox (44.55025pt too wide) in paragraph at lines 1961--1961 + []\T1/pcr/m/n/8 chromium-browser fstab.d iscsi + manpath.config[] + [] + + +Overfull \hbox (25.35023pt too wide) in paragraph at lines 1962--1962 + []\T1/pcr/m/n/8 colord.conf gai.conf issue + mime.types[] + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 1963--1963 + []\T1/pcr/m/n/8 compizconfig gconf issue.net + mke2fs.conf[] + [] + + +Overfull \hbox (25.35023pt too wide) in paragraph at lines 1964--1964 + []\T1/pcr/m/n/8 console-setup ghostscript kbd + modprobe.d[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 1965--1965 + []\T1/pcr/m/n/8 cracklib gnome kernel + modules[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1970. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1970. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1970. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1970. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1970. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1970. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1970. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1970. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1970. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1970. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1970. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1970. +[38] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1971. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1971. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1971. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1971. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1971. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1971. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1987. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1987. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1987. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1987. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1987. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1987. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1989. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1989. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1989. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1989. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1989. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1989. + + +Package hyperref Warning: Composite letter `\textasciicircum+,' +(hyperref) not defined in PD1 encoding, +(hyperref) removing `\textasciicircum' on input line 1989. + + +Underfull \hbox (badness 10000) in paragraph at lines 1991--1992 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2020. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2020. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2020. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2020. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2020. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2020. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2020. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2020. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2020. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2020. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2020. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2020. +[39] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2077. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2077. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2077. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2077. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2077. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2077. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2077. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2077. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2077. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2077. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2077. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2077. + [40] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2121. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2121. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2121. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2121. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2121. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2121. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2123. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2123. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2123. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2123. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2123. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2123. + + +Package hyperref Warning: Composite letter `\textasciicircum+,' +(hyperref) not defined in PD1 encoding, +(hyperref) removing `\textasciicircum' on input line 2123. + + +Underfull \hbox (badness 10000) in paragraph at lines 2127--2128 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2140. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2140. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2140. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2140. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2140. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2140. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2140. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2140. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2140. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2140. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2140. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2140. +[41] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2192. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2192. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2192. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2192. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2192. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2192. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2194. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2194. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2194. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2194. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2194. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2194. + + +Package hyperref Warning: Composite letter `\textasciicircum+,' +(hyperref) not defined in PD1 encoding, +(hyperref) removing `\textasciicircum' on input line 2194. + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2202. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2202. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2202. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2202. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2202. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2202. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2202. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2202. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2202. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2202. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2202. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2202. +[42] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2257. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2257. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2257. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2257. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2257. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2257. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2257. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2257. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2257. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2257. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2257. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2257. + [43] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2278. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2278. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2278. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2278. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2278. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2278. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2280. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2280. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2280. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2280. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2280. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2280. + + +Package hyperref Warning: Composite letter `\textasciicircum+,' +(hyperref) not defined in PD1 encoding, +(hyperref) removing `\textasciicircum' on input line 2280. + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2321. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2321. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2321. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2321. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2321. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2321. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2321. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2321. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2321. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2321. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2321. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2321. +[44] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2358. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2358. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2358. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2358. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2358. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2358. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2360. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2360. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2360. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2360. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2360. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2360. + + +Package hyperref Warning: Composite letter `\textasciicircum+,' +(hyperref) not defined in PD1 encoding, +(hyperref) removing `\textasciicircum' on input line 2360. + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2392. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2392. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2392. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2392. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2392. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2392. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2392. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2392. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2392. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2392. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2392. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2392. +[45] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2400. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2400. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2400. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2400. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2400. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2400. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2402. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2402. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2402. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2402. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2402. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2402. + +Underfull \hbox (badness 10000) in paragraph at lines 2404--2405 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2406--2410 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2411--2412 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2411--2412 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2413--2414 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2415--2416 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2417--2418 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2419--2421 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2422--2423 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2424--2427 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2428--2429 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2430--2431 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2434. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2434. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2434. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2434. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2434. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2434. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2434. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2434. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2434. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2434. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2434. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2434. +[46] +Underfull \hbox (badness 10000) in paragraph at lines 2434--2435 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2436--2437 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2438--2439 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2440--2444 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2445--2447 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2448--2449 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2450--2451 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2452--2457 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2458--2459 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2460--2463 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2464--2465 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2466--2468 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2469--2470 + + [] + + +Overfull \hbox (2.85188pt too wide) in paragraph at lines 2471--2473 +[]\T1/ptm/m/n/10.95 This will exe-cu-te emacs with the ar-gu-ments that you las +t ty-ped on the command- + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2471--2473 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2474. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2474. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2474. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2474. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2474. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2474. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2474. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2474. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2474. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2474. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2474. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2474. +[47] +Underfull \hbox (badness 10000) in paragraph at lines 2474--2475 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2476--2479 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2480--2481 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2482--2483 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2494. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2494. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2494. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2494. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2494. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2494. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2496. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2496. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2496. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2496. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2496. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2496. + +Underfull \hbox (badness 10000) in paragraph at lines 2529--2531 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2534. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2534. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2534. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2534. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2534. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2534. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2534. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2534. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2534. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2534. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2534. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2534. +[48] +Underfull \hbox (badness 10000) in paragraph at lines 2536--2537 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2540. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2540. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2540. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2540. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2540. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2540. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2542. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2542. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2542. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2542. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2542. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2542. + +Underfull \hbox (badness 10000) in paragraph at lines 2546--2547 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2590. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2590. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2590. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2590. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2590. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2590. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2590. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2590. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2590. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2590. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2590. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2590. +[49] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2622. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2622. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2622. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2622. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2622. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2622. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2624. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2624. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2624. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2624. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2624. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2624. + +Underfull \hbox (badness 10000) in paragraph at lines 2628--2629 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2630--2631 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2633. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2633. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2633. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2633. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2633. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2633. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2633. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2633. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2633. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2633. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2633. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2633. +[50] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2634. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2634. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2634. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2634. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2634. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2634. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2636. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2636. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2636. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2636. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2636. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2636. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2638. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2638. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2638. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2638. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2638. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2638. + + +Package hyperref Warning: Composite letter `\textasciicircum+,' +(hyperref) not defined in PD1 encoding, +(hyperref) removing `\textasciicircum' on input line 2638. + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2649. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2649. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2649. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2649. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2649. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2649. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2651. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2651. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2651. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2651. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2651. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2651. + +Underfull \hbox (badness 10000) in paragraph at lines 2653--2654 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2666. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2666. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2666. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2666. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2666. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2666. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2668. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2668. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2668. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2668. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2668. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2668. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2682. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2682. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2682. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2682. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2682. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2682. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2684. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2684. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2684. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2684. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2684. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2684. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2690. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2690. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2690. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2690. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2690. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2690. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2690. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2690. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2690. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2690. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2690. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2690. +[51] +Overfull \hbox (47.33951pt too wide) in paragraph at lines 2697--2697 +[]\T1/pcr/m/n/10.95 tar --exclude='.*\.txt$' -cjSf /tmp/backup.tar.bz2 /home/cu +rso + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2701. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2701. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2701. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2701. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2701. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2701. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2701. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2701. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2701. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2701. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2701. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2701. +[52] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2702. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2702. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2702. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2702. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2702. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2702. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2716. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2716. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2716. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2716. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2716. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2716. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2718. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2718. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2718. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2718. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2718. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2718. + +Underfull \hbox (badness 10000) in paragraph at lines 2721--2722 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 2733--2734 + + [] + + +Overfull \hbox (15.75023pt too wide) in paragraph at lines 2749--2749 + []\T1/pcr/m/n/8 curso@ubuntu:~/tema7$ touch errores-de-grep.txt; da * 2> error +es-de-grep.txt[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2757. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2757. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2757. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2757. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2757. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2757. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2759. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2759. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2759. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2759. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2759. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2759. + +Underfull \hbox (badness 10000) in paragraph at lines 2761--2762 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2762. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2762. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2762. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2762. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2762. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2762. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2762. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2762. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2762. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2762. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2762. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2762. +[53] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2801. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2801. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2801. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2801. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2801. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2801. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2803. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2803. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2803. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2803. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2803. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2803. + +Overfull \hbox (15.75023pt too wide) in paragraph at lines 2822--2822 + []\T1/pcr/m/n/8 * Para ejecutar debe hacer referencia a el mediante path relat +ivo o absoluto[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2826. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2826. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2826. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2826. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2826. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2826. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2826. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2826. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2826. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2826. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2826. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2826. +[54] +Overfull \hbox (30.15024pt too wide) in paragraph at lines 2850--2850 + []\T1/pcr/m/n/8 ademas guarda en un archivo de texto, llamado calendario.log, +el resultado y la[] + [] + + +Overfull \hbox (87.75027pt too wide) in paragraph at lines 2852--2852 + []\T1/pcr/m/n/8 #Para practicar, ud podria agregar los comentarios entre cada +linea de ejecucion explicando[] + [] + + +Overfull \hbox (15.75023pt too wide) in paragraph at lines 2875--2875 + []\T1/pcr/m/n/8 * Para ejecutar debe hacer referencia a el mediante path relat +ivo o absoluto[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2883. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2883. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2883. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2883. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2883. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2883. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2883. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2883. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2883. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2883. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2883. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2883. +[55] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2892. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2892. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2892. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2892. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2892. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2892. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2894. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2894. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2894. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2894. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2894. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2894. + +Overfull \hbox (222.15036pt too wide) in paragraph at lines 2907--2907 + [] \T1/pcr/m/n/8 WC(1) User Com +mands WC(1) + [] + + +Overfull \hbox (25.35023pt too wide) in paragraph at lines 2917--2917 + [] \T1/pcr/m/n/8 Print newline, word, and byte counts for each FILE, and + a total line if[] + [] + + +Overfull \hbox (34.95024pt too wide) in paragraph at lines 2921--2921 + [] \T1/pcr/m/n/8 by white space. The options below may be used to s +elect which counts[] + [] + + +Overfull \hbox (39.75024pt too wide) in paragraph at lines 2935--2935 + [] \T1/pcr/m/n/8 read input from the files specified by NUL-termi +nated names in file[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2951. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2951. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2951. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2951. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2951. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2951. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2951. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2951. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2951. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2951. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2951. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2951. +[56] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2982. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2982. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2982. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2982. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2982. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2982. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 2984. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 2984. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 2984. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 2984. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 2984. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 2984. + +Underfull \hbox (badness 10000) in paragraph at lines 2991--2993 + + [] + + +Overfull \hbox (6.15022pt too wide) in paragraph at lines 3009--3009 + []\T1/pcr/m/n/8 actividad4.txt ejemplos_de_script.txt errores-de-grep.txt s +cript1_T7.sh[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3013. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3013. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3013. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3013. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3013. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3013. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3013. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3013. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3013. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3013. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3013. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3013. +[57] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3051. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3051. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3051. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3051. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3051. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3051. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3053. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3053. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3053. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3053. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3053. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3053. + +Underfull \hbox (badness 10000) in paragraph at lines 3055--3056 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 3057--3061 + + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 3062--3063 + + [] + + +Overfull \hbox (85.3565pt too wide) in paragraph at lines 3067--3069 +[]\T1/ptm/m/n/10.95 Luego de crea-do el script, hay que ha-cer-lo eje-cu-ta-ble + con \T1/pcr/m/n/10.95 chmod +x nombre_del_script + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3069. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3069. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3069. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3069. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3069. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3069. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3069. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3069. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3069. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3069. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3069. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3069. +[58] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3105. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3105. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3105. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3105. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3105. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3105. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3107. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3107. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3107. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3107. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3107. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3107. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3112. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3112. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3112. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3112. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3112. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3112. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3112. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3112. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3112. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3112. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3112. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3112. + [59] +Overfull \hbox (10.95023pt too wide) in paragraph at lines 3118--3118 + []\T1/pcr/m/n/8 #Haciendo uso de la sentencia repetitiva FOR , realice un scri +pt que genere[] + [] + + +Overfull \hbox (20.55023pt too wide) in paragraph at lines 3119--3119 + []\T1/pcr/m/n/8 #un fichero llamado lista.txt que contenga el nombre de los ar +chivos que haya[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 3120--3120 + []\T1/pcr/m/n/8 #en el directorio /etc. RECUERDE: Debe hacer uso de la expresi +n repetitiva[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3166. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3166. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3166. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3166. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3166. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3166. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3166. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3166. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3166. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3166. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3166. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3166. +[60] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3167. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3167. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3167. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3167. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3167. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3167. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3185. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3185. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3185. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3185. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3185. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3185. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3187. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3187. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3187. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3187. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3187. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3187. + +Underfull \hbox (badness 10000) in paragraph at lines 3189--3190 + + [] + + +Overfull \hbox (15.75023pt too wide) in paragraph at lines 3207--3207 + []\T1/pcr/m/n/8 curso@ubuntu:~$ echo "Esta es la primera lnea del Archivo A" +> ArchivoA.txt[] + [] + + +Overfull \hbox (15.75023pt too wide) in paragraph at lines 3208--3208 + []\T1/pcr/m/n/8 curso@ubuntu:~$ echo "Esta es la primera lnea del Archivo B" +> ArchivoB.txt[] + [] + + +Overfull \hbox (222.15036pt too wide) in paragraph at lines 3225--3225 + [] \T1/pcr/m/n/8 CAT(1) User Com +mands CAT(1) + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3225. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3225. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3225. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3225. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3225. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3225. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3225. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3225. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3225. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3225. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3225. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3225. +[61] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3261. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3261. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3261. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3261. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3261. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3261. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3263. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3263. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3263. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3263. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3263. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3263. + +Underfull \hbox (badness 10000) in paragraph at lines 3266--3267 + + [] + + +Overfull \hbox (20.55023pt too wide) in paragraph at lines 3270--3270 + [] \T1/pcr/m/n/8 + If a command line option begins with +, the remainder + of that option + [] + + +Overfull \hbox (6.15022pt too wide) in paragraph at lines 3280--3280 + [] \T1/pcr/m/n/8 every file being viewed, not just the first one. T +he + command[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3290. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3290. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3290. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3290. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3290. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3290. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3290. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3290. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3290. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3290. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3290. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3290. +[62] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3310. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3310. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3310. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3310. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3310. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3310. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3312. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3312. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3312. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3312. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3312. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3312. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3334. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3334. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3334. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3334. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3334. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3334. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3336. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3336. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3336. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3336. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3336. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3336. + +Overfull \hbox (217.35036pt too wide) in paragraph at lines 3342--3342 + [] \T1/pcr/m/n/8 EAD(1) User Comm +ands HEAD(1) + [] + + +Overfull \hbox (34.95024pt too wide) in paragraph at lines 3351--3351 + [] \T1/pcr/m/n/8 Print the first 10 lines of each FILE to standard outpu +t. With more than[] + [] + + +Overfull \hbox (49.35025pt too wide) in paragraph at lines 3353--3353 + [] \T1/pcr/m/n/8 giving the file name. With no FILE, or when FILE is -, + read standard input.[] + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 3355--3355 + [] \T1/pcr/m/n/8 Mandatory arguments to long options are mandatory for s +hort options too.[] + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 3358--3358 + [] \T1/pcr/m/n/8 print the first K bytes of each file; with the l +eading '-', print[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3361. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3361. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3361. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3361. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3361. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3361. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3361. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3361. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3361. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3361. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3361. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3361. +[63] +Overfull \hbox (30.15024pt too wide) in paragraph at lines 3362--3362 + [] \T1/pcr/m/n/8 print the first K lines instead of the first 10; + with the leading[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3388. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3388. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3388. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3388. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3388. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3388. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3390. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3390. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3390. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3390. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3390. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3390. + +Overfull \hbox (222.15036pt too wide) in paragraph at lines 3399--3399 + [] \T1/pcr/m/n/8 SORT(1) User Com +mands SORT(1) + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 3411--3411 + [] \T1/pcr/m/n/8 Mandatory arguments to long options are mandatory for s +hort options too.[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3427. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3427. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3427. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3427. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3427. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3427. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3427. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3427. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3427. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3427. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3427. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3427. +[64] +Overfull \hbox (25.35023pt too wide) in paragraph at lines 3454--3454 + []\T1/pcr/m/n/8 ArchivoA.txt BarrireroExequiel Desktop Downloads +Music Public[] + [] + + +Overfull \hbox (15.75023pt too wide) in paragraph at lines 3456--3456 + []\T1/pcr/m/n/8 ArchivoB.txt BarrireroExequiel.tar.gz Documents group +Pictures root[] + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 3482--3486 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3494. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3494. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3494. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3494. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3494. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3494. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3494. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3494. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3494. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3494. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3494. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3494. +[65] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3568. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3568. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3568. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3568. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3568. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3568. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3568. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3568. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3568. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3568. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3568. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3568. + [66] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3637. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3637. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3637. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3637. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3637. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3637. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3637. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3637. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3637. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3637. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3637. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3637. + [67] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3651. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3651. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3651. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3651. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3651. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3651. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3653. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3653. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3653. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3653. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3653. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3653. +LaTeX Font Info: Font shape `TS1/ptm/bx/n' in size <10.95> not available +(Font) Font shape `TS1/ptm/b/n' tried instead on input line 3656. + +Underfull \hbox (badness 10000) in paragraph at lines 3656--3657 + + [] + + +Overfull \hbox (217.35036pt too wide) in paragraph at lines 3662--3662 + [] \T1/pcr/m/n/8 CUT(1) User Comm +ands CUT(1) + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 3673--3673 + [] \T1/pcr/m/n/8 Mandatory arguments to long options are mandatory for s +hort options too.[] + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 3685--3685 + [] \T1/pcr/m/n/8 select only these fields; also print any l +ine that contains[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3696. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3696. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3696. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3696. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3696. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3696. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3696. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3696. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3696. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3696. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3696. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3696. +[68] +Overfull \hbox (34.95024pt too wide) in paragraph at lines 3698--3698 + [] \T1/pcr/m/n/8 use STRING as the output delimiter the default i +s to use the input[] + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 3746--3748 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3763. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3763. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3763. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3763. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3763. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3763. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3763. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3763. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3763. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3763. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3763. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3763. +[69] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3836. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3836. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3836. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3836. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3836. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3836. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3836. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3836. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3836. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3836. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3836. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3836. + [70] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3903. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3903. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3903. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3903. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3903. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3903. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3903. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3903. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3903. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3903. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3903. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3903. + [71] +Overfull \hbox (20.55023pt too wide) in paragraph at lines 3929--3929 + []\T1/pcr/m/n/8 $ grep "/bin/bash" /etc/passwd | cut -d':' -s -f1,6,7 --outpu +t-delimiter='#' + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3952. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3952. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3952. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3952. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3952. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3952. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3954. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3954. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3954. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3954. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3954. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3954. + +Overfull \hbox (217.35036pt too wide) in paragraph at lines 3973--3973 + [] \T1/pcr/m/n/8 SED(1) User Comm +ands SED(1) + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3973. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3973. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3973. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3973. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3973. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3973. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 3973. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 3973. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 3973. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 3973. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 3973. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 3973. +[72] +Overfull \hbox (30.15024pt too wide) in paragraph at lines 3982--3982 + [] \T1/pcr/m/n/8 Sed is a stream editor. A stream editor is used to p +erform basic text[] + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 3984--3984 + [] \T1/pcr/m/n/8 file or input from a pipeline). While in some ways sim +ilar to an editor[] + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 3988--3988 + [] \T1/pcr/m/n/8 ability to filter text in a pipeline which particularly + distinguishes it[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4041. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4041. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4041. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4041. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4041. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4041. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4041. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4041. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4041. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4041. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4041. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4041. +[73] +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4069--4069 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4079--4079 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4098--4098 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4103. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4103. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4103. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4103. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4103. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4103. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4103. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4103. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4103. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4103. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4103. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4103. +[74] +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4108--4108 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4127--4127 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4137--4137 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4157--4157 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4172. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4172. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4172. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4172. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4172. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4172. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4172. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4172. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4172. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4172. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4172. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4172. +[75] +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4183--4183 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4193--4193 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4211--4211 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4239--4239 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4239. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4239. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4239. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4239. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4239. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4239. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4239. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4239. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4239. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4239. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4239. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4239. +[76] +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4249--4249 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4272--4272 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + + +Overfull \hbox (10.95023pt too wide) in paragraph at lines 4281--4281 + []\T1/pcr/m/n/8 5. Productivity (Too many technologies to explore, not much ti +me available)[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4314. +[77] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4314. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4314. + [78] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4315. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4315. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4315. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4315. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4315. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4315. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4328. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4328. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4328. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4328. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4328. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4328. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4330. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4330. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4330. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4330. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4330. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4330. + +Underfull \hbox (badness 10000) in paragraph at lines 4333--4334 + + [] + + +Overfull \hbox (25.35023pt too wide) in paragraph at lines 4339--4339 + []\T1/pcr/m/n/8 #Realizar un script que dado un directorio, cree un archivo ta +r comprimido con[] + [] + + +Overfull \hbox (126.1503pt too wide) in paragraph at lines 4340--4340 + []\T1/pcr/m/n/8 #gzip y con nombre igual a la fecha en formato #yyyy-mm-dd seg +uido del nombre del directorio.tar.gz[] + [] + + +Overfull \hbox (15.75023pt too wide) in paragraph at lines 4341--4341 + []\T1/pcr/m/n/8 #Por ejemplo: aplicado al directorio tmp obtendramos 2012-07 +-11tmp.tar.gz.[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4369. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4369. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4369. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4369. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4369. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4369. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4369. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4369. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4369. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4369. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4369. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4369. +[79] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4410. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4410. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4410. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4410. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4410. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4410. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4412. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4412. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4412. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4412. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4412. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4412. + +Underfull \hbox (badness 10000) in paragraph at lines 4415--4416 + + [] + + +Overfull \hbox (15.75023pt too wide) in paragraph at lines 4421--4421 + []\T1/pcr/m/n/8 #Realizar un script que, dado un nmero, indique si es o no di +visible por 2.[] + [] + + +Overfull \hbox (270.15039pt too wide) in paragraph at lines 4426--4426 + []\T1/pcr/m/n/8 read -t 3 -p "Input a Number to check if it's divisible by 2 : + " Number || echo -e "\nPlase enter a number during the 1st 3 secs"[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4433. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4433. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4433. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4433. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4433. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4433. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4433. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4433. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4433. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4433. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4433. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4433. +[80] +Overfull \hbox (34.95024pt too wide) in paragraph at lines 4449--4449 + []\T1/pcr/m/n/8 echo "You must enter a number dif from 0 (cero) to check if it +'s divisible by 2"[] + [] + + +Overfull \hbox (1.35022pt too wide) in paragraph at lines 4461--4461 + []\T1/pcr/m/n/8 You must enter a number dif from 0 (cero) to check if it's div +isible by 2[] + [] + + +Overfull \hbox (1.35022pt too wide) in paragraph at lines 4464--4464 + []\T1/pcr/m/n/8 You must enter a number dif from 0 (cero) to check if it's div +isible by 2[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4481. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4481. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4481. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4481. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4481. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4481. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4483. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4483. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4483. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4483. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4483. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4483. + +Overfull \hbox (10.16148pt too wide) in paragraph at lines 4490--4491 +\T1/ptm/b/n/10.95 com-pri-mi-do con gzip con nom-bre igual a la fe-cha en for-m +a-to yyyy-mm-dd.tar.gz. + [] + + +Overfull \hbox (6.15022pt too wide) in paragraph at lines 4496--4496 + []\T1/pcr/m/n/8 #Realizar un script que dado una lista de directorios, cree un + archivo tar[] + [] + + +Overfull \hbox (25.35023pt too wide) in paragraph at lines 4497--4497 + []\T1/pcr/m/n/8 #comprimido con gzip con nombre igual a la fecha en formato yy +yy-mm-dd.tar.gz.[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4497. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4497. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4497. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4497. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4497. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4497. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4497. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4497. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4497. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4497. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4497. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4497. +[81] +Overfull \hbox (15.75023pt too wide) in paragraph at lines 4498--4498 + []\T1/pcr/m/n/8 #Adems se debe generar un fichero yyyy-mm-dd.lst con los nomb +res de los di-[] + [] + + +Overfull \hbox (20.55023pt too wide) in paragraph at lines 4499--4499 + []\T1/pcr/m/n/8 #rectorios contenidos en el archivo tar, uno por linea usando +un bucle. Si el[] + [] + + +Overfull \hbox (25.35023pt too wide) in paragraph at lines 4500--4500 + []\T1/pcr/m/n/8 #fichero lst existe, mostrar un error y terminar el programa. +Si alguno de los[] + [] + + +Overfull \hbox (1.35022pt too wide) in paragraph at lines 4501--4501 + []\T1/pcr/m/n/8 #elementos no es un directorio, mostrar un error y finalizar e +l programa.[] + [] + + +Overfull \hbox (87.75027pt too wide) in paragraph at lines 4518--4518 + []\T1/pcr/m/n/8 #curso@ubuntu:~/tema10$ ls -lR /home/curso/ | grep '^d' | cut +-d' ' -f9-13 | cut -d':' -f2[] + [] + + +Overfull \hbox (30.15024pt too wide) in paragraph at lines 4519--4519 + []\T1/pcr/m/n/8 ls -ld $Dir* | cut -d' ' -f12-16 | cut -d'/' -f2-6 | sed '/^$/ +d' > Dir_list.txt[] + [] + + +Overfull \hbox (145.35031pt too wide) in paragraph at lines 4539--4539 + []\T1/pcr/m/n/8 echo -e "Se crear fichero lst en base a la lista de Dirs del +file en \n archivo /ext/Dir_list_ext.lst"[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4561. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4561. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4561. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4561. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4561. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4561. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4561. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4561. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4561. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4561. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4561. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4561. +[82] +Overfull \hbox (150.15031pt too wide) in paragraph at lines 4575--4575 + []\T1/pcr/m/n/8 2015-12-08.tar.gz 2015-12-08-tmp.tar.gz actividad1.sh activ +idad2.sh actividad3.sh Dir_list.txt ext[] + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4621. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4621. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4621. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4621. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4621. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4621. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4623. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4623. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4623. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4623. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4623. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4623. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4627. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4627. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4627. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4627. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4627. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4627. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4627. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4627. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4627. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4627. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4627. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4627. +[83] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4631. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4631. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4631. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4631. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4631. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4631. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4633. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4633. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4633. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4633. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4633. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4633. + +Overfull \hbox (13.65999pt too wide) in paragraph at lines 4638--4639 +[]\T1/ptm/b/n/10.95 Crear un script en bash que im-pri-ma en un ar-chi-vo lla-m +a-do, lis-ta_directorios, + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4640. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4640. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4640. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4640. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4640. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4640. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4642. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4642. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4642. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4642. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4642. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4642. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4649. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4649. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4649. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4649. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4649. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4649. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4649. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4649. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4649. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4649. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4649. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4649. +[84] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4650. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4650. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4650. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4650. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4650. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4650. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4664. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4664. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4664. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4664. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4664. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4664. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4666. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4666. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4666. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4666. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4666. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4666. + +Underfull \hbox (badness 10000) in paragraph at lines 4669--4670 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4671. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4671. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4671. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4671. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4671. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4671. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4673. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4673. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4673. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4673. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4673. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4673. + +Underfull \hbox (badness 10000) in paragraph at lines 4676--4677 + + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4678. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4678. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4678. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4678. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4678. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4678. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4680. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4680. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4680. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4680. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4680. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4680. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4685. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4685. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4685. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4685. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4685. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4685. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4687. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4687. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4687. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4687. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4687. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4687. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4692. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4692. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4692. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4692. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4692. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4692. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4694. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4694. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4694. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4694. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4694. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4694. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4699. +[85] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4699. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4701. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4701. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4701. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4701. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4701. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4701. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4708. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4708. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4708. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4708. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4708. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4708. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4708. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4708. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4708. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4708. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4708. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4708. + [86] (./TPs_Diplomatura_Linux.bbl +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 1. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 1. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 1. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 1. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 1. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 1. + +(/usr/share/texlive/texmf-dist/tex/latex/ucs/data/uni-33.def +File: uni-33.def 2013/05/13 UCS: Unicode data U+2100..U+21FF +) +Underfull \hbox (badness 10000) in paragraph at lines 16--21 +[]\T1/ptm/m/n/10.95 DigitalOcean\TS1/ptm/m/n/10.95 \T1/ptm/m/n/10.95 Inc. (20 +15). How to use find and lo- + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 16--21 +\T1/ptm/m/n/10.95 ca-te to search for fi-les on a li-nux vps. []$\T1/pcr/m/n/1 +0.95 https : / / + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 16--21 +\T1/pcr/m/n/10.95 www . digitalocean . com / community / tutorials / + [] + + +Overfull \hbox (55.48201pt too wide) in paragraph at lines 16--21 +\T1/pcr/m/n/10.95 how-[]to-[]use-[]find-[]and-[]locate-[]to-[]search-[]for-[]fi +les-[]on-[]a-[]linux-[]vps$[]\T1/ptm/m/n/10.95 . + [] + + +Underfull \hbox (badness 4479) in paragraph at lines 30--34 +[]\T1/ptm/m/n/10.95 Hogbin E., Ko-ma-rins-ki M., M. D. (2005b). The li-nux do- +cu-men-ta- + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 55--59 +\T1/pcr/m/n/10.95 di . artec . unc . edu . ar / course / view . php ? id = 4 & +section = 2)$[]\T1/ptm/m/n/10.95 . + [] + + +Underfull \hbox (badness 7362) in paragraph at lines 61--66 +[]\T1/ptm/m/n/10.95 Mirizio E. (2015b). Gua te-ri-ca - di-plo-ma-tu-ra li-nu +x mo-du-lo 7. + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 61--66 +[]$\T1/pcr/m/n/10.95 http : / / www . di . artec . unc . edu . ar / pluginfile +. php / 8003 / + [] + + +Underfull \hbox (badness 1590) in paragraph at lines 79--85 +\T1/ptm/m/n/10.95 1.1.6. vir-tual con-so-les. []$\T1/pcr/m/n/10.95 https : / / + www . debian . org / doc / manuals / + [] + +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 85. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 85. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 85. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 85. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 85. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 85. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 85. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 85. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 85. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 85. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 85. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 85. +[87] +Underfull \hbox (badness 10000) in paragraph at lines 99--104 +\T1/ptm/m/n/10.95 le using re-gex. []$\T1/pcr/m/n/10.95 http : / / www . thege +ekstuff . com / 2009 / 09 / + [] + + +Overfull \hbox (113.11194pt too wide) in paragraph at lines 99--104 +\T1/pcr/m/n/10.95 unix-[]sed-[]tutorial-[]replace-[]text-[]inside-[]a-[]file-[] +using-[]substitute-[]command/$[]\T1/ptm/m/n/10.95 . + [] + + +Underfull \hbox (badness 4634) in paragraph at lines 106--110 +[]\T1/ptm/m/n/10.95 Shrestha N. (2013a). 10 prac-ti-cal li-nux cut com-mand ex +am-ples to + [] + + +Underfull \hbox (badness 4242) in paragraph at lines 106--110 +\T1/ptm/m/n/10.95 se-lect fi-le co-lumns. []$\T1/pcr/m/n/10.95 http : / / www +. thegeekstuff . com / 2013 / 06 / + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 118--123 +[]\T1/ptm/m/n/10.95 Vivek G. (2006). How do i com-press a who-le li-nux or + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 118--123 +\T1/ptm/m/n/10.95 unix di-rec-tory. []$\T1/pcr/m/n/10.95 http : / / www . cybe +rciti . biz / faq / + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 118--123 +\T1/pcr/m/n/10.95 how-[]do-[]i-[]compress-[]a-[]whole-[]linux-[]or-[]unix-[]dir +ectory$[]\T1/ptm/m/n/10.95 . + [] + +) +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4712. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4712. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4712. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4712. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4712. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4712. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4712. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4712. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4712. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4712. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4712. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4712. + [88] +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4714. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4714. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4714. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4714. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4714. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4714. +Package atveryend Info: Empty hook `BeforeClearDocument' on input line 4731. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4731. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4731. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4731. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4731. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4731. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4731. +Package babel Info: Redefining spanish shorthand << +(babel) in language append on input line 4731. +Package babel Info: Redefining spanish shorthand >> +(babel) in language append on input line 4731. +Package babel Info: Redefining spanish shorthand "= +(babel) in language append on input line 4731. +Package babel Info: Redefining spanish shorthand "~ +(babel) in language append on input line 4731. +Package babel Info: Redefining spanish shorthand "! +(babel) in language append on input line 4731. +Package babel Info: Redefining spanish shorthand "? +(babel) in language append on input line 4731. + [89] +Package atveryend Info: Empty hook `AfterLastShipout' on input line 4731. + (./TPs_Diplomatura_Linux.aux +LaTeX Info: Redefining \. on input line 26. +LaTeX Info: Redefining \% on input line 26. +) +Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 4731. +Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 4731. + +Package rerunfilecheck Info: File `TPs_Diplomatura_Linux.out' has not changed. +(rerunfilecheck) Checksum: 11C2A99B20B750661519321BC34735F8;12003. + + +LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right. + +Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 4731. + ) +Here is how much of TeX's memory you used: + 14042 strings out of 494925 + 202715 string characters out of 6178544 + 307530 words of memory out of 5000000 + 16638 multiletter control sequences out of 15000+600000 + 77228 words of font info for 132 fonts, out of 8000000 for 9000 + 62 hyphenation exceptions out of 8191 + 36i,9n,41p,348b,729s stack positions out of 5000i,500n,10000p,200000b,80000s +{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc} +Output written on TPs_Diplomatura_Linux.pdf (95 pages, 1199550 bytes). +PDF statistics: + 1485 PDF objects out of 1728 (max. 8388607) + 1356 compressed objects within 14 object streams + 323 named destinations out of 1000 (max. 500000) + 1291 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/TPs_Diplomatura_Linux.lot b/TPs_Diplomatura_Linux.lot new file mode 100644 index 0000000..16127bd --- /dev/null +++ b/TPs_Diplomatura_Linux.lot @@ -0,0 +1 @@ +\select@language {spanish} diff --git a/TPs_Diplomatura_Linux.out b/TPs_Diplomatura_Linux.out new file mode 100644 index 0000000..14a64ef --- /dev/null +++ b/TPs_Diplomatura_Linux.out @@ -0,0 +1,155 @@ +\BOOKMARK [1][-]{section.1}{Ejercicios Tema1: Introducci\363n al entorno gr\341fico de un Sistema GNU/Linux y herramientas}{}% 1 +\BOOKMARK [2][-]{subsection.1.1}{Actividad 1.}{section.1}% 2 +\BOOKMARK [3][-]{subsubsection.1.1.1}{Kernel: Definici\363n}{subsection.1.1}% 3 +\BOOKMARK [3][-]{subsubsection.1.1.2}{Versi\363n actual de kernel estable en GNU/Linux}{subsection.1.1}% 4 +\BOOKMARK [3][-]{subsubsection.1.1.3}{Versi\363n mas usada de kernel estable en GNU/Linux}{subsection.1.1}% 5 +\BOOKMARK [2][-]{subsection.1.2}{Actividad 2.}{section.1}% 6 +\BOOKMARK [3][-]{subsubsection.1.2.1}{\277De qu\351 distribuci\363n deriva GNU/Linux Fedora?}{subsection.1.2}% 7 +\BOOKMARK [2][-]{subsection.1.3}{Actividad 3.}{section.1}% 8 +\BOOKMARK [3][-]{subsubsection.1.3.1}{Imprimir pantalla del escritorio Gnome}{subsection.1.3}% 9 +\BOOKMARK [2][-]{subsection.1.4}{Actividad 4.}{section.1}% 10 +\BOOKMARK [3][-]{subsubsection.1.4.1}{Navegaci\363n de directorios con Nautilus}{subsection.1.4}% 11 +\BOOKMARK [2][-]{subsection.1.5}{Actividad 5.}{section.1}% 12 +\BOOKMARK [3][-]{subsubsection.1.5.1}{LibreOffice Writer: Guardado de archivos .doc en .odt }{subsection.1.5}% 13 +\BOOKMARK [2][-]{subsection.1.6}{Actividad 6.}{section.1}% 14 +\BOOKMARK [3][-]{subsubsection.1.6.1}{Consolas virtuales y GTK-Warning}{subsection.1.6}% 15 +\BOOKMARK [1][-]{section.2}{Ejercicios Tema3: L\355nea de Comandos. Comandos b\341sicosI }{}% 16 +\BOOKMARK [2][-]{subsection.2.1}{Actividad 1.}{section.2}% 17 +\BOOKMARK [3][-]{subsubsection.2.1.1}{cd command}{subsection.2.1}% 18 +\BOOKMARK [2][-]{subsection.2.2}{Actividad 2.}{section.2}% 19 +\BOOKMARK [3][-]{subsubsection.2.2.1}{Sudo y permisos de administraci\363n}{subsection.2.2}% 20 +\BOOKMARK [2][-]{subsection.2.3}{Actividad 3.}{section.2}% 21 +\BOOKMARK [3][-]{subsubsection.2.3.1}{less command}{subsection.2.3}% 22 +\BOOKMARK [2][-]{subsection.2.4}{Actividad 4.}{section.2}% 23 +\BOOKMARK [3][-]{subsubsection.2.4.1}{/bin and /sbin}{subsection.2.4}% 24 +\BOOKMARK [2][-]{subsection.2.5}{Actividad 5.}{section.2}% 25 +\BOOKMARK [3][-]{subsubsection.2.5.1}{Listado de permisos ''ls -la`` command}{subsection.2.5}% 26 +\BOOKMARK [2][-]{subsection.2.6}{Actividad 6.}{section.2}% 27 +\BOOKMARK [3][-]{subsubsection.2.6.1}{Listado de permisos ''ls -l`` command}{subsection.2.6}% 28 +\BOOKMARK [2][-]{subsection.2.7}{Actividad 7.}{section.2}% 29 +\BOOKMARK [3][-]{subsubsection.2.7.1}{mkdir make directory}{subsection.2.7}% 30 +\BOOKMARK [2][-]{subsection.2.8}{Actividad 8.}{section.2}% 31 +\BOOKMARK [3][-]{subsubsection.2.8.1}{Creaci\363n de archivos con ''touch``}{subsection.2.8}% 32 +\BOOKMARK [2][-]{subsection.2.9}{Actividad 9.}{section.2}% 33 +\BOOKMARK [3][-]{subsubsection.2.9.1}{Cambio de permisos con ''chmod``}{subsection.2.9}% 34 +\BOOKMARK [2][-]{subsection.2.10}{Actividad 10.}{section.2}% 35 +\BOOKMARK [3][-]{subsubsection.2.10.1}{Eliminar recursivamente con ''rm`` command}{subsection.2.10}% 36 +\BOOKMARK [2][-]{subsection.2.11}{Actividad 11.}{section.2}% 37 +\BOOKMARK [3][-]{subsubsection.2.11.1}{Copia recursiva de directorio con ''cp`` command}{subsection.2.11}% 38 +\BOOKMARK [2][-]{subsection.2.12}{Actividad 12.}{section.2}% 39 +\BOOKMARK [3][-]{subsubsection.2.12.1}{Renombrar archivos con ''mv`` command}{subsection.2.12}% 40 +\BOOKMARK [2][-]{subsection.2.13}{Actividad 13.}{section.2}% 41 +\BOOKMARK [3][-]{subsubsection.2.13.1}{Copia de dirs mediante path relativo}{subsection.2.13}% 42 +\BOOKMARK [2][-]{subsection.2.14}{Actividad 14.}{section.2}% 43 +\BOOKMARK [3][-]{subsubsection.2.14.1}{Enlaces simb\363licos ''ln'' command}{subsection.2.14}% 44 +\BOOKMARK [2][-]{subsection.2.15}{Actividad 15.}{section.2}% 45 +\BOOKMARK [3][-]{subsubsection.2.15.1}{Navegaci\363n de directorios con Nautilus}{subsection.2.15}% 46 +\BOOKMARK [2][-]{subsection.2.16}{Actividad 16.}{section.2}% 47 +\BOOKMARK [3][-]{subsubsection.2.16.1}{Interpertaci\363n de comandos}{subsection.2.16}% 48 +\BOOKMARK [1][-]{section.3}{Ejercicios Tema 4: Linea de comandos. Comandos b\341sicos II }{}% 49 +\BOOKMARK [2][-]{subsection.3.1}{Actividad 1.}{section.3}% 50 +\BOOKMARK [3][-]{subsubsection.3.1.1}{``find'' and ``locate'' commands}{subsection.3.1}% 51 +\BOOKMARK [2][-]{subsection.3.2}{Actividad 2.}{section.3}% 52 +\BOOKMARK [3][-]{subsubsection.3.2.1}{locate -d command}{subsection.3.2}% 53 +\BOOKMARK [2][-]{subsection.3.3}{Actividad 3.}{section.3}% 54 +\BOOKMARK [3][-]{subsubsection.3.3.1}{``find`` without name}{subsection.3.3}% 55 +\BOOKMARK [2][-]{subsection.3.4}{Actividad 4.}{section.3}% 56 +\BOOKMARK [3][-]{subsubsection.3.4.1}{''find'' buscando por permisos de usuario}{subsection.3.4}% 57 +\BOOKMARK [2][-]{subsection.3.5}{Actividad 5.}{section.3}% 58 +\BOOKMARK [3][-]{subsubsection.3.5.1}{``find'' para archivos modificados en un per\355odo de tiempo}{subsection.3.5}% 59 +\BOOKMARK [2][-]{subsection.3.6}{Actividad 6.}{section.3}% 60 +\BOOKMARK [3][-]{subsubsection.3.6.1}{``grep`` command}{subsection.3.6}% 61 +\BOOKMARK [2][-]{subsection.3.7}{Actividad 7.}{section.3}% 62 +\BOOKMARK [3][-]{subsubsection.3.7.1}{''grep`` recursivo}{subsection.3.7}% 63 +\BOOKMARK [2][-]{subsection.3.8}{Actividad 8.}{section.3}% 64 +\BOOKMARK [3][-]{subsubsection.3.8.1}{''df`` commands}{subsection.3.8}% 65 +\BOOKMARK [2][-]{subsection.3.9}{Actividad 9.}{section.3}% 66 +\BOOKMARK [3][-]{subsubsection.3.9.1}{''tar.gz`` command p/ comprimir}{subsection.3.9}% 67 +\BOOKMARK [2][-]{subsection.3.10}{Actividad 10.}{section.3}% 68 +\BOOKMARK [3][-]{subsubsection.3.10.1}{''tar.gz`` command p/ descomprimir}{subsection.3.10}% 69 +\BOOKMARK [1][-]{section.4}{Ejercicios Tema 6: Uso b\341sico de la consola }{}% 70 +\BOOKMARK [2][-]{subsection.4.1}{Actividad 1.}{section.4}% 71 +\BOOKMARK [3][-]{subsubsection.4.1.1}{Regular expressions - , \044 , . , *}{subsection.4.1}% 72 +\BOOKMARK [2][-]{subsection.4.2}{Actividad 2.}{section.4}% 73 +\BOOKMARK [3][-]{subsubsection.4.2.1}{Regular expressions - , \044 , . , *}{subsection.4.2}% 74 +\BOOKMARK [2][-]{subsection.4.3}{Actividad 3.}{section.4}% 75 +\BOOKMARK [3][-]{subsubsection.4.3.1}{Regular expressions - , . , []}{subsection.4.3}% 76 +\BOOKMARK [2][-]{subsection.4.4}{Actividad 4.}{section.4}% 77 +\BOOKMARK [3][-]{subsubsection.4.4.1}{Regular expressions - , \044 , []}{subsection.4.4}% 78 +\BOOKMARK [2][-]{subsection.4.5}{Actividad 5.}{section.4}% 79 +\BOOKMARK [3][-]{subsubsection.4.5.1}{Regular expressions - , \044 , []}{subsection.4.5}% 80 +\BOOKMARK [2][-]{subsection.4.6}{Actividad 6.}{section.4}% 81 +\BOOKMARK [3][-]{subsubsection.4.6.1}{The command-line history}{subsection.4.6}% 82 +\BOOKMARK [2][-]{subsection.4.7}{Actividad 7.}{section.4}% 83 +\BOOKMARK [3][-]{subsubsection.4.7.1}{history, variable HISTSIZE}{subsection.4.7}% 84 +\BOOKMARK [2][-]{subsection.4.8}{Actividad 8.}{section.4}% 85 +\BOOKMARK [3][-]{subsubsection.4.8.1}{HISTCONTROL variable}{subsection.4.8}% 86 +\BOOKMARK [2][-]{subsection.4.9}{Actividad 9.}{section.4}% 87 +\BOOKMARK [3][-]{subsubsection.4.9.1}{clear history \(history -c\)}{subsection.4.9}% 88 +\BOOKMARK [1][-]{section.5}{Parcial 1 - Parte 2 - Cuestionario Pr\341ctico}{}% 89 +\BOOKMARK [2][-]{subsection.5.1}{Actividad 1.}{section.5}% 90 +\BOOKMARK [3][-]{subsubsection.5.1.1}{Regular expressions - , \044 , . , *}{subsection.5.1}% 91 +\BOOKMARK [2][-]{subsection.5.2}{Actividad 2.}{section.5}% 92 +\BOOKMARK [3][-]{subsubsection.5.2.1}{find command}{subsection.5.2}% 93 +\BOOKMARK [2][-]{subsection.5.3}{Actividad 3.}{section.5}% 94 +\BOOKMARK [3][-]{subsubsection.5.3.1}{Regular expressions and ls command}{subsection.5.3}% 95 +\BOOKMARK [2][-]{subsection.5.4}{Actividad 4.}{section.5}% 96 +\BOOKMARK [3][-]{subsubsection.5.4.1}{Regular expressions - Tar command}{subsection.5.4}% 97 +\BOOKMARK [1][-]{section.6}{Ejercicios Tema 7: Shell scripting b\341sico}{}% 98 +\BOOKMARK [2][-]{subsection.6.1}{Actividad 1.}{section.6}% 99 +\BOOKMARK [3][-]{subsubsection.6.1.1}{STDERR redirection to file}{subsection.6.1}% 100 +\BOOKMARK [2][-]{subsection.6.2}{Actividad 2.}{section.6}% 101 +\BOOKMARK [3][-]{subsubsection.6.2.1}{STDOUT \046 STDERR redirection to file}{subsection.6.2}% 102 +\BOOKMARK [2][-]{subsection.6.3}{Actividad 3.}{section.6}% 103 +\BOOKMARK [3][-]{subsubsection.6.3.1}{Head - Tail - Pipe}{subsection.6.3}% 104 +\BOOKMARK [2][-]{subsection.6.4}{Actividad 4.}{section.6}% 105 +\BOOKMARK [3][-]{subsubsection.6.4.1}{Cat - Grep - Wc}{subsection.6.4}% 106 +\BOOKMARK [2][-]{subsection.6.5}{Actividad 5.}{section.6}% 107 +\BOOKMARK [3][-]{subsubsection.6.5.1}{Find \046 Sort script}{subsection.6.5}% 108 +\BOOKMARK [2][-]{subsection.6.6}{Actividad 6.}{section.6}% 109 +\BOOKMARK [3][-]{subsubsection.6.6.1}{`` - in between Grave accent character }{subsection.6.6}% 110 +\BOOKMARK [2][-]{subsection.6.7}{Actividad 7.}{section.6}% 111 +\BOOKMARK [3][-]{subsubsection.6.7.1}{FOR - loops and iteration}{subsection.6.7}% 112 +\BOOKMARK [1][-]{section.7}{Ejercicios Tema 8: Herramientas para procesar texto}{}% 113 +\BOOKMARK [2][-]{subsection.7.1}{Actividad 1.}{section.7}% 114 +\BOOKMARK [3][-]{subsubsection.7.1.1}{cat command}{subsection.7.1}% 115 +\BOOKMARK [2][-]{subsection.7.2}{Actividad 2.}{section.7}% 116 +\BOOKMARK [3][-]{subsubsection.7.2.1}{less command}{subsection.7.2}% 117 +\BOOKMARK [2][-]{subsection.7.3}{Actividad 3.}{section.7}% 118 +\BOOKMARK [3][-]{subsubsection.7.3.1}{grep \046 regular expessions}{subsection.7.3}% 119 +\BOOKMARK [2][-]{subsection.7.4}{Actividad 4.}{section.7}% 120 +\BOOKMARK [3][-]{subsubsection.7.4.1}{head command}{subsection.7.4}% 121 +\BOOKMARK [2][-]{subsection.7.5}{Actividad 5.}{section.7}% 122 +\BOOKMARK [3][-]{subsubsection.7.5.1}{sort command}{subsection.7.5}% 123 +\BOOKMARK [2][-]{subsection.7.6}{Actividad 6.}{section.7}% 124 +\BOOKMARK [3][-]{subsubsection.7.6.1}{cut command }{subsection.7.6}% 125 +\BOOKMARK [2][-]{subsection.7.7}{Actividad 7.}{section.7}% 126 +\BOOKMARK [3][-]{subsubsection.7.7.1}{sed command}{subsection.7.7}% 127 +\BOOKMARK [1][-]{section.8}{Ejercicios Tema 10: Shell scripting intermedio}{}% 128 +\BOOKMARK [2][-]{subsection.8.1}{Actividad 1.}{section.8}% 129 +\BOOKMARK [3][-]{subsubsection.8.1.1}{tar - gzip - date format output}{subsection.8.1}% 130 +\BOOKMARK [2][-]{subsection.8.2}{Actividad 2.}{section.8}% 131 +\BOOKMARK [3][-]{subsubsection.8.2.1}{script : ''divisible por 2``}{subsection.8.2}% 132 +\BOOKMARK [2][-]{subsection.8.3}{Actividad 3.}{section.8}% 133 +\BOOKMARK [3][-]{subsubsection.8.3.1}{script: tar - gzip - date format output}{subsection.8.3}% 134 +\BOOKMARK [2][-]{subsection.8.4}{Actividad 4.}{section.8}% 135 +\BOOKMARK [3][-]{subsubsection.8.4.1}{head command}{subsection.8.4}% 136 +\BOOKMARK [2][-]{subsection.8.5}{Actividad 5 \(ejercitaci\363n evaluaci\363n\).}{section.8}% 137 +\BOOKMARK [3][-]{subsubsection.8.5.1}{script: find directories by name - for - if - test - ls}{subsection.8.5}% 138 +\BOOKMARK [2][-]{subsection.8.6}{Actividad 6 \(ejercitaci\363n evaluaci\363n\).}{section.8}% 139 +\BOOKMARK [3][-]{subsubsection.8.6.1}{script: True or False - for - if - test - ls}{subsection.8.6}% 140 +\BOOKMARK [1][-]{section.9}{Ejercicios Tema 11: Configuraci\363n de Bash}{}% 141 +\BOOKMARK [2][-]{subsection.9.1}{Actividad 1.}{section.9}% 142 +\BOOKMARK [3][-]{subsubsection.9.1.1}{Variable de entorno PS1}{subsection.9.1}% 143 +\BOOKMARK [2][-]{subsection.9.2}{Actividad 2.}{section.9}% 144 +\BOOKMARK [3][-]{subsubsection.9.2.1}{Limpiar History y /tmp}{subsection.9.2}% 145 +\BOOKMARK [2][-]{subsection.9.3}{Actividad 3.}{section.9}% 146 +\BOOKMARK [3][-]{subsubsection.9.3.1}{init.d and processes}{subsection.9.3}% 147 +\BOOKMARK [2][-]{subsection.9.4}{Actividad 4.}{section.9}% 148 +\BOOKMARK [3][-]{subsubsection.9.4.1}{backup script - tar gz}{subsection.9.4}% 149 +\BOOKMARK [2][-]{subsection.9.5}{Actividad 5.}{section.9}% 150 +\BOOKMARK [3][-]{subsubsection.9.5.1}{Alias for grep command}{subsection.9.5}% 151 +\BOOKMARK [2][-]{subsection.9.6}{Actividad 6.}{section.9}% 152 +\BOOKMARK [3][-]{subsubsection.9.6.1}{script: given a value to a variable}{subsection.9.6}% 153 +\BOOKMARK [1][-]{section*.21}{Bibliograf\355a}{}% 154 +\BOOKMARK [1][-]{section*.21}{Siglas y Acr\363nimos}{}% 155 diff --git a/TPs_Diplomatura_Linux.pdf b/TPs_Diplomatura_Linux.pdf new file mode 100644 index 0000000..6c6bd2f Binary files /dev/null and b/TPs_Diplomatura_Linux.pdf differ diff --git a/TPs_Diplomatura_Linux.tex b/TPs_Diplomatura_Linux.tex new file mode 100644 index 0000000..bc9a91f --- /dev/null +++ b/TPs_Diplomatura_Linux.tex @@ -0,0 +1,4731 @@ +\documentclass[a4paper,11pt,spanish]{article} % or {article} + +\usepackage[utf8x]{inputenc} +%\usepackage[utf8]{inputenc}% utf8x es un extensión, en gral las +% extensiones funcionan mejor, ``archx`` son extensiones. En ubuntu +% la extensión es utf8x +\usepackage[spanish]{babel} + \addto{\captionsspanish}{\renewcommand*{\refname}{ +\center \Large BIBLIOGRAFÍA}} +\usepackage[T1]{fontenc} % Los fonts tipo T1 están en todos los +% visualizadores +\usepackage{times} % recordar que T1 + times logra un estilo de fuente +%muy armónico +\usepackage{verbatim} % verbatim package to use multiline comments in +%Latex \begin{comment}...\end{comment} +\usepackage{listings} + +% SOME Extra packages +\usepackage{calc} +\usepackage{setspace} +\usepackage{fixltx2e} +\usepackage[normalem]{ulem} +%% Please revise the following command, if your babel +%% package does not support English (US) +\usepackage{color} +\usepackage{hyperref} + + +\usepackage[utf8x]{inputenc} +\usepackage[spanish]{babel} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{xcolor} +\usepackage{color} +%\usepackage{hyperref} +%\usepackage{geometry} +%\geometry{verbose,a4paper,tmargin=30mm,bmargin=20mm,lmargin=30mm, +%rmargin=20mm} +\usepackage{setspace} +\usepackage{url} +\usepackage{tocvsec2} +\usepackage{float} +\usepackage[nottoc,notlof,notlot]{tocbibind} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsfonts} +\usepackage{textcomp} +\usepackage[font=footnotesize,labelfont=bf]{caption} +\usepackage{booktabs} +\usepackage{multirow} +\usepackage{multicol} % tabular mgmt +\usepackage{bm} +\usepackage{pdfpages} % to import PDF pages +\usepackage{acronym} +\usepackage{multicol} +%\usepackage{subfigure} +%\usepackage[caption=false]{subfig} +\usepackage{subfig} +%\usepackage{subcaption} +\usepackage{graphicx} + +\newenvironment{mytinylisting} +{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\tiny\bfseries} +{\end{list}} + +\newenvironment{myscriptlisting} +{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\scriptsize\bfseries} +{\end{list}} + + + +%opening +\title{\huge UNIVERSIDAD NACIONAL de CORDOBA - Departamento Universitario de Informática} +% \\[2cm]\huge +% Dimensionamiento de una estaci\'on ISDB-Tb \& Visita LV80 TV Canal +% 10 \\[2cm]} +\date{} + +\makeatletter +\def\@biblabel#1{} +\makeatother + +\spanishdecimal{.} +\bibliographystyle{apalike} +\renewcommand{\figurename}{Fig.} %Cambia la palabra ``Figura`` por ``Fig.`` +\renewcommand{\tablename}{Tabla} %Cambia la palabra ``Cuadro`` por ``Tabla`` +\renewcommand{\listtablename}{Índice de tablas} + +\begin{document} +\pagenumbering{roman} +\maketitle +\thispagestyle{empty} + +\begin{figure}[htb] % h= here t=top =bottom con respecto al texto +\centering +\includegraphics[width=.5\textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/LogoDUI.jpg} \ \ \ +\ \ +%\caption{\emph{ Representaci\'{o}n gr\'{a}fica +\includegraphics[width=.4\textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/LogoLinux.jpg} +\end{figure} + +\begin{center} + +\hspace*{\fill} \\[.7cm] \Large Diplomatura SO Linux +\\[1cm] + +\begin{tabular}[h]{|p{ 9cm }|} +\hline +\textbf{\Large Prácticos curso Administración básica de +\mbox{Sistemas Operativos GNU/Linux.}} +\\ +\hline +\end{tabular} + +\author{ \hspace*{\fill} \\[.9cm] BARRIRERO, Exequiel \\} + +\end{center} + +\begin{flushleft} +\textbf{ \\[.3cm] Profesor:} MIRIZIO, Esteban.\\ +\end{flushleft} + +\begin{center} +\textbf{\large -2015-}\\[2.5cm] +\end{center} + +\begin{center} +in \LaTeX +\end{center} + +\newpage +\begin{center} +\tableofcontents +\listoffigures +\listoftables +\setcounter{secnumdepth}{3} +%\settocdepth{subsection} +\end{center} + +\newpage +\pagenumbering{arabic} +\setcounter{page}{1} + +%\setcounter{page}{2} +%\thispagestyle{empty} + +\section{Ejercicios Tema1: Introducción al entorno gráfico de un Sistema GNU/Linux y herramientas} + +\begin{itemize} + \item Conceptos básicos de sistemas operativos + \subitem Conceptos de multitarea y multiusuario + \subitem Explicar la naturaleza del software opensource + \item Orígenes de GNU/Linux. Distribuciones GNU/Linux. Principios básicos de GNU/Linux. + \item Entornos de escritorio más comunes: Gnome. + \item Navegadores de sistemas archivos: Nautilus. + \item Navegación web: Firefox. + \item Ofimática: LibreOffice: Writer y Calc + \item Multimedia: reproductores de audio y reproductores de video. + \item Editores de texto: Gedit. + \item Visor de PDF: Evince. + \item Pasar de entorno gráfico a consola +\end{itemize} + +\subsection{Actividad 1.} +\subsubsection{Kernel: Definición} + +En informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es un software que +constituye una parte fundamental del sistema operativo, y se define como la parte que se ejecuta en modo +privilegiado (conocido también como modo núcleo). Es el principal responsable de facilitar a +los distintos programas acceso seguro al hardware de la computadora o en forma básica, +es el encargado de gestionar recursos, a través de servicios de llamada al sistema. +Como hay muchos programas y el acceso al hardware es limitado, también se encarga de +decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, +lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, +por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder +la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso +al programador. + +\cite{wikikernel} + +\subsubsection{Versión actual de kernel estable en \ac{gnu}/Linux} + +Here are several main categories into which kernel releases may fall: + +\begin{itemize} + \item \textbf{Prepatch: \\} +Prepatch or ``RC`` kernels are mainline kernel pre-releases that are mostly aimed at other kernel developers +and Linux enthusiasts. They must be compiled from source and usually contain new features that must be +tested before they can be put into a stable release. Prepatch kernels are maintained and released by +Linus Torvalds. + +\item \textbf{Mainline:\\} +Mainline tree is maintained by Linus Torvalds. It's the tree where all new features are introduced and +where all the exciting new development happens. New mainline kernels are released every 2-3 months. + +\item \textbf{Stable:\\} +After each mainline kernel is released, it is considered ``stable.`` Any bug fixes for a stable kernel +are backported from the mainline tree and applied by a designated stable kernel maintainer. +There are usually only a few bugfix kernel releases until next mainline kernel becomes available -- unless it is designated a ``longterm maintenance kernel.`` Stable kernel updates are released on as-needed basis, usually 2-3 a month. + +\item \textbf{Longterm:\\} +There are usually several ``longterm maintenance`` kernel releases provided for the purposes of backporting +bugfixes for older kernel trees. Only important bugfixes are applied to such kernels and they don't usually see very frequent releases, especially for older trees. +Longterm release kernels are the Versions: 3.18, 3.14, 3.12, 3.10, 3.4, 3.2, 2.6.32. + +\item \textbf{Distribution kernels:\\} +Many Linux distributions provide their own ``longterm maintenance`` kernels that may or may not be based +on those maintained by kernel developers. These kernel releases are not hosted at kernel.org and kernel +developers can provide no support for them. +It is easy to tell if you are running a distribution kernel. Unless you downloaded, compiled and installed +your own version of kernel from kernel.org, you are running a distribution kernel. +To find out the version of your kernel, run \texttt{uname -r}: + +\cite{linuxkernel}\\ + +Por ejemplo: + +\begin{myscriptlisting} + \begin{verbatim} +delivery@delivery-laptop:~$ uname -r +3.16.0-33-generic + +delivery@delivery-laptop:~$ uname -a +Linux delivery-laptop 3.16.0-33-generic #44~14.04.1-Ubuntu SMP Fri Mar +13 10:33:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux +\end{verbatim} +\end{myscriptlisting} + +\end{itemize} + +Luego la \textbf{\emph{última versión estable del Kernel de Linux}} es la versión: \textbf{4.17}. +Esto puede verificarse en el sitio web oficial de Linux Kernel Organization Inc (https://www.kernel.org/). +Como se presenta en la figura debajo: + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/LinuxKernel.jpg} +\caption{\emph{The Linux Kernel Archives \cite{linuxkernel1}.}} +\end{figure} + +\clearpage + +\subsubsection{Versión mas usada de kernel estable en \ac{gnu}/Linux} +Considerando que la versión estable 2.6.10 del Kernel de Linux se lanzó en Diciembre del 2003 y aún +esta vigente y en use podemos decir que esta versión estable es la ampliamente desplegada y utilizada. + +Versión 2.6, lanzada el 17 December 2003. Versión actual 2.6.32 - 2.6.39 +\ac{eol} (maintained from May 2011 to August 2011), last stable release of the 2.6 kernel series. +longterm: 2.6.32.67 2015-06-03 + +Por su parte, cabe considerar la versión y los releases 3.0 del Kernel ya que esta versión tomó lugar +el 21 de Julio del 2011 y su último release longterm:3.18.21 (2015-08-31) demostrando una validez de ya +cinco años. + +\cite{wikikernel1} + +\subsection{Actividad 2.} + +\subsubsection{¿De qué distribución deriva \ac{gnu}/Linux Fedora?} + + +\emph{``The Fedora Project is a global partnership of free software community members. +The Fedora Project is sponsored by \textbf{\emph{Red Hat}}, which invests in our infrastructure and resources to +encourage collaboration and incubate innovative new technologies. Some of these technologies may later +be integrated into Red Hat products. They are developed in Fedora and produced under a free and open +sogenurce license from inception, so other free software communities and projects are free to study, adopt, +and modify them. +Read an overview to learn more about our mission, our community, our governance, and what makes Fedora +unique. You can also learn about our vision and core values the foundations upon which the project is +built. We also have information relating to our user base, and the objectives for our technical work.''} + +\cite{fedoraproject} + +\subsection{Actividad 3.} + +\subsubsection{Imprimir pantalla del escritorio \ac{gnome}} + +Imprimir pantalla del escritorio \ac{gnome} +y guardar la imagen en el home del usuario dentro de un directorio llamado imagen. +Cabe mencionar que el usuario es nombrado \textbf{\emph{delivery}}. + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad3.jpg} +\caption{\emph{Capturando pantalla en ubuntu 14.04.}} +\end{figure} + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad3b.jpg} +\caption{\emph{Verificando que la captura se haya guardado correctamente en la folder \\ +/home/delivery/image/.}} +\end{figure} + +\pagebreak + +\subsection{Actividad 4.} + + \subsubsection{Navegación de directorios con Nautilus} + +\textbf{Navegar a través del Nautilus los siguientes directorios: +/home +/etc/ +/var/log +/root +/dev +¿En que directorio/s no pudo acceder? ¿Qué tienen de particular los íconos de estos directorios a los que no pudo acceder?\\} + +Como usuario sin privilegios a través del navegador de archivos \textbf{\emph{nautilus}} +uno solo podría ingresar y tener control absoluto de los directorios +y archivos dentro de \textbf{\emph{/home}}. Luego con este mismo usuario acceder a \textbf{\emph{/etc, /var/log, /dev}}, pero +sin permisos de escritura o ejecución, solo lectura. Finalmente, el directorio \textbf{\emph{/root}} no es +accesible a través de la interfaz gráfica ya que no poseemos permisos suficientes para realizar esta +acción. Las carpetas a las cuales carecemos de acceso y permisos se presentan con un candado en el +icono (considerar que esto no ocurre para el nuevo ubuntu 14.04 como puede verse en las capturas de +pantalla). + +Lo detallado en el párrafo anterior puede apreciarse en las siguientes capturas: + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4a.jpg} +\caption{\emph{Navegación de archivos con Nautius folder: /home .}} +\end{figure} + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4b.jpg} +\caption{\emph{Navegación de archivos con Nautius folder: /etc .}} +\end{figure} + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4c.jpg} +\caption{\emph{Navegación de archivos con Nautius folder: /root.}} +\end{figure} + +\clearpage +\pagebreak + +\subsection{Actividad 5.} + +\subsubsection{LibreOffice Writer: Guardado de archivos .doc en .odt } + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad5.jpg} +\caption{\emph{LibreOffice Writer: Guardado de archivos .doc en .odt.}} +\end{figure} + +A un archivo .doc, guardarlo como .odt con LibreOffice Writer. + +\pagebreak + +\subsection{Actividad 6.} + +\subsubsection{Consolas virtuales y \ac{gtk}-Warning} + +\textbf{Ejecute la siguiente secuencia de teclas: +Alt+F2 y escriba ``gedit``. +¿Qué sucedió? ¿Qué acción realiza la ejecución de Alt+F2?}\\ + +Accedemos a la consola virtual número dos. Por su parte no es posible abrir un aplicativo que +requiere de \ac{gui} para funcionar. + +Esto es un evento relacionado a la seguridad de SO normal. Linux es un sistema multiusuario +donde muchos usuarios podrían estar loggeados, localmente o de forma remota en una sesión GUI. +Luego, ¿qué ocurriría si otros users podrían abrir ventanas en tu escritorio sin su consentimiento? +Claramente esto no sería un comportamiento deseado del SO. Por su parte esto permitiría abrir una +ventana de gedit u otra aplicación más crítica como un navegador web de forma tal que a este usuario +mal intencionado le permita leer todos nuestros inputs por teclado, pudiendo incluir datos confidenciales +como nuestra cuenta bancaria. Es por esto que se utiliza \textbf{\emph{xhost}} \footnote{NAME: +xhost - server access control program for X. SYNOPSIS: xhost [[+-]name ...] DESCRIPTION: The xhost +program is used to add and delete host names or user names to the list allowed to make connections +to the X server. In the case of hosts, this provides a rudimentary form of privacy control and security. +It is only sufficient for a workstation (single user) environment, although it does limit the +worst abuses. Environments which require more sophisticated measures should implement +the user-based mechanism or use the hooks in the protocol for passing other authentication data +to the server.\cite{xhost}}. +Por otro lado, la sesión CLI de root no sabe en cual de los displays o pantallas debe abrir la ventana. +Nuevamente cabe remarcar que podría haber varias, tanto locales como remotas. Por lo antedicho surge +la necesidad de declarar la variable de entorno \textbf{\emph{DISPLAY}}. De todas formas existen +soluciones más prácticas desde la \ac{gui} de usuario normal para manejar estás sesiones, +\textbf{\emph{gnomesu}} en \ac{gnome} y \textbf{\emph{kdesu}} en \ac{kde}. Las cuales básicamente son parte +de una librería para proveer de privilegios de super usuario a las aplicaciones de \ac{gnome}.\\ + +Cabe mencionar:\\ + +\emph{''\textbf{Virtual consoles:} In the default Debian system, there are \textbf{six switchable VT100-like character consoles available +to start the command shell directly on the Linux host}. Unless you are in a \ac{gui} environment, +you can switch between the virtual consoles by \textbf{pressing the Left-Alt-key and one of the F1 — F6 +keys simultaneously}. Each character console allows independent login to the account and offers the +multiuser environment. This multiuser environment is a great Unix feature, and very addictive. +If you are under the X Window System, you gain access to the character console 1 by pressing +Ctrl-Alt-F1 key, i.e., the left-Ctrl-key, the left-Alt-key, and the F1-key are pressed together. +You can get back to the X Window System, normally running on the virtual console 7, by pressing Alt-F7. +You can alternatively change to another virtual console, e.g. to the console 1, from the commandline.``} + +\texttt{\# chvt 1\\} + +\cite{osamu} + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad6.jpg} +\caption{\emph{Linux virtual consoles.}} +\end{figure} + +\clearpage +\pagebreak + +\section{Ejercicios Tema3: Línea de Comandos. Comandos básicosI } + +\begin{itemize} + \item Concepto de lineas de comando. Presentación de shell bash. + \item Entender la naturaleza de los privilegios del usuario root. + \item Moverse y explorar el árbol de jerarquía del Sistema Operativo: ls, cd, mkdir, rmdir. + \item Copiar, eliminar y renombrar archivos: cp, rm, mv, ln. + \item Usuarios y permisos: chown, chmod, adduser, addgroup + \item Crear y ver archivos: touch, less. +\end{itemize} + +\subsection{Actividad 1.} + +\subsubsection{\ac{cd} command} + +\textbf{Desde el directorio /home/curso, cambiar al directorio /etc vía path absoluto. +Vuelva al directorio /home/curso vía path absoluto.} + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:~/curso$ pwd +/home/delivery/curso +delivery@ubuntu:~/curso$ cd /etc/ +delivery@ubuntu:/etc$ pwd +/etc +delivery@ubuntu:/etc$ cd /home/delivery/curso/ +delivery@ubuntu:~/curso$ pwd +/home/delivery/curso + \end{verbatim} +\end{myscriptlisting} + +\textbf{Repita la acción anterior vía path relativo. +Ejecutar el comando pwd en ambos casos para confirmar el cambio de directorio.} + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:~/curso$ pwd +/home/delivery/curso +delivery@ubuntu:~/curso$ cd /etc/ +delivery@ubuntu:/etc$ pwd +/etc +delivery@ubuntu:/etc$ cd ~delivery/curso/ +delivery@ubuntu:~/curso$ pwd +/home/delivery/curso + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 2.} + +\subsubsection{Sudo y permisos de administración} +\textbf{¿Por qué el usuario ``dui`` tiene permisos de administración mientras que el usuario ``curso`` no? +Algunas pistas: +a.- Revisar a que grupo pertenecen el usuario ``dui`` y ``curso`` +b.- Revisar el contenido del archivo /etc/sudoers (archivo de configuración de \ac{sudo}) +y ver que permisos tienen los grupos a los cuales pertenecen el usuario ''dui'' y ``curso''.\\} + +Se verifican los usuarios creados en el sistema a través del archivo de sistema \textbf{\emph{passwd}} +donde se encuentran definidas las cuentas de usuario. +Por otro lado, puede verse que el user \textbf{\emph{curso}} no se encuentra en el archivo +\textbf{\emph{sudoers}} por lo que carece de asignación de privilegios de súper usuario a través +del comando \textbf{\emph{\ac{sudo}}}.\\ + +\textbf{NOTA:} +se utilizó el user \textbf{\emph{delivery}} en lugar de \textbf{\emph{dui}}. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ cat /etc/passwd | egrep -i 'root|delivery|curso' +root:x:0:0:root:/root:/bin/bash +delivery:x:1000:1000:delivery,,,:/home/delivery:/bin/bash +curso:x:1001:1001:curso,,,:/home/curso:/bin/bash +curso@ubuntu:~$ sudo su +[sudo] password for curso: +curso is not in the sudoers file. This incident will be reported. + \end{verbatim} +\end{myscriptlisting} + +Luego con el usuario \textbf{\emph{delivery}} se lee y validan los privilegios +declarados en \textbf{\emph{/etc/sudoers}}. Como ser el user \textbf{\emph{root}}, con permisos +\textbf{\emph{ALL=(ALL:ALL) ALL}} (se detallará debajo su significado) y los más relevante +para esta práctica revisar que se incluye una línea para permitir a todos los miembros +del grupo \textbf{\emph{\ac{sudo}}} para ejecutar cualquier comando: + +\begin{verbatim} +# Allow members of group sudo to execute any command +%sudo ALL=(ALL:ALL) ALL +\end{verbatim} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ su - delivery +Password: +delivery@ubuntu:~$ sudo cat /etc/sudoers + +# +# This file MUST be edited with the 'visudo' command as root. +# +# Please consider adding local content in /etc/sudoers.d/ instead of +# directly modifying this file. +# +# See the man page for details on how to write a sudoers file. +# +Defaults env_reset +Defaults mail_badpass +Defaults secure_path=``/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`` + +# Host alias specification + +# User alias specification + +# Cmnd alias specification + +# User privilege specification +root ALL=(ALL:ALL) ALL + +# Members of the admin group may gain root privileges +%admin ALL=(ALL) ALL + +# Allow members of group sudo to execute any command +%sudo ALL=(ALL:ALL) ALL + +# See sudoers(5) for more information on ``#include`` directives: + +#includedir /etc/sudoers.d + \end{verbatim} +\end{myscriptlisting} + +Finalmente se verifica en \textbf{\emph{/etc/group}} lo comentado anteriormente +donde el user \textbf{\emph{delivery}} pertenece al grupo \ac{sudo} con \textbf{\emph{GID = 27}} +y el user \textbf{\emph{curso}} no. + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:~$ cat /etc/group | egrep -i 'curso|delivery|root' +root:x:0: +adm:x:4:syslog,delivery +cdrom:x:24:delivery +sudo:x:27:delivery +dip:x:30:delivery +plugdev:x:46:delivery +delivery:x:1000: +lpadmin:x:110:delivery +sambashare:x:111:delivery +curso:x:1001: + \end{verbatim} +\end{myscriptlisting} + + +\textbf{Sudo} is a program designed to let system administrators allow some users to execute some commands +as root (or another user). The basic philosophy is to give as few privileges as possible but still +allow people to get their work done. \ac{sudo} is also an effective way to log who ran which command and when. + +As of most Debian based distributions, if you ask for the Desktop task during the installation, that pulls in \ac{sudo} with +a default configuration that automatically grants sudo-ing rights to any member of the \ac{sudo} group. +Depending on what user accounts you set up during the install, it's still possible that you may not +have been added to that group - you can check by running groups.\\ + +\textbf{Why \ac{sudo}?} +Using sudo is better (safer) than opening a session as root for a number of reasons, including: +\begin{enumerate} + \item Nobody needs to know the root password (\ac{sudo} prompts for the current user's password). + Extra privileges can be granted to individual users temporarily, and then taken away without the + need for a password change. + + \item It's easy to run only the commands that require special privileges via \ac{sudo}; the rest of the time, +you work as an unprivileged user, which reduces the damage that mistakes can cause. +Auditing/logging: when a \ac{sudo} command is executed, the original username and the command are logged. + + \item For the reasons above, switching to root using \ac{sudo} -i (or sudo su) is usually deprecated because +it cancels the above features. + +\end{enumerate} + +Sudo is a program designed to allow a sysadmin to give limited root privileges to users and log root +activity. The basic philosophy is to give as few privileges as possible but still allow people to get +their work done.\\ + +\cite{debiansudo} + +\%sudo ALL=(ALL) ALL +\begin{itemize} + \item \textbf{\%sudo} the group named "admin" (\% prefix) is the group or users that + are receiving the permises. + \item \textbf{ALL=} The 2nd parameter refers to the host where the before mentioned group or + users will have priviledges. For this exampe in ALL hosts (this will work if you distribute + the same sudoers file to many computers, or if someone access remotely - however no recommended + from a secutiry point of view). + \item \textbf{(ALL)} The third one is the user as you are running the command. In this case + as any target user. + \item \textbf{ALL} The last one is the commands allowed. So the users in sudo group, in any host + as any user including root, can run any command. +\end{itemize} + +\subsection{Actividad 3.} + +\subsubsection{less command} +\textbf{Revisar con el comando "less" el contenido del archivo /etc/passwd y en él buscar a los usuarios +root, curso y dui} + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:~$ less /etc/passwd | egrep 'root|curso|delivery' +root:x:0:0:root:/root:/bin/bash +delivery:x:1000:1000:delivery,,,:/home/delivery:/bin/bash +curso:x:1001:1001:curso,,,:/home/curso:/bin/bash + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 4.} + +\subsubsection{/bin and /sbin} +\textbf{¿Cuál es la diferencia entre los directorios /bin y /sbin?} + +\begin{itemize} + \item \textbf{/bin}\\ + This directory contains executable programs which are needed + in single user mode and to bring the system up or repair it. +\end{itemize} + +\begin{mytinylisting} + \begin{verbatim} +delivery@ubuntu:/sbin$ cd /bin +delivery@ubuntu:/bin$ pwd +/bin +delivery@ubuntu:/bin$ ls +bash chvt fgconsole lesspipe nc ntfstruncate sed +bunzip2 cp fgrep ln nc.openbsd ntfswipe setfacl +busybox cpio findmnt loadkeys netcat open setfont +bzcat dash fuser login netstat openvt setupcon +bzcmp date fusermount loginctl nisdomainname pidof sh +bzdiff dbus-cleanup-sockets getfacl lowntfs-3g ntfs-3g ping sh.distrib +bzegrep dbus-daemon grep ls ntfs-3g.probe ping6 sleep +bzexe dbus-uuidgen gunzip lsblk ntfs-3g.secaudit plymouth ss +bzfgrep dd gzexe lsmod ntfs-3g.usermap plymouth-upstart-bridge static-sh +bzgrep df gzip mkdir ntfscat ps stty +bzip2 dir hostname mknod ntfsck pwd su +bzip2recover dmesg ip mktemp ntfscluster rbash sync +bzless dnsdomainname kbd_mode more ntfscmp readlink tailf +bzmore domainname kill mount ntfsdump_logfile red tar +cat dumpkeys kmod mountpoint ntfsfix rm tempfile +chacl echo less mt ntfsinfo rmdir touch +chgrp ed lessecho mt-gnu ntfsls rnano true +chmod egrep lessfile mv ntfsmftalloc running-in-container udevadm +chown false lesskey nano ntfsmove run-parts + \end{verbatim} +\end{mytinylisting} + +\begin{itemize} + +\item \textbf{/sbin}\\ + Like /bin, this directory holds commands needed to boot the + system, but which are usually not executed by normal users. +\end{itemize} + +\begin{mytinylisting} + \begin{verbatim} +delivery@ubuntu:/sbin$ ls +acpi_available e2fsck fstrim-all iptables-apply mkfs.bfs nameif rmmod +agetty e2image gdisk iptables-restore mkfs.cramfs ntfsclone route +alsa e2label getcap iptables-save mkfs.ext2 ntfscp rtacct +apm_available e2undo getpcaps iptunnel mkfs.ext3 ntfslabel rtmon +apparmor_parser ethtool getty isosize mkfs.ext4 ntfsresize runlevel +badblocks fatlabel halt iwconfig mkfs.ext4dev ntfsundelete setcap +biosdevname fdisk hdparm iwevent mkfs.fat on_ac_power setvtrgb +blkid findfs hwclock iwgetid mkfs.minix pam_tally sfdisk +blockdev fixparts ifconfig iwlist mkfs.msdos pam_tally2 sgdisk +bridge fsck ifdown iwpriv mkfs.ntfs parted shadowconfig +capsh fsck.cramfs ifquery iwspy mkfs.vfat partprobe shutdown +cfdisk fsck.ext2 ifup kbdrate mkhomedir_helper pivot_root slattach +cgdisk fsck.ext3 init killall5 mkntfs plipconfig start +crda fsck.ext4 initctl ldconfig mkswap plymouthd startpar +ctrlaltdel fsck.ext4dev insmod ldconfig.real mntctl poweroff startpar-upstart-inject +debugfs fsck.fat installkernel logsave modinfo rarp start-stop-daemon +depmod fsck.minix ip losetup modprobe raw status +dhclient fsck.msdos ip6tables lsmod mountall reboot stop +dhclient-script fsck.nfs ip6tables-apply MAKEDEV mount.fuse regdbdump sulogin +dmsetup fsck.vfat ip6tables-restore mii-tool mount.lowntfs-3g reload swaplabel +dosfsck fsfreeze ip6tables-save mkdosfs mount.ntfs resize2fs swapoff +dosfslabel fstab-decode ipmaddr mke2fs mount.ntfs-3g resolvconf swapon +dumpe2fs fstrim iptables mkfs mount.vboxsf restart switch_root + \end{verbatim} +\end{mytinylisting} + +Directorios relacionados: + +\begin{itemize} + \item \textbf{/usr/bin}\\ + This is the primary directory for executable programs. Most + programs executed by normal users which are not needed for + booting or for repairing the system and which are not + installed locally should be placed in this directory. + +\item \textbf{/usr/local}\\ + This is where programs which are local to the site typically + go. + + \item \textbf{/usr/local}\\ + This is where programs which are local to the site typically + go. + + \item \textbf{/usr/local/bin}\\ + Binaries for programs local to the site. + + \item \textbf{/usr/local/sbin}\\ + Locally installed programs for system administration. +\end{itemize} + +\cite{wikifhs} + +\subsection{Actividad 5.} + +\subsubsection{Listado de permisos ''ls -la`` command} +\textbf{Liste el contenido del directorio /home/curso (incluido los archivos ocultos). +Se requiere saber el permiso de acceso, dueño y grupo de cada archivo del directorio.} + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:~$ cd /home/delivery/ +delivery@ubuntu:~$ pwd +/home/delivery +delivery@ubuntu:~$ ls -la +total 128 +drwxr-xr-x 19 delivery delivery 4096 Sep 20 19:54 . +drwxr-xr-x 4 root root 4096 Sep 20 19:49 .. +-rw------- 1 delivery delivery 1295 Sep 20 19:38 .bash_history +-rw-r--r-- 1 delivery delivery 220 Sep 16 10:17 .bash_logout +-rw-r--r-- 1 delivery delivery 3637 Sep 16 10:17 .bashrc +drwx------ 14 delivery delivery 4096 Sep 20 19:54 .cache +drwx------ 3 delivery delivery 4096 Sep 20 14:03 .compiz +drwx------ 17 delivery delivery 4096 Sep 20 19:54 .config +drwxrwxr-x 2 delivery delivery 4096 Sep 20 19:41 curso +drwx------ 3 delivery delivery 4096 Sep 20 17:56 .dbus +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Desktop +drwxrwxr-x 3 delivery delivery 4096 Sep 20 19:12 DiploLinux +-rw-r--r-- 1 delivery delivery 33 Sep 20 14:03 .dmrc +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Documents +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Downloads +drwx------ 3 delivery delivery 4096 Sep 20 17:56 .gconf +-rw------- 1 delivery delivery 1590 Sep 20 17:56 .ICEauthority +drwx------ 3 delivery delivery 4096 Sep 19 21:11 .local +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Music +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Pictures +drwx------ 3 delivery delivery 4096 Sep 20 19:54 .pki +-rw-r--r-- 1 delivery delivery 675 Sep 16 10:17 .profile +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Public +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Templates +-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-clipboard.pid +-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-display.pid +-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-draganddrop.pid +-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-seamless.pid +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Videos +-rw------- 1 delivery delivery 51 Sep 20 17:56 .Xauthority +-rw------- 1 delivery delivery 908 Sep 20 17:56 .xsession-errors +-rw------- 1 delivery delivery 1294 Sep 20 17:14 .xsession-errors.old + \end{verbatim} +\end{myscriptlisting} + +\textbf{Permisos a archivos} +Para permitir establecer los permisos en un archivo contamos con el comando chmod. +Este comando funciona con la siguiente sintaxis:\\ + +\texttt{Chmod [opciones] permisos archivo/directorio}\\ + +Antes de adentrarnos en el comando es necesario explicar algunas cosas. Tenemos dos +maneras de asignar permisos a los usuarios, mediante un modo octal y modo carácter.\\ + +\textbf{Modo Octal} +El modo octal responde a la combinación de los tres permisos con las tres clases de +usuario formando un numero binario de 3 cifras donde: + +\begin{itemize} + \item El primer digito corresponde a los permisos del dueño + \item El segundo a los del grupo + \item El tercero al resto de los usuarios +\end{itemize} + +La instrucción quedaría asi:\\ +\texttt{chmod 760 archivo.txt}\\ + +\textbf{Modo carácter} +Posee 3 modificadores que permiten realizar la tarea: +\begin{itemize} + \item + : añade un modo + \item – : elimina un modo + \item = : específica un modo (sobrescribiendo el anterior) +\end{itemize} + +Los modos son \textbf{r (read), w (write), x(ejecutar)}. y los usuarios están representados por: +\begin{itemize} + \item u: dueño + \item g: grupo + \item o : otros + \item a : todos +\end{itemize} + +Entonces si quiero agregar el permiso de escribir a todos, escribo:\\ +\texttt{chmod a+w archivo.txt}\\ + +\cite{mirizioe} + +\subsection{Actividad 6.} + +\subsubsection{Listado de permisos ''ls -l`` command} +\textbf{Liste el contenido del directorio /etc. Debe aparecer cada archivo contenido en una +linea aparte sin detalles de permisos de acceso, dueño o grupo.} + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:/etc$ pwd +/etc +delivery@ubuntu:/etc$ ls -1 +acpi +adduser.conf +alternatives +anacrontab +apg.conf +apm +apparmor +apparmor.d +apport +apt +at.deny +at-spi2 +avahi +bash.bashrc +bash_completion +bash_completion.d +bindresvport.blacklist +blkid.conf +blkid.tab +bluetooth +... +update-manager +update-motd.d +update-notifier +UPower +upstart-xsessions +vim +vtrgb +w3m +wgetrc +wodim.conf +wpa_supplicant +X11 +xdg +xml +zsh_command_not_found + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 7.} + +\subsubsection{mkdir make directory} +\textbf{Cree en el directorio /home/curso la siguiente estructura de directorio} + +\begin{verbatim} +./raiz +|___bin +|___home +| |___ApellidoNombre +| |___Desktop +| |___bin +|___var +..|__log +\end{verbatim} + +\begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso +curso@ubuntu:~$ mkdir ./raiz ./raiz/bin ./raiz/home ./raiz/home/BarrireroExequiel +./raiz/home/Desktop ./raiz/home/bin ./raiz/var ./raiz/var/log + +curso@ubuntu:~$ ls -R +.: +raiz + +./raiz: +bin home var + +./raiz/bin: + +./raiz/home: +BarrireroExequiel bin Desktop + +./raiz/home/BarrireroExequiel: + +./raiz/home/bin: + +./raiz/home/Desktop: + +./raiz/var: +log + +./raiz/var/log: +\end{verbatim} + +\textbf{¿Qué significa ./?}\\ +Refiere a \textbf\emph{{''este directorio``}}, es decir al directorio actual en el que nos +encontramos posicionados en la terminal. + +\subsection{Actividad 8.} + +\subsubsection{Creación de archivos con ''touch``} +\textbf{Sobre el esquema de directorios creado en la Actividad 7, cree con +``touch`` un archivo en /home/curso/raiz/var/log/messages} + +\begin{verbatim} + curso@ubuntu:~$ touch /home/curso/raiz/var/log/messages +curso@ubuntu:~$ ls -la /home/curso/raiz/var/log/ +total 8 +drwxrwxr-x 2 curso curso 4096 Sep 29 18:58 . +drwxrwxr-x 3 curso curso 4096 Sep 20 22:38 .. +-rw-rw-r-- 1 curso curso 0 Sep 29 18:57 messages +\end{verbatim} + +\subsection{Actividad 9.} + +\subsubsection{Cambio de permisos con ''chmod``} +\textbf{Liste con ``ls`` los permisos de acceso del archivo creado en la Actividad 8. +Luego con ``chmod`` cambie los permisos de acceso del archivo creado en la Actividad 8 +a rwx solo para el grupo.} + +\begin{verbatim} +curso@ubuntu:~$ ls -la /home/curso/raiz/var/log/ +total 8 +drwxrwxr-x 2 curso curso 4096 Sep 29 18:58 . +drwxrwxr-x 3 curso curso 4096 Sep 20 22:38 .. +-rw-rw-r-- 1 curso curso 0 Sep 29 18:57 messages +curso@ubuntu:~$ chmod g+rwx /home/curso/raiz/var/log/messages +curso@ubuntu:~$ ls -la /home/curso/raiz/var/log/ +total 8 +drwxrwxr-x 2 curso curso 4096 Sep 29 18:58 . +drwxrwxr-x 3 curso curso 4096 Sep 20 22:38 .. +-rw-rwxr-- 1 curso curso 0 Sep 29 18:57 messages +\end{verbatim} + +\subsection{Actividad 10.} + +\subsubsection{Eliminar recursivamente con ''rm`` command} +\textbf{Elimine recursivamente el directorio ``/home/curso/raiz/var``} + +\begin{verbatim} +curso@ubuntu:~$ rm -r /home/curso/raiz/var/ +curso@ubuntu:~$ ll /home/curso/raiz/ +total 16 +drwxrwxr-x 4 curso curso 4096 Sep 29 19:07 ./ +drwxr-xr-x 17 curso curso 4096 Sep 29 19:02 ../ +drwxrwxr-x 2 curso curso 4096 Sep 20 22:38 bin/ +drwxrwxr-x 5 curso curso 4096 Sep 20 22:38 home/ +\end{verbatim} + +\subsection{Actividad 11.} + +\subsubsection{Copia recursiva de directorio con ''cp`` command} +\textbf{Cree el directorio /home/curso/raiz/etc. +Luego copie TODO el contenido del directorio /etc/ dentro de /home/curso/raiz/etc} + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~$ mkdir /home/curso/raiz/etc +curso@ubuntu:~$ cp /etc/* /home/curso/raiz/etc/ + +curso@ubuntu:~$ sudo cp -R /etc/* /home/curso/raiz/etc/ +curso@ubuntu:~$ ls -l /home/curso/raiz/etc/ +total 1016 +drwxr-xr-x 3 root root 4096 Sep 29 19:21 acpi +-rw-r--r-- 1 curso curso 2981 Sep 29 19:21 adduser.conf +drwxr-xr-x 2 root root 4096 Sep 29 19:21 alternatives +-rw-r--r-- 1 curso curso 401 Sep 29 19:21 anacrontab +-rw-r--r-- 1 curso curso 112 Sep 29 19:21 apg.conf +drwxr-xr-x 6 root root 4096 Sep 29 19:21 apm +drwxr-xr-x 3 root root 4096 Sep 29 19:21 apparmor +drwxr-xr-x 8 root root 4096 Sep 29 19:21 apparmor.d +drwxr-xr-x 4 root root 4096 Sep 29 19:21 apport +drwxr-xr-x 6 root root 4096 Sep 29 19:21 apt +-rw-r----- 1 root root 144 Sep 29 19:21 at.deny +drwxr-xr-x 2 root root 4096 Sep 29 19:21 at-spi2 +drwxr-xr-x 3 root root 4096 Sep 29 19:21 avahi +-rw-r--r-- 1 curso curso 2177 Sep 29 19:21 bash.bashrc +-rw-r--r-- 1 curso curso 45 Sep 29 19:21 bash_completion +drwxr-xr-x 2 root root 4096 Sep 29 19:21 bash_completion.d +-rw-r--r-- 1 curso curso 356 Sep 29 19:21 bindresvport.blacklist +-rw-r--r-- 1 curso curso 321 Sep 29 19:21 blkid.conf +lrwxrwxrwx 1 root root 15 Sep 29 19:21 blkid.tab -> /dev/.blkid.tab +drwxr-xr-x 2 root root 4096 Sep 29 19:21 bluetooth +drwxr-xr-x 2 root root 4096 Sep 29 19:21 bonobo-activation +drwxr-xr-x 2 root root 4096 Sep 29 19:21 byobu +drwxr-xr-x 3 root root 4096 Sep 29 19:21 ca-certificates +... +-rw-r--r-- 1 curso curso 321 Sep 29 19:21 updatedb.conf +drwxr-xr-x 3 root root 4096 Sep 29 19:21 update-manager +drwxr-xr-x 2 root root 4096 Sep 29 19:21 update-motd.d +drwxr-xr-x 2 root root 4096 Sep 29 19:21 update-notifier +drwxr-xr-x 2 root root 4096 Sep 29 19:21 UPower +-rw-r--r-- 1 curso curso 222 Sep 29 19:21 upstart-xsessions +drwxr-xr-x 2 root root 4096 Sep 29 19:21 vim +lrwxrwxrwx 1 root root 23 Sep 29 19:21 vtrgb -> /etc/alternatives/vtrgb +drwxr-xr-x 2 root root 4096 Sep 29 19:21 w3m +-rw-r--r-- 1 curso curso 4812 Sep 29 19:21 wgetrc +-rw-r--r-- 1 curso curso 1343 Sep 29 19:21 wodim.conf +drwxr-xr-x 2 root root 4096 Sep 29 19:21 wpa_supplicant +drwxr-xr-x 10 root root 4096 Sep 29 19:21 X11 +drwxr-xr-x 4 root root 4096 Sep 29 19:21 xdg +drwxr-xr-x 2 root root 4096 Sep 29 19:21 xml +-rw-r--r-- 1 curso curso 349 Sep 29 19:21 zsh_command_not_found + \end{verbatim} +\end{myscriptlisting} + +\textbf{NOTA:} +man for ''cp`` command + +\begin{verbatim} +CP(1) + +NAME + cp - copy files and directories + +SYNOPSIS + cp [OPTION]... [-T] SOURCE DEST + cp [OPTION]... SOURCE... DIRECTORY + cp [OPTION]... -t DIRECTORY SOURCE... + +DESCRIPTION + Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. +... + -R, -r, --recursive + copy directories recursively +... +\end{verbatim} + +\subsection{Actividad 12.} + +\subsubsection{Renombrar archivos con ''mv`` command} +\textbf{Renombre con ``mv`` el directorio /home/curso/raiz por /home/curso/root} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls -ls /home/curso/ +total 2008 + 4 drwxrwxr-x 3 curso curso 4096 Sep 21 19:25 BarrireroExequiel +1968 -rw-rw-r-- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz + 4 drwxr-xr-x 2 curso curso 4096 Sep 29 19:18 Desktop + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 14:06 Documents + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 19:30 Downloads + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 14:06 Music + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 20:53 Pictures + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 14:06 Public + 4 drwxrwxr-x 5 curso curso 4096 Sep 29 19:20 root + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 14:06 Templates + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 14:06 Videos + +curso@ubuntu:~$ ls -ls /home/curso/ | grep root + 4 drwxrwxr-x 5 curso curso 4096 Sep 29 19:20 root + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 13.} + +\subsubsection{Copia de dirs mediante path relativo} +\textbf{Copie el directorio /home/curso/root/var/log a /home/curso/root/var/log.original +utilizando PATH relativo desde /home/curso} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso +curso@ubuntu:~$ cp -R ./root/var/log/ ./root/var/log.original + +curso@ubuntu:~$ pwd +/home/curso +curso@ubuntu:~$ ls ./root/var/ +log log.original + +curso@ubuntu:~$ ls -la ./root/var/ +total 16 +drwxrwxr-x 4 curso curso 4096 Sep 29 19:44 . +drwxrwxr-x 6 curso curso 4096 Sep 29 19:42 .. +drwxrwxr-x 2 curso curso 4096 Sep 29 19:42 log +drwxrwxr-x 2 curso curso 4096 Sep 29 19:44 log.original + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 14.} + +\subsubsection{Enlaces simbólicos ''ln'' command} +\textbf{Cree un link simbólico de /etc/group en /home/curso} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ln -s /etc/group /home/curso/ +curso@ubuntu:~$ ls -la /home/curso/ | grep group +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group + +curso@ubuntu:~$ ls -i /home/curso/ | grep group +533568 group +curso@ubuntu:~$ ls -i /etc/ | grep group +418231 group + \end{verbatim} +\end{myscriptlisting} + + +\textbf{Enlaces de Ficheros \\} + +Los enlaces ofrecen la posibibilidad de dar a un único fichero múltiples nombres. +Estos ficheros van a ser identificados mediante el sistema operativo por su numero de inodo, +el cual se genera de forma semialeatoria. Solo para ficheros y sólo en particiones linux. + +Un inodo es un enlace que resulta el único identificador del fichero para el sistema de ficheros. +Un directorio, por tanto, será una lista de números de inodo con sus correspondientes nombres de fichero. +Cada nombre de fichero en un directorio es un enlace a un inodo particular. + +\begin{itemize} + \item \textbf{\emph{Enlaces Duros o hard links:}} + + La orden ln es usada para crear enlaces para un fichero. + +Usando \texttt{ls -i}, veremos el numero de inodo para el fichero. + +\# \texttt{ln fichero} creará un enlace para fichero. + +\texttt{ln fichero fhichero2} creará un enlace llamado fichero2 que corresponderá al mismo fichero. + +Utilizando \texttt{ls -i} veremos que los dos ficheros tienen el mismo inodo. + +\# \texttt{ls -i fichero fichero2} + +Un fichero estará definitivamente eliminado del sistema cuando no queden enlaces a el. En realidad, +la norma es que los ficheros tengan solamente un enlace duro. + +Un modo de saber cuantos enlaces tiene un fichero es con la orden \texttt{ls -l}. +Fíjate en la salida estándar por pantalla, la primera columna indica los permisos, +como vimos en lecciones pasadas, y una segunda columna con un número te indicará el número +de enlaces del fichero, o, si es un directorio, el número de directorios que contiene, +en nuestro ejemplo te mostraría lo siguiente: + +\texttt{ls -l fichero fichero2} + +\texttt{-rw-r-r- 2 root root 12 Aug 5 16:51 fichero} + +\texttt{-rw-r-r- 2 root root 12 Aug 5 16:50 fichero2} + +un directorio, por tanto, no es otra cosa que un fichero que contiene información sobre la +dirección del enlace al inodo. También, cada directorio tiene al menos dos enlaces duros en +el: . (punto) enlace que apunta a si mismo y .. (punto punto) enlace que apunta al directorio padre. +En el directorio raíz (/), el enlace .. (punto punto) simplemente apunta a /. + +\textbf{Buscar todos los enlaces duros a un fichero.} +En ciertas ocasiones puede resultar difícil localizar en que partes del árbol de directorio +existen enlaces a determinados archivos. Para encontrarlos lo podemos hacer con la orden find: +\texttt{find / -inum número} + +\item \textbf{\emph{Enlaces Simbólicos}} + +Un enlace simbólico permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo, +es decir, en realidad lo que hacemos es enlazar directamente al nombre del fichero. +Esto podría parecerse bastante a lo que Windows nos tiene acostumbrados. + +Con la orden \texttt{ln -s} creamos un enlace simbólico a un fichero. Por ejemplo: + +\texttt{ln -s archivo archivo2} + +Hay que tener en cuenta que el nombre del enlace simbólico no soporta rutas completas, +por lo que para crearlo, será imprescindible situarse dentro del directorio en el que queramos +que quede colocado dicho enlace. + +Si lo verificamos de nuevo con la orden \texttt{ls -l} vemos que el fichero fichero es +un enlace simbólico apuntando a fichero2 + +\texttt{ls -l fichero fichero2} + +Los bits de permisos en un enlace simbólico no se usan (siempre aparecen como (rwxrwxrwx). +En su lugar, los permisos del enlace simbólico son determinados por los permisos del fichero apuntado. +Asimismo, si el fichero apuntado es eliminado, los enlaces simbólicos permanecen, pero ya no +serán válidos y carecerán de sentido. +\end{itemize} + +Los enlaces duros y simbólicos son similares en su funcionamiento, pero hay algunas diferencias. +Pueden crearse enlaces simbólicos a un fichero que no esté en el mismo dispositivo de almacenamiento. +Los enlaces simbólicos son procesados por el núcleo de forma diferente a los duros, lo cual es solo +una diferencia técnica, pero a veces importante. Los enlaces simbólicos son de ayuda puesto que +identifican al fichero al que apuntan; con enlaces duros no es tan fácil saber que fichero esta +enlazado al mismo inodo. + +Aunque en un principio no pudiera parecernos que los enlaces valgan para mucho, el sistema +operativo los usa muy a menudo, Los enlaces simbólicos son, por ejemplo, especialmente +importantes para las imágenes de las librerías compartidas en /lib, lo que facilita mucho la +conexión de los diferentes programas con esas librerías. + +\cite{utlai} + + +\subsection{Actividad 15.} + +\subsubsection{Navegación de directorios con Nautilus} +\textbf{Luego de la ejecución de un comando ls -l ¿Qué significa el número que se +encuentra entre el listado de permisos y el nombre del usuario dueño?\\ \\ +\texttt{curso@atlas:~> ls –l}\\ +\texttt{-rwx------ 1 curso curso 11 2011-05-11 23:56 password}}\\ + +Un modo de saber cuantos enlaces tiene un fichero es con la orden \texttt{ls -l}. +Fíjate en la salida estándar por pantalla, la primera columna indica los permisos, +como vimos en lecciones pasadas, y una segunda columna con un número te indicará el número +de enlaces del fichero, o, si es un directorio, el número de directorios que contiene, +en nuestro ejemplo te mostraría lo siguiente:\\ + +\texttt{ls -l fichero fichero2} + +\texttt{-rw-r-r- 2 root root 12 Aug 5 16:51 fichero} + +\texttt{-rw-r-r- 2 root root 12 Aug 5 16:50 fichero2}\\ + +Un directorio, por tanto, no es otra cosa que un fichero que contiene información sobre la +dirección del enlace al inodo. También, cada directorio tiene al menos dos enlaces duros en +el: . (punto) enlace que apunta a si mismo y .. (punto punto) enlace que apunta al directorio padre. +En el directorio raíz (/), el enlace .. (punto punto) simplemente apunta a /. + +\cite{utlai} + +\subsection{Actividad 16.} + +\subsubsection{Interpertación de comandos} +Explicar cada uno de los 6 comandos siguientes: + +\begin{myscriptlisting} + \begin{verbatim} +curso@atlas:~/borrar$ touch hola +curso@atlas:~/borrar$ ls -l +total 0 +-rw-r--r-- 1 curso users 0 mar 26 23:45 hola +curso@atlas:~/borrar$ chmod u-w . +curso@atlas:~/borrar$ touch chau +touch: no se puede efectuar `touch' sobre «chau»: Permiso denegado +curso@atlas:~/borrar$ touch hola +curso@atlas:~/borrar$ rm hola +rm: no se puede borrar «hola»: Permiso denegado + \end{verbatim} +\end{myscriptlisting} + +\begin{enumerate} + \item \texttt{curso@atlas:~/borrar\$ touch hola} + + \textbf{Crea el archivo ``hola'' dentro de /home/curso/borrar.}\\ + +TOUCH(1) +NAME + touch - change file timestamps + +SYNOPSIS + touch [OPTION]... FILE... + +DESCRIPTION + Update the access and modification times of each FILE to the current time. + A FILE argument that does not exist is created empty, unless -c or -h is supplied.\\ + + \item \texttt{curso@atlas:~/borrar\$ ls -l} + +\texttt{total 0} + +\texttt{-rw-r--r-- 1 curso users 0 mar 26 23:45 hola} + +\textbf{Se lista el contenido del directorio /home/user/borrar}\\ + +LS(1) + +NAME + ls - list directory contents + +SYNOPSIS + ls [OPTION]... [FILE]... + +DESCRIPTION + List information about the FILEs (the current directory by default). + Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. + Mandatory arguments to long options are mandatory for short options too. + + -l use a long listing format + + + \item \texttt{curso@atlas:~/borrar\$ chmod u-w .} + + \textbf{Se cambian los permisos del directorio actual /home/user/borrar. + Se quita el permiso de escritura para el user actual (curso) el cual ya no + podrá escribir (write) un cambio en este directorio.}\\ + +CHMOD(1) + +NAME + chmod - change file mode bits + +SYNOPSIS + chmod [OPTION]... MODE[,MODE]... FILE... + chmod [OPTION]... OCTAL-MODE FILE... + chmod [OPTION]... --reference=RFILE FILE... + +DESCRIPTION + This manual page documents the GNU version of chmod. chmod changes the + file mode bits of each given file according to mode, which can be either a symbolic + representation of changes to make, or an octal number representing the bit + pattern for the new mode bits. + + The format of a symbolic mode is [ugoa...][[+-=][perms...]...], where perms + is either zero or more letters from the set rwxXst, or a single letter from the + set ugo. Multiple symbolic modes can be given, separated by commas. + +\item \texttt{curso@atlas:~/borrar\$ touch chau} + +\texttt{touch: no se puede efectuar `touch' sobre «chau»: Permiso denegado} + +\textbf{Se intenta crear el archivo ``chau'' dentro del directorio /home/curso/borrar +lo cual no será posible ya que no disponemos más de write permisses.}\\ + +\item \texttt{curso@atlas:~/borrar\$ touch hola} + +\textbf{Se reailza ``touch hola`` el cual no aplica ningún cambio evidente ya que +el archivo ''hola`` ya había sido creado en el paso 1).}\\ + +\item \texttt{curso@atlas:~/borrar\$ rm hola} + +\texttt{rm: no se puede borrar «hola»: Permiso denegado} + +\textbf{Se intenta borrar el archivo ``hola'' dentro del directorio /home/curso/borrar +lo cual no será posible ya que no disponemos más de write permisses.}\\ + +\end{enumerate} + +\pagebreak + +\section{Ejercicios Tema 4: Linea de comandos. Comandos básicos II } + +\begin{itemize} + \item Búsqueda de archivos: locate, find. + \item Obtener información de uso de programas: man. + \item Buscar expresiones: grep. + \item Monitorear el uso de espacio: du, df. + \item Archivar y comprimir archivos: tar, gzip, bzip2. +\end{itemize} + + +\subsection{Actividad 1.} + +\subsubsection{``find'' and ``locate'' commands} + +\textbf{Si comparamos el comando ``find`` y ''locate'' ¿Cúal posee mayor +velocidad de respuesta? ¿Porqué?.}\\ + +\textbf{Find Files Using Locate} +An alternative to using \textbf{emph{find}} is the \textbf{emph{locate}} command. +This command is often quicker and can search the entire file system with ease.\\ + +You can install the command with apt-get: + +\texttt{sudo apt-get update} + +\texttt{sudo apt-get install mlocate}\\ + +The reason locate is faster than find is because it relies on a database of the +files on the filesystem. + +The database is usually updated once a day with a cron script, but you can update it manually +by typing: + +\texttt{sudo updatedb}\\ + +Run this command now. Remember, the database must always be up-to-date if you want +to find recently acquired or created files.\\ + +\cite{digitalocean} + +\subsection{Actividad 2.} + +\subsubsection{locate -d command} + +\textbf{Si hacemos uso del comando locate ¿Qué significa la opción -d? Actualice la base de +datos de locate, y busque todos los archivos cuyo nombre contenga la palabra bash +dentro del directorio /etc.}\\ + + + +La opción -d se utiliza según se especifica debajo:\\ + +-d, --database DBPATH + Replace the default database with DBPATH. DBPATH is a :-separated list of database + file names. If more than one --database option is specified, the + resulting path is a concatenation of the separate paths.\\ + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ sudo updatedb +curso@ubuntu:~$ locate '/etc/*bash*' +/etc/bash.bashrc +/etc/bash_completion +/etc/bash_completion.d +/etc/apparmor.d/abstractions/bash +/etc/bash_completion.d/apport_completion +/etc/bash_completion.d/axi-cache +/etc/bash_completion.d/debconf +/etc/bash_completion.d/desktop-file-validate +/etc/bash_completion.d/grub +/etc/bash_completion.d/initramfs-tools +/etc/bash_completion.d/insserv +/etc/bash_completion.d/m-a +/etc/bash_completion.d/pon +/etc/bash_completion.d/pulseaudio-bash-completion.sh +/etc/bash_completion.d/ufw +/etc/bash_completion.d/upstart +/etc/profile.d/bash_completion.sh +/etc/skel/.bash_logout +/etc/skel/.bashrc +\end{verbatim} +\end{myscriptlisting} + +locate(1) + +NAME + locate - find files by name + +SYNOPSIS + locate [OPTION]... PATTERN... + +DESCRIPTION + locate reads one or more databases prepared by updatedb(8) and writes file names matching + at least one of the PATTERNs to standard output, one per line. + + If --regex is not specified, PATTERNs can contain globbing characters. + If any PATTERN contains no globbing characters, locate behaves as if the pattern + were *PATTERN*. + + By default, locate does not check whether files found in database still exist (but it does + require all parent directories to exist if the database was built + with --require-visibility no). locate can never report files created after the most + recent update of the relevant database. + +EXIT STATUS + locate exits with status 0 if any match was found or if locate was invoked with one + of the --limit 0, --help, --statistics or --version options. If no + match was found or a fatal error was encountered, locate exits with status 1. + + Errors encountered while reading a database are not fatal, search continues in other + specified databases, if any. + +OPTIONS + -A, --all + Print only entries that match all PATTERNs instead of requiring only one of + them to match. + + -b, --basename + Match only the base name against the specified patterns. + This is the opposite of --wholename. + + -c, --count + Instead of writing file names on standard output, write the number of matching + entries only. + + -d, --database DBPATH + Replace the default database with DBPATH. DBPATH is a :-separated list of database + file names. If more than one --database option is specified, the + resulting path is a concatenation of the separate paths. + + + +\subsection{Actividad 3.} + +\subsubsection{``find`` without name} + +\textbf{¿Cómo haría uso del comando find si desea buscar una fotografía (archivo PNG) +y no recuerda su nombre sino solo que se encuentra en su home.} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ find /home/curso/ -iname '*.PNG' + +/home/curso/picture.PNG +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad12.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad13.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad2.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad10.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad11.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad5.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad14.png +/home/curso/.local/share/Trash/files/Actividad5.png +/home/curso/.cache/software-center/icons/tomato:i386-icon-Icon64.png +/home/curso/.cache/software-center/icons/umamu-icon-Umamu_r_64.png +/home/curso/.cache/software-center/icons/capsized-icon-Icon64.png +/home/curso/.cache/software-center/icons/2048:i386-icon-64-2048.png +/home/curso/.cache/software-center/icons/tic-tac-toe2:i386-icon-64_hmojXQC.png +/home/curso/.cache/software-center/icons/ mycraft-icon-mc-launcher.svg64.png +/home/curso/.cache/software-center/icons/audovia:i386-icon-SongBuilderColourIcon64.png +/home/curso/.cache/software-center/icons/mc2048-icon-mc2048_1.png +/home/curso/.cache/software-center/icons/ my-weather-indicator:i386-icon-mwi_064.png +/home/curso/.cache/thumbnails/large/be9745eaa4dd17df931fd3f4b1b37b74.png +/home/curso/.cache/thumbnails/large/0f635725858090944921b5ae0e1c25ae.png +... +/home/curso/.cache/thumbnails/normal/f458b2702111282ba10cca5ddd511daf.png +/home/curso/.cache/thumbnails/normal/ee9cf2ab26402213d518127e9b5b1149.png +/home/curso/.cache/thumbnails/normal/b2bdf6f2a85194544d0558983df41eb0.png +/home/curso/.cache/thumbnails/normal/76fbdecd1d2173df80d31f3d4a2ca4e3.png + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 4.} + +\subsubsection{''find'' buscando por permisos de usuario} + +\textbf{Haciendo uso del comando find, ¿Cuáles son los archivos o directorios que poseen +permisos de escritura para cualquier usuario?. Agregue una opción para que no incluya +los enlaces simbólicos sino los archivos apuntados por los enlaces.} + +\textbf{Finding by Type}\\ +You can specify the type of files you want to find with the "-type" parameter. It works like this: + +\texttt{find -type type\_descriptor query} +Some of the most common descriptors that you can use to specify the type of file are here: + +\begin{itemize} + \item f: regular file + \item d: directory + \item l: symbolic link + \item c: character devices + \item b: block devices +\end{itemize} + +\cite{digitalocean}\\ + +\textbf{Finding files by permission} + +Searching for files by permission is an excellent way to turn up security issues on your +system or uncover access issues. Just as you changed permissions on files using numbers +or letters (with the chmod command), you can likewise find files based on number or +letter permissions along with the -perm options. (Refer to Chapter 4, “Moving around the +Filesystem,” to see how to use numbers and letters with chmod to refl ect file permissions.) +If you use numbers for permission, as I do below, remember that the three numbers represent +permissions for the user, group, and other. Each of those three numbers varies from no +permission (0) to full read/write/execute permission (7), by adding read (4), write (2), and +execute (1) bits together. With a hyphen (-) in front of the number, all three of the bits +indicated must match; with a plus (+) in front of it, any of the numbers can match for the +search to find a file. The full, exact numbers must match if neither a hyphen or plus is used. + +Consider the following examples:\\ + +\texttt{\$ find /bin -perm 755 -ls} + +\texttt{788884 28 -rwxr-xr-x 1 root root 28176 Mar 10 2014 /bin/echo} + +\texttt{\$ find /home/chris/ -perm -222 -type d -ls} + +\texttt{144503 4 drwxrwxrwx 8 chris chris 4096 June 23 2014 /home/chris}\\ + +By searching for -perm 755, any files or directories with exactly rwxr-xr-x +permission are matched. By using -perm -222, only files that have write permission for +user, group, and other are matched. Notice that, in this case, the -type d is added to +match only directories.\\ + +\texttt{\$ find /myreadonly -perm +222 -type f} + +\texttt{685035 0 -rw-rw-r-- 1 chris chris 0 Dec 30 2014 /tmp/write/abc} + +\texttt{\$ find . -perm -002 -type f -ls} + +\texttt{266230 0 -rw-rw-rw- 1 chris chris 0 Dec 20 2014 ./LINUX\_BIBLE/a}\\ + +Using -perm +222, you can find any file (-type f) that has write permission turned on +for the user, group, or other. You might do that to make sure that all files are read-only in +a particular part of the filesystem (in this case, beneath the /myreadonly directory). The +last example, -perm +002, is very useful for finding files that have open write permission +for “other,” regardless of how the other permission bits are set. + +\cite{linuxbible} + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~$ sudo find / -type f -perm +002 -ls | less + + 23477 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/sys/kernel/ns_last_pid + 24246 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/task/1/attr/current + 24248 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/task/1/attr/exec + 24249 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/task/1/attr/fscreate + 24250 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/task/1/attr/keycreate + 24251 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/task/1/attr/sockcreate + 24337 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/attr/current + 24339 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/attr/exec + 24340 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/attr/fscreate + 24341 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/attr/keycreate + 24342 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/attr/sockcreate + 24433 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/task/2/attr/current + 24435 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/task/2/attr/exec + 24436 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/task/2/attr/fscreate + 24437 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/task/2/attr/keycreate + 24438 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/task/2/attr/sockcreate + 24445 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/attr/current + 24447 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/attr/exec + 24448 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/attr/fscreate + 24449 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/attr/keycreate + 24450 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/attr/sockcreate + \end{verbatim} +\end{myscriptlisting} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ sudo find / -type d -perm +002 -ls +532295 4 drwxrwxrwt 2 root root 4096 Sep 29 18:57 /var/crash +525560 4 drwxrwxrwt 2 root root 4096 Sep 29 21:02 /var/tmp +find: `/proc/2960/task/2960/fd/5': No such file or directory +find: `/proc/2960/task/2960/fdinfo/5': No such file or directory +find: `/proc/2960/fd/5': No such file or directory +find: `/proc/2960/fdinfo/5': No such file or directory + 8715 0 drwxrwxrwt 2 root root 140 Oct 3 20:45 /run/shm + 8712 0 drwxrwxrwt 2 root root 40 Oct 3 15:01 /run/lock +131090 4 drwxrwxrwt 4 root root 4096 Oct 3 21:17 /tmp +156905 4 drwxrwxrwt 2 root root 4096 Oct 3 16:25 /tmp/.ICE-unix +156904 4 drwxrwxrwt 2 root root 4096 Oct 3 15:00 /tmp/.X11-unix + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 5.} + +\subsubsection{``find'' para archivos modificados en un período de tiempo} + +\textbf{Haciendo uso del comando find busque los archivos que han sido modificados en +los últimos 7 días.}\\ + +\textbf{Finding by Time} + +Linux stores time data about access times, modification times, and change times. + +\begin{itemize} +\item \textbf{Access Time:} Last time a file was read or written to. + +\item \textbf{Modification Time:} Last time the contents of the file were modified. + +\item \textbf{Change Time:} Last time the file's inode meta-data was changed. +\end{itemize} + + +We can use these with the \textbf{\emph{``-atime'', ``-mtime'', and ``-ctime''}} parameters. +These can use the plus and minus symbols to specify greater than or less than, like we did with size. + +The value of this parameter specifies how many days ago you'd like to search. + +To find files that have a modification time of a day ago, type: + +\texttt{find / -mtime 1}\\ + +If we want files that were accessed in less than a day ago, we can type: + +\texttt{find / -atime -1}\\ + +To get files that last had their meta information changed more than 3 days ago, type: + +\texttt{find / -ctime +3}\\ + +There are also some companion parameters we can use to specify minutes instead of days: + +\texttt{find / -mmin -1}\\ + +This will give the files that have been modified type the system in the last minute. +Find can also do comparisons against a reference file and return those that are newer: + +\texttt{find / -newer myfile}\\ + +\cite{digitalocean} + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~$ find /home/curso/ -mtime -7 + ... +/home/curso/.cache/oneconf/cf31d3950d1cc51f862b52e955f9872b +/home/curso/.cache/oneconf/cf31d3950d1cc51f862b52e955f9872b/host +/home/curso/.vboxclient-display.pid +/home/curso/.gconf +/home/curso/.gconf/apps/guake/style/background +/home/curso/.gconf/apps/guake/style/background/%gconf.xml +/home/curso/.gconf/apps/guake/style/font +/home/curso/.gconf/apps/guake/style/font/%gconf.xml +/home/curso/.gconf/apps/guake/general +/home/curso/.gconf/apps/guake/general/%gconf.xml + \end{verbatim} +\end{myscriptlisting} + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~$ find /home/curso/ -mtime -7 -ls + ... +532723 4 -rwxrw---- 1 curso curso 198 Sep 29 19:24 /home/curso/.cache/one... +533520 4 -rwxr----- 1 curso curso 5 Oct 3 16:25 /home/curso/.vboxclient-... +565991 4 drwx------ 4 curso curso 4096 Oct 3 16:25 /home/curso/.gconf... +566119 4 drwx------ 2 curso curso 4096 Oct 3 16:28 /home/curso/.gconf/ap... +566211 4 -rwx------ 1 curso curso 110 Oct 3 16:28 /home/curso/.gconf/app... +566121 4 drwx------ 2 curso curso 4096 Oct 3 16:28 /home/curso/.gconf/ap... +569336 4 -rwx------ 1 curso curso 467 Oct 3 16:28 /home/curso/.gconf/app... +566123 4 drwx------ 2 curso curso 4096 Oct 3 16:28 /home/curso/.gconf/ap... +569337 4 -rwx------ 1 curso curso 954 Oct 3 16:28 /home/curso/.gconf/app... + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 6.} + +\subsubsection{``grep`` command} + +\textbf{Haciendo uso del comando grep buscar la palabra ''dui'' en el archivo /etc/group +sin distinguir entre mayúsculas y minúsculas. Luego haciendo uso del mismo comando contar +el número de ocurrencias en que aparece esa cadena si se hace o no distinción entre mayúsculas +y minúsculas.}\\ + + +GREP(1) General Commands Manual GREP(1) + +NAME + grep, egrep, fgrep, rgrep - print lines matching a pattern + +SYNOPSIS + grep [OPTIONS] PATTERN [FILE...] + grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...] + +DESCRIPTION + grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-) is given as file name) for lines + containing a match to the given PATTERN. By default, grep prints the matching lines. + + In addition, three variant programs egrep, fgrep and rgrep are available. egrep is the same as grep -E. fgrep is the same as grep -F. rgrep is the + same as grep -r. Direct invocation as either egrep or fgrep is deprecated, but is provided to allow historical applications that rely on them to run + unmodified. + + -i, --ignore-case + Ignore case distinctions in both the PATTERN and the input files. (-i is specified by POSIX.) + + General Output Control + -c, --count + Suppress normal output; instead print a count of matching lines for each input file. With the -v, --invert-match option (see below), count + non-matching lines. (-c is specified by POSIX.) + + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~$ cat /etc/group | grep -i dui +curso@ubuntu:~$ cat /etc/group | grep -i curso +sudo:x:27:delivery,curso +curso:x:1001:curso +grupo1:x:1002:curso +curso@ubuntu:~$ cat /etc/group | grep -i CURSO +sudo:x:27:delivery,curso +curso:x:1001:curso +grupo1:x:1002:curso + \end{verbatim} +\end{myscriptlisting} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ cat /etc/group | grep -c -i curso +3 + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 7.} + +\subsubsection{''grep`` recursivo} + +\textbf{Haciendo uso del comando grep buscar la +cadena "auto" en los archivos del directorio /etc y sus subdirectorios..} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:/$ ls -R /etc/ | grep "auto" +01autoremove +01autoremove-kernels +ls: cannot open directory /etc/chatscripts: Permission denied +ls: cannot open directory /etc/cups/ssl: Permission denied +10-autohint.conf +apt-auto-removal +lightdm-autologin +ls: cannot open directory /etc/polkit-1/localauthority: Permission denied +ls: cannot open directory /etc/ppp/peers: Permission denied +ls: cannot open directory /etc/ssl/private: Permission denied +autostart +/etc/xdg/autostart: +nautilus-autostart.desktop + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 8.} + +\subsubsection{''df`` commands} + +\textbf{¿Con que comando puedo ver el porcentaje de uso de los +dispositivos de bloques montados en human-readable?}\\ + +DF(1) User Commands DF(1) + +NAME + df - report file system disk space usage + +SYNOPSIS + df [OPTION]... [FILE]... + +DESCRIPTION + This manual page documents the GNU version of df. df displays the amount of + disk space available on the file system containing each file name argu‐ + ment. If no file name is given, the space available on all currently mounted + file systems is shown. Disk space is shown in 1K blocks by default, + unless the environment variable POSIXLY\_CORRECT is set, in which case 512-byte + blocks are used. + + If an argument is the absolute file name of a disk device node containing a + mounted file system, df shows the space available on that file system + rather than on the file system containing the device node (which is always the + root file system). This version of df cannot show the space available + on unmounted file systems, because on most kinds of systems doing so requires + very nonportable intimate knowledge of file system structures. + +OPTIONS + Show information about the file system on which each FILE resides, or all + file systems by default. + + Mandatory arguments to long options are mandatory for short options too. + + -a, --all + include dummy file systems + + -B, --block-size=SIZE + scale sizes by SIZE before printing them. E.g., '-BM' prints sizes in units + of 1,048,576 bytes. See SIZE format below. + + --total + produce a grand total + + -h, --human-readable + print sizes in human readable format (e.g., 1K 234M 2G) + + -T, --print-type + print file system type + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:/$ df -h -T +Filesystem Type Size Used Avail Use% Mounted on +/dev/sda1 ext4 9.8G 3.2G 6.1G 34% / +none tmpfs 4.0K 0 4.0K 0% /sys/fs/cgroup +udev devtmpfs 991M 4.0K 991M 1% /dev +tmpfs tmpfs 201M 480K 200M 1% /run +none tmpfs 5.0M 0 5.0M 0% /run/lock +none tmpfs 1001M 152K 1001M 1% /run/shm +none tmpfs 100M 40K 100M 1% /run/user +/dev/sr0 iso9660 56M 56M 0 100% /media/curso/VBOXADDITIONS_4.3.26_98988 + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 9.} + +\subsubsection{''tar.gz`` command p/ comprimir} + +\textbf{Comprima el directorio /etc con tar.gz y guardelo en el directorio /home/curso.} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ tar -zcvf /home/curso/etc.tar.gz /etc/ + +curso@ubuntu:/$ cd /home/curso +curso@ubuntu:~$ ls +BarrireroExequiel BarrireroExequiel.tar.gz Desktop Documents Downloads etc.tar.gz group Music picture.PNG Pictures Public root Templates Videos +curso@ubuntu:~$ ls -la | grep 'tar.gz' +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +-rw-rw-r-- 1 curso curso 718191 Oct 3 22:33 etc.tar.gz + \end{verbatim} +\end{myscriptlisting} + +You need to use the tar command as follows (syntax of tar command):\\ + +\texttt{tar -zcvf archive-name.tar.gz directory-name}\\ + +Where, + +-z : Compress archive using gzip program + +-c : Create archive + +-v : Verbose i.e display progress while creating archive + +-f : Archive File name \\ + +\cite{vivkg} + +\pagebreak + +\subsection{Actividad 10.} + +\subsubsection{''tar.gz`` command p/ descomprimir} + +\textbf{Descomprima el archivo .tar.gz creado en la Actividad 9 en +el directorio /home/curso/Desktop/root-etc.} + +-x: Extract files + +If you wish to extract files in particular directory, for example in /tmp then you need to use +the following command:\\ + +\texttt{\$ tar -zxvf prog-1-jan-2005.tar.gz -C /tmp} + +\texttt{\$ cd /tmp} + +\texttt{\$ ls -} \\ + +\cite{vivkg} + +\begin{myscriptlisting} + \begin{verbatim} +mkdir /home/curso/Desktop/root-etc +tar -xvzf etc.tar.gz -C /home/curso/Desktop/root-etc + +curso@ubuntu:~$ cd /home/curso/Desktop/root-etc/ +curso@ubuntu:~/Desktop/root-etc$ ls +etc + +curso@ubuntu:~/Desktop/root-etc$ cd etc/ +curso@ubuntu:~/Desktop/root-etc/etc$ ls +acpi cron.d gnome-app-install kernel-img.conf +adduser.conf cron.daily gnome-settings-daemon landscape +alternatives cron.hourly gnome-vfs-2.0 ldap +anacrontab cron.monthly groff ld.so.cache +apg.conf crontab group ld.so.conf +apm cron.weekly grub.d ld.so.conf.d +apparmor cups gtk-2.0 legal +apparmor.d cupshelpers gtk-3.0 libaudit.conf +apport dbus-1 hdparm.conf libnl-3 +apt dconf host.conf libpaper.d +at-spi2 debconf.conf hostname lightdm +avahi debian_version hosts lintianrc +bash.bashrc default hosts.allow locale.alias +bash_completion deluser.conf hosts.deny localtime +bash_completion.d depmod.d ifplugd logcheck +bindresvport.blacklist dhcp ImageMagick login.defs +blkid.conf dictionaries-common init logrotate.conf +blkid.tab doc-base init.d logrotate.d +bluetooth dpkg initramfs-tools lsb-release +bonobo-activation drirc inputrc ltrace.conf +byobu emacs insserv magic +ca-certificates environment insserv.conf magic.mime +ca-certificates.conf fonts insserv.conf.d mailcap +calendar fstab iproute2 mailcap.order +chromium-browser fstab.d iscsi manpath.config +colord.conf gai.conf issue mime.types +compizconfig gconf issue.net mke2fs.conf +console-setup ghostscript kbd modprobe.d +cracklib gnome kernel modules + \end{verbatim} +\end{myscriptlisting} + +\pagebreak + +\section{Ejercicios Tema 6: Uso básico de la consola } + +\begin{itemize} + \item Gnome-terminal. + \item Shortcuts de lineas de comando. + \subitem Expansión de expresiones con wildcards. + \subitem Tecla “tabulación”. + \subitem Comando “history” y “Ctrl - r”. + \item Expansión de lineas de comando + \subitem El tilde: ~. + \subitem Expansión de lineas de comando: \$() o ``. + \subitem Llaves de expansión: { }. + \item Trucos en las lineas de comando: Ctrl - a, Ctrl -e, Ctrl - u, Ctrl - k, Ctrl - flechas de dirección. +\end{itemize} + + +\subsection{Actividad 1.} + +\subsubsection{Regular expressions - \texttt{\^} , \$ , . , *} + +\textbf{Cree una expresión que corresponda con todos los archivos que comiencen con una 'a' y terminen con una 'z'.}\\ + +An expression is a string of characters. Those characters having an interpretation above and +beyond their literal meaning are called metacharacters. A quote symbol, for example, may denote +speech by a person, ditto, or a meta-meaning for the symbols that follow. Regular Expression +s are sets of characters and/or metacharacters that match (or specify) patterns. + +A Regular Expression contains one or more of the following: + +\begin{itemize} + \item \textbf{A character set:} These are the characters retaining their literal meaning. + The simplest type of Regular Expression consists only of a character set, with no metacharacters. + \item \textbf{An anchor:} These designate (anchor) the position in the line of text that the RE + is to match. For example, \texttt{\^}, and \$ are anchors. + \item \textbf{Modifiers:} These expand or narrow (modify) the range of text the RE is to match. + Modifiers include the asterisk, brackets, and the backslash. +\end{itemize} + + +The main uses for Regular Expressions (REs) are text searches and string manipulation. +An RE matches a single character or a set of characters -- a string or a part of a string. + + +\begin{itemize} + \item \textbf{The asterisk -- * -- :} matches any number of repeats of the character string or RE + preceding it, including zero instances. + + "1133*" matches 11 + one or more 3's: 113, 1133, 1133333, and so forth. + + \textbf{Example:} Match all files which have a word twt, twet, tweet etc in the file name. + + \texttt{ls -l | grep 'twe*t'} + + \textbf{Example:} How about searching for apple word which was spelled wrong in a given file where apple + is misspelled as ale, aple, appple, apppple, apppppple etc. To find all patterns + + \texttt{grep 'ap*le' filename} + + Readers should observe that the above pattern will match even ale word as * indicates + 0 or more of previous character occurrence. + + \item \textbf{The dot -- . -- :} matches any one character, except a newline. + + "13." matches 13 + at least one of any character (including a space): 1133, 11333, but not 13 + (additional character missing). + + \item \textbf{The caret -- \texttt{\^} -- :} matches the beginning of a line, but sometimes, depending on context, + negates the meaning of a set of characters in an RE. + + \item \textbf{The dollar sign -- \$ -- :} at the end of an RE matches the end of a line. + + "XXX\$" matches XXX at the end of a line. + + "\texttt{\^}\$" matches blank lines. +\end{itemize} + +\cite{tldpre} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso + +curso@ubuntu:~$ ls -la +total 2800 +drwxr-x--x 17 curso curso 4096 Nov 1 16:28 . +drwxrwx--x 4 root root 4096 Sep 20 22:31 .. +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 abz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 axi123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 aaz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 az +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 azz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a.z +drwxrwx--x 3 curso curso 4096 Sep 21 19:25 BarrireroExequiel +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +-rwx------ 1 curso curso 5857 Oct 3 23:19 .bash_history +-rwxr----- 1 curso curso 220 Sep 20 19:49 .bash_logout +-rwxr----- 1 curso curso 3637 Sep 20 19:49 .bashrc +drwx------ 17 curso curso 4096 Sep 29 18:53 .cache +drwx------ 22 curso curso 4096 Sep 29 19:12 .config +drwxr-x--x 3 curso curso 4096 Oct 3 22:41 Desktop +-rwxr----- 1 curso curso 33 Sep 21 19:15 .dmrc +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Documents +drwxr-x--x 2 curso curso 4096 Sep 21 19:30 Downloads +-rw-rw-r-- 1 curso curso 718191 Oct 3 22:33 etc.tar.gz +drwx------ 4 curso curso 4096 Nov 1 14:44 .gconf +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group +-rwx------ 1 curso curso 2544 Nov 1 14:44 .ICEauthority +-rw------- 1 curso curso 42 Oct 3 22:18 .lesshst +drwx------ 3 curso curso 4096 Sep 21 14:06 .local +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Music +-rw-rw-r-- 1 curso curso 0 Oct 3 20:53 picture.PNG +drwxr-x--x 2 curso curso 4096 Sep 21 20:53 Pictures +drwx------ 3 curso curso 4096 Sep 21 19:26 .pki +-rwxr----- 1 curso curso 675 Sep 20 19:49 .profile +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Public +drwxrwx--x 5 curso curso 4096 Oct 3 20:57 root +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Templates + +curso@ubuntu:~/BarrireroExequiel$ ls | grep '^a.*z$' +a123z +aaz +abz +axi123z +az +a.z +azz + +curso@ubuntu:~$ + + \end{verbatim} +\end{myscriptlisting} + +Puede notarse la diferencia al utilizar la expresión debajo sin incluir +el ''.``, wilcard: cualquier único caracter. El cual quedo desmotrado que +al acompañar a la expresión ''*`` permite buscar la coincidencia de una +expresión que comience con ''a`` luego coincida con cero +o más del caracter previo y termine con ''z''. Permitindo este caracter identificado con +``.'' lograr el resultado que estamos buscando. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/BarrireroExequiel$ ls | grep '^a*z$' +aaz +az + + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 2.} + +\subsubsection{Regular expressions - \texttt{\^} , \$ , . , *} + +\textbf{Cree una expresión que corresponda con todos los archivos +cuyo nombre tenga como segunda letra una 't'. +Para realizar la actividad aprender el uso del comodin \$}\\ + +\begin{itemize} + \item \textbf{The backslash -- \textbackslash -- :} Escapes a special character, + which means that character gets interpreted literally (and is therefore no longer special). + \item \textbf{An anchor:} A ``\$`` reverts back to its literal meaning of "\$", + rather than its RE meaning of end-of-line. Likewise a ''\textbackslash \textbackslash'' has the literal + meaning of "\textbackslash". + \item \textbf{Escaped ``angle brackets'' -- \textbackslash<...\textbackslash> -- :} Escaped ``angle + brackets'' -- \textbackslash<...\textbackslash> -- mark word boundaries. + The angle brackets must be escaped, since otherwise they have only their literal character meaning. + "\textbackslash" matches the word ``the,`` but not the words ''them,'' ``there,'' + ``other,'' etc. +\end{itemize} + +\cite{tldpre} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso + +curso@ubuntu:~$ ls -la +total 2800 +drwxr-x--x 17 curso curso 4096 Nov 1 16:28 . +drwxrwx--x 4 root root 4096 Sep 20 22:31 .. +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 abz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 axi123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 az +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a.z +drwxrwx--x 3 curso curso 4096 Sep 21 19:25 BarrireroExequiel +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +-rwx------ 1 curso curso 5857 Oct 3 23:19 .bash_history +-rwxr----- 1 curso curso 220 Sep 20 19:49 .bash_logout +-rwxr----- 1 curso curso 3637 Sep 20 19:49 .bashrc +drwx------ 17 curso curso 4096 Sep 29 18:53 .cache +drwx------ 22 curso curso 4096 Sep 29 19:12 .config +drwxr-x--x 3 curso curso 4096 Oct 3 22:41 Desktop +-rwxr----- 1 curso curso 33 Sep 21 19:15 .dmrc +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Documents +drwxr-x--x 2 curso curso 4096 Sep 21 19:30 Downloads +-rw-rw-r-- 1 curso curso 718191 Oct 3 22:33 etc.tar.gz +drwx------ 4 curso curso 4096 Nov 1 14:44 .gconf +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group +-rwx------ 1 curso curso 2544 Nov 1 14:44 .ICEauthority +-rw------- 1 curso curso 42 Oct 3 22:18 .lesshst +drwx------ 3 curso curso 4096 Sep 21 14:06 .local +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Music +-rw-rw-r-- 1 curso curso 0 Oct 3 20:53 picture.PNG +drwxr-x--x 2 curso curso 4096 Sep 21 20:53 Pictures +drwx------ 3 curso curso 4096 Sep 21 19:26 .pki +-rwxr----- 1 curso curso 675 Sep 20 19:49 .profile +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Public +drwxrwx--x 5 curso curso 4096 Oct 3 20:57 root +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Templates + + +curso@ubuntu:~$ ls /home/curso | grep '^.t' +etc.tar.gz +curso@ubuntu:~$ + + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 3.} + +\subsubsection{Regular expressions - \texttt{\^} , . , []} + +\textbf{Cree una expresión que corresponda con todos los archivos cuyo nombre +tenga como tercer letra una 'letra mayúscula' o una 'coma'.} + +\begin{itemize} + \item \textbf{Brackets -- [...] -- :} enclose a set of characters to match in a single RE. + which means that character gets interpreted literally (and is therefore no longer special). + \subitem \textbf{"[xyz]" :} matches any one of the characters x, y, or z. + \subitem \textbf{"[c-n]" :} matches any one of the characters in the range c to n. + \subitem \textbf{"[B-Pk-y]" :} matches any one of the characters in the ranges B to P and k to y. + \subitem \textbf{"[a-z0-9]" :} matches any single lowercase letter or any digit. + \subitem \textbf{"[\texttt{\^}b-d]" :} matches any character except those in the range b to d. + This is an instance of \texttt{\^} negating or inverting the meaning of the following RE (taking on a + role similar to ! in a different context). + + Combined sequences of bracketed characters match common word patterns. "[Yy][Ee][Ss]" + matches yes, Yes, YES, yEs, and so forth. "[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]" + matches any Social Security number. + \end{itemize} + +\cite{tldpre} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso + +curso@ubuntu:~$ ls -la +total 2800 +drwxr-x--x 17 curso curso 4096 Nov 1 16:28 . +drwxrwx--x 4 root root 4096 Sep 20 22:31 .. +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 abz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 axi123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 az +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a.z +drwxrwx--x 3 curso curso 4096 Sep 21 19:25 BarrireroExequiel +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +-rwx------ 1 curso curso 5857 Oct 3 23:19 .bash_history +-rwxr----- 1 curso curso 220 Sep 20 19:49 .bash_logout +-rwxr----- 1 curso curso 3637 Sep 20 19:49 .bashrc +drwx------ 17 curso curso 4096 Sep 29 18:53 .cache +drwx------ 22 curso curso 4096 Sep 29 19:12 .config +drwxr-x--x 3 curso curso 4096 Oct 3 22:41 Desktop +-rwxr----- 1 curso curso 33 Sep 21 19:15 .dmrc +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Documents +drwxr-x--x 2 curso curso 4096 Sep 21 19:30 Downloads +-rw-rw-r-- 1 curso curso 718191 Oct 3 22:33 etc.tar.gz +drwx------ 4 curso curso 4096 Nov 1 14:44 .gconf +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group +-rwx------ 1 curso curso 2544 Nov 1 14:44 .ICEauthority +-rw------- 1 curso curso 42 Oct 3 22:18 .lesshst +drwx------ 3 curso curso 4096 Sep 21 14:06 .local +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Music +-rw-rw-r-- 1 curso curso 0 Oct 3 20:53 picture.PNG +drwxr-x--x 2 curso curso 4096 Sep 21 20:53 Pictures +drwx------ 3 curso curso 4096 Sep 21 19:26 .pki +-rwxr----- 1 curso curso 675 Sep 20 19:49 .profile +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Public +drwxrwx--x 5 curso curso 4096 Oct 3 20:57 root +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Templates + + + +curso@ubuntu:~$ ls | grep '^..[A-Z ,]' +curso@ubuntu:~$ +\end{verbatim} +\end{myscriptlisting} + +Realizando una búsqueda con una expresión menos restrictiva, es decir quitando el anclado que indica +que la expresión debe comenzar con dos caracteres cualquier y luego buscar coincidencia a partir +del 3ero obtenemos algunos resultados. El enuncia podría cambiar por ``nombre de archivo que posea 2 +caracteres cualquiera antes de una mayúscula o una coma''. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls | grep '..[A-Z ,]' +BarrireroExequiel +BarrireroExequiel.tar.gz +picture.PNG +\end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 4.} + +\subsubsection{Regular expressions - \texttt{\^} , \$ , []} + +\textbf{Cree una expresión que corresponda con todos los archivos que no +terminen con una letra de la 'a a la d' ó de la 'f a la z'.} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso + +curso@ubuntu:~$ ls -la +total 2800 +drwxr-x--x 17 curso curso 4096 Nov 1 16:28 . +drwxrwx--x 4 root root 4096 Sep 20 22:31 .. +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 abz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 axi123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 az +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a.z +drwxrwx--x 3 curso curso 4096 Sep 21 19:25 BarrireroExequiel +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +-rwx------ 1 curso curso 5857 Oct 3 23:19 .bash_history +-rwxr----- 1 curso curso 220 Sep 20 19:49 .bash_logout +-rwxr----- 1 curso curso 3637 Sep 20 19:49 .bashrc +drwx------ 17 curso curso 4096 Sep 29 18:53 .cache +drwx------ 22 curso curso 4096 Sep 29 19:12 .config +drwxr-x--x 3 curso curso 4096 Oct 3 22:41 Desktop +-rwxr----- 1 curso curso 33 Sep 21 19:15 .dmrc +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Documents +drwxr-x--x 2 curso curso 4096 Sep 21 19:30 Downloads +-rw-rw-r-- 1 curso curso 718191 Oct 3 22:33 etc.tar.gz +drwx------ 4 curso curso 4096 Nov 1 14:44 .gconf +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group +-rwx------ 1 curso curso 2544 Nov 1 14:44 .ICEauthority +-rw------- 1 curso curso 42 Oct 3 22:18 .lesshst +drwx------ 3 curso curso 4096 Sep 21 14:06 .local +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Music +-rw-rw-r-- 1 curso curso 0 Oct 3 20:53 picture.PNG +drwxr-x--x 2 curso curso 4096 Sep 21 20:53 Pictures +drwx------ 3 curso curso 4096 Sep 21 19:26 .pki +-rwxr----- 1 curso curso 675 Sep 20 19:49 .profile +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Public +drwxrwx--x 5 curso curso 4096 Oct 3 20:57 root +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Templates + +curso@ubuntu:~$ ls | grep '[^a-df-z]$' +picture.PNG +\end{verbatim} +\end{myscriptlisting} + +Luego como variante se propone una expresión que corresponda con todos los archivos que SI +terminen con una letra de la 'a a la d' ó de la 'f a la z'. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls | grep '[a-df-z]$' +a123z +abz +axi123z +az +a.z +BarrireroExequiel +BarrireroExequiel.tar.gz +Desktop +Documents +Downloads +etc.tar.gz +group +Music +Pictures +Public +root +Templates +Videos +\end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 5.} + +\subsubsection{Regular expressions - \texttt{\^} , \$ , []} + +\textbf{Cree una expresión que corresponda con todos los +archivos que no comiencen con un 'dígito' y que no terminen con una letra 'minúscula'.} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls | grep '^[^0-9].*[^a-z]$' +picture.PNG +\end{verbatim} +\end{myscriptlisting} + +Por su parte, se presenta una variante buscando una expersión que corresponda con todos los +archivos que no comiencen con un 'dígito' y que SI terminen con una letra 'minúscula'. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls | grep '^[^0-9].*[a-z]$' +a123z +abz +axi123z +az +a.z +BarrireroExequiel +BarrireroExequiel.tar.gz +Desktop +Documents +Downloads +etc.tar.gz +group +Music +Pictures +Public +root +Templates +Videos +\end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 6.} + +\subsubsection{The command-line history} + +\textbf{Exportar el contenido del comando history a un fichero de texto plano llamado 'historial.txt'.}\\ + +The \textbf{history command} is a convenient tool that you can use to review previous commands. +To look at the most recent commands, simply press the up arrow key. Each time you press it, +you will go deeper into the command history. To see all of the command history, type “history” +from the command line. You can even export that list to a file to save for future use by entering:\\ + +\texttt{history -w history-list.txt}\\ \\ + +\textbf{\emph{MORE ABOUT the HISTORY COMMAND:}}\\ + +If you need to append your current history to the end of a previously created history file, type:\\ + +\texttt{history -a history-list.txt}\\ + +You can also append whatever you have in your history file to the end of your current history list +(useful if it has been erased). Type:\\ + +\texttt{history -r history-list.txt}\\ + +You will notice that each command in the history list is numbered. Each number represents +a shortcut that you can use to call any previous command. For example, if “cat /proc/cpuinfo” is +number 136 on the list, you can call it by placing a “!” in front of the number. For example:\\ + +\texttt{!136}\\ + +Press Enter, and it will automatically execute the associated command.\\ + +Finally, if you ever need to empty your history list, for either security or privacy reasons, type: + +\texttt{history -C}\\ + +\cite{serverschool}\\ + +\textbf{The command-line history}\\ + +\textbf{Using the command history}\\ +Use the up and down key's to scroll through previously typed commands. +Press [Enter] to execute them or use the left and right arrow keys to edit the command first. +Also see history (below).\\ + +\textbf{The history command}\\ +The history command can be used to list Bash's log of the commands you have typed:\\ + +This log is called the “history”. To access it type:\\ + +\texttt{history n}\\ + +This will only list the last n commands. Type “history” (without options) to see the the entire history list. +You can also type ''!n`` to execute command number n. Use ''!!`` to execute the last command you typed. +''!-n`` will execute the command n times before (in other words ''!-1`` is equivalent to ''! !''). +''!string`` will execute the last command starting with that “string” and ''!?string?`` +will execute the last command containing the word “string”. For example:\\ + +\texttt{!cd}\\ + +Will re-run the command that you last typed starting with “cd”. +“ commandName !*” will execute the “commandName” with any arguments you used on your last command. +This maybe useful if you make a spelling mistake, for example. If you typed:\\ + +\texttt{emasc /home/fred/mywork.java /tmp/testme.java}\\ + +In an attempt to execute ''emacs`` on the above two files this will obviously fail. +So what you can do is type:\\ + +\texttt{emacs !*}\\ + +This will execute emacs with the arguments that you last typed on the command-line. +In other words this is equivalent to typing:\\ + +\texttt{emacs /home/fred/mywork.java /tmp/testme.java}\\ + +\textbf{Searching through the Command History ( CTRL-R )} +Use the CTRL-R key to perform a “reverse-i-search”. +For example, if you wanted to use the command you used the last time you used snort, you would type:\\ + +CTRL-R then type “snort”.\\ + +What you will see in the console window is:\\ + +\texttt{(reverse-i-search)`:} +After you have typed what you are looking for, use the CTRL-R key combination to scroll backward +through the history. +Use CTRL-R repeatedly to find every reference to the string you've entered. +Once you've found the command you're looking for, use [Enter] to execute it. +Alternatively, using the right or left arrow keys will place the command on an actual command-line +so you can edit it. + +\cite{tldphist} + +\subsection{Actividad 7.} + +\subsubsection{history, variable HISTSIZE} + +\textbf{Seteando la variable de entorno HISTSIZE, en el archivo .bash\_profile podrá limitar +la cantidad de lineas almacenas por el history. Investigue al respecto y limite a 10 la +cantidad de lineas almacenadas por el history.} + + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ cat /home/curso/.bashrc +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + + curso@ubuntu:~$ echo $HISTSIZE +1000 +curso@ubuntu:~$ export HISTSIZE=10 +curso@ubuntu:~$ history + 450 ls | grep '[^a-df-z]$' + 451 ls | grep '[a-df-z]$' + 452 ls | grep '^[^0-9].*[^a-z]$' + 453 ls | grep '^[0-9].*[a-z]$' + 454 ls | grep '^[^0-9].*[a-z]$' + 455 clear + 456 man history + 457 echo $HISTSIZE + 458 export HISTSIZE=10 + 459 history +\end{verbatim} +\end{myscriptlisting} + +Disable the usage of history using HISTSIZE + +If you want to disable history all together and don’t want bash shell to remember the +commands you’ve typed, set the HISTSIZE to 0 as shown below.\\ + +\texttt{\# export HISTSIZE=0} + +\texttt{\# history} + +\texttt{\# [Note that history did not display anything]}\\ + +\cite{tecmint} + +\subsection{Actividad 8.} + +\subsubsection{HISTCONTROL variable} + +\textbf{Seteando la variable de entorno HISTCONTROL = ignoredups borra entradas duplicadas consecutivas. +Investigue de que modo debería setear la variable de entorno HISTCONTROL para +eliminar entradas duplicadas en todo el archivo.}\\ + +\textbf{Ignore Duplicate Commands in History} +With the below command will help us to ignore duplicate commands entry made by user. +Only single entry will be shown in history, if a user execute a same command multiple times in a Bash Prompt. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ export HISTSIZE=10 +curso@ubuntu:~$ export HISTCONTROL= + +curso@ubuntu:~$ history + 414 history + 415 export HISTCONTROL= + 416 history + 417 history + 418 export HISTCONTROL=ignoredups + 419 history + 420 exit + 421 export HISTSIZE=10 + 422 export HISTCONTROL= + 423 history + + curso@ubuntu:~$ history + 415 export HISTCONTROL= + 416 history + 417 history + 418 export HISTCONTROL=ignoredups + 419 history + 420 exit + 421 export HISTSIZE=10 + 422 export HISTCONTROL= + 423 history + 424 history + + curso@ubuntu:~$ history + 416 history + 417 history + 418 export HISTCONTROL=ignoredups + 419 history + 420 exit + 421 export HISTSIZE=10 + 422 export HISTCONTROL= + 423 history + 424 history + 425 history + +curso@ubuntu:~$ export HISTCONTROL=ignoredups + +curso@ubuntu:~$ history + 418 export HISTCONTROL=ignoredups + 419 history + 420 exit + 421 export HISTSIZE=10 + 422 export HISTCONTROL= + 423 history + 424 history + 425 history + 426 export HISTCONTROL=ignoredups + 427 history + + curso@ubuntu:~$ history + 418 export HISTCONTROL=ignoredups + 419 history + 420 exit + 421 export HISTSIZE=10 + 422 export HISTCONTROL= + 423 history + 424 history + 425 history + 426 export HISTCONTROL=ignoredups + 427 history +curso@ubuntu:~$ +\end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 9.} + +\subsubsection{clear history (history -c)} + +\textbf{Haga uso del comando history para limpiar el historial de comandos.} + +if you ever need to empty your history list, for either security or privacy reasons, type:\\ + +\texttt{history -C}\\ + +\pagebreak + +\section{Parcial 1 - Parte 2 - Cuestionario Práctico} + +\subsection{Actividad 1.} + +\subsubsection{Regular expressions - \texttt{\^} , \$ , . , *} + +\textbf{Haciendo uso del comando "grep" , contar la cantidad de ocurrencias de palabras: + que comiencen con la letra h y terminen con la letra e + sin distinguir entre minusculas y mayusculas + dentro de todos los archivos que se encuentren en la carpeta home y sus subdirectorios.} + +\begin{verbatim} +grep -i -r '^h.*e$' /home/ +\end{verbatim} + +\subsection{Actividad 2.} + +\subsubsection{find command} + +\textbf{Haciendo uso del comando find, encuentre todos los archivos que cumplan TODAS las siguientes condiciones:}\\ + +\begin{itemize} + \item Pertenecen al usuario cuyo uid es igual a 0. + \item Que fueron accedidos en los ultimos 30 minutos. + \item Se encuentren en el directorio /etc. + \item Limite el nivel maximo de recursividad (profundidad) a 2. +\end{itemize} + +\begin{verbatim} +find /etc -uid 0 -maxdepth 2 -amin -30 +\end{verbatim} + +\subsection{Actividad 3.} + +\subsubsection{Regular expressions and ls command} + +\textbf{Haciendo uso del comando ls, encuentre todos los archivos que cumplan TODAS las siguientes condiciones:} + +\begin{itemize} + \item Comienzen con la letra e y terminen con .log + \item Se encuentren en el directorio /var/log. + \item Muestre archivos ocultos y links simbolicos. +\end{itemize} + +\begin{verbatim} +ls -la /var/log | grep '^e.*\.log$' +\end{verbatim} + +\subsection{Actividad 4.} + +\subsubsection{Regular expressions - Tar command} + +\textbf{Utilizando el comando tar, realize la siguiente actividad en un solo comando:} + +\begin{itemize} + \item Comprima la carpeta /home/curso utilizando algoritmo bzip2. + \item Excluya los archivos que finalizen con la palabra ".txt". + \item El archivo debe llamarse backup.tar.bz2 + \item El archivo debe guardarse en /tmp. + \item Sin modo verboso. + \end{itemize} + +\begin{verbatim} +tar --exclude='.*\.txt$' -cjSf /tmp/backup.tar.bz2 /home/curso +\end{verbatim} + +\pagebreak + +\section{Ejercicios Tema 7: Shell scripting básico} + +\begin{itemize} + \item Razones para hacer scripting. + \item Creación de shell scripts. + \item Estándar I/O: STDIN, STDOUT, STDERR + \item Redirección de estándars I/O a archivos. + \subitem Redirección de estándar output a programas: pipe. + \subitem Combinación de estándar output y error. + \subitem Redirección del estandar input desde un archivo. + \item Expresiones repetitivas: for + \end{itemize} + + +\subsection{Actividad 1.} + +\subsubsection{STDERR redirection to file} + +\textbf{Redireccione el STDERR de la salida que daría el comando grep da * a +un archivo llamado errores-de-grep.txt.}\\ + +Bash and other modern shell provides I/O redirection facility. +There are 3 default standard files (standard streams) open: + +\begin{enumerate} +\setcounter{enumi}{-1} + \item \textbf{stdin} - Use to get input (keyboard) i.e. data going into a program. + \item \textbf{stdout} - Use to write information (screen) + \item \textbf{stderr} - Use to write error message (screen) +\end{enumerate} + +\textbf{NOTE:} Consider the numbers before to also identify the type of input in the console.\\ + +Redirecting the standard error stream to a file +The following will redirect program error message to a file called error.log: + +\begin{verbatim} +$ program-name 2> error.log +$ command1 2> error.log +\end{verbatim} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso +curso@ubuntu:~$ mkdir tema7 +curso@ubuntu:~$ cd tema7/ +curso@ubuntu:~/tema7$ touch errores-de-grep.txt; da * 2> errores-de-grep.txt +curso@ubuntu:~/tema7$ ls +errores-de-grep.txt +curso@ubuntu:~/tema7$ cat errores-de-grep.txt +da: command not found + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 2.} + +\subsubsection{STDOUT \& STDERR redirection to file} + +\textbf{Hacer que la salida STDOUT del comando grep da * se escriba en el mismo descriptor de fichero que STDERR.}\\ + +Redirecting the standard error (stderr) and stdout to file +Use the following syntax: +\begin{verbatim} +$ command-name &>file +\end{verbatim} + +OR + +\begin{verbatim} +$ command > file-name 2>&1 +\end{verbatim} + +Another useful example: +\begin{verbatim} +# find /usr/home -name .profile 2>&1 | more +\end{verbatim} + +Redirect stderr to stdout +Use the command as follows: + +\begin{verbatim} +$ command-name 2>&1 +\end{verbatim} + +\textbf{Respuesta:} + +\begin{myscriptlisting} +\begin{verbatim} +curso@ubuntu:~/tema7$ pwd +/home/curso/tema7 +curso@ubuntu:~/tema7$ ls +errores-de-grep.txt +curso@ubuntu:~/tema7$ da * 1>&2 +da: command not found +curso@ubuntu:~/tema7$ +\end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 3.} + +\subsubsection{Head - Tail - Pipe} + +\textbf{Obtener la 5 linea del archivo "Ejemplos de scripts" de la sección Presentación del Tema 7, +para ello podemos combinar 2 comandos:} + +\begin{itemize} + \item Head, el cual retorna las primeras lineas de un archivo. + \item Tail el cual retorna las últimas lineas. + \item Ayuda: Recuerde que debe hacer uso de pipe para combinar dos o mas comandos. + \end{itemize} + +Recordando el archivo \textbf{ejemplos\_de\_script.txt} + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~/tema7$ cat ejemplos_de_script.txt +RECORDAR + +* Estos scripts tienen que tener permiso de ejecución +* Para ejecutar debe hacer referencia a el mediante path relativo o absoluto + +-------- MODO TEXTO ------------------- + +(para que puedan copiarlo y probarlo) + +Script1: +ermirizio@atlas:~> cat script1.sh +#!/bin/bash + +#Todo comentario empieza con un # por delante +#Esto es un comentario +echo "Hola mundo" #Esto tambien es un comentario + +Script2: +ermirizio@atlas:~> cat script2.sh +#!/bin/bash + +#Trabajando con variables +VARIABLE="Hola mundo" +echo $VARIABLE + + +Script 3: +ermirizio@atlas:~> cat calendario +#!/bin/bash + +#Este script muestra en el STDOUT el calendario anual del anio actual y +ademas guarda en un archivo de texto, llamado calendario.log, el resultado y la +fecha y hora en que se lo ejecuto +#Para practicar, ud podria agregar los comentarios entre cada linea de ejecucion explicando +que es lo que hace + +echo "Fecha de ejecucion" > calendario.log +date >> calendario.log +echo "Calendario del anio actual" >> calendario.log +ANIOACTUAL=`date | cut -d' ' -f7` +cal $ANIOACTUAL | tee -a calendario.log + \end{verbatim} +\end{myscriptlisting} + +Luego se presentan una serie de outputs relacionados a la solución de esta actividad + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema7$ ls +ejemplos_de_script.txt errores-de-grep.txt +curso@ubuntu:~/tema7$ head -n 5 ejemplos_de_script.txt | tail -n 1 + +curso@ubuntu:~/tema7$ head -n 5 ejemplos_de_script.txt +RECORDAR + +* Estos scripts tienen que tener permiso de ejecución +* Para ejecutar debe hacer referencia a el mediante path relativo o absoluto + + \end{verbatim} +\end{myscriptlisting} + +Notar que la 5ta línea no posee ningún caracter de allí la salida en pantalla presenta una +linea vacía. Luego si mediante el comando \textbf{head} obtenemos las 1eras 11 líneas y filtramos esta +última, es decir la nº 11, el output sera el que se presenta debajo: + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema7$ head -n 11 ejemplos_de_script.txt | tail -n 1 +ermirizio@atlas:~> cat script1.sh + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 4.} + +\subsubsection{Cat - Grep - Wc} + +\textbf{Consultar en el archivo actividad4.txt el número de veces que una IP ha sido registrada, +para ello podemos combinar los comandos:} + +\begin{itemize} + \item cat para obtener los contenidos del log. + \item grep para filtrar las lineas que contengan la cadena "192.168.0.1". + \item wc para contar los resultados obtenidos. + \end{itemize} + +\begin{myscriptlisting} + \begin{verbatim} + WC(1) User Commands WC(1) + +NAME + wc - print newline, word, and byte counts for each file + +SYNOPSIS + wc [OPTION]... [FILE]... + wc [OPTION]... --files0-from=F + +DESCRIPTION + Print newline, word, and byte counts for each FILE, and a total line if + more than one FILE is specified. With + no FILE, or when FILE is -, read standard input. A word is a + non-zero-length sequence of characters delimited + by white space. The options below may be used to select which counts + are printed, always in the following + order: newline, word, character, byte, maximum line length. + + -c, --bytes + print the byte counts + + -m, --chars + print the character counts + + -l, --lines + print the newline counts + + --files0-from=F + read input from the files specified by NUL-terminated names in file + F; If F is - then read names from + standard input + + -L, --max-line-length + print the length of the longest line + + -w, --words + print the word counts + \end{verbatim} +\end{myscriptlisting} + +\textbf{Respuesta:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema7$ cat actividad4.txt +Acceso 192.168.1.5 +Acceso 192.168.1.5 +Acceso 192.168.1.5 +Acceso 192.168.1.1 +Acceso 192.168.1.3 +Acceso 192.168.1.2 +Acceso 192.168.1.1 +Acceso 192.168.1.1 +Acceso 192.168.1.1 +Acceso 192.168.1.3 +Acceso 192.168.1.4 +Acceso 192.168.1.5 +Acceso 192.168.1.5 +Acceso 192.168.1.7 +Acceso 192.168.1.1 +Acceso 192.168.1.2 +Acceso 192.168.1.5 +Acceso 192.168.1.3 +Acceso 192.168.1.1 +Acceso 192.168.1.5 +Acceso 192.168.1.5 +Acceso 192.168.1.5 +Acceso 192.168.1.1 +Acceso 192.168.1.5 + +curso@ubuntu:~/tema7$ cat actividad4.txt | grep "192.168.1.5" | wc -l +10 + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 5.} + +\subsubsection{Find \& Sort script} + +\textbf{Cree un script llamado script1\_T7.sh que sea interpretado por bash. Al ejecutarse debe buscar en el +directorio HOME/CURSO todos los archivos y ordenelos por nombres alfabéticamente. +Redireccione el contenido en un archivo llamado salida\_script1\_T7.txt. +Ayuda: Puede emplear la opción -R del comando ls para listar subdirectorios, y la opción -u del comando sort.} + +We use \texttt{sort -u} to sort and remove duplicates from the text file we are sorting. +Check if the duplicate has been removed or not.\\ + +\textbf{Script:} + +\begin{myscriptlisting} + \begin{verbatim} +#!/bin/bash + +ls -R /home/curso | sort -u > salida_script1_T7.txt + \end{verbatim} +\end{myscriptlisting} + +\textbf{Output:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema7$ ls +actividad4.txt ejemplos_de_script.txt errores-de-grep.txt script1_T7.sh +curso@ubuntu:~/tema7$ chmod +x script1_T7.sh +curso@ubuntu:~/tema7$ ./script1_T7.sh +curso@ubuntu:~/tema7$ cat salida_script1_T7.txt +.: +128x128 +16x16 +256x256 +32x32 +48x48 +a123z +aaz +abe +abx +abz +ActionScript.sublime-package +Actividad10.png +Actividad11.png +Actividad12.png +Actividad13.png +Actividad14.png +Actividad15.txt +Actividad15.txt~ +Actividad2.png +Actividad3.txt +Actividad3.txt~ +actividad4.txt +Actividad4.txt +Actividad4.txt~ +... +User.sublime-package +var +Videos +./Videos: +Vintage.sublime-package +XML.sublime-package +YAML.sublime-package +curso@ubuntu:~$ + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 6.} + +\subsubsection{`` - in between Grave accent character } + +\textbf{¿Qué hace el comando echo `ls` ? (note que se usan apóstrofes invertidos).}\\ + +Ejecuta el comando ls y el resultado del mismo como cadena lo presenta con el comando echo. +Si no tiene las comillas el comando echo mostraría ''ls'' +Un comando encerrado entre apóstrofes invertidos (Ej.: `ls`) o entre las cadenas ``\$('' y ``)'', +será expandido al resultado que tal comando envíe a salida estándar cuando es ejecutado.\\ + +También considerar los \textbf{TIPS PARA CREAR SCRIPTS}:\\ + +\textbf{---CREACION---} +\begin{enumerate} +\item Todo script debe comenzar con \texttt{\#!/bin/bash} +\item Luego de creado el script, hay que hacerlo ejecutable con +\texttt{chmod +x nombre\_del\_script} +\item Para ejecutarlo, si estoy parado en el mismo lugar donde esta el script, debo +utilizar \texttt{./nombre\_del\_script} +\end{enumerate} + +\textbf{---DENTRO DEL SCRIPT---} +\begin{enumerate} +\item Crear Variables + \subitem -Asignar una cadena o mas conocida como string \\ \texttt{Nombre\_Variable=Valor} + \subitem -Asignar una cadena o mas conocida como string \\ \texttt{Nombre\_Variable=Valor} + +\item Imprimir valor de variable + \subitem \texttt{\$Nombre\_Variable} + +\item Igualar una nueva variable al valor de otra + \subitem \texttt{Nueva\_Variable=\$Nombre\_Variable} + +\item Impresion de cosas literales + \subitem \texttt{echo "nombre\_variable"} --> nombre\_variable + +\item Impresión de valores de una variable + \subitem \texttt{echo "\$nombre\_variable"} --> imprimo el valor que almacena la variable + +\item Impresión de salidas de comandos + \subitem \texttt{echo ``date''} --> la palabra date + \subitem \texttt{echo ``\$(date)''} --> la fecha de hoy + \subitem \texttt{echo `date`} --> la fecha de hoy + \subitem \texttt{echo `cat /etc/passwd | grep 'root'`} + +\item Igualar la salida de un comando a una variable + \subitem \texttt{Nombre\_varible=`cat /etc/passwd | grep 'root'`} + \subitem ej: \texttt{variable=`cat /etc/passwd | grep root`} + \subitem Para Imprimir --> \texttt{echo \$variable} +\end{enumerate} + +\cite{mirizioe2} + +\subsection{Actividad 7.} + +\subsubsection{FOR - loops and iteration} + +\textbf{Haciendo uso de la sentencia repetitiva FOR , realice un script que genere un fichero llamado lista.txt que contenga el nombre de los archivos que haya en el directorio /etc. +RECUERDE: Debe hacer uso de la expresión repetitiva for.} + +\textbf{Script:} + +\begin{myscriptlisting} + \begin{verbatim} +#!/bin/bash + +#Haciendo uso de la sentencia repetitiva FOR , realice un script que genere +#un fichero llamado lista.txt que contenga el nombre de los archivos que haya +#en el directorio /etc. RECUERDE: Debe hacer uso de la expresión repetitiva +#for. + +for F in /etc/* +do +echo $F >> lista.txt +done + \end{verbatim} +\end{myscriptlisting} + +\textbf{Output:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema7$ ./script2_T7.sh + +curso@ubuntu:~/tema7$ cat lista.txt +/etc/acpi +/etc/adduser.conf +/etc/alternatives +/etc/anacrontab +/etc/apg.conf +/etc/apm +/etc/apparmor +/etc/apparmor.d +/etc/apport +/etc/apt +/etc/at.deny +/etc/at-spi2 +/etc/avahi +... +/etc/vim +/etc/vtrgb +/etc/w3m +/etc/wgetrc +/etc/wodim.conf +/etc/wpa_supplicant +/etc/X11 +/etc/xdg +/etc/xml +/etc/zsh_command_not_found +curso@ubuntu:~/tema7$ + \end{verbatim} +\end{myscriptlisting} + +\pagebreak + +\section{Ejercicios Tema 8: Herramientas para procesar texto} + +\begin{itemize} + \item Herramientas para extraer texto. + \subitem Ver contenido de archivos: less, cat. + \subitem Ver extractos de archivos: head, tail. + \subitem Extraer texto en base a palabras claves: grep. + \item Extraer texto por columna: cut. + \subitem Ver contenido de archivos: less, cat + \item Herramientas para analizar texto. + \subitem Estadísticas: wc. + \subitem Ordenamiento de texto: sort, uniq. + \item Herramientas para manipular texto: + \subitem Alterar caracteres: tr + \subitem Alterar strings: sed + \item Caracteres especiales para búsquedas complejas. + \end{itemize} + +\subsection{Actividad 1.} + +\subsubsection{cat command} + +\textbf{Cree dos archivos con los siguientes nombres:}\\ + +\begin{itemize} + \item ArchivoA.txt con el contenido ``Esta es la primer linea del Archivo A'' + \item ArchivoB.txt con el contenido ``Esta es la primer linea del Archivo B'' +\end{itemize} + +Dado que el comando cat admite como argumentos una lista de archivos que se +pueden enlazar observe que sucede al ejecutar la siguiente linea: + +\begin{verbatim} +# cat ArchivoA.txt ArchivoB.txt +\end{verbatim} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ touch ArchivoA.txt ArchivoB.txt + +curso@ubuntu:~$ echo "Esta es la primera línea del Archivo A" > ArchivoA.txt +curso@ubuntu:~$ echo "Esta es la primera línea del Archivo B" > ArchivoB.txt + +curso@ubuntu:~$ cat ArchivoA.txt +Esta es la primera línea del Archivo A + +curso@ubuntu:~$ cat ArchivoB.txt +Esta es la primera línea del Archivo B +curso@ubuntu:~$ cat ArchivoA.txt ArchivoB.txt +Esta es la primera línea del Archivo A +Esta es la primera línea del Archivo B + \end{verbatim} +\end{myscriptlisting} + +\textbf{MAN cat} + +\begin{myscriptlisting} + \begin{verbatim} + CAT(1) User Commands CAT(1) + +NAME + cat - concatenate files and print on the standard output + +SYNOPSIS + cat [OPTION]... [FILE]... + +DESCRIPTION + Concatenate FILE(s), or standard input, to standard output. + + -A, --show-all + equivalent to -vET + + -b, --number-nonblank + number nonempty output lines, overrides -n + + -e equivalent to -vE + + -E, --show-ends + display $ at end of each line + + -n, --number + number all output lines + + -s, --squeeze-blank + suppress repeated empty output lines + + -t equivalent to -vT + + -T, --show-tabs + display TAB characters as ^I + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 2.} + +\subsubsection{less command} + +\textbf{Haciendo uso del comando less muestre el contenido del archivo /etc/hosts +empezando por la tercera línea.}\\ + +\begin{myscriptlisting} + \begin{verbatim} + + If a command line option begins with +, the remainder of that option + is taken to be an initial command + to less. For example, +G tells less to start at the end of + the file rather than the beginning, and + +/xyz tells it to start at the first occurrence of "xyz" in the + file. As a special case, + + acts like +g; that is, it starts the display at the + specified line number (however, see the + caveat under the "g" command above). If the option starts with + ++, the initial command applies to + every file being viewed, not just the first one. The + command + described previously may also be used + to set (or change) an initial command for every file. + \end{verbatim} +\end{myscriptlisting} + +The command to solve the exercise. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema8$ less +3 /etc/hosts + \end{verbatim} +\end{myscriptlisting} + +Then the output starts at the 3rd line: + +\begin{myscriptlisting} + \begin{verbatim} + # The following lines are desirable for IPv6 capable hosts +::1 localhost ip6-localhost ip6-loopback +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +~ +~ +~ +~ + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 3.} + +\subsubsection{grep \& regular expessions} + +\textbf{Haciendo uso del comando grep y expresiones regulares muestre las lineas +que comiencen por la letra 'd' en el archivo /etc/passwd} + +Se presentan debajo 2 formas de resolver el enunciado anterior: + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema8$ grep '^d' /etc/passwd +daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin +delivery:x:1000:1000:delivery,,,:/home/delivery:/bin/bash + +curso@ubuntu:~/tema8$ grep '^[d]' /etc/passwd +daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin +delivery:x:1000:1000:delivery,,,:/home/delivery:/bin/bash + + \end{verbatim} + +\end{myscriptlisting} + + +\subsection{Actividad 4.} + +\subsubsection{head command} + +\textbf{Haciendo uso del comando head obtener las 5 primeras lineas del archivo /etc/group} + +\begin{myscriptlisting} + \begin{verbatim} + EAD(1) User Commands HEAD(1) + +NAME + head - output the first part of files + +SYNOPSIS + head [OPTION]... [FILE]... + +DESCRIPTION + Print the first 10 lines of each FILE to standard output. With more than + one FILE, precede each with a header + giving the file name. With no FILE, or when FILE is -, read standard input. + + Mandatory arguments to long options are mandatory for short options too. + + -c, --bytes=[-]K + print the first K bytes of each file; with the leading '-', print + all but the last K bytes of each file + + -n, --lines=[-]K + print the first K lines instead of the first 10; with the leading + '-', print all but the last K lines + of each file + + -q, --quiet, --silent + never print headers giving file names + + -v, --verbose + always print headers giving file names + \end{verbatim} +\end{myscriptlisting} + + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema8$ head -n 5 /etc/group +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4:syslog,delivery +curso@ubuntu:~/tema8$ + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 5.} + +\subsubsection{sort command} + +\textbf{Haciendo uso del comando sort ordenar por la columna de permisos la salida del comando ls -l. +Ayuda: Recuerde que debe hacer uso de pipe para combinar dos o mas comandos.} + +\textbf{MAN sort} + +\begin{myscriptlisting} + \begin{verbatim} + SORT(1) User Commands SORT(1) + +NAME + sort - sort lines of text files + +SYNOPSIS + sort [OPTION]... [FILE]... + sort [OPTION]... --files0-from=F + +DESCRIPTION + Write sorted concatenation of all FILE(s) to standard output. + + Mandatory arguments to long options are mandatory for short options too. + Ordering options: + + -b, --ignore-leading-blanks + ignore leading blanks + + -d, --dictionary-order + consider only blanks and alphanumeric characters + + -f, --ignore-case + fold lower case to upper case characters + + -g, --general-numeric-sort + compare according to general numerical value + + -i, --ignore-nonprinting + consider only printable characters + + -M, --month-sort + compare (unknown) < 'JAN' < ... < 'DEC' + + -h, --human-numeric-sort + compare human readable numbers (e.g., 2K 1G) + + -n, --numeric-sort + compare according to string numerical value + + -R, --random-sort + sort by random hash of keys + + --random-source=FILE + get random bytes from FILE + + -r, --reverse + reverse the result of comparisons + \end{verbatim} +\end{myscriptlisting} + +\textbf{Respuesta:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls +ArchivoA.txt BarrireroExequiel Desktop Downloads Music Public +Software tema8 Videos +ArchivoB.txt BarrireroExequiel.tar.gz Documents group Pictures root +tema7 Templates +curso@ubuntu:~$ ls -l | sort +drwxrwxr-x 2 curso curso 4096 Dec 6 18:02 tema7 +drwxrwxr-x 2 curso curso 4096 Dec 7 09:12 tema8 +drwxrwxr-x 3 curso curso 4096 Dec 5 16:50 Software +drwxrwx--x 3 curso curso 4096 Dec 6 09:23 BarrireroExequiel +drwxrwx--x 5 curso curso 4096 Oct 3 20:57 root +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Documents +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Music +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Public +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Templates +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Videos +drwxr-x--x 2 curso curso 4096 Sep 21 19:30 Downloads +drwxr-x--x 2 curso curso 4096 Sep 21 20:53 Pictures +drwxr-x--x 3 curso curso 4096 Dec 5 16:52 Desktop +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group +-rw-rw-r-- 1 curso curso 40 Dec 7 09:12 ArchivoA.txt +-rw-rw-r-- 1 curso curso 40 Dec 7 09:12 ArchivoB.txt +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +total 2028 + \end{verbatim} +\end{myscriptlisting} + +\textbf{SORT command:} + +Sort is a Linux program used for printing lines of input text files and concatenation +of all files in sorted order. Sort command takes blank space as field separator and +entire Input file as sort key. It is important to notice that sort command don’t actually +sort the files but only print the sorted output, until your redirect the output.\\ + +\textbf{1 - Sort command without any options} + +Sorts lines in test file and displays sorted output. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort test +aaa +AAA +BBB +ddd +qqq +sss +zzz +\end{verbatim} +\end{myscriptlisting} + +\textbf{2 - Perform Numeric Sort using -n option} + +If we want to sort on numeric value, then we can use -n or –numeric-sort option. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort -n test +11 qqq +22 zzz +33 sss +55 BBB +77 aaa + \end{verbatim} +\end{myscriptlisting} + +\textbf{3 - Sort Human Readable Numbers using -h option} + +If we want to sort on human readable numbers (e.g., 2K 1M 1G), then we can use +-h or –human-numeric-sort option. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort -h test +1K +2K +2M +1G +2G +1T +6T + \end{verbatim} +\end{myscriptlisting} + +\textbf{4 - Sort Months of an Year using -M option} + +If we want to sort in the order of months of year, then we can use -M or –month-sort option. +The following sort command sorts lines in test file as per month order. Note, +lines in file should contain at least 3 character name of month name at start of +line (e.g. jan, feb, mar). If we will give, ja for January or au for August, then +sort command would not consider it as month name. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort -M test +jan +feb +mar11 +apr +aug +sept +oct + \end{verbatim} +\end{myscriptlisting} + +\textbf{5 - Check if Content is Already Sorted using -c option} + +If we want to check data in text file is sorted or not, then we can use -c or +–check, –check=diagnose-first option. +The following sort command checks whether text file data is sorted or not. +If it is not, then it shows first occurrence with line number and disordered value. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort -c test +sort: test:3: disorder: 1 + \end{verbatim} +\end{myscriptlisting} + +\textbf{6 - Reverse the Output and Check for Uniqueness using -r and -u options} + +If we want to get sorted output in reverse order, then we can use -r or –reverse +option. If file contains duplicate lines, then to get unique lines in sorted output, +“-u” option can be used. + +The following sort command sorts lines in test file in reverse order and removes +duplicate lines from sorted output. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort -r test +5 +4 +4 +2 +2 +1 + +$ sort -r -u test +5 +4 +2 +1 + \end{verbatim} +\end{myscriptlisting} + +\textbf{7 - Selectively Sort the Content, Customize delimiter, Write output to a file using -k, -t, -o options} + +If we want to sort on the column or word position in lines of text file, then “-k” +option can be used. If we each word in each line of file is separated by delimiter +except ‘space’, then we can specify delimiter using “-t” option. We can get sorted +output in any specified output file (using “-o” option) instead of displaying output +on standard output. + +The following sort command sorts lines in test file on the 3rd word of each line +and displays sorted output. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat test +aa aa zz +aa aa ff +aa aa tt +aa aa kk + +$ sort -k3 test +aa aa ff +aa aa kk +aa aa tt +aa aa zz + \end{verbatim} +\end{myscriptlisting} + + +Here, several options are used altogether. In test file, words in each line are +separated by delimiter ‘|’. It sorts lines in test file on the 2nd word of each +line on the basis of numeric value and stores sorted output into specified output file. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat test +aa|5a|zz +aa|2a|ff +aa|1a|tt +aa|3a|kk + +$ sort -n -t'|' -k2 test -o outfile + +$ cat outfile +aa|1a|tt +aa|2a|ff +aa|3a|kk +aa|5a|zz + \end{verbatim} +\end{myscriptlisting} + +\cite{thegeekstuff} + +\subsection{Actividad 6.} + +\subsubsection{cut command } + +\textbf{Haciendo uso del comando cut obtener el 1º, el 5º y todos los caracteres +comprendidos entre el 10º y el 20º del archivo /etc/passwd.}\\ + +\textbf{MAN cut} + +\begin{myscriptlisting} + \begin{verbatim} + CUT(1) User Commands CUT(1) + +NAME + cut - remove sections from each line of files + +SYNOPSIS + cut OPTION... [FILE]... + +DESCRIPTION + Print selected parts of lines from each FILE to standard output. + + Mandatory arguments to long options are mandatory for short options too. + + -b, --bytes=LIST + select only these bytes + + -c, --characters=LIST + select only these characters + + -d, --delimiter=DELIM + use DELIM instead of TAB for field delimiter + + -f, --fields=LIST + select only these fields; also print any line that contains + no delimiter character, unless the -s + option is specified + + -n (ignored) + + --complement + complement the set of selected bytes, characters or fields + + -s, --only-delimited + do not print lines not containing delimiters + + --output-delimiter=STRING + use STRING as the output delimiter the default is to use the input + delimiter + \end{verbatim} +\end{myscriptlisting} + +\textbf{Respuesta:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ cut -c1,5,10-20 /etc/passwd +r:0:root:/roo +do1:1:daemon: +bx:bin:/bin:/ +sx:sys:/dev:/ +s:65534:sync: +gs:60:games:/ +mx2:man:/var/ +l:lp:/var/spo +m:8:mail:/var +n:9:news:/var +u::10:uucp:/v +py3:13:proxy: +wdx:33:33:www +bu34:34:backu +l::38:Mailing +ix39:ircd:/va +gs1:41:Gnats +nd65534:65534 +lu:100:101::/ +so101:104::/h +mas:x:102:106 +ls:x:103:109: +s:4:65534::/v +dvx:1000:1000 +va:999:1::/va +uu105:46:usbm +ai06:113:Avah +cr107:116:col +pe08:117:Puls +rt09:119:Real +lt:110:120:Li +co001:1001::/ +curso@ubuntu:~$ + \end{verbatim} +\end{myscriptlisting} + +\textbf{SORT command:} + +Linux command cut is used for text processing. You can use this command to +extract portion of text from a file by selecting columns.\\ + +\textbf{1 - Select Column of Characters} + +To extract only a desired column from a file use -c option. The following +example displays 2nd character from each line of a file test.txt + +\begin{myscriptlisting} + \begin{verbatim} +$ cat test.txt +cat command for file oriented operations. +cp command for copy files or directories. +ls command to list out files and directories with its attributes. + +$ cut -c2 test.txt +a +p +s +\end{verbatim} +\end{myscriptlisting} + +As seen above, the characters a, p, s are the second character from each line of the test.txt file. + +\textbf{2 - Select Column of Characters using Range} + +Range of characters can also be extracted from a file by specifying start and +end position delimited with -. The following example extracts first 3 characters +of each line from a file called test.txt + +\begin{myscriptlisting} + \begin{verbatim} +$ cat test.txt +cat command for file oriented operations. +cp command for copy files or directories. +ls command to list out files and directories with its attributes. + +$ cut -c1-3 test.txt +cat +cp +ls + \end{verbatim} +\end{myscriptlisting} + +\textbf{3 - Select Column of Characters using either Start or End Position} + +Either start position or end position can be passed to cut command with -c option. + +The following specifies only the start position before the ‘-‘. This example +extracts from 3rd character to end of each line from test.txt file. + +\begin{myscriptlisting} + \begin{verbatim} +$ cut -c3- test.txt +t command for file oriented operations. + command for copy files or directories. + command to list out files and directories with its attributes. + \end{verbatim} +\end{myscriptlisting} + +The following specifies only the end position after the ‘-‘. This example +extracts 8 characters from the beginning of each line from test.txt file. + +\begin{myscriptlisting} + \begin{verbatim} +$ cut -c-8 test.txt +cat comm +cp comma +ls comma + \end{verbatim} +\end{myscriptlisting} + +The entire line would get printed when you don’t specify a number before or +after the ‘-‘ as shown below. + +\begin{myscriptlisting} + \begin{verbatim} +$ cut -c- test.txt +cat command for file oriented operations. +cp command for copy files or directories. +ls command to list out files and directories with its attributes. + \end{verbatim} +\end{myscriptlisting} + +\textbf{4 - Select a Specific Field from a File} + +Instead of selecting x number of characters, if you like to extract a whole field, +you can combine option -f and -d. The option -f specifies which field you want to +extract, and the option -d specifies what is the field delimiter that is used in the input file. + +The following example displays only first field of each lines from /etc/passwd +file using the field delimiter : (colon). In this case, the 1st field is the +username. The file + +\begin{myscriptlisting} + \begin{verbatim} +$ cut -d':' -f1 /etc/passwd +root +daemon +bin +sys +sync +games +bala + \end{verbatim} +\end{myscriptlisting} + +\textbf{5 - Select Multiple Fields from a File} + +You can also extract more than one fields from a file or stdout. Below example +displays username and home directory of users who has the login shell as “/bin/bash”. + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d':' -f1,6 +root:/root +bala:/home/bala + \end{verbatim} +\end{myscriptlisting} + +To display the range of fields specify start field and end field as shown below. +In this example, we are selecting field 1 through 4, 6 and 7 + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d':' -f1-4,6,7 +root:x:0:0:/root:/bin/bash +bala:x:1000:1000:/home/bala:/bin/bash + \end{verbatim} +\end{myscriptlisting} + +\textbf{6 - Select Fields Only When a Line Contains the Delimiter} + +IIn our /etc/passwd example, if you pass a different delimiter other than : +(colon), cut will just display the whole line. + +In the following example, we’ve specified the delimiter as | (pipe), and cut +command simply displays the whole line, even when it doesn’t find any line +that has | (pipe) as delimiter. + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d'|' -f1 +root:x:0:0:root:/root:/bin/bash +bala:x:1000:1000:bala,,,:/home/bala:/bin/bash + \end{verbatim} +\end{myscriptlisting} + +But, it is possible to filter and display only the lines that contains the +specified delimiter using -s option. + +The following example doesn’t display any output, as the cut command didn’t find +any lines that has | (pipe) as delimiter in the /etc/passwd file. + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d'|' -s -f1 + \end{verbatim} +\end{myscriptlisting} + +\textbf{7 - Select All Fields Except the Specified Fields} + +In order to complement the selection field list use option –complement. + +The following example displays all the fields from /etc/passwd file except field 7 + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d':' --complement -s -f7 +root:x:0:0:root:/root +bala:x:1000:1000:bala,,,:/home/bala + \end{verbatim} +\end{myscriptlisting} + +\textbf{8 - Change Output Delimiter for Display} + +By default the output delimiter is same as input delimiter that we specify in the cut -d option. + +To change the output delimiter use the option –output-delimiter as shown below. +In this example, the input delimiter is : (colon), but the output delimiter is \# (hash). + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d':' -s -f1,6,7 --output-delimiter='#' +root#/root#/bin/bash +bala#/home/bala#/bin/bash + \end{verbatim} +\end{myscriptlisting} + +\textbf{9 - Change Output Delimiter to Newline} + +In this example, each and every field of the cut command output is displayed in +a separate line. We still used –output-delimiter, but the value is \$’\textbackslash n’ which +indicates that we should add a newline as the output delimiter. + +\begin{myscriptlisting} + \begin{verbatim} +$ grep bala /etc/passwd | cut -d':' -f1,6,7 --output-delimiter=$'\n' +bala +/home/bala +/bin/bash + \end{verbatim} +\end{myscriptlisting} + +\cite{thegeekstuff2} + +\subsection{Actividad 7.} + +\subsubsection{sed command} + +\textbf{Haciendo uso del comando sed elimine todas las lineas del archivo que +comiencen con \# (comentarios).} + +Script.txt + +\begin{verbatim} +#!bin/bash + +#Mi primer programa + +echo "Hola Mundo" +\end{verbatim} + +\textbf{MAN sed} + +\begin{myscriptlisting} + \begin{verbatim} + SED(1) User Commands SED(1) + +NAME + sed - stream editor for filtering and transforming text + +SYNOPSIS + sed [OPTION]... {script-only-if-no-other-script} [input-file]... + +DESCRIPTION + Sed is a stream editor. A stream editor is used to perform basic text + transformations on an input stream (a + file or input from a pipeline). While in some ways similar to an editor + which permits scripted edits (such as + ed), sed works by making only one pass over the input(s), and is + consequently more efficient. But it is sed's + ability to filter text in a pipeline which particularly distinguishes it + from other types of editors. + \end{verbatim} +\end{myscriptlisting} + +\textbf{Respuesta:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema8$ pwd +/home/curso/tema8 +curso@ubuntu:~/tema8$ ls +actividad7_T8.sh +curso@ubuntu:~/tema8$ cat actividad7_T8.sh +#!bin/bash + +#Haciendo uso del comando sed elimine todas las lineas del archivo que +#comiencen con \# (comentarios). + +#Mi primer programa + +echo "Hola Mundo"curso@ubuntu:~/tema8$ sed 's/^#.*//g' actividad7_T8.sh + + + + + + + +echo "Hola Mundo"curso@ubuntu:~/tema8$ + \end{verbatim} +\end{myscriptlisting} + +\textbf{SED command:} + +The `s’ (or sed) command attempts to match the pattern space against the supplied REGEXP; +if the match is successful, then that portion of the pattern space which was +matched is replaced with REPLACEMENT. + +\begin{myscriptlisting} + \begin{verbatim} +Syntax: + +#sed 'ADDRESSs/REGEXP/REPLACEMENT/FLAGS' filename +#sed 'PATTERNs/REGEXP/REPLACEMENT/FLAGS' filename +\end{verbatim} +\end{myscriptlisting} + +\begin{itemize} + \item \textbf{s} is substitute command + \item \textbf{/} is a delimiter + \item \textbf{REGEXP} is regular expression to match + \item \textbf{REPLACEMENT} is a value to replace +\end{itemize} + +FLAGS can be any of the following + +\begin{itemize} + \item \textbf{g} Replace all the instance of REGEXP with REPLACEMENT + \item \textbf{n} Could be any number,replace nth instance of the REGEXP with REPLACEMENT. + \item \textbf{p} If substitution was made, then prints the new pattern space. + \item \textbf{i} match REGEXP in a case-insensitive manner. + \item \textbf{w} file If substitution was made, write out the result to the given file. + \item We can use different delimiters ( one of @ \% ; : ) instead of \textbf{/} +\end{itemize} + + +\textbf{1 - Substitute Word “Linux” to “Linux-Unix” Using sed s//} + +In the example below, in the output line “1. Linux-Unix Sysadmin, Linux +Scripting etc” only first Linux is replaced by Linux-Unix. If no flags are +specified the first match of line is replaced. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed 's/Linux/Linux-Unix/' example.txt +# Instruction Guides +1. Linux-Unix Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux-Unix +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. +\end{verbatim} +\end{myscriptlisting} + +\textbf{2 - Substitute all Appearances of a Word Using sed s//g} + +The below sed command replaces all occurrences of Linux to Linux-Unix using +global substitution flag “g”. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed 's/Linux/Linux-Unix/g' example.txt +# Instruction Guides +1. Linux-Unix Sysadmin, Linux-Unix Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux-Unix +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + \end{verbatim} +\end{myscriptlisting} + +\textbf{3 - Substitute Only 2nd Occurrence of a Word Using sed s//2} + +In the example below, in the output line “1. Linux Sysadmin, Linux-Unix Scripting +etc.” only 2nd occurance of Linux is replaced by Linux-Unix. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed 's/Linux/Linux-Unix/2' example.txt +# Instruction Guides +1. Linux Sysadmin, Linux-Unix Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + \end{verbatim} +\end{myscriptlisting} + +\textbf{4 - Write Changes to a File and Print the Changes Using sed s//gpw} + +The example below has substitution with three flags. It substitutes all the +occurance of Linux to Linux-Unix and prints the substituted output as well as +written the same to the given the file. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed -n 's/Linux/Linux-Unix/gpw output' example.txt +1. Linux-Unix Sysadmin, Linux-Unix Scripting etc. +4. Storage in Linux-Unix +$ cat output +1. Linux-Unix Sysadmin, Linux-Unix Scripting etc. +4. Storage in Linux-Unix + \end{verbatim} +\end{myscriptlisting} + +\textbf{5 - Substitute Only When the Line Matches with the Pattern Using sed} + +In this example, if the line matches with the pattern “-“, then it replaces +all the characters from “-” with the empty. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed 's/-.*//g' example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows + \end{verbatim} +\end{myscriptlisting} + +\textbf{6 - Delete Last X Number of Characters From Each Line Using sed} + +This sed example deletes last 3 characters from each line. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed 's/...$//' example.txt +# Instruction Gui +1. Linux Sysadmin, Linux Scripting e +2. Databases - Oracle, mySQL e +3. Security (Firewall, Network, Online Security e +4. Storage in Li +5. Productivity (Too many technologies to explore, not much time availab +# Additional F +6. Windows- Sysadmin, reboot e + \end{verbatim} +\end{myscriptlisting} + +\textbf{7 - Eliminate Comments Using sed} + +Delete all the comment lines from a file as shown below using sed command. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed -e 's/#.*//' example.txt + +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) + +6. Windows- Sysadmin, reboot etc. + \end{verbatim} +\end{myscriptlisting} + +\textbf{8 - liminate Comments and Empty Lines Using sed} + +In this example, there are two commands seperated by ‘;’ + +\begin{itemize} + \item First command replaces the lines starting with the \# to the blank lines + \item Second command deletes the empty lines. +\end{itemize} + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed -e 's/#.*//;/^$/d' example.txt +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +6. Windows- Sysadmin, reboot etc. + \end{verbatim} +\end{myscriptlisting} + +\textbf{9 - Convert DOS newlines (CR/LF) to Unix format Using sed} + +Copy the DOS file to Unix, you could find \textbackslash r \textbackslash n in +the end of each line. + +This example converts the DOS file format to Unix file format using sed command. + +\begin{myscriptlisting} + \begin{verbatim} +$sed 's/.$//' filename + \end{verbatim} +\end{myscriptlisting} + +\textbf{10 - Eliminate HTML Tags from file Using sed} +In this example, the regular expression given in the sed command matches the +html tags and replaces with the empty. + +\begin{myscriptlisting} + \begin{verbatim} +$ sed -e 's/<[^>]*>//g' +This is an example. +This is an example. + \end{verbatim} +\end{myscriptlisting} + +\cite{thegeekstuff3} + +\pagebreak + +\section{Ejercicios Tema 10: Shell scripting intermedio} + +\begin{itemize} + \item Agrupación de comandos. + \item Interpretación del estado de salida de un proceso. + \item Operadores de ejecución condicional: ||, \&\&. + \item Evaluación booleana de sentencias: test. + \item Expresiones condicionales: if. + \item Interpretación de parámetros de un comando. + \item Lectura de entrada como argumento de un parámetro: read. + \end{itemize} + + +\subsection{Actividad 1.} + +\subsubsection{tar - gzip - date format output} + +\textbf{Realizar un script que dado un directorio, cree un archivo tar comprimido con gzip y con nombre igual a la fecha en formato yyyy-mm-dd seguido del nombre del directorio.tar.gz +Por ejemplo: aplicado al directorio tmp obtendríamos 2012-07-11tmp.tar.gz.}\\ + +\begin{myscriptlisting} + \begin{verbatim} +#!/bin/bash + +#Realizar un script que dado un directorio, cree un archivo tar comprimido con +#gzip y con nombre igual a la fecha en formato #yyyy-mm-dd seguido del nombre del directorio.tar.gz +#Por ejemplo: aplicado al directorio tmp obtendríamos 2012-07-11tmp.tar.gz. + +#tar -zcvf archive-name.tar.gz directory-name +#Where, +#-z : Compress archive using gzip program +#-c : Create archive +#-v : Verbose i.e display progress while creating archive +#-f : Archive File name + +Date=$(date +"%Y-%m-%d") +echo "####################################" +echo "######### Date: $Date #########" +echo "####################################" + +read -p "Input absolute path DIR to Comperss: " Dir +echo "####################################" +echo "# Directory to Compress: $Dir #" +echo "####################################" + +Dir_name=$(echo "$Dir" | tr '/' '-') +echo "####################################" +echo "## The dir name is: $Dir_name " +echo "####################################" + +tar -zcvf $Date$Dir_name.tar.gz "$Dir" +compress_f=$(ls -la | grep tar.gz | cut -d' ' -f8-12) +echo "####################################" +echo "########## Your backups: ###########" +echo "$compress_f " +echo "####################################" + \end{verbatim} +\end{myscriptlisting} + +Then the result: + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema10$ ./actividad1.sh +#################################### +######### Date: 2015-12-08 ######### +#################################### +Input absolute path DIR to Comperss: /tmp +#################################### +# Directory to Compress: /tmp # +#################################### +#################################### +## The dir name is: -tmp +#################################### +tar: Removing leading `/' from member names +/tmp/ +/tmp/config-err-epPb49 +/tmp/.org.chromium.Chromium.JkwRvY/ +tar: /tmp/.org.chromium.Chromium.JkwRvY/SingletonSocket: socket ignored +/tmp/.org.chromium.Chromium.JkwRvY/SingletonCookie +/tmp/.ICE-unix/ +tar: /tmp/.ICE-unix/1633: socket ignored +/tmp/.X0-lock +/tmp/orbit-curso/ +/tmp/.X11-unix/ +tar: /tmp/.X11-unix/X0: socket ignored +#################################### +########## Your backups: ########### +Dec 8 11:31 2015-12-08-tmp.tar.gz +#################################### +curso@ubuntu:~/tema10$ + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 2.} + +\subsubsection{script : ''divisible por 2``} + +\textbf{Realizar un script que, dado un número, indique si es o no divisible por 2. +Si no se ingresa un número debe decir como usar el programa.}\\ + +\begin{myscriptlisting} + \begin{verbatim} +#!/bin/bash + +#Realizar un script que, dado un número, indique si es o no divisible por 2. +#Si no se ingresa un número debe decir como usar el programa. + +divisor=2 + +read -t 3 -p "Input a Number to check if it's divisible by 2 : " Number || echo -e "\nPlase enter a number during the 1st 3 secs" +#echo $(($Number / $divisor)) +#expr $Number / $divisor +#if [$(($number % 5)) -eq 0 ] + +# Use the && (and) and || (or) operators: +#if [[ expression ]] && [[ expression ]] || [[ expression ]] ; then + +#They can also be used within a single [[ ]]: +#if [[ expression && expression || expression ]] ; then + +#And, finally, you can group them to ensure order of evaluation: +#if [[ expression && ( expression || expression ) ]] ; then + +if [[ "$Number" -ne 0 ]] && [[ -n $Number ]] +then + if (($Number % $divisor == 0)) + then + echo "Your number is divisible by 2" + else + echo "Your number is not divisible by 2" + fi +else + echo "You must enter a number dif from 0 (cero) to check if it's divisible by 2" +fi + \end{verbatim} +\end{myscriptlisting} + +Then the OUTPUT: + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : +Plase enter a number during the 1st 3 secs +You must enter a number dif from 0 (cero) to check if it's divisible by 2 +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : 0 +You must enter a number dif from 0 (cero) to check if it's divisible by 2 +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : 1 +Your number is not divisible by 2 +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : 2 +Your number is divisible by 2 +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : 3 +Your number is not divisible by 2 +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : 4 +Your number is divisible by 2 +curso@ubuntu:~/tema10$ + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 3.} + +\subsubsection{script: tar - gzip - date format output} + +\textbf{Realizar un script que dado una lista de directorios, cree un archivo tar comprimido con gzip +con nombre igual a la fecha en formato yyyy-mm-dd.tar.gz. +Además se debe generar un fichero yyyy-mm-dd.lst con los nombres de los directorios +contenidos en el archivo tar, uno por linea usando un bucle. +Si el fichero lst existe, mostrar un error y terminar el programa. +Si alguno de los elementos no es un directorio, mostrar un error y finalizar el programa.} + +\begin{myscriptlisting} + \begin{verbatim} +#!/bin/bash + +#Realizar un script que dado una lista de directorios, cree un archivo tar +#comprimido con gzip con nombre igual a la fecha en formato yyyy-mm-dd.tar.gz. +#Además se debe generar un fichero yyyy-mm-dd.lst con los nombres de los di- +#rectorios contenidos en el archivo tar, uno por linea usando un bucle. Si el +#fichero lst existe, mostrar un error y terminar el programa. Si alguno de los +#elementos no es un directorio, mostrar un error y finalizar el programa. + +# 1386 ls -d /home/curso/* +# 1387 ls -x /home/curso/* | grep '^d' +# 1388 ls -x -R /home/curso/ +read -p "Input absolute path DIR to get a List of +subdirs in a .txt and compress this file list: " Dir + +echo "####################################" +echo "# List of Dirs to Compress: $Dir # +echo "####################################" + +Dir_name=$(echo "$Dir" | tr '/' '-') +echo "####################################" +echo "## The dir name replazing / for - is: $Dir_name " +echo "####################################" + +#curso@ubuntu:~/tema10$ ls -lR /home/curso/ | grep '^d' | cut -d' ' -f9-13 | cut -d':' -f2 +ls -ld $Dir* | cut -d' ' -f12-16 | cut -d'/' -f2-6 | sed '/^$/d' > Dir_list.txt + +Date=$(date +"%Y-%m-%d") +echo "####################################" +echo "######### Date: $Date #########" +echo "####################################" + +tar -zcvf $Date.tar.gz Dir_list.txt +compress_f=$(ls -la | grep tar.gz | cut -d' ' -f8-12) +echo "####################################" +echo "########## Your backups: ###########" +echo "$Backup List " +echo "####################################" + +if [ test -f ./ext/Dir_list_ext.lst ] +then + echo "El fichero .lst YA EXISTE" +else + mkdir ext + tar -xzvf $Date.tar.gz -C ./ext + echo -e "Se creará fichero lst en base a la lista de Dirs del file en \n archivo /ext/Dir_list_ext.lst" + while IFS='' read -r line || [[ -n "$line" ]]; do + echo "$line," >> ./ext/Dir_list_ext.lst + done < Dir_list.txt +fi + \end{verbatim} +\end{myscriptlisting} + +Then the OUTPUT: + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema10$ ls +2015-12-08-tmp.tar.gz actividad1.sh actividad2.sh actividad3.sh +curso@ubuntu:~/tema10$ ./actividad3.sh +Input absolute path DIR to get a List of +subdirs in a .txt and compress this file list: /home/curso/ +#################################### +# List of Dirs to Compress: /home/curso/ # +#################################### +#################################### +## The dir name replazing / for - is: -home-curso- +#################################### +#################################### +######### Date: 2015-12-08 ######### +#################################### +Dir_list.txt +#################################### +########## Your backups: ########### + List +#################################### +./actividad3.sh: line 41: [: -f: binary operator expected +Dir_list.txt +Se creará fichero lst en base a la lista de Dirs del file en + archivo /ext/Dir_list_ext.lst +curso@ubuntu:~/tema10$ ls +2015-12-08.tar.gz 2015-12-08-tmp.tar.gz actividad1.sh actividad2.sh actividad3.sh Dir_list.txt ext +curso@ubuntu:~/tema10$ cd ext/ +curso@ubuntu:~/tema10/ext$ ls +Dir_list_ext.lst Dir_list.txt +curso@ubuntu:~/tema10/ext$ cat Dir_list.txt +home/curso/ArchivoA.txt +home/curso/ArchivoB.txt +home/curso/BarrireroExequiel +home/curso/dead.letter +home/curso/Desktop +home/curso/Documents +home/curso/Downloads +home/curso/group -> /etc/group +home/curso/Music +home/curso/Pictures +home/curso/Public +home/curso/root +home/curso/Software +home/curso/tema10 +home/curso/tema7 +home/curso/tema8 +home/curso/Templates +home/curso/Videos +curso@ubuntu:~/tema10/ext$ cat Dir_list_ext.lst +home/curso/ArchivoA.txt, +home/curso/ArchivoB.txt, +home/curso/BarrireroExequiel, +home/curso/dead.letter, +home/curso/Desktop, +home/curso/Documents, +home/curso/Downloads, +home/curso/group -> /etc/group, +home/curso/Music, +home/curso/Pictures, +home/curso/Public, +home/curso/root, +home/curso/Software, +home/curso/tema10, +home/curso/tema7, +home/curso/tema8, +home/curso/Templates, +home/curso/Videos, +curso@ubuntu:~/tema10/ext$ + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 4.} + +\subsubsection{head command} + +\textbf{Explique la siguiente linea de comando:} + +\begin{verbatim} +if [ -e $HOME/.configuracion -a ! -e SinConfiguracion] +\end{verbatim} + +\subsection{Actividad 5 (ejercitación evaluación).} + +\subsubsection{script: find directories by name - for - if - test - ls} + +\textbf{Crear un script en bash que imprima en un archivo llamado, lista\_directorios, +el nombre de aquellos archivos que solo sean directorios. +Utilizar un ls que recorra el directorio /home/usuario (cualquier usuario). +Ayuda: comandos a utilizar for, if, test y ls.} + +\subsection{Actividad 6 (ejercitación evaluación).} + +\subsubsection{script: True or False - for - if - test - ls} + +\textbf{Crear un script en bash que indique "Verdadero o Falso" si la cantidad de dispositivos de caracteres +especiales es mayor que la cantidad de dispositivos de bloques existentes en el directorio /dev. +Ayuda: comandos a utilizar for, if, test y ls.} + +\pagebreak + +\section{Ejercicios Tema 11: Configuración de Bash} + +\begin{itemize} + \item Variables de bash. + \item Variables de entorno. + \item Alias. + \item Cómo expande bash una línea de comandos. + \item Prevenir la expansión. + \item Diferencias entre shell con y sin login. + \item Tareas de ejecución al inicio de un bash. + \item Tareas de ejecución al final de un bash. + \end{itemize} + + +\subsection{Actividad 1.} + +\subsubsection{Variable de entorno PS1} + +\textbf{Explore la utilidad de la variable de entorno PS1 y escriba en un archivo de texto +el uso basico de esa variable con 2 ejemplos.}\\ + +\subsection{Actividad 2.} + +\subsubsection{Limpiar History y /tmp} + +\textbf{Configure su usuario de sistema para que limpie el historial y el contenido +de la carpeta /tmp al salir del sistema.}\\ + +\subsection{Actividad 3.} + +\subsubsection{init.d and processes} + +\textbf{Configure su usuario de sistema para que al inicio imprima en la terminal +los 3 procesos que mas ocupan memoria.} + +\subsection{Actividad 4.} + +\subsubsection{backup script - tar gz} + +\textbf{Cree un comando de bash llamado "backup\_personal", que realize un tar gz de la +carpeta home del usuario con la fecha actual e imprima la salida en el archivo /tmp/backup.log } + +\subsection{Actividad 5.} + +\subsubsection{Alias for grep command} + +\textbf{Cree un alias para el comando grep que permita por defecto pintar las +ocurrecias exitosas de grep , al ejecutar el comando grep.} + +\subsection{Actividad 6.} + +\subsubsection{script: given a value to a variable} + +\textbf{Realize un script que imprima en una misma linea la siguiente frase, teniendo en cuenta +que la palabra producto proviene de la variable producto=parrilla. +" Precio de lista de producto \$100"} + +\pagebreak + +\bibliography{miscitas} + +\pagebreak + +\chapter{\Large{\textbf{Siglas y Acr\'onimos}}} +\addcontentsline{toc}{section}{Siglas y Acr\'onimos} + +\begin{acronym} + +\acro{cd}[cd]{change directory} +\acro{eol}[EOL]{End of Life} +\acro{gnu}[GNU]{GNU's Not Unix!} +\acro{gnome}[Gnome]{GNU Network Object Model Environment} +\acro{gtk}[GTK]{Graphical user interface toolkit} +\acro{gui}[GUI]{Grafic User Interface} +\acro{kde}[KDE]{K desktop environment} +\acro{sudo}[sudo]{Super-user do} + + +% Internet, \emph{Honeypot},} +\end{acronym} + +\end{document} diff --git a/TPs_Diplomatura_Linux.tex.backup b/TPs_Diplomatura_Linux.tex.backup new file mode 100644 index 0000000..75b53dd --- /dev/null +++ b/TPs_Diplomatura_Linux.tex.backup @@ -0,0 +1,4603 @@ +\documentclass[a4paper,11pt,spanish]{article} % or {article} + +\usepackage[utf8x]{inputenc} +%\usepackage[utf8]{inputenc}% utf8x es un extensión, en gral las +% extensiones funcionan mejor, ``archx`` son extensiones. En ubuntu +% la extensión es utf8x +\usepackage[spanish]{babel} + \addto{\captionsspanish}{\renewcommand*{\refname}{ +\center \Large BIBLIOGRAFÍA}} +\usepackage[T1]{fontenc} % Los fonts tipo T1 están en todos los +% visualizadores +\usepackage{times} % recordar que T1 + times logra un estilo de fuente +%muy armónico +\usepackage{verbatim} % verbatim package to use multiline comments in +%Latex \begin{comment}...\end{comment} +\usepackage{listings} + +% SOME Extra packages +\usepackage{calc} +\usepackage{setspace} +\usepackage{fixltx2e} +\usepackage[normalem]{ulem} +%% Please revise the following command, if your babel +%% package does not support English (US) +\usepackage{color} +\usepackage{hyperref} + + +\usepackage[utf8x]{inputenc} +\usepackage[spanish]{babel} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{xcolor} +\usepackage{color} +%\usepackage{hyperref} +%\usepackage{geometry} +%\geometry{verbose,a4paper,tmargin=30mm,bmargin=20mm,lmargin=30mm, +%rmargin=20mm} +\usepackage{setspace} +\usepackage{url} +\usepackage{tocvsec2} +\usepackage{float} +\usepackage[nottoc,notlof,notlot]{tocbibind} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsfonts} +\usepackage{textcomp} +\usepackage[font=footnotesize,labelfont=bf]{caption} +\usepackage{booktabs} +\usepackage{multirow} +\usepackage{multicol} % tabular mgmt +\usepackage{bm} +\usepackage{pdfpages} % to import PDF pages +\usepackage{acronym} +\usepackage{multicol} +%\usepackage{subfigure} +%\usepackage[caption=false]{subfig} +\usepackage{subfig} +%\usepackage{subcaption} +\usepackage{graphicx} + +\newenvironment{mytinylisting} +{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\tiny\bfseries} +{\end{list}} + +\newenvironment{myscriptlisting} +{\begin{list}{}{\setlength{\leftmargin}{1em}}\item\scriptsize\bfseries} +{\end{list}} + + + +%opening +\title{\huge UNIVERSIDAD NACIONAL de CORDOBA - Departamento Universitario de Informática} +% \\[2cm]\huge +% Dimensionamiento de una estaci\'on ISDB-Tb \& Visita LV80 TV Canal +% 10 \\[2cm]} +\date{} + +\makeatletter +\def\@biblabel#1{} +\makeatother + +\spanishdecimal{.} +\bibliographystyle{apalike} +\renewcommand{\figurename}{Fig.} %Cambia la palabra ``Figura`` por ``Fig.`` +\renewcommand{\tablename}{Tabla} %Cambia la palabra ``Cuadro`` por ``Tabla`` +\renewcommand{\listtablename}{Índice de tablas} + +\begin{document} +\pagenumbering{roman} +\maketitle +\thispagestyle{empty} + +\begin{figure}[htb] % h= here t=top =bottom con respecto al texto +\centering +\includegraphics[width=.5\textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/LogoDUI.jpg} \ \ \ +\ \ +%\caption{\emph{ Representaci\'{o}n gr\'{a}fica +\includegraphics[width=.4\textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/LogoLinux.jpg} +\end{figure} + +\begin{center} + +\hspace*{\fill} \\[.7cm] \Large Diplomatura SO Linux +\\[1cm] + +\begin{tabular}[h]{|p{ 9cm }|} +\hline +\textbf{\Large Prácticos curso Administración básica de +\mbox{Sistemas Operativos GNU/Linux.}} +\\ +\hline +\end{tabular} + +\author{ \hspace*{\fill} \\[.9cm] BARRIRERO, Exequiel \\} + +\end{center} + +\begin{flushleft} +\textbf{ \\[.3cm] Profesor:} MIRIZIO, Esteban.\\ +\end{flushleft} + +\begin{center} +\textbf{\large -2015-}\\[2.5cm] +\end{center} + +\begin{center} +in \LaTeX +\end{center} + +\newpage +\begin{center} +\tableofcontents +\listoffigures +\listoftables +\setcounter{secnumdepth}{3} +%\settocdepth{subsection} +\end{center} + +\newpage +\pagenumbering{arabic} +\setcounter{page}{1} + +%\setcounter{page}{2} +%\thispagestyle{empty} + +\section{Ejercicios Tema1: Introducción al entorno gráfico de un Sistema GNU/Linux y herramientas} + +\begin{itemize} + \item Conceptos básicos de sistemas operativos + \subitem Conceptos de multitarea y multiusuario + \subitem Explicar la naturaleza del software opensource + \item Orígenes de GNU/Linux. Distribuciones GNU/Linux. Principios básicos de GNU/Linux. + \item Entornos de escritorio más comunes: Gnome. + \item Navegadores de sistemas archivos: Nautilus. + \item Navegación web: Firefox. + \item Ofimática: LibreOffice: Writer y Calc + \item Multimedia: reproductores de audio y reproductores de video. + \item Editores de texto: Gedit. + \item Visor de PDF: Evince. + \item Pasar de entorno gráfico a consola +\end{itemize} + +\subsection{Actividad 1.} +\subsubsection{Kernel: Definición} + +En informática, un núcleo o kernel (de la raíz germánica Kern, núcleo, hueso) es un software que +constituye una parte fundamental del sistema operativo, y se define como la parte que se ejecuta en modo +privilegiado (conocido también como modo núcleo). Es el principal responsable de facilitar a +los distintos programas acceso seguro al hardware de la computadora o en forma básica, +es el encargado de gestionar recursos, a través de servicios de llamada al sistema. +Como hay muchos programas y el acceso al hardware es limitado, también se encarga de +decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, +lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, +por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder +la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso +al programador. + +\cite{wikikernel} + +\subsubsection{Versión actual de kernel estable en \ac{gnu}/Linux} + +Here are several main categories into which kernel releases may fall: + +\begin{itemize} + \item \textbf{Prepatch: \\} +Prepatch or ``RC`` kernels are mainline kernel pre-releases that are mostly aimed at other kernel developers +and Linux enthusiasts. They must be compiled from source and usually contain new features that must be +tested before they can be put into a stable release. Prepatch kernels are maintained and released by +Linus Torvalds. + +\item \textbf{Mainline:\\} +Mainline tree is maintained by Linus Torvalds. It's the tree where all new features are introduced and +where all the exciting new development happens. New mainline kernels are released every 2-3 months. + +\item \textbf{Stable:\\} +After each mainline kernel is released, it is considered ``stable.`` Any bug fixes for a stable kernel +are backported from the mainline tree and applied by a designated stable kernel maintainer. +There are usually only a few bugfix kernel releases until next mainline kernel becomes available -- unless it is designated a ``longterm maintenance kernel.`` Stable kernel updates are released on as-needed basis, usually 2-3 a month. + +\item \textbf{Longterm:\\} +There are usually several ``longterm maintenance`` kernel releases provided for the purposes of backporting +bugfixes for older kernel trees. Only important bugfixes are applied to such kernels and they don't usually see very frequent releases, especially for older trees. +Longterm release kernels are the Versions: 3.18, 3.14, 3.12, 3.10, 3.4, 3.2, 2.6.32. + +\item \textbf{Distribution kernels:\\} +Many Linux distributions provide their own ``longterm maintenance`` kernels that may or may not be based +on those maintained by kernel developers. These kernel releases are not hosted at kernel.org and kernel +developers can provide no support for them. +It is easy to tell if you are running a distribution kernel. Unless you downloaded, compiled and installed +your own version of kernel from kernel.org, you are running a distribution kernel. +To find out the version of your kernel, run \texttt{uname -r}: + +\cite{linuxkernel}\\ + +Por ejemplo: + +\begin{myscriptlisting} + \begin{verbatim} +delivery@delivery-laptop:~$ uname -r +3.16.0-33-generic + +delivery@delivery-laptop:~$ uname -a +Linux delivery-laptop 3.16.0-33-generic #44~14.04.1-Ubuntu SMP Fri Mar +13 10:33:29 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux +\end{verbatim} +\end{myscriptlisting} + +\end{itemize} + +Luego la \textbf{\emph{última versión estable del Kernel de Linux}} es la versión: \textbf{4.17}. +Esto puede verificarse en el sitio web oficial de Linux Kernel Organization Inc (https://www.kernel.org/). +Como se presenta en la figura debajo: + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/LinuxKernel.jpg} +\caption{\emph{The Linux Kernel Archives \cite{linuxkernel1}.}} +\end{figure} + +\clearpage + +\subsubsection{Versión mas usada de kernel estable en \ac{gnu}/Linux} +Considerando que la versión estable 2.6.10 del Kernel de Linux se lanzó en Diciembre del 2003 y aún +esta vigente y en use podemos decir que esta versión estable es la ampliamente desplegada y utilizada. + +Versión 2.6, lanzada el 17 December 2003. Versión actual 2.6.32 - 2.6.39 +\ac{eol} (maintained from May 2011 to August 2011), last stable release of the 2.6 kernel series. +longterm: 2.6.32.67 2015-06-03 + +Por su parte, cabe considerar la versión y los releases 3.0 del Kernel ya que esta versión tomó lugar +el 21 de Julio del 2011 y su último release longterm:3.18.21 (2015-08-31) demostrando una validez de ya +cinco años. + +\cite{wikikernel1} + +\subsection{Actividad 2.} + +\subsubsection{¿De qué distribución deriva \ac{gnu}/Linux Fedora?} + + +\emph{``The Fedora Project is a global partnership of free software community members. +The Fedora Project is sponsored by \textbf{\emph{Red Hat}}, which invests in our infrastructure and resources to +encourage collaboration and incubate innovative new technologies. Some of these technologies may later +be integrated into Red Hat products. They are developed in Fedora and produced under a free and open +sogenurce license from inception, so other free software communities and projects are free to study, adopt, +and modify them. +Read an overview to learn more about our mission, our community, our governance, and what makes Fedora +unique. You can also learn about our vision and core values the foundations upon which the project is +built. We also have information relating to our user base, and the objectives for our technical work.''} + +\cite{fedoraproject} + +\subsection{Actividad 3.} + +\subsubsection{Imprimir pantalla del escritorio \ac{gnome}} + +Imprimir pantalla del escritorio \ac{gnome} +y guardar la imagen en el home del usuario dentro de un directorio llamado imagen. +Cabe mencionar que el usuario es nombrado \textbf{\emph{delivery}}. + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad3.jpg} +\caption{\emph{Capturando pantalla en ubuntu 14.04.}} +\end{figure} + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad3b.jpg} +\caption{\emph{Verificando que la captura se haya guardado correctamente en la folder \\ +/home/delivery/image/.}} +\end{figure} + +\pagebreak + +\subsection{Actividad 4.} + + \subsubsection{Navegación de directorios con Nautilus} + +\textbf{Navegar a través del Nautilus los siguientes directorios: +/home +/etc/ +/var/log +/root +/dev +¿En que directorio/s no pudo acceder? ¿Qué tienen de particular los íconos de estos directorios a los que no pudo acceder?\\} + +Como usuario sin privilegios a través del navegador de archivos \textbf{\emph{nautilus}} +uno solo podría ingresar y tener control absoluto de los directorios +y archivos dentro de \textbf{\emph{/home}}. Luego con este mismo usuario acceder a \textbf{\emph{/etc, /var/log, /dev}}, pero +sin permisos de escritura o ejecución, solo lectura. Finalmente, el directorio \textbf{\emph{/root}} no es +accesible a través de la interfaz gráfica ya que no poseemos permisos suficientes para realizar esta +acción. Las carpetas a las cuales carecemos de acceso y permisos se presentan con un candado en el +icono (considerar que esto no ocurre para el nuevo ubuntu 14.04 como puede verse en las capturas de +pantalla). + +Lo detallado en el párrafo anterior puede apreciarse en las siguientes capturas: + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4a.jpg} +\caption{\emph{Navegación de archivos con Nautius folder: /home .}} +\end{figure} + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4b.jpg} +\caption{\emph{Navegación de archivos con Nautius folder: /etc .}} +\end{figure} + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad4c.jpg} +\caption{\emph{Navegación de archivos con Nautius folder: /root.}} +\end{figure} + +\clearpage +\pagebreak + +\subsection{Actividad 5.} + +\subsubsection{LibreOffice Writer: Guardado de archivos .doc en .odt } + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad5.jpg} +\caption{\emph{LibreOffice Writer: Guardado de archivos .doc en .odt.}} +\end{figure} + +A un archivo .doc, guardarlo como .odt con LibreOffice Writer. + +\pagebreak + +\subsection{Actividad 6.} + +\subsubsection{Consolas virtuales y \ac{gtk}-Warning} + +\textbf{Ejecute la siguiente secuencia de teclas: +Alt+F2 y escriba ``gedit``. +¿Qué sucedió? ¿Qué acción realiza la ejecución de Alt+F2?}\\ + +Accedemos a la consola virtual número dos. Por su parte no es posible abrir un aplicativo que +requiere de \ac{gui} para funcionar. + +Esto es un evento relacionado a la seguridad de SO normal. Linux es un sistema multiusuario +donde muchos usuarios podrían estar loggeados, localmente o de forma remota en una sesión GUI. +Luego, ¿qué ocurriría si otros users podrían abrir ventanas en tu escritorio sin su consentimiento? +Claramente esto no sería un comportamiento deseado del SO. Por su parte esto permitiría abrir una +ventana de gedit u otra aplicación más crítica como un navegador web de forma tal que a este usuario +mal intencionado le permita leer todos nuestros inputs por teclado, pudiendo incluir datos confidenciales +como nuestra cuenta bancaria. Es por esto que se utiliza \textbf{\emph{xhost}} \footnote{NAME: +xhost - server access control program for X. SYNOPSIS: xhost [[+-]name ...] DESCRIPTION: The xhost +program is used to add and delete host names or user names to the list allowed to make connections +to the X server. In the case of hosts, this provides a rudimentary form of privacy control and security. +It is only sufficient for a workstation (single user) environment, although it does limit the +worst abuses. Environments which require more sophisticated measures should implement +the user-based mechanism or use the hooks in the protocol for passing other authentication data +to the server.\cite{xhost}}. +Por otro lado, la sesión CLI de root no sabe en cual de los displays o pantallas debe abrir la ventana. +Nuevamente cabe remarcar que podría haber varias, tanto locales como remotas. Por lo antedicho surge +la necesidad de declarar la variable de entorno \textbf{\emph{DISPLAY}}. De todas formas existen +soluciones más prácticas desde la \ac{gui} de usuario normal para manejar estás sesiones, +\textbf{\emph{gnomesu}} en \ac{gnome} y \textbf{\emph{kdesu}} en \ac{kde}. Las cuales básicamente son parte +de una librería para proveer de privilegios de super usuario a las aplicaciones de \ac{gnome}.\\ + +Cabe mencionar:\\ + +\emph{''\textbf{Virtual consoles:} In the default Debian system, there are \textbf{six switchable VT100-like character consoles available +to start the command shell directly on the Linux host}. Unless you are in a \ac{gui} environment, +you can switch between the virtual consoles by \textbf{pressing the Left-Alt-key and one of the F1 — F6 +keys simultaneously}. Each character console allows independent login to the account and offers the +multiuser environment. This multiuser environment is a great Unix feature, and very addictive. +If you are under the X Window System, you gain access to the character console 1 by pressing +Ctrl-Alt-F1 key, i.e., the left-Ctrl-key, the left-Alt-key, and the F1-key are pressed together. +You can get back to the X Window System, normally running on the virtual console 7, by pressing Alt-F7. +You can alternatively change to another virtual console, e.g. to the console 1, from the commandline.``} + +\texttt{\# chvt 1\\} + +\cite{osamu} + +\begin{figure}[h!] +\centering +\includegraphics[width=1 \textwidth, +keepaspectratio]{/home/delivery/Desktop/DiploLinuxLatex/Figuras/actividad6.jpg} +\caption{\emph{Linux virtual consoles.}} +\end{figure} + +\clearpage +\pagebreak + +\section{Ejercicios Tema3: Línea de Comandos. Comandos básicosI } + +\begin{itemize} + \item Concepto de lineas de comando. Presentación de shell bash. + \item Entender la naturaleza de los privilegios del usuario root. + \item Moverse y explorar el árbol de jerarquía del Sistema Operativo: ls, cd, mkdir, rmdir. + \item Copiar, eliminar y renombrar archivos: cp, rm, mv, ln. + \item Usuarios y permisos: chown, chmod, adduser, addgroup + \item Crear y ver archivos: touch, less. +\end{itemize} + +\subsection{Actividad 1.} + +\subsubsection{\ac{cd} command} + +\textbf{Desde el directorio /home/curso, cambiar al directorio /etc vía path absoluto. +Vuelva al directorio /home/curso vía path absoluto.} + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:~/curso$ pwd +/home/delivery/curso +delivery@ubuntu:~/curso$ cd /etc/ +delivery@ubuntu:/etc$ pwd +/etc +delivery@ubuntu:/etc$ cd /home/delivery/curso/ +delivery@ubuntu:~/curso$ pwd +/home/delivery/curso + \end{verbatim} +\end{myscriptlisting} + +\textbf{Repita la acción anterior vía path relativo. +Ejecutar el comando pwd en ambos casos para confirmar el cambio de directorio.} + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:~/curso$ pwd +/home/delivery/curso +delivery@ubuntu:~/curso$ cd /etc/ +delivery@ubuntu:/etc$ pwd +/etc +delivery@ubuntu:/etc$ cd ~delivery/curso/ +delivery@ubuntu:~/curso$ pwd +/home/delivery/curso + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 2.} + +\subsubsection{Sudo y permisos de administración} +\textbf{¿Por qué el usuario ``dui`` tiene permisos de administración mientras que el usuario ``curso`` no? +Algunas pistas: +a.- Revisar a que grupo pertenecen el usuario ``dui`` y ``curso`` +b.- Revisar el contenido del archivo /etc/sudoers (archivo de configuración de \ac{sudo}) +y ver que permisos tienen los grupos a los cuales pertenecen el usuario ''dui'' y ``curso''.\\} + +Se verifican los usuarios creados en el sistema a través del archivo de sistema \textbf{\emph{passwd}} +donde se encuentran definidas las cuentas de usuario. +Por otro lado, puede verse que el user \textbf{\emph{curso}} no se encuentra en el archivo +\textbf{\emph{sudoers}} por lo que carece de asignación de privilegios de súper usuario a través +del comando \textbf{\emph{\ac{sudo}}}.\\ + +\textbf{NOTA:} +se utilizó el user \textbf{\emph{delivery}} en lugar de \textbf{\emph{dui}}. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ cat /etc/passwd | egrep -i 'root|delivery|curso' +root:x:0:0:root:/root:/bin/bash +delivery:x:1000:1000:delivery,,,:/home/delivery:/bin/bash +curso:x:1001:1001:curso,,,:/home/curso:/bin/bash +curso@ubuntu:~$ sudo su +[sudo] password for curso: +curso is not in the sudoers file. This incident will be reported. + \end{verbatim} +\end{myscriptlisting} + +Luego con el usuario \textbf{\emph{delivery}} se lee y validan los privilegios +declarados en \textbf{\emph{/etc/sudoers}}. Como ser el user \textbf{\emph{root}}, con permisos +\textbf{\emph{ALL=(ALL:ALL) ALL}} (se detallará debajo su significado) y los más relevante +para esta práctica revisar que se incluye una línea para permitir a todos los miembros +del grupo \textbf{\emph{\ac{sudo}}} para ejecutar cualquier comando: + +\begin{verbatim} +# Allow members of group sudo to execute any command +%sudo ALL=(ALL:ALL) ALL +\end{verbatim} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ su - delivery +Password: +delivery@ubuntu:~$ sudo cat /etc/sudoers + +# +# This file MUST be edited with the 'visudo' command as root. +# +# Please consider adding local content in /etc/sudoers.d/ instead of +# directly modifying this file. +# +# See the man page for details on how to write a sudoers file. +# +Defaults env_reset +Defaults mail_badpass +Defaults secure_path=``/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`` + +# Host alias specification + +# User alias specification + +# Cmnd alias specification + +# User privilege specification +root ALL=(ALL:ALL) ALL + +# Members of the admin group may gain root privileges +%admin ALL=(ALL) ALL + +# Allow members of group sudo to execute any command +%sudo ALL=(ALL:ALL) ALL + +# See sudoers(5) for more information on ``#include`` directives: + +#includedir /etc/sudoers.d + \end{verbatim} +\end{myscriptlisting} + +Finalmente se verifica en \textbf{\emph{/etc/group}} lo comentado anteriormente +donde el user \textbf{\emph{delivery}} pertenece al grupo \ac{sudo} con \textbf{\emph{GID = 27}} +y el user \textbf{\emph{curso}} no. + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:~$ cat /etc/group | egrep -i 'curso|delivery|root' +root:x:0: +adm:x:4:syslog,delivery +cdrom:x:24:delivery +sudo:x:27:delivery +dip:x:30:delivery +plugdev:x:46:delivery +delivery:x:1000: +lpadmin:x:110:delivery +sambashare:x:111:delivery +curso:x:1001: + \end{verbatim} +\end{myscriptlisting} + + +\textbf{Sudo} is a program designed to let system administrators allow some users to execute some commands +as root (or another user). The basic philosophy is to give as few privileges as possible but still +allow people to get their work done. \ac{sudo} is also an effective way to log who ran which command and when. + +As of most Debian based distributions, if you ask for the Desktop task during the installation, that pulls in \ac{sudo} with +a default configuration that automatically grants sudo-ing rights to any member of the \ac{sudo} group. +Depending on what user accounts you set up during the install, it's still possible that you may not +have been added to that group - you can check by running groups.\\ + +\textbf{Why \ac{sudo}?} +Using sudo is better (safer) than opening a session as root for a number of reasons, including: +\begin{enumerate} + \item Nobody needs to know the root password (\ac{sudo} prompts for the current user's password). + Extra privileges can be granted to individual users temporarily, and then taken away without the + need for a password change. + + \item It's easy to run only the commands that require special privileges via \ac{sudo}; the rest of the time, +you work as an unprivileged user, which reduces the damage that mistakes can cause. +Auditing/logging: when a \ac{sudo} command is executed, the original username and the command are logged. + + \item For the reasons above, switching to root using \ac{sudo} -i (or sudo su) is usually deprecated because +it cancels the above features. + +\end{enumerate} + +Sudo is a program designed to allow a sysadmin to give limited root privileges to users and log root +activity. The basic philosophy is to give as few privileges as possible but still allow people to get +their work done.\\ + +\cite{debiansudo} + +\%sudo ALL=(ALL) ALL +\begin{itemize} + \item \textbf{\%sudo} the group named "admin" (\% prefix) is the group or users that + are receiving the permises. + \item \textbf{ALL=} The 2nd parameter refers to the host where the before mentioned group or + users will have priviledges. For this exampe in ALL hosts (this will work if you distribute + the same sudoers file to many computers, or if someone access remotely - however no recommended + from a secutiry point of view). + \item \textbf{(ALL)} The third one is the user as you are running the command. In this case + as any target user. + \item \textbf{ALL} The last one is the commands allowed. So the users in sudo group, in any host + as any user including root, can run any command. +\end{itemize} + +\subsection{Actividad 3.} + +\subsubsection{less command} +\textbf{Revisar con el comando "less" el contenido del archivo /etc/passwd y en él buscar a los usuarios +root, curso y dui} + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:~$ less /etc/passwd | egrep 'root|curso|delivery' +root:x:0:0:root:/root:/bin/bash +delivery:x:1000:1000:delivery,,,:/home/delivery:/bin/bash +curso:x:1001:1001:curso,,,:/home/curso:/bin/bash + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 4.} + +\subsubsection{/bin and /sbin} +\textbf{¿Cuál es la diferencia entre los directorios /bin y /sbin?} + +\begin{itemize} + \item \textbf{/bin}\\ + This directory contains executable programs which are needed + in single user mode and to bring the system up or repair it. +\end{itemize} + +\begin{mytinylisting} + \begin{verbatim} +delivery@ubuntu:/sbin$ cd /bin +delivery@ubuntu:/bin$ pwd +/bin +delivery@ubuntu:/bin$ ls +bash chvt fgconsole lesspipe nc ntfstruncate sed +bunzip2 cp fgrep ln nc.openbsd ntfswipe setfacl +busybox cpio findmnt loadkeys netcat open setfont +bzcat dash fuser login netstat openvt setupcon +bzcmp date fusermount loginctl nisdomainname pidof sh +bzdiff dbus-cleanup-sockets getfacl lowntfs-3g ntfs-3g ping sh.distrib +bzegrep dbus-daemon grep ls ntfs-3g.probe ping6 sleep +bzexe dbus-uuidgen gunzip lsblk ntfs-3g.secaudit plymouth ss +bzfgrep dd gzexe lsmod ntfs-3g.usermap plymouth-upstart-bridge static-sh +bzgrep df gzip mkdir ntfscat ps stty +bzip2 dir hostname mknod ntfsck pwd su +bzip2recover dmesg ip mktemp ntfscluster rbash sync +bzless dnsdomainname kbd_mode more ntfscmp readlink tailf +bzmore domainname kill mount ntfsdump_logfile red tar +cat dumpkeys kmod mountpoint ntfsfix rm tempfile +chacl echo less mt ntfsinfo rmdir touch +chgrp ed lessecho mt-gnu ntfsls rnano true +chmod egrep lessfile mv ntfsmftalloc running-in-container udevadm +chown false lesskey nano ntfsmove run-parts + \end{verbatim} +\end{mytinylisting} + +\begin{itemize} + +\item \textbf{/sbin}\\ + Like /bin, this directory holds commands needed to boot the + system, but which are usually not executed by normal users. +\end{itemize} + +\begin{mytinylisting} + \begin{verbatim} +delivery@ubuntu:/sbin$ ls +acpi_available e2fsck fstrim-all iptables-apply mkfs.bfs nameif rmmod +agetty e2image gdisk iptables-restore mkfs.cramfs ntfsclone route +alsa e2label getcap iptables-save mkfs.ext2 ntfscp rtacct +apm_available e2undo getpcaps iptunnel mkfs.ext3 ntfslabel rtmon +apparmor_parser ethtool getty isosize mkfs.ext4 ntfsresize runlevel +badblocks fatlabel halt iwconfig mkfs.ext4dev ntfsundelete setcap +biosdevname fdisk hdparm iwevent mkfs.fat on_ac_power setvtrgb +blkid findfs hwclock iwgetid mkfs.minix pam_tally sfdisk +blockdev fixparts ifconfig iwlist mkfs.msdos pam_tally2 sgdisk +bridge fsck ifdown iwpriv mkfs.ntfs parted shadowconfig +capsh fsck.cramfs ifquery iwspy mkfs.vfat partprobe shutdown +cfdisk fsck.ext2 ifup kbdrate mkhomedir_helper pivot_root slattach +cgdisk fsck.ext3 init killall5 mkntfs plipconfig start +crda fsck.ext4 initctl ldconfig mkswap plymouthd startpar +ctrlaltdel fsck.ext4dev insmod ldconfig.real mntctl poweroff startpar-upstart-inject +debugfs fsck.fat installkernel logsave modinfo rarp start-stop-daemon +depmod fsck.minix ip losetup modprobe raw status +dhclient fsck.msdos ip6tables lsmod mountall reboot stop +dhclient-script fsck.nfs ip6tables-apply MAKEDEV mount.fuse regdbdump sulogin +dmsetup fsck.vfat ip6tables-restore mii-tool mount.lowntfs-3g reload swaplabel +dosfsck fsfreeze ip6tables-save mkdosfs mount.ntfs resize2fs swapoff +dosfslabel fstab-decode ipmaddr mke2fs mount.ntfs-3g resolvconf swapon +dumpe2fs fstrim iptables mkfs mount.vboxsf restart switch_root + \end{verbatim} +\end{mytinylisting} + +Directorios relacionados: + +\begin{itemize} + \item \textbf{/usr/bin}\\ + This is the primary directory for executable programs. Most + programs executed by normal users which are not needed for + booting or for repairing the system and which are not + installed locally should be placed in this directory. + +\item \textbf{/usr/local}\\ + This is where programs which are local to the site typically + go. + + \item \textbf{/usr/local}\\ + This is where programs which are local to the site typically + go. + + \item \textbf{/usr/local/bin}\\ + Binaries for programs local to the site. + + \item \textbf{/usr/local/sbin}\\ + Locally installed programs for system administration. +\end{itemize} + +\cite{wikifhs} + +\subsection{Actividad 5.} + +\subsubsection{Listado de permisos ''ls -la`` command} +\textbf{Liste el contenido del directorio /home/curso (incluido los archivos ocultos). +Se requiere saber el permiso de acceso, dueño y grupo de cada archivo del directorio.} + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:~$ cd /home/delivery/ +delivery@ubuntu:~$ pwd +/home/delivery +delivery@ubuntu:~$ ls -la +total 128 +drwxr-xr-x 19 delivery delivery 4096 Sep 20 19:54 . +drwxr-xr-x 4 root root 4096 Sep 20 19:49 .. +-rw------- 1 delivery delivery 1295 Sep 20 19:38 .bash_history +-rw-r--r-- 1 delivery delivery 220 Sep 16 10:17 .bash_logout +-rw-r--r-- 1 delivery delivery 3637 Sep 16 10:17 .bashrc +drwx------ 14 delivery delivery 4096 Sep 20 19:54 .cache +drwx------ 3 delivery delivery 4096 Sep 20 14:03 .compiz +drwx------ 17 delivery delivery 4096 Sep 20 19:54 .config +drwxrwxr-x 2 delivery delivery 4096 Sep 20 19:41 curso +drwx------ 3 delivery delivery 4096 Sep 20 17:56 .dbus +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Desktop +drwxrwxr-x 3 delivery delivery 4096 Sep 20 19:12 DiploLinux +-rw-r--r-- 1 delivery delivery 33 Sep 20 14:03 .dmrc +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Documents +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Downloads +drwx------ 3 delivery delivery 4096 Sep 20 17:56 .gconf +-rw------- 1 delivery delivery 1590 Sep 20 17:56 .ICEauthority +drwx------ 3 delivery delivery 4096 Sep 19 21:11 .local +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Music +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Pictures +drwx------ 3 delivery delivery 4096 Sep 20 19:54 .pki +-rw-r--r-- 1 delivery delivery 675 Sep 16 10:17 .profile +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Public +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Templates +-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-clipboard.pid +-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-display.pid +-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-draganddrop.pid +-rw-r----- 1 delivery delivery 5 Sep 20 17:56 .vboxclient-seamless.pid +drwxr-xr-x 2 delivery delivery 4096 Sep 19 21:11 Videos +-rw------- 1 delivery delivery 51 Sep 20 17:56 .Xauthority +-rw------- 1 delivery delivery 908 Sep 20 17:56 .xsession-errors +-rw------- 1 delivery delivery 1294 Sep 20 17:14 .xsession-errors.old + \end{verbatim} +\end{myscriptlisting} + +\textbf{Permisos a archivos} +Para permitir establecer los permisos en un archivo contamos con el comando chmod. +Este comando funciona con la siguiente sintaxis:\\ + +\texttt{Chmod [opciones] permisos archivo/directorio}\\ + +Antes de adentrarnos en el comando es necesario explicar algunas cosas. Tenemos dos +maneras de asignar permisos a los usuarios, mediante un modo octal y modo carácter.\\ + +\textbf{Modo Octal} +El modo octal responde a la combinación de los tres permisos con las tres clases de +usuario formando un numero binario de 3 cifras donde: + +\begin{itemize} + \item El primer digito corresponde a los permisos del dueño + \item El segundo a los del grupo + \item El tercero al resto de los usuarios +\end{itemize} + +La instrucción quedaría asi:\\ +\texttt{chmod 760 archivo.txt}\\ + +\textbf{Modo carácter} +Posee 3 modificadores que permiten realizar la tarea: +\begin{itemize} + \item + : añade un modo + \item – : elimina un modo + \item = : específica un modo (sobrescribiendo el anterior) +\end{itemize} + +Los modos son \textbf{r (read), w (write), x(ejecutar)}. y los usuarios están representados por: +\begin{itemize} + \item u: dueño + \item g: grupo + \item o : otros + \item a : todos +\end{itemize} + +Entonces si quiero agregar el permiso de escribir a todos, escribo:\\ +\texttt{chmod a+w archivo.txt}\\ + +\cite{mirizioe} + +\subsection{Actividad 6.} + +\subsubsection{Listado de permisos ''ls -l`` command} +\textbf{Liste el contenido del directorio /etc. Debe aparecer cada archivo contenido en una +linea aparte sin detalles de permisos de acceso, dueño o grupo.} + +\begin{myscriptlisting} + \begin{verbatim} +delivery@ubuntu:/etc$ pwd +/etc +delivery@ubuntu:/etc$ ls -1 +acpi +adduser.conf +alternatives +anacrontab +apg.conf +apm +apparmor +apparmor.d +apport +apt +at.deny +at-spi2 +avahi +bash.bashrc +bash_completion +bash_completion.d +bindresvport.blacklist +blkid.conf +blkid.tab +bluetooth +... +update-manager +update-motd.d +update-notifier +UPower +upstart-xsessions +vim +vtrgb +w3m +wgetrc +wodim.conf +wpa_supplicant +X11 +xdg +xml +zsh_command_not_found + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 7.} + +\subsubsection{mkdir make directory} +\textbf{Cree en el directorio /home/curso la siguiente estructura de directorio} + +\begin{verbatim} +./raiz +|___bin +|___home +| |___ApellidoNombre +| |___Desktop +| |___bin +|___var +..|__log +\end{verbatim} + +\begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso +curso@ubuntu:~$ mkdir ./raiz ./raiz/bin ./raiz/home ./raiz/home/BarrireroExequiel +./raiz/home/Desktop ./raiz/home/bin ./raiz/var ./raiz/var/log + +curso@ubuntu:~$ ls -R +.: +raiz + +./raiz: +bin home var + +./raiz/bin: + +./raiz/home: +BarrireroExequiel bin Desktop + +./raiz/home/BarrireroExequiel: + +./raiz/home/bin: + +./raiz/home/Desktop: + +./raiz/var: +log + +./raiz/var/log: +\end{verbatim} + +\textbf{¿Qué significa ./?}\\ +Refiere a \textbf\emph{{''este directorio``}}, es decir al directorio actual en el que nos +encontramos posicionados en la terminal. + +\subsection{Actividad 8.} + +\subsubsection{Creación de archivos con ''touch``} +\textbf{Sobre el esquema de directorios creado en la Actividad 7, cree con +``touch`` un archivo en /home/curso/raiz/var/log/messages} + +\begin{verbatim} + curso@ubuntu:~$ touch /home/curso/raiz/var/log/messages +curso@ubuntu:~$ ls -la /home/curso/raiz/var/log/ +total 8 +drwxrwxr-x 2 curso curso 4096 Sep 29 18:58 . +drwxrwxr-x 3 curso curso 4096 Sep 20 22:38 .. +-rw-rw-r-- 1 curso curso 0 Sep 29 18:57 messages +\end{verbatim} + +\subsection{Actividad 9.} + +\subsubsection{Cambio de permisos con ''chmod``} +\textbf{Liste con ``ls`` los permisos de acceso del archivo creado en la Actividad 8. +Luego con ``chmod`` cambie los permisos de acceso del archivo creado en la Actividad 8 +a rwx solo para el grupo.} + +\begin{verbatim} +curso@ubuntu:~$ ls -la /home/curso/raiz/var/log/ +total 8 +drwxrwxr-x 2 curso curso 4096 Sep 29 18:58 . +drwxrwxr-x 3 curso curso 4096 Sep 20 22:38 .. +-rw-rw-r-- 1 curso curso 0 Sep 29 18:57 messages +curso@ubuntu:~$ chmod g+rwx /home/curso/raiz/var/log/messages +curso@ubuntu:~$ ls -la /home/curso/raiz/var/log/ +total 8 +drwxrwxr-x 2 curso curso 4096 Sep 29 18:58 . +drwxrwxr-x 3 curso curso 4096 Sep 20 22:38 .. +-rw-rwxr-- 1 curso curso 0 Sep 29 18:57 messages +\end{verbatim} + +\subsection{Actividad 10.} + +\subsubsection{Eliminar recursivamente con ''rm`` command} +\textbf{Elimine recursivamente el directorio ``/home/curso/raiz/var``} + +\begin{verbatim} +curso@ubuntu:~$ rm -r /home/curso/raiz/var/ +curso@ubuntu:~$ ll /home/curso/raiz/ +total 16 +drwxrwxr-x 4 curso curso 4096 Sep 29 19:07 ./ +drwxr-xr-x 17 curso curso 4096 Sep 29 19:02 ../ +drwxrwxr-x 2 curso curso 4096 Sep 20 22:38 bin/ +drwxrwxr-x 5 curso curso 4096 Sep 20 22:38 home/ +\end{verbatim} + +\subsection{Actividad 11.} + +\subsubsection{Copia recursiva de directorio con ''cp`` command} +\textbf{Cree el directorio /home/curso/raiz/etc. +Luego copie TODO el contenido del directorio /etc/ dentro de /home/curso/raiz/etc} + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~$ mkdir /home/curso/raiz/etc +curso@ubuntu:~$ cp /etc/* /home/curso/raiz/etc/ + +curso@ubuntu:~$ sudo cp -R /etc/* /home/curso/raiz/etc/ +curso@ubuntu:~$ ls -l /home/curso/raiz/etc/ +total 1016 +drwxr-xr-x 3 root root 4096 Sep 29 19:21 acpi +-rw-r--r-- 1 curso curso 2981 Sep 29 19:21 adduser.conf +drwxr-xr-x 2 root root 4096 Sep 29 19:21 alternatives +-rw-r--r-- 1 curso curso 401 Sep 29 19:21 anacrontab +-rw-r--r-- 1 curso curso 112 Sep 29 19:21 apg.conf +drwxr-xr-x 6 root root 4096 Sep 29 19:21 apm +drwxr-xr-x 3 root root 4096 Sep 29 19:21 apparmor +drwxr-xr-x 8 root root 4096 Sep 29 19:21 apparmor.d +drwxr-xr-x 4 root root 4096 Sep 29 19:21 apport +drwxr-xr-x 6 root root 4096 Sep 29 19:21 apt +-rw-r----- 1 root root 144 Sep 29 19:21 at.deny +drwxr-xr-x 2 root root 4096 Sep 29 19:21 at-spi2 +drwxr-xr-x 3 root root 4096 Sep 29 19:21 avahi +-rw-r--r-- 1 curso curso 2177 Sep 29 19:21 bash.bashrc +-rw-r--r-- 1 curso curso 45 Sep 29 19:21 bash_completion +drwxr-xr-x 2 root root 4096 Sep 29 19:21 bash_completion.d +-rw-r--r-- 1 curso curso 356 Sep 29 19:21 bindresvport.blacklist +-rw-r--r-- 1 curso curso 321 Sep 29 19:21 blkid.conf +lrwxrwxrwx 1 root root 15 Sep 29 19:21 blkid.tab -> /dev/.blkid.tab +drwxr-xr-x 2 root root 4096 Sep 29 19:21 bluetooth +drwxr-xr-x 2 root root 4096 Sep 29 19:21 bonobo-activation +drwxr-xr-x 2 root root 4096 Sep 29 19:21 byobu +drwxr-xr-x 3 root root 4096 Sep 29 19:21 ca-certificates +... +-rw-r--r-- 1 curso curso 321 Sep 29 19:21 updatedb.conf +drwxr-xr-x 3 root root 4096 Sep 29 19:21 update-manager +drwxr-xr-x 2 root root 4096 Sep 29 19:21 update-motd.d +drwxr-xr-x 2 root root 4096 Sep 29 19:21 update-notifier +drwxr-xr-x 2 root root 4096 Sep 29 19:21 UPower +-rw-r--r-- 1 curso curso 222 Sep 29 19:21 upstart-xsessions +drwxr-xr-x 2 root root 4096 Sep 29 19:21 vim +lrwxrwxrwx 1 root root 23 Sep 29 19:21 vtrgb -> /etc/alternatives/vtrgb +drwxr-xr-x 2 root root 4096 Sep 29 19:21 w3m +-rw-r--r-- 1 curso curso 4812 Sep 29 19:21 wgetrc +-rw-r--r-- 1 curso curso 1343 Sep 29 19:21 wodim.conf +drwxr-xr-x 2 root root 4096 Sep 29 19:21 wpa_supplicant +drwxr-xr-x 10 root root 4096 Sep 29 19:21 X11 +drwxr-xr-x 4 root root 4096 Sep 29 19:21 xdg +drwxr-xr-x 2 root root 4096 Sep 29 19:21 xml +-rw-r--r-- 1 curso curso 349 Sep 29 19:21 zsh_command_not_found + \end{verbatim} +\end{myscriptlisting} + +\textbf{NOTA:} +man for ''cp`` command + +\begin{verbatim} +CP(1) + +NAME + cp - copy files and directories + +SYNOPSIS + cp [OPTION]... [-T] SOURCE DEST + cp [OPTION]... SOURCE... DIRECTORY + cp [OPTION]... -t DIRECTORY SOURCE... + +DESCRIPTION + Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. +... + -R, -r, --recursive + copy directories recursively +... +\end{verbatim} + +\subsection{Actividad 12.} + +\subsubsection{Renombrar archivos con ''mv`` command} +\textbf{Renombre con ``mv`` el directorio /home/curso/raiz por /home/curso/root} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls -ls /home/curso/ +total 2008 + 4 drwxrwxr-x 3 curso curso 4096 Sep 21 19:25 BarrireroExequiel +1968 -rw-rw-r-- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz + 4 drwxr-xr-x 2 curso curso 4096 Sep 29 19:18 Desktop + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 14:06 Documents + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 19:30 Downloads + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 14:06 Music + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 20:53 Pictures + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 14:06 Public + 4 drwxrwxr-x 5 curso curso 4096 Sep 29 19:20 root + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 14:06 Templates + 4 drwxr-xr-x 2 curso curso 4096 Sep 21 14:06 Videos + +curso@ubuntu:~$ ls -ls /home/curso/ | grep root + 4 drwxrwxr-x 5 curso curso 4096 Sep 29 19:20 root + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 13.} + +\subsubsection{Copia de dirs mediante path relativo} +\textbf{Copie el directorio /home/curso/root/var/log a /home/curso/root/var/log.original +utilizando PATH relativo desde /home/curso} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso +curso@ubuntu:~$ cp -R ./root/var/log/ ./root/var/log.original + +curso@ubuntu:~$ pwd +/home/curso +curso@ubuntu:~$ ls ./root/var/ +log log.original + +curso@ubuntu:~$ ls -la ./root/var/ +total 16 +drwxrwxr-x 4 curso curso 4096 Sep 29 19:44 . +drwxrwxr-x 6 curso curso 4096 Sep 29 19:42 .. +drwxrwxr-x 2 curso curso 4096 Sep 29 19:42 log +drwxrwxr-x 2 curso curso 4096 Sep 29 19:44 log.original + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 14.} + +\subsubsection{Enlaces simbólicos ''ln'' command} +\textbf{Cree un link simbólico de /etc/group en /home/curso} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ln -s /etc/group /home/curso/ +curso@ubuntu:~$ ls -la /home/curso/ | grep group +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group + +curso@ubuntu:~$ ls -i /home/curso/ | grep group +533568 group +curso@ubuntu:~$ ls -i /etc/ | grep group +418231 group + \end{verbatim} +\end{myscriptlisting} + + +\textbf{Enlaces de Ficheros \\} + +Los enlaces ofrecen la posibibilidad de dar a un único fichero múltiples nombres. +Estos ficheros van a ser identificados mediante el sistema operativo por su numero de inodo, +el cual se genera de forma semialeatoria. Solo para ficheros y sólo en particiones linux. + +Un inodo es un enlace que resulta el único identificador del fichero para el sistema de ficheros. +Un directorio, por tanto, será una lista de números de inodo con sus correspondientes nombres de fichero. +Cada nombre de fichero en un directorio es un enlace a un inodo particular. + +\begin{itemize} + \item \textbf{\emph{Enlaces Duros o hard links:}} + + La orden ln es usada para crear enlaces para un fichero. + +Usando \texttt{ls -i}, veremos el numero de inodo para el fichero. + +\# \texttt{ln fichero} creará un enlace para fichero. + +\texttt{ln fichero fhichero2} creará un enlace llamado fichero2 que corresponderá al mismo fichero. + +Utilizando \texttt{ls -i} veremos que los dos ficheros tienen el mismo inodo. + +\# \texttt{ls -i fichero fichero2} + +Un fichero estará definitivamente eliminado del sistema cuando no queden enlaces a el. En realidad, +la norma es que los ficheros tengan solamente un enlace duro. + +Un modo de saber cuantos enlaces tiene un fichero es con la orden \texttt{ls -l}. +Fíjate en la salida estándar por pantalla, la primera columna indica los permisos, +como vimos en lecciones pasadas, y una segunda columna con un número te indicará el número +de enlaces del fichero, o, si es un directorio, el número de directorios que contiene, +en nuestro ejemplo te mostraría lo siguiente: + +\texttt{ls -l fichero fichero2} + +\texttt{-rw-r-r- 2 root root 12 Aug 5 16:51 fichero} + +\texttt{-rw-r-r- 2 root root 12 Aug 5 16:50 fichero2} + +un directorio, por tanto, no es otra cosa que un fichero que contiene información sobre la +dirección del enlace al inodo. También, cada directorio tiene al menos dos enlaces duros en +el: . (punto) enlace que apunta a si mismo y .. (punto punto) enlace que apunta al directorio padre. +En el directorio raíz (/), el enlace .. (punto punto) simplemente apunta a /. + +\textbf{Buscar todos los enlaces duros a un fichero.} +En ciertas ocasiones puede resultar difícil localizar en que partes del árbol de directorio +existen enlaces a determinados archivos. Para encontrarlos lo podemos hacer con la orden find: +\texttt{find / -inum número} + +\item \textbf{\emph{Enlaces Simbólicos}} + +Un enlace simbólico permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo, +es decir, en realidad lo que hacemos es enlazar directamente al nombre del fichero. +Esto podría parecerse bastante a lo que Windows nos tiene acostumbrados. + +Con la orden \texttt{ln -s} creamos un enlace simbólico a un fichero. Por ejemplo: + +\texttt{ln -s archivo archivo2} + +Hay que tener en cuenta que el nombre del enlace simbólico no soporta rutas completas, +por lo que para crearlo, será imprescindible situarse dentro del directorio en el que queramos +que quede colocado dicho enlace. + +Si lo verificamos de nuevo con la orden \texttt{ls -l} vemos que el fichero fichero es +un enlace simbólico apuntando a fichero2 + +\texttt{ls -l fichero fichero2} + +Los bits de permisos en un enlace simbólico no se usan (siempre aparecen como (rwxrwxrwx). +En su lugar, los permisos del enlace simbólico son determinados por los permisos del fichero apuntado. +Asimismo, si el fichero apuntado es eliminado, los enlaces simbólicos permanecen, pero ya no +serán válidos y carecerán de sentido. +\end{itemize} + +Los enlaces duros y simbólicos son similares en su funcionamiento, pero hay algunas diferencias. +Pueden crearse enlaces simbólicos a un fichero que no esté en el mismo dispositivo de almacenamiento. +Los enlaces simbólicos son procesados por el núcleo de forma diferente a los duros, lo cual es solo +una diferencia técnica, pero a veces importante. Los enlaces simbólicos son de ayuda puesto que +identifican al fichero al que apuntan; con enlaces duros no es tan fácil saber que fichero esta +enlazado al mismo inodo. + +Aunque en un principio no pudiera parecernos que los enlaces valgan para mucho, el sistema +operativo los usa muy a menudo, Los enlaces simbólicos son, por ejemplo, especialmente +importantes para las imágenes de las librerías compartidas en /lib, lo que facilita mucho la +conexión de los diferentes programas con esas librerías. + +\cite{utlai} + + +\subsection{Actividad 15.} + +\subsubsection{Navegación de directorios con Nautilus} +\textbf{Luego de la ejecución de un comando ls -l ¿Qué significa el número que se +encuentra entre el listado de permisos y el nombre del usuario dueño?\\ \\ +\texttt{curso@atlas:~> ls –l}\\ +\texttt{-rwx------ 1 curso curso 11 2011-05-11 23:56 password}}\\ + +Un modo de saber cuantos enlaces tiene un fichero es con la orden \texttt{ls -l}. +Fíjate en la salida estándar por pantalla, la primera columna indica los permisos, +como vimos en lecciones pasadas, y una segunda columna con un número te indicará el número +de enlaces del fichero, o, si es un directorio, el número de directorios que contiene, +en nuestro ejemplo te mostraría lo siguiente:\\ + +\texttt{ls -l fichero fichero2} + +\texttt{-rw-r-r- 2 root root 12 Aug 5 16:51 fichero} + +\texttt{-rw-r-r- 2 root root 12 Aug 5 16:50 fichero2}\\ + +Un directorio, por tanto, no es otra cosa que un fichero que contiene información sobre la +dirección del enlace al inodo. También, cada directorio tiene al menos dos enlaces duros en +el: . (punto) enlace que apunta a si mismo y .. (punto punto) enlace que apunta al directorio padre. +En el directorio raíz (/), el enlace .. (punto punto) simplemente apunta a /. + +\cite{utlai} + +\subsection{Actividad 16.} + +\subsubsection{Interpertación de comandos} +Explicar cada uno de los 6 comandos siguientes: + +\begin{myscriptlisting} + \begin{verbatim} +curso@atlas:~/borrar$ touch hola +curso@atlas:~/borrar$ ls -l +total 0 +-rw-r--r-- 1 curso users 0 mar 26 23:45 hola +curso@atlas:~/borrar$ chmod u-w . +curso@atlas:~/borrar$ touch chau +touch: no se puede efectuar `touch' sobre «chau»: Permiso denegado +curso@atlas:~/borrar$ touch hola +curso@atlas:~/borrar$ rm hola +rm: no se puede borrar «hola»: Permiso denegado + \end{verbatim} +\end{myscriptlisting} + +\begin{enumerate} + \item \texttt{curso@atlas:~/borrar\$ touch hola} + + \textbf{Crea el archivo ``hola'' dentro de /home/curso/borrar.}\\ + +TOUCH(1) +NAME + touch - change file timestamps + +SYNOPSIS + touch [OPTION]... FILE... + +DESCRIPTION + Update the access and modification times of each FILE to the current time. + A FILE argument that does not exist is created empty, unless -c or -h is supplied.\\ + + \item \texttt{curso@atlas:~/borrar\$ ls -l} + +\texttt{total 0} + +\texttt{-rw-r--r-- 1 curso users 0 mar 26 23:45 hola} + +\textbf{Se lista el contenido del directorio /home/user/borrar}\\ + +LS(1) + +NAME + ls - list directory contents + +SYNOPSIS + ls [OPTION]... [FILE]... + +DESCRIPTION + List information about the FILEs (the current directory by default). + Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. + Mandatory arguments to long options are mandatory for short options too. + + -l use a long listing format + + + \item \texttt{curso@atlas:~/borrar\$ chmod u-w .} + + \textbf{Se cambian los permisos del directorio actual /home/user/borrar. + Se quita el permiso de escritura para el user actual (curso) el cual ya no + podrá escribir (write) un cambio en este directorio.}\\ + +CHMOD(1) + +NAME + chmod - change file mode bits + +SYNOPSIS + chmod [OPTION]... MODE[,MODE]... FILE... + chmod [OPTION]... OCTAL-MODE FILE... + chmod [OPTION]... --reference=RFILE FILE... + +DESCRIPTION + This manual page documents the GNU version of chmod. chmod changes the + file mode bits of each given file according to mode, which can be either a symbolic + representation of changes to make, or an octal number representing the bit + pattern for the new mode bits. + + The format of a symbolic mode is [ugoa...][[+-=][perms...]...], where perms + is either zero or more letters from the set rwxXst, or a single letter from the + set ugo. Multiple symbolic modes can be given, separated by commas. + +\item \texttt{curso@atlas:~/borrar\$ touch chau} + +\texttt{touch: no se puede efectuar `touch' sobre «chau»: Permiso denegado} + +\textbf{Se intenta crear el archivo ``chau'' dentro del directorio /home/curso/borrar +lo cual no será posible ya que no disponemos más de write permisses.}\\ + +\item \texttt{curso@atlas:~/borrar\$ touch hola} + +\textbf{Se reailza ``touch hola`` el cual no aplica ningún cambio evidente ya que +el archivo ''hola`` ya había sido creado en el paso 1).}\\ + +\item \texttt{curso@atlas:~/borrar\$ rm hola} + +\texttt{rm: no se puede borrar «hola»: Permiso denegado} + +\textbf{Se intenta borrar el archivo ``hola'' dentro del directorio /home/curso/borrar +lo cual no será posible ya que no disponemos más de write permisses.}\\ + +\end{enumerate} + +\pagebreak + +\section{Ejercicios Tema 4: Linea de comandos. Comandos básicos II } + +\begin{itemize} + \item Búsqueda de archivos: locate, find. + \item Obtener información de uso de programas: man. + \item Buscar expresiones: grep. + \item Monitorear el uso de espacio: du, df. + \item Archivar y comprimir archivos: tar, gzip, bzip2. +\end{itemize} + + +\subsection{Actividad 1.} + +\subsubsection{``find'' and ``locate'' commands} + +\textbf{Si comparamos el comando ``find`` y ''locate'' ¿Cúal posee mayor +velocidad de respuesta? ¿Porqué?.}\\ + +\textbf{Find Files Using Locate} +An alternative to using \textbf{emph{find}} is the \textbf{emph{locate}} command. +This command is often quicker and can search the entire file system with ease.\\ + +You can install the command with apt-get: + +\texttt{sudo apt-get update} + +\texttt{sudo apt-get install mlocate}\\ + +The reason locate is faster than find is because it relies on a database of the +files on the filesystem. + +The database is usually updated once a day with a cron script, but you can update it manually +by typing: + +\texttt{sudo updatedb}\\ + +Run this command now. Remember, the database must always be up-to-date if you want +to find recently acquired or created files.\\ + +\cite{digitalocean} + +\subsection{Actividad 2.} + +\subsubsection{locate -d command} + +\textbf{Si hacemos uso del comando locate ¿Qué significa la opción -d? Actualice la base de +datos de locate, y busque todos los archivos cuyo nombre contenga la palabra bash +dentro del directorio /etc.}\\ + + + +La opción -d se utiliza según se especifica debajo:\\ + +-d, --database DBPATH + Replace the default database with DBPATH. DBPATH is a :-separated list of database + file names. If more than one --database option is specified, the + resulting path is a concatenation of the separate paths.\\ + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ sudo updatedb +curso@ubuntu:~$ locate '/etc/*bash*' +/etc/bash.bashrc +/etc/bash_completion +/etc/bash_completion.d +/etc/apparmor.d/abstractions/bash +/etc/bash_completion.d/apport_completion +/etc/bash_completion.d/axi-cache +/etc/bash_completion.d/debconf +/etc/bash_completion.d/desktop-file-validate +/etc/bash_completion.d/grub +/etc/bash_completion.d/initramfs-tools +/etc/bash_completion.d/insserv +/etc/bash_completion.d/m-a +/etc/bash_completion.d/pon +/etc/bash_completion.d/pulseaudio-bash-completion.sh +/etc/bash_completion.d/ufw +/etc/bash_completion.d/upstart +/etc/profile.d/bash_completion.sh +/etc/skel/.bash_logout +/etc/skel/.bashrc +\end{verbatim} +\end{myscriptlisting} + +locate(1) + +NAME + locate - find files by name + +SYNOPSIS + locate [OPTION]... PATTERN... + +DESCRIPTION + locate reads one or more databases prepared by updatedb(8) and writes file names matching + at least one of the PATTERNs to standard output, one per line. + + If --regex is not specified, PATTERNs can contain globbing characters. + If any PATTERN contains no globbing characters, locate behaves as if the pattern + were *PATTERN*. + + By default, locate does not check whether files found in database still exist (but it does + require all parent directories to exist if the database was built + with --require-visibility no). locate can never report files created after the most + recent update of the relevant database. + +EXIT STATUS + locate exits with status 0 if any match was found or if locate was invoked with one + of the --limit 0, --help, --statistics or --version options. If no + match was found or a fatal error was encountered, locate exits with status 1. + + Errors encountered while reading a database are not fatal, search continues in other + specified databases, if any. + +OPTIONS + -A, --all + Print only entries that match all PATTERNs instead of requiring only one of + them to match. + + -b, --basename + Match only the base name against the specified patterns. + This is the opposite of --wholename. + + -c, --count + Instead of writing file names on standard output, write the number of matching + entries only. + + -d, --database DBPATH + Replace the default database with DBPATH. DBPATH is a :-separated list of database + file names. If more than one --database option is specified, the + resulting path is a concatenation of the separate paths. + + + +\subsection{Actividad 3.} + +\subsubsection{``find`` without name} + +\textbf{¿Cómo haría uso del comando find si desea buscar una fotografía (archivo PNG) +y no recuerda su nombre sino solo que se encuentra en su home.} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ find /home/curso/ -iname '*.PNG' + +/home/curso/picture.PNG +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad12.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad13.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad2.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad10.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad11.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad5.png +/home/curso/BarrireroExequiel/TP1/Imagenes/Actividad14.png +/home/curso/.local/share/Trash/files/Actividad5.png +/home/curso/.cache/software-center/icons/tomato:i386-icon-Icon64.png +/home/curso/.cache/software-center/icons/umamu-icon-Umamu_r_64.png +/home/curso/.cache/software-center/icons/capsized-icon-Icon64.png +/home/curso/.cache/software-center/icons/2048:i386-icon-64-2048.png +/home/curso/.cache/software-center/icons/tic-tac-toe2:i386-icon-64_hmojXQC.png +/home/curso/.cache/software-center/icons/ mycraft-icon-mc-launcher.svg64.png +/home/curso/.cache/software-center/icons/audovia:i386-icon-SongBuilderColourIcon64.png +/home/curso/.cache/software-center/icons/mc2048-icon-mc2048_1.png +/home/curso/.cache/software-center/icons/ my-weather-indicator:i386-icon-mwi_064.png +/home/curso/.cache/thumbnails/large/be9745eaa4dd17df931fd3f4b1b37b74.png +/home/curso/.cache/thumbnails/large/0f635725858090944921b5ae0e1c25ae.png +... +/home/curso/.cache/thumbnails/normal/f458b2702111282ba10cca5ddd511daf.png +/home/curso/.cache/thumbnails/normal/ee9cf2ab26402213d518127e9b5b1149.png +/home/curso/.cache/thumbnails/normal/b2bdf6f2a85194544d0558983df41eb0.png +/home/curso/.cache/thumbnails/normal/76fbdecd1d2173df80d31f3d4a2ca4e3.png + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 4.} + +\subsubsection{''find'' buscando por permisos de usuario} + +\textbf{Haciendo uso del comando find, ¿Cuáles son los archivos o directorios que poseen +permisos de escritura para cualquier usuario?. Agregue una opción para que no incluya +los enlaces simbólicos sino los archivos apuntados por los enlaces.} + +\textbf{Finding by Type}\\ +You can specify the type of files you want to find with the "-type" parameter. It works like this: + +\texttt{find -type type\_descriptor query} +Some of the most common descriptors that you can use to specify the type of file are here: + +\begin{itemize} + \item f: regular file + \item d: directory + \item l: symbolic link + \item c: character devices + \item b: block devices +\end{itemize} + +\cite{digitalocean}\\ + +\textbf{Finding files by permission} + +Searching for files by permission is an excellent way to turn up security issues on your +system or uncover access issues. Just as you changed permissions on files using numbers +or letters (with the chmod command), you can likewise find files based on number or +letter permissions along with the -perm options. (Refer to Chapter 4, “Moving around the +Filesystem,” to see how to use numbers and letters with chmod to refl ect file permissions.) +If you use numbers for permission, as I do below, remember that the three numbers represent +permissions for the user, group, and other. Each of those three numbers varies from no +permission (0) to full read/write/execute permission (7), by adding read (4), write (2), and +execute (1) bits together. With a hyphen (-) in front of the number, all three of the bits +indicated must match; with a plus (+) in front of it, any of the numbers can match for the +search to find a file. The full, exact numbers must match if neither a hyphen or plus is used. + +Consider the following examples:\\ + +\texttt{\$ find /bin -perm 755 -ls} + +\texttt{788884 28 -rwxr-xr-x 1 root root 28176 Mar 10 2014 /bin/echo} + +\texttt{\$ find /home/chris/ -perm -222 -type d -ls} + +\texttt{144503 4 drwxrwxrwx 8 chris chris 4096 June 23 2014 /home/chris}\\ + +By searching for -perm 755, any files or directories with exactly rwxr-xr-x +permission are matched. By using -perm -222, only files that have write permission for +user, group, and other are matched. Notice that, in this case, the -type d is added to +match only directories.\\ + +\texttt{\$ find /myreadonly -perm +222 -type f} + +\texttt{685035 0 -rw-rw-r-- 1 chris chris 0 Dec 30 2014 /tmp/write/abc} + +\texttt{\$ find . -perm -002 -type f -ls} + +\texttt{266230 0 -rw-rw-rw- 1 chris chris 0 Dec 20 2014 ./LINUX\_BIBLE/a}\\ + +Using -perm +222, you can find any file (-type f) that has write permission turned on +for the user, group, or other. You might do that to make sure that all files are read-only in +a particular part of the filesystem (in this case, beneath the /myreadonly directory). The +last example, -perm +002, is very useful for finding files that have open write permission +for “other,” regardless of how the other permission bits are set. + +\cite{linuxbible} + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~$ sudo find / -type f -perm +002 -ls | less + + 23477 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/sys/kernel/ns_last_pid + 24246 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/task/1/attr/current + 24248 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/task/1/attr/exec + 24249 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/task/1/attr/fscreate + 24250 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/task/1/attr/keycreate + 24251 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/task/1/attr/sockcreate + 24337 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/attr/current + 24339 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/attr/exec + 24340 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/attr/fscreate + 24341 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/attr/keycreate + 24342 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/1/attr/sockcreate + 24433 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/task/2/attr/current + 24435 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/task/2/attr/exec + 24436 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/task/2/attr/fscreate + 24437 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/task/2/attr/keycreate + 24438 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/task/2/attr/sockcreate + 24445 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/attr/current + 24447 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/attr/exec + 24448 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/attr/fscreate + 24449 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/attr/keycreate + 24450 0 -rw-rw-rw- 1 root root 0 Oct 3 21:16 /proc/2/attr/sockcreate + \end{verbatim} +\end{myscriptlisting} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ sudo find / -type d -perm +002 -ls +532295 4 drwxrwxrwt 2 root root 4096 Sep 29 18:57 /var/crash +525560 4 drwxrwxrwt 2 root root 4096 Sep 29 21:02 /var/tmp +find: `/proc/2960/task/2960/fd/5': No such file or directory +find: `/proc/2960/task/2960/fdinfo/5': No such file or directory +find: `/proc/2960/fd/5': No such file or directory +find: `/proc/2960/fdinfo/5': No such file or directory + 8715 0 drwxrwxrwt 2 root root 140 Oct 3 20:45 /run/shm + 8712 0 drwxrwxrwt 2 root root 40 Oct 3 15:01 /run/lock +131090 4 drwxrwxrwt 4 root root 4096 Oct 3 21:17 /tmp +156905 4 drwxrwxrwt 2 root root 4096 Oct 3 16:25 /tmp/.ICE-unix +156904 4 drwxrwxrwt 2 root root 4096 Oct 3 15:00 /tmp/.X11-unix + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 5.} + +\subsubsection{``find'' para archivos modificados en un período de tiempo} + +\textbf{Haciendo uso del comando find busque los archivos que han sido modificados en +los últimos 7 días.}\\ + +\textbf{Finding by Time} + +Linux stores time data about access times, modification times, and change times. + +\begin{itemize} +\item \textbf{Access Time:} Last time a file was read or written to. + +\item \textbf{Modification Time:} Last time the contents of the file were modified. + +\item \textbf{Change Time:} Last time the file's inode meta-data was changed. +\end{itemize} + + +We can use these with the \textbf{\emph{``-atime'', ``-mtime'', and ``-ctime''}} parameters. +These can use the plus and minus symbols to specify greater than or less than, like we did with size. + +The value of this parameter specifies how many days ago you'd like to search. + +To find files that have a modification time of a day ago, type: + +\texttt{find / -mtime 1}\\ + +If we want files that were accessed in less than a day ago, we can type: + +\texttt{find / -atime -1}\\ + +To get files that last had their meta information changed more than 3 days ago, type: + +\texttt{find / -ctime +3}\\ + +There are also some companion parameters we can use to specify minutes instead of days: + +\texttt{find / -mmin -1}\\ + +This will give the files that have been modified type the system in the last minute. +Find can also do comparisons against a reference file and return those that are newer: + +\texttt{find / -newer myfile}\\ + +\cite{digitalocean} + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~$ find /home/curso/ -mtime -7 + ... +/home/curso/.cache/oneconf/cf31d3950d1cc51f862b52e955f9872b +/home/curso/.cache/oneconf/cf31d3950d1cc51f862b52e955f9872b/host +/home/curso/.vboxclient-display.pid +/home/curso/.gconf +/home/curso/.gconf/apps/guake/style/background +/home/curso/.gconf/apps/guake/style/background/%gconf.xml +/home/curso/.gconf/apps/guake/style/font +/home/curso/.gconf/apps/guake/style/font/%gconf.xml +/home/curso/.gconf/apps/guake/general +/home/curso/.gconf/apps/guake/general/%gconf.xml + \end{verbatim} +\end{myscriptlisting} + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~$ find /home/curso/ -mtime -7 -ls + ... +532723 4 -rwxrw---- 1 curso curso 198 Sep 29 19:24 /home/curso/.cache/one... +533520 4 -rwxr----- 1 curso curso 5 Oct 3 16:25 /home/curso/.vboxclient-... +565991 4 drwx------ 4 curso curso 4096 Oct 3 16:25 /home/curso/.gconf... +566119 4 drwx------ 2 curso curso 4096 Oct 3 16:28 /home/curso/.gconf/ap... +566211 4 -rwx------ 1 curso curso 110 Oct 3 16:28 /home/curso/.gconf/app... +566121 4 drwx------ 2 curso curso 4096 Oct 3 16:28 /home/curso/.gconf/ap... +569336 4 -rwx------ 1 curso curso 467 Oct 3 16:28 /home/curso/.gconf/app... +566123 4 drwx------ 2 curso curso 4096 Oct 3 16:28 /home/curso/.gconf/ap... +569337 4 -rwx------ 1 curso curso 954 Oct 3 16:28 /home/curso/.gconf/app... + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 6.} + +\subsubsection{``grep`` command} + +\textbf{Haciendo uso del comando grep buscar la palabra ''dui'' en el archivo /etc/group +sin distinguir entre mayúsculas y minúsculas. Luego haciendo uso del mismo comando contar +el número de ocurrencias en que aparece esa cadena si se hace o no distinción entre mayúsculas +y minúsculas.}\\ + + +GREP(1) General Commands Manual GREP(1) + +NAME + grep, egrep, fgrep, rgrep - print lines matching a pattern + +SYNOPSIS + grep [OPTIONS] PATTERN [FILE...] + grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...] + +DESCRIPTION + grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-) is given as file name) for lines + containing a match to the given PATTERN. By default, grep prints the matching lines. + + In addition, three variant programs egrep, fgrep and rgrep are available. egrep is the same as grep -E. fgrep is the same as grep -F. rgrep is the + same as grep -r. Direct invocation as either egrep or fgrep is deprecated, but is provided to allow historical applications that rely on them to run + unmodified. + + -i, --ignore-case + Ignore case distinctions in both the PATTERN and the input files. (-i is specified by POSIX.) + + General Output Control + -c, --count + Suppress normal output; instead print a count of matching lines for each input file. With the -v, --invert-match option (see below), count + non-matching lines. (-c is specified by POSIX.) + + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~$ cat /etc/group | grep -i dui +curso@ubuntu:~$ cat /etc/group | grep -i curso +sudo:x:27:delivery,curso +curso:x:1001:curso +grupo1:x:1002:curso +curso@ubuntu:~$ cat /etc/group | grep -i CURSO +sudo:x:27:delivery,curso +curso:x:1001:curso +grupo1:x:1002:curso + \end{verbatim} +\end{myscriptlisting} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ cat /etc/group | grep -c -i curso +3 + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 7.} + +\subsubsection{''grep`` recursivo} + +\textbf{Haciendo uso del comando grep buscar la +cadena "auto" en los archivos del directorio /etc y sus subdirectorios..} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:/$ ls -R /etc/ | grep "auto" +01autoremove +01autoremove-kernels +ls: cannot open directory /etc/chatscripts: Permission denied +ls: cannot open directory /etc/cups/ssl: Permission denied +10-autohint.conf +apt-auto-removal +lightdm-autologin +ls: cannot open directory /etc/polkit-1/localauthority: Permission denied +ls: cannot open directory /etc/ppp/peers: Permission denied +ls: cannot open directory /etc/ssl/private: Permission denied +autostart +/etc/xdg/autostart: +nautilus-autostart.desktop + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 8.} + +\subsubsection{''df`` commands} + +\textbf{¿Con que comando puedo ver el porcentaje de uso de los +dispositivos de bloques montados en human-readable?}\\ + +DF(1) User Commands DF(1) + +NAME + df - report file system disk space usage + +SYNOPSIS + df [OPTION]... [FILE]... + +DESCRIPTION + This manual page documents the GNU version of df. df displays the amount of + disk space available on the file system containing each file name argu‐ + ment. If no file name is given, the space available on all currently mounted + file systems is shown. Disk space is shown in 1K blocks by default, + unless the environment variable POSIXLY\_CORRECT is set, in which case 512-byte + blocks are used. + + If an argument is the absolute file name of a disk device node containing a + mounted file system, df shows the space available on that file system + rather than on the file system containing the device node (which is always the + root file system). This version of df cannot show the space available + on unmounted file systems, because on most kinds of systems doing so requires + very nonportable intimate knowledge of file system structures. + +OPTIONS + Show information about the file system on which each FILE resides, or all + file systems by default. + + Mandatory arguments to long options are mandatory for short options too. + + -a, --all + include dummy file systems + + -B, --block-size=SIZE + scale sizes by SIZE before printing them. E.g., '-BM' prints sizes in units + of 1,048,576 bytes. See SIZE format below. + + --total + produce a grand total + + -h, --human-readable + print sizes in human readable format (e.g., 1K 234M 2G) + + -T, --print-type + print file system type + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:/$ df -h -T +Filesystem Type Size Used Avail Use% Mounted on +/dev/sda1 ext4 9.8G 3.2G 6.1G 34% / +none tmpfs 4.0K 0 4.0K 0% /sys/fs/cgroup +udev devtmpfs 991M 4.0K 991M 1% /dev +tmpfs tmpfs 201M 480K 200M 1% /run +none tmpfs 5.0M 0 5.0M 0% /run/lock +none tmpfs 1001M 152K 1001M 1% /run/shm +none tmpfs 100M 40K 100M 1% /run/user +/dev/sr0 iso9660 56M 56M 0 100% /media/curso/VBOXADDITIONS_4.3.26_98988 + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 9.} + +\subsubsection{''tar.gz`` command p/ comprimir} + +\textbf{Comprima el directorio /etc con tar.gz y guardelo en el directorio /home/curso.} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ tar -zcvf /home/curso/etc.tar.gz /etc/ + +curso@ubuntu:/$ cd /home/curso +curso@ubuntu:~$ ls +BarrireroExequiel BarrireroExequiel.tar.gz Desktop Documents Downloads etc.tar.gz group Music picture.PNG Pictures Public root Templates Videos +curso@ubuntu:~$ ls -la | grep 'tar.gz' +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +-rw-rw-r-- 1 curso curso 718191 Oct 3 22:33 etc.tar.gz + \end{verbatim} +\end{myscriptlisting} + +You need to use the tar command as follows (syntax of tar command):\\ + +\texttt{tar -zcvf archive-name.tar.gz directory-name}\\ + +Where, + +-z : Compress archive using gzip program + +-c : Create archive + +-v : Verbose i.e display progress while creating archive + +-f : Archive File name \\ + +\cite{vivkg} + +\pagebreak + +\subsection{Actividad 10.} + +\subsubsection{''tar.gz`` command p/ descomprimir} + +\textbf{Descomprima el archivo .tar.gz creado en la Actividad 9 en +el directorio /home/curso/Desktop/root-etc.} + +-x: Extract files + +If you wish to extract files in particular directory, for example in /tmp then you need to use +the following command:\\ + +\texttt{\$ tar -zxvf prog-1-jan-2005.tar.gz -C /tmp} + +\texttt{\$ cd /tmp} + +\texttt{\$ ls -} \\ + +\cite{vivkg} + +\begin{myscriptlisting} + \begin{verbatim} +mkdir /home/curso/Desktop/root-etc +tar -xvzf etc.tar.gz -C /home/curso/Desktop/root-etc + +curso@ubuntu:~$ cd /home/curso/Desktop/root-etc/ +curso@ubuntu:~/Desktop/root-etc$ ls +etc + +curso@ubuntu:~/Desktop/root-etc$ cd etc/ +curso@ubuntu:~/Desktop/root-etc/etc$ ls +acpi cron.d gnome-app-install kernel-img.conf +adduser.conf cron.daily gnome-settings-daemon landscape +alternatives cron.hourly gnome-vfs-2.0 ldap +anacrontab cron.monthly groff ld.so.cache +apg.conf crontab group ld.so.conf +apm cron.weekly grub.d ld.so.conf.d +apparmor cups gtk-2.0 legal +apparmor.d cupshelpers gtk-3.0 libaudit.conf +apport dbus-1 hdparm.conf libnl-3 +apt dconf host.conf libpaper.d +at-spi2 debconf.conf hostname lightdm +avahi debian_version hosts lintianrc +bash.bashrc default hosts.allow locale.alias +bash_completion deluser.conf hosts.deny localtime +bash_completion.d depmod.d ifplugd logcheck +bindresvport.blacklist dhcp ImageMagick login.defs +blkid.conf dictionaries-common init logrotate.conf +blkid.tab doc-base init.d logrotate.d +bluetooth dpkg initramfs-tools lsb-release +bonobo-activation drirc inputrc ltrace.conf +byobu emacs insserv magic +ca-certificates environment insserv.conf magic.mime +ca-certificates.conf fonts insserv.conf.d mailcap +calendar fstab iproute2 mailcap.order +chromium-browser fstab.d iscsi manpath.config +colord.conf gai.conf issue mime.types +compizconfig gconf issue.net mke2fs.conf +console-setup ghostscript kbd modprobe.d +cracklib gnome kernel modules + \end{verbatim} +\end{myscriptlisting} + +\pagebreak + +\section{Ejercicios Tema 6: Uso básico de la consola } + +\begin{itemize} + \item Gnome-terminal. + \item Shortcuts de lineas de comando. + \subitem Expansión de expresiones con wildcards. + \subitem Tecla “tabulación”. + \subitem Comando “history” y “Ctrl - r”. + \item Expansión de lineas de comando + \subitem El tilde: ~. + \subitem Expansión de lineas de comando: \$() o ``. + \subitem Llaves de expansión: { }. + \item Trucos en las lineas de comando: Ctrl - a, Ctrl -e, Ctrl - u, Ctrl - k, Ctrl - flechas de dirección. +\end{itemize} + + +\subsection{Actividad 1.} + +\subsubsection{Regular expressions - \texttt{\^} , \$ , . , *} + +\textbf{Cree una expresión que corresponda con todos los archivos que comiencen con una 'a' y terminen con una 'z'.}\\ + +An expression is a string of characters. Those characters having an interpretation above and +beyond their literal meaning are called metacharacters. A quote symbol, for example, may denote +speech by a person, ditto, or a meta-meaning for the symbols that follow. Regular Expression +s are sets of characters and/or metacharacters that match (or specify) patterns. + +A Regular Expression contains one or more of the following: + +\begin{itemize} + \item \textbf{A character set:} These are the characters retaining their literal meaning. + The simplest type of Regular Expression consists only of a character set, with no metacharacters. + \item \textbf{An anchor:} These designate (anchor) the position in the line of text that the RE + is to match. For example, \texttt{\^}, and \$ are anchors. + \item \textbf{Modifiers:} These expand or narrow (modify) the range of text the RE is to match. + Modifiers include the asterisk, brackets, and the backslash. +\end{itemize} + + +The main uses for Regular Expressions (REs) are text searches and string manipulation. +An RE matches a single character or a set of characters -- a string or a part of a string. + + +\begin{itemize} + \item \textbf{The asterisk -- * -- :} matches any number of repeats of the character string or RE + preceding it, including zero instances. + + "1133*" matches 11 + one or more 3's: 113, 1133, 1133333, and so forth. + + \textbf{Example:} Match all files which have a word twt, twet, tweet etc in the file name. + + \texttt{ls -l | grep 'twe*t'} + + \textbf{Example:} How about searching for apple word which was spelled wrong in a given file where apple + is misspelled as ale, aple, appple, apppple, apppppple etc. To find all patterns + + \texttt{grep 'ap*le' filename} + + Readers should observe that the above pattern will match even ale word as * indicates + 0 or more of previous character occurrence. + + \item \textbf{The dot -- . -- :} matches any one character, except a newline. + + "13." matches 13 + at least one of any character (including a space): 1133, 11333, but not 13 + (additional character missing). + + \item \textbf{The caret -- \texttt{\^} -- :} matches the beginning of a line, but sometimes, depending on context, + negates the meaning of a set of characters in an RE. + + \item \textbf{The dollar sign -- \$ -- :} at the end of an RE matches the end of a line. + + "XXX\$" matches XXX at the end of a line. + + "\texttt{\^}\$" matches blank lines. +\end{itemize} + +\cite{tldpre} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso + +curso@ubuntu:~$ ls -la +total 2800 +drwxr-x--x 17 curso curso 4096 Nov 1 16:28 . +drwxrwx--x 4 root root 4096 Sep 20 22:31 .. +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 abz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 axi123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 aaz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 az +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 azz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a.z +drwxrwx--x 3 curso curso 4096 Sep 21 19:25 BarrireroExequiel +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +-rwx------ 1 curso curso 5857 Oct 3 23:19 .bash_history +-rwxr----- 1 curso curso 220 Sep 20 19:49 .bash_logout +-rwxr----- 1 curso curso 3637 Sep 20 19:49 .bashrc +drwx------ 17 curso curso 4096 Sep 29 18:53 .cache +drwx------ 22 curso curso 4096 Sep 29 19:12 .config +drwxr-x--x 3 curso curso 4096 Oct 3 22:41 Desktop +-rwxr----- 1 curso curso 33 Sep 21 19:15 .dmrc +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Documents +drwxr-x--x 2 curso curso 4096 Sep 21 19:30 Downloads +-rw-rw-r-- 1 curso curso 718191 Oct 3 22:33 etc.tar.gz +drwx------ 4 curso curso 4096 Nov 1 14:44 .gconf +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group +-rwx------ 1 curso curso 2544 Nov 1 14:44 .ICEauthority +-rw------- 1 curso curso 42 Oct 3 22:18 .lesshst +drwx------ 3 curso curso 4096 Sep 21 14:06 .local +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Music +-rw-rw-r-- 1 curso curso 0 Oct 3 20:53 picture.PNG +drwxr-x--x 2 curso curso 4096 Sep 21 20:53 Pictures +drwx------ 3 curso curso 4096 Sep 21 19:26 .pki +-rwxr----- 1 curso curso 675 Sep 20 19:49 .profile +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Public +drwxrwx--x 5 curso curso 4096 Oct 3 20:57 root +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Templates + +curso@ubuntu:~/BarrireroExequiel$ ls | grep '^a.*z$' +a123z +aaz +abz +axi123z +az +a.z +azz + +curso@ubuntu:~$ + + \end{verbatim} +\end{myscriptlisting} + +Puede notarse la diferencia al utilizar la expresión debajo sin incluir +el ''.``, wilcard: cualquier único caracter. El cual quedo desmotrado que +al acompañar a la expresión ''*`` permite buscar la coincidencia de una +expresión que comience con ''a`` luego coincida con cero +o más del caracter previo y termine con ''z''. Permitindo este caracter identificado con +``.'' lograr el resultado que estamos buscando. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/BarrireroExequiel$ ls | grep '^a*z$' +aaz +az + + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 2.} + +\subsubsection{Regular expressions - \texttt{\^} , \$ , . , *} + +\textbf{Cree una expresión que corresponda con todos los archivos +cuyo nombre tenga como segunda letra una 't'. +Para realizar la actividad aprender el uso del comodin \$}\\ + +\begin{itemize} + \item \textbf{The backslash -- \textbackslash -- :} Escapes a special character, + which means that character gets interpreted literally (and is therefore no longer special). + \item \textbf{An anchor:} A ``\$`` reverts back to its literal meaning of "\$", + rather than its RE meaning of end-of-line. Likewise a ''\textbackslash \textbackslash'' has the literal + meaning of "\textbackslash". + \item \textbf{Escaped ``angle brackets'' -- \textbackslash<...\textbackslash> -- :} Escaped ``angle + brackets'' -- \textbackslash<...\textbackslash> -- mark word boundaries. + The angle brackets must be escaped, since otherwise they have only their literal character meaning. + "\textbackslash" matches the word ``the,`` but not the words ''them,'' ``there,'' + ``other,'' etc. +\end{itemize} + +\cite{tldpre} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso + +curso@ubuntu:~$ ls -la +total 2800 +drwxr-x--x 17 curso curso 4096 Nov 1 16:28 . +drwxrwx--x 4 root root 4096 Sep 20 22:31 .. +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 abz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 axi123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 az +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a.z +drwxrwx--x 3 curso curso 4096 Sep 21 19:25 BarrireroExequiel +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +-rwx------ 1 curso curso 5857 Oct 3 23:19 .bash_history +-rwxr----- 1 curso curso 220 Sep 20 19:49 .bash_logout +-rwxr----- 1 curso curso 3637 Sep 20 19:49 .bashrc +drwx------ 17 curso curso 4096 Sep 29 18:53 .cache +drwx------ 22 curso curso 4096 Sep 29 19:12 .config +drwxr-x--x 3 curso curso 4096 Oct 3 22:41 Desktop +-rwxr----- 1 curso curso 33 Sep 21 19:15 .dmrc +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Documents +drwxr-x--x 2 curso curso 4096 Sep 21 19:30 Downloads +-rw-rw-r-- 1 curso curso 718191 Oct 3 22:33 etc.tar.gz +drwx------ 4 curso curso 4096 Nov 1 14:44 .gconf +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group +-rwx------ 1 curso curso 2544 Nov 1 14:44 .ICEauthority +-rw------- 1 curso curso 42 Oct 3 22:18 .lesshst +drwx------ 3 curso curso 4096 Sep 21 14:06 .local +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Music +-rw-rw-r-- 1 curso curso 0 Oct 3 20:53 picture.PNG +drwxr-x--x 2 curso curso 4096 Sep 21 20:53 Pictures +drwx------ 3 curso curso 4096 Sep 21 19:26 .pki +-rwxr----- 1 curso curso 675 Sep 20 19:49 .profile +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Public +drwxrwx--x 5 curso curso 4096 Oct 3 20:57 root +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Templates + + +curso@ubuntu:~$ ls /home/curso | grep '^.t' +etc.tar.gz +curso@ubuntu:~$ + + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 3.} + +\subsubsection{Regular expressions - \texttt{\^} , . , []} + +\textbf{Cree una expresión que corresponda con todos los archivos cuyo nombre +tenga como tercer letra una 'letra mayúscula' o una 'coma'.} + +\begin{itemize} + \item \textbf{Brackets -- [...] -- :} enclose a set of characters to match in a single RE. + which means that character gets interpreted literally (and is therefore no longer special). + \subitem \textbf{"[xyz]" :} matches any one of the characters x, y, or z. + \subitem \textbf{"[c-n]" :} matches any one of the characters in the range c to n. + \subitem \textbf{"[B-Pk-y]" :} matches any one of the characters in the ranges B to P and k to y. + \subitem \textbf{"[a-z0-9]" :} matches any single lowercase letter or any digit. + \subitem \textbf{"[\texttt{\^}b-d]" :} matches any character except those in the range b to d. + This is an instance of \texttt{\^} negating or inverting the meaning of the following RE (taking on a + role similar to ! in a different context). + + Combined sequences of bracketed characters match common word patterns. "[Yy][Ee][Ss]" + matches yes, Yes, YES, yEs, and so forth. "[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]" + matches any Social Security number. + \end{itemize} + +\cite{tldpre} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso + +curso@ubuntu:~$ ls -la +total 2800 +drwxr-x--x 17 curso curso 4096 Nov 1 16:28 . +drwxrwx--x 4 root root 4096 Sep 20 22:31 .. +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 abz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 axi123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 az +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a.z +drwxrwx--x 3 curso curso 4096 Sep 21 19:25 BarrireroExequiel +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +-rwx------ 1 curso curso 5857 Oct 3 23:19 .bash_history +-rwxr----- 1 curso curso 220 Sep 20 19:49 .bash_logout +-rwxr----- 1 curso curso 3637 Sep 20 19:49 .bashrc +drwx------ 17 curso curso 4096 Sep 29 18:53 .cache +drwx------ 22 curso curso 4096 Sep 29 19:12 .config +drwxr-x--x 3 curso curso 4096 Oct 3 22:41 Desktop +-rwxr----- 1 curso curso 33 Sep 21 19:15 .dmrc +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Documents +drwxr-x--x 2 curso curso 4096 Sep 21 19:30 Downloads +-rw-rw-r-- 1 curso curso 718191 Oct 3 22:33 etc.tar.gz +drwx------ 4 curso curso 4096 Nov 1 14:44 .gconf +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group +-rwx------ 1 curso curso 2544 Nov 1 14:44 .ICEauthority +-rw------- 1 curso curso 42 Oct 3 22:18 .lesshst +drwx------ 3 curso curso 4096 Sep 21 14:06 .local +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Music +-rw-rw-r-- 1 curso curso 0 Oct 3 20:53 picture.PNG +drwxr-x--x 2 curso curso 4096 Sep 21 20:53 Pictures +drwx------ 3 curso curso 4096 Sep 21 19:26 .pki +-rwxr----- 1 curso curso 675 Sep 20 19:49 .profile +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Public +drwxrwx--x 5 curso curso 4096 Oct 3 20:57 root +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Templates + + + +curso@ubuntu:~$ ls | grep '^..[A-Z ,]' +curso@ubuntu:~$ +\end{verbatim} +\end{myscriptlisting} + +Realizando una búsqueda con una expresión menos restrictiva, es decir quitando el anclado que indica +que la expresión debe comenzar con dos caracteres cualquier y luego buscar coincidencia a partir +del 3ero obtenemos algunos resultados. El enuncia podría cambiar por ``nombre de archivo que posea 2 +caracteres cualquiera antes de una mayúscula o una coma''. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls | grep '..[A-Z ,]' +BarrireroExequiel +BarrireroExequiel.tar.gz +picture.PNG +\end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 4.} + +\subsubsection{Regular expressions - \texttt{\^} , \$ , []} + +\textbf{Cree una expresión que corresponda con todos los archivos que no +terminen con una letra de la 'a a la d' ó de la 'f a la z'.} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso + +curso@ubuntu:~$ ls -la +total 2800 +drwxr-x--x 17 curso curso 4096 Nov 1 16:28 . +drwxrwx--x 4 root root 4096 Sep 20 22:31 .. +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 abz +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 axi123z +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 az +-rw-rw-r-- 1 curso curso 0 Nov 1 16:28 a.z +drwxrwx--x 3 curso curso 4096 Sep 21 19:25 BarrireroExequiel +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +-rwx------ 1 curso curso 5857 Oct 3 23:19 .bash_history +-rwxr----- 1 curso curso 220 Sep 20 19:49 .bash_logout +-rwxr----- 1 curso curso 3637 Sep 20 19:49 .bashrc +drwx------ 17 curso curso 4096 Sep 29 18:53 .cache +drwx------ 22 curso curso 4096 Sep 29 19:12 .config +drwxr-x--x 3 curso curso 4096 Oct 3 22:41 Desktop +-rwxr----- 1 curso curso 33 Sep 21 19:15 .dmrc +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Documents +drwxr-x--x 2 curso curso 4096 Sep 21 19:30 Downloads +-rw-rw-r-- 1 curso curso 718191 Oct 3 22:33 etc.tar.gz +drwx------ 4 curso curso 4096 Nov 1 14:44 .gconf +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group +-rwx------ 1 curso curso 2544 Nov 1 14:44 .ICEauthority +-rw------- 1 curso curso 42 Oct 3 22:18 .lesshst +drwx------ 3 curso curso 4096 Sep 21 14:06 .local +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Music +-rw-rw-r-- 1 curso curso 0 Oct 3 20:53 picture.PNG +drwxr-x--x 2 curso curso 4096 Sep 21 20:53 Pictures +drwx------ 3 curso curso 4096 Sep 21 19:26 .pki +-rwxr----- 1 curso curso 675 Sep 20 19:49 .profile +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Public +drwxrwx--x 5 curso curso 4096 Oct 3 20:57 root +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Templates + +curso@ubuntu:~$ ls | grep '[^a-df-z]$' +picture.PNG +\end{verbatim} +\end{myscriptlisting} + +Luego como variante se propone una expresión que corresponda con todos los archivos que SI +terminen con una letra de la 'a a la d' ó de la 'f a la z'. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls | grep '[a-df-z]$' +a123z +abz +axi123z +az +a.z +BarrireroExequiel +BarrireroExequiel.tar.gz +Desktop +Documents +Downloads +etc.tar.gz +group +Music +Pictures +Public +root +Templates +Videos +\end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 5.} + +\subsubsection{Regular expressions - \texttt{\^} , \$ , []} + +\textbf{Cree una expresión que corresponda con todos los +archivos que no comiencen con un 'dígito' y que no terminen con una letra 'minúscula'.} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls | grep '^[^0-9].*[^a-z]$' +picture.PNG +\end{verbatim} +\end{myscriptlisting} + +Por su parte, se presenta una variante buscando una expersión que corresponda con todos los +archivos que no comiencen con un 'dígito' y que SI terminen con una letra 'minúscula'. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls | grep '^[^0-9].*[a-z]$' +a123z +abz +axi123z +az +a.z +BarrireroExequiel +BarrireroExequiel.tar.gz +Desktop +Documents +Downloads +etc.tar.gz +group +Music +Pictures +Public +root +Templates +Videos +\end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 6.} + +\subsubsection{The command-line history} + +\textbf{Exportar el contenido del comando history a un fichero de texto plano llamado 'historial.txt'.}\\ + +The \textbf{history command} is a convenient tool that you can use to review previous commands. +To look at the most recent commands, simply press the up arrow key. Each time you press it, +you will go deeper into the command history. To see all of the command history, type “history” +from the command line. You can even export that list to a file to save for future use by entering:\\ + +\texttt{history -w history-list.txt}\\ \\ + +\textbf{\emph{MORE ABOUT the HISTORY COMMAND:}}\\ + +If you need to append your current history to the end of a previously created history file, type:\\ + +\texttt{history -a history-list.txt}\\ + +You can also append whatever you have in your history file to the end of your current history list +(useful if it has been erased). Type:\\ + +\texttt{history -r history-list.txt}\\ + +You will notice that each command in the history list is numbered. Each number represents +a shortcut that you can use to call any previous command. For example, if “cat /proc/cpuinfo” is +number 136 on the list, you can call it by placing a “!” in front of the number. For example:\\ + +\texttt{!136}\\ + +Press Enter, and it will automatically execute the associated command.\\ + +Finally, if you ever need to empty your history list, for either security or privacy reasons, type: + +\texttt{history -C}\\ + +\cite{serverschool}\\ + +\textbf{The command-line history}\\ + +\textbf{Using the command history}\\ +Use the up and down key's to scroll through previously typed commands. +Press [Enter] to execute them or use the left and right arrow keys to edit the command first. +Also see history (below).\\ + +\textbf{The history command}\\ +The history command can be used to list Bash's log of the commands you have typed:\\ + +This log is called the “history”. To access it type:\\ + +\texttt{history n}\\ + +This will only list the last n commands. Type “history” (without options) to see the the entire history list. +You can also type ''!n`` to execute command number n. Use ''!!`` to execute the last command you typed. +''!-n`` will execute the command n times before (in other words ''!-1`` is equivalent to ''! !''). +''!string`` will execute the last command starting with that “string” and ''!?string?`` +will execute the last command containing the word “string”. For example:\\ + +\texttt{!cd}\\ + +Will re-run the command that you last typed starting with “cd”. +“ commandName !*” will execute the “commandName” with any arguments you used on your last command. +This maybe useful if you make a spelling mistake, for example. If you typed:\\ + +\texttt{emasc /home/fred/mywork.java /tmp/testme.java}\\ + +In an attempt to execute ''emacs`` on the above two files this will obviously fail. +So what you can do is type:\\ + +\texttt{emacs !*}\\ + +This will execute emacs with the arguments that you last typed on the command-line. +In other words this is equivalent to typing:\\ + +\texttt{emacs /home/fred/mywork.java /tmp/testme.java}\\ + +\textbf{Searching through the Command History ( CTRL-R )} +Use the CTRL-R key to perform a “reverse-i-search”. +For example, if you wanted to use the command you used the last time you used snort, you would type:\\ + +CTRL-R then type “snort”.\\ + +What you will see in the console window is:\\ + +\texttt{(reverse-i-search)`:} +After you have typed what you are looking for, use the CTRL-R key combination to scroll backward +through the history. +Use CTRL-R repeatedly to find every reference to the string you've entered. +Once you've found the command you're looking for, use [Enter] to execute it. +Alternatively, using the right or left arrow keys will place the command on an actual command-line +so you can edit it. + +\cite{tldphist} + +\subsection{Actividad 7.} + +\subsubsection{history, variable HISTSIZE} + +\textbf{Seteando la variable de entorno HISTSIZE, en el archivo .bash\_profile podrá limitar +la cantidad de lineas almacenas por el history. Investigue al respecto y limite a 10 la +cantidad de lineas almacenadas por el history.} + + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ cat /home/curso/.bashrc +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + + curso@ubuntu:~$ echo $HISTSIZE +1000 +curso@ubuntu:~$ export HISTSIZE=10 +curso@ubuntu:~$ history + 450 ls | grep '[^a-df-z]$' + 451 ls | grep '[a-df-z]$' + 452 ls | grep '^[^0-9].*[^a-z]$' + 453 ls | grep '^[0-9].*[a-z]$' + 454 ls | grep '^[^0-9].*[a-z]$' + 455 clear + 456 man history + 457 echo $HISTSIZE + 458 export HISTSIZE=10 + 459 history +\end{verbatim} +\end{myscriptlisting} + +Disable the usage of history using HISTSIZE + +If you want to disable history all together and don’t want bash shell to remember the +commands you’ve typed, set the HISTSIZE to 0 as shown below.\\ + +\texttt{\# export HISTSIZE=0} + +\texttt{\# history} + +\texttt{\# [Note that history did not display anything]}\\ + +\cite{tecmint} + +\subsection{Actividad 8.} + +\subsubsection{HISTCONTROL variable} + +\textbf{Seteando la variable de entorno HISTCONTROL = ignoredups borra entradas duplicadas consecutivas. +Investigue de que modo debería setear la variable de entorno HISTCONTROL para +eliminar entradas duplicadas en todo el archivo.}\\ + +\textbf{Ignore Duplicate Commands in History} +With the below command will help us to ignore duplicate commands entry made by user. +Only single entry will be shown in history, if a user execute a same command multiple times in a Bash Prompt. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ export HISTSIZE=10 +curso@ubuntu:~$ export HISTCONTROL= + +curso@ubuntu:~$ history + 414 history + 415 export HISTCONTROL= + 416 history + 417 history + 418 export HISTCONTROL=ignoredups + 419 history + 420 exit + 421 export HISTSIZE=10 + 422 export HISTCONTROL= + 423 history + + curso@ubuntu:~$ history + 415 export HISTCONTROL= + 416 history + 417 history + 418 export HISTCONTROL=ignoredups + 419 history + 420 exit + 421 export HISTSIZE=10 + 422 export HISTCONTROL= + 423 history + 424 history + + curso@ubuntu:~$ history + 416 history + 417 history + 418 export HISTCONTROL=ignoredups + 419 history + 420 exit + 421 export HISTSIZE=10 + 422 export HISTCONTROL= + 423 history + 424 history + 425 history + +curso@ubuntu:~$ export HISTCONTROL=ignoredups + +curso@ubuntu:~$ history + 418 export HISTCONTROL=ignoredups + 419 history + 420 exit + 421 export HISTSIZE=10 + 422 export HISTCONTROL= + 423 history + 424 history + 425 history + 426 export HISTCONTROL=ignoredups + 427 history + + curso@ubuntu:~$ history + 418 export HISTCONTROL=ignoredups + 419 history + 420 exit + 421 export HISTSIZE=10 + 422 export HISTCONTROL= + 423 history + 424 history + 425 history + 426 export HISTCONTROL=ignoredups + 427 history +curso@ubuntu:~$ +\end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 9.} + +\subsubsection{clear history (history -c)} + +\textbf{Haga uso del comando history para limpiar el historial de comandos.} + +if you ever need to empty your history list, for either security or privacy reasons, type:\\ + +\texttt{history -C}\\ + +\pagebreak + +\section{Parcial 1 - Parte 2 - Cuestionario Práctico} + +\subsection{Actividad 1.} + +\subsubsection{Regular expressions - \texttt{\^} , \$ , . , *} + +\textbf{Haciendo uso del comando "grep" , contar la cantidad de ocurrencias de palabras: + que comiencen con la letra h y terminen con la letra e + sin distinguir entre minusculas y mayusculas + dentro de todos los archivos que se encuentren en la carpeta home y sus subdirectorios.} + +\begin{verbatim} +grep -i -r '^h.*e$' /home/ +\end{verbatim} + +\subsection{Actividad 2.} + +\subsubsection{find command} + +\textbf{Haciendo uso del comando find, encuentre todos los archivos que cumplan TODAS las siguientes condiciones:}\\ + +\begin{itemize} + \item Pertenecen al usuario cuyo uid es igual a 0. + \item Que fueron accedidos en los ultimos 30 minutos. + \item Se encuentren en el directorio /etc. + \item Limite el nivel maximo de recursividad (profundidad) a 2. +\end{itemize} + +\begin{verbatim} +find /etc -uid 0 -maxdepth 2 -amin -30 +\end{verbatim} + +\subsection{Actividad 3.} + +\subsubsection{Regular expressions and ls command} + +\textbf{Haciendo uso del comando ls, encuentre todos los archivos que cumplan TODAS las siguientes condiciones:} + +\begin{itemize} + \item Comienzen con la letra e y terminen con .log + \item Se encuentren en el directorio /var/log. + \item Muestre archivos ocultos y links simbolicos. +\end{itemize} + +\begin{verbatim} +ls -la /var/log | grep '^e.*\.log$' +\end{verbatim} + +\subsection{Actividad 4.} + +\subsubsection{Regular expressions - Tar command} + +\textbf{Utilizando el comando tar, realize la siguiente actividad en un solo comando:} + +\begin{itemize} + \item Comprima la carpeta /home/curso utilizando algoritmo bzip2. + \item Excluya los archivos que finalizen con la palabra ".txt". + \item El archivo debe llamarse backup.tar.bz2 + \item El archivo debe guardarse en /tmp. + \item Sin modo verboso. + \end{itemize} + +\begin{verbatim} +tar --exclude='.*\.txt$' -cjSf /tmp/backup.tar.bz2 /home/curso +\end{verbatim} + +\pagebreak + +\section{Ejercicios Tema 7: Shell scripting básico} + +\begin{itemize} + \item Razones para hacer scripting. + \item Creación de shell scripts. + \item Estándar I/O: STDIN, STDOUT, STDERR + \item Redirección de estándars I/O a archivos. + \subitem Redirección de estándar output a programas: pipe. + \subitem Combinación de estándar output y error. + \subitem Redirección del estandar input desde un archivo. + \item Expresiones repetitivas: for + \end{itemize} + + +\subsection{Actividad 1.} + +\subsubsection{STDERR redirection to file} + +\textbf{Redireccione el STDERR de la salida que daría el comando grep da * a +un archivo llamado errores-de-grep.txt.}\\ + +Bash and other modern shell provides I/O redirection facility. +There are 3 default standard files (standard streams) open: + +\begin{enumerate} +\setcounter{enumi}{-1} + \item \textbf{stdin} - Use to get input (keyboard) i.e. data going into a program. + \item \textbf{stdout} - Use to write information (screen) + \item \textbf{stderr} - Use to write error message (screen) +\end{enumerate} + +\textbf{NOTE:} Consider the numbers before to also identify the type of input in the console.\\ + +Redirecting the standard error stream to a file +The following will redirect program error message to a file called error.log: + +\begin{verbatim} +$ program-name 2> error.log +$ command1 2> error.log +\end{verbatim} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ pwd +/home/curso +curso@ubuntu:~$ mkdir tema7 +curso@ubuntu:~$ cd tema7/ +curso@ubuntu:~/tema7$ touch errores-de-grep.txt; da * 2> errores-de-grep.txt +curso@ubuntu:~/tema7$ ls +errores-de-grep.txt +curso@ubuntu:~/tema7$ cat errores-de-grep.txt +da: command not found + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 2.} + +\subsubsection{STDOUT \& STDERR redirection to file} + +\textbf{Hacer que la salida STDOUT del comando grep da * se escriba en el mismo descriptor de fichero que STDERR.}\\ + +Redirecting the standard error (stderr) and stdout to file +Use the following syntax: +\begin{verbatim} +$ command-name &>file +\end{verbatim} + +OR + +\begin{verbatim} +$ command > file-name 2>&1 +\end{verbatim} + +Another useful example: +\begin{verbatim} +# find /usr/home -name .profile 2>&1 | more +\end{verbatim} + +Redirect stderr to stdout +Use the command as follows: + +\begin{verbatim} +$ command-name 2>&1 +\end{verbatim} + +\textbf{Respuesta:} + +\begin{myscriptlisting} +\begin{verbatim} +curso@ubuntu:~/tema7$ pwd +/home/curso/tema7 +curso@ubuntu:~/tema7$ ls +errores-de-grep.txt +curso@ubuntu:~/tema7$ da * 1>&2 +da: command not found +curso@ubuntu:~/tema7$ +\end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 3.} + +\subsubsection{Head - Tail - Pipe} + +\textbf{Obtener la 5 linea del archivo "Ejemplos de scripts" de la sección Presentación del Tema 7, +para ello podemos combinar 2 comandos:} + +\begin{itemize} + \item Head, el cual retorna las primeras lineas de un archivo. + \item Tail el cual retorna las últimas lineas. + \item Ayuda: Recuerde que debe hacer uso de pipe para combinar dos o mas comandos. + \end{itemize} + +Recordando el archivo \textbf{ejemplos\_de\_script.txt} + +\begin{myscriptlisting} + \begin{verbatim} + curso@ubuntu:~/tema7$ cat ejemplos_de_script.txt +RECORDAR + +* Estos scripts tienen que tener permiso de ejecución +* Para ejecutar debe hacer referencia a el mediante path relativo o absoluto + +-------- MODO TEXTO ------------------- + +(para que puedan copiarlo y probarlo) + +Script1: +ermirizio@atlas:~> cat script1.sh +#!/bin/bash + +#Todo comentario empieza con un # por delante +#Esto es un comentario +echo "Hola mundo" #Esto tambien es un comentario + +Script2: +ermirizio@atlas:~> cat script2.sh +#!/bin/bash + +#Trabajando con variables +VARIABLE="Hola mundo" +echo $VARIABLE + + +Script 3: +ermirizio@atlas:~> cat calendario +#!/bin/bash + +#Este script muestra en el STDOUT el calendario anual del anio actual y +ademas guarda en un archivo de texto, llamado calendario.log, el resultado y la +fecha y hora en que se lo ejecuto +#Para practicar, ud podria agregar los comentarios entre cada linea de ejecucion explicando +que es lo que hace + +echo "Fecha de ejecucion" > calendario.log +date >> calendario.log +echo "Calendario del anio actual" >> calendario.log +ANIOACTUAL=`date | cut -d' ' -f7` +cal $ANIOACTUAL | tee -a calendario.log + \end{verbatim} +\end{myscriptlisting} + +Luego se presentan una serie de outputs relacionados a la solución de esta actividad + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema7$ ls +ejemplos_de_script.txt errores-de-grep.txt +curso@ubuntu:~/tema7$ head -n 5 ejemplos_de_script.txt | tail -n 1 + +curso@ubuntu:~/tema7$ head -n 5 ejemplos_de_script.txt +RECORDAR + +* Estos scripts tienen que tener permiso de ejecución +* Para ejecutar debe hacer referencia a el mediante path relativo o absoluto + + \end{verbatim} +\end{myscriptlisting} + +Notar que la 5ta línea no posee ningún caracter de allí la salida en pantalla presenta una +linea vacía. Luego si mediante el comando \textbf{head} obtenemos las 1eras 11 líneas y filtramos esta +última, es decir la nº 11, el output sera el que se presenta debajo: + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema7$ head -n 11 ejemplos_de_script.txt | tail -n 1 +ermirizio@atlas:~> cat script1.sh + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 4.} + +\subsubsection{Cat - Grep - Wc} + +\textbf{Consultar en el archivo actividad4.txt el número de veces que una IP ha sido registrada, +para ello podemos combinar los comandos:} + +\begin{itemize} + \item cat para obtener los contenidos del log. + \item grep para filtrar las lineas que contengan la cadena "192.168.0.1". + \item wc para contar los resultados obtenidos. + \end{itemize} + +\begin{myscriptlisting} + \begin{verbatim} + WC(1) User Commands WC(1) + +NAME + wc - print newline, word, and byte counts for each file + +SYNOPSIS + wc [OPTION]... [FILE]... + wc [OPTION]... --files0-from=F + +DESCRIPTION + Print newline, word, and byte counts for each FILE, and a total line if + more than one FILE is specified. With + no FILE, or when FILE is -, read standard input. A word is a + non-zero-length sequence of characters delimited + by white space. The options below may be used to select which counts + are printed, always in the following + order: newline, word, character, byte, maximum line length. + + -c, --bytes + print the byte counts + + -m, --chars + print the character counts + + -l, --lines + print the newline counts + + --files0-from=F + read input from the files specified by NUL-terminated names in file + F; If F is - then read names from + standard input + + -L, --max-line-length + print the length of the longest line + + -w, --words + print the word counts + \end{verbatim} +\end{myscriptlisting} + +\textbf{Respuesta:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema7$ cat actividad4.txt +Acceso 192.168.1.5 +Acceso 192.168.1.5 +Acceso 192.168.1.5 +Acceso 192.168.1.1 +Acceso 192.168.1.3 +Acceso 192.168.1.2 +Acceso 192.168.1.1 +Acceso 192.168.1.1 +Acceso 192.168.1.1 +Acceso 192.168.1.3 +Acceso 192.168.1.4 +Acceso 192.168.1.5 +Acceso 192.168.1.5 +Acceso 192.168.1.7 +Acceso 192.168.1.1 +Acceso 192.168.1.2 +Acceso 192.168.1.5 +Acceso 192.168.1.3 +Acceso 192.168.1.1 +Acceso 192.168.1.5 +Acceso 192.168.1.5 +Acceso 192.168.1.5 +Acceso 192.168.1.1 +Acceso 192.168.1.5 + +curso@ubuntu:~/tema7$ cat actividad4.txt | grep "192.168.1.5" | wc -l +10 + \end{verbatim} +\end{myscriptlisting} + +\subsection{Actividad 5.} + +\subsubsection{Find \& Sort script} + +\textbf{Cree un script llamado script1\_T7.sh que sea interpretado por bash. Al ejecutarse debe buscar en el +directorio HOME/CURSO todos los archivos y ordenelos por nombres alfabéticamente. +Redireccione el contenido en un archivo llamado salida\_script1\_T7.txt. +Ayuda: Puede emplear la opción -R del comando ls para listar subdirectorios, y la opción -u del comando sort.} + +We use \texttt{sort -u} to sort and remove duplicates from the text file we are sorting. +Check if the duplicate has been removed or not.\\ + +\textbf{Script:} + +\begin{myscriptlisting} + \begin{verbatim} +#!/bin/bash + +ls -R /home/curso | sort -u > salida_script1_T7.txt + \end{verbatim} +\end{myscriptlisting} + +\textbf{Output:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema7$ ls +actividad4.txt ejemplos_de_script.txt errores-de-grep.txt script1_T7.sh +curso@ubuntu:~/tema7$ chmod +x script1_T7.sh +curso@ubuntu:~/tema7$ ./script1_T7.sh +curso@ubuntu:~/tema7$ cat salida_script1_T7.txt +.: +128x128 +16x16 +256x256 +32x32 +48x48 +a123z +aaz +abe +abx +abz +ActionScript.sublime-package +Actividad10.png +Actividad11.png +Actividad12.png +Actividad13.png +Actividad14.png +Actividad15.txt +Actividad15.txt~ +Actividad2.png +Actividad3.txt +Actividad3.txt~ +actividad4.txt +Actividad4.txt +Actividad4.txt~ +... +User.sublime-package +var +Videos +./Videos: +Vintage.sublime-package +XML.sublime-package +YAML.sublime-package +curso@ubuntu:~$ + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 6.} + +\subsubsection{`` - in between Grave accent character } + +\textbf{¿Qué hace el comando echo `ls` ? (note que se usan apóstrofes invertidos).}\\ + +Ejecuta el comando ls y el resultado del mismo como cadena lo presenta con el comando echo. +Si no tiene las comillas el comando echo mostraría ''ls'' +Un comando encerrado entre apóstrofes invertidos (Ej.: `ls`) o entre las cadenas ``\$('' y ``)'', +será expandido al resultado que tal comando envíe a salida estándar cuando es ejecutado.\\ + +También considerar los \textbf{TIPS PARA CREAR SCRIPTS}:\\ + +\textbf{---CREACION---} +\begin{enumerate} +\item Todo script debe comenzar con \texttt{\#!/bin/bash} +\item Luego de creado el script, hay que hacerlo ejecutable con +\texttt{chmod +x nombre\_del\_script} +\item Para ejecutarlo, si estoy parado en el mismo lugar donde esta el script, debo +utilizar \texttt{./nombre\_del\_script} +\end{enumerate} + +\textbf{---DENTRO DEL SCRIPT---} +\begin{enumerate} +\item Crear Variables + \subitem -Asignar una cadena o mas conocida como string \\ \texttt{Nombre\_Variable=Valor} + \subitem -Asignar una cadena o mas conocida como string \\ \texttt{Nombre\_Variable=Valor} + +\item Imprimir valor de variable + \subitem \texttt{\$Nombre\_Variable} + +\item Igualar una nueva variable al valor de otra + \subitem \texttt{Nueva\_Variable=\$Nombre\_Variable} + +\item Impresion de cosas literales + \subitem \texttt{echo "nombre\_variable"} --> nombre\_variable + +\item Impresión de valores de una variable + \subitem \texttt{echo "\$nombre\_variable"} --> imprimo el valor que almacena la variable + +\item Impresión de salidas de comandos + \subitem \texttt{echo ``date''} --> la palabra date + \subitem \texttt{echo ``\$(date)''} --> la fecha de hoy + \subitem \texttt{echo `date`} --> la fecha de hoy + \subitem \texttt{echo `cat /etc/passwd | grep 'root'`} + +\item Igualar la salida de un comando a una variable + \subitem \texttt{Nombre\_varible=`cat /etc/passwd | grep 'root'`} + \subitem ej: \texttt{variable=`cat /etc/passwd | grep root`} + \subitem Para Imprimir --> \texttt{echo \$variable} +\end{enumerate} + +\cite{mirizioe2} + +\subsection{Actividad 7.} + +\subsubsection{FOR - loops and iteration} + +\textbf{Haciendo uso de la sentencia repetitiva FOR , realice un script que genere un fichero llamado lista.txt que contenga el nombre de los archivos que haya en el directorio /etc. +RECUERDE: Debe hacer uso de la expresión repetitiva for.} + +\textbf{Script:} + +\begin{myscriptlisting} + \begin{verbatim} +#!/bin/bash + +#Haciendo uso de la sentencia repetitiva FOR , realice un script que genere +#un fichero llamado lista.txt que contenga el nombre de los archivos que haya +#en el directorio /etc. RECUERDE: Debe hacer uso de la expresión repetitiva +#for. + +for F in /etc/* +do +echo $F >> lista.txt +done + \end{verbatim} +\end{myscriptlisting} + +\textbf{Output:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema7$ ./script2_T7.sh + +curso@ubuntu:~/tema7$ cat lista.txt +/etc/acpi +/etc/adduser.conf +/etc/alternatives +/etc/anacrontab +/etc/apg.conf +/etc/apm +/etc/apparmor +/etc/apparmor.d +/etc/apport +/etc/apt +/etc/at.deny +/etc/at-spi2 +/etc/avahi +... +/etc/vim +/etc/vtrgb +/etc/w3m +/etc/wgetrc +/etc/wodim.conf +/etc/wpa_supplicant +/etc/X11 +/etc/xdg +/etc/xml +/etc/zsh_command_not_found +curso@ubuntu:~/tema7$ + \end{verbatim} +\end{myscriptlisting} + +\pagebreak + +\section{Ejercicios Tema 8: Herramientas para procesar texto} + +\begin{itemize} + \item Herramientas para extraer texto. + \subitem Ver contenido de archivos: less, cat. + \subitem Ver extractos de archivos: head, tail. + \subitem Extraer texto en base a palabras claves: grep. + \item Extraer texto por columna: cut. + \subitem Ver contenido de archivos: less, cat + \item Herramientas para analizar texto. + \subitem Estadísticas: wc. + \subitem Ordenamiento de texto: sort, uniq. + \item Herramientas para manipular texto: + \subitem Alterar caracteres: tr + \subitem Alterar strings: sed + \item Caracteres especiales para búsquedas complejas. + \end{itemize} + +\subsection{Actividad 1.} + +\subsubsection{cat command} + +\textbf{Cree dos archivos con los siguientes nombres:}\\ + +\begin{itemize} + \item ArchivoA.txt con el contenido ``Esta es la primer linea del Archivo A'' + \item ArchivoB.txt con el contenido ``Esta es la primer linea del Archivo B'' +\end{itemize} + +Dado que el comando cat admite como argumentos una lista de archivos que se +pueden enlazar observe que sucede al ejecutar la siguiente linea: + +\begin{verbatim} +# cat ArchivoA.txt ArchivoB.txt +\end{verbatim} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ touch ArchivoA.txt ArchivoB.txt + +curso@ubuntu:~$ echo "Esta es la primera línea del Archivo A" > ArchivoA.txt +curso@ubuntu:~$ echo "Esta es la primera línea del Archivo B" > ArchivoB.txt + +curso@ubuntu:~$ cat ArchivoA.txt +Esta es la primera línea del Archivo A + +curso@ubuntu:~$ cat ArchivoB.txt +Esta es la primera línea del Archivo B +curso@ubuntu:~$ cat ArchivoA.txt ArchivoB.txt +Esta es la primera línea del Archivo A +Esta es la primera línea del Archivo B + \end{verbatim} +\end{myscriptlisting} + +\textbf{MAN cat} + +\begin{myscriptlisting} + \begin{verbatim} + CAT(1) User Commands CAT(1) + +NAME + cat - concatenate files and print on the standard output + +SYNOPSIS + cat [OPTION]... [FILE]... + +DESCRIPTION + Concatenate FILE(s), or standard input, to standard output. + + -A, --show-all + equivalent to -vET + + -b, --number-nonblank + number nonempty output lines, overrides -n + + -e equivalent to -vE + + -E, --show-ends + display $ at end of each line + + -n, --number + number all output lines + + -s, --squeeze-blank + suppress repeated empty output lines + + -t equivalent to -vT + + -T, --show-tabs + display TAB characters as ^I + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 2.} + +\subsubsection{less command} + +\textbf{Haciendo uso del comando less muestre el contenido del archivo /etc/hosts +empezando por la tercera línea.}\\ + +\begin{myscriptlisting} + \begin{verbatim} + + If a command line option begins with +, the remainder of that option + is taken to be an initial command + to less. For example, +G tells less to start at the end of + the file rather than the beginning, and + +/xyz tells it to start at the first occurrence of "xyz" in the + file. As a special case, + + acts like +g; that is, it starts the display at the + specified line number (however, see the + caveat under the "g" command above). If the option starts with + ++, the initial command applies to + every file being viewed, not just the first one. The + command + described previously may also be used + to set (or change) an initial command for every file. + \end{verbatim} +\end{myscriptlisting} + +The command to solve the exercise. + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema8$ less +3 /etc/hosts + \end{verbatim} +\end{myscriptlisting} + +Then the output starts at the 3rd line: + +\begin{myscriptlisting} + \begin{verbatim} + # The following lines are desirable for IPv6 capable hosts +::1 localhost ip6-localhost ip6-loopback +ff02::1 ip6-allnodes +ff02::2 ip6-allrouters +~ +~ +~ +~ + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 3.} + +\subsubsection{grep \& regular expessions} + +\textbf{Haciendo uso del comando grep y expresiones regulares muestre las lineas +que comiencen por la letra 'd' en el archivo /etc/passwd} + +Se presentan debajo 2 formas de resolver el enunciado anterior: + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema8$ grep '^d' /etc/passwd +daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin +delivery:x:1000:1000:delivery,,,:/home/delivery:/bin/bash + +curso@ubuntu:~/tema8$ grep '^[d]' /etc/passwd +daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin +delivery:x:1000:1000:delivery,,,:/home/delivery:/bin/bash + + \end{verbatim} + +\end{myscriptlisting} + + +\subsection{Actividad 4.} + +\subsubsection{head command} + +\textbf{Haciendo uso del comando head obtener las 5 primeras lineas del archivo /etc/group} + +\begin{myscriptlisting} + \begin{verbatim} + EAD(1) User Commands HEAD(1) + +NAME + head - output the first part of files + +SYNOPSIS + head [OPTION]... [FILE]... + +DESCRIPTION + Print the first 10 lines of each FILE to standard output. With more than + one FILE, precede each with a header + giving the file name. With no FILE, or when FILE is -, read standard input. + + Mandatory arguments to long options are mandatory for short options too. + + -c, --bytes=[-]K + print the first K bytes of each file; with the leading '-', print + all but the last K bytes of each file + + -n, --lines=[-]K + print the first K lines instead of the first 10; with the leading + '-', print all but the last K lines + of each file + + -q, --quiet, --silent + never print headers giving file names + + -v, --verbose + always print headers giving file names + \end{verbatim} +\end{myscriptlisting} + + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema8$ head -n 5 /etc/group +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4:syslog,delivery +curso@ubuntu:~/tema8$ + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 5.} + +\subsubsection{sort command} + +\textbf{Haciendo uso del comando sort ordenar por la columna de permisos la salida del comando ls -l. +Ayuda: Recuerde que debe hacer uso de pipe para combinar dos o mas comandos.} + +\textbf{MAN sort} + +\begin{myscriptlisting} + \begin{verbatim} + SORT(1) User Commands SORT(1) + +NAME + sort - sort lines of text files + +SYNOPSIS + sort [OPTION]... [FILE]... + sort [OPTION]... --files0-from=F + +DESCRIPTION + Write sorted concatenation of all FILE(s) to standard output. + + Mandatory arguments to long options are mandatory for short options too. + Ordering options: + + -b, --ignore-leading-blanks + ignore leading blanks + + -d, --dictionary-order + consider only blanks and alphanumeric characters + + -f, --ignore-case + fold lower case to upper case characters + + -g, --general-numeric-sort + compare according to general numerical value + + -i, --ignore-nonprinting + consider only printable characters + + -M, --month-sort + compare (unknown) < 'JAN' < ... < 'DEC' + + -h, --human-numeric-sort + compare human readable numbers (e.g., 2K 1G) + + -n, --numeric-sort + compare according to string numerical value + + -R, --random-sort + sort by random hash of keys + + --random-source=FILE + get random bytes from FILE + + -r, --reverse + reverse the result of comparisons + \end{verbatim} +\end{myscriptlisting} + +\textbf{Respuesta:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ ls +ArchivoA.txt BarrireroExequiel Desktop Downloads Music Public +Software tema8 Videos +ArchivoB.txt BarrireroExequiel.tar.gz Documents group Pictures root +tema7 Templates +curso@ubuntu:~$ ls -l | sort +drwxrwxr-x 2 curso curso 4096 Dec 6 18:02 tema7 +drwxrwxr-x 2 curso curso 4096 Dec 7 09:12 tema8 +drwxrwxr-x 3 curso curso 4096 Dec 5 16:50 Software +drwxrwx--x 3 curso curso 4096 Dec 6 09:23 BarrireroExequiel +drwxrwx--x 5 curso curso 4096 Oct 3 20:57 root +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Documents +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Music +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Public +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Templates +drwxr-x--x 2 curso curso 4096 Sep 21 14:06 Videos +drwxr-x--x 2 curso curso 4096 Sep 21 19:30 Downloads +drwxr-x--x 2 curso curso 4096 Sep 21 20:53 Pictures +drwxr-x--x 3 curso curso 4096 Dec 5 16:52 Desktop +lrwxrwxrwx 1 curso curso 10 Sep 29 19:55 group -> /etc/group +-rw-rw-r-- 1 curso curso 40 Dec 7 09:12 ArchivoA.txt +-rw-rw-r-- 1 curso curso 40 Dec 7 09:12 ArchivoB.txt +-rwxrw---- 1 curso curso 2013003 Sep 21 21:13 BarrireroExequiel.tar.gz +total 2028 + \end{verbatim} +\end{myscriptlisting} + +\textbf{SORT command:} + +Sort is a Linux program used for printing lines of input text files and concatenation +of all files in sorted order. Sort command takes blank space as field separator and +entire Input file as sort key. It is important to notice that sort command don’t actually +sort the files but only print the sorted output, until your redirect the output.\\ + +\textbf{1 - Sort command without any options} + +Sorts lines in test file and displays sorted output. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort test +aaa +AAA +BBB +ddd +qqq +sss +zzz +\end{verbatim} +\end{myscriptlisting} + +\textbf{2 - Perform Numeric Sort using -n option} + +If we want to sort on numeric value, then we can use -n or –numeric-sort option. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort -n test +11 qqq +22 zzz +33 sss +55 BBB +77 aaa + \end{verbatim} +\end{myscriptlisting} + +\textbf{3 - Sort Human Readable Numbers using -h option} + +If we want to sort on human readable numbers (e.g., 2K 1M 1G), then we can use +-h or –human-numeric-sort option. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort -h test +1K +2K +2M +1G +2G +1T +6T + \end{verbatim} +\end{myscriptlisting} + +\textbf{4 - Sort Months of an Year using -M option} + +If we want to sort in the order of months of year, then we can use -M or –month-sort option. +The following sort command sorts lines in test file as per month order. Note, +lines in file should contain at least 3 character name of month name at start of +line (e.g. jan, feb, mar). If we will give, ja for January or au for August, then +sort command would not consider it as month name. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort -M test +jan +feb +mar11 +apr +aug +sept +oct + \end{verbatim} +\end{myscriptlisting} + +\textbf{5 - Check if Content is Already Sorted using -c option} + +If we want to check data in text file is sorted or not, then we can use -c or +–check, –check=diagnose-first option. +The following sort command checks whether text file data is sorted or not. +If it is not, then it shows first occurrence with line number and disordered value. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort -c test +sort: test:3: disorder: 1 + \end{verbatim} +\end{myscriptlisting} + +\textbf{6 - Reverse the Output and Check for Uniqueness using -r and -u options} + +If we want to get sorted output in reverse order, then we can use -r or –reverse +option. If file contains duplicate lines, then to get unique lines in sorted output, +“-u” option can be used. + +The following sort command sorts lines in test file in reverse order and removes +duplicate lines from sorted output. + +\begin{myscriptlisting} + \begin{verbatim} +$ sort -r test +5 +4 +4 +2 +2 +1 + +$ sort -r -u test +5 +4 +2 +1 + \end{verbatim} +\end{myscriptlisting} + +\textbf{7 - Selectively Sort the Content, Customize delimiter, Write output to a file using -k, -t, -o options} + +If we want to sort on the column or word position in lines of text file, then “-k” +option can be used. If we each word in each line of file is separated by delimiter +except ‘space’, then we can specify delimiter using “-t” option. We can get sorted +output in any specified output file (using “-o” option) instead of displaying output +on standard output. + +The following sort command sorts lines in test file on the 3rd word of each line +and displays sorted output. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat test +aa aa zz +aa aa ff +aa aa tt +aa aa kk + +$ sort -k3 test +aa aa ff +aa aa kk +aa aa tt +aa aa zz + \end{verbatim} +\end{myscriptlisting} + + +Here, several options are used altogether. In test file, words in each line are +separated by delimiter ‘|’. It sorts lines in test file on the 2nd word of each +line on the basis of numeric value and stores sorted output into specified output file. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat test +aa|5a|zz +aa|2a|ff +aa|1a|tt +aa|3a|kk + +$ sort -n -t'|' -k2 test -o outfile + +$ cat outfile +aa|1a|tt +aa|2a|ff +aa|3a|kk +aa|5a|zz + \end{verbatim} +\end{myscriptlisting} + +\cite{thegeekstuff} + +\subsection{Actividad 6.} + +\subsubsection{cut command } + +\textbf{Haciendo uso del comando cut obtener el 1º, el 5º y todos los caracteres +comprendidos entre el 10º y el 20º del archivo /etc/passwd.}\\ + +\textbf{MAN cut} + +\begin{myscriptlisting} + \begin{verbatim} + CUT(1) User Commands CUT(1) + +NAME + cut - remove sections from each line of files + +SYNOPSIS + cut OPTION... [FILE]... + +DESCRIPTION + Print selected parts of lines from each FILE to standard output. + + Mandatory arguments to long options are mandatory for short options too. + + -b, --bytes=LIST + select only these bytes + + -c, --characters=LIST + select only these characters + + -d, --delimiter=DELIM + use DELIM instead of TAB for field delimiter + + -f, --fields=LIST + select only these fields; also print any line that contains + no delimiter character, unless the -s + option is specified + + -n (ignored) + + --complement + complement the set of selected bytes, characters or fields + + -s, --only-delimited + do not print lines not containing delimiters + + --output-delimiter=STRING + use STRING as the output delimiter the default is to use the input + delimiter + \end{verbatim} +\end{myscriptlisting} + +\textbf{Respuesta:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~$ cut -c1,5,10-20 /etc/passwd +r:0:root:/roo +do1:1:daemon: +bx:bin:/bin:/ +sx:sys:/dev:/ +s:65534:sync: +gs:60:games:/ +mx2:man:/var/ +l:lp:/var/spo +m:8:mail:/var +n:9:news:/var +u::10:uucp:/v +py3:13:proxy: +wdx:33:33:www +bu34:34:backu +l::38:Mailing +ix39:ircd:/va +gs1:41:Gnats +nd65534:65534 +lu:100:101::/ +so101:104::/h +mas:x:102:106 +ls:x:103:109: +s:4:65534::/v +dvx:1000:1000 +va:999:1::/va +uu105:46:usbm +ai06:113:Avah +cr107:116:col +pe08:117:Puls +rt09:119:Real +lt:110:120:Li +co001:1001::/ +curso@ubuntu:~$ + \end{verbatim} +\end{myscriptlisting} + +\textbf{SORT command:} + +Linux command cut is used for text processing. You can use this command to +extract portion of text from a file by selecting columns.\\ + +\textbf{1 - Select Column of Characters} + +To extract only a desired column from a file use -c option. The following +example displays 2nd character from each line of a file test.txt + +\begin{myscriptlisting} + \begin{verbatim} +$ cat test.txt +cat command for file oriented operations. +cp command for copy files or directories. +ls command to list out files and directories with its attributes. + +$ cut -c2 test.txt +a +p +s +\end{verbatim} +\end{myscriptlisting} + +As seen above, the characters a, p, s are the second character from each line of the test.txt file. + +\textbf{2 - Select Column of Characters using Range} + +Range of characters can also be extracted from a file by specifying start and +end position delimited with -. The following example extracts first 3 characters +of each line from a file called test.txt + +\begin{myscriptlisting} + \begin{verbatim} +$ cat test.txt +cat command for file oriented operations. +cp command for copy files or directories. +ls command to list out files and directories with its attributes. + +$ cut -c1-3 test.txt +cat +cp +ls + \end{verbatim} +\end{myscriptlisting} + +\textbf{3 - Select Column of Characters using either Start or End Position} + +Either start position or end position can be passed to cut command with -c option. + +The following specifies only the start position before the ‘-‘. This example +extracts from 3rd character to end of each line from test.txt file. + +\begin{myscriptlisting} + \begin{verbatim} +$ cut -c3- test.txt +t command for file oriented operations. + command for copy files or directories. + command to list out files and directories with its attributes. + \end{verbatim} +\end{myscriptlisting} + +The following specifies only the end position after the ‘-‘. This example +extracts 8 characters from the beginning of each line from test.txt file. + +\begin{myscriptlisting} + \begin{verbatim} +$ cut -c-8 test.txt +cat comm +cp comma +ls comma + \end{verbatim} +\end{myscriptlisting} + +The entire line would get printed when you don’t specify a number before or +after the ‘-‘ as shown below. + +\begin{myscriptlisting} + \begin{verbatim} +$ cut -c- test.txt +cat command for file oriented operations. +cp command for copy files or directories. +ls command to list out files and directories with its attributes. + \end{verbatim} +\end{myscriptlisting} + +\textbf{4 - Select a Specific Field from a File} + +Instead of selecting x number of characters, if you like to extract a whole field, +you can combine option -f and -d. The option -f specifies which field you want to +extract, and the option -d specifies what is the field delimiter that is used in the input file. + +The following example displays only first field of each lines from /etc/passwd +file using the field delimiter : (colon). In this case, the 1st field is the +username. The file + +\begin{myscriptlisting} + \begin{verbatim} +$ cut -d':' -f1 /etc/passwd +root +daemon +bin +sys +sync +games +bala + \end{verbatim} +\end{myscriptlisting} + +\textbf{5 - Select Multiple Fields from a File} + +You can also extract more than one fields from a file or stdout. Below example +displays username and home directory of users who has the login shell as “/bin/bash”. + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d':' -f1,6 +root:/root +bala:/home/bala + \end{verbatim} +\end{myscriptlisting} + +To display the range of fields specify start field and end field as shown below. +In this example, we are selecting field 1 through 4, 6 and 7 + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d':' -f1-4,6,7 +root:x:0:0:/root:/bin/bash +bala:x:1000:1000:/home/bala:/bin/bash + \end{verbatim} +\end{myscriptlisting} + +\textbf{6 - Select Fields Only When a Line Contains the Delimiter} + +IIn our /etc/passwd example, if you pass a different delimiter other than : +(colon), cut will just display the whole line. + +In the following example, we’ve specified the delimiter as | (pipe), and cut +command simply displays the whole line, even when it doesn’t find any line +that has | (pipe) as delimiter. + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d'|' -f1 +root:x:0:0:root:/root:/bin/bash +bala:x:1000:1000:bala,,,:/home/bala:/bin/bash + \end{verbatim} +\end{myscriptlisting} + +But, it is possible to filter and display only the lines that contains the +specified delimiter using -s option. + +The following example doesn’t display any output, as the cut command didn’t find +any lines that has | (pipe) as delimiter in the /etc/passwd file. + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d'|' -s -f1 + \end{verbatim} +\end{myscriptlisting} + +\textbf{7 - Select All Fields Except the Specified Fields} + +In order to complement the selection field list use option –complement. + +The following example displays all the fields from /etc/passwd file except field 7 + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d':' --complement -s -f7 +root:x:0:0:root:/root +bala:x:1000:1000:bala,,,:/home/bala + \end{verbatim} +\end{myscriptlisting} + +\textbf{8 - Change Output Delimiter for Display} + +By default the output delimiter is same as input delimiter that we specify in the cut -d option. + +To change the output delimiter use the option –output-delimiter as shown below. +In this example, the input delimiter is : (colon), but the output delimiter is \# (hash). + +\begin{myscriptlisting} + \begin{verbatim} +$ grep "/bin/bash" /etc/passwd | cut -d':' -s -f1,6,7 --output-delimiter='#' +root#/root#/bin/bash +bala#/home/bala#/bin/bash + \end{verbatim} +\end{myscriptlisting} + +\textbf{9 - Change Output Delimiter to Newline} + +In this example, each and every field of the cut command output is displayed in +a separate line. We still used –output-delimiter, but the value is \$’\textbackslash n’ which +indicates that we should add a newline as the output delimiter. + +\begin{myscriptlisting} + \begin{verbatim} +$ grep bala /etc/passwd | cut -d':' -f1,6,7 --output-delimiter=$'\n' +bala +/home/bala +/bin/bash + \end{verbatim} +\end{myscriptlisting} + +\cite{thegeekstuff2} + +\subsection{Actividad 7.} + +\subsubsection{sed command} + +\textbf{Haciendo uso del comando sed elimine todas las lineas del archivo que +comiencen con \# (comentarios).} + +Script.txt + +\begin{verbatim} +#!bin/bash + +#Mi primer programa + +echo "Hola Mundo" +\end{verbatim} + +\textbf{MAN sed} + +\begin{myscriptlisting} + \begin{verbatim} + SED(1) User Commands SED(1) + +NAME + sed - stream editor for filtering and transforming text + +SYNOPSIS + sed [OPTION]... {script-only-if-no-other-script} [input-file]... + +DESCRIPTION + Sed is a stream editor. A stream editor is used to perform basic text + transformations on an input stream (a + file or input from a pipeline). While in some ways similar to an editor + which permits scripted edits (such as + ed), sed works by making only one pass over the input(s), and is + consequently more efficient. But it is sed's + ability to filter text in a pipeline which particularly distinguishes it + from other types of editors. + \end{verbatim} +\end{myscriptlisting} + +\textbf{Respuesta:} + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema8$ pwd +/home/curso/tema8 +curso@ubuntu:~/tema8$ ls +actividad7_T8.sh +curso@ubuntu:~/tema8$ cat actividad7_T8.sh +#!bin/bash + +#Haciendo uso del comando sed elimine todas las lineas del archivo que +#comiencen con \# (comentarios). + +#Mi primer programa + +echo "Hola Mundo"curso@ubuntu:~/tema8$ sed 's/^#.*//g' actividad7_T8.sh + + + + + + + +echo "Hola Mundo"curso@ubuntu:~/tema8$ + \end{verbatim} +\end{myscriptlisting} + +\textbf{SED command:} + +The `s’ (or sed) command attempts to match the pattern space against the supplied REGEXP; +if the match is successful, then that portion of the pattern space which was +matched is replaced with REPLACEMENT. + +\begin{myscriptlisting} + \begin{verbatim} +Syntax: + +#sed 'ADDRESSs/REGEXP/REPLACEMENT/FLAGS' filename +#sed 'PATTERNs/REGEXP/REPLACEMENT/FLAGS' filename +\end{verbatim} +\end{myscriptlisting} + +\begin{itemize} + \item \textbf{s} is substitute command + \item \textbf{/} is a delimiter + \item \textbf{REGEXP} is regular expression to match + \item \textbf{REPLACEMENT} is a value to replace +\end{itemize} + +FLAGS can be any of the following + +\begin{itemize} + \item \textbf{g} Replace all the instance of REGEXP with REPLACEMENT + \item \textbf{n} Could be any number,replace nth instance of the REGEXP with REPLACEMENT. + \item \textbf{p} If substitution was made, then prints the new pattern space. + \item \textbf{i} match REGEXP in a case-insensitive manner. + \item \textbf{w} file If substitution was made, write out the result to the given file. + \item We can use different delimiters ( one of @ \% ; : ) instead of \textbf{/} +\end{itemize} + + +\textbf{1 - Substitute Word “Linux” to “Linux-Unix” Using sed s//} + +In the example below, in the output line “1. Linux-Unix Sysadmin, Linux +Scripting etc” only first Linux is replaced by Linux-Unix. If no flags are +specified the first match of line is replaced. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed 's/Linux/Linux-Unix/' example.txt +# Instruction Guides +1. Linux-Unix Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux-Unix +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. +\end{verbatim} +\end{myscriptlisting} + +\textbf{2 - Substitute all Appearances of a Word Using sed s//g} + +The below sed command replaces all occurrences of Linux to Linux-Unix using +global substitution flag “g”. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed 's/Linux/Linux-Unix/g' example.txt +# Instruction Guides +1. Linux-Unix Sysadmin, Linux-Unix Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux-Unix +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + \end{verbatim} +\end{myscriptlisting} + +\textbf{3 - Substitute Only 2nd Occurrence of a Word Using sed s//2} + +In the example below, in the output line “1. Linux Sysadmin, Linux-Unix Scripting +etc.” only 2nd occurance of Linux is replaced by Linux-Unix. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed 's/Linux/Linux-Unix/2' example.txt +# Instruction Guides +1. Linux Sysadmin, Linux-Unix Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + \end{verbatim} +\end{myscriptlisting} + +\textbf{4 - Write Changes to a File and Print the Changes Using sed s//gpw} + +The example below has substitution with three flags. It substitutes all the +occurance of Linux to Linux-Unix and prints the substituted output as well as +written the same to the given the file. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed -n 's/Linux/Linux-Unix/gpw output' example.txt +1. Linux-Unix Sysadmin, Linux-Unix Scripting etc. +4. Storage in Linux-Unix +$ cat output +1. Linux-Unix Sysadmin, Linux-Unix Scripting etc. +4. Storage in Linux-Unix + \end{verbatim} +\end{myscriptlisting} + +\textbf{5 - Substitute Only When the Line Matches with the Pattern Using sed} + +In this example, if the line matches with the pattern “-“, then it replaces +all the characters from “-” with the empty. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed 's/-.*//g' example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows + \end{verbatim} +\end{myscriptlisting} + +\textbf{6 - Delete Last X Number of Characters From Each Line Using sed} + +This sed example deletes last 3 characters from each line. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed 's/...$//' example.txt +# Instruction Gui +1. Linux Sysadmin, Linux Scripting e +2. Databases - Oracle, mySQL e +3. Security (Firewall, Network, Online Security e +4. Storage in Li +5. Productivity (Too many technologies to explore, not much time availab +# Additional F +6. Windows- Sysadmin, reboot e + \end{verbatim} +\end{myscriptlisting} + +\textbf{7 - Eliminate Comments Using sed} + +Delete all the comment lines from a file as shown below using sed command. + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed -e 's/#.*//' example.txt + +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) + +6. Windows- Sysadmin, reboot etc. + \end{verbatim} +\end{myscriptlisting} + +\textbf{8 - liminate Comments and Empty Lines Using sed} + +In this example, there are two commands seperated by ‘;’ + +\begin{itemize} + \item First command replaces the lines starting with the \# to the blank lines + \item Second command deletes the empty lines. +\end{itemize} + +\begin{myscriptlisting} + \begin{verbatim} +$ cat example.txt +# Instruction Guides +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +# Additional FAQS +6. Windows- Sysadmin, reboot etc. + +$ sed -e 's/#.*//;/^$/d' example.txt +1. Linux Sysadmin, Linux Scripting etc. +2. Databases - Oracle, mySQL etc. +3. Security (Firewall, Network, Online Security etc) +4. Storage in Linux +5. Productivity (Too many technologies to explore, not much time available) +6. Windows- Sysadmin, reboot etc. + \end{verbatim} +\end{myscriptlisting} + +\textbf{9 - Convert DOS newlines (CR/LF) to Unix format Using sed} + +Copy the DOS file to Unix, you could find \textbackslash r \textbackslash n in +the end of each line. + +This example converts the DOS file format to Unix file format using sed command. + +\begin{myscriptlisting} + \begin{verbatim} +$sed 's/.$//' filename + \end{verbatim} +\end{myscriptlisting} + +\textbf{10 - Eliminate HTML Tags from file Using sed} +In this example, the regular expression given in the sed command matches the +html tags and replaces with the empty. + +\begin{myscriptlisting} + \begin{verbatim} +$ sed -e 's/<[^>]*>//g' +This is an example. +This is an example. + \end{verbatim} +\end{myscriptlisting} + +\cite{thegeekstuff3} + +\pagebreak + +\section{Ejercicios Tema 10: Shell scripting intermedio} + +\begin{itemize} + \item Agrupación de comandos. + \item Interpretación del estado de salida de un proceso. + \item Operadores de ejecución condicional: ||, \&\&. + \item Evaluación booleana de sentencias: test. + \item Expresiones condicionales: if. + \item Interpretación de parámetros de un comando. + \item Lectura de entrada como argumento de un parámetro: read. + \end{itemize} + + +\subsection{Actividad 1.} + +\subsubsection{tar - gzip - date format output} + +\textbf{Realizar un script que dado un directorio, cree un archivo tar comprimido con gzip y con nombre igual a la fecha en formato yyyy-mm-dd seguido del nombre del directorio.tar.gz +Por ejemplo: aplicado al directorio tmp obtendríamos 2012-07-11tmp.tar.gz.}\\ + +\begin{myscriptlisting} + \begin{verbatim} +#!/bin/bash + +#Realizar un script que dado un directorio, cree un archivo tar comprimido con +#gzip y con nombre igual a la fecha en formato #yyyy-mm-dd seguido del nombre del directorio.tar.gz +#Por ejemplo: aplicado al directorio tmp obtendríamos 2012-07-11tmp.tar.gz. + +#tar -zcvf archive-name.tar.gz directory-name +#Where, +#-z : Compress archive using gzip program +#-c : Create archive +#-v : Verbose i.e display progress while creating archive +#-f : Archive File name + +Date=$(date +"%Y-%m-%d") +echo "####################################" +echo "######### Date: $Date #########" +echo "####################################" + +read -p "Input absolute path DIR to Comperss: " Dir +echo "####################################" +echo "# Directory to Compress: $Dir #" +echo "####################################" + +Dir_name=$(echo "$Dir" | tr '/' '-') +echo "####################################" +echo "## The dir name is: $Dir_name " +echo "####################################" + +tar -zcvf $Date$Dir_name.tar.gz "$Dir" +compress_f=$(ls -la | grep tar.gz | cut -d' ' -f8-12) +echo "####################################" +echo "########## Your backups: ###########" +echo "$compress_f " +echo "####################################" + \end{verbatim} +\end{myscriptlisting} + +Then the result: + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema10$ ./actividad1.sh +#################################### +######### Date: 2015-12-08 ######### +#################################### +Input absolute path DIR to Comperss: /tmp +#################################### +# Directory to Compress: /tmp # +#################################### +#################################### +## The dir name is: -tmp +#################################### +tar: Removing leading `/' from member names +/tmp/ +/tmp/config-err-epPb49 +/tmp/.org.chromium.Chromium.JkwRvY/ +tar: /tmp/.org.chromium.Chromium.JkwRvY/SingletonSocket: socket ignored +/tmp/.org.chromium.Chromium.JkwRvY/SingletonCookie +/tmp/.ICE-unix/ +tar: /tmp/.ICE-unix/1633: socket ignored +/tmp/.X0-lock +/tmp/orbit-curso/ +/tmp/.X11-unix/ +tar: /tmp/.X11-unix/X0: socket ignored +#################################### +########## Your backups: ########### +Dec 8 11:31 2015-12-08-tmp.tar.gz +#################################### +curso@ubuntu:~/tema10$ + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 2.} + +\subsubsection{script : ''divisible por 2``} + +\textbf{Realizar un script que, dado un número, indique si es o no divisible por 2. +Si no se ingresa un número debe decir como usar el programa.}\\ + +\begin{myscriptlisting} + \begin{verbatim} +#!/bin/bash + +#Realizar un script que, dado un número, indique si es o no divisible por 2. +#Si no se ingresa un número debe decir como usar el programa. + +divisor=2 + +read -t 3 -p "Input a Number to check if it's divisible by 2 : " Number || echo -e "\nPlase enter a number during the 1st 3 secs" +#echo $(($Number / $divisor)) +#expr $Number / $divisor +#if [$(($number % 5)) -eq 0 ] + +# Use the && (and) and || (or) operators: +#if [[ expression ]] && [[ expression ]] || [[ expression ]] ; then + +#They can also be used within a single [[ ]]: +#if [[ expression && expression || expression ]] ; then + +#And, finally, you can group them to ensure order of evaluation: +#if [[ expression && ( expression || expression ) ]] ; then + +if [[ "$Number" -ne 0 ]] && [[ -n $Number ]] +then + if (($Number % $divisor == 0)) + then + echo "Your number is divisible by 2" + else + echo "Your number is not divisible by 2" + fi +else + echo "You must enter a number dif from 0 (cero) to check if it's divisible by 2" +fi + \end{verbatim} +\end{myscriptlisting} + +Then the OUTPUT: + +\begin{myscriptlisting} + \begin{verbatim} +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : +Plase enter a number during the 1st 3 secs +You must enter a number dif from 0 (cero) to check if it's divisible by 2 +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : 0 +You must enter a number dif from 0 (cero) to check if it's divisible by 2 +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : 1 +Your number is not divisible by 2 +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : 2 +Your number is divisible by 2 +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : 3 +Your number is not divisible by 2 +curso@ubuntu:~/tema10$ ./actividad2.sh +Input a Number to check if it's divisible by 2 : 4 +Your number is divisible by 2 +curso@ubuntu:~/tema10$ + \end{verbatim} +\end{myscriptlisting} + + +\subsection{Actividad 3.} + +\subsubsection{script: tar - gzip - date format output} + +\textbf{Realizar un script que dado una lista de directorios, cree un archivo tar comprimido con gzip +con nombre igual a la fecha en formato yyyy-mm-dd.tar.gz. +Además se debe generar un fichero yyyy-mm-dd.lst con los nombres de los directorios +contenidos en el archivo tar, uno por linea usando un bucle. +Si el fichero lst existe, mostrar un error y terminar el programa. +Si alguno de los elementos no es un directorio, mostrar un error y finalizar el programa.} + +\subsection{Actividad 4.} + +\subsubsection{head command} + +\textbf{Explique la siguiente linea de comando:} + +\begin{verbatim} +if [ -e $HOME/.configuracion -a ! -e SinConfiguracion] +\end{verbatim} + +\subsection{Actividad 5 (ejercitación evaluación).} + +\subsubsection{script: find directories by name - for - if - test - ls} + +\textbf{Crear un script en bash que imprima en un archivo llamado, lista\_directorios, +el nombre de aquellos archivos que solo sean directorios. +Utilizar un ls que recorra el directorio /home/usuario (cualquier usuario). +Ayuda: comandos a utilizar for, if, test y ls.} + +\subsection{Actividad 6 (ejercitación evaluación).} + +\subsubsection{script: True or False - for - if - test - ls} + +\textbf{Crear un script en bash que indique "Verdadero o Falso" si la cantidad de dispositivos de caracteres +especiales es mayor que la cantidad de dispositivos de bloques existentes en el directorio /dev. +Ayuda: comandos a utilizar for, if, test y ls.} + +\pagebreak + +\section{Ejercicios Tema 11: Configuración de Bash} + +\begin{itemize} + \item Variables de bash. + \item Variables de entorno. + \item Alias. + \item Cómo expande bash una línea de comandos. + \item Prevenir la expansión. + \item Diferencias entre shell con y sin login. + \item Tareas de ejecución al inicio de un bash. + \item Tareas de ejecución al final de un bash. + \end{itemize} + + +\subsection{Actividad 1.} + +\subsubsection{Variable de entorno PS1} + +\textbf{Explore la utilidad de la variable de entorno PS1 y escriba en un archivo de texto +el uso basico de esa variable con 2 ejemplos.}\\ + +\subsection{Actividad 2.} + +\subsubsection{Limpiar History y /tmp} + +\textbf{Configure su usuario de sistema para que limpie el historial y el contenido +de la carpeta /tmp al salir del sistema.}\\ + +\subsection{Actividad 3.} + +\subsubsection{init.d and processes} + +\textbf{Configure su usuario de sistema para que al inicio imprima en la terminal +los 3 procesos que mas ocupan memoria.} + +\subsection{Actividad 4.} + +\subsubsection{backup script - tar gz} + +\textbf{Cree un comando de bash llamado "backup\_personal", que realize un tar gz de la +carpeta home del usuario con la fecha actual e imprima la salida en el archivo /tmp/backup.log } + +\subsection{Actividad 5.} + +\subsubsection{Alias for grep command} + +\textbf{Cree un alias para el comando grep que permita por defecto pintar las +ocurrecias exitosas de grep , al ejecutar el comando grep.} + +\subsection{Actividad 6.} + +\subsubsection{script: given a value to a variable} + +\textbf{Realize un script que imprima en una misma linea la siguiente frase, teniendo en cuenta +que la palabra producto proviene de la variable producto=parrilla. +" Precio de lista de producto \$100"} + +\pagebreak + +\bibliography{miscitas} + +\pagebreak + +\chapter{\Large{\textbf{Siglas y Acr\'onimos}}} +\addcontentsline{toc}{section}{Siglas y Acr\'onimos} + +\begin{acronym} + +\acro{cd}[cd]{change directory} +\acro{eol}[EOL]{End of Life} +\acro{gnu}[GNU]{GNU's Not Unix!} +\acro{gnome}[Gnome]{GNU Network Object Model Environment} +\acro{gtk}[GTK]{Graphical user interface toolkit} +\acro{gui}[GUI]{Grafic User Interface} +\acro{kde}[KDE]{K desktop environment} +\acro{sudo}[sudo]{Super-user do} + + +% Internet, \emph{Honeypot},} +\end{acronym} + +\end{document} diff --git a/TPs_Diplomatura_Linux.toc b/TPs_Diplomatura_Linux.toc new file mode 100644 index 0000000..320a0a2 --- /dev/null +++ b/TPs_Diplomatura_Linux.toc @@ -0,0 +1,157 @@ + +\select@language {spanish} +\contentsline {section}{\numberline {1}Ejercicios Tema1: Introducci\IeC {\'o}n al entorno gr\IeC {\'a}fico de un Sistema GNU/Linux y herramientas}{1}{section.1} +\contentsline {subsection}{\numberline {1.1}Actividad 1.}{1}{subsection.1.1} +\contentsline {subsubsection}{\numberline {1.1.1}Kernel: Definici\IeC {\'o}n}{1}{subsubsection.1.1.1} +\contentsline {subsubsection}{\numberline {1.1.2}Versi\IeC {\'o}n actual de kernel estable en \ac {gnu}/Linux}{2}{subsubsection.1.1.2} +\contentsline {subsubsection}{\numberline {1.1.3}Versi\IeC {\'o}n mas usada de kernel estable en \ac {gnu}/Linux}{4}{subsubsection.1.1.3} +\contentsline {subsection}{\numberline {1.2}Actividad 2.}{4}{subsection.1.2} +\contentsline {subsubsection}{\numberline {1.2.1}\IeC {\textquestiondown }De qu\IeC {\'e} distribuci\IeC {\'o}n deriva \ac {gnu}/Linux Fedora?}{4}{subsubsection.1.2.1} +\contentsline {subsection}{\numberline {1.3}Actividad 3.}{4}{subsection.1.3} +\contentsline {subsubsection}{\numberline {1.3.1}Imprimir pantalla del escritorio \ac {gnome}}{4}{subsubsection.1.3.1} +\contentsline {subsection}{\numberline {1.4}Actividad 4.}{6}{subsection.1.4} +\contentsline {subsubsection}{\numberline {1.4.1}Navegaci\IeC {\'o}n de directorios con Nautilus}{6}{subsubsection.1.4.1} +\contentsline {subsection}{\numberline {1.5}Actividad 5.}{9}{subsection.1.5} +\contentsline {subsubsection}{\numberline {1.5.1}LibreOffice Writer: Guardado de archivos .doc en .odt }{9}{subsubsection.1.5.1} +\contentsline {subsection}{\numberline {1.6}Actividad 6.}{10}{subsection.1.6} +\contentsline {subsubsection}{\numberline {1.6.1}Consolas virtuales y \ac {gtk}-Warning}{10}{subsubsection.1.6.1} +\contentsline {section}{\numberline {2}Ejercicios Tema3: L\IeC {\'\i }nea de Comandos. Comandos b\IeC {\'a}sicosI }{12}{section.2} +\contentsline {subsection}{\numberline {2.1}Actividad 1.}{12}{subsection.2.1} +\contentsline {subsubsection}{\numberline {2.1.1}\ac {cd} command}{12}{subsubsection.2.1.1} +\contentsline {subsection}{\numberline {2.2}Actividad 2.}{12}{subsection.2.2} +\contentsline {subsubsection}{\numberline {2.2.1}Sudo y permisos de administraci\IeC {\'o}n}{12}{subsubsection.2.2.1} +\contentsline {subsection}{\numberline {2.3}Actividad 3.}{15}{subsection.2.3} +\contentsline {subsubsection}{\numberline {2.3.1}less command}{15}{subsubsection.2.3.1} +\contentsline {subsection}{\numberline {2.4}Actividad 4.}{15}{subsection.2.4} +\contentsline {subsubsection}{\numberline {2.4.1}/bin and /sbin}{15}{subsubsection.2.4.1} +\contentsline {subsection}{\numberline {2.5}Actividad 5.}{17}{subsection.2.5} +\contentsline {subsubsection}{\numberline {2.5.1}Listado de permisos ''ls -la`` command}{17}{subsubsection.2.5.1} +\contentsline {subsection}{\numberline {2.6}Actividad 6.}{18}{subsection.2.6} +\contentsline {subsubsection}{\numberline {2.6.1}Listado de permisos ''ls -l`` command}{18}{subsubsection.2.6.1} +\contentsline {subsection}{\numberline {2.7}Actividad 7.}{19}{subsection.2.7} +\contentsline {subsubsection}{\numberline {2.7.1}mkdir make directory}{19}{subsubsection.2.7.1} +\contentsline {subsection}{\numberline {2.8}Actividad 8.}{20}{subsection.2.8} +\contentsline {subsubsection}{\numberline {2.8.1}Creaci\IeC {\'o}n de archivos con ''touch``}{20}{subsubsection.2.8.1} +\contentsline {subsection}{\numberline {2.9}Actividad 9.}{20}{subsection.2.9} +\contentsline {subsubsection}{\numberline {2.9.1}Cambio de permisos con ''chmod``}{20}{subsubsection.2.9.1} +\contentsline {subsection}{\numberline {2.10}Actividad 10.}{21}{subsection.2.10} +\contentsline {subsubsection}{\numberline {2.10.1}Eliminar recursivamente con ''rm`` command}{21}{subsubsection.2.10.1} +\contentsline {subsection}{\numberline {2.11}Actividad 11.}{21}{subsection.2.11} +\contentsline {subsubsection}{\numberline {2.11.1}Copia recursiva de directorio con ''cp`` command}{21}{subsubsection.2.11.1} +\contentsline {subsection}{\numberline {2.12}Actividad 12.}{22}{subsection.2.12} +\contentsline {subsubsection}{\numberline {2.12.1}Renombrar archivos con ''mv`` command}{22}{subsubsection.2.12.1} +\contentsline {subsection}{\numberline {2.13}Actividad 13.}{23}{subsection.2.13} +\contentsline {subsubsection}{\numberline {2.13.1}Copia de dirs mediante path relativo}{23}{subsubsection.2.13.1} +\contentsline {subsection}{\numberline {2.14}Actividad 14.}{23}{subsection.2.14} +\contentsline {subsubsection}{\numberline {2.14.1}Enlaces simb\IeC {\'o}licos ''ln'' command}{23}{subsubsection.2.14.1} +\contentsline {subsection}{\numberline {2.15}Actividad 15.}{25}{subsection.2.15} +\contentsline {subsubsection}{\numberline {2.15.1}Navegaci\IeC {\'o}n de directorios con Nautilus}{25}{subsubsection.2.15.1} +\contentsline {subsection}{\numberline {2.16}Actividad 16.}{26}{subsection.2.16} +\contentsline {subsubsection}{\numberline {2.16.1}Interpertaci\IeC {\'o}n de comandos}{26}{subsubsection.2.16.1} +\contentsline {section}{\numberline {3}Ejercicios Tema 4: Linea de comandos. Comandos b\IeC {\'a}sicos II }{29}{section.3} +\contentsline {subsection}{\numberline {3.1}Actividad 1.}{29}{subsection.3.1} +\contentsline {subsubsection}{\numberline {3.1.1}``find'' and ``locate'' commands}{29}{subsubsection.3.1.1} +\contentsline {subsection}{\numberline {3.2}Actividad 2.}{29}{subsection.3.2} +\contentsline {subsubsection}{\numberline {3.2.1}locate -d command}{29}{subsubsection.3.2.1} +\contentsline {subsection}{\numberline {3.3}Actividad 3.}{31}{subsection.3.3} +\contentsline {subsubsection}{\numberline {3.3.1}``find`` without name}{31}{subsubsection.3.3.1} +\contentsline {subsection}{\numberline {3.4}Actividad 4.}{31}{subsection.3.4} +\contentsline {subsubsection}{\numberline {3.4.1}''find'' buscando por permisos de usuario}{31}{subsubsection.3.4.1} +\contentsline {subsection}{\numberline {3.5}Actividad 5.}{33}{subsection.3.5} +\contentsline {subsubsection}{\numberline {3.5.1}``find'' para archivos modificados en un per\IeC {\'\i }odo de tiempo}{33}{subsubsection.3.5.1} +\contentsline {subsection}{\numberline {3.6}Actividad 6.}{35}{subsection.3.6} +\contentsline {subsubsection}{\numberline {3.6.1}``grep`` command}{35}{subsubsection.3.6.1} +\contentsline {subsection}{\numberline {3.7}Actividad 7.}{36}{subsection.3.7} +\contentsline {subsubsection}{\numberline {3.7.1}''grep`` recursivo}{36}{subsubsection.3.7.1} +\contentsline {subsection}{\numberline {3.8}Actividad 8.}{36}{subsection.3.8} +\contentsline {subsubsection}{\numberline {3.8.1}''df`` commands}{36}{subsubsection.3.8.1} +\contentsline {subsection}{\numberline {3.9}Actividad 9.}{37}{subsection.3.9} +\contentsline {subsubsection}{\numberline {3.9.1}''tar.gz`` command p/ comprimir}{37}{subsubsection.3.9.1} +\contentsline {subsection}{\numberline {3.10}Actividad 10.}{38}{subsection.3.10} +\contentsline {subsubsection}{\numberline {3.10.1}''tar.gz`` command p/ descomprimir}{38}{subsubsection.3.10.1} +\contentsline {section}{\numberline {4}Ejercicios Tema 6: Uso b\IeC {\'a}sico de la consola }{39}{section.4} +\contentsline {subsection}{\numberline {4.1}Actividad 1.}{39}{subsection.4.1} +\contentsline {subsubsection}{\numberline {4.1.1}Regular expressions - \texttt {\^} , \$ , . , *}{39}{subsubsection.4.1.1} +\contentsline {subsection}{\numberline {4.2}Actividad 2.}{41}{subsection.4.2} +\contentsline {subsubsection}{\numberline {4.2.1}Regular expressions - \texttt {\^} , \$ , . , *}{41}{subsubsection.4.2.1} +\contentsline {subsection}{\numberline {4.3}Actividad 3.}{42}{subsection.4.3} +\contentsline {subsubsection}{\numberline {4.3.1}Regular expressions - \texttt {\^} , . , []}{42}{subsubsection.4.3.1} +\contentsline {subsection}{\numberline {4.4}Actividad 4.}{44}{subsection.4.4} +\contentsline {subsubsection}{\numberline {4.4.1}Regular expressions - \texttt {\^} , \$ , []}{44}{subsubsection.4.4.1} +\contentsline {subsection}{\numberline {4.5}Actividad 5.}{45}{subsection.4.5} +\contentsline {subsubsection}{\numberline {4.5.1}Regular expressions - \texttt {\^} , \$ , []}{45}{subsubsection.4.5.1} +\contentsline {subsection}{\numberline {4.6}Actividad 6.}{46}{subsection.4.6} +\contentsline {subsubsection}{\numberline {4.6.1}The command-line history}{46}{subsubsection.4.6.1} +\contentsline {subsection}{\numberline {4.7}Actividad 7.}{48}{subsection.4.7} +\contentsline {subsubsection}{\numberline {4.7.1}history, variable HISTSIZE}{48}{subsubsection.4.7.1} +\contentsline {subsection}{\numberline {4.8}Actividad 8.}{49}{subsection.4.8} +\contentsline {subsubsection}{\numberline {4.8.1}HISTCONTROL variable}{49}{subsubsection.4.8.1} +\contentsline {subsection}{\numberline {4.9}Actividad 9.}{50}{subsection.4.9} +\contentsline {subsubsection}{\numberline {4.9.1}clear history (history -c)}{50}{subsubsection.4.9.1} +\contentsline {section}{\numberline {5}Parcial 1 - Parte 2 - Cuestionario Pr\IeC {\'a}ctico}{51}{section.5} +\contentsline {subsection}{\numberline {5.1}Actividad 1.}{51}{subsection.5.1} +\contentsline {subsubsection}{\numberline {5.1.1}Regular expressions - \texttt {\^} , \$ , . , *}{51}{subsubsection.5.1.1} +\contentsline {subsection}{\numberline {5.2}Actividad 2.}{51}{subsection.5.2} +\contentsline {subsubsection}{\numberline {5.2.1}find command}{51}{subsubsection.5.2.1} +\contentsline {subsection}{\numberline {5.3}Actividad 3.}{51}{subsection.5.3} +\contentsline {subsubsection}{\numberline {5.3.1}Regular expressions and ls command}{51}{subsubsection.5.3.1} +\contentsline {subsection}{\numberline {5.4}Actividad 4.}{52}{subsection.5.4} +\contentsline {subsubsection}{\numberline {5.4.1}Regular expressions - Tar command}{52}{subsubsection.5.4.1} +\contentsline {section}{\numberline {6}Ejercicios Tema 7: Shell scripting b\IeC {\'a}sico}{53}{section.6} +\contentsline {subsection}{\numberline {6.1}Actividad 1.}{53}{subsection.6.1} +\contentsline {subsubsection}{\numberline {6.1.1}STDERR redirection to file}{53}{subsubsection.6.1.1} +\contentsline {subsection}{\numberline {6.2}Actividad 2.}{54}{subsection.6.2} +\contentsline {subsubsection}{\numberline {6.2.1}STDOUT \& STDERR redirection to file}{54}{subsubsection.6.2.1} +\contentsline {subsection}{\numberline {6.3}Actividad 3.}{54}{subsection.6.3} +\contentsline {subsubsection}{\numberline {6.3.1}Head - Tail - Pipe}{54}{subsubsection.6.3.1} +\contentsline {subsection}{\numberline {6.4}Actividad 4.}{56}{subsection.6.4} +\contentsline {subsubsection}{\numberline {6.4.1}Cat - Grep - Wc}{56}{subsubsection.6.4.1} +\contentsline {subsection}{\numberline {6.5}Actividad 5.}{57}{subsection.6.5} +\contentsline {subsubsection}{\numberline {6.5.1}Find \& Sort script}{57}{subsubsection.6.5.1} +\contentsline {subsection}{\numberline {6.6}Actividad 6.}{58}{subsection.6.6} +\contentsline {subsubsection}{\numberline {6.6.1}`` - in between Grave accent character }{58}{subsubsection.6.6.1} +\contentsline {subsection}{\numberline {6.7}Actividad 7.}{60}{subsection.6.7} +\contentsline {subsubsection}{\numberline {6.7.1}FOR - loops and iteration}{60}{subsubsection.6.7.1} +\contentsline {section}{\numberline {7}Ejercicios Tema 8: Herramientas para procesar texto}{61}{section.7} +\contentsline {subsection}{\numberline {7.1}Actividad 1.}{61}{subsection.7.1} +\contentsline {subsubsection}{\numberline {7.1.1}cat command}{61}{subsubsection.7.1.1} +\contentsline {subsection}{\numberline {7.2}Actividad 2.}{62}{subsection.7.2} +\contentsline {subsubsection}{\numberline {7.2.1}less command}{62}{subsubsection.7.2.1} +\contentsline {subsection}{\numberline {7.3}Actividad 3.}{63}{subsection.7.3} +\contentsline {subsubsection}{\numberline {7.3.1}grep \& regular expessions}{63}{subsubsection.7.3.1} +\contentsline {subsection}{\numberline {7.4}Actividad 4.}{63}{subsection.7.4} +\contentsline {subsubsection}{\numberline {7.4.1}head command}{63}{subsubsection.7.4.1} +\contentsline {subsection}{\numberline {7.5}Actividad 5.}{64}{subsection.7.5} +\contentsline {subsubsection}{\numberline {7.5.1}sort command}{64}{subsubsection.7.5.1} +\contentsline {subsection}{\numberline {7.6}Actividad 6.}{68}{subsection.7.6} +\contentsline {subsubsection}{\numberline {7.6.1}cut command }{68}{subsubsection.7.6.1} +\contentsline {subsection}{\numberline {7.7}Actividad 7.}{72}{subsection.7.7} +\contentsline {subsubsection}{\numberline {7.7.1}sed command}{72}{subsubsection.7.7.1} +\contentsline {section}{\numberline {8}Ejercicios Tema 10: Shell scripting intermedio}{79}{section.8} +\contentsline {subsection}{\numberline {8.1}Actividad 1.}{79}{subsection.8.1} +\contentsline {subsubsection}{\numberline {8.1.1}tar - gzip - date format output}{79}{subsubsection.8.1.1} +\contentsline {subsection}{\numberline {8.2}Actividad 2.}{80}{subsection.8.2} +\contentsline {subsubsection}{\numberline {8.2.1}script : ''divisible por 2``}{80}{subsubsection.8.2.1} +\contentsline {subsection}{\numberline {8.3}Actividad 3.}{81}{subsection.8.3} +\contentsline {subsubsection}{\numberline {8.3.1}script: tar - gzip - date format output}{81}{subsubsection.8.3.1} +\contentsline {subsection}{\numberline {8.4}Actividad 4.}{84}{subsection.8.4} +\contentsline {subsubsection}{\numberline {8.4.1}head command}{84}{subsubsection.8.4.1} +\contentsline {subsection}{\numberline {8.5}Actividad 5 (ejercitaci\IeC {\'o}n evaluaci\IeC {\'o}n).}{84}{subsection.8.5} +\contentsline {subsubsection}{\numberline {8.5.1}script: find directories by name - for - if - test - ls}{84}{subsubsection.8.5.1} +\contentsline {subsection}{\numberline {8.6}Actividad 6 (ejercitaci\IeC {\'o}n evaluaci\IeC {\'o}n).}{84}{subsection.8.6} +\contentsline {subsubsection}{\numberline {8.6.1}script: True or False - for - if - test - ls}{84}{subsubsection.8.6.1} +\contentsline {section}{\numberline {9}Ejercicios Tema 11: Configuraci\IeC {\'o}n de Bash}{85}{section.9} +\contentsline {subsection}{\numberline {9.1}Actividad 1.}{85}{subsection.9.1} +\contentsline {subsubsection}{\numberline {9.1.1}Variable de entorno PS1}{85}{subsubsection.9.1.1} +\contentsline {subsection}{\numberline {9.2}Actividad 2.}{85}{subsection.9.2} +\contentsline {subsubsection}{\numberline {9.2.1}Limpiar History y /tmp}{85}{subsubsection.9.2.1} +\contentsline {subsection}{\numberline {9.3}Actividad 3.}{85}{subsection.9.3} +\contentsline {subsubsection}{\numberline {9.3.1}init.d and processes}{85}{subsubsection.9.3.1} +\contentsline {subsection}{\numberline {9.4}Actividad 4.}{85}{subsection.9.4} +\contentsline {subsubsection}{\numberline {9.4.1}backup script - tar gz}{85}{subsubsection.9.4.1} +\contentsline {subsection}{\numberline {9.5}Actividad 5.}{86}{subsection.9.5} +\contentsline {subsubsection}{\numberline {9.5.1}Alias for grep command}{86}{subsubsection.9.5.1} +\contentsline {subsection}{\numberline {9.6}Actividad 6.}{86}{subsection.9.6} +\contentsline {subsubsection}{\numberline {9.6.1}script: given a value to a variable}{86}{subsubsection.9.6.1} +\contentsline {section}{Bibliograf\'{\i }a}{87}{section*.21} +\contentsline {section}{Siglas y Acr\'onimos}{89}{section*.21} diff --git a/bash_scripts/BarrireroExequiel_ParcialII_scripts.tar.gz b/bash_scripts/BarrireroExequiel_ParcialII_scripts.tar.gz new file mode 100644 index 0000000..4b70dd7 Binary files /dev/null and b/bash_scripts/BarrireroExequiel_ParcialII_scripts.tar.gz differ diff --git a/bash_scripts/Dir_list.txt b/bash_scripts/Dir_list.txt new file mode 100644 index 0000000..ea1f98e --- /dev/null +++ b/bash_scripts/Dir_list.txt @@ -0,0 +1,18 @@ +home/curso/ArchivoA.txt +home/curso/ArchivoB.txt +home/curso/BarrireroExequiel +home/curso/dead.letter +home/curso/Desktop +home/curso/Documents +home/curso/Downloads +home/curso/group -> /etc/group +home/curso/Music +home/curso/Pictures +home/curso/Public +home/curso/root +home/curso/Software +home/curso/tema10 +home/curso/tema7 +home/curso/tema8 +home/curso/Templates +home/curso/Videos diff --git a/bash_scripts/actividad1.sh b/bash_scripts/actividad1.sh new file mode 100755 index 0000000..09bdaf0 --- /dev/null +++ b/bash_scripts/actividad1.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +#Realizar un script que dado un directorio, cree un archivo tar comprimido con +#gzip y con nombre igual a la fecha en formato #yyyy-mm-dd seguido del nombre del directorio.tar.gz +#Por ejemplo: aplicado al directorio tmp obtendríamos 2012-07-11tmp.tar.gz. + +#tar -zcvf archive-name.tar.gz directory-name +#Where, +#-z : Compress archive using gzip program +#-c : Create archive +#-v : Verbose i.e display progress while creating archive +#-f : Archive File name + +Date=$(date +"%Y-%m-%d") +echo "####################################" +echo "######### Date: $Date #########" +echo "####################################" + +read -p "Input absolute path DIR to Comperss: " Dir +echo "####################################" +echo "# Directory to Compress: $Dir #" +echo "####################################" + +Dir_name=$(echo "$Dir" | tr '/' '-') +echo "####################################" +echo "## The dir name is: $Dir_name " +echo "####################################" + +tar -zcvf $Date$Dir_name.tar.gz "$Dir" +compress_f=$(ls -la | grep tar.gz | cut -d' ' -f8-12) +echo "####################################" +echo "########## Your backups: ###########" +echo "$compress_f " +echo "####################################" diff --git a/bash_scripts/actividad2.sh b/bash_scripts/actividad2.sh new file mode 100755 index 0000000..4f31a5d --- /dev/null +++ b/bash_scripts/actividad2.sh @@ -0,0 +1,276 @@ +#!/bin/bash + +#Cree un script llamado script1_T7.sh que sea interpretado por bash. Al +#ejecutarse debe buscar en el directorio HOME/CURSO todos los archivos y +#ordenelos por nombres alfabéticamente. Redireccione el contenido en un ar- +#chivo llamado salida_script1_T7.txt. Ayuda: Puede emplear la opción -R del +#Comando ls para listar subdirectorios, y la opción -u del comando sort. + +ls -R /home/curso | sort -u > salida_script1_T7.txt + + +####################### + +#!/bin/bash + +#Haciendo uso de la sentencia repetitiva FOR , realice un script que genere +#un fichero llamado lista.txt que contenga el nombre de los archivos que haya +#en el directorio /etc. RECUERDE: Debe hacer uso de la expresión repetitiva +#for. + +for F in /etc/* +do +echo $F >> lista.txt +done + +####################### + +#!/bin/bash + +#Realizar un script que dado un directorio, cree un archivo tar comprimido con +#gzip y con nombre igual a la fecha en formato #yyyy-mm-dd seguido del nombre del directorio.tar.gz +#Por ejemplo: aplicado al directorio tmp obtendríamos 2012-07-11tmp.tar.gz. + +#tar -zcvf archive-name.tar.gz directory-name +#Where, +#-z : Compress archive using gzip program +#-c : Create archive +#-v : Verbose i.e display progress while creating archive +#-f : Archive File name + +Date=$(date +"%Y-%m-%d") +echo "####################################" +echo "######### Date: $Date #########" +echo "####################################" + +read -p "Input absolute path DIR to Comperss: " Dir +echo "####################################" +echo "# Directory to Compress: $Dir #" +echo "####################################" + +Dir_name=$(echo "$Dir" | tr '/' '-') +echo "####################################" +echo "## The dir name is: $Dir_name " +echo "####################################" + +tar -zcvf $Date$Dir_name.tar.gz "$Dir" +compress_f=$(ls -la | grep tar.gz | cut -d' ' -f8-12) +echo "####################################" +echo "########## Your backups: ###########" +echo "$compress_f " +echo "####################################" + +############################################### + +#!/bin/bash + +#Realizar un script que, dado un número, indique si es o no divisible por 2. +#Si no se ingresa un número debe decir como usar el programa. + +divisor=2 + +read -t 3 -p "Input a Number to check if it's divisible by 2 : " Number || echo -e "\nPlase enter a number during the 1st 3 secs" +#echo $(($Number / $divisor)) +#expr $Number / $divisor +#if [$(($number % 5)) -eq 0 ] + +# Use the && (and) and || (or) operators: +#if [[ expression ]] && [[ expression ]] || [[ expression ]] ; then + +#They can also be used within a single [[ ]]: +#if [[ expression && expression || expression ]] ; then + +#And, finally, you can group them to ensure order of evaluation: +#if [[ expression && ( expression || expression ) ]] ; then + +if [[ "$Number" -ne 0 ]] && [[ -n $Number ]] +then + if (($Number % $divisor == 0)) + then + echo "Your number is divisible by 2" + else + echo "Your number is not divisible by 2" + fi +else + echo "You must enter a number dif from 0 (cero) to check if it's divisible by 2" +fi + +################################### + +#!/bin/bash + +#Realizar un script que dado una lista de directorios, cree un archivo tar +#comprimido con gzip con nombre igual a la fecha en formato yyyy-mm-dd.tar.gz. +#Además se debe generar un fichero yyyy-mm-dd.lst con los nombres de los di- +#rectorios contenidos en el archivo tar, uno por linea usando un bucle. Si el +#fichero lst existe, mostrar un error y terminar el programa. Si alguno de los +#elementos no es un directorio, mostrar un error y finalizar el programa. + +# 1386 ls -d /home/curso/* +# 1387 ls -x /home/curso/* | grep '^d' +# 1388 ls -x -R /home/curso/ +read -p "Input absolute path DIR to get a List of +subdirs in a .txt and compress this file list: " Dir + +echo "####################################" +echo "# List of Dirs to Compress: $Dir #" +echo "####################################" + +Dir_name=$(echo "$Dir" | tr '/' '-') +echo "####################################" +echo "## The dir name replazing / for - is: $Dir_name " +echo "####################################" + +#curso@ubuntu:~/tema10$ ls -lR /home/curso/ | grep '^d' | cut -d' ' -f9-13 | cut -d':' -f2 +ls -ld $Dir* | cut -d' ' -f12-16 | cut -d'/' -f2-6 | sed '/^$/d' > Dir_list.txt + +Date=$(date +"%Y-%m-%d") +echo "####################################" +echo "######### Date: $Date #########" +echo "####################################" + +tar -zcvf $Date.tar.gz Dir_list.txt +compress_f=$(ls -la | grep tar.gz | cut -d' ' -f8-12) +echo "####################################" +echo "########## Your backups: ###########" +echo "$Backup List " +echo "####################################" + + +if [ test -f ./ext/Dir_list_ext.lst ] +then + echo "El fichero .lst YA EXISTE" +else + mkdir ext + tar -xzvf $Date.tar.gz -C ./ext + echo -e "Se creará fichero lst en base a la lista de Dirs del file en \n archivo /ext/Dir_list_ext.lst" + while IFS='' read -r line || [[ -n "$line" ]]; do + echo "$line," >> ./ext/Dir_list_ext.lst + done < Dir_list.txt +fi + +################### + +#!/bin/bash + +if test -d /var +then + echo "El dir exsite" +else + echo "el dir no existe" +fi + +################## + +#!/bin/bash + +read -p "Ingrese el USER a buscar en /etc/passwd: " USER; + +if grep $USER /etc/passwd > /dev/null +then + echo "El user exite" +else + echo "EL user no existe" +fi + +################### + +#!/bin/bash + +read -p "Ingrese el USER a buscar en /etc/passwd: " USER + +#grep -c para buscar la cantidad de veces que se repite una palabra +# NUMERO=`grep $USER /etc/passwd | wc -l` estaría buscando la cantidad de líneas donde se repite +#OCURRENCIAS=$(grep -c "$USER" /etc/passwd) +OCURRENCIAS=`grep -c "$USER" /etc/passwd` + +#if test "$OCURRENCIAS" -gt 2 +if [ "$OCURRENCIAS" -gt 2 ] +then + echo ""$USER" se repite más que 2 veces, "$OCURRENCIAS" veces" +else + echo ""$USER" se repite solo "$OCURRENCIAS" vez" +fi + + +################## + +#!/bin/bash +echo “Contar hasta diez” +for VARIABLE in 1 2 3 4 5 6 7 8 9 10 +do + CONTADOR="Numero $VARIABLE" + echo $CONTADOR +done + +# For example 2 +for i in 1 2 3 4 5 +do + echo "Welcome $i times" +done + +# For example 3 +for i in {1..5} +do + echo "Welcome $i times" +done + +# For example 4 +echo "Bash version ${BASH_VERSION}..." +for i in {0..10..2} + do + echo "Welcome $i times" + done + +# Hello world using variables + STR="Hello World!" + echo $STR + + ###################### + + #!/bin/bash + +#Este script muestra en el STDOUT el calendario anual del anio actual y +#ademas guarda en un archivo de texto, llamado calendario.log, el resultado y la fecha +# y hora en que se lo ejecuto +#Para practicar, ud podria agregar los comentarios entre cada linea de ejecucion +#explicando que es lo que hace +touch /home/curso/Desktop/bash_scripts/calendario.log +echo "Fecha de ejecucion" > calendario.log +date >> calendario.log +echo "Calendario del anio actual" >> calendario.log +# guardamos el año, se utiliza como delimitador un espacio en blanco ' ' y el field 7 +# es decir la palabra que se presenta inmediatamente antes del delimiter en su 7ma repetición. +ANIOACTUAL=`date | cut -d' ' -f7` +cal $ANIOACTUAL | tee -a calendario.log + +echo "for i in {1..7}; do date | cut -d' ' -f$i; done => Output below:" +for i in {1..7}; do date | cut -d' ' -f$i; done + +####################### + +#!/bin/bash + +#Leer y tratar de predecir que es lo que hace este script +#Probar y determinar que es lo que hace este script + +echo "i in hola 1 * 2 adios" +for i in hola 1 * 2 adios +do +echo "Iterando ... i tiene el valor $i" +done + +echo "for i in hola 1 \* 2 adios" +for i in hola 1 \* 2 adios +do +echo "Iterando ... i tiene el valor $i" +done + +###################### + +nombre=juan +grep "$nombre" /etc/passwd || echo "$nombre no se encontro en el archivo" + +read -p "Type url to test: " Web +ping -c1 "$Web" &> /dev/null && echo "Servicio Dns Funcionando" || echo "Servicio DNS No Funciona" +exit 1 diff --git a/bash_scripts/actividad3.sh b/bash_scripts/actividad3.sh new file mode 100755 index 0000000..4dca1a2 --- /dev/null +++ b/bash_scripts/actividad3.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +#Realizar un script que dado una lista de directorios, cree un archivo tar +#comprimido con gzip con nombre igual a la fecha en formato yyyy-mm-dd.tar.gz. +#Además se debe generar un fichero yyyy-mm-dd.lst con los nombres de los di- +#rectorios contenidos en el archivo tar, uno por linea usando un bucle. Si el +#fichero lst existe, mostrar un error y terminar el programa. Si alguno de los +#elementos no es un directorio, mostrar un error y finalizar el programa. + +# 1386 ls -d /home/curso/* +# 1387 ls -x /home/curso/* | grep '^d' +# 1388 ls -x -R /home/curso/ +read -p "Input absolute path DIR to get a List of +subdirs in a .txt and compress this file list: " Dir + +echo "####################################" +echo "# List of Dirs to Compress: $Dir #" +echo "####################################" + +Dir_name=$(echo "$Dir" | tr '/' '-') +echo "####################################" +echo "## The dir name replazing / for - is: $Dir_name " +echo "####################################" + +#curso@ubuntu:~/tema10$ ls -lR /home/curso/ | grep '^d' | cut -d' ' -f9-13 | cut -d':' -f2 +ls -ld $Dir* | cut -d' ' -f12-16 | cut -d'/' -f2-6 | sed '/^$/d' > Dir_list.txt + +Date=$(date +"%Y-%m-%d") +echo "####################################" +echo "######### Date: $Date #########" +echo "####################################" + +tar -zcvf $Date.tar.gz Dir_list.txt +compress_f=$(ls -la | grep tar.gz | cut -d' ' -f8-12) +echo "####################################" +echo "########## Your backups: ###########" +echo "$Backup List " +echo "####################################" + + +if [ test -f ./ext/Dir_list_ext.lst ] +then + echo "El fichero .lst YA EXISTE" +else + mkdir ext + tar -xzvf $Date.tar.gz -C ./ext + echo -e "Se creará fichero lst en base a la lista de Dirs del file en \n archivo /ext/Dir_list_ext.lst" + while IFS='' read -r line || [[ -n "$line" ]]; do + echo "$line," >> ./ext/Dir_list_ext.lst + done < Dir_list.txt +fi + + diff --git a/bash_scripts/actividad7_T8.sh b/bash_scripts/actividad7_T8.sh new file mode 100644 index 0000000..ab1d63b --- /dev/null +++ b/bash_scripts/actividad7_T8.sh @@ -0,0 +1,10 @@ +#!bin/bash + +#Haciendo uso del comando sed elimine todas las lineas del archivo que +#comiencen con # (comentarios). + +#Mi primer programa + +mi # mi + +echo "Hola Mundo" \ No newline at end of file diff --git a/bash_scripts/bash_scripts.tar.gz b/bash_scripts/bash_scripts.tar.gz new file mode 100644 index 0000000..52d3078 Binary files /dev/null and b/bash_scripts/bash_scripts.tar.gz differ diff --git a/bash_scripts/bash_scripts_Diplo_Linux.tar.gz b/bash_scripts/bash_scripts_Diplo_Linux.tar.gz new file mode 100644 index 0000000..5e0b566 Binary files /dev/null and b/bash_scripts/bash_scripts_Diplo_Linux.tar.gz differ diff --git a/bash_scripts/calendario.log b/bash_scripts/calendario.log new file mode 100644 index 0000000..a4dad3c --- /dev/null +++ b/bash_scripts/calendario.log @@ -0,0 +1,39 @@ +Fecha de ejecucion +Sun Dec 6 13:44:27 CST 2015 +Calendario del anio actual + 2015 + January February March +Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa + 1 2 3 1 2 3 4 5 6 7 1 2 3 4 5 6 7 + 4 5 6 7 8 9 10 8 9 10 11 12 13 14 8 9 10 11 12 13 14 +11 12 13 14 15 16 17 15 16 17 18 19 20 21 15 16 17 18 19 20 21 +18 19 20 21 22 23 24 22 23 24 25 26 27 28 22 23 24 25 26 27 28 +25 26 27 28 29 30 31 29 30 31 + + + April May June +Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa + 1 2 3 4 1 2 1 2 3 4 5 6 + 5 6 7 8 9 10 11 3 4 5 6 7 8 9 7 8 9 10 11 12 13 +12 13 14 15 16 17 18 10 11 12 13 14 15 16 14 15 16 17 18 19 20 +19 20 21 22 23 24 25 17 18 19 20 21 22 23 21 22 23 24 25 26 27 +26 27 28 29 30 24 25 26 27 28 29 30 28 29 30 + 31 + + July August September +Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa + 1 2 3 4 1 1 2 3 4 5 + 5 6 7 8 9 10 11 2 3 4 5 6 7 8 6 7 8 9 10 11 12 +12 13 14 15 16 17 18 9 10 11 12 13 14 15 13 14 15 16 17 18 19 +19 20 21 22 23 24 25 16 17 18 19 20 21 22 20 21 22 23 24 25 26 +26 27 28 29 30 31 23 24 25 26 27 28 29 27 28 29 30 + 30 31 + + October November December +Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa + 1 2 3 1 2 3 4 5 6 7 1 2 3 4 5 + 4 5 6 7 8 9 10 8 9 10 11 12 13 14 _ _6 7 8 9 10 11 12 +11 12 13 14 15 16 17 15 16 17 18 19 20 21 13 14 15 16 17 18 19 +18 19 20 21 22 23 24 22 23 24 25 26 27 28 20 21 22 23 24 25 26 +25 26 27 28 29 30 31 29 30 27 28 29 30 31 + diff --git a/bash_scripts/diccionario.txt b/bash_scripts/diccionario.txt new file mode 100644 index 0000000..86fdebf --- /dev/null +++ b/bash_scripts/diccionario.txt @@ -0,0 +1,5 @@ + +perro +bandera +mundo +pereza diff --git a/bash_scripts/ejemplo1.sh b/bash_scripts/ejemplo1.sh new file mode 100755 index 0000000..3102ddd --- /dev/null +++ b/bash_scripts/ejemplo1.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +if test -d /var +then + echo "El dir exsite" +else + echo "el dir no existe" +fi diff --git a/bash_scripts/ejemplo2.sh b/bash_scripts/ejemplo2.sh new file mode 100755 index 0000000..253a70b --- /dev/null +++ b/bash_scripts/ejemplo2.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +read -p "Ingrese el USER a buscar en /etc/passwd: " USER; + +if grep $USER /etc/passwd > /dev/null +then + echo "El user exite" +else + echo "EL user no existe" +fi + diff --git a/bash_scripts/ejemplo3.sh b/bash_scripts/ejemplo3.sh new file mode 100755 index 0000000..266b76c --- /dev/null +++ b/bash_scripts/ejemplo3.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +read -p "Ingrese el USER a buscar en /etc/passwd: " USER + +#grep -c para buscar la cantidad de veces que se repite una palabra +# NUMERO=`grep $USER /etc/passwd | wc -l` estaría buscando la cantidad de líneas donde se repite +#OCURRENCIAS=$(grep -c "$USER" /etc/passwd) +OCURRENCIAS=`grep -c "$USER" /etc/passwd` + +#if test "$OCURRENCIAS" -gt 2 +if [ "$OCURRENCIAS" -gt 2 ] +then + echo ""$USER" se repite más que 2 veces, "$OCURRENCIAS" veces" +else + echo ""$USER" se repite solo "$OCURRENCIAS" vez" +fi + + +############################################ + +#read -p "Ingrese la palabra a buscar: " PALABRA + +#OCURRENCIAS=$(grep -c "$PALABRA" /etc/passwd) + +#if [ $OCURRENCIAS -gt 2 ] +#then +# echo "$PALABRA aparece mas de 2 veces" +#else +# echo "$PALABRA aparece solo $OCURRENCIAS" +#fi + +########################################### + +#read -p "Ingrese la palabra a buscar: " PALABRA + +#OCURRENCIAS=$(grep -c "$PALABRA" /etc/passwd) + +#if [ $OCURRENCIAS -gt 2 ] +#then +# echo "$PALABRA aparece mas de 2 veces" +#else +# echo "$PALABRA aparece solo $OCURRENCIAS" +#fi \ No newline at end of file diff --git a/bash_scripts/ejemplo4.sh b/bash_scripts/ejemplo4.sh new file mode 100755 index 0000000..a9ced89 --- /dev/null +++ b/bash_scripts/ejemplo4.sh @@ -0,0 +1,30 @@ +#!/bin/bash +echo “Contar hasta diez” +for VARIABLE in 1 2 3 4 5 6 7 8 9 10 +do + CONTADOR="Numero $VARIABLE" + echo $CONTADOR +done + +# For example 2 +for i in 1 2 3 4 5 +do + echo "Welcome $i times" +done + +# For example 3 +for i in {1..5} +do + echo "Welcome $i times" +done + +# For example 4 +echo "Bash version ${BASH_VERSION}..." +for i in {0..10..2} + do + echo "Welcome $i times" + done + +# Hello world using variables + STR="Hello World!" + echo $STR \ No newline at end of file diff --git a/bash_scripts/ejemplo5.sh b/bash_scripts/ejemplo5.sh new file mode 100755 index 0000000..ba20fa8 --- /dev/null +++ b/bash_scripts/ejemplo5.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +#Este script muestra en el STDOUT el calendario anual del anio actual y +#ademas guarda en un archivo de texto, llamado calendario.log, el resultado y la fecha +# y hora en que se lo ejecuto +#Para practicar, ud podria agregar los comentarios entre cada linea de ejecucion +#explicando que es lo que hace +touch /home/curso/Desktop/bash_scripts/calendario.log +echo "Fecha de ejecucion" > calendario.log +date >> calendario.log +echo "Calendario del anio actual" >> calendario.log +# guardamos el año, se utiliza como delimitador un espacio en blanco ' ' y el field 7 +# es decir la palabra que se presenta inmediatamente antes del delimiter en su 7ma repetición. +ANIOACTUAL=`date | cut -d' ' -f7` +cal $ANIOACTUAL | tee -a calendario.log + +echo "for i in {1..7}; do date | cut -d' ' -f$i; done => Output below:" +for i in {1..7}; do date | cut -d' ' -f$i; done \ No newline at end of file diff --git a/bash_scripts/ejemplo6.sh b/bash_scripts/ejemplo6.sh new file mode 100755 index 0000000..f86c537 --- /dev/null +++ b/bash_scripts/ejemplo6.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +#Leer y tratar de predecir que es lo que hace este script +#Probar y determinar que es lo que hace este script + +echo "i in hola 1 * 2 adios" +for i in hola 1 * 2 adios +do +echo "Iterando ... i tiene el valor $i" +done + +echo "for i in hola 1 \* 2 adios" +for i in hola 1 \* 2 adios +do +echo "Iterando ... i tiene el valor $i" +done \ No newline at end of file diff --git a/bash_scripts/ejemplo7.sh b/bash_scripts/ejemplo7.sh new file mode 100755 index 0000000..7a4045c --- /dev/null +++ b/bash_scripts/ejemplo7.sh @@ -0,0 +1,25 @@ + #!/bin/bash + +#read -p "Ingrese el USER a buscar en /etc/passwd: " USER + +#grep -c para buscar la cantidad de veces que se repite una palabra +# NUMERO=`grep $USER /etc/passwd | wc -l` estaría buscando la cantidad de líneas donde se repite +#OCURRENCIAS=$(grep -c "$USER" /etc/passwd) +#OCURRENCIAS=`grep -c "$USER" /etc/passwd` + +#if test "$OCURRENCIAS" -gt 2 +#if [ "$OCURRENCIAS" -gt 2 ] +#then +# echo ""$USER" se repite más que 2 veces, "$OCURRENCIAS" veces" +#else +# echo ""$USER" se repite solo "$OCURRENCIAS" vez" +#fi + +nombre=juan +grep "$nombre" /etc/passwd || echo "$nombre no se encontro en el archivo" + +read -p "Type url to test: " Web +ping -c1 "$Web" &> /dev/null && echo "Servicio Dns Funcionando" || echo "Servicio DNS No Funciona" +exit 1 + +#read -p "Type url to test: " Web;ping -c1 "$Web" &> /dev/null && echo "Servicio Dns Funcionando" || (echo "Servicio DNS No Funciona";exit 1 diff --git a/bash_scripts/ejercicio1.sh b/bash_scripts/ejercicio1.sh new file mode 100755 index 0000000..1c3e7a7 --- /dev/null +++ b/bash_scripts/ejercicio1.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +#Crear un script que, siendo ejecutado como usuario root +#1.- Cree un grupo llamado "info" +#2.- Solicite al usuario que ingrese los nombres de 3 nuevos usuarios separados por espacio. +#Debe descartar el resto de los usuarios. Debe chequear que los usuarios que el usuario ingresó +#NO existan en el sistema. En caso que los usuarios existan salir del script con un mensaje de +#error y valor de salida 1. +#3.- Crear los 3 nuevos usuarios. Asignarlos al grupo creado en el punto Nº 1.- + +groupadd -g 1050 info + +read -p "Ingrese 3 Nombres de USERS separados por espacio: " USERS + +echo "Solo se tomarán los 3 1eros USERS de la lista $USERS" +USERS=$(echo "$USERS" | cut -d' ' -f1-3) +echo "Estós serán los siguientes 3:" +echo "$USERS" + +USER1=$(echo "$USERS" | cut -d' ' -f1) +echo "USER1: $USER1" + +USER2=$(echo "$USERS" | cut -d' ' -f2) +echo "USER2: $USER2" + +USER3=$(echo "$USERS" | cut -d' ' -f3) +echo "USER3: $USER3" + +OCURRENCIAS=`grep -c "$USER1" /etc/passwd` +OCURRENCIAS=`grep -c "$USER2" /etc/passwd` +OCURRENCIAS=`grep -c "$USER3" /etc/passwd` + +if [ "$OCURRENCIAS" -gt 0 ] +then + echo "ERROR: Al menos uno de los USERS ya existe" + exit 1 +else + echo "Los USERS no existen en el Sistema " + echo "Y se procederá a crearlos perteneciendo al grupo info" + echo "que se creó al comienzo del script" + adduser $USER1 -gid 50 --home /home/$USER1 + adduser $USER2 -gid 50 --home /home/$USER2 + adduser $USER3 -gid 50 --home /home/$USER3 +fi \ No newline at end of file diff --git a/bash_scripts/ejercicio2.sh b/bash_scripts/ejercicio2.sh new file mode 100755 index 0000000..c53cd42 --- /dev/null +++ b/bash_scripts/ejercicio2.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +#Cree un script que se ejecute una vez al día a las 4.00hs que realice la sigu +#iente acción: +#1.- Para todos los archivos de su directorio /home/usuario, si existen más de 4 +#archivos/directorios con fecha de modificación en octubre, noviembre o diciembre, entonces +#crear un archivo tar.gz del directorio completo y guardarlo en el directorio /tmp/salida.tar.gz. +#Importante: Adjuntar en la entrega la línea de crontab utilizada y el script. + +#curso@ubuntu:~/ParcialII$ crontab -e + +#MAILTO=exequielrafaela@gmail.com + +########################################################## +#minuto (0-59), # +#| hora (0-23), # +#| | día del mes (1-31), # +#| | | mes (1-12), # +#| | | | día de la semana (0-6 donde 0=Domingo) # +#| | | | | comandos # +########################################################## + +#0 4 * * * /home/curso/ParcialII/ejercicio2.sh | mail -s "ejercicio2" exequielrafaela@gmail.com + +#OCURRENCIAS=$(ls -la /home/curso | grep -c Oct) +#OCURRENCIAS=$(ls -la /home/curso | grep -c Nov) +#OCURRENCIAS=$(ls -la /home/curso | grep -c Dic) +OCURRENCIAS=$(ls -la /home/curso | egrep -i -c 'Oct|Nov|Dic') + +if [ "$OCURRENCIAS" -gt 4 ] +then + echo "existen más de 4 archivos/directorios con fecha" + echo "de modificación en octubre, noviembre o diciembre" + tar -zcvf /tmp/saliad.tar.gz /home/curso +else + echo "No se cumple la condición planteada de modificación archivos" +fi + + +########### + +# OUTPUT - Se realiza ejemplo para dir /home/curso/ParcialIIcurso@ubuntu:~/ParcialII$ ./ejercicio2.sh + +#curso@ubuntu:~/ParcialII$ ./ejercicio2.sh +#existen más de 4 archivos/directorios con fecha +#de modificación en octubre, noviembre o diciembre +#tar: Removing leading `/' from member names +#/home/curso/ParcialII/ +#/home/curso/ParcialII/ejercicio1.sh +#home/curso/ParcialII/ejercicio2.sh +#curso@ubuntu:~/ParcialII$ ls /tmp/ +#config-err-epPb49 orbit-curso saliad.tar.gz + diff --git a/bash_scripts/ejercicio3.sh b/bash_scripts/ejercicio3.sh new file mode 100755 index 0000000..2d2721d --- /dev/null +++ b/bash_scripts/ejercicio3.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +#Crear un script que al ser ejecutado solicite por línea de comando que dato de configuración +#de red desea obtener el usuario. Si el usuario ingresa el valor 'ip', entonces devolverá por +#STDOUT la direcciones IPs del host. Si el usuario ingresa el valor 'mask', entonces el script +#devolverá por STDOUT máscaras de subred del host. Cualquier otro valor ingrese se +#considerará error y deberá salir con estado 1. +#Ayuda: Utilizar comandos read, ifconfig, grep, if, test, cut o sed, exit + +read -p "Ingrese parametro de conf de Red desea: " Param_red + +#Dir_name=$(echo "$Dir" | tr '/' '-') +#curso@ubuntu:~/tema10$ ls -lR /home/curso/ | grep '^d' | cut -d' ' -f9-13 | cut -d':' -f2 +#ls -ld $Dir* | cut -d' ' -f12-16 | cut -d'/' -f2-6 | sed '/^$/d' > Dir_list.txt + +Ip_addr=$(ifconfig | grep Bcast | cut -d' ' -f12 | cut -d':' -f2) +Ip_masc=$(ifconfig | grep Bcast | cut -d' ' -f16 | cut -d':' -f2) + +if [ $Param_red == "ip" ] +then + echo "The IP Address is: $Ip_addr" + elif [ $Param_red == "mask" ] + then + echo "The Subnet Mask is: $Ip_masc" +else + echo "ERROR" + exit 1 +fi + +########### OUTPUT ############## + +#curso@ubuntu:~/ParcialII$ ./ejercicio3.sh +#Ingrese parametro de conf de Red desea: ip +#The IP Address is: 10.0.2.15 +#curso@ubuntu:~/ParcialII$ ./ejercicio3.sh +#Ingrese parametro de conf de Red desea: mask +#The Subnet Masc is: 255.255.255.0 +#curso@ubuntu:~/ParcialII$ ./ejercicio3.sh +#Ingrese parametro de conf de Red desea: Brod +#ERROR + + diff --git a/bash_scripts/ejercicio4.sh b/bash_scripts/ejercicio4.sh new file mode 100755 index 0000000..1e406f8 --- /dev/null +++ b/bash_scripts/ejercicio4.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +#Realice un script que permita ingresar mediante el teclado 4 palabras. En cada iteración usted +#debe convertir a mayúsculas solo aquellas palabras cuya segunda letra sean vocales. Si el +#número de palabras que cumplen dicha condición es mayor que 3, guarde todas esas palabras +#en un archivo llamado diccionario.txt y ordene al mismo alfabéticamente de manera inversa. +#Recuerde que el archivo debe quedar ordenado, no basta con ordenar la salida. +#Ayuda: Utilizar comandos read, grep, if, let, tr, for, sort + +COUNTER=0 +echo "" > diccionario.txt +echo "" > temp.txt +echo "" > temp1.txt + +for i in {1..4} +do + read -p "Ingrese palabra $i: " WORD + echo $WORD > temp.txt + OCURRENCIA=$(cat temp.txt | cut -c 2 | egrep -i -c 'a|e|i|o|u') + echo "" + if [ $OCURRENCIA -gt 0 ] + then + echo $WORD | tr a-z A-Z + ((COUNTER++)) + echo "$COUNTER" + echo $WORD >> temp1.txt + + if [ $COUNTER -gt 3 ] + then + echo "" + echo "###########" + echo "DICCIONARIO" + echo "###########" + cat temp1.txt > diccionario.txt + sort -d -r diccionario.txt + fi + else + echo "Ingrese otra palabra" + fi + OCURRENCIA=0 +done + + + diff --git a/bash_scripts/script1_T7.sh b/bash_scripts/script1_T7.sh new file mode 100755 index 0000000..6a38288 --- /dev/null +++ b/bash_scripts/script1_T7.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +#Cree un script llamado script1_T7.sh que sea interpretado por bash. Al +#ejecutarse debe buscar en el directorio HOME/CURSO todos los archivos y +#ordenelos por nombres alfabéticamente. Redireccione el contenido en un ar- +#chivo llamado salida_script1_T7.txt. Ayuda: Puede emplear la opción -R del +#Comando ls para listar subdirectorios, y la opción -u del comando sort. + +ls -R /home/curso | sort -u > salida_script1_T7.txt \ No newline at end of file diff --git a/bash_scripts/script2_T7.sh b/bash_scripts/script2_T7.sh new file mode 100755 index 0000000..39d74cc --- /dev/null +++ b/bash_scripts/script2_T7.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +#Haciendo uso de la sentencia repetitiva FOR , realice un script que genere +#un fichero llamado lista.txt que contenga el nombre de los archivos que haya +#en el directorio /etc. RECUERDE: Debe hacer uso de la expresión repetitiva +#for. + +for F in /etc/* +do +echo $F >> lista.txt +done \ No newline at end of file diff --git a/bash_scripts/temp.txt b/bash_scripts/temp.txt new file mode 100644 index 0000000..48af870 --- /dev/null +++ b/bash_scripts/temp.txt @@ -0,0 +1 @@ +pereza diff --git a/bash_scripts/temp1.txt b/bash_scripts/temp1.txt new file mode 100644 index 0000000..86fdebf --- /dev/null +++ b/bash_scripts/temp1.txt @@ -0,0 +1,5 @@ + +perro +bandera +mundo +pereza diff --git a/miscitas.bib b/miscitas.bib new file mode 100644 index 0000000..3df5f8e --- /dev/null +++ b/miscitas.bib @@ -0,0 +1,182 @@ +@ARTICLE{aliakbar, + author = "Ali Akbar M., Farooq M., Zubair Rafuique M.", + title = "{E}valuating {D}oS {A}ttacks {A}gainst {S}IP-based {V}oIP {S}ystems", + journal = "Global Telecommunications Conference, 2009. GLOBECOM 2009. IEEE Volumen Anual", + year = "2009", + pages = "1--6"} + +@BOOK{camarillo, + title = "{S}IP {D}emystified", + publisher = "Ed. McGraw-Hill", + year = "2002", + author = "{C}amarillo G.", + address = "USA"} + +@PHDTHESIS{nassarm, + author = "{N}assar M.", + title = "VoIP {N}etworks {M}onitoring and {I}nstrusion {D}etection", + school = "Universidad Henri Poincaré", + year = "2009", + type = "Tesis de Doctorado", + address = "Francia"} + +@misc{debiansudo, +author = {{D}ebian org}, +title = {sudo}, +year = {2014}, +howpublished = {\url{https://wiki.debian.org/sudo)}}, +note = {[20-09-2015]}} + +@misc{digitalocean, +author = {{D}igitalOcean™ Inc.}, +title = {{H}ow To Use Find and Locate to Search for Files on a Linux VPS}, +year = {2015}, +howpublished = {\url{https://www.digitalocean.com/community/tutorials/how-to-use-find-and-locate-to-search-for-files-on-a-linux-vps}}, +note = {[03-10-2015]}} + +@misc{fedoraproject, +author = {{R}ed Hat, Inc.}, +title = {{F}edora Project Wiki - What is the Fedora Project?}, +year = {2015}, +howpublished = {\url{https://fedoraproject.org/wiki/Fedora_Project_Wiki)}}, +note = {[16-09-2015]}} + +@book{linuxbible, + title = {Linux Bible}, + author = {Christopher Negus}, + publisher = {Wiley}, + isbn = {1118999878,9781118999875,978-1-118-99989-9,978-1-118-99988-2}, + year = {2015}, + series = {}, + edition = {9}, + volume = {}, + url = {http://gen.lib.rus.ec/book/index.php?md5=4f9db7cfdfdcd907cf9d1333f40f8fad} +} + +@misc{linuxkernel, +author = {{L}inux Kernel Organization Inc.}, +title = {The Linux Kernel Archives: Frequently asked questions}, +year = {2014}, +howpublished = {\url{https://www.kernel.org/category/faq.html)}}, +note = {[16-09-2015]}} + +@misc{linuxkernel1, +author = {{L}inux Kernel Organization Inc.}, +title = {The Linux Kernel Archives}, +year = {2014}, +howpublished = {\url{https://www.kernel.org)}}, +note = {[16-09-2015]}} + +@misc{mirizioe, +author = {{M}irizio {E}.}, +title = {Guía Teórica - Diplomatura Linux Modulo 1}, +year = {2015}, +howpublished = {\url{http://www.di.artec.unc.edu.ar/course/view.php?id=4§ion=2)}}, +note = {[20-09-2015]}} + +@misc{mirizioe2, +author = {{M}irizio {E}.}, +title = {Guía Teórica - Diplomatura Linux Modulo 7}, +year = {2015}, +howpublished = {\url{http://www.di.artec.unc.edu.ar/pluginfile.php/8003/mod_resource/content/1/Tips_Scripts.txt}}, +note = {[06-12-2015]}} + +@misc{osamu, +author = {{O}samu {A}oki}, +title = {Debian Reference - Chapter 1. GNU/Linux tutorials - 1.1.6. Virtual consoles}, +year = {2013}, +howpublished = {\url{https://www.debian.org/doc/manuals/debian-reference/ch01.en.html#_virtual_consoles)}}, +note = {[19-09-2015]}} + +@misc{tldpre, +author = {{H}ogbin E., {K}omarinski M., Merril D.}, +title = {The Linux Documentation Project: A Brief Introduction to Regular Expressions}, +year = {2005}, +howpublished = {\url{http://tldp.org/LDP/abs/html/x17129.html#FTN.AEN17134}}, +note = {[01-11-2015]}} + +@misc{serverschool, +author = {{H}osting {N}ews LLC}, +title = {Dedicated Server School: Using the Linux “history” command}, +year = {2010}, +howpublished = {\url{http://www.serverschool.com/dedicated-servers/using-the-linux-history-command/}}, +note = {[02-11-2015]}} + +@misc{tecmint, +author = {{N}atarajan R.}, +title = {Tecmint: The Power of Linux “History Command” in Bash Shell}, +year = {2015}, +howpublished = {\url{http://www.tecmint.com/history-command-examples/}}, +note = {[02-11-2015]}} + +@misc{thegeekstuff, +author = {{S}hrestha {N}.}, +title = {How to Sort Files in Linux using Sort Command}, +year = {2013}, +howpublished = {\url{http://www.thegeekstuff.com/2013/04/sort-files/}}, +note = {[07-12-2015]}} + +@misc{thegeekstuff2, +author = {{S}hrestha {N}.}, +title = {10 Practical Linux Cut Command Examples to Select File Columns}, +year = {2013}, +howpublished = {\url{http://www.thegeekstuff.com/2013/06/cut-command-examples/}}, +note = {[07-12-2015]}} + +@misc{thegeekstuff3, +author = {{S}hrestha {N}.}, +title = {Unix Sed Tutorial: Find and Replace Text Inside a File Using RegEx}, +year = {2009}, +howpublished = {\url{http://www.thegeekstuff.com/2009/09/unix-sed-tutorial-replace-text-inside-a-file-using-substitute-command/}}, +note = {[07-12-2015]}} + +@misc{tldphist, +author = {{H}ogbin E., {K}omarinski M., Merril D.}, +title = {The Linux Documentation Project: The command-line history}, +year = {2005}, +howpublished = {\url{http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x1712.htm}}, +note = {[02-11-2015]}} + +@misc{utlai, +author = {{A}sociación Cultural U.T.L.A.I. (Cantabria - España)}, +title = {Enlaces de ficheros: enlaces duros y enlaces simbólicos.}, +year = {2009}, +howpublished = {\url{ http://www.nodo50.org/utlai/linux/27010712.htm}}, +note = {[03-10-2015]}} + +@misc{vivkg, +author = {{V}ivek {G}.}, +title = {How do I Compress a Whole Linux or UNIX Directory}, +year = {2006}, +howpublished = {\url{http://www.cyberciti.biz/faq/how-do-i-compress-a-whole-linux-or-unix-directory}}, +note = {[04-10-2015]}} + +@misc{wikifhs, +author = {{W}ikipedia Project}, +title = {Filesystem Hierarchy Standard}, +year = {2015}, +howpublished = {\url{https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard}}, +note = {[20-09-2015]}} + +@misc{wikikernel, +author = {{W}ikipedia Project}, +title = {What is the Fedora Project?}, +year = {2015}, +howpublished = {\url{https://es.wikipedia.org/wiki/N%C3%BAcleo_(inform%C3%A1tica)}}, +note = {[16-09-2015]}} + +@misc{wikikernel1, +author = {{W}ikipedia Project}, +title = {Linux kernel}, +year = {2015}, +howpublished = {\url{ https://en.wikipedia.org/wiki/Linux_kernel#2.6.x.y_releases)}}, +note = {[16-09-2015]}} + +@misc{xhost, +author = {Scheifler B., Gettys J.}, +title = {xhost man page}, +year = {}, +howpublished = {\url{http://www.x.org/archive/X11R7.5/doc/man/man1/xhost.1.html}}, +note = {[19-09-2015]}} + + diff --git a/miscitas.bib.backup b/miscitas.bib.backup new file mode 100644 index 0000000..30a55e8 --- /dev/null +++ b/miscitas.bib.backup @@ -0,0 +1,161 @@ +@ARTICLE{aliakbar, + author = "Ali Akbar M., Farooq M., Zubair Rafuique M.", + title = "{E}valuating {D}oS {A}ttacks {A}gainst {S}IP-based {V}oIP {S}ystems", + journal = "Global Telecommunications Conference, 2009. GLOBECOM 2009. IEEE Volumen Anual", + year = "2009", + pages = "1--6"} + +@BOOK{camarillo, + title = "{S}IP {D}emystified", + publisher = "Ed. McGraw-Hill", + year = "2002", + author = "{C}amarillo G.", + address = "USA"} + +@PHDTHESIS{nassarm, + author = "{N}assar M.", + title = "VoIP {N}etworks {M}onitoring and {I}nstrusion {D}etection", + school = "Universidad Henri Poincaré", + year = "2009", + type = "Tesis de Doctorado", + address = "Francia"} + +@misc{debiansudo, +author = {{D}ebian org}, +title = {sudo}, +year = {2014}, +howpublished = {\url{https://wiki.debian.org/sudo)}}, +note = {[20-09-2015]}} + +@misc{digitalocean, +author = {{D}igitalOcean™ Inc.}, +title = {{H}ow To Use Find and Locate to Search for Files on a Linux VPS}, +year = {2015}, +howpublished = {\url{https://www.digitalocean.com/community/tutorials/how-to-use-find-and-locate-to-search-for-files-on-a-linux-vps}}, +note = {[03-10-2015]}} + +@misc{fedoraproject, +author = {{R}ed Hat, Inc.}, +title = {{F}edora Project Wiki - What is the Fedora Project?}, +year = {2015}, +howpublished = {\url{https://fedoraproject.org/wiki/Fedora_Project_Wiki)}}, +note = {[16-09-2015]}} + +@book{linuxbible, + title = {Linux Bible}, + author = {Christopher Negus}, + publisher = {Wiley}, + isbn = {1118999878,9781118999875,978-1-118-99989-9,978-1-118-99988-2}, + year = {2015}, + series = {}, + edition = {9}, + volume = {}, + url = {http://gen.lib.rus.ec/book/index.php?md5=4f9db7cfdfdcd907cf9d1333f40f8fad} +} + +@misc{linuxkernel, +author = {{L}inux Kernel Organization Inc.}, +title = {The Linux Kernel Archives: Frequently asked questions}, +year = {2014}, +howpublished = {\url{https://www.kernel.org/category/faq.html)}}, +note = {[16-09-2015]}} + +@misc{linuxkernel1, +author = {{L}inux Kernel Organization Inc.}, +title = {The Linux Kernel Archives}, +year = {2014}, +howpublished = {\url{https://www.kernel.org)}}, +note = {[16-09-2015]}} + +@misc{mirizioe, +author = {{M}irizio {E}.}, +title = {Guía Teórica - Diplomatura Linux Modulo 1}, +year = {2015}, +howpublished = {\url{http://www.di.artec.unc.edu.ar/course/view.php?id=4§ion=2)}}, +note = {[20-09-2015]}} + +@misc{mirizioe2, +author = {{M}irizio {E}.}, +title = {Guía Teórica - Diplomatura Linux Modulo 7}, +year = {2015}, +howpublished = {\url{http://www.di.artec.unc.edu.ar/pluginfile.php/8003/mod_resource/content/1/Tips_Scripts.txt}}, +note = {[06-12-2015]}} + +@misc{osamu, +author = {{O}samu {A}oki}, +title = {Debian Reference - Chapter 1. GNU/Linux tutorials - 1.1.6. Virtual consoles}, +year = {2013}, +howpublished = {\url{https://www.debian.org/doc/manuals/debian-reference/ch01.en.html#_virtual_consoles)}}, +note = {[19-09-2015]}} + +@misc{tldpre, +author = {{H}ogbin E., {K}omarinski M., Merril D.}, +title = {The Linux Documentation Project: A Brief Introduction to Regular Expressions}, +year = {2005}, +howpublished = {\url{http://tldp.org/LDP/abs/html/x17129.html#FTN.AEN17134}}, +note = {[01-11-2015]}} + +@misc{serverschool, +author = {{H}osting {N}ews LLC}, +title = {Dedicated Server School: Using the Linux “history” command}, +year = {2010}, +howpublished = {\url{http://www.serverschool.com/dedicated-servers/using-the-linux-history-command/}}, +note = {[02-11-2015]}} + +@misc{tecmint, +author = {{S}hrestha {N}.}, +title = {Tecmint: The Power of Linux “History Command” in Bash Shell}, +year = {2015}, +howpublished = {\url{http://www.tecmint.com/history-command-examples/}}, +note = {[02-11-2015]}} + +@misc{tldphist, +author = {{H}ogbin E., {K}omarinski M., Merril D.}, +title = {The Linux Documentation Project: The command-line history}, +year = {2005}, +howpublished = {\url{http://www.tldp.org/LDP/GNU-Linux-Tools-Summary/html/x1712.htm}}, +note = {[02-11-2015]}} + +@misc{utlai, +author = {{A}sociación Cultural U.T.L.A.I. (Cantabria - España)}, +title = {Enlaces de ficheros: enlaces duros y enlaces simbólicos.}, +year = {2009}, +howpublished = {\url{ http://www.nodo50.org/utlai/linux/27010712.htm}}, +note = {[03-10-2015]}} + +@misc{vivkg, +author = {{V}ivek {G}.}, +title = {How do I Compress a Whole Linux or UNIX Directory}, +year = {2006}, +howpublished = {\url{http://www.cyberciti.biz/faq/how-do-i-compress-a-whole-linux-or-unix-directory}}, +note = {[04-10-2015]}} + +@misc{wikifhs, +author = {{W}ikipedia Project}, +title = {Filesystem Hierarchy Standard}, +year = {2015}, +howpublished = {\url{https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard}}, +note = {[20-09-2015]}} + +@misc{wikikernel, +author = {{W}ikipedia Project}, +title = {What is the Fedora Project?}, +year = {2015}, +howpublished = {\url{https://es.wikipedia.org/wiki/N%C3%BAcleo_(inform%C3%A1tica)}}, +note = {[16-09-2015]}} + +@misc{wikikernel1, +author = {{W}ikipedia Project}, +title = {Linux kernel}, +year = {2015}, +howpublished = {\url{ https://en.wikipedia.org/wiki/Linux_kernel#2.6.x.y_releases)}}, +note = {[16-09-2015]}} + +@misc{xhost, +author = {Scheifler B., Gettys J.}, +title = {xhost man page}, +year = {}, +howpublished = {\url{http://www.x.org/archive/X11R7.5/doc/man/man1/xhost.1.html}}, +note = {[19-09-2015]}} + + diff --git a/miscitas.log b/miscitas.log new file mode 100644 index 0000000..7bc693a --- /dev/null +++ b/miscitas.log @@ -0,0 +1,3593 @@ +This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) (format=pdflatex 2015.9.14) 1 NOV 2015 18:12 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**miscitas.bib +(./miscitas.bib +LaTeX2e <2011/06/27> +Babel <3.9h> and hyphenation patterns for 7 languages loaded. + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.1 @ + ARTICLE{aliakbar, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no Z in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 6 in font nullfont! +Missing character: There is no " in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 1--7 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.8 @ + BOOK{camarillo, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no K in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no " in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 8--14 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.15 @ + PHDTHESIS{nassarm, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no " in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no " in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 15--22 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.23 @ + misc{debiansudo, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.27 howpublished = {\url + {https://wiki.debian.org/sudo)}}, +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no ] in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 23--29 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.30 @ + misc{digitalocean, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.34 howpublished = {\url + {https://www.digitalocean.com/community/tutorials/h... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no ] in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 30--36 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.37 @ + misc{fedoraproject, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ? in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.41 howpublished = {\url + {https://fedoraproject.org/wiki/Fedora_Project_Wiki... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +! Missing $ inserted. + + $ +l.41 ...url{https://fedoraproject.org/wiki/Fedora_ + Project_Wiki)}}, +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 41. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 41. +! Extra }, or forgotten $. +l.41 ...doraproject.org/wiki/Fedora_Project_Wiki)} + }, +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +l.41 ...oraproject.org/wiki/Fedora_Project_Wiki)}} + , +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +l.42 note = {[16-09-2015]}} + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.43 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +Overfull \hbox (20.0pt too wide) in paragraph at lines 37--43 +[] + [] + + +Overfull \hbox (93.10387pt too wide) in paragraph at lines 37--43 +[]\OML/cmm/m/it/10 roject[]iki\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 ; note \OT1/cmr +/m/n/10 = + [] + + +Overfull \hbox (69.99997pt too wide) in paragraph at lines 37--43 +[]$ + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.44 @ + book{linuxbible, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no 7 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 7 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no 7 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 7 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 7 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no ? in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no 7 in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 7 in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no 8 in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no d in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 44--55 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.56 @ + misc{linuxkernel, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no K in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no K in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.60 howpublished = {\url + {https://www.kernel.org/category/faq.html)}}, +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 6 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no ] in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 56--62 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.63 @ + misc{linuxkernel1, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no K in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no K in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.67 howpublished = {\url + {https://www.kernel.org)}}, +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 6 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no ] in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 63--69 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.70 @ + misc{mirizioe, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no M in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.74 howpublished = {\url + {http://www.di.artec.unc.edu.ar/course/view.php?id=... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no ? in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 4 in font nullfont! +! Misplaced alignment tab character &. +l.74 ....di.artec.unc.edu.ar/course/view.php?id=4& + section=2)}}, +I can't figure out why you would want to use a tab mark +here. If you just want an ampersand, the remedy is +simple: Just type `I\&' now. But if some right brace +up above has ended a previous alignment prematurely, +you're probably due for more error messages, and you +might try typing `S' now just to see what is salvageable. + +Missing character: There is no s in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no ] in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 70--76 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.77 @ + misc{osamu, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no O in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 6 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.81 howpublished = {\url + {https://www.debian.org/doc/manuals/debian-referenc... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +! You can't use `macro parameter character #' in horizontal mode. +l.81 ...doc/manuals/debian-reference/ch01.en.html# + _virtual_consoles)}}, +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +! Missing $ inserted. + + $ +l.81 ...oc/manuals/debian-reference/ch01.en.html#_ + virtual_consoles)}}, +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Extra }, or forgotten $. +l.81 ...reference/ch01.en.html#_virtual_consoles)} + }, +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +l.81 ...eference/ch01.en.html#_virtual_consoles)}} + , +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +l.82 note = {[19-09-2015]}} + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.83 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +Overfull \hbox (20.0pt too wide) in paragraph at lines 77--83 +[] + [] + + +Overfull \hbox (105.57924pt too wide) in paragraph at lines 77--83 +[]\OML/cmm/m/it/10 irtual[]onsoles\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 ; note \OT1 +/cmr/m/n/10 = + [] + + +Overfull \hbox (69.99997pt too wide) in paragraph at lines 77--83 +[]$ + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.84 @ + misc{utlai, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no T in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no A in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no ( in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no ) in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no E in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.88 howpublished = {\url + { http://www.nodo50.org/utlai/linux/27010712.htm}}, +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 7 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 7 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 3 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no ] in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 84--90 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.91 @ + misc{vikg, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no V in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no C in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no U in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no I in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no D in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 6 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.95 howpublished = {\url + {http://www.cyberciti.biz/faq/how-do-i-compress-a-w... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no z in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no q in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 4 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no ] in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 91--97 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.98 @ + misc{wikifhs, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no H in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.102 howpublished = {\url + {https://en.wikipedia.org/wiki/Filesystem_Hierarch... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no m in font nullfont! +! Missing $ inserted. + + $ +l.102 ...https://en.wikipedia.org/wiki/Filesystem_ + Hierarchy_Standard}}, +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! Extra }, or forgotten $. +l.102 ...a.org/wiki/Filesystem_Hierarchy_Standard} + }, +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +l.102 ....org/wiki/Filesystem_Hierarchy_Standard}} + , +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +l.103 note = {[20-09-2015]}} + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.104 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +Overfull \hbox (20.0pt too wide) in paragraph at lines 98--104 +[] + [] + + +Overfull \hbox (120.837pt too wide) in paragraph at lines 98--104 +[]\OML/cmm/m/it/10 ierarchy[]tandard; note \OT1/cmr/m/n/10 = + [] + + +Overfull \hbox (69.99997pt too wide) in paragraph at lines 98--104 +[]$ + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.105 @ + misc{wikikernel, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no F in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no ? in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.109 howpublished = {\url + {https://es.wikipedia.org/wiki/N%C3%BAcleo_(inform... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no N in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 6 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no ] in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 105--111 +[] + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.112 @ + misc{wikikernel1, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no W in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no P in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no j in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.116 howpublished = {\url + { https://en.wikipedia.org/wiki/Linux_kernel#2.6.x... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no k in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no L in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no x in font nullfont! +! Missing $ inserted. + + $ +l.116 ...url{ https://en.wikipedia.org/wiki/Linux_ + kernel#2.6.x.y_releases)}}, +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + +! You can't use `macro parameter character #' in math mode. +l.116 ...tps://en.wikipedia.org/wiki/Linux_kernel# + 2.6.x.y_releases)}}, +Sorry, but I'm not programmed to handle this case; +I'll just pretend that you didn't ask for it. +If you're in the wrong mode, you might be able to +return to the right one by typing `I}' or `I$' or `I\par'. + +! Extra }, or forgotten $. +l.116 ....org/wiki/Linux_kernel#2.6.x.y_releases)} + }, +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +l.116 ...org/wiki/Linux_kernel#2.6.x.y_releases)}} + , +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Extra }, or forgotten $. +l.117 note = {[16-09-2015]}} + +I've deleted a group-closing symbol because it seems to be +spurious, as in `$x}$'. But perhaps the } is legitimate and +you forgot something else, as in `\hbox{$x}'. In such cases +the way to recover is to insert both the forgotten and the +deleted material, e.g., by typing `I$}'. + +! Missing $ inserted. + + $ +l.118 + +I've inserted a begin-math/end-math symbol since I think +you left one out. Proceed, with fingers crossed. + + +Overfull \hbox (20.0pt too wide) in paragraph at lines 112--118 +[] + [] + + +Overfull \hbox (131.40076pt too wide) in paragraph at lines 112--118 +[]\OML/cmm/m/it/10 ernel\OT1/cmr/m/n/10 2\OML/cmm/m/it/10 :\OT1/cmr/m/n/10 6\OM +L/cmm/m/it/10 :x:y[]eleases\OT1/cmr/m/n/10 )\OML/cmm/m/it/10 ; note \OT1/cmr/m/ +n/10 = + [] + + +Overfull \hbox (69.99997pt too wide) in paragraph at lines 112--118 +[]$ + [] + + +! LaTeX Error: Missing \begin{document}. + +See the LaTeX manual or LaTeX Companion for explanation. +Type H for immediate help. + ... + +l.119 @ + misc{xhost, +You're in trouble here. Try typing to proceed. +If that doesn't work, type X to quit. + +Missing character: There is no @ in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no S in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no f in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no B in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no G in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no J in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no y in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no u in font nullfont! +Missing character: There is no b in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no = in font nullfont! +! Undefined control sequence. +l.123 howpublished = {\url + {http://www.x.org/archive/X11R7.5/doc/man/man1/xho... +The control sequence at the end of the top line +of your error message was never \def'ed. If you have +misspelled it (e.g., `\hobx'), type `I' and the correct +spelling (e.g., `I\hbox'). Otherwise just continue, +and I'll forget about whatever was undefined. + +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no p in font nullfont! +Missing character: There is no : in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no w in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no g in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no r in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no i in font nullfont! +Missing character: There is no v in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no X in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no R in font nullfont! +Missing character: There is no 7 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no d in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no c in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no a in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no / in font nullfont! +Missing character: There is no x in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no s in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no . in font nullfont! +Missing character: There is no h in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no m in font nullfont! +Missing character: There is no l in font nullfont! +Missing character: There is no , in font nullfont! +Missing character: There is no n in font nullfont! +Missing character: There is no o in font nullfont! +Missing character: There is no t in font nullfont! +Missing character: There is no e in font nullfont! +Missing character: There is no = in font nullfont! +Missing character: There is no [ in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 9 in font nullfont! +Missing character: There is no - in font nullfont! +Missing character: There is no 2 in font nullfont! +Missing character: There is no 0 in font nullfont! +Missing character: There is no 1 in font nullfont! +Missing character: There is no 5 in font nullfont! +Missing character: There is no ] in font nullfont! + +Overfull \hbox (20.0pt too wide) in paragraph at lines 119--125 +[] + [] + +) +! Emergency stop. +<*> miscitas.bib + +*** (job aborted, no legal \end found) + + +Here is how much of TeX's memory you used: + 8 strings out of 494925 + 169 string characters out of 6178544 + 47234 words of memory out of 5000000 + 3332 multiletter control sequences out of 15000+600000 + 3640 words of font info for 14 fonts, out of 8000000 for 9000 + 62 hyphenation exceptions out of 8191 + 18i,2n,12p,149b,62s stack positions out of 5000i,500n,10000p,200000b,80000s +! ==> Fatal error occurred, no output PDF file produced!