|
@@ -1,18 +1,22 @@
|
|
|
-\documentclass{article}
|
|
|
+\documentclass{report}
|
|
|
\usepackage[T1] {fontenc}
|
|
|
\usepackage[italian]{babel}
|
|
|
|
|
|
% Per i link nell'indice
|
|
|
\usepackage{hyperref}
|
|
|
|
|
|
-\title{OpenLab Virtual 2021\\GNU/Linux Intro, Tips \& Tricks}
|
|
|
+\title{OpenLab Virtual 2021}
|
|
|
\author{Matteo Savatteri}
|
|
|
|
|
|
\begin{document}
|
|
|
\maketitle
|
|
|
+\setcounter{page}{2}
|
|
|
+
|
|
|
|
|
|
\tableofcontents
|
|
|
|
|
|
+\chapter{GNU/Linux Intro, Tips \& Tricks}
|
|
|
+
|
|
|
\section{Introduzione}
|
|
|
\begin{itemize}
|
|
|
\item Benvenuto e ringraziamenti ad admin e pubblico
|
|
@@ -119,6 +123,24 @@ Perhé un fisico dovrebbe conoscere ed utilizzare il sistema \texttt{GNU/Linux}?
|
|
|
\item Tutte le persone dovrebbero usare un OS Libero, per ragioni etiche
|
|
|
\end{itemize}
|
|
|
|
|
|
+\section{Presentazioni ospiti}
|
|
|
+\begin{itemize}
|
|
|
+\item Ospiti: Zec, Sboz, Blue, Algebrato (?)
|
|
|
+\item 5 min a testa
|
|
|
+\item Domande
|
|
|
+\end{itemize}
|
|
|
+
|
|
|
+\section{Chiusura}
|
|
|
+\begin{itemize}
|
|
|
+\item Repo dell'\emph{OpenLab}, cosa trovate, licenza
|
|
|
+\item Contatti LCM: sito, gruppo community, mail
|
|
|
+\item Saluti
|
|
|
+\end{itemize}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+\chapter{CLI Essential and Shell Programming}
|
|
|
+
|
|
|
\section{Nozioni e Strumenti}
|
|
|
\subsection{Setup}
|
|
|
\begin{itemize}
|
|
@@ -176,19 +198,43 @@ Perhé un fisico dovrebbe conoscere ed utilizzare il sistema \texttt{GNU/Linux}?
|
|
|
\item \`E interprete dei comandi e linguaggio di scripting
|
|
|
\item Se chiamata come \texttt{sh} o con la flag \texttt{--posix}
|
|
|
comportamento conforme al POSIX (\texttt{sh})
|
|
|
-\item Alcune feature:
|
|
|
+\item Feature:
|
|
|
\begin{itemize}
|
|
|
- \item Redirezione in e out $\rightarrow$ \texttt{>}, \texttt{>>}, \texttt{<}
|
|
|
- \item Pipeline $\rightarrow$ \texttt{|}
|
|
|
+ \item Esecuzione di comandi $\rightarrow$ Se no slash: ricerca
|
|
|
+ $\rightarrow$ funzioni, builtin, \texttt{PATH} (\texttt{hash})
|
|
|
+ $\rightarrow$ Esecuzione con assegnazione argomenti
|
|
|
+ \item Shell scripts
|
|
|
+ \item Enviroment (\texttt{export})
|
|
|
+ \item Simple commands $\rightarrow$ \emph{``A simple command is a sequence of optional
|
|
|
+ variable assignments followed by blank-separated words and redirections,
|
|
|
+ and terminated by a control operator.''}
|
|
|
+ \item Pipeline $\rightarrow$ \texttt{|}, \texttt{|\&}, \textbf{in subshell}
|
|
|
\item Liste di comandi $\rightarrow$ \texttt{;}, \texttt{\&}, \texttt{\&\&}, \texttt{||}
|
|
|
- \item \texttt{$\sim$} expansion
|
|
|
- \item Parametri $\rightarrow$ definizione, valutazione, variabili speciali (in particolare
|
|
|
- \texttt{PATH})
|
|
|
- \item Cicli e condizioni: \texttt{if}, \texttt{for}, \texttt{while}
|
|
|
+ \item Compound commands $\rightarrow$ \texttt{(list)}, \texttt{\{ list; \}}, \texttt{((expression))},
|
|
|
+ \texttt{if}, \texttt{for} (due tipi), \texttt{while}, \texttt{until}, \texttt{case}
|
|
|
+ \item Shell functions $\rightarrow$ \texttt{fname () compound-command [redirection]}
|
|
|
+ \item Coprocesses $\rightarrow$ \texttt{coproc [NAME] command [redirections]}
|
|
|
+ \item Commenti $\rightarrow$ \texttt{\#}
|
|
|
+ \item Quoting
|
|
|
+ \item Parametri $\rightarrow$ \emph{``A parameter is an entity that stores values.''},
|
|
|
+ \emph{``A variable is a parameter denoted by a name.''},
|
|
|
+ definizione, valutazione, parametri speciali (\texttt{*}, \texttt{@}, \texttt{\#}, \texttt{?},
|
|
|
+ \texttt{-},\texttt{\$},\texttt{!} (job), \texttt{0})
|
|
|
+ e variabili speciali (in particolare \texttt{PATH}), namerefs (\texttt{declare -n ref=VAR}),
|
|
|
+ \texttt{declare} builtin
|
|
|
+ \item Array $\rightarrow$ \texttt{name=(value1 ... valuen)}
|
|
|
+ \item Espansione $\rightarrow$ brace expansion, tilde expansion,
|
|
|
+ parameter and variable expansion, command substitution, arithmetic expansion,
|
|
|
+ word splitting, and pathname expansion
|
|
|
+ \item Redirezione $\rightarrow$ \texttt{>}, \texttt{>>}, \texttt{<}, nomi file spaciali,
|
|
|
+ \emph{Here Documents} \texttt{[n]<<[-]word ... delim}, \emph{Here Strings}
|
|
|
+ \texttt{[n] < < < word}, duplicating file descriptors \texttt{[n]>\&word} (analogo
|
|
|
+ per input, moving file descriptors \texttt{[n]>\&digit-} (analogo input),
|
|
|
+ opening file descriptors for reading and writing \texttt{[n]<>word}.
|
|
|
\item \texttt{history}
|
|
|
- \item \emph{Tab completion}
|
|
|
- \item Glob $\rightarrow$ \texttt{*}, \texttt{?}
|
|
|
- \item Esempio di script: \texttt{hello.sh}
|
|
|
+ \item Tab completion
|
|
|
+ \item Job control
|
|
|
+ \item Builtins (Vedi man page)
|
|
|
\end{itemize}
|
|
|
\end{itemize}
|
|
|
|
|
@@ -273,14 +319,6 @@ Regole per documentarsi:
|
|
|
\item \texttt{command}
|
|
|
\item \texttt{true}
|
|
|
\item \texttt{false}
|
|
|
-
|
|
|
-\end{itemize}
|
|
|
-
|
|
|
-\section{Presentazioni ospiti}
|
|
|
-\begin{itemize}
|
|
|
-\item Ospiti: Zec, Sboz, Blue, Algebrato (?)
|
|
|
-\item 5 min a testa
|
|
|
-\item Domande
|
|
|
\end{itemize}
|
|
|
|
|
|
\section{Chiusura}
|