diff options
author | Jovina | 2011-12-01 15:23:21 +0530 |
---|---|---|
committer | Jovina | 2011-12-01 15:23:21 +0530 |
commit | 718d6c517c7b69de8927f13561c1432453012b6e (patch) | |
tree | ea497d2d5484de9b326433cedb624a5b8b0f7e2f | |
parent | 994f86c30fac8fae90b925f19ed07daf14f7c31c (diff) | |
download | sees-718d6c517c7b69de8927f13561c1432453012b6e.tar.gz sees-718d6c517c7b69de8927f13561c1432453012b6e.tar.bz2 sees-718d6c517c7b69de8927f13561c1432453012b6e.zip |
Changes in 'advanced_python'.
41 files changed, 7683 insertions, 162 deletions
diff --git a/advanced_python/data/company-a-data.txt b/advanced_python/data/company-a-data.txt new file mode 100644 index 0000000..06f4ca4 --- /dev/null +++ b/advanced_python/data/company-a-data.txt @@ -0,0 +1,2 @@ +2.000000000000000000e+03 2.001000000000000000e+03 2.002000000000000000e+03 2.003000000000000000e+03 2.004000000000000000e+03 2.005000000000000000e+03 2.006000000000000000e+03 2.007000000000000000e+03 2.008000000000000000e+03 2.009000000000000000e+03 2.010000000000000000e+03 +2.300000000000000000e+01 5.500000000000000000e+01 3.200000000000000000e+01 6.500000000000000000e+01 8.800000000000000000e+01 5.000000000000000000e+00 1.400000000000000000e+01 6.700000000000000000e+01 2.300000000000000000e+01 2.300000000000000000e+01 1.200000000000000000e+01 diff --git a/advanced_python/data/error-bar.png b/advanced_python/data/error-bar.png Binary files differnew file mode 100644 index 0000000..cc1a454 --- /dev/null +++ b/advanced_python/data/error-bar.png diff --git a/advanced_python/images/L-Tsq.png b/advanced_python/images/L-Tsq.png Binary files differnew file mode 100644 index 0000000..cc1a454 --- /dev/null +++ b/advanced_python/images/L-Tsq.png diff --git a/advanced_python/images/bar.png b/advanced_python/images/bar.png Binary files differnew file mode 100644 index 0000000..cee54fb --- /dev/null +++ b/advanced_python/images/bar.png diff --git a/advanced_python/images/cosine.png b/advanced_python/images/cosine.png Binary files differnew file mode 100644 index 0000000..2b15a32 --- /dev/null +++ b/advanced_python/images/cosine.png diff --git a/advanced_python/images/loglog.png b/advanced_python/images/loglog.png Binary files differnew file mode 100644 index 0000000..824b9f1 --- /dev/null +++ b/advanced_python/images/loglog.png diff --git a/advanced_python/images/lst-sq-fit.png b/advanced_python/images/lst-sq-fit.png Binary files differnew file mode 100644 index 0000000..7e9dfe2 --- /dev/null +++ b/advanced_python/images/lst-sq-fit.png diff --git a/advanced_python/images/overlaid.png b/advanced_python/images/overlaid.png Binary files differnew file mode 100644 index 0000000..41e1891 --- /dev/null +++ b/advanced_python/images/overlaid.png diff --git a/advanced_python/images/pie.png b/advanced_python/images/pie.png Binary files differnew file mode 100644 index 0000000..7791e54 --- /dev/null +++ b/advanced_python/images/pie.png diff --git a/advanced_python/images/plot.png b/advanced_python/images/plot.png Binary files differnew file mode 100644 index 0000000..89cbc46 --- /dev/null +++ b/advanced_python/images/plot.png diff --git a/advanced_python/images/scatter.png b/advanced_python/images/scatter.png Binary files differnew file mode 100644 index 0000000..66bd5d8 --- /dev/null +++ b/advanced_python/images/scatter.png diff --git a/advanced_python/images/sine.png b/advanced_python/images/sine.png Binary files differnew file mode 100644 index 0000000..7667886 --- /dev/null +++ b/advanced_python/images/sine.png diff --git a/advanced_python/images/slice.png b/advanced_python/images/slice.png Binary files differnew file mode 100644 index 0000000..7f53d2a --- /dev/null +++ b/advanced_python/images/slice.png diff --git a/advanced_python/images/squares.png b/advanced_python/images/squares.png Binary files differnew file mode 100644 index 0000000..ee102e6 --- /dev/null +++ b/advanced_python/images/squares.png diff --git a/advanced_python/images/subplot.png b/advanced_python/images/subplot.png Binary files differnew file mode 100644 index 0000000..2c1a662 --- /dev/null +++ b/advanced_python/images/subplot.png diff --git a/advanced_python/slides/arrays.tex b/advanced_python/slides/arrays.tex index 7b829f9..e4501c8 100644 --- a/advanced_python/slides/arrays.tex +++ b/advanced_python/slides/arrays.tex @@ -7,49 +7,48 @@ \item Much faster than arrays \end{itemize} \begin{lstlisting} - a1 = array([1,2,3,4]) - a1 # 1-D - a2 = array([[1,2,3,4],[5,6,7,8]]) - a2 # 2-D + In[]: a1 = array([1,2,3,4]) + In[]: a1 # 1-D + In[]: a2 = array([[1,2,3,4],[5,6,7,8]]) + In[]: a2 # 2-D \end{lstlisting} \end{frame} \begin{frame}[fragile] \frametitle{\texttt{arange} and \texttt{shape}} \begin{lstlisting} - ar1 = arange(1, 5) - - ar2 = arange(1, 9) - print ar2 - ar2.shape = 2, 4 - print ar2 + In[]: ar1 = arange(1, 5) + In[]: ar2 = arange(1, 9) + In[]: print ar2 + In[]: ar2.shape = 2, 4 + In[]: print ar2 \end{lstlisting} \begin{itemize} \item \texttt{linspace} and \texttt{loadtxt} also returned arrays \end{itemize} \begin{lstlisting} - ar1.shape - ar2.shape + In[]: ar1.shape + In[]: ar2.shape \end{lstlisting} \end{frame} \begin{frame}[fragile] \frametitle{Special methods} \begin{lstlisting} - identity(3) + In[]: identity(3) \end{lstlisting} \begin{itemize} \item array of shape (3, 3) with diagonals as 1s, rest 0s \end{itemize} \begin{lstlisting} - zeros((4,5)) + In[]: zeros((4,5)) \end{lstlisting} \begin{itemize} \item array of shape (4, 5) with all 0s \end{itemize} \begin{lstlisting} - a = zeros_like([1.5, 1, 2, 3]) - print a, a.dtype + In[]: a = zeros_like([1.5, 1, 2, 3]) + In[]: print a, a.dtype \end{lstlisting} \begin{itemize} \item An array with all 0s, with similar shape and dtype as argument @@ -61,17 +60,17 @@ \begin{frame}[fragile] \frametitle{Operations on arrays} \begin{lstlisting} - a1 - a1 * 2 - a1 + In[]: a1 + In[]: a1 * 2 + In[]: a1 \end{lstlisting} \begin{itemize} \item The array is not changed; New array is returned \end{itemize} \begin{lstlisting} - a1 + 3 - a1 - 7 - a1 / 2.0 + In[]: a1 + 3 + In[]: a1 - 7 + In[]: a1 / 2.0 \end{lstlisting} \end{frame} @@ -81,25 +80,25 @@ \item Like lists, we can assign the new array, the old name \end{itemize} \begin{lstlisting} - a1 = a1 + 2 - a1 + In[]: a1 = a1 + 2 + In[]: a1 \end{lstlisting} \begin{itemize} \item \alert{Beware of Augmented assignment!} \end{itemize} \begin{lstlisting} - a, b = arange(1, 5), arange(1, 5) - print a, a.dtype, b, b.dtype - a = a/2.0 - b /= 2.0 - print a, a.dtype, b, b.dtype + In[]: a, b = arange(1, 5), arange(1, 5) + In[]: print a, a.dtype, b, b.dtype + In[]: a = a/2.0 + In[]: b /= 2.0 + In[]: print a, a.dtype, b, b.dtype \end{lstlisting} \begin{itemize} \item Operations on two arrays; element-wise \end{itemize} \begin{lstlisting} - a1 + a1 - a1 * a2 + In[]: a1 + a1 + In[]: a1 * a2 \end{lstlisting} \end{frame} @@ -108,24 +107,24 @@ \begin{frame}[fragile] \frametitle{Accessing \& changing elements} \begin{lstlisting} - A = array([12, 23, 34, 45, 56]) + In[]: A = array([12, 23, 34, 45, 56]) - C = array([[11, 12, 13, 14, 15], - [21, 22, 23, 24, 25], - [31, 32, 33, 34, 35], - [41, 42, 43, 44, 45], - [51, 52, 53, 54, 55]]) + In[]: C = array([[11, 12, 13, 14, 15], + [21, 22, 23, 24, 25], + [31, 32, 33, 34, 35], + [41, 42, 43, 44, 45], + [51, 52, 53, 54, 55]]) - A[2] - C[2, 3] + In[]: A[2] + In[]: C[2, 3] \end{lstlisting} \begin{itemize} \item Indexing starts from 0 \item Assign new values, to change elements \end{itemize} \begin{lstlisting} - A[2] = -34 - C[2, 3] = -34 + In[]: A[2] = -34 + In[]: C[2, 3] = -34 \end{lstlisting} \end{frame} @@ -135,49 +134,49 @@ \item Indexing works just like with lists \end{itemize} \begin{lstlisting} - C[2] - C[4] - C[-1] + In[]: C[2] + In[]: C[4] + In[]: C[-1] \end{lstlisting} \begin{itemize} \item Change the last row into all zeros \end{itemize} \begin{lstlisting} - C[-1] = [0, 0, 0, 0, 0] + In[]: C[-1] = [0, 0, 0, 0, 0] \end{lstlisting} OR \begin{lstlisting} - C[-1] = 0 + In[]: C[-1] = 0 \end{lstlisting} \end{frame} \begin{frame}[fragile] \frametitle{Accessing columns} \begin{lstlisting} - C[:, 2] - C[:, 4] - C[:, -1] + In[]: C[:, 2] + In[]: C[:, 4] + In[]: C[:, -1] \end{lstlisting} \begin{itemize} \item The first parameter is replaced by a \texttt{:} to specify we require all elements of that dimension \end{itemize} \begin{lstlisting} - C[:, -1] = 0 + In[]: C[:, -1] = 0 \end{lstlisting} \end{frame} \begin{frame}[fragile] \frametitle{Slicing} \begin{lstlisting} - I = imread('squares.png') - imshow(I) + In[]: I = imread('squares.png') + In[]: imshow(I) \end{lstlisting} \begin{itemize} \item The image is just an array \end{itemize} \begin{lstlisting} - print I, I.shape + In[]: print I, I.shape \end{lstlisting} \begin{enumerate} \item Get the top left quadrant of the image @@ -191,17 +190,24 @@ \item Slicing works just like with lists \end{itemize} \begin{lstlisting} - C[0:3, 2] - C[2, 0:3] - C[2, :3] + In[]: C[0:3, 2] + In[]: C[2, 0:3] + In[]: C[2, :3] \end{lstlisting} \begin{lstlisting} - imshow(I[:150, :150]) + In[]: imshow(I[:150, :150]) - imshow(I[75:225, 75:225]) + In[]: imshow(I[75:225, 75:225]) \end{lstlisting} \end{frame} +\begin{frame} +\frametitle{Image after slicing} +\includegraphics[scale=0.45]{../advanced_python/images/slice.png}\\ +\end{frame} + + + \begin{frame}[fragile] \frametitle{Striding} \begin{itemize} @@ -211,15 +217,15 @@ \item The idea is similar to striding in lists \end{itemize} \begin{lstlisting} - C[0:5:2, 0:5:2] - C[::2, ::2] - C[1::2, ::2] + In[]: C[0:5:2, 0:5:2] + In[]: C[::2, ::2] + In[]: C[1::2, ::2] \end{lstlisting} \begin{itemize} \item Now, the image can be shrunk by \end{itemize} \begin{lstlisting} - imshow(I[::2, ::2]) + In[]: imshow(I[::2, ::2]) \end{lstlisting} \end{frame} @@ -252,12 +258,13 @@ \begin{frame}[fragile] \frametitle{Least Square Fit} \begin{lstlisting} - l, t = loadtxt("pendulum.txt", unpack=True) - l - t - tsq = t * t - plot(l, tsq, 'bo') - plot(l, tsq, 'r') + In[]: L, t = loadtxt("pendulum.txt", + unpack=True) + In[]: L + In[]: t + In[]: tsq = t * t + In[]: plot(L, tsq, 'bo') + In[]: plot(L, tsq, 'r') \end{lstlisting} \begin{itemize} \item Both the plots, aren't what we expect -- linear plot @@ -295,22 +302,22 @@ \begin{frame}[fragile] \frametitle{Least Square Fit Line} \begin{lstlisting} - A = array((l, ones_like(l))) - A.T - A + In[]: A = array((L, ones_like(L))) + In[]: A.T + In[]: A \end{lstlisting} \begin{itemize} \item We now have \texttt{A} and \texttt{tsq} \end{itemize} \begin{lstlisting} - result = lstsq(A, tsq) + In[]: result = lstsq(A, tsq) \end{lstlisting} \begin{itemize} \item Result has a lot of values along with m and c, that we need \end{itemize} \begin{lstlisting} - m, c = result[0] - print m, c + In[]: m, c = result[0] + In[]: print m, c \end{lstlisting} \end{frame} @@ -320,9 +327,15 @@ \item Now that we have m and c, we use them to generate line and plot \end{itemize} \begin{lstlisting} - tsq_fit = m * l + c - plot(l, tsq, 'bo') - plot(l, tsq_fit, 'r') + In[]: tsq_fit = m * L + c + In[]: plot(L, tsq, 'bo') + In[]: plot(L, tsq_fit, 'r') \end{lstlisting} \end{frame} +\begin{frame} +\frametitle{Least Square Fit Line} +\includegraphics[scale=0.45]{../advanced_python/images/lst-sq-fit.png}\\ +\end{frame} + + diff --git a/advanced_python/slides/modules.tex b/advanced_python/slides/modules.tex index 957789a..d6de640 100644 --- a/advanced_python/slides/modules.tex +++ b/advanced_python/slides/modules.tex @@ -6,13 +6,13 @@ \item Script to print `hello world' -- \texttt{hello.py} \end{itemize} \begin{lstlisting} - print "Hello world!" + print "Hello world!" \end{lstlisting} \begin{itemize} \item We have been running scripts from IPython \end{itemize} \begin{lstlisting} - %run -i hello.py + In[]: %run -i hello.py \end{lstlisting} \begin{itemize} \item Now, we run from the shell using python @@ -28,9 +28,9 @@ \item Save the following in \texttt{sine\_plot.py} \end{itemize} \begin{lstlisting} - x = linspace(-2*pi, 2*pi, 100) - plot(x, sin(x)) - show() + x = linspace(-2*pi, 2*pi, 100) + plot(x, sin(x)) + show() \end{lstlisting} \begin{itemize} \item Now, let us run the script @@ -51,7 +51,7 @@ \item Add the following to the top of your file \end{itemize} \begin{lstlisting} - from scipy import * + from scipy import * \end{lstlisting} \begin{lstlisting} $ python sine_plot.py diff --git a/advanced_python/slides/plotting.tex b/advanced_python/slides/plotting.tex index b8b4bce..fbc7aa2 100644 --- a/advanced_python/slides/plotting.tex +++ b/advanced_python/slides/plotting.tex @@ -9,8 +9,8 @@ $ ipython -pylab \end{lstlisting} % $ \begin{lstlisting} - p = linspace(-pi,pi,100) - plot(p, cos(p)) + In[]: p = linspace(-pi,pi,100) + In[]: plot(p, cos(p)) \end{lstlisting} \end{frame} @@ -20,11 +20,11 @@ \begin{itemize} \item \texttt{p} has a hundred points in the range -pi to pi \begin{lstlisting} - print p[0], p[-1], len(p) + In[]: print p[0], p[-1], len(p) \end{lstlisting} \item Look at the doc-string of \texttt{linspace} for more details \begin{lstlisting} - linspace? + In[]: linspace? \end{lstlisting} \end{itemize} \begin{itemize} @@ -38,50 +38,51 @@ \begin{frame}[fragile] \frametitle{Plot color and thickness} \begin{lstlisting} - clf() - plot(p, sin(p), 'r') + In[]: clf() + In[]: plot(p, sin(p), 'r') \end{lstlisting} \begin{itemize} \item Gives a sine curve in Red. \end{itemize} \begin{lstlisting} - plot(p, cos(p), linewidth=2) + In[]: plot(p, cos(p), linewidth=2) \end{lstlisting} \begin{itemize} \item Sets line thickness to 2 \end{itemize} \begin{lstlisting} - clf() - plot(p, sin(p), '.') + In[]: clf() + In[]: plot(p, sin(p), '.') \end{lstlisting} \begin{itemize} \item Produces a plot with only points \end{itemize} \begin{lstlisting} - plot? + In[]: plot? \end{lstlisting} \end{frame} \begin{frame}[fragile] \frametitle{\texttt{title}} \begin{lstlisting} - x = linspace(-2, 4, 50) - plot(x, -x*x + 4*x - 5, 'r', linewidth=2) - title("Parabolic function -x^2+4x-5") + In[]: x = linspace(-2, 4, 50) + In[]: plot(x, -x*x + 4*x - 5, 'r', + linewidth=2) + In[]: title("Parabolic function -x^2+4x-5") \end{lstlisting} \begin{itemize} \item We can set title using \LaTeX~ \end{itemize} \begin{lstlisting} - title("Parabolic function $-x^2+4x-5$") + In[]: title("Parabolic function $-x^2+4x-5$") \end{lstlisting} \end{frame} \begin{frame}[fragile] \frametitle{Axes labels} \begin{lstlisting} - xlabel("x") - ylabel("f(x)") + In[]: xlabel("x") + In[]: ylabel("f(x)") \end{lstlisting} \begin{itemize} \item We could, if required use \LaTeX~ @@ -91,7 +92,7 @@ \begin{frame}[fragile] \frametitle{Annotate} \begin{lstlisting} - annotate("local maxima", xy=(2, -1)) + In[]: annotate("local maxima", xy=(2, -1)) \end{lstlisting} \begin{itemize} \item First argument is the annotation text @@ -103,8 +104,8 @@ \begin{frame}[fragile] \frametitle{Limits of Plot area} \begin{lstlisting} - xlim() - ylim() + In[]: xlim() + In[]: ylim() \end{lstlisting} \begin{itemize} \item With no arguments, \texttt{xlim} \& \texttt{ylim} get the @@ -112,13 +113,20 @@ \item New limits are set, when arguments are passed to them \end{itemize} \begin{lstlisting} - xlim(-4, 5) + In[]: xlim(-4, 5) \end{lstlisting} \begin{lstlisting} - ylim(-15, 2) + In[]: ylim(-15, 2) \end{lstlisting} \end{frame} +\begin{frame} +\frametitle{Plot} +\includegraphics[scale=0.45]{../advanced_python/images/plot.png}\\ +\end{frame} + + + \section{Saving to Scripts} \begin{frame}[fragile] @@ -126,17 +134,17 @@ \begin{itemize} \item To see the history of commands, we typed \begin{lstlisting} - %hist + In[]: %hist \end{lstlisting} \item All commands, valid or invalid, appear in the history \item \texttt{\%hist} is a magic command, available only in IPython \end{itemize} \begin{lstlisting} - %hist 5 + In[]: %hist 5 # last 5 commands \end{lstlisting} \begin{lstlisting} - %hist 5 10 + In[]: %hist 5 10 # commands between 5 and 10 \end{lstlisting} \end{frame} @@ -150,7 +158,7 @@ \item \texttt{\%save} magic command to save the commands to a file \end{itemize} \begin{lstlisting} - %save plot_script.py 1 3-6 8 + In[]: %save plot_script.py 1 3-6 8 \end{lstlisting} \begin{itemize} \item File name must have a \texttt{.py} extension @@ -160,7 +168,7 @@ \begin{frame}[fragile] \frametitle{Running the script} \begin{lstlisting} - %run -i plot_script.py + In[]: %run -i plot_script.py \end{lstlisting} \begin{itemize} \item There were no errors in the plot, but we don't see it! @@ -168,7 +176,7 @@ \item We need to explicitly ask for the image to be shown \end{itemize} \begin{lstlisting} - show() + In[]: show() \end{lstlisting} \begin{itemize} \item \texttt{-i} asks the interpreter to check for names, @@ -183,9 +191,9 @@ \begin{frame}[fragile] \frametitle{\texttt{savefig}} \begin{lstlisting} - x = linspace(-3*pi,3*pi,100) - plot(x,sin(x)) - savefig('sine.png') + In[]: x = linspace(-3*pi,3*pi,100) + In[]: plot(x,sin(x)) + In[]: savefig('sine.png') \end{lstlisting} \begin{itemize} \item \texttt{savefig} takes one argument @@ -199,16 +207,16 @@ \begin{frame}[fragile] \frametitle{Overlaid plots} \begin{lstlisting} - x = linspace(0, 50, 10) - plot(x, sin(x)) + In[]: x = linspace(0, 50, 10) + In[]: plot(x, sin(x)) \end{lstlisting} \begin{itemize} \item The curve isn't as smooth as we expected \item We chose too few points in the interval \end{itemize} \begin{lstlisting} - y = linspace(0, 50, 500) - plot(y, sin(y)) + In[]: y = linspace(0, 50, 500) + In[]: plot(y, sin(y)) \end{lstlisting} \begin{itemize} \item The plots are overlaid @@ -219,39 +227,48 @@ \begin{frame}[fragile] \frametitle{Legend} \begin{lstlisting} - legend(['sine-10 points', 'sine-500 points']) + In[]: legend(['sine-10 points', + 'sine-500 points']) \end{lstlisting} \begin{itemize} \item Placed in the location, \texttt{pylab} thinks is `best' \item \texttt{loc} parameter allows to change the location \end{itemize} \begin{lstlisting} - legend(['sine-10 points', 'sine-500 points'], + In[]: legend(['sine-10 points', + 'sine-500 points'], loc='center') \end{lstlisting} \end{frame} +\begin{frame} +\frametitle{Overlaid Plots} +\includegraphics[scale=0.45]{../advanced_python/images/overlaid.png}\\ +\end{frame} + + + \begin{frame}[fragile] \frametitle{Plotting in separate figures} \begin{lstlisting} - clf() - x = linspace(0, 50, 500) - figure(1) - plot(x, sin(x), 'b') - figure(2) - plot(x, cos(x), 'g') + In[]: clf() + In[]: x = linspace(0, 50, 500) + In[]: figure(1) + In[]: plot(x, sin(x), 'b') + In[]: figure(2) + In[]: plot(x, cos(x), 'g') \end{lstlisting} \begin{itemize} \item \texttt{figure} command allows us to have plots separately \item It is also used to switch context between the plots \end{itemize} \begin{lstlisting} - savefig('cosine.png') - figure(1) - title('sin(y)') - savefig('sine.png') - close() - close() + In[]: savefig('cosine.png') + In[]: figure(1) + In[]: title('sin(y)') + In[]: savefig('sine.png') + In[]: close() + In[]: close() \end{lstlisting} \begin{itemize} \item \texttt{close('all')} closes all the figures @@ -261,7 +278,7 @@ \begin{frame}[fragile] \frametitle{Subplots} \begin{lstlisting} - subplot(2, 1, 1) + In[]: subplot(2, 1, 1) \end{lstlisting} \begin{itemize} \item number of rows @@ -269,16 +286,23 @@ \item plot number, in serial order, to access or create \end{itemize} \begin{lstlisting} - subplot(2, 1, 2) - x = linspace(0, 50, 500) - plot(x, cos(x)) + In[]: subplot(2, 1, 2) + In[]: x = linspace(0, 50, 500) + In[]: plot(x, cos(x)) - subplot(2, 1, 1) - y = linspace(0, 5, 100) - plot(y, y ** 2) + In[]: subplot(2, 1, 1) + In[]: y = linspace(0, 5, 100) + In[]: plot(y, y ** 2) \end{lstlisting} \end{frame} +\begin{frame} +\frametitle{Subplots} +\includegraphics[scale=0.45]{../advanced_python/images/subplot.png}\\ +\end{frame} + + + \section{Plotting Data} \begin{frame}[fragile] @@ -289,8 +313,8 @@ \item We read the data using \texttt{loadtxt} \end{itemize} \begin{lstlisting} - primes = loadtxt('primes.txt') - print primes + In[]: primes = loadtxt('primes.txt') + In[]: print primes \end{lstlisting} \begin{itemize} \item \texttt{primes} is a sequence of floats @@ -306,8 +330,8 @@ \item \texttt{loadtxt} requires both columns to be of same length \end{itemize} \begin{lstlisting} - pend = loadtxt('pendulum.txt') - print pend + In[]: pend = loadtxt('pendulum.txt') + In[]: print pend \end{lstlisting} \begin{itemize} \item \texttt{pend} is not a simple sequence like \texttt{primes} @@ -317,9 +341,10 @@ \begin{frame}[fragile] \frametitle{Unpacking with \texttt{loadtxt}} \begin{lstlisting} - L, T = loadtxt('pendulum.txt', unpack=True) - print L - print T + In[]: L, T = loadtxt('pendulum.txt', + unpack=True) + In[]: print L + In[]: print T \end{lstlisting} \begin{itemize} \item We wish to plot L vs. $T^2$ @@ -327,9 +352,9 @@ \item (We could instead iterate over T and calculate) \end{itemize} \begin{lstlisting} - Tsq = square(T) + In[]: Tsq = square(T) - plot(L, Tsq, '.') + In[]: plot(L, Tsq, '.') \end{lstlisting} \end{frame} @@ -341,15 +366,21 @@ \item Read the values and make an error bar plot \end{itemize} \begin{lstlisting} - L, T, L_err, T_err = \ - loadtxt('pendulum_error.txt', unpack=True) - Tsq = square(T) + In[]: L, T, L_err, T_err = \ + loadtxt('pendulum_error.txt', + unpack=True) + In[]: Tsq = square(T) - errorbar(L, Tsq , xerr=L_err, - yerr=T_err, fmt='b.') + In[]: errorbar(L, Tsq , xerr=L_err, + yerr=T_err, fmt='b.') \end{lstlisting} \end{frame} +\begin{frame} +\frametitle{Errorbar} +\includegraphics[scale=0.45]{../advanced_python/images/L-Tsq.png}\\ +\end{frame} + \section{Other kinds of Plots} \begin{frame}[fragile] @@ -361,25 +392,36 @@ \item Let's plot the data of profits of a company \end{itemize} \begin{lstlisting} - year, profit = loadtxt('company-a-data.txt', - dtype=type(int())) + In[]: year, profit = loadtxt( + 'company-a-data.txt', + dtype=type(int())) - scatter(year, profit) + In[]: scatter(year, profit) \end{lstlisting} \begin{itemize} \item \alert{\texttt{dtype=int}; default is float} \end{itemize} \end{frame} +\begin{frame} +\frametitle{Scatter Plot} +\includegraphics[scale=0.45]{../advanced_python/images/scatter.png}\\ +\end{frame} + \begin{frame}[fragile] - \frametitle{Pie Chart \& Bar Chart} + \frametitle{Pie Chart} \begin{lstlisting} - pie(profit, labels=year) + In[]: pie(profit, labels=year) \end{lstlisting} +\includegraphics[scale=0.35]{../advanced_python/images/pie.png}\\ +\end{frame} +\begin{frame}[fragile] + \frametitle{Bar Chart} \begin{lstlisting} - bar(year, profit) + In[]: bar(year, profit) \end{lstlisting} +\includegraphics[scale=0.35]{../advanced_python/images/bar.png}\\ \end{frame} \begin{frame}[fragile] @@ -388,11 +430,11 @@ \item Plot a \texttt{log-log} chart of $y=5x^3$ for x from 1 to 20 \end{itemize} \begin{lstlisting} - x = linspace(1,20,100) - y = 5*x**3 + In[]: x = linspace(1,20,100) + In[]: y = 5*x**3 - loglog(x, y) - plot(x, y) + In[]: loglog(x, y) + In[]: plot(x, y) \end{lstlisting} \begin{itemize} \item Look at \url{http://matplotlib.sourceforge.net/contents.html} @@ -400,3 +442,9 @@ \end{itemize} \end{frame} +\begin{frame} +\frametitle{Log-log plot Plot} +\includegraphics[scale=0.45]{../advanced_python/images/loglog.png}\\ +\end{frame} + + diff --git a/ult/ult_1/script.rst b/ult/ult_1/script.rst new file mode 100644 index 0000000..e7de650 --- /dev/null +++ b/ult/ult_1/script.rst @@ -0,0 +1,370 @@ +.. Objectives +.. ---------- + + .. At the end of this tutorial, you will be able to: + + .. 1. Know what is linux and it's need. + .. + .. 2. Move around in directories and files. + .. 3. Use basic commands of Linux. + +.. Prerequisites +.. ------------- + +.. 1. None + + +Script +------ + +.. L1 + +{{{ Show the first slide containing title, name of the production +team along with the logo of MHRD }}} + +.. R1 + +Hello friends and Welcome to the tutorial on +'Using linux tools - Part 1'. + +.. L2 + +{{{ Show slide with objectives }}} + +.. R2 + +At the end of this tutorial, you will be able to, + + 1. Know what is linux and it's need. + #. Move around in directories and files. + #. Use basic commands of Linux. + +.. L3 + +{{{ Switch to slide, what is linux OS }}} + +.. R3 + +Linux (sometimes called GNU/Linux) is a Free and Open Source Operating +System that is inspired by Unix and runs on a variety of hardware +platforms. + +Linux is a modular operating system, with it's basic design based on the +principles established in Unix. It consists of an important and central +piece called the Linux kernel, which, manages system resources like process +control, networking, peripherals and file system access. This is +complemented by the application software, written on top of the kernel that +give the higher level functionality that facilitate the user to carry out +various tasks. + +.. L4 + +{{{ Switch to slide, Why Linux? }}} + +.. R4 + +GNU/Linux can be downloaded in its entirety from the Internet completely +for free with no registration fees, no costs per user, free updates, and +freely available source code. +The security model used in Linux is based on the UNIX idea of security, +which is known to be robust and of proven quality. Also, there are no +viruses in the GNU/Linux world. + +We can share our operating system and the libraries that we are using +with our co-workers, without any headaches of licensing. +There are a host of tools and libraries, that are useful in day-to-day +scientific computing work.GNU/Linux distributions are very stable and +known for their up-time. We don't have the fear of losing our +computational work, due to system crashes. + +.. L5 + +{{{ Switch to slide, Logging in }}} + +.. R5 + +Let's begin with logging into our system. The GNU/Linux OS supports +multiple users and each user logs in with his/her user-name and password. +You can log-in once you provide your authentication details. + +It is a popular misconception that GNU/Linux doesn't have a GUI (Graphical +user interface). It does have a fully functional GUI, but for the purpose +of this course we shall start with using the CLI (Command line interface). +Once your system has booted up, hit ``Ctrl + Alt + F1`` to switch to the +command line interface. + +You can log out using the ``logout`` command. + +.. R6 + +Now hit ``Ctrl + Alt + F7`` and come back to the GUI. For the purpose +of the spoken tutorials, we shall use the terminal on the GUI. + +.. L6 + +{{{ Open the terminal }}} + +.. R7 + +Now that we have logged in, where are we? +To find out the present working directory, we use the ``pwd`` command. + +.. L7 +:: + + pwd + +.. R8 + +Now, to see what is in the current directory, we use the ``ls`` command. + +.. L8 +:: + + ls + +.. R9 + +It gives us a list of all the files in our present working directory. +``ls`` command takes the directory, in which we want to see the list of +files present, as an argument. To see all the files present in the +``Music`` directory, we say + +.. L9 +:: + + ls Music + +.. R10 + +Note that everything in GNU/Linux and the Unix world is case sensitive. + +As you can see, our home folder has two html files. +What if we wanted the files to be more organized? Say, +we would like to put all our work during this course in a separate +directory. Let us now create a directory ``sdes`` by saying + +.. L10 +:: + + mkdir sees + +.. R11 + +Type ``ls`` to see that a new directory has been +created. + +.. L11 +:: + + ls + +.. L12 + +{{{ Switch to slide, New folders }}} + +.. R12 + +Also, note that special characters need to be escaped. For example if we +wanted to create a directory with the name ``software engineering``, we do +it either as + + mkdir software\ engineering + +or as + + mkdir "software engineering" + +But it is generally a practice to use hyphens or underscores instead of +spaces in filenames and directory names. +Also in modern GNU/Linux filesystems all characters except the forward +slash are allowed. + +.. R13 + +Now that we have seen how to create a new empty directory and navigate into +it, let us create a new blank file. We use the ``touch`` command for this. + +.. L13 + +{{{ Switch to the termninal }}} +:: + + pwd + cd sees + touch first + +.. R14 + +This creates a file named first in our present working directory. Use the +``ls`` command to see that the file has been created. + +.. L14 +:: + + ls + +.. R15 + +To get a quick description of the command, we could use the ``whatis`` +command. It gives a short one-line description of the command that is +passed as an argument to it. For example, + +.. L15 +:: + + whatis touch + +.. R16 + +To get a more detailed description of the command, +we use the ``man`` command. + +.. L16 +:: + + man touch + +.. R17 + +This page gives a detailed description of the command. We can see that the +``touch`` command has a whole host of options that can be passed to it. +Every command in Linux has such a list of options that can be passed to the +command to do specific tasks. Hit the ``q`` key to quit the ``man`` page. + +To see the manual on man itself do, + +.. L17 +:: + + man man + +.. L18 + +{{{ Switch to slide, Using additional options }}} + +.. R18 + +As you may have observed, often the ``man`` page is a bit too much for +quickly cross checking what option to use for a specific task. For this +kind of quick look-up, most of the commands come with a -h or --help +option. This gives a brief description of the options available for that +command. + +Pause the video here, try out the following exercise and resume the video. + +.. L19 + +{{{ Show slide with exercise 1 }}} + +.. R19 + +Which option should be used with ``ls`` command to list all the directories, +sub-directories and files contained in it? +Hint: Use ``man`` or ``--help`` + +.. R20 + +Switch to terminal for solution. + +.. L20 + +{{{continue from paused state}}} +{{{ Switch to the terminal }}} +:: + + ls -R + +.. R21 + +This lists out all the files in the sub-tree of the current directory, +recursively. + +.. L21 + +.. R22 + +When you wish to create a new directory deep inside a directory structure, +using a ``-p`` option with the ``mkdir`` command would be useful. For +example,if we wish to create a folder ``scripts`` inside the directory +``linux-tools`` inside the directory ``sees``, we could simply say, + +.. L22 +:: + + pwd + mkdir -p sees/linux-tools/scripts + +.. R23 + +Let's now say, we wish to remove a directory or a file. How do we find out +what command to use? We use the ``apropos`` command to search for commands +based on their descriptions. To search for the command to remove a +file/directory say, + +.. L23 +:: + + apropos remove + +.. R24 + +This gives us a whole list of commands that have the word ``remove``, in +their description. Looking through the list tells us that ``rm`` or +``rmdir`` is the command to use. + +.. L24 + +.. L25 + +{{{ Show summary slide }}} + +.. R25 + +This brings us to the end of the tutorial.In this tutorial, we have learnt to, + + 1. Understand the basic structure of linux and it's need. + #. Move around in directories and files. + #. Use commands like ``mkdir`` and ``rmdir`` to make and remove directories + respectively. + #. Use commands such as ``man`` and ``whatis`` to get a description of + what a particular command does. + +.. L26 + +{{{ Show self assessment questions slide }}} + +.. R26 + +Here are some self assessment questions for you to solve + +1. Which is the default directory after logging into the terminal? + +2. How to view file attributes with ls command? + +.. L27 + +{{{ Solution of self assessment questions on slide }}} + +.. R27 + +And the answers, + +1. It logins to user's home(/home/user) + +2. In order to view the attributes of a file, we use the -l option with + the ls command. + +:: + + ls -l <filename> + +.. L28 + +{{{ Show the Thankyou slide }}} + +.. R28 + +Hope you have enjoyed this tutorial and found it useful. +Thank you! + diff --git a/ult/ult_1/ult1.tex b/ult/ult_1/ult1.tex new file mode 100644 index 0000000..68b25d5 --- /dev/null +++ b/ult/ult_1/ult1.tex @@ -0,0 +1,208 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Using Linux Tools +% +% Author: FOSSEE +% Copyright (c) 2009, FOSSEE, IIT Bombay +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[12pt,compress]{beamer} + +\mode<presentation> +{ + \usetheme{Warsaw} + \useoutertheme{infolines} + \setbeamercovered{transparent} +} + +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +%\usepackage{times} +\usepackage[T1]{fontenc} + +% Taken from Fernando's slides. +\usepackage{ae,aecompl} +\usepackage{mathpazo,courier,euler} +\usepackage[scaled=.95]{helvet} + +\definecolor{darkgreen}{rgb}{0,0.5,0} + +\usepackage{listings} +\lstset{language=sh, + basicstyle=\ttfamily\bfseries, + commentstyle=\color{red}\itshape, + stringstyle=\color{darkgreen}, + showstringspaces=false, + keywordstyle=\color{blue}\bfseries} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DOCUMENT STARTS +\begin{document} + +\begin{frame} + +\begin{center} +\vspace{12pt} +\textcolor{blue}{\huge Using Linux Tools\\Part I} +\end{center} +\vspace{18pt} +\begin{center} +\vspace{10pt} +\includegraphics[scale=0.95]{../images/fossee-logo.png}\\ +\vspace{5pt} +\scriptsize Developed by FOSSEE Team, IIT-Bombay. \\ +\scriptsize Funded by National Mission on Education through ICT\\ +\scriptsize MHRD,Govt. of India\\ +\includegraphics[scale=0.30]{../images/iitb-logo.png}\\ +\end{center} +\end{frame} + +\begin{frame} +\frametitle{Objectives} +\label{sec-2} + +At the end of this tutorial, you will be able to, +\begin{itemize} +\item Know what is linux and it's need. +\item Move around in directories and files. +\item Use basic commands of Linux. +\end{itemize} +\end{frame} + + +\section{Introduction} +\begin{frame}[fragile] + \begin{block}{What is the Linux OS?} + \begin{itemize} + \item Free Open Source Operating System + \begin{description} + \item[Free] + Free as in Free Speech + \item[Open-Source] + Permit modifications and redistribution of source code + \end{description} + \item Unix-inspired + \item Linux Kernel + Application software + \item Runs on a variety of hardware + \item Also called GNU/Linux + \end{itemize} + \end{block} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Why Linux?} + \begin{itemize} + \item Free + \item Secure \& versatile + \end{itemize} + + \begin{block}{Why Linux for Scientific Computing?} + \begin{itemize} + \item Free as in Free Speech + \item Can run for \emph{ever} + \item Libraries + \item Parallel Computing + \end{itemize} + \end{block} +\end{frame} + +\section{Getting Started} +\begin{frame}[fragile] + \frametitle{Logging in} + \begin{itemize} + \item GNU/Linux does have a GUI + \item Command Line for this module + \item Hit \texttt{Ctrl + Alt + F1} + \item Login + \item \texttt{logout} command logs you out + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{New folders} + \begin{itemize} + \item Special characters need to be escaped OR quoted + \end{itemize} + \begin{lstlisting} + $ mkdir software\ engineering + $ mkdir "software engg" + \end{lstlisting} + \begin{itemize} + \item Generally, use hyphens or underscores instead of spaces in names + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Using additional options} + + \begin{itemize} + \item \texttt{-h} or \texttt{--help} give summary of command usage + \end{itemize} + \begin{lstlisting} + $ ls --help + \end{lstlisting} % $ +\end{frame} + +\begin{frame} + \frametitle{Exercise 1} + \begin{itemize} + \item Which option should be used with ``ls'' command to list all the directories, + sub-directories and files contained in it? + \end{itemize} + Hint: Use ``man'' or ``--help'' +\end{frame} + +\begin{frame} +\frametitle{Summary} +\label{sec-8} + + In this tutorial, we have learnt to, + + +\begin{itemize} +\item Understand the basic structure of linux and it's need. +\item Move around in directories and files. +\item Use commands like ``mkdir'' and ``rmdir'' to make and remove directories + respectively. +\item Use commands such as ``man'' and ``whatis'' to get a description of + what a particular command does. +\end{itemize} +\end{frame} +\begin{frame}[fragile] +\frametitle{Evaluation} +\label{sec-9} + + +\begin{enumerate} +\item Which is the default directory after logging into the terminal? +\vspace{8pt} +\item How to view file attributes with ``ls'' command? +\end{enumerate} +\end{frame} +\begin{frame} +\frametitle{Solutions} +\label{sec-10} + + +\begin{enumerate} +\item /home/user +\vspace{15pt} +\item ls -l <filename> +\end{enumerate} +\end{frame} +\begin{frame} + + \begin{block}{} + \begin{center} + \textcolor{blue}{\Large THANK YOU!} + \end{center} + \end{block} +\begin{block}{} + \begin{center} + For more Information, visit our website\\ + \url{http://fossee.in/} + \end{center} + \end{block} +\end{frame} + +\end{document} + diff --git a/ult/ult_2/script.rst b/ult/ult_2/script.rst new file mode 100644 index 0000000..e279deb --- /dev/null +++ b/ult/ult_2/script.rst @@ -0,0 +1,489 @@ +.. Objectives +.. ---------- + + .. At the end of this tutorial, you will be able to: + + .. 1. Handle files efficiently. + .. 2. Change permissions and ownership of files. + .. 3. Navigate through directories and files. + +.. Prerequisites +.. ------------- + +.. 1. Using Linux tools - Part 1 + + +Script +------ + +.. L1 + +{{{ Show the first slide containing title, name of the production +team along with the logo of MHRD }}} + +.. R1 + +Hello friends and Welcome to the tutorial on +'Using linux tools - Part 2'. + +.. L2 + +{{{ Show slide with objectives }}} + +.. R2 + +At the end of this tutorial, you will be able to, + + 1. Handle files efficiently. + #. Change permissions and ownership of files. + #. Navigate through directories and files. + +.. L3 + +{{{ Switch to the pre-requisite slide }}} + +.. R3 + +Before beginning this tutorial,we would suggest you to complete the +tutorial on "Using Linux tools - Part 1". + +.. R4 + +Let us start with the concept of basic file handling. +Let's begin with removing files. +The ``rm`` command is used to delete files. + +Here's example to remove a file named "foo" from the directory "sdes", + +.. L4 + +{{{ Navigate to /home/user/sdes/ }}} +:: + + rm foo + ls + +.. R5 + +Note that, as such, ``rm`` works only for files and not for directories. +For instance, if you try to remove a directory named ``bar`` using, + +.. L5 +:: + + rm bar + +.. R6 + +we get an error saying, cannot remove `bar`: Is a directory. But ``rm`` +takes additional arguments which can be used to remove a directory and all +of it's content, including sub-directories.We use the ``-r`` option. + +.. L6 +:: + + rm -r bar + ls + +.. R7 + +It removes the directory ``bar`` and all of it's content including +sub-directories, recursively. The ``-r`` stands for recursive. + +Let's say we wish to copy a file, ``foo`` from ``sdes/linux-tools/scripts``, +which is the source location to the target location ``sees/linux-tools``, +how would we do it? + +.. L7 +:: + + pwd + cp linux-tools/scripts/foo linux-tools/ + +.. R8 + +Note, that we haven't changed the name of the file name at the target +location. We could have done that by specifying a new filename at the +target location,as, + +.. L8 +:: + + cp linux-tools/scripts/foo linux-tools/bar + +.. R9 + +This copies the file ``foo`` to the new location, but with the new name, +``bar``. + +But, what would have happened if we had a file named ``bar`` already at the +new location? Let's try doing the copy again, and see what happens. + +.. L9 +:: + + cp linux-tools/scripts/foo linux-tools/bar + +.. R10 + +We get no error message, what happened? ``cp`` actually overwrites files. +In this case, it's not a problem since, we just re-copied the same content, +but in general it could be a problem, and we could lose data. To prevent +this, we use the ``-i`` flag with ``cp``. + +.. L10 +:: + + cp -i linux-tools/scripts/foo linux-tools/bar + +.. R11 + +We are now prompted, whether the file should be over-written. To over-write +say ``y``, else say ``n``. + +Now, let's try to copy the directory ``sdes`` to a new directory called +``course``. How do we do it? + +.. L11 +:: + + cd /home/user + cp -i sdes course + +.. R12 + +``cp`` refuses to copy the directory ``sdes``. We use the option ``-r`` +(recursive) to copy the directory and all it's content. + +.. L12 +:: + + cd /home/user + cp -ir sdes course + ls + +.. R13 + +We see that a new directory named course has been created with all it's +contents. + +Now, If we want to move files, instead of copying them, one way to go about +it, would be to ``cp`` the file to the new location and ``rm`` the old +file. Instead, you can make use of only one command which can do this task at +one go. The ``mv`` command can move files or directories. It also takes +the ``-i`` option to prompt before overwriting. + +.. L14 +:: + + cd /home/user + mv -i sdes/ course/ + +.. R15 + +Let us understand what exactly happened when we used the ``mv`` command + +.. L15 +:: + + ls course + +.. R16 + +We can see that the ``sdes`` directory has been inserted as sub-directory +of the ``course`` directory. The move command doesn't over-write +directories, but the ``-i`` option is useful when moving files around. + +A common way to rename files (or directories), is to copy a file (or a +directory) to the same location, with a new name. + +.. L16 +:: + + mv sdes/linux-tools sdes/linux + +.. R17 + +It renames the ``linux-tools`` directory to just ``linux`` + +While moving around our files and directories, we have been careful to stay +within the ``/home/`` directory, but other than that there are many other +directories too. Let us take this opportunity to understand a few things +about the linux file hierarchy and file permissions. + +.. L17 +:: + + cd / + +{{{ Switch to slide, Linux File Hierarchy }}} + +.. R18 + +The ``/`` directory is called the root directory. All the files and +directories, (even if they are on different physical devices) appear as +sub-directories of the root directory. + +.. L18 + +{{{ Switch to terminal }}} +:: + + ls + +.. R19 + +You can see the various directories present at the top most level. + +.. L19 + +{{{ Pause for sometime and then continue }}} + +.. R20 + +For more information, it is recommended that you look at the ``man`` page +of ``hier``. + +.. L20 +:: + + man hier + +{{{ Pause for sometime and then hit q }}} + +.. R21 + +Let us now look at file permissions. Linux is a multi-user environment and +allows users to set permissions to their files to allow only a set of +people to read or write it. Similarly, it is not "safe" to allow system +files to be edited by any user. All this access control is possible in +Linux. + +To start, in the root directory, say, + +.. L21 +:: + + ls -l + +.. R22 + +You again get a list of all the sub-directories, but this time with a lot +of additional information. Let us try and understand what this output says +Consider the first line of the output, + +.. L22 + +{{{ Highlight the required portions accordingly while narrating }}} + +.. R23 + +The first column denotes the type and the access permissions of the file. +The second is the number of links. The third and fourth are the owner and +group of the file. The next field is the size of the file in bytes. The +next field is the date and time of modification and the last column is the +file name. +We shall look at the permissions of the file now, ie., the first column of +the output. + +The first character in the first column specifies, whether the item is a +file or a directory. Files have a ``-`` as the first character and +directories have a ``d``. + +The next 9 characters define the access permissions of the file. Before +looking at it, we need to briefly study groups and users and ownership. + +We already know what the first character in the first column (in the output +of ``ls -l``) is for. The rest of the 9 characters are actually sets of 3 +characters of each. The first set of 3 characters defines the permissions +of the user, the next 3 is for the group and the last three is for others. +Based on the values of these characters, access is provided or denied to +files, to each of the users. + +So, what does each of the three characters stand for? Let's suppose we are +looking at the set, corresponding to the permissions of the user. In the +three characters, the first character can either be an ``r`` or a ``-``. +Which means, the user can either have the permissions to read the file or +not. If the character is ``r``, then the user has the permissions to read +the file, else not. Similarly, ``w`` stands for write permissions and +decides whether the user is allowed to write to the file. ``x`` stands for +execute permissions. You cannot execute a file, if you do not have the +permissions to execute it. + +Similarly, the next set of characters decides the same permissions for the +members of the group, that the file is associated with. The last set of +characters defines these permissions for the users, who are neither owners +of the file nor in the group, with which the file is associated. + +Now, it's not as if these permissions cannot be changed. If you are the +owner of a file, you can change the permissions of a file, using the +``chmod`` command. + +.. L23 + +.. R24 + +Let's say, we wish to give the execute permissions for a file, to both the +user and the group, how do we go about doing it? To be more explicit, given +a file ``foo.sh``, with the permissions flags as ``-rw-r--r--``, change it +to ``-rwxr-xr--``. + +The following command does it for us, + +.. L24 +:: + + chmod ug+x foo.sh + ls -l foo.sh + +.. R25 + +As you can see, the permissions have been set to the required value. But +what did we exactly do? Let us try and understand. + +.. L25 + +{{{ Switch to slide,Symbolic modes }}} + +.. R26 + +In the command, the parameter ``ug+x`` is the mode parameter to the +``chmod`` command. It specifies the changes that need to be made to the +permissions of the file ``foo.sh``. +The ``u`` and ``g`` stand for the user and group, respectively. The ``x`` +stands for the execute permission and ``+`` stands for adding the +specified permission. So, essentially, we are asking ``chmod`` command to +add the execute permission for the user and group. The permission of others +will remain unchanged. + +So, if we wished to add the execute permission to all the users, instead of +adding it to just the user and group, we would have instead said + +.. L26 +:: + + chmod a+x foo.sh + +.. R27 + +or + +.. L27 +:: + + chmod ugo+x foo.sh + +.. R28 + +Pause the video here, try out the following exercise and resume the video. + +.. L28 + +.. L29 + +{{{ Show slide with exercise 1 }}} + +.. R29 + +Change the permissions of a directory along with all of its +sub-directories and files. + +.. L30 + +{{{ Show slide with solution 1 }}} + +.. R30 + +To change the permissions of a directory along with all of its +sub-directories and files, recursively, we use the ``-R`` option +with the chmod command as shown + + chmod go-r -R <directory name>/ + +.. R31 + +It is important to note that the permissions of a file can only be changed +by a user who is the owner of a file or the superuser. + +What if we wish to change the ownership of a file? The ``chown`` command is +used to change the owner and group. +By default, the owner of a file (or directory) is the user that +created it. The group is a set of users that share the same access +permissions i.e., read, write and execute. +For instance, to change the user and the group of the file +``wonderland.txt`` to ``alice`` and ``users``, respectively, we say. + +.. L31 +:: + + chown fossee:users wonderland.txt + +.. R32 + +We get an error saying, the operation is not permitted. +We have attempted to change the ownership of a file that we own, to a +different user. Logically, this shouldn't be possible, because, this can +lead to problems, in a multi-user system. +Only the superuser is allowed to change the ownership of a file from one +user to another. The superuser or the ``root`` user is the only user +empowered to a certain set of tasks and hence is called the superuser. The +command above would have worked, if you did login as the superuser and +then changed the ownership of the file. + +.. L32 + +.. L33 + +{{{ Show summary slide }}} + +.. R33 + +This brings us to the end of the tutorial.In this tutorial, we have learnt to, + + 1. Copy and move files from one location to another, using the ``cp`` + and ``mv`` commands respectively. + #. Understand the Linux file hierarchy. + #. Change permissions and ownership of files, using the ``chmod`` + and ``chown`` commands respectively. + +.. L34 + +{{{ Show self assessment questions slide }}} + +.. R34 + +Here are some self assessment questions for you to solve + +1. How to copy all the contents of one folder into another? + +2. How will you rename the file wonderland.txt to alice.txt using the + commands learnt so far? + +.. L35 + +{{{ Solution of self assessment questions on slide }}} + +.. R35 + +And the answers, + +1. We use the ``cp`` command along with a star sign. The star denotes that + it will copy all the files of folder 1 to folder 2. +:: + + cp folder1/* folder2 + +2. To rename a file, we use the ``mv`` command as, +:: + + mv wonderland.txt alice.txt + +.. L36 + +{{{ Show the Thankyou slide }}} + +.. R36 + +Hope you have enjoyed this tutorial and found it useful. +Thank you! + diff --git a/ult/ult_2/ult2.tex b/ult/ult_2/ult2.tex new file mode 100644 index 0000000..f763bb0 --- /dev/null +++ b/ult/ult_2/ult2.tex @@ -0,0 +1,198 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Using Linux Tools +% +% Author: FOSSEE +% Copyright (c) 2009, FOSSEE, IIT Bombay +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[12pt,compress]{beamer} + +\mode<presentation> +{ + \usetheme{Warsaw} + \useoutertheme{infolines} + \setbeamercovered{transparent} +} + +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +%\usepackage{times} +\usepackage[T1]{fontenc} + +% Taken from Fernando's slides. +\usepackage{ae,aecompl} +\usepackage{mathpazo,courier,euler} +\usepackage[scaled=.95]{helvet} + +\definecolor{darkgreen}{rgb}{0,0.5,0} + +\usepackage{listings} +\lstset{language=sh, + basicstyle=\ttfamily\bfseries, + commentstyle=\color{red}\itshape, + stringstyle=\color{darkgreen}, + showstringspaces=false, + keywordstyle=\color{blue}\bfseries} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DOCUMENT STARTS +\begin{document} + +\begin{frame} + +\begin{center} +\vspace{12pt} +\textcolor{blue}{\huge Using Linux Tools\\Part II} +\end{center} +\vspace{18pt} +\begin{center} +\vspace{10pt} +\includegraphics[scale=0.95]{../images/fossee-logo.png}\\ +\vspace{5pt} +\scriptsize Developed by FOSSEE Team, IIT-Bombay. \\ +\scriptsize Funded by National Mission on Education through ICT\\ +\scriptsize MHRD,Govt. of India\\ +\includegraphics[scale=0.30]{../images/iitb-logo.png}\\ +\end{center} +\end{frame} +\begin{frame} +\frametitle{Objectives} +\label{sec-2} + +At the end of this tutorial, you will be able to, +\begin{itemize} +\item Handle files efficiently. +\item Change permissions and ownership of files. +\item Navigate through directories and files. +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Pre-requisite} +\label{sec-3} + +Spoken tutorial on - +\begin{itemize} +\item Using Linux tools -- Part I +\end{itemize} +\end{frame} + + +\begin{frame} + \frametitle{Linux File Hierarchy} + \begin{itemize} + \item \texttt{/} is called the root directory + \item It is the topmost level of the hierarchy + \item For details \texttt{man hier} + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Symbolic modes} + \begin{small} + \begin{center} + \begin{tabular}{lll} + Reference & Class & Description \\ + \hline + u & user & the owner of the file \\ + g & group & users who are members of the file's group \\ + o & others & users who are not hte owner of the file or members of the group \\ + a & all & all three of the above; is the same as \emph{ugo} \\ + \end{tabular} + \end{center} + + \begin{center} + \begin{tabular}{ll} + Operator & Description \\ + \hline + + & adds the specified modes to the specified classes \\ + - & removes the specified modes from the specified classes \\ + = & the modes specified are to be made the exact modes for the specified classes \\ + \end{tabular} + \end{center} + + \begin{center} + \begin{tabular}{lll} + Mode & Name & Description \\ + \hline + r & read & read a file or list a directory's contents \\ + w & write & write to a file or directory \\ + x & execute & execute a file or recurse a directory tree \\ + \end{tabular} + \end{center} + \end{small} +\end{frame} + + +\begin{frame} + \frametitle{Exercise 1} + \begin{itemize} + \item Change the permissions of a directory along with all of its + sub-directories and files. + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Solution 1} + \begin{itemize} + \item chmod go-r -R <directory name>/ + \end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Summary} +\label{sec-8} + + In this tutorial, we have learnt to, + + +\begin{itemize} +\item Copy and move files from one location to another, using the ``cp'' + and ``mv'' commands respectively. +\item Understand the Linux file hierarchy. +\item Change permissions and ownership of files, using the ``chmod'' + and ``chown'' commands respectively. +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Evaluation} +\label{sec-9} + + +\begin{enumerate} +\item How to copy all the contents of one folder into another? +\vspace{15pt} +\item How will you rename the file wonderland.txt to alice.txt using the + commands learnt so far? +\end{enumerate} +\end{frame} +\begin{frame} +\frametitle{Solutions} +\label{sec-10} + + +\begin{enumerate} +\item cp folder1/* folder2 +\vspace{15pt} +\item mv wonderland.txt alice.txt +\end{enumerate} +\end{frame} +\begin{frame} + + \begin{block}{} + \begin{center} + \textcolor{blue}{\Large THANK YOU!} + \end{center} + \end{block} +\begin{block}{} + \begin{center} + For more Information, visit our website\\ + \url{http://fossee.in/} + \end{center} + \end{block} +\end{frame} + +\end{document} + + diff --git a/ult/ult_3/bar.txt b/ult/ult_3/bar.txt new file mode 100644 index 0000000..c0a5b08 --- /dev/null +++ b/ult/ult_3/bar.txt @@ -0,0 +1,8 @@ +"Bar" as the second term in the series may have developed in +electronics, where a digital signal which is considered "on" with a +negative or zero-voltage condition is identified with a horizontal bar +over the signal label; the notation for an inverted signal foo would +then be pronounced "foo bar". Bar may also be read as beyond all +repair, which is how it is used in the acronym FUBAR. + +source: wikipedia diff --git a/ult/ult_3/foo.txt b/ult/ult_3/foo.txt new file mode 100644 index 0000000..1fe9426 --- /dev/null +++ b/ult/ult_3/foo.txt @@ -0,0 +1,9 @@ +FOO is an abbreviation of Forward Observation Officer, a British Army +term in use as early as the First World War. The etymology of foo is +explored in the Internet Engineering Task Force (IETF) Request for +Comments 3092, which notes usage of foo in 1930s cartoons including +The Daffy Doc (with Daffy Duck) and comic strips, especially Smokey +Stover and Pogo. From there the term migrated into military slang, +where it merged with FUBAR. + +source: wikipedia diff --git a/ult/ult_3/marks.txt b/ult/ult_3/marks.txt new file mode 100644 index 0000000..f97b743 --- /dev/null +++ b/ult/ult_3/marks.txt @@ -0,0 +1,5 @@ +89 92 85 +98 47 67 +67 82 76 +78 97 60 +67 68 69 diff --git a/ult/ult_3/script.rst b/ult/ult_3/script.rst new file mode 100644 index 0000000..c9740b9 --- /dev/null +++ b/ult/ult_3/script.rst @@ -0,0 +1,375 @@ +.. Objectives +.. ---------- + + .. At the end of this tutorial, you will be able to: + + .. 1. Display the contents of files. + .. 2. Read only parts of a file. + .. 3. Look at the statistical information ao a file. + +.. Prerequisites +.. ------------- + +.. 1. Using Linux tools - Part 1 +.. 2. Using Linux tools - Part 2 + +Script +------ + +.. L1 + +{{{ Show the first slide containing title, name of the production +team along with the logo of MHRD }}} + +.. R1 + +Hello friends and Welcome to the tutorial on +'Using linux tools - Part 3'. + +.. L2 + +{{{ Show slide with objectives }}} + +.. R2 + +At the end of this tutorial, you will be able to, + + 1. Display the contents of files. + #. Read only parts of a file. + #. Look at the statistical information of a file. + +.. L3 + +{{{ Switch to the pre-requisite slide }}} + +.. R3 + +Before beginning this tutorial,we would suggest you to complete the +tutorial on "Using Linux tools - Part 1" and "Using Linux tools - Part 2". + +.. R4 + +Let us begin with how to read a while as a whole. +The ``cat`` command is the most commonly used command to display the +contents of files. To view the contents of a file, say, ``foo.txt``, we +simply say, + +.. L4 +:: + + cat foo.txt + +.. R5 + +You can see the contents of the file on the terminal. + +The cat command could also be used to concatenate the text of multiple +files. Say, we have two files,``foo.txt`` and ``bar.txt``, + +.. L5 +:: + + cat foo.txt bar.txt + +.. R6 + +It shows the output of both the files concatenated on the standard output. +But if we had a long file,the output of ``cat`` command is not convenient +to read. +Let's look at the ``less`` command which turns out to be more useful in +such a case. + +``less `` allows you to view the contents of a text file one screen at a +time. + +.. L6 +:: + + less wonderland.txt + +.. R7 + +This shows us the file, one screen at a time. + +.. L7 + +.. L8 + +{{{ Show slide with, less }}} + +.. R8 + +``less`` has a list of commands that it allows you to use, once you have +started viewing a file. A few of the common ones have been listed below. + + * q: Quit. + + * [Arrows]/[Page Up]/[Page Down]/[Home]/[End]: Navigation. + + * ng: Jump to line number n. Default is the start of the file. + + * /pattern: Search for pattern. Regular expressions can be used. + + * h: Help. + +.. R9 + +Let us move ahead with the topic. Often we just would like to get some +statistical information about the file, rather than viewing the contents +of the file. The ``wc`` command prints these details for a file. + +.. L9 +:: + + wc wonderland.txt + +.. L10 + +{{{ Highlight the required portions accordingly while narrating }}} + +.. R10 + +As you can, we get some information about the file. +The first number is the number of lines, the second is the number of words +and the third is the number of characters in the file. + +.. R11 + +Let us now look at a couple of commands that let you see parts of files, +instead of the whole file. The ``head`` and ``tail`` commands let you see +parts of files, as their names suggest, the start and the end of a file, +respectively. + +.. L11 +:: + + head wonderland.txt + +.. R12 + +It prints only the first 10 lines of the file. Similarly tail will print the +last 10 lines of the file. If we wish to change the number of lines that we +wish to view, we use the option ``-n``. + +.. L12 +:: + + head -n 1 wonderland.txt + +.. R13 + +It print only the first line of the file. Similarly, we could print only +the last line of the file. + +The most common use of the tail command is to monitor a continuously +changing file, for instance a log file. Say you have a process running, +which is continuously logging it's information to a file, for instance the +logs of the system messages. + +.. L13 +:: + + tail -f /var/log/dmesg + +.. R14 + +This will show the last 10 lines of the file as expected, but along with +that, it starts monitoring the file. Any new lines added at the end of the +file, will be shown. To interrupt tail, while it is monitoring, hit +``Ctrl-C``. which will stop any process that is running from your +current shell. + +We looked at a couple of functions that allowed us to view a part of a file, +line-wise. We shall now look at a couple of commands that will allow us to look +at only certain sections of each line of a file and merge those parts. +Let's take the ``/etc/passwd`` file as our example file. It contains +information about each user of the system. + +.. L14 +:: + + cat /etc/passwd + +.. R15 + +In the output, let us look at only the first, fifth, sixth and the last +columns.The first column is the user name, the fifth column is the user info, +the sixth column is the home folder and the last column is the path of the +shell program that the user uses. +Let's say we wish to look at only the user names of all the users in the +file, how do we do it? + +.. L15 +:: + + cut -d : -f 1 /etc/passwd + +.. R16 + +It gives us the required output. Let us understand this operation in detail. +The first option ``-d`` specifies the delimiter between the various fields in +the file, in this case it is the semicolon. If no delimiter is specified, +the TAB character is assumed to be the delimiter. The ``-f`` option specifies, +the field number that we want to choose. +You can print multiple fields, by separating the field numbers with a +comma. + +Pause the video here, try out the following exercise and resume the video. + +.. L16 + +.. L17 + +{{{ Show slide with exercise 3 }}} + +.. R17 + +Print only the first, fifth and the seventh fields of the file ``/etc/passwd``. + +.. R18 + +Switch to the terminal for solution + +.. L18 + +{{{ continue from paused state }}} +{{{ Switch to the terminal }}} + +:: + + cut -d : -f 1,5,7 /etc/passwd + +.. R19 + +We get the correct output. +Instead of choosing by fields, ``cut`` also allows us to choose on the +basis of characters or bytes. For instance, we could get the first 4 +characters of all the entries of the file, ``/etc/passwd`` by saying, + +.. L19 +:: + + cut -c 1-4 /etc/passwd + +.. R20 + +The end limits of the ranges can take sensible default values, if they are +left out. For example, + +.. L20 +:: + + cut -c -4 /etc/passwd + +.. R21 + +It gives the same output as before. If the start position has not been +specified, it is assumed to be the start of the line. Similarly if the end +position is not specified, it is assumed to be the end of the line. + +.. L21 +:: + + cut -c 10- /etc/passwd + +.. R22 + +It prints all the characters from the 10th character up to the end of the +line. +Let us now solve an inverse problem. Let's say we have two columns of data +in two different files, and we wish to view them side by side. + +.. L22 + +.. L23 + +{{{ Show slide with, paste }}} + +.. R23 + +For instance, given a file containing the names of students in a file, +students.txt, and another file with the marks of the students,marks.txt, + +.. R24 + +we wish to view the contents, side by side. The ``paste`` command allows +us to do that. + +.. L24 +:: + + paste students.txt marks.txt + paste -s students.txt marks.txt + +.. R25 + +The first command gives us the output of the two files, next to each other +and the second command gives us the output one below the other. + +Now, this problem is a bit unrealistic because, we wouldn't have the marks +of students in a file, without any information about the student to which +they belong. Let's say our marks file had the first column as the roll +number of the student, followed by the marks of the students. What would we +then do, to get the same output that we got before? + +Essentially we need to use both, the ``cut`` and ``paste`` commands, but +how do we do that? That brings us to the concept of Redirection and Piping +which is covered in the next spoken tutorial. + +.. L25 + +.. L26 + +{{{ Switch to summary slide }}} + +.. R26 + +This brings us to the end of the end of this tutorial. +In this tutorial, we have learnt to, + + 1. Display the contents of files using the ``cat`` command. + #. View the contents of a file one screen at a time using the + ``less`` command. + #. Display specific contents of file using the ``head`` and + ``tail`` commands. + #. Use the ``cut``, ``paste`` and ``wc`` commands. + +.. L27 + +{{{ Show self assessment questions slide }}} + +.. R27 + +Here are some self assessment questions for you to solve + +1. How to view lines from 1 to 15 in wonderland.txt? + +2. In ``cut`` command, how to specify space as the delimiter? + +.. L28 + +{{{ Solution of self assessment questions on slide }}} + +.. R28 + +And the answers, + +1. We can use the head command as, +:: + + head -15 wonderland.txt + +2. We use the -d option with the command as, +:: + + cut -d " " <filename> + +.. L29 + +{{{ Show the Thank you slide }}} + +.. R29 + +Hope you have enjoyed this tutorial and found it useful. +Thank you! + diff --git a/ult/ult_3/students.txt b/ult/ult_3/students.txt new file mode 100644 index 0000000..ddacd6b --- /dev/null +++ b/ult/ult_3/students.txt @@ -0,0 +1,5 @@ +Hussain +Dilbert +Anne +Raul +Sven diff --git a/ult/ult_3/ult3.tex b/ult/ult_3/ult3.tex new file mode 100644 index 0000000..2ece836 --- /dev/null +++ b/ult/ult_3/ult3.tex @@ -0,0 +1,170 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Using Linux Tools +% +% Author: FOSSEE +% Copyright (c) 2009, FOSSEE, IIT Bombay +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[12pt,compress]{beamer} + +\mode<presentation> +{ + \usetheme{Warsaw} + \useoutertheme{infolines} + \setbeamercovered{transparent} +} + +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +%\usepackage{times} +\usepackage[T1]{fontenc} + +% Taken from Fernando's slides. +\usepackage{ae,aecompl} +\usepackage{mathpazo,courier,euler} +\usepackage[scaled=.95]{helvet} + +\definecolor{darkgreen}{rgb}{0,0.5,0} + +\usepackage{listings} +\lstset{language=sh, + basicstyle=\ttfamily\bfseries, + commentstyle=\color{red}\itshape, + stringstyle=\color{darkgreen}, + showstringspaces=false, + keywordstyle=\color{blue}\bfseries} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DOCUMENT STARTS +\begin{document} + +\begin{frame} + +\begin{center} +\vspace{12pt} + +\textcolor{blue}{\huge Using Linux Tools\\Part III} +\end{center} +\vspace{18pt} +\begin{center} +\vspace{10pt} +\includegraphics[scale=0.95]{../images/fossee-logo.png}\\ +\vspace{5pt} +\scriptsize Developed by FOSSEE Team, IIT-Bombay. \\ +\scriptsize Funded by National Mission on Education through ICT\\ +\scriptsize MHRD,Govt. of India\\ +\includegraphics[scale=0.30]{../images/iitb-logo.png}\\ +\end{center} +\end{frame} +\begin{frame} +\frametitle{Objectives} +\label{sec-2} + +At the end of this tutorial, you will be able to, +\begin{itemize} +\item Display the contents of files. +\item Read only parts of a file. +\item Look at the statistical information of a file. +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Pre-requisite} +\label{sec-3} + +Spoken tutorial on - +\begin{itemize} +\item Using Linux tools -- Part I +\item Using Linux tools -- Part II +\end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{\texttt{less}} + \begin{itemize} + \item q: Quit + \item Arrows/Page Up/Page Down/Home/End: Navigation + \item ng: Jump to line number n + \item /pattern: Search. Regular expressions can be used + \item h: Help + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Exercise 1} + \begin{itemize} + \item Print only the first, fifth and the seventh fields of the file ``/etc/passwd''. + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{\texttt{paste}} + \begin{center} + \begin{tabular}{l|l} + \verb~students.txt~ & \verb~marks.txt~ \\ + Hussain & 89 92 85 \\ + Dilbert & 98 47 67 \\ + Anne & 67 82 76 \\ + Raul & 78 97 60 \\ + Sven & 67 68 69 \\ + \end{tabular} + \end{center} +\end{frame} + +\begin{frame} +\frametitle{Summary} +\label{sec-8} + + In this tutorial, we have learnt to, + + +\begin{itemize} +\item Display the contents of files using the ``cat'' command. +\item View the contents of a file one screen at a time using the + ``less'' command. +\item Display specific contents of file using the ``head'' and + ``tail'' commands. +\item Use the ``cut'', ``paste'' and ``wc'' commands. +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Evaluation} +\label{sec-9} + + +\begin{enumerate} +\item How to view lines from 1 to 15 in wonderland.txt ? +\vspace{15pt} +\item In ``cut'' command, how to specify space as the delimiter ? +\end{enumerate} +\end{frame} +\begin{frame} +\frametitle{Solutions} +\label{sec-10} + + +\begin{enumerate} +\item \$ head -15 wonderland.txt +\vspace{15pt} +\item \$ cut -d " " <filename> +\end{enumerate} +\end{frame} +\begin{frame} + + \begin{block}{} + \begin{center} + \textcolor{blue}{\Large THANK YOU!} + \end{center} + \end{block} +\begin{block}{} + \begin{center} + For more Information, visit our website\\ + \url{http://fossee.in/} + \end{center} + \end{block} +\end{frame} + +\end{document} + + diff --git a/ult/ult_3/wonderland.txt b/ult/ult_3/wonderland.txt new file mode 100644 index 0000000..0f62284 --- /dev/null +++ b/ult/ult_3/wonderland.txt @@ -0,0 +1,4047 @@ +Project Gutenberg's Alice's Adventures in Wonderland, by Lewis Carroll
+
+This eBook is for the use of anyone anywhere at no cost and with
+almost no restrictions whatsoever. You may copy it, give it away or
+re-use it under the terms of the Project Gutenberg License included
+with this eBook or online at www.gutenberg.net
+
+
+Title: Alice's Adventures in Wonderland
+ Illustrated by Arthur Rackham. With a Proem by Austin Dobson
+
+Author: Lewis Carroll
+
+Illustrator: Arthur Rackham
+
+Release Date: May 19, 2009 [EBook #28885]
+
+Language: English
+
+Character set encoding: ISO-8859-1
+
+*** START OF THIS PROJECT GUTENBERG EBOOK ALICE'S ADVENTURES IN WONDERLAND ***
+
+
+
+
+Produced by Jana Srna, Emmy and the Online Distributed
+Proofreading Team at http://www.pgdp.net (This file was
+produced from images generously made available by the
+University of Florida Digital Collections.)
+
+
+
+
+
+
+
+
+
+
+
+ALICE'S ADVENTURES IN WONDERLAND
+
+[Illustration: "Alice"]
+
+[Illustration:
+
+ ALICE'S·ADVENTURES
+ IN·WONDERLAND
+ BY·LEWIS·CARROLL
+ ILLUSTRATED·BY
+ ARTHUR·RACKHAM
+
+ WITH A PROEM BY AUSTIN DOBSON
+
+ LONDON·WILLIAM·HEINEMANN
+ NEW·YORK·DOUBLEDAY·PAGE·&·Co]
+
+ PRINTED IN ENGLAND
+
+ _'Tis two score years since CARROLL'S art,
+ With topsy-turvy magic,
+ Sent ALICE wondering through a part
+ Half-comic and half-tragic._
+
+ _Enchanting ALICE! Black-and-white
+ Has made your deeds perennial;
+ And naught save "Chaos and old Night"
+ Can part you now from TENNIEL;_
+
+ _But still you are a Type, and based
+ In Truth, like LEAR and HAMLET;
+ And Types may be re-draped to taste
+ In cloth-of-gold or camlet._
+
+ _Here comes afresh Costumier, then;
+ That Taste may gain a wrinkle
+ From him who drew with such deft pen
+ The rags of RIP VAN WINKLE!_
+
+ _AUSTIN DOBSON._
+
+
+
+ All in the golden afternoon
+ Full leisurely we glide;
+ For both our oars, with little skill,
+ By little arms are plied,
+ While little hands make vain pretence
+ Our wanderings to guide.
+
+ Ah, cruel Three! In such an hour,
+ Beneath such dreamy weather,
+ To beg a tale of breath too weak
+ To stir the tiniest feather!
+ Yet what can one poor voice avail
+ Against three tongues together?
+
+ Imperious Prima flashes forth
+ Her edict "to begin it"--
+ In gentler tone Secunda hopes
+ "There will be nonsense in it!"--
+ While Tertia interrupts the tale
+ Not _more_ than once a minute.
+
+ Anon, to sudden silence won,
+ In fancy they pursue
+ The dream-child moving through a land
+ Of wonders wild and new,
+ In friendly chat with bird or beast--
+ And half believe it true.
+
+ And ever, as the story drained
+ The wells of fancy dry.
+ And faintly strove that weary one
+ To put the subject by,
+ "The rest next time--" "It _is_ next time!"
+ The happy voices cry.
+
+ Thus grew the tale of Wonderland:
+ Thus slowly, one by one,
+ Its quaint events were hammered out--
+ And now the tale is done,
+ And home we steer, a merry crew,
+ Beneath the setting sun.
+
+ Alice! a childish story take,
+ And with a gentle hand
+ Lay it where Childhood's dreams are twined
+ In Memory's mystic band,
+ Like pilgrim's wither'd wreath of flowers
+ Pluck'd in a far-off land.
+
+
+
+
+CONTENTS
+
+
+ PAGE
+
+ I. DOWN THE RABBIT-HOLE 1
+
+ II. THE POOL OF TEARS 13
+
+ III. A CAUCUS-RACE AND A LONG TALE 24
+
+ IV. THE RABBIT SENDS IN A LITTLE BILL 35
+
+ V. ADVICE FROM A CATERPILLAR 49
+
+ VI. PIG AND PEPPER 64
+
+ VII. A MAD TEA-PARTY 82
+
+ VIII. THE QUEEN'S CROQUET-GROUND 96
+
+ IX. THE MOCK TURTLE'S STORY 111
+
+ X. THE LOBSTER QUADRILLE 126
+
+ XI. WHO STOLE THE TARTS? 139
+
+ XII. ALICE'S EVIDENCE 150
+
+
+
+
+LIST OF THE PLATES
+
+
+ _To face page_
+
+ Alice _Frontispiece_
+
+ The Pool of Tears 22
+
+ They all crowded round it panting and
+ asking, "But who has won?" 28
+
+ "Why, Mary Ann, what are you doing out
+ here?" 36
+
+ Advice from a Caterpillar 50
+
+ An unusually large saucepan flew close
+ by it, and very nearly carried it off 70
+
+ It grunted again so violently that she
+ looked down into its face in some alarm 74
+
+ A Mad Tea-Party 84
+
+ The Queen turned angrily away from him
+ and said to the Knave, "Turn them over" 100
+
+ The Queen never left off quarrelling
+ with the other players, and shouting
+ "Off with his head!" or, "Off with her
+ head!" 116
+
+ The Mock Turtle drew a long breath and
+ said, "That's very curious" 132
+
+ Who stole the Tarts? 140
+
+ At this the whole pack rose up into the
+ air, and came flying down upon her 158
+
+
+
+
+CHAPTER I
+
+
+[Sidenote: _Down the Rabbit-Hole_]
+
+ALICE was beginning to get very tired of sitting by her
+sister on the bank, and of having nothing to do: once or twice she had
+peeped into the book her sister was reading, but it had no pictures or
+conversations in it, "and what is the use of a book," thought Alice,
+"without pictures or conversations?"
+
+So she was considering in her own mind (as well as she could, for the
+hot day made her feel very sleepy and stupid) whether the pleasure of
+making a daisy-chain would be worth the trouble of getting up and
+picking the daisies, when suddenly a White Rabbit with pink eyes ran
+close by her.
+
+There was nothing so _very_ remarkable in that; nor did Alice think it
+so _very_ much out of the way to hear the Rabbit say to itself, "Oh
+dear! Oh dear! I shall be too late!" (when she thought it over
+afterwards, it occurred to her that she ought to have wondered at this,
+but at the time it all seemed quite natural); but when the Rabbit
+actually _took a watch out of its waistcoat-pocket_, and looked at it,
+and then hurried on, Alice started to her feet, for it flashed across
+her mind that she had never before seen a rabbit with either a
+waistcoat-pocket, or a watch to take out of it, and burning with
+curiosity, she ran across the field after it, and was just in time to
+see it pop down a large rabbit-hole under the hedge.
+
+In another moment down went Alice after it, never once considering how
+in the world she was to get out again.
+
+The rabbit-hole went straight on like a tunnel for some way, and then
+dipped suddenly down, so suddenly that Alice had not a moment to think
+about stopping herself before she found herself falling down what seemed
+to be a very deep well.
+
+[Illustration]
+
+Either the well was very deep, or she fell very slowly, for she had
+plenty of time as she went down to look about her, and to wonder what
+was going to happen next. First, she tried to look down and make out
+what she was coming to, but it was too dark to see anything; then she
+looked at the sides of the well and noticed that they were filled with
+cupboards and book-shelves: here and there she saw maps and pictures
+hung upon pegs. She took down a jar from one of the shelves as she
+passed; it was labelled "ORANGE MARMALADE," but to her disappointment it
+was empty; she did not like to drop the jar for fear of killing
+somebody underneath, so managed to put it into one of the cupboards as
+she fell past it.
+
+"Well!" thought Alice to herself. "After such a fall as this, I shall
+think nothing of tumbling down stairs! How brave they'll all think me at
+home! Why, I wouldn't say anything about it, even if I fell off the top
+of the house!" (Which was very likely true.)
+
+Down, down, down. Would the fall _never_ come to an end? "I wonder how
+many miles I've fallen by this time?" she said aloud. "I must be getting
+somewhere near the centre of the earth. Let me see: that would be four
+thousand miles down. I think--" (for, you see, Alice had learnt several
+things of this sort in her lessons in the schoolroom, and though this
+was not a _very_ good opportunity for showing off her knowledge, as
+there was no one to listen to her, still it was good practice to say it
+over) "--yes, that's about the right distance--but then I wonder what
+Latitude or Longitude I've got to?" (Alice had no idea what Latitude
+was, or Longitude either, but thought they were nice grand words to
+say.)
+
+Presently she began again. "I wonder if I shall fall right _through_ the
+earth! How funny it'll seem to come out among the people that walk with
+their heads downwards! The Antipathies, I think--" (she was rather glad
+there _was_ no one listening, this time, as it didn't sound at all the
+right word) "--but I shall have to ask them what the name of the country
+is, you know. Please, Ma'am, is this New Zealand or Australia?" (and she
+tried to curtsey as she spoke--fancy _curtseying_ as you're falling
+through the air! Do you think you could manage it?) "And what an
+ignorant little girl she'll think me! No, it'll never do to ask: perhaps
+I shall see it written up somewhere."
+
+Down, down, down. There was nothing else to do, so Alice soon began
+talking again. "Dinah'll miss me very much to-night, I should think!"
+(Dinah was the cat.) "I hope they'll remember her saucer of milk at
+tea-time. Dinah, my dear, I wish you were down here with me! There are
+no mice in the air, I'm afraid, but you might catch a bat, and that's
+very like a mouse, you know. But do cats eat bats, I wonder?" And here
+Alice began to get rather sleepy, and went on saying to herself, in a
+dreamy sort of way, "Do cats eat bats? Do cats eat bats?" and sometimes,
+"Do bats eat cats?" for, you see, as she couldn't answer either
+question, it didn't much matter which way she put it. She felt that she
+was dozing off, and had just begun to dream that she was walking hand in
+hand with Dinah, and saying to her very earnestly, "Now, Dinah, tell me
+the truth: did you ever eat a bat?" when suddenly, thump! thump! down
+she came upon a heap of sticks and dry leaves, and the fall was over.
+
+Alice was not a bit hurt, and she jumped up on to her feet in a moment:
+she looked up, but it was all dark overhead; before her was another long
+passage, and the White Rabbit was still in sight, hurrying down it.
+There was not a moment to be lost: away went Alice like the wind, and
+was just in time to hear it say, as it turned a corner, "Oh my ears and
+whiskers, how late it's getting!" She was close behind it when she
+turned the corner, but the Rabbit was no longer to be seen: she found
+herself in a long, low hall, which was lit up by a row of lamps hanging
+from the roof.
+
+There were doors all round the hall, but they were all locked; and when
+Alice had been all the way down one side and up the other, trying every
+door, she walked sadly down the middle, wondering how she was ever to
+get out again.
+
+Suddenly she came upon a little three-legged table, all made of solid
+glass; there was nothing on it but a tiny golden key, and Alice's first
+idea was that this might belong to one of the doors of the hall; but,
+alas! either the locks were too large, or the key was too small, but at
+any rate it would not open any of them. However, on the second time
+round, she came upon a low curtain she had not noticed before, and
+behind it was a little door about fifteen inches high: she tried the
+little golden key in the lock, and to her great delight it fitted!
+
+Alice opened the door and found that it led into a small passage, not
+much larger than a rat-hole: she knelt down and looked along the passage
+into the loveliest garden you ever saw. How she longed to get out of
+that dark hall, and wander about among those beds of bright flowers and
+those cool fountains, but she could not even get her head through the
+doorway; "and even if my head would go through," thought poor Alice, "it
+would be of very little use without my shoulders. Oh, how I wish I could
+shut up like a telescope! I think I could, if I only knew how to begin."
+For, you see, so many out-of-the-way things had happened lately, that
+Alice had begun to think that very few things indeed were really
+impossible.
+
+There seemed to be no use in waiting by the little door, so she went
+back to the table, half hoping she might find another key on it, or at
+any rate a book of rules for shutting people up like telescopes: this
+time she found a little bottle on it ("which certainly was not here
+before," said Alice,) and tied round the neck of the bottle was a paper
+label, with the words "DRINK ME" beautifully printed on it in large
+letters.
+
+It was all very well to say "Drink me," but the wise little Alice was
+not going to do _that_ in a hurry. "No, I'll look first," she said, "and
+see whether it's marked '_poison_' or not;" for she had read several
+nice little stories about children who had got burnt, and eaten up by
+wild beasts, and other unpleasant things, all because they _would_ not
+remember the simple rules their friends had taught them: such as, that a
+red-hot poker will burn you if you hold it too long; and that, if you
+cut your finger _very_ deeply with a knife, it usually bleeds; and she
+had never forgotten that, if you drink much from a bottle marked
+"poison," it is almost certain to disagree with you, sooner or later.
+
+However, this bottle was _not_ marked "poison," so Alice ventured to
+taste it, and finding it very nice (it had, in fact, a sort of mixed
+flavour of cherry-tart, custard, pineapple, roast turkey, coffee, and
+hot buttered toast,) she very soon finished it off.
+
+ * * * * *
+
+"What a curious feeling!" said Alice. "I must be shutting up like a
+telescope."
+
+And so it was indeed: she was now only ten inches high, and her face
+brightened up at the thought that she was now the right size for going
+through that little door into that lovely garden. First, however, she
+waited for a few minutes to see if she was going to shrink any further:
+she felt a little nervous about this: "for it might end, you know," said
+Alice to herself, "in my going out altogether, like a candle. I wonder
+what I should be like then?" And she tried to fancy what the flame of a
+candle looks like after the candle is blown out, for she could not
+remember ever having seen such a thing.
+
+After a while, finding that nothing more happened, she decided on going
+into the garden at once; but, alas for poor Alice! when she got to the
+door, she found she had forgotten the little golden key, and when she
+went back to the table for it, she found she could not possibly reach
+it: she could see it quite plainly through the glass, and she tried her
+best to climb up one of the legs of the table, but it was too slippery;
+and when she had tired herself out with trying, the poor little thing
+sat down and cried.
+
+"Come, there's no use in crying like that!" said Alice to herself,
+rather sharply. "I advise you to leave off this minute!" She generally
+gave herself very good advice (though she very seldom followed it), and
+sometimes she scolded herself so severely as to bring tears into her
+eyes; and once she remembered trying to box her own ears for having
+cheated herself in a game of croquet she was playing against herself,
+for this curious child was very fond of pretending to be two people.
+"But it's no use now," thought poor Alice, "to pretend to be two people!
+Why there's hardly enough of me left to make _one_ respectable person!"
+
+Soon her eye fell on a little glass box that was lying under the table:
+she opened it, and found in it a very small cake, on which the words
+"EAT ME" were beautifully marked in currants. "Well, I'll eat it," said
+Alice, "and if it makes me grow larger, I can reach the key; and if it
+makes me grow smaller, I can creep under the door; so either way I'll
+get into the garden, and I don't care which happens!"
+
+She ate a little bit, and said anxiously to herself, "Which way? Which
+way?" holding her hand on the top of her head to feel which way it was
+growing, and she was quite surprised to find that she remained the same
+size; to be sure, this is what generally happens when one eats cake,
+but Alice had got so much into the way of expecting nothing but
+out-of-the-way things to happen, that it seemed quite dull and stupid
+for life to go on in the common way.
+
+So she set to work, and very soon finished off the cake.
+
+ * * * * *
+
+
+
+
+CHAPTER II
+
+
+[Sidenote: _Pool of Tears_]
+
+"CURIOUSER and curiouser!" cried Alice (she was so much
+surprised, that for a moment she quite forgot how to speak good
+English); "now I'm opening out like the largest telescope that ever was!
+Good-bye, feet!" (for when she looked down at her feet, they seemed to
+be almost out of sight, they were getting so far off). "Oh, my poor
+little feet, I wonder who will put on your shoes and stockings for you
+now, dears? I'm sure _I_ sha'n't be able! I shall be a great deal too
+far off to trouble myself about you: you must manage the best way you
+can--but I must be kind to them," thought Alice, "or perhaps they won't
+walk the way I want to go! Let me see: I'll give them a new pair of
+boots every Christmas."
+
+And she went on planning to herself how she would manage it. "They must
+go by the carrier," she thought; "and how funny it'll seem, sending
+presents to one's own feet! And how odd the directions will look!
+
+ Alice's Right Foot, Esq.
+ Hearthrug,
+ near the Fender,
+ (with Alice's love).
+
+Oh dear, what nonsense I'm talking!"
+
+Just then her head struck against the roof of the hall: in fact she was
+now rather more than nine feet high, and she at once took up the little
+golden key and hurried off to the garden door.
+
+Poor Alice! It was as much as she could do, lying down on one side, to
+look through into the garden with one eye; but to get through was more
+hopeless than ever: she sat down and began to cry again.
+
+"You ought to be ashamed of yourself," said Alice, "a great girl like
+you" (she might well say this), "to go on crying in this way! Stop this
+moment, I tell you!" But she went on all the same, shedding gallons of
+tears, until there was a large pool all round her, about four inches
+deep and reaching half down the hall.
+
+[Illustration: CURIOUSER AND CURIOUSER]
+
+After a time she heard a little pattering of feet in the distance, and
+she hastily dried her eyes to see what was coming. It was the White
+Rabbit returning, splendidly dressed, with a pair of white kid gloves in
+one hand and a large fan in the other: he came trotting along in a great
+hurry, muttering to himself as he came, "Oh! the Duchess, the Duchess!
+Oh! won't she be savage if I've kept her waiting!" Alice felt so
+desperate that she was ready to ask help of any one; so, when the
+Rabbit came near her, she began, in a low, timid voice, "If you please,
+sir----" The Rabbit started violently, dropped the white kid gloves and
+the fan, and scurried away into the darkness as hard as he could go.
+
+Alice took up the fan and gloves, and, as the hall was very hot, she
+kept fanning herself all the time she went on talking! "Dear, dear! How
+queer everything is to-day! And yesterday things went on just as usual.
+I wonder if I've been changed during the night? Let me think: _was_ I
+the same when I got up this morning? I almost think I can remember
+feeling a little different. But if I'm not the same, the next question
+is, who in the world am I? Ah, _that's_ the great puzzle!" And she began
+thinking over all the children she knew that were of the same age as
+herself, to see if she could have been changed for any of them.
+
+"I'm sure I'm not Ada," she said, "for her hair goes in such long
+ringlets, and mine doesn't go in ringlets at all; and I'm sure I can't
+be Mabel, for I know all sorts of things, and she, oh! she knows such a
+very little! Besides, _she's_ she, and _I'm_ I, and--oh dear, how
+puzzling it all is! I'll try if I know all the things I used to know.
+Let me see: four times five is twelve, and four times six is thirteen,
+and four times seven is--oh dear! I shall never get to twenty at that
+rate! However, the Multiplication Table doesn't signify: let's try
+Geography. London is the capital of Paris, and Paris is the capital of
+Rome, and Rome--no, _that's_ all wrong, I'm certain! I must have been
+changed for Mabel! I'll try and say '_How doth the little----_'" and she
+crossed her hands on her lap as if she were saying lessons, and began to
+repeat it, but her voice sounded hoarse and strange, and the words did
+not come the same as they used to do:--
+
+ "How doth the little crocodile
+ Improve his shining tail,
+ And pour the waters of the Nile
+ On every golden scale!
+
+ "How cheerfully he seems to grin,
+ How neatly spreads his claws,
+ And welcomes little fishes in,
+ With gently smiling jaws!"
+
+"I'm sure those are not the right words," said poor Alice, and her eyes
+filled with tears again as she went on. "I must be Mabel, after all, and
+I shall have to go and live in that poky little house, and have next to
+no toys to play with, and oh! ever so many lessons to learn! No, I've
+made up my mind about it; if I'm Mabel, I'll stay down here! It'll be no
+use their putting their heads down and saying, 'Come up again, dear!' I
+shall only look up and say, 'Who am I then? Tell me that first, and
+then, if I like being that person, I'll come up: if not, I'll stay down
+here till I'm somebody else'--but, oh dear!" cried Alice with a sudden
+burst of tears, "I do wish they _would_ put their heads down! I am so
+_very_ tired of being all alone here!"
+
+As she said this she looked down at her hands, and was surprised to see
+that she had put on one of the Rabbit's little white kid gloves while
+she was talking. "How _can_ I have done that?" she thought. "I must be
+growing small again." She got up and went to the table to measure
+herself by it, and found that, as nearly as she could guess, she was now
+about two feet high, and was going on shrinking rapidly: she soon found
+out that the cause of this was the fan she was holding, and she dropped
+it hastily, just in time to avoid shrinking away altogether.
+
+"That _was_ a narrow escape!" said Alice, a good deal frightened at the
+sudden change, but very glad to find herself still in existence; "and
+now for the garden!" and she ran with all speed back to the little door:
+but alas! the little door was shut again, and the little golden key was
+lying on the glass table as before, "and things are worse than ever,"
+thought the poor child, "for I never was so small as this before, never!
+And I declare it's too bad, that it is!"
+
+As she said these words her foot slipped, and in another moment, splash!
+she was up to her chin in salt water. Her first idea was that she had
+somehow fallen into the sea, "and in that case I can go back by
+railway," she said to herself. (Alice had been to the seaside once in
+her life, and had come to the general conclusion, that wherever you go
+to on the English coast you find a number of bathing machines in the
+sea, some children digging in the sand with wooden spades, then a row
+of lodging houses, and behind them a railway station.) However, she soon
+made out that she was in the pool of tears which she had wept when she
+was nine feet high.
+
+"I wish I hadn't cried so much!" said Alice, as she swam about, trying
+to find her way out. "I shall be punished for it now, I suppose, by
+being drowned in my own tears! That _will_ be a queer thing, to be sure!
+However, everything is queer to-day."
+
+Just then she heard something splashing about in the pool a little way
+off, and she swam nearer to make out what it was: at first she thought
+it must be a walrus or hippopotamus, but then she remembered how small
+she was now, and she soon made out that it was only a mouse that had
+slipped in like herself.
+
+"Would it be of any use now," thought Alice, "to speak to this mouse?
+Everything is so out-of-the-way down here, that I should think very
+likely it can talk: at any rate, there's no harm in trying." So she
+began: "O Mouse, do you know the way out of this pool? I am very tired
+of swimming about here, O Mouse!" (Alice thought this must be the right
+way of speaking to a mouse; she had never done such a thing before, but
+she remembered having seen in her brother's Latin Grammar, "A mouse--of
+a mouse--to a mouse--a mouse--O mouse!") The Mouse looked at her rather
+inquisitively, and seemed to her to wink with one of its little eyes,
+but it said nothing.
+
+"Perhaps it doesn't understand English," thought Alice; "I daresay it's
+a French mouse, come over with William the Conqueror." (For, with all
+her knowledge of history, Alice had no very clear notion how long ago
+anything had happened.) So she began again: "Où est ma chatte?" which
+was the first sentence in her French lesson-book. The Mouse gave a
+sudden leap out of the water, and seemed to quiver all over with fright.
+"Oh, I beg your pardon!" cried Alice hastily, afraid that she had hurt
+the poor animal's feelings. "I quite forgot you didn't like cats."
+
+"Not like cats!" cried the Mouse, in a shrill, passionate voice. "Would
+_you_ like cats if you were me?"
+
+"Well, perhaps not," said Alice in a soothing tone: "don't be angry
+about it. And yet I wish I could show you our cat Dinah: I think you'd
+take a fancy to cats if you could only see her. She is such a dear quiet
+thing," Alice went on, half to herself, as she swam lazily about in the
+pool, "and she sits purring so nicely by the fire, licking her paws and
+washing her face--and she is such a nice soft thing to nurse--and she's
+such a capital one for catching mice----oh, I beg your pardon!" cried
+Alice again, for this time the Mouse was bristling all over, and she
+felt certain it must be really offended. "We won't talk about her any
+more if you'd rather not."
+
+"We, indeed!" cried the Mouse, who was trembling down to the end of his
+tail. "As if _I_ would talk on such a subject! Our family always _hated_
+cats: nasty, low, vulgar things! Don't let me hear the name again!"
+
+[Illustration: _The Pool of Tears_]
+
+"I won't indeed!" said Alice, in a great hurry to change the subject of
+conversation. "Are you--are you fond--of--of dogs?" The Mouse did not
+answer, so Alice went on eagerly: "There is such a nice little dog near
+our house I should like to show you! A little bright-eyed terrier, you
+know, with oh, such long curly brown hair! And it'll fetch things
+when you throw them, and it'll sit up and beg for its dinner, and all
+sorts of things--I can't remember half of them--and it belongs to a
+farmer, you know, and he says it's so useful, it's worth a hundred
+pounds! He says it kills all the rats and--oh dear!" cried Alice in a
+sorrowful tone, "I'm afraid I've offended it again!" For the Mouse was
+swimming away from her as hard as it could go, and making quite a
+commotion in the pool as it went.
+
+So she called softly after it, "Mouse dear! Do come back again, and we
+won't talk about cats or dogs either, if you don't like them!"
+
+When the Mouse heard this, it turned round and swam slowly back to her:
+its face was quite pale (with passion, Alice thought), and it said in a
+low trembling voice, "Let us get to the shore, and then I'll tell you my
+history, and you'll understand why it is I hate cats and dogs."
+
+It was high time to go, for the pool was getting quite crowded with the
+birds and animals that had fallen into it: there were a Duck and a Dodo,
+a Lory and an Eaglet, and several other curious creatures. Alice led the
+way, and the whole party swam to the shore.
+
+
+
+
+CHAPTER III
+
+
+[Sidenote: _A Caucus-race and a Long Tale_]
+
+THEY were indeed a queer-looking party that assembled on
+the bank--the birds with draggled feathers, the animals with their fur
+clinging close to them, and all dripping wet, cross, and uncomfortable.
+
+The first question of course was, how to get dry again: they had a
+consultation about this, and after a few minutes it seemed quite natural
+to Alice to find herself talking familiarly with them, as if she had
+known them all her life. Indeed, she had quite a long argument with the
+Lory, who at last turned sulky, and would only say, "I am older than
+you, and must know better;" and this Alice would not allow without
+knowing how old it was, and, as the Lory positively refused to tell its
+age, there was no more to be said.
+
+At last the Mouse, who seemed to be a person of authority among them,
+called out "Sit down, all of you, and listen to me! _I'll_ soon make you
+dry enough!" They all sat down at once, in a large ring, with the Mouse
+in the middle. Alice kept her eyes anxiously fixed on it, for she felt
+sure she would catch a bad cold if she did not get dry very soon.
+
+"Ahem!" said the Mouse with an important air. "Are you all ready? This
+is the driest thing I know. Silence all round, if you please! 'William
+the Conqueror, whose cause was favoured by the pope, was soon submitted
+to by the English, who wanted leaders, and had been of late much
+accustomed to usurpation and conquest. Edwin and Morcar, the earls of
+Mercia and Northumbria--'"
+
+"Ugh!" said the Lory, with a shiver.
+
+"I beg your pardon!" said the Mouse, frowning, but very politely. "Did
+you speak?"
+
+"Not I!" said the Lory hastily.
+
+"I thought you did," said the Mouse, "--I proceed. 'Edwin and Morcar,
+the earls of Mercia and Northumbria, declared for him: and even
+Stigand, the patriotic Archbishop of Canterbury, found it advisable--'"
+
+"Found _what_?" said the Duck.
+
+"Found _it_," the Mouse replied rather crossly: "of course you know what
+'it' means."
+
+"I know what 'it' means well enough, when _I_ find a thing," said the
+Duck; "it's generally a frog or a worm. The question is, what did the
+archbishop find?"
+
+The Mouse did not notice this question, but hurriedly went on, "'--found
+it advisable to go with Edgar Atheling to meet William and offer him the
+crown. William's conduct at first was moderate. But the insolence of his
+Normans--' How are you getting on now, my dear?" it continued, turning
+to Alice as it spoke.
+
+"As wet as ever," said Alice in a melancholy tone; "doesn't seem to dry
+me at all."
+
+"In that case," said the Dodo solemnly, rising to its feet, "I move that
+the meeting adjourn, for the immediate adoption of more energetic
+remedies----"
+
+"Speak English!" said the Eaglet. "I don't know the meaning of half
+those long words, and, what's more, I don't believe you do either!" And
+the Eaglet bent down its head to hide a smile: some of the other birds
+tittered audibly.
+
+"What I was going to say," said the Dodo in an offended tone, "was that
+the best thing to get us dry would be a Caucus-race."
+
+"What _is_ a Caucus-race?" said Alice; not that she much wanted to know,
+but the Dodo had paused as if it thought that _somebody_ ought to speak,
+and no one else seemed inclined to say anything.
+
+"Why," said the Dodo, "the best way to explain it is to do it." (And, as
+you might like to try the thing yourself some winter day, I will tell
+you how the Dodo managed it.)
+
+First it marked out a race-course, in a sort of circle, ("the exact
+shape doesn't matter," it said,) and then all the party were placed
+along the course, here and there. There was no "One, two, three, and
+away," but they began running when they liked, and left off when they
+liked, so that it was not easy to know when the race was over. However,
+when they had been running half an hour or so, and were quite dry again,
+the Dodo suddenly called "The race is over!" and they all crowded round
+it, panting, and asking "But who has won?"
+
+This question the Dodo could not answer without a great deal of thought,
+and it stood for a long time with one finger pressed upon its forehead
+(the position in which you usually see Shakespeare, in the pictures of
+him), while the rest waited in silence. At last the Dodo said
+"_Everybody_ has won, and _all_ must have prizes."
+
+"But who is to give the prizes?" quite a chorus of voices asked.
+
+"Why, _she_, of course," said the Dodo, pointing to Alice with one
+finger; and the whole party at once crowded round her, calling out in a
+confused way, "Prizes! Prizes!"
+
+Alice had no idea what to do, and in despair she put her hand in her
+pocket, and pulled out a box of comfits (luckily the salt water had not
+got into it), and handed them round as prizes. There was exactly one
+apiece all round.
+
+ _They all crowded round it panting and asking,
+ "But who has won?"_
+
+[Illustration]
+
+"But she must have a prize herself, you know," said the Mouse.
+
+"Of course," the Dodo replied very gravely.
+
+"What else have you got in your pocket?" it went on, turning to Alice.
+
+"Only a thimble," said Alice sadly.
+
+"Hand it over here," said the Dodo.
+
+Then they all crowded round her once more, while the Dodo solemnly
+presented the thimble, saying "We beg your acceptance of this elegant
+thimble;" and, when it had finished this short speech, they all cheered.
+
+Alice thought the whole thing very absurd, but they all looked so grave
+that she did not dare to laugh; and, as she could not think of anything
+to say, she simply bowed, and took the thimble, looking as solemn as she
+could.
+
+The next thing was to eat the comfits; this caused some noise and
+confusion, as the large birds complained that they could not taste
+theirs, and the small ones choked and had to be patted on the back.
+However, it was over at last, and they sat down again in a ring, and
+begged the Mouse to tell them something more.
+
+"You promised to tell me your history, you know," said Alice, "and why
+it is you hate--C and D," she added in a whisper, half afraid that it
+would be offended again.
+
+[Illustration]
+
+"Mine is a long and sad tale!" said the Mouse, turning to Alice and
+sighing.
+
+"It _is_ a long tail, certainly," said Alice, looking down with wonder
+at the Mouse's tail; "but why do you call it sad?" And she kept on
+puzzling about it while the Mouse was speaking, so that her idea of the
+tale was something like this:--
+
+ "Fury said to
+ a mouse, That
+ he met in the
+ house, 'Let
+ us both go
+ to law: _I_
+ will prose-
+ cute _you_.--
+ Come, I'll
+ take no de-
+ nial: We
+ must have
+ the trial;
+ For really
+ this morn-
+ ing I've
+ nothing
+ to do.'
+ Said the
+ mouse to
+ the cur,
+ 'Such a
+ trial, dear
+ sir, With
+ no jury
+ or judge,
+ would
+ be wast-
+ ing our
+ breath.'
+ 'I'll be
+ judge,
+ I'll be
+ jury,'
+ said
+ cun-
+ ning
+ old
+ Fury:
+ 'I'll
+ try
+ the
+ whole
+ cause,
+ and
+ con-
+ demn
+ you to
+ death.'
+
+"You are not attending!" said the Mouse to Alice severely. "What are you
+thinking of?"
+
+"I beg your pardon," said Alice very humbly: "you had got to the fifth
+bend, I think?"
+
+"I had _not_!" cried the Mouse, angrily.
+
+"A knot!" said Alice, always ready to make herself useful, and looking
+anxiously about her. "Oh, do let me help to undo it!"
+
+"I shall do nothing of the sort," said the Mouse, getting up and walking
+away. "You insult me by talking such nonsense!"
+
+"I didn't mean it!" pleaded poor Alice. "But you're so easily offended,
+you know!"
+
+The Mouse only growled in reply.
+
+"Please come back and finish your story!" Alice called after it. And the
+others all joined in chorus, "Yes, please do!" but the Mouse only shook
+its head impatiently and walked a little quicker.
+
+"What a pity it wouldn't stay!" sighed the Lory, as soon as it was quite
+out of sight; and an old Crab took the opportunity of saying to her
+daughter, "Ah, my dear! Let this be a lesson to you never to lose
+_your_ temper!" "Hold your tongue, Ma!" said the young Crab, a little
+snappishly. "You're enough to try the patience of an oyster!"
+
+"I wish I had our Dinah here, I know I do!" said Alice aloud, addressing
+nobody in particular. "She'd soon fetch it back!"
+
+"And who is Dinah, if I might venture to ask the question?" said the
+Lory.
+
+Alice replied eagerly, for she was always ready to talk about her pet:
+"Dinah's our cat. And she's such a capital one for catching mice, you
+ca'n't think! And oh, I wish you could see her after the birds! Why,
+she'll eat a little bird as soon as look at it!"
+
+This speech caused a remarkable sensation among the party. Some of the
+birds hurried off at once; one old Magpie began wrapping itself up very
+carefully, remarking "I really must be getting home; the night-air
+doesn't suit my throat!" and a Canary called out in a trembling voice to
+its children "Come away, my dears! It's high time you were all in bed!"
+On various pretexts they all moved off, and Alice was soon left alone.
+
+"I wish I hadn't mentioned Dinah!" she said to herself in a melancholy
+tone. "Nobody seems to like her, down here, and I'm sure she's the best
+cat in the world! Oh, my dear Dinah! I wonder if I shall ever see you
+any more!" And here poor Alice began to cry again, for she felt very
+lonely and low-spirited. In a little while, however, she again heard a
+little pattering of footsteps in the distance, and she looked up
+eagerly, half hoping that the Mouse had changed his mind, and was coming
+back to finish his story.
+
+
+
+
+CHAPTER IV
+
+
+[Sidenote: _The Rabbit sends in a Little Bill_]
+
+IT was the White Rabbit, trotting slowly back again, and
+looking anxiously about as it went, as if it had lost something; and she
+heard it muttering to itself, "The Duchess! The Duchess! Oh my dear
+paws! Oh my fur and whiskers! She'll get me executed, as sure as ferrets
+are ferrets! Where _can_ I have dropped them, I wonder?" Alice guessed
+in a moment that it was looking for the fan and the pair of white kid
+gloves, and she very good-naturedly began hunting about for them, but
+they were nowhere to be seen--everything seemed to have changed since
+her swim in the pool, and the great hall, with the glass table and the
+little door, had vanished completely.
+
+Very soon the Rabbit noticed Alice, as she went hunting about, and
+called out to her in an angry tone, "Why, Mary Ann, what _are_ you
+doing out here? Run home this moment, and fetch me a pair of gloves and
+a fan! Quick, now!" And Alice was so much frightened that she ran off at
+once in the direction it pointed to, without trying to explain the
+mistake it had made.
+
+"He took me for his housemaid," she said to herself as she ran. "How
+surprised he'll be when he finds out who I am! But I'd better take him
+his fan and gloves--that is, if I can find them." As she said this, she
+came upon a neat little house, on the door of which was a bright brass
+plate with the name "W. RABBIT" engraved upon it. She went in without
+knocking, and hurried up stairs, in great fear lest she should meet the
+real Mary Ann, and be turned out of the house before she had found the
+fan and gloves.
+
+[Illustration: "_Why, Mary Ann, what are you doing out here?_"]
+
+"How queer it seems," Alice said to herself, "to be going messages for a
+rabbit! I suppose Dinah'll be sending me on messages next!" And she
+began fancying the sort of thing that would happen: "'Miss Alice! Come
+here directly, and get ready for your walk!' 'Coming in a minute, nurse!
+But I've got to watch this mouse-hole till Dinah comes back, and see
+that the mouse doesn't get out.' Only I don't think," Alice went on,
+"that they'd let Dinah stop in the house if it began ordering people
+about like that!"
+
+By this time she had found her way into a tidy little room with a table
+in the window, and on it (as she had hoped) a fan and two or three pairs
+of tiny white kid gloves: she took up the fan and a pair of the gloves,
+and was just going to leave the room, when her eye fell upon a little
+bottle that stood near the looking-glass. There was no label this time
+with the words "DRINK ME," but nevertheless she uncorked it and put it
+to her lips. "I know _something_ interesting is sure to happen," she
+said to herself, "whenever I eat or drink anything; so I'll just see
+what this bottle does. I do hope it will make me grow large again, for
+really I'm quite tired of being such a tiny little thing!"
+
+It did so indeed, and much sooner than she had expected: before she had
+drunk half the bottle, she found her head pressing against the ceiling,
+and had to stoop to save her neck from being broken. She hastily put
+down the bottle, saying to herself "That's quite enough--I hope I
+sha'n't grow any more--As it is, I can't get out at the door--I do wish
+I hadn't drunk quite so much!"
+
+Alas! it was too late to wish that! She went on growing, and growing,
+and very soon had to kneel down on the floor: in another minute there
+was not even room for this, and she tried the effect of lying down with
+one elbow against the door, and the other arm curled round her head.
+Still she went on growing, and, as a last resource, she put one arm out
+of the window, and one foot up the chimney, and said to herself "Now I
+can do no more, whatever happens. What _will_ become of me?"
+
+Luckily for Alice, the little magic bottle had now had its full effect,
+and she grew no larger: still it was very uncomfortable, and, as there
+seemed to be no sort of chance of her ever getting out of the room
+again, no wonder she felt unhappy.
+
+"It was much pleasanter at home," thought poor Alice, "when one wasn't
+always growing larger and smaller, and being ordered about by mice and
+rabbits. I almost wish I hadn't gone down that rabbit-hole--and
+yet--and yet--it's rather curious, you know, this sort of life! I do
+wonder what _can_ have happened to me! When I used to read fairy-tales,
+I fancied that kind of thing never happened, and now here I am in the
+middle of one! There ought to be a book written about me, that there
+ought! And when I grow up, I'll write one--but I'm grown up now," she
+added in a sorrowful tone; "at least there's no room to grow up any more
+_here_."
+
+"But then," thought Alice, "shall I _never_ get any older than I am now?
+That'll be a comfort, one way--never to be an old woman--but
+then--always to have lessons to learn! Oh, I shouldn't like _that_!"
+
+"Oh, you foolish Alice!" she answered herself. "How can you learn
+lessons in here? Why, there's hardly room for _you_, and no room at all
+for any lesson-books!"
+
+And so she went on, taking first one side and then the other, and making
+quite a conversation of it altogether; but after a few minutes she heard
+a voice outside, and stopped to listen.
+
+"Mary Ann! Mary Ann!" said the voice. "Fetch me my gloves this moment!"
+Then came a little pattering of feet on the stairs. Alice knew it was
+the Rabbit coming to look for her, and she trembled till she shook the
+house, quite forgetting that she was now about a thousand times as large
+as the Rabbit, and had no reason to be afraid of it.
+
+Presently the Rabbit came up to the door, and tried to open it; but, as
+the door opened inwards, and Alice's elbow was pressed hard against it,
+that attempt proved a failure. Alice heard it say to itself "Then I'll
+go round and get in at the window."
+
+"_That_ you won't" thought Alice, and, after waiting till she fancied
+she heard the Rabbit just under the window, she suddenly spread out her
+hand, and made a snatch in the air. She did not get hold of anything,
+but she heard a little shriek and a fall, and a crash of broken glass,
+from which she concluded that it was just possible it had fallen into a
+cucumber-frame, or something of the sort.
+
+Next came an angry voice--the Rabbit's--"Pat! Pat! Where are you?" And
+then a voice she had never heard before, "Sure then I'm here! Digging
+for apples, yer honour!"
+
+"Digging for apples, indeed!" said the Rabbit angrily. "Here! Come and
+help me out of _this_!" (Sounds of more broken glass.)
+
+"Now tell me, Pat, what's that in the window?"
+
+"Sure, it's an arm, yer honour." (He pronounced it "arrum.")
+
+"An arm, you goose! Who ever saw one that size? Why, it fills the whole
+window!"
+
+"Sure, it does, yer honour? but it's an arm for all that."
+
+"Well, it's got no business there, at any rate: go and take it away!"
+
+There was a long silence after this, and Alice could only hear whispers
+now and then; such as, "Sure, I don't like it, yer honour, at all, at
+all!" "Do as I tell you, you coward!" and at last she spread out her
+hand again, and made another snatch in the air. This time there were
+_two_ little shrieks, and more sounds of broken glass. "What a number of
+cucumber-frames there must be!" thought Alice. "I wonder what they'll do
+next! As for pulling me out of the window, I only wish they _could_!
+I'm sure _I_ don't want to stay in here any longer!"
+
+She waited for some time without hearing anything more: at last came a
+rumbling of little cart-wheels, and the sound of a good many voices all
+talking together: she made out the words: "Where's the other
+ladder?--Why I hadn't to bring but one; Bill's got the other--Bill!
+Fetch it here, lad!--Here, put 'em up at this corner--No, tie 'em
+together first--they don't reach half high enough yet--Oh! they'll do
+well enough; don't be particular--Here, Bill! catch hold of this
+rope--Will the roof bear?--Mind that loose slate--Oh, it's coming down!
+Heads below!" (a loud crash)--"Now, who did that?--It was Bill, I
+fancy--Who's to go down the chimney?--Nay, _I_ sha'n't! _You_ do
+it!--_That_ I won't, then! Bill's to go down--Here, Bill! the master
+says you've to go down the chimney!"
+
+"Oh! So Bill's got to come down the chimney, has he?" said Alice to
+herself. "Why, they seem to put everything upon Bill! I wouldn't be in
+Bill's place for a good deal: this fireplace is narrow, to be sure; but
+I _think_ I can kick a little!"
+
+She drew her foot as far down the chimney as she could, and waited till
+she heard a little animal (she couldn't guess of what sort it was)
+scratching and scrambling about in the chimney close above her: then,
+saying to herself "This is Bill," she gave one sharp kick, and waited to
+see what would happen next.
+
+The first thing she heard was a general chorus of "There goes Bill!"
+then the Rabbit's voice alone--"Catch him, you by the hedge!" then
+silence, and then another confusion of voices--"Hold up his head--Brandy
+now--Don't choke him--How was it, old fellow? What happened to you? Tell
+us all about it!"
+
+At last came a little feeble, squeaking voice, ("That's Bill," thought
+Alice,) "Well, I hardly know--No more, thank ye; I'm better now--but I'm
+a deal too flustered to tell you--all I know is, something comes at me
+like a Jack-in-the-box, and up I goes like a sky-rocket!"
+
+"So you did, old fellow!" said the others.
+
+"We must burn the house down!" said the Rabbit's voice. And Alice
+called out as loud as she could, "If you do, I'll set Dinah at you!"
+
+There was a dead silence instantly, and Alice thought to herself "I
+wonder what they _will_ do next! If they had any sense, they'd take the
+roof off." After a minute or two they began moving about again, and
+Alice heard the Rabbit say "A barrowful will do, to begin with."
+
+"A barrowful of _what_?" thought Alice. But she had not long to doubt,
+for the next moment a shower of little pebbles came rattling in at the
+window, and some of them hit her in the face. "I'll put a stop to this,"
+she said to herself, and shouted out "You'd better not do that again!"
+which produced another dead silence.
+
+Alice noticed with some surprise that the pebbles were all turning into
+little cakes as they lay on the floor, and a bright idea came into her
+head. "If I eat one of these cakes," she thought, "it's sure to make
+_some_ change in my size; and, as it can't possibly make me larger, it
+must make me smaller, I suppose."
+
+So she swallowed one of the cakes, and was delighted to find that she
+began shrinking directly. As soon as she was small enough to get through
+the door, she ran out of the house, and found quite a crowd of little
+animals and birds waiting outside. The poor little Lizard, Bill, was in
+the middle, being held up by two guinea-pigs, who were giving it
+something out of a bottle. They all made a rush at Alice the moment she
+appeared; but she ran off as hard as she could, and soon found herself
+safe in a thick wood.
+
+"The first thing I've got to do," said Alice to herself, as she wandered
+about in the wood, "is to grow to my right size again; and the second
+thing is to find my way into that lovely garden. I think that will be
+the best plan."
+
+It sounded an excellent plan, no doubt, and very neatly and simply
+arranged; the only difficulty was, that she had not the smallest idea
+how to set about it; and, while she was peering about anxiously among
+the trees, a little sharp bark just over her head made her look up in a
+great hurry.
+
+An enormous puppy was looking down at her with large round eyes, and
+feebly stretching out one paw, trying to touch her. "Poor little
+thing!" said Alice, in a coaxing tone, and she tried hard to whistle to
+it; but she was terribly frightened all the time at the thought that it
+might be hungry, in which case it would be very likely to eat her up in
+spite of all her coaxing.
+
+Hardly knowing what she did, she picked up a little bit of stick, and
+held it out to the puppy; whereupon the puppy jumped into the air off
+all its feet at once, with a yelp of delight, and rushed at the stick,
+and made believe to worry it; then Alice dodged behind a great thistle,
+to keep herself from being run over; and, the moment she appeared on the
+other side, the puppy made another rush at the stick, and tumbled head
+over heels in its hurry to get hold of it; then Alice, thinking it was
+very like having a game of play with a cart-horse, and expecting every
+moment to be trampled under its feet, ran round the thistle again; then
+the puppy began a series of short charges at the stick, running a little
+way forwards each time and a long way back, and barking hoarsely all the
+while, till at last it sat down a good way off, panting, with its
+tongue hanging out of its mouth, and its great eyes half shut.
+
+This seemed to Alice a good opportunity for making her escape; so she
+set off at once, and ran till she was quite tired and out of breath, and
+till the puppy's bark sounded quite faint in the distance.
+
+"And yet what a dear little puppy it was!" said Alice, as she leant
+against a buttercup to rest herself, and fanned herself with one of the
+leaves. "I should have liked teaching it tricks very much, if--if I'd
+only been the right size to do it! Oh, dear! I'd nearly forgotten that
+I've got to grow up again! Let me see--how _is_ it to be managed? I
+suppose I ought to eat or drink something or other; but the great
+question is, what?"
+
+The great question certainly was, what? Alice looked all round her at
+the flowers and the blades of grass, but she could not see anything that
+looked like the right thing to eat or drink under the circumstances.
+There was a large mushroom growing near her, about the same height as
+herself; and, when she had looked under it, and on both sides of it, and
+behind it, it occurred to her that she might as well look and see what
+was on the top of it.
+
+She stretched herself up on tiptoe, and peeped over the edge of the
+mushroom, and her eyes immediately met those of a large blue
+caterpillar, that was sitting on the top with its arms folded, quietly
+smoking a long hookah, and taking not the smallest notice of her or of
+anything else.
+
+
+
+
+CHAPTER V
+
+
+[Sidenote: _Advice from a Caterpillar_]
+
+THE Caterpillar and Alice looked at each other for some
+time in silence: at last the Caterpillar took the hookah out of its
+mouth, and addressed her in a languid, sleepy voice.
+
+"Who are _you_?" said the Caterpillar.
+
+This was not an encouraging opening for a conversation. Alice replied,
+rather shyly, "I hardly know, sir, just at present--at least I know who
+I _was_ when I got up this morning, but I think I must have been changed
+several times since then."
+
+"What do you mean by that?" said the Caterpillar sternly. "Explain
+yourself!"
+
+"I can't explain _myself_, I'm afraid, sir," said Alice, "because I'm
+not myself, you see."
+
+"I don't see," said the Caterpillar.
+
+"I'm afraid I can't put it more clearly," Alice replied very politely,
+"for I can't understand it myself to begin with; and being so many
+different sizes in a day is very confusing."
+
+"It isn't," said the Caterpillar.
+
+"Well, perhaps you haven't found it so yet," said Alice, "but when you
+have to turn into a chrysalis--you will some day, you know--and then
+after that into a butterfly, I should think you'll feel it a little
+queer, won't you?"
+
+"Not a bit," said the Caterpillar.
+
+"Well, perhaps your feelings may be different," said Alice; "all I know
+is, it would feel very queer to _me_."
+
+"You!" said the Caterpillar contemptuously. "Who are _you_?"
+
+Which brought them back again to the beginning of the conversation.
+Alice felt a little irritated at the Caterpillar's making such _very_
+short remarks, and she drew herself up and said, very gravely, "I think
+you ought to tell me who _you_ are, first."
+
+"Why?" said the Caterpillar.
+
+[Illustration: _Advice from a Caterpillar_]
+
+Here was another puzzling question; and as Alice could not think of any
+good reason, and as the Caterpillar seemed to be in a _very_
+unpleasant state of mind, she turned away.
+
+"Come back!" the Caterpillar called after her. "I've something important
+to say!"
+
+This sounded promising, certainly: Alice turned and came back again.
+
+"Keep your temper," said the Caterpillar.
+
+"Is that all?" said Alice, swallowing down her anger as well as she
+could.
+
+"No," said the Caterpillar.
+
+Alice thought she might as well wait, as she had nothing else to do, and
+perhaps after all it might tell her something worth hearing. For some
+minutes it puffed away without speaking, but at last it unfolded its
+arms, took the hookah out of its mouth again, and said, "So you think
+you're changed, do you?"
+
+"I'm afraid I am, sir," said Alice; "I can't remember things as I
+used--and I don't keep the same size for ten minutes together!"
+
+"Can't remember _what_ things?" said the Caterpillar.
+
+"Well, I've tried to say '_How doth the little busy bee_,' but it all
+came different!" Alice replied in a very melancholy voice.
+
+"Repeat '_You are old, Father William_,'" said the Caterpillar.
+
+Alice folded her hands, and began:--
+
+ "You are old, Father William," the young man said,
+ "And your hair has become very white;
+ And yet you incessantly stand on your head--
+ Do you think, at your age, it is right?"
+
+ "In my youth," Father William replied to his son,
+ "I feared it might injure the brain;
+ But, now that I'm perfectly sure I have none,
+ Why, I do it again and again."
+
+ "You are old," said the youth, "as I mentioned before,
+ And have grown most uncommonly fat;
+ Yet you turned a back-somersault in at the door--
+ Pray, what is the reason of that?"
+
+ "In my youth," said the sage, as he shook his grey locks,
+ "I kept all my limbs very supple
+ By the use of this ointment--one shilling the box--
+ Allow me to sell you a couple?"
+
+ "You are old," said the youth, "and your jaws are too weak
+ For anything tougher than suet;
+ Yet you finished the goose, with the bones and the beak--
+ Pray, how did you manage to do it?"
+
+ "In my youth," said his father, "I took to the law
+ And argued each case with my wife;
+ And the muscular strength, which it gave to my jaw,
+ Has lasted the rest of my life."
+
+ "You are old," said the youth, "one would hardly suppose
+ That your eye was as steady as ever;
+ Yet you balanced an eel on the end of your nose--
+ What made you so awfully clever?"
+
+ "I have answered three questions, and that is enough,"
+ Said his father; "don't give yourself airs!
+ Do you think I can listen all day to such stuff?
+ Be off, or I'll kick you down stairs!"
+
+"That is not said right," said the Caterpillar.
+
+"Not _quite_ right, I'm afraid," said Alice, timidly; "some of the
+words have got altered."
+
+"It is wrong from beginning to end," said the Caterpillar, decidedly,
+and there was silence for some minutes.
+
+The Caterpillar was the first to speak.
+
+"What size do you want to be?" it asked.
+
+"Oh, I'm not particular as to size," Alice hastily replied; "only one
+doesn't like changing so often, you know."
+
+"I _don't_ know," said the Caterpillar.
+
+Alice said nothing: she had never been so much contradicted in all her
+life before, and she felt that she was losing her temper.
+
+"Are you content now?" said the Caterpillar.
+
+"Well, I should like to be a _little_ larger, sir, if you wouldn't
+mind," said Alice: "three inches is such a wretched height to be."
+
+"It is a very good height indeed!" said the Caterpillar angrily, rearing
+itself upright as it spoke (it was exactly three inches high).
+
+"But I'm not used to it!" pleaded poor Alice in a piteous tone. And she
+thought to herself, "I wish the creatures wouldn't be so easily
+offended!"
+
+"You'll get used to it in time," said the Caterpillar; and it put its
+hookah into its mouth and began smoking again.
+
+This time Alice waited patiently until it chose to speak again. In a
+minute or two the Caterpillar took the hookah out of its mouth and
+yawned once or twice, and shook itself. Then it got down off the
+mushroom, and crawled away into the grass, merely remarking as it went,
+"One side will make you grow taller, and the other side will make you
+grow shorter."
+
+"One side of _what_? The other side of _what_?" thought Alice to
+herself.
+
+"Of the mushroom," said the Caterpillar, just as if she had asked it
+aloud; and in another moment it was out of sight.
+
+Alice remained looking thoughtfully at the mushroom for a minute, trying
+to make out which were the two sides of it; and as it was perfectly
+round, she found this a very difficult question. However, at last she
+stretched her arms round it as far as they would go, and broke off a bit
+of the edge with each hand.
+
+"And now which is which?" she said to herself, and nibbled a little of
+the right-hand bit to try the effect: the next moment she felt a violent
+blow underneath her chin: it had struck her foot!
+
+[Illustration]
+
+She was a good deal frightened by this very sudden change, but she felt
+that there was no time to be lost, as she was shrinking rapidly; so she
+set to work at once to eat some of the other bit. Her chin was pressed
+so closely against her foot that there was hardly room to open her
+mouth; but she did it at last, and managed to swallow a morsel of the
+left-hand bit.
+
+ * * * * *
+
+"Come, my head's free at last!" said Alice in a tone of delight, which
+changed into alarm in another moment, when she found that her shoulders
+were nowhere to be found: all she could see, when she looked down, was
+an immense length of neck, which seemed to rise like a stalk out of a
+sea of green leaves that lay far below her.
+
+"What _can_ all that green stuff be?" said Alice. "And where have my
+shoulders got to? And oh, my poor hands, how is it I ca'n't see you?"
+She was moving them about as she spoke, but no result seemed to follow,
+except a little shaking among the distant green leaves.
+
+As there seemed to be no chance of getting her hands up to her head, she
+tried to get her head down to them, and was delighted to find that her
+neck would bend about easily in any direction, like a serpent. She had
+just succeeded in curving it down into a graceful zigzag, and was going
+to dive in among the leaves, which she found to be nothing but the tops
+of the trees under which she had been wandering, when a sharp hiss made
+her draw back in a hurry: a large pigeon had flown into her face, and
+was beating her violently with its wings.
+
+"Serpent!" screamed the Pigeon.
+
+"I'm _not_ a serpent!" said Alice indignantly. "Let me alone!"
+
+"Serpent, I say again!" repeated the Pigeon, but in a more subdued tone,
+and added with a kind of a sob, "I've tried every way, and nothing seems
+to suit them!"
+
+"I haven't the least idea what you're talking about," said Alice.
+
+"I've tried the roots of trees, and I've tried banks, and I've tried
+hedges," the Pigeon went on, without attending to her; "but those
+serpents! There's no pleasing them!"
+
+Alice was more and more puzzled, but she thought there was no use in
+saying anything more till the Pigeon had finished.
+
+"As if it wasn't trouble enough hatching the eggs," said the Pigeon;
+"but I must be on the look-out for serpents night and day! Why, I
+haven't had a wink of sleep these three weeks!"
+
+"I'm very sorry you've been annoyed," said Alice, who was beginning to
+see its meaning.
+
+[Illustration]
+
+"And just as I'd taken the highest tree in the wood," continued the
+Pigeon, raising its voice to a shriek, "and just as I was thinking I
+should be free of them at last, they must needs come wriggling down from
+the sky! Ugh, Serpent!"
+
+"But I'm _not_ a serpent, I tell you!" said Alice. "I'm a---- I'm a
+----"
+
+"Well! _What_ are you?" said the Pigeon. "I can see you're trying to
+invent something!"
+
+"I--I'm a little girl," said Alice, rather doubtfully, as she remembered
+the number of changes she had gone through that day.
+
+"A likely story indeed!" said the Pigeon in a tone of the deepest
+contempt. "I've seen a good many little girls in my time, but never
+_one_ with such a neck as that! No, no! You're a serpent; and there's no
+use denying it. I suppose you'll be telling me next that you never
+tasted an egg!"
+
+"I _have_ tasted eggs, certainly," said Alice, who was a very truthful
+child; "but little girls eat eggs quite as much as serpents do, you
+know."
+
+"I don't believe it," said the Pigeon; "but if they do, why then
+they're a kind of serpent, that's all I can say."
+
+This was such a new idea to Alice, that she was quite silent for a
+minute or two, which gave the Pigeon the opportunity of adding, "You're
+looking for eggs, I know _that_ well enough; and what does it matter to
+me whether you're a little girl or a serpent?"
+
+"It matters a good deal to _me_," said Alice hastily; "but I'm not
+looking for eggs, as it happens; and if I was, I shouldn't want _yours_:
+I don't like them raw."
+
+"Well, be off, then!" said the Pigeon in a sulky tone, as it settled
+down again into its nest. Alice crouched down among the trees as well as
+she could, for her neck kept getting entangled among the branches, and
+every now and then she had to stop and untwist it. After a while she
+remembered that she still held the pieces of mushroom in her hands, and
+she set to work very carefully, nibbling first at one and then at the
+other, and growing sometimes taller and sometimes shorter, until she had
+succeeded in bringing herself down to her usual height.
+
+It was so long since she had been anything near the right size, that it
+felt quite strange at first; but she got used to it in a few minutes,
+and began talking to herself, as usual. "Come, there's half my plan done
+now! How puzzling all these changes are! I'm never sure what I'm going
+to be, from one minute to another! However, I've got back to my right
+size: the next thing is, to get into that beautiful garden--how _is_
+that to be done, I wonder?" As she said this, she came suddenly upon an
+open place, with a little house in it about four feet high. "Whoever
+lives there," thought Alice, "it'll never do to come upon them _this_
+size: why, I should frighten them out of their wits!" So she began
+nibbling at the right-hand bit again, and did not venture to go near the
+house till she had brought herself down to nine inches high.
+
+
+
+
+CHAPTER VI
+
+
+[Sidenote: _Pig and Pepper_]
+
+FOR a minute or two she stood looking at the house, and
+wondering what to do next, when suddenly a footman in livery came
+running out of the wood--(she considered him to be a footman because he
+was in livery: otherwise, judging by his face only, she would have
+called him a fish)--and rapped loudly at the door with his knuckles. It
+was opened by another footman in livery, with a round face and large
+eyes like a frog; and both footmen, Alice noticed, had powdered hair
+that curled all over their heads. She felt very curious to know what it
+was all about, and crept a little way out of the wood to listen.
+
+The Fish-Footman began by producing from under his arm a great letter,
+nearly as large as himself, and this he handed over to the other,
+saying, in a solemn tone, "For the Duchess. An invitation from the
+Queen to play croquet." The Frog-Footman repeated, in the same solemn
+tone, only changing the order of the words a little, "From the Queen. An
+invitation for the Duchess to play croquet."
+
+Then they both bowed low, and their curls got entangled together.
+
+Alice laughed so much at this, that she had to run back into the wood
+for fear of their hearing her; and, when she next peeped out, the
+Fish-Footman was gone, and the other was sitting on the ground near the
+door, staring stupidly up into the sky.
+
+Alice went timidly up to the door and knocked.
+
+"There's no use in knocking," said the Footman, "and that for two
+reasons. First, because I'm on the same side of the door as you are;
+secondly, because they're making such a noise inside, no one could
+possibly hear you." And certainly there was a most extraordinary noise
+going on within--a constant howling and sneezing, and every now and then
+a great crash, as if a dish or kettle had been broken to pieces.
+
+"Please, then," said Alice, "how am I to get in?"
+
+"There might be some sense in your knocking," the Footman went on
+without attending to her, "if we had the door between us. For instance,
+if you were _inside_, you might knock, and I could let you out, you
+know." He was looking up into the sky all the time he was speaking, and
+this Alice thought decidedly uncivil. "But perhaps he can't help it,"
+she said to herself: "his eyes are so _very_ nearly at the top of his
+head. But at any rate he might answer questions. How am I to get in?"
+she repeated aloud.
+
+"I shall sit here," the Footman remarked, "till to-morrow----"
+
+At this moment the door of the house opened, and a large plate came
+skimming out, straight at the Footman's head: it just grazed his nose,
+and broke to pieces against one of the trees behind him.
+
+"----or next day, maybe," the Footman continued in the same tone,
+exactly as if nothing had happened.
+
+"How am I to get in?" asked Alice again in a louder tone.
+
+"_Are_ you to get in at all?" said the Footman. "That's the first
+question, you know."
+
+[Illustration]
+
+It was, no doubt: only Alice did not like to be told so. "It's really
+dreadful," she muttered to herself, "the way all the creatures argue.
+It's enough to drive one crazy!"
+
+The Footman seemed to consider this a good opportunity for repeating his
+remark, with variations. "I shall sit here," he said, "on and off, for
+days and days."
+
+"But what am _I_ to do?" said Alice.
+
+"Anything you like," said the Footman, and began whistling.
+
+"Oh, there's no use in talking to him," said Alice desperately: "he's
+perfectly idiotic!" And she opened the door and went in.
+
+The door led right into a large kitchen, which was full of smoke from
+one end to the other: the Duchess was sitting on a three-legged stool in
+the middle, nursing a baby, the cook was leaning over the fire, stirring
+a large cauldron which seemed to be full of soup.
+
+"There's certainly too much pepper in that soup!" Alice said to herself,
+as well as she could for sneezing.
+
+There was certainly too much of it in the air. Even the Duchess sneezed
+occasionally; and the baby was sneezing and howling alternately without
+a moment's pause. The only things in the kitchen that did not sneeze,
+were the cook, and a large cat which was sitting on the hearth and
+grinning from ear to ear.
+
+"Please would you tell me," said Alice a little timidly, for she was not
+quite sure whether it was good manners for her to speak first, "why your
+cat grins like that?"
+
+"It's a Cheshire cat," said the Duchess, "and that's why. Pig!"
+
+She said the last word with such sudden violence that Alice quite
+jumped; but she saw in another moment that it was addressed to the baby,
+and not to her, so she took courage, and went on again:
+
+"I didn't know that Cheshire cats always grinned; in fact, I didn't know
+that cats _could_ grin."
+
+"They all can," said the Duchess; "and most of 'em do."
+
+"I don't know of any that do," Alice said very politely, feeling quite
+pleased to have got into a conversation.
+
+"You don't know much," said the Duchess; "and that's a fact."
+
+Alice did not at all like the tone of this remark, and thought it would
+be as well to introduce some other subject of conversation. While she
+was trying to fix on one, the cook took the cauldron of soup off the
+fire, and at once set to work throwing everything within her reach at
+the Duchess and the baby--the fire-irons came first; then followed a
+shower of saucepans, plates, and dishes. The Duchess took no notice of
+them even when they hit her; and the baby was howling so much already,
+that it was quite impossible to say whether the blows hurt it or not.
+
+"Oh, _please_ mind what you're doing!" cried Alice, jumping up and down
+in an agony of terror. "Oh, there goes his _precious_ nose"; as an
+unusually large saucepan flew close by it, and very nearly carried it
+off.
+
+"If everybody minded their own business," the Duchess said in a hoarse
+growl, "the world would go round a deal faster than it does."
+
+[Illustration: _An unusually large saucepan flew close by it, and very
+nearly carried it off_]
+
+"Which would _not_ be an advantage," said Alice, who felt very glad to
+get an opportunity of showing off a little of her knowledge. "Just think
+what work it would make with the day and night! You see the earth
+takes twenty-four hours to turn round on its axis----"
+
+"Talking of axes," said the Duchess, "chop off her head."
+
+Alice glanced rather anxiously at the cook, to see if she meant to take
+the hint; but the cook was busily engaged in stirring the soup, and did
+not seem to be listening, so she ventured to go on again: "Twenty-four
+hours, I _think_; or is it twelve? I----"
+
+"Oh, don't bother _me_," said the Duchess; "I never could abide
+figures!" And with that she began nursing her child again, singing a
+sort of lullaby to it as she did so, and giving it a violent shake at
+the end of every line:
+
+ "Speak roughly to your little boy,
+ And beat him when he sneezes:
+ He only does it to annoy,
+ Because he knows it teases."
+
+CHORUS
+
+ (In which the cook and the baby joined):
+ "Wow! wow! wow!"
+
+While the Duchess sang the second verse of the song, she kept tossing
+the baby violently up and down, and the poor little thing howled so,
+that Alice could hardly hear the words:
+
+ "I speak severely to my boy,
+ I beat him when he sneezes;
+ For he can thoroughly enjoy
+ The pepper when he pleases!"
+
+ CHORUS.
+
+ "Wow! wow! wow!"
+
+"Here! you may nurse it a bit if you like!" the Duchess said to Alice,
+flinging the baby at her as she spoke. "I must go and get ready to play
+croquet with the Queen," and she hurried out of the room. The cook threw
+a frying-pan after her as she went out, but it just missed her.
+
+Alice caught the baby with some difficulty, as it was a queer-shaped
+little creature, and held out its arms and legs in all directions, "just
+like a star-fish," thought Alice. The poor little thing was snorting
+like a steam-engine when she caught it, and kept doubling itself up and
+straightening itself out again, so that altogether, for the first minute
+or two, it was as much as she could do to hold it.
+
+As soon as she had made out the proper way of nursing it, (which was to
+twist it up into a knot, and then keep tight hold of its right ear and
+left foot, so as to prevent its undoing itself,) she carried it out into
+the open air. "If I don't take this child away with me," thought Alice,
+"they're sure to kill it in a day or two: wouldn't it be murder to leave
+it behind?" She said the last words out loud, and the little thing
+grunted in reply (it had left off sneezing by this time). "Don't grunt,"
+said Alice; "that's not at all a proper way of expressing yourself."
+
+The baby grunted again, and Alice looked very anxiously into its face to
+see what was the matter with it. There could be no doubt that it had a
+_very_ turn-up nose, much more like a snout than a real nose; also its
+eyes were getting extremely small for a baby: altogether Alice did not
+like the look of the thing at all. "But perhaps it was only sobbing,"
+she thought, and looked into its eyes again, to see if there were any
+tears.
+
+No, there were no tears. "If you're going to turn into a pig, my dear,"
+said Alice, seriously, "I'll have nothing more to do with you. Mind
+now!" The poor little thing sobbed again (or grunted, it was impossible
+to say which), and they went on for some while in silence.
+
+Alice was just beginning to think to herself, "Now, what am I to do with
+this creature when I get it home?" when it grunted again, so violently,
+that she looked down into its face in some alarm. This time there could
+be _no_ mistake about it: it was neither more nor less than a pig, and
+she felt that it would be quite absurd for her to carry it any further.
+
+So she set the little creature down, and felt quite relieved to see it
+trot quietly away into the wood. "If it had grown up," she said to
+herself, "it would have made a dreadfully ugly child: but it makes
+rather a handsome pig, I think." And she began thinking over other
+children she knew, who might do very well as pigs, and was just saying
+to herself, "if one only knew the right way to change them----" when she
+was a little startled by seeing the Cheshire Cat sitting on a bough of a
+tree a few yards off.
+
+[Illustration: _It grunted again so violently that she looked down into
+its face in some alarm_]
+
+The Cat only grinned when it saw Alice. It looked good-natured, she
+thought: still it had _very_ long claws and a great many teeth, so she
+felt that it ought to be treated with respect.
+
+[Illustration]
+
+"Cheshire Puss," she began, rather timidly, as she did not at all know
+whether it would like the name: however, it only grinned a little wider.
+"Come, it's pleased so far," thought Alice, and she went on. "Would you
+tell me, please, which way I ought to go from here?"
+
+"That depends a good deal on where you want to get to," said the Cat.
+
+"I don't much care where----" said Alice.
+
+"Then it doesn't matter which way you go," said the Cat.
+
+"---- so long as I get _somewhere_," Alice added as an explanation.
+
+"Oh, you're sure to do that," said the Cat, "if you only walk long
+enough."
+
+Alice felt that this could not be denied, so she tried another question.
+"What sort of people live about here?"
+
+"In _that_ direction," the Cat said, waving its right paw round, "lives
+a Hatter: and in _that_ direction," waving the other paw, "lives a March
+Hare. Visit either you like: they're both mad."
+
+"But I don't want to go among mad people," Alice remarked.
+
+"Oh, you ca'n't help that," said the Cat: "we're all mad here. I'm mad.
+You're mad."
+
+"How do you know I'm mad?" said Alice.
+
+"You must be," said the Cat, "or you wouldn't have come here."
+
+Alice didn't think that proved it at all; however, she went on. "And how
+do you know that you're mad?"
+
+"To begin with," said the Cat, "a dog's not mad. You grant that?"
+
+"I suppose so," said Alice.
+
+"Well, then," the Cat went on, "you see a dog growls when it's angry,
+and wags its tail when it's pleased. Now _I_ growl when I'm pleased, and
+wag my tail when I'm angry. Therefore I'm mad."
+
+"_I_ call it purring, not growling," said Alice.
+
+"Call it what you like," said the Cat. "Do you play croquet with the
+Queen to-day?"
+
+"I should like it very much," said Alice, "but I haven't been invited
+yet."
+
+"You'll see me there," said the Cat and vanished.
+
+Alice was not much surprised at this, she was getting so used to queer
+things happening. While she was looking at the place where it had been,
+it suddenly appeared again.
+
+"By-the-bye, what became of the baby?" said the Cat. "I'd nearly
+forgotten to ask."
+
+"It turned into a pig," Alice quietly said, just as if it had come back
+in a natural way.
+
+"I thought it would," said the Cat, and vanished again.
+
+Alice waited a little, half expecting to see it again, but it did not
+appear, and after a minute or two she walked on in the direction in
+which the March Hare was said to live. "I've seen hatters before," she
+said to herself; "the March Hare will be much the most interesting, and
+perhaps as this is May, it won't be raving mad--at least not so mad as
+it was in March." As she said this, she looked up, and there was the Cat
+again, sitting on the branch of a tree.
+
+"Did you say pig, or fig?" said the Cat.
+
+"I said pig," replied Alice; "and I wish you wouldn't keep appearing and
+vanishing so suddenly: you make one quite giddy."
+
+"All right," said the Cat; and this time it vanished quite slowly,
+beginning with the end of the tail, and ending with the grin, which
+remained some time after the rest of it had gone.
+
+"Well! I've often seen a cat without a grin," thought Alice; "but a grin
+without a cat! It's the most curious thing I ever saw in all my life."
+
+[Illustration]
+
+She had not gone much farther before she came in sight of the house of
+the March Hare: she thought it must be the right house, because the
+chimneys were shaped like ears and the roof was thatched with fur. It
+was so large a house, that she did not like to go nearer till she had
+nibbled some more of the left-hand bit of mushroom, and raised herself,
+to about two feet high: even then she walked up towards it rather
+timidly, saying to herself, "Suppose it should be raving mad after all!
+I almost wish I'd gone to see the Hatter instead!"
+
+
+
+
+CHAPTER VII
+
+
+[Sidenote: _A Mad Tea-party_]
+
+THERE was a table set out under a tree in front of the
+house, and the March Hare and the Hatter were having tea at it: a
+Dormouse was sitting between them, fast asleep, and the other two were
+using it as a cushion resting their elbows on it, and talking over its
+head. "Very uncomfortable for the Dormouse," thought Alice; "only as
+it's asleep, suppose it doesn't mind."
+
+The table was a large one, but the three were all crowded together at
+one corner of it. "No room! No room!" they cried out when they saw Alice
+coming. "There's _plenty_ of room!" said Alice indignantly, and she sat
+down in a large arm-chair at one end of the table.
+
+"Have some wine," the March Hare said in an encouraging tone.
+
+Alice looked all round the table, but there was nothing on it but tea.
+"I don't see any wine," she remarked.
+
+"There isn't any," said the March Hare.
+
+"Then it wasn't very civil of you to offer it," said Alice angrily.
+
+"It wasn't very civil of you to sit down without being invited," said
+the March Hare.
+
+"I didn't know it was _your_ table," said Alice; "it's laid for a great
+many more than three."
+
+"Your hair wants cutting," said the Hatter. He had been looking at Alice
+for some time with great curiosity, and this was his first speech.
+
+"You should learn not to make personal remarks," Alice said with some
+severity; "it's very rude."
+
+The Hatter opened his eyes very wide on hearing this; but all he _said_
+was "Why is a raven like a writing-desk?"
+
+"Come, we shall have some fun now!" thought Alice. "I'm glad they've
+begun asking riddles.--I believe I can guess that," she added aloud.
+
+"Do you mean that you think you can find out the answer to it?" said
+the March Hare.
+
+"Exactly so," said Alice.
+
+"Then you should say what you mean," the March Hare went on.
+
+"I do," Alice hastily replied; "at least--at least I mean what I
+say--that's the same thing, you know."
+
+"Not the same thing a bit!" said the Hatter. "Why, you might just as
+well say that 'I see what I eat' is the same thing as 'I eat what I
+see'!"
+
+"You might just as well say," added the March Hare, "that 'I like what I
+get' is the same thing as 'I get what I like'!"
+
+"You might just as well say," added the Dormouse, which seemed to be
+talking in his sleep, "that 'I breathe when I sleep' is the same thing
+as 'I sleep when I breathe'!"
+
+"It _is_ the same thing with you," said the Hatter; and here the
+conversation dropped, and the party sat silent for a minute, while Alice
+thought over all she could remember about ravens and writing-desks,
+which wasn't much.
+
+[Illustration: _A Mad Tea Party_]
+
+The Hatter was the first to break the silence. "What day of the month
+is it?" he said, turning to Alice: he had taken his watch out of his
+pocket, and was looking at it uneasily, shaking it every now and then,
+and holding it to his ear.
+
+Alice considered a little, and then said "The fourth."
+
+"Two days wrong!" sighed the Hatter. "I told you butter would not suit
+the works!" he added, looking angrily at the March Hare.
+
+"It was the _best_ butter," the March Hare meekly replied.
+
+"Yes, but some crumbs must have got in as well," the Hatter grumbled:
+"you shouldn't have put it in with the bread-knife."
+
+The March Hare took the watch and looked at it gloomily: then he dipped
+it into his cup of tea, and looked at it again: but he could think of
+nothing better to say than his first remark, "It was the _best_ butter,
+you know."
+
+Alice had been looking over his shoulder with some curiosity. "What a
+funny watch!" she remarked. "It tells the day of the month, and doesn't
+tell what o'clock it is!"
+
+"Why should it?" muttered the Hatter. "Does _your_ watch tell you what
+year it is?"
+
+"Of course not," Alice replied very readily: "but that's because it
+stays the same year for such a long time together."
+
+"Which is just the case with _mine_," said the Hatter.
+
+Alice felt dreadfully puzzled. The Hatter's remark seemed to have no
+meaning in it, and yet it was certainly English. "I don't quite
+understand," she said, as politely as she could.
+
+"The Dormouse is asleep again," said the Hatter, and he poured a little
+hot tea upon its nose.
+
+The Dormouse shook its head impatiently, and said, without opening its
+eyes, "Of course, of course; just what I was going to remark myself."
+
+"Have you guessed the riddle yet?" the Hatter said, turning to Alice
+again.
+
+"No, I give it up," Alice replied: "what's the answer?"
+
+"I haven't the slightest idea," said the Hatter.
+
+"Nor I," said the March Hare.
+
+Alice sighed wearily. "I think you might do something better with the
+time," she said, "than wasting it asking riddles with no answers."
+
+"If you knew Time as well as I do," said the Hatter, "you wouldn't talk
+about wasting _it_. It's _him_."
+
+"I don't know what you mean," said Alice.
+
+"Of course you don't!" the Hatter said, tossing his head contemptuously.
+"I daresay you never spoke to Time!"
+
+"Perhaps not," Alice cautiously replied: "but I know I have to beat time
+when I learn music."
+
+"Ah! that accounts for it," said the Hatter. "He won't stand beating.
+Now, if you only kept on good terms with him, he'd do almost anything
+you liked with the clock. For instance, suppose it were nine o'clock in
+the morning, just time to begin lessons: you'd only have to whisper a
+hint to Time, and round goes the clock in a twinkling! Half-past one,
+time for dinner!"
+
+("I only wish it was," the March Hare said to itself in a whisper.)
+
+"That would be grand, certainly," said Alice thoughtfully: "but then--I
+shouldn't be hungry for it, you know."
+
+"Not at first, perhaps," said the Hatter: "but you could keep it to
+half-past one as long as you liked."
+
+"Is that the way _you_ manage?" Alice asked.
+
+The Hatter shook his head mournfully. "Not I!" he replied. "We
+quarrelled last March----just before _he_ went mad, you know----"
+(pointing with his teaspoon to the March Hare), "it was at the great
+concert given by the Queen of Hearts, and I had to sing
+
+ 'Twinkle, twinkle, little bat!
+ How I wonder what you're at!'
+
+You know that song, perhaps?"
+
+"I've heard something like it," said Alice.
+
+"It goes on, you know," the Hatter continued, "in this way:--
+
+ 'Up above the world you fly,
+ Like a tea-tray in the sky.
+ Twinkle, twinkle----'"
+
+Here the Dormouse shook itself, and began singing in its sleep
+"_Twinkle, twinkle, twinkle, twinkle_----" and went on so long that they
+had to pinch it to make it stop.
+
+"Well, I'd hardly finished the first verse," said the Hatter, "when the
+Queen jumped up and bawled out 'He's murdering the time! Off with his
+head!'"
+
+"How dreadfully savage!" exclaimed Alice.
+
+"And ever since that," the Hatter went on in a mournful tone, "he won't
+do a thing I ask! It's always six o'clock now."
+
+A bright idea came into Alice's head. "Is that the reason so many
+tea-things are put out here?" she asked.
+
+"Yes, that's it," said the Hatter with a sigh: "it's always tea-time,
+and we've no time to wash the things between whiles."
+
+"Then you keep moving round, I suppose?" said Alice.
+
+"Exactly so," said the Hatter: "as the things get used up."
+
+"But what happens when you come to the beginning again?" Alice ventured
+to ask.
+
+"Suppose we change the subject," the March Hare interrupted, yawning.
+"I'm getting tired of this. I vote the young lady tells us a story."
+
+"I'm afraid I don't know one," said Alice, rather alarmed at the
+proposal.
+
+"Then the Dormouse shall!" they both cried. "Wake up, Dormouse!" And
+they pinched it on both sides at once.
+
+The Dormouse slowly opened his eyes. "I wasn't asleep," he said in a
+hoarse, feeble voice: "I heard every word you fellows were saying."
+
+"Tell us a story!" said the March Hare.
+
+"Yes, please do!" pleaded Alice.
+
+"And be quick about it," added the Hatter, "or you'll be asleep again
+before it's done."
+
+"Once upon a time there were three little sisters," the Dormouse began
+in a great hurry; "and their names were Elsie, Lacie, and Tillie; and
+they lived at the bottom of a well----"
+
+"What did they live on?" said Alice, who always took a great interest in
+questions of eating and drinking.
+
+"They lived on treacle," said the Dormouse, after thinking a minute or
+two.
+
+"They couldn't have done that, you know," Alice gently remarked; "they'd
+have been ill."
+
+"So they were," said the Dormouse; "_very_ ill."
+
+Alice tried a little to fancy to herself what such an extraordinary way
+of living would be like, but it puzzled her too much, so she went on:
+"But why did they live at the bottom of a well?"
+
+"Take some more tea," the March Hare said to Alice, very earnestly.
+
+"I've had nothing yet," Alice replied in an offended tone, "so I can't
+take more."
+
+"You mean you can't take _less_," said the Hatter; "it's very easy to
+take _more_ than nothing."
+
+"Nobody asked _your_ opinion," said Alice.
+
+"Who's making personal remarks now?" the Hatter asked triumphantly.
+
+Alice did not quite know what to say to this: so she helped herself to
+some tea and bread-and-butter, and then turned to the Dormouse, and
+repeated her question. "Why did they live at the bottom of a well?"
+
+The Dormouse again took a minute or two to think about it, and then
+said, "It was a treacle-well."
+
+"There's no such thing!" Alice was beginning very angrily, but the
+Hatter and the March Hare went "Sh! sh!" and the Dormouse sulkily
+remarked: "If you can't be civil, you'd better finish the story for
+yourself."
+
+"No, please go on!" Alice said very humbly. "I won't interrupt you
+again. I dare say there may be _one_."
+
+"One, indeed!" said the Dormouse indignantly. However, he consented to
+go on. "And so these three little sisters--they were learning to draw,
+you know----"
+
+"What did they draw?" said Alice, quite forgetting her promise.
+
+"Treacle," said the Dormouse, without considering at all this time.
+
+"I want a clean cup," interrupted the Hatter: "let's all move one place
+on."
+
+He moved as he spoke, and the Dormouse followed him: the March Hare
+moved into the Dormouse's place, and Alice rather unwillingly took the
+place of the March Hare. The Hatter was the only one who got any
+advantage from the change: and Alice was a good deal worse off than
+before, as the March Hare had just upset the milk-jug into his plate.
+
+Alice did not wish to offend the Dormouse again, so she began very
+cautiously: "But I don't understand. Where did they draw the treacle
+from?"
+
+"You can draw water out of a water-well," said the Hatter; "so I should
+think you could draw treacle out of a treacle-well--eh, stupid!"
+
+"But they were _in_ the well," Alice said to the Dormouse, not choosing
+to notice this last remark.
+
+"Of course they were," said the Dormouse; "----well in."
+
+This answer so confused poor Alice that she let the Dormouse go on for
+some time without interrupting it.
+
+"They were learning to draw," the Dormouse went on, yawning and rubbing
+its eyes, for it was getting very sleepy; "and they drew all manner of
+things--everything that begins with an M----"
+
+"Why with an M?" said Alice.
+
+"Why not?" said the March Hare.
+
+Alice was silent.
+
+The Dormouse had closed its eyes by this time, and was going off into a
+dose; but, on being pinched by the Hatter, it woke up again with a
+little shriek, and went on: "----that begins with an M, such as
+mouse-traps, and the moon, and memory, and muchness--you know you say
+things are 'much of a muchness'--did you ever see such a thing as a
+drawing of a muchness?"
+
+"Really, now you ask me," said Alice, very much confused, "I don't
+think----"
+
+"Then you shouldn't talk," said the Hatter.
+
+This piece of rudeness was more than Alice could bear: she got up in
+great disgust and walked off; the Dormouse fell asleep instantly, and
+neither of the others took the least notice of her going, though she
+looked back once or twice, half hoping that they would call after her:
+the last time she saw them, they were trying to put the Dormouse into
+the teapot.
+
+"At any rate I'll never go _there_ again!" said Alice as she picked her
+way through the wood. "It's the stupidest tea-party I ever was at in all
+my life!"
+
+Just as she said this, she noticed that one of the trees had a door
+leading right into it. "That's very curious!" she thought. "But
+everything's curious to-day. I think I may as well go in at once." And
+in she went.
+
+Once more she found herself in the long hall, and close to the little
+glass table. "Now I'll manage better this time," she said to herself,
+and began by taking the little golden key, and unlocking the door that
+led into the garden. Then she set to work nibbling at the mushroom (she
+had kept a piece of it in her pocket) till she was about a foot high:
+then she walked down the little passage: and _then_--she found herself
+at last in the beautiful garden, among the bright flower-beds and the
+cool fountains.
+
+
+
+
+CHAPTER VIII
+
+
+[Sidenote: _The Queen's Croquet-Ground_]
+
+A LARGE rose-tree stood near the entrance of the garden:
+the roses growing on it were white, but there were three gardeners at
+it, busily painting them red. Alice thought this a very curious thing,
+and she went nearer to watch them, and just as she came up to them she
+heard one of them say "Look out now, Five! Don't go splashing paint over
+me like that!"
+
+"I couldn't help it," said Five, in a sulky tone. "Seven jogged my
+elbow."
+
+On which Seven looked up and said, "That's right, Five! Always lay the
+blame on others!"
+
+"_You'd_ better not talk!" said Five. "I heard the Queen say only
+yesterday you deserved to be beheaded!"
+
+"What for?" said the one who had first spoken.
+
+"That's none of _your_ business, Two!" said Seven.
+
+"Yes, it _is_ his business!" said Five. "And I'll tell him--it was for
+bringing the cook tulip-roots instead of onions."
+
+Seven flung down his brush, and had just begun "Well, of all the unjust
+things----" when his eye chanced to fall upon Alice, as she stood
+watching them, and he checked himself suddenly: the others looked round
+also, and all of them bowed low.
+
+"Would you tell me," said Alice, a little timidly, "why you are painting
+those roses?"
+
+Five and Seven said nothing, but looked at Two. Two began in a low
+voice, "Why, the fact is, you see, Miss, this here ought to have been a
+_red_ rose-tree, and we put a white one in by mistake; and if the Queen
+was to find it out, we should all have our heads cut off, you know. So
+you see, Miss, we're doing our best, afore she comes, to----" At this
+moment, Five, who had been anxiously looking across the garden, called
+out "The Queen! The Queen!" and the three gardeners instantly threw
+themselves flat upon their faces. There was a sound of many footsteps,
+and Alice looked round, eager to see the Queen.
+
+First came ten soldiers carrying clubs; these were all shaped like the
+three gardeners, oblong and flat, with their hands and feet at the
+corners: next the ten courtiers; these were ornamented all over with
+diamonds, and walked two and two, as the soldiers did. After these came
+the royal children; there were ten of them, and the little dears came
+jumping merrily along hand in hand, in couples; they were all ornamented
+with hearts. Next came the guests, mostly Kings and Queens, and among
+them Alice recognised the White Rabbit: it was talking in a hurried,
+nervous manner, smiling at everything that was said, and went by without
+noticing her. Then followed the Knave of Hearts, carrying the King's
+crown on a crimson velvet cushion; and last of all this grand
+procession, came THE KING AND QUEEN OF HEARTS.
+
+Alice was rather doubtful whether she ought not to lie down on her face
+like the three gardeners, but she could not remember ever having heard
+of such a rule at processions; "and besides, what would be the use of a
+procession," thought she, "if people had to lie down upon their faces,
+so that they couldn't see it?" So she stood still where she was, and
+waited.
+
+When the procession came opposite to Alice, they all stopped and looked
+at her, and the Queen said severely, "Who is this?" She said it to the
+Knave of Hearts, who only bowed and smiled in reply.
+
+"Idiot!" said the Queen, tossing her head impatiently; and turning to
+Alice, she went on, "What's your name, child?"
+
+"My name is Alice, so please your Majesty," said Alice very politely;
+but she added, to herself, "Why, they're only a pack of cards, after
+all. I needn't be afraid of them!"
+
+"And who are _these_?" said the Queen, pointing to the three gardeners
+who were lying round the rose-tree; for, you see, as they were lying on
+their faces, and the pattern on their backs was the same as the rest of
+the pack, she could not tell whether they were gardeners, or soldiers,
+or courtiers, or three of her own children.
+
+"How should _I_ know?" said Alice, surprised at her own courage. "It's
+no business of _mine_."
+
+The Queen turned crimson with fury, and, after glaring at her for a
+moment like a wild beast, screamed "Off with her head! Off----"
+
+"Nonsense!" said Alice, very loudly and decidedly, and the Queen was
+silent.
+
+The King laid his hand upon her arm, and timidly said "Consider my dear:
+she is only a child!"
+
+The Queen turned angrily away from him, and said to the Knave "Turn them
+over!"
+
+The Knave did so, very carefully, with one foot.
+
+"Get up!" said the Queen, in a shrill, loud voice, and the three
+gardeners instantly jumped up, and began bowing to the King, the Queen,
+the royal children, and everybody else.
+
+"Leave off that!" screamed the Queen. "You make me giddy." And then,
+turning to the rose-tree, she went on, "What _have_ you been doing
+here?"
+
+"May it please your Majesty," said Two, in a very humble tone, going
+down on one knee as he spoke, "we were trying----"
+
+[Illustration: _The Queen turned angrily away from him and said to the
+Knave, "Turn them over"_]
+
+"_I_ see!" said the Queen, who had meanwhile been examining the roses.
+"Off with their heads!" and the procession moved on, three of the
+soldiers remaining behind to execute the unfortunate gardeners, who ran
+to Alice for protection.
+
+"You shan't be beheaded!" said Alice, and she put them into a large
+flower-pot that stood near. The three soldiers wandered about for a
+minute or two, looking for them, and then quietly marched off after the
+others.
+
+"Are their heads off?" shouted the Queen.
+
+"Their heads are gone, if it please your Majesty!" the soldiers shouted
+in reply.
+
+"That's right!" shouted the Queen. "Can you play croquet?"
+
+The soldiers were silent, and looked at Alice, as the question was
+evidently meant for her.
+
+"Yes!" shouted Alice.
+
+"Come on, then!" roared the Queen, and Alice joined the procession,
+wondering very much what would happen next.
+
+"It's--it's a very fine day!" said a timid voice at her side. She was
+walking by the White Rabbit, who was peeping anxiously into her face.
+
+"Very," said Alice: "----where's the Duchess?"
+
+"Hush! Hush!" said the Rabbit in a low hurried tone. He looked anxiously
+over his shoulder as he spoke, and then raised himself upon tiptoe, put
+his mouth close to her ear, and whispered "She's under sentence of
+execution."
+
+"What for?" said Alice.
+
+"Did you say 'What a pity!'?" the Rabbit asked.
+
+"No, I didn't," said Alice: "I don't think it's at all a pity. I said
+'What for?'"
+
+"She boxed the Queen's ears--" the Rabbit began. Alice gave a little
+scream of laughter. "Oh, hush!" the Rabbit whispered in a frightened
+tone. "The Queen will hear you! You see she came rather late, and the
+Queen said----"
+
+"Get to your places!" shouted the Queen in a voice of thunder, and
+people began running about in all directions, tumbling up against each
+other; however, they got settled down in a minute or two, and the game
+began. Alice thought she had never seen such a curious croquet-ground in
+all her life; it was all ridges and furrows; the balls were live
+hedgehogs, the mallets live flamingoes, and the soldiers had to double
+themselves up and to stand upon their hands and feet, to make the
+arches.
+
+[Illustration]
+
+The chief difficulty Alice found at first was in managing her flamingo;
+she succeeded in getting its body tucked away, comfortably enough, under
+her arm, with its legs hanging down, but generally, just as she had got
+its neck nicely straightened out, and was going to give the hedgehog a
+blow with its head, it _would_ twist itself round and look up in her
+face, with such a puzzled expression that she could not help bursting
+out laughing: and when she had got its head down, and was going to
+begin again, it was very provoking to find that the hedgehog had
+unrolled itself and was in the act of crawling away: besides all this,
+there was generally a ridge or a furrow in the way wherever she wanted
+to send the hedgehog to, and, as the doubled-up soldiers were always
+getting up and walking off to other parts of the ground, Alice soon came
+to the conclusion that it was a very difficult game indeed.
+
+The players all played at once without waiting for turns, quarrelling
+all the while, and fighting for the hedgehogs; and in a very short time
+the Queen was in a furious passion, and went stamping about, and
+shouting "Off with his head!" or "Off with her head!" about once in a
+minute.
+
+Alice began to feel very uneasy: to be sure she had not as yet had any
+dispute with the Queen, but she knew that it might happen any minute,
+"and then," thought she, "what would become of me? They're dreadfully
+fond of beheading people here: the great wonder is that there's any one
+left alive!"
+
+She was looking about for some way of escape, and wondering whether she
+could get away without being seen, when she noticed a curious
+appearance in the air: it puzzled her very much at first, but, after
+watching it a minute or two, she made it out to be a grin, and she said
+to herself "It's the Cheshire Cat: now I shall have somebody to talk
+to."
+
+"How are you getting on?" said the Cat, as soon as there was mouth
+enough for it to speak with.
+
+Alice waited till the eyes appeared, and then nodded. "It's no use
+speaking to it," she thought, "till its ears have come, or at least one
+of them." In another minute the whole head appeared, and then Alice put
+down her flamingo, and began an account of the game, feeling very glad
+she had some one to listen to her. The Cat seemed to think that there
+was enough of it now in sight, and no more of it appeared.
+
+"I don't think they play at all fairly," Alice began, in rather a
+complaining tone, "and they all quarrel so dreadfully one can't hear
+oneself speak--and they don't seem to have any rules in particular; at
+least, if there are, nobody attends to them--and you've no idea how
+confusing it is all the things being alive; for instance, there's the
+arch I've got to go through next walking about at the other end of the
+ground--and I should have croqueted the Queen's hedgehog just now, only
+it ran away when it saw mine coming!"
+
+[Illustration]
+
+"How do you like the Queen?" said the Cat in a low voice.
+
+"Not at all," said Alice: "she's so extremely----" Just then she noticed
+that the Queen was close behind her listening: so she went on,
+"----likely to win, that it's hardly worth while finishing the game."
+
+The Queen smiled and passed on.
+
+"Who _are_ you talking to?" said the King, coming up to Alice, and
+looking at the Cat's head with great curiosity.
+
+"It's a friend of mine--a Cheshire Cat," said Alice: "allow me to
+introduce it."
+
+"I don't like the look of it at all," said the King: "however, it may
+kiss my hand if it likes."
+
+"I'd rather not," the Cat remarked.
+
+"Don't be impertinent," said the King, "and don't look at me like that!"
+He got behind Alice as he spoke.
+
+"A cat may look at a king," said Alice. "I've read that in some book,
+but I don't remember where."
+
+"Well, it must be removed," said the King very decidedly, and he called
+to the Queen, who was passing at the moment, "My dear! I wish you would
+have this cat removed!"
+
+The Queen had only one way of settling all difficulties, great or small.
+"Off with his head!" she said, without even looking round.
+
+"I'll fetch the executioner myself," said the King eagerly, and he
+hurried off.
+
+Alice thought she might as well go back and see how the game was going
+on, as she heard the Queen's voice in the distance, screaming with
+passion. She had already heard her sentence three of the players to be
+executed for having missed their turns, and she did not like the look of
+things at all, as the game was in such confusion that she never knew
+whether it was her turn or not. So she went in search of her hedgehog.
+
+The hedgehog was engaged in a fight with another hedgehog, which seemed
+to Alice an excellent opportunity for croqueting one of them with the
+other: the only difficulty was, that her flamingo was gone across to the
+other side of the garden, where Alice could see it trying in a helpless
+sort of way to fly up into one of the trees.
+
+By the time she had caught the flamingo and brought it back, the fight
+was over, and both the hedgehogs were out of sight: "but it doesn't
+matter much," thought Alice, "as all the arches are gone from this side
+of the ground." So she tucked it under her arm, that it might not escape
+again, and went back for a little more conversation with her friend.
+
+When she got back to the Cheshire Cat, she was surprised to find quite a
+large crowd collected round it: there was a dispute going on between the
+executioner, the King, and the Queen, who were all talking at once,
+while all the rest were quite silent, and looked very uncomfortable.
+
+The moment Alice appeared, she was appealed to by all three to settle
+the question, and they repeated their arguments to her, though, as they
+all spoke at once, she found it very hard indeed to make out exactly
+what they said.
+
+[Illustration]
+
+The executioner's argument was, that you couldn't cut off a head unless
+there was a body to cut it off from: that he had never had to do such a
+thing before, and he wasn't going to begin at _his_ time of life.
+
+The King's argument was, that anything that had a head could be
+beheaded, and that you weren't to talk nonsense.
+
+The Queen's argument was, that if something wasn't done about it in less
+than no time, she'd have everybody executed all round. (It was this last
+remark that had made the whole party look so grave and anxious.)
+
+Alice could think of nothing else to say but "It belongs to the Duchess:
+you'd better ask _her_ about it."
+
+"She's in prison," the Queen said to the executioner; "fetch her here."
+And the executioner went off like an arrow.
+
+The Cat's head began fading away the moment he was gone, and by the time
+he had come back with the Duchess, it had entirely disappeared; so the
+King and the executioner ran wildly up and down looking for it, while
+the rest of the party went back to the game.
+
+
+
+
+CHAPTER IX
+
+
+[Sidenote: _The Mock Turtle's Story_]
+
+"YOU can't think how glad I am to see you again, you
+dear old thing!" said the Duchess, as she tucked her arm affectionately
+into Alice's, and they walked off together.
+
+Alice was very glad to find her in such a pleasant temper, and thought
+to herself that perhaps it was only the pepper that had made her so
+savage when they met in the kitchen.
+
+"When _I'm_ a Duchess," she said to herself (not in a very hopeful tone
+though), "I won't have any pepper in my kitchen _at all_. Soup does very
+well without--Maybe it's always pepper that makes people hot-tempered,"
+she went on, very much pleased at having found out a new kind of rule,
+"and vinegar that makes them sour--and camomile that makes them
+bitter--and--barley-sugar and such things that make children
+sweet-tempered. I only wish people knew _that_: then they wouldn't be
+so stingy about it, you know----"
+
+She had quite forgotten the Duchess by this time, and was a little
+startled when she heard her voice close to her ear. "You're thinking
+about something, my dear, and that makes you forget to talk. I can't
+tell you just now what the moral of that is, but I shall remember it in
+a bit."
+
+"Perhaps it hasn't one," Alice ventured to remark.
+
+"Tut, tut, child!" said the Duchess. "Every thing's got a moral, if only
+you can find it." And she squeezed herself up closer to Alice's side as
+she spoke.
+
+Alice did not much like her keeping so close to her: first, because the
+Duchess was _very_ ugly; and secondly, because she was exactly the right
+height to rest her chin on Alice's shoulder, and it was an uncomfortably
+sharp chin. However, she did not like to be rude, so she bore it as well
+as she could. "The game's going on rather better now," she said, by way
+of keeping up the conversation a little.
+
+"'Tis so," said the Duchess: "and the moral of that is--'Oh, 'tis love,
+'tis love, that makes the world go round!'"
+
+"Somebody said," Alice whispered, "that it's done by everybody minding
+their own business!"
+
+"Ah, well! It means much the same thing," said the Duchess, digging her
+sharp little chin into Alice's shoulder as she added, "and the moral of
+_that_ is--'Take care of the sense, and the sounds will take care of
+themselves.'"
+
+"How fond she is of finding morals in things!" Alice thought to herself.
+
+"I dare say you're wondering why I don't put my arm round your waist,"
+the Duchess said after a pause: "the reason is, that I'm doubtful about
+the temper of your flamingo. Shall I try the experiment?"
+
+"He might bite," Alice cautiously replied, not feeling at all anxious to
+have the experiment tried.
+
+"Very true," said the Duchess: "flamingoes and mustard both bite. And
+the moral of that is--'Birds of a feather flock together.'"
+
+"Only mustard isn't a bird," Alice remarked.
+
+"Right, as usual," said the Duchess: "what a clear way you have of
+putting things!"
+
+"It's a mineral, I _think_," said Alice.
+
+"Of course it is," said the Duchess, who seemed ready to agree to
+everything that Alice said: "there's a large mustard-mine near here. And
+the moral of that is--'The more there is of mine, the less there is of
+yours.'"
+
+"Oh, I know!" exclaimed Alice, who had not attended to this last remark.
+"It's a vegetable. It doesn't look like one, but it is."
+
+"I quite agree with you," said the Duchess; "and the moral of that
+is--'Be what you would seem to be'--or if you'd like it put more
+simply--'Never imagine yourself not to be otherwise than what it might
+appear to others that what you were or might have been was not otherwise
+than what you had been would have appeared to them to be otherwise.'"
+
+"I think I should understand that better," Alice said very politely, "if
+I had it written down: but I can't quite follow it as you say it."
+
+"That's nothing to what I could say if I chose," the Duchess replied, in
+a pleased tone.
+
+"Pray don't trouble yourself to say it any longer than that," said
+Alice.
+
+"Oh, don't talk about trouble!" said the Duchess. "I make you a present
+of everything I've said as yet."
+
+"A cheap sort of present!" thought Alice. "I'm glad they don't give
+birthday presents like that!" But she did not venture to say it out
+loud.
+
+"Thinking again?" the Duchess asked with another dig of her sharp little
+chin.
+
+"I've a right to think," said Alice sharply, for she was beginning to
+feel a little worried.
+
+"Just about as much right," said the Duchess, "as pigs have to fly; and
+the m----"
+
+But here, to Alice's great surprise, the Duchess's voice died away, even
+in the middle of her favourite word "moral," and the arm that was linked
+into hers began to tremble. Alice looked up, and there stood the Queen
+in front of them, with her arms folded, frowning like a thunderstorm.
+
+"A fine day, your Majesty!" the Duchess began in a low, weak voice.
+
+"Now, I give you fair warning," shouted the Queen, stamping on the
+ground as she spoke; "either you or your head must be off, and that in
+about half no time! Take your choice!"
+
+The Duchess took her choice, and was gone in a moment.
+
+"Let's go on with the game," the Queen said to Alice; and Alice was too
+much frightened to say a word, but slowly followed her back to the
+croquet-ground.
+
+The other guests had taken advantage of the Queen's absence, and were
+resting in the shade: however, the moment they saw her, they hurried
+back to the game, the Queen merely remarking that a moment's delay would
+cost them their lives.
+
+[Illustration: _The Queen never left off quarrelling with the other
+players, and shouting "Off with his head!" or, "Off with her head!"_]
+
+All the time they were playing the Queen never left off quarrelling with
+the other players, and shouting "Off with his head!" or "Off with her
+head!" Those whom she sentenced were taken into custody by the soldiers,
+who of course had to leave off being arches to do this, so that by the
+end of half an hour or so there were no arches left, and all the
+players, except the King, the Queen, and Alice, were in custody and
+under sentence of execution.
+
+Then the Queen left off, quite out of breath, and said to Alice, "Have
+you seen the Mock Turtle yet?"
+
+"No," said Alice. "I don't even know what a Mock Turtle is."
+
+"It's the thing Mock Turtle Soup is made from," said the Queen.
+
+"I never saw one, or heard of one," said Alice.
+
+"Come on then," said the Queen, "and he shall tell you his history."
+
+As they walked off together, Alice heard the King say in a low voice, to
+the company generally, "You are all pardoned." "Come, _that's_ a good
+thing!" she said to herself, for she had felt quite unhappy at the
+number of executions the Queen had ordered.
+
+They very soon came upon a Gryphon, lying fast asleep in the sun. (If
+you don't know what a Gryphon is, look at the picture.) "Up, lazy
+thing!" said the Queen, "and take this young lady to see the Mock
+Turtle, and to hear his history. I must go back and see after some
+executions I have ordered," and she walked off, leaving Alice alone
+with the Gryphon. Alice did not quite like the look of the creature, but
+on the whole she thought it would be quite as safe to stay with it as to
+go after that savage Queen: so she waited.
+
+The Gryphon sat up and rubbed its eyes: then it watched the Queen till
+she was out of sight: then it chuckled. "What fun!" said the Gryphon,
+half to itself, half to Alice.
+
+"What _is_ the fun?" said Alice.
+
+"Why, _she_," said the Gryphon. "It's all her fancy, that: they never
+executes nobody, you know. Come on!"
+
+"Everybody says 'come on!' here," thought Alice, as she went slowly
+after it: "I never was so ordered about in my life, never!"
+
+[Illustration]
+
+They had not gone far before they saw the Mock Turtle in the distance,
+sitting sad and lonely on a little ledge of rock, and, as they came
+nearer, Alice could hear him sighing as if his heart would break. She
+pitied him deeply. "What is his sorrow?" she asked the Gryphon, and the
+Gryphon answered, very nearly in the same words as before, "It's all
+his fancy, that: he hasn't got no sorrow, you know. Come on!"
+
+So they went up to the Mock Turtle, who looked at them with large eyes
+full of tears, but said nothing.
+
+"This here young lady," said the Gryphon, "she wants to know your
+history, she do."
+
+"I'll tell it her," said the Mock Turtle in a deep, hollow tone; "sit
+down, both of you, and don't speak a word till I've finished."
+
+So they sat down, and nobody spoke for some minutes. Alice thought to
+herself, "I don't see how he can _ever_ finish, if he doesn't begin."
+But she waited patiently.
+
+"Once," said the Mock Turtle at last, with a deep sigh, "I was a real
+Turtle."
+
+These words were followed by a very long silence, broken only by an
+occasional exclamation of "Hjckrrh!" from the Gryphon, and the constant
+heavy sobbing of the Mock Turtle. Alice was very nearly getting up and
+saying "Thank you, sir, for your interesting story," but she could not
+help thinking there _must_ be more to come, so she sat still and said
+nothing.
+
+"When we were little," the Mock Turtle went on at last, more calmly,
+though still sobbing a little now and then, "we went to school in the
+sea. The master was an old Turtle--we used to call him Tortoise----"
+
+"Why did you call him Tortoise, if he wasn't one?" Alice asked.
+
+"We called him Tortoise because he taught us," said the Mock Turtle
+angrily: "really you are very dull!"
+
+"You ought to be ashamed of yourself for asking such a simple question,"
+added the Gryphon; and then they both sat silent and looked at poor
+Alice, who felt ready to sink into the earth. At last the Gryphon said
+to the Mock Turtle, "Drive on, old fellow. Don't be all day about it!"
+and he went on in these words:
+
+"Yes, we went to school in the sea, though you mayn't believe it----"
+
+"I never said I didn't!" interrupted Alice.
+
+"You did," said the Mock Turtle.
+
+"Hold your tongue!" added the Gryphon, before Alice could speak again.
+The Mock Turtle went on:--
+
+"We had the best of educations--in fact, we went to school every
+day----"
+
+"_I've_ been to a day-school, too," said Alice; "you needn't be so proud
+as all that."
+
+"With extras?" asked the Mock Turtle a little anxiously.
+
+"Yes," said Alice, "we learned French and music."
+
+"And washing?" said the Mock Turtle.
+
+"Certainly not!" said Alice indignantly.
+
+"Ah! then yours wasn't a really good school," said the Mock Turtle in a
+tone of relief. "Now at _ours_ they had at the end of the bill, 'French,
+music, _and washing_--extra.'"
+
+"You couldn't have wanted it much," said Alice; "living at the bottom of
+the sea."
+
+"I couldn't afford to learn it," said the Mock Turtle with a sigh. "I
+only took the regular course."
+
+"What was that?" inquired Alice.
+
+"Reeling and Writhing, of course, to begin with," the Mock Turtle
+replied; "and then the different branches of Arithmetic--Ambition,
+Distraction, Uglification, and Derision."
+
+"I never heard of 'Uglification,'" Alice ventured to say. "What is it?"
+
+The Gryphon lifted up both its paws in surprise. "Never heard of
+uglifying!" it exclaimed. "You know what to beautify is, I suppose?"
+
+"Yes," said Alice doubtfully: "it means--to--make--anything--prettier."
+
+"Well, then," the Gryphon went on, "if you don't know what to uglify is,
+you are a simpleton."
+
+Alice did not feel encouraged to ask any more questions about it, so she
+turned to the Mock Turtle and said, "What else had you to learn?"
+
+"Well, there was Mystery," the Mock Turtle replied, counting off the
+subjects on his flappers, "--Mystery, ancient and modern, with
+Seaography: then Drawling--the Drawling-master was an old conger-eel,
+that used to come once a week: _he_ taught us Drawling, Stretching, and
+Fainting in Coils."
+
+"What was _that_ like?" said Alice.
+
+"Well, I can't show it you myself," the Mock Turtle said: "I'm too
+stiff. And the Gryphon never learnt it."
+
+"Hadn't time," said the Gryphon: "I went to the Classical master,
+though. He was an old crab, _he_ was."
+
+"I never went to him," the Mock Turtle said with a sigh: "he taught
+Laughing and Grief, they used to say."
+
+"So he did, so he did," said the Gryphon, sighing in his turn; and both
+creatures hid their faces in their paws.
+
+"And how many hours a day did you do lessons?" said Alice, in a hurry to
+change the subject.
+
+"Ten hours the first day," said the Mock Turtle: "nine the next, and so
+on."
+
+"What a curious plan!" exclaimed Alice.
+
+"That's the reason they're called lessons," the Gryphon remarked:
+"because they lessen from day to day."
+
+This was quite a new idea to Alice, and she thought over it a little
+before she made her next remark. "Then the eleventh day must have been a
+holiday."
+
+"Of course it was," said the Mock Turtle.
+
+"And how did you manage on the twelfth?" Alice went on eagerly.
+
+"That's enough about lessons," the Gryphon interrupted in a very decided
+tone: "tell her something about the games now."
+
+
+
+
+CHAPTER X
+
+
+[Sidenote: _The Lobster Quadrille_]
+
+THE Mock Turtle sighed deeply, and drew the back of one
+flapper across his eyes. He looked at Alice, and tried to speak, but,
+for a minute or two, sobs choked his voice. "Same as if he had a bone in
+his throat," said the Gryphon: and it set to work shaking him and
+punching him in the back. At last the Mock Turtle recovered his voice,
+and, with tears running down his cheeks, went on again:
+
+"You may not have lived much under the sea--" ("I haven't," said Alice)
+"and perhaps you were never even introduced to a lobster--" (Alice began
+to say "I once tasted----" but checked herself hastily, and said "No,
+never") "--so you can have no idea what a delightful thing a Lobster
+Quadrille is!"
+
+"No, indeed," said Alice. "What sort of a dance is it?"
+
+"Why," said the Gryphon, "you first form into a line along the
+sea-shore----"
+
+"Two lines!" cried the Mock Turtle. "Seals, turtles, and so on; then,
+when you've cleared the jelly-fish out of the way----"
+
+"_That_ generally takes some time," interrupted the Gryphon.
+
+"--you advance twice----"
+
+"Each with a lobster as a partner!" cried the Gryphon.
+
+"Of course," the Mock Turtle said: "advance twice, set to partners----"
+
+"--change lobsters, and retire in same order," continued the Gryphon.
+
+"Then, you know," the Mock Turtle went on, "you throw the----"
+
+"The lobsters!" shouted the Gryphon, with a bound into the air.
+
+"--as far out to sea as you can----"
+
+"Swim, after them!" screamed the Gryphon.
+
+"Turn a somersault in the sea!" cried the Mock Turtle, capering wildly
+about.
+
+"Change lobsters again!" yelled the Gryphon.
+
+"Back to land again, and--that's all the first figure," said the Mock
+Turtle, suddenly dropping his voice; and the two creatures, who had been
+jumping about like mad things all this time, sat down again very sadly
+and quietly, and looked at Alice.
+
+"It must be a very pretty dance," said Alice, timidly.
+
+"Would you like to see a little of it?" said the Mock Turtle.
+
+"Very much indeed," said Alice.
+
+"Come, let's try the first figure!" said the Mock Turtle to the Gryphon.
+"We can do it without lobsters, you know. Which shall sing?"
+
+"Oh, _you_ sing," said the Gryphon. "I've forgotten the words."
+
+So they began solemnly dancing round and round Alice, every now and then
+treading on her toes when they passed too close, and waving their
+forepaws to mark the time, while the Mock Turtle sang this, very slowly
+and sadly:--
+
+ "Will you walk a little faster?" said a whiting to a snail,
+ "There's a porpoise close behind us, and he's treading on my tail.
+ See how eagerly the lobsters and the turtles all advance!
+ They are waiting on the shingle--will you come and join the dance?
+ Will you, won't you, will you, won't you, will you join the dance?
+ Will you, won't you, will you, won't you, won't you join the dance?
+
+ "You can really have no notion how delightful it will be,
+ When they take us up and throw us, with the lobsters, out to sea!"
+ But the snail replied: "Too far, too far!" and gave a look askance--
+ Said he thanked the whiting kindly, but he would not join the dance.
+ Would not, could not, would not, could not, would not join the dance.
+ Would not, could not, would not, could not, could not join the dance.
+
+ "What matters it how far we go?" his scaly friend replied;
+ "There is another shore, you know, upon the other side.
+ The further off from England the nearer is to France--
+ Then turn not pale, beloved snail, but come and join the dance.
+ Will you, won't you, will you, won't you, will you join the dance?
+ Will you, won't you, will you, won't you, won't you join the dance?"
+
+"Thank you, it's a very interesting dance to watch," said Alice, feeling
+very glad that it was over at last: "and I do so like that curious song
+about the whiting!"
+
+"Oh, as to the whiting," said the Mock Turtle, "they--you've seen them,
+of course?"
+
+"Yes," said Alice, "I've often seen them at dinn----" she checked
+herself hastily.
+
+"I don't know where Dinn may be," said the Mock Turtle, "but if you've
+seen them so often, of course you know what they're like."
+
+"I believe so," Alice replied thoughtfully. "They have their tails in
+their mouths--and they're all over crumbs."
+
+"You're wrong about the crumbs," said the Mock Turtle: "crumbs would all
+wash off in the sea. But they _have_ their tails in their mouths; and
+the reason is--" here the Mock Turtle yawned and shut his eyes. "Tell
+her about the reason and all that," he said to the Gryphon.
+
+"The reason is," said the Gryphon, "that they _would_ go with the
+lobsters to the dance. So they got thrown out to sea. So they had to
+fall a long way. So they got their tails fast in their mouths. So they
+couldn't get them out again. That's all."
+
+"Thank you," said Alice. "It's very interesting. I never knew so much
+about a whiting before."
+
+"I can tell you more than that, if you like," said the Gryphon. "Do you
+know why it's called a whiting?"
+
+"I never thought about it," said Alice. "Why?"
+
+"_It does the boots and shoes_," the Gryphon replied very solemnly.
+
+Alice was thoroughly puzzled. "Does the boots and shoes!" she repeated
+in a wondering tone.
+
+"Why, what are _your_ shoes done with?" said the Gryphon. "I mean, what
+makes them so shiny?"
+
+Alice looked down at them, and considered a little before she gave her
+answer. "They're done with blacking, I believe."
+
+"Boots and shoes under the sea," the Gryphon went on in a deep voice,
+"are done with whiting. Now you know."
+
+"And what are they made of?" Alice asked in a tone of great curiosity.
+
+"Soles and eels, of course," the Gryphon replied rather impatiently:
+"any shrimp could have told you that."
+
+"If I'd been the whiting," said Alice, whose thoughts were still running
+on the song, "I'd have said to the porpoise, 'Keep back, please: we
+don't want _you_ with us!'"
+
+"They were obliged to have him with them," the Mock Turtle said: "no
+wise fish would go anywhere without a porpoise."
+
+"Wouldn't it really?" said Alice in a tone of great surprise.
+
+"Of course not," said the Mock Turtle: "why, if a fish came to _me_, and
+told me he was going a journey, I should say, 'With what porpoise?'"
+
+"Don't you mean 'purpose'?" said Alice.
+
+"I mean what I say," the Mock Turtle replied in an offended tone. And
+the Gryphon added, "Come, let's hear some of _your_ adventures."
+
+[Illustration: _The Mock Turtle drew a long breath and said, "That's
+very curious"_]
+
+"I could tell you my adventures--beginning from this morning," said
+Alice a little timidly: "but it's no use going back to yesterday,
+because I was a different person then."
+
+"Explain all that," said the Mock Turtle.
+
+"No, no! The adventures first," said the Gryphon in an impatient tone:
+"explanations take such a dreadful time."
+
+So Alice began telling them her adventures from the time when she first
+saw the White Rabbit. She was a little nervous about it just at first,
+the two creatures got so close to her, one on each side, and opened
+their eyes and mouths so _very_ wide, but she gained courage as she went
+on. Her listeners were perfectly quiet till she got to the part about
+her repeating "_You are old, Father William_," to the Caterpillar, and
+the words all coming different, and then the Mock Turtle drew a long
+breath, and said, "That's very curious."
+
+"It's all about as curious as it can be," said the Gryphon.
+
+"It all came different!" the Mock Turtle repeated thoughtfully. "I
+should like to hear her repeat something now. Tell her to begin." He
+looked at the Gryphon as if he thought it had some kind of authority
+over Alice.
+
+"Stand up and repeat '_'Tis the voice of the sluggard_,'" said the
+Gryphon.
+
+"How the creatures order one about, and make one repeat lessons!"
+thought Alice. "I might as well be at school at once." However, she got
+up, and began to repeat it, but her head was so full of the Lobster
+Quadrille, that she hardly knew what she was saying, and the words came
+very queer indeed:--
+
+ "'Tis the voice of the Lobster; I heard him declare,
+ 'You have baked me too brown, I must sugar my hair.'
+ As a duck with its eyelids, so he with his nose
+ Trims his belt and his buttons, and turns out his toes.
+ When the sands are all dry, he is gay as a lark,
+ And will talk in contemptuous tones of the Shark:
+ But, when the tide rises and sharks are around,
+ His voice has a timid and tremulous sound."
+
+"That's different from what _I_ used to say when I was a child," said
+the Gryphon.
+
+"Well, _I_ never heard it before," said the Mock Turtle: "but it sounds
+uncommon nonsense."
+
+Alice said nothing; she had sat down with her face in her hands,
+wondering if anything would _ever_ happen in a natural way again.
+
+"I should like to have it explained," said the Mock Turtle.
+
+"She ca'n't explain it," hastily said the Gryphon. "Go on with the next
+verse."
+
+"But about his toes?" the Mock Turtle persisted. "How _could_ he turn
+them out with his nose, you know?"
+
+"It's the first position in dancing," Alice said; but was dreadfully
+puzzled by the whole thing, and longed to change the subject.
+
+"Go on with the next verse," the Gryphon repeated: "it begins '_I passed
+by his garden_.'"
+
+Alice did not dare to disobey, though she felt sure it would all come
+wrong, and she went on in a trembling voice:
+
+ "I passed by his garden, and marked, with one eye,
+ How the Owl and the Panther were sharing a pie:
+ The Panther took pie-crust, and gravy, and meat,
+ While the Owl had the dish as its share of the treat.
+ When the pie was all finished, the Owl, as a boon,
+ Was kindly permitted to pocket the spoon:
+ While the Panther received knife and fork with a growl,
+ And concluded the banquet by----"
+
+"What _is_ the use of repeating all that stuff," the Mock Turtle
+interrupted, "if you don't explain it as you go on? It's by far the most
+confusing thing _I_ ever heard!"
+
+[Illustration]
+
+"Yes, I think you'd better leave off," said the Gryphon: and Alice was
+only too glad to do so.
+
+"Shall we try another figure of the Lobster Quadrille?" the Gryphon went
+on. "Or would you like the Mock Turtle to sing you another song?"
+
+"Oh, a song, please, if the Mock Turtle would be so kind," Alice
+replied, so eagerly that the Gryphon said, in a rather offended tone,
+"H'm! No accounting for tastes! Sing her '_Turtle Soup_,' will you, old
+fellow?"
+
+The Mock Turtle sighed deeply, and began, in a voice choked with sobs,
+to sing this:--
+
+ "Beautiful Soup, so rich and green,
+ Waiting in a hot tureen!
+ Who for such dainties would not stoop?
+ Soup of the evening, beautiful Soup!
+ Soup of the evening, beautiful Soup!
+ Beau--ootiful Soo--oop!
+ Beau--ootiful Soo--oop!
+ Soo--oop of the e--e--evening,
+ Beautiful, beautiful Soup!
+
+ "Beautiful Soup! Who cares for fish,
+ Game, or any other dish?
+ Who would not give all else for two
+ Pennyworth only of beautiful Soup?
+ Pennyworth only of beautiful Soup?
+ Beau--ootiful Soo--oop!
+ Beau--ootiful Soo--oop!
+ Soo--oop of the e--e--evening,
+ Beautiful, beauti--FUL SOUP!"
+
+"Chorus again!" cried the Gryphon, and the Mock Turtle had just begun
+to repeat it, when a cry of "The trial's beginning!" was heard in the
+distance.
+
+"Come on!" cried the Gryphon, and, taking Alice by the hand, it hurried
+off, without waiting for the end of the song.
+
+"What trial is it?" Alice panted as she ran; but the Gryphon only
+answered "Come on!" and ran the faster, while more and more faintly
+came, carried on the breeze that followed them, the melancholy words:--
+
+ "Soo--oop of the e--e--evening,
+ Beautiful, beautiful Soup!"
+
+
+
+
+CHAPTER XI
+
+
+[Sidenote: _Who Stole the Tarts?_]
+
+THE King and Queen of Hearts were seated on their throne
+when they arrived, with a great crowd assembled about them--all sorts of
+little birds and beasts, as well as the whole pack of cards: the Knave
+was standing before them, in chains, with a soldier on each side to
+guard him; and near the King was the White Rabbit, with a trumpet in one
+hand, and a scroll of parchment in the other. In the very middle of the
+court was a table, with a large dish of tarts upon it: they looked so
+good, that it made Alice quite hungry to look at them--"I wish they'd
+get the trial done," she thought, "and hand round the refreshments!" But
+there seemed to be no chance of this, so she began looking about her, to
+pass away the time.
+
+Alice had never been in a court of justice before, but she had read
+about them in books, and she was quite pleased to find that she knew the
+name of nearly everything there. "That's the judge," she said to
+herself, "because of his great wig."
+
+The judge, by the way, was the King; and as he wore his crown over the
+wig, he did not look at all comfortable, and it was certainly not
+becoming.
+
+"And that's the jury-box," thought Alice, "and those twelve creatures,"
+(she was obliged to say "creatures," you see, because some of them were
+animals, and some were birds,) "I suppose they are the jurors." She said
+this last word two or three times over to herself, being rather proud of
+it: for she thought, and rightly too, that very few little girls of her
+age knew the meaning of it at all. However, "jurymen" would have done
+just as well.
+
+The twelve jurors were all writing very busily on slates. "What are they
+all doing?" Alice whispered to the Gryphon. "They can't have anything to
+put down yet, before the trial's begun."
+
+[Illustration: _Who stole the tarts?_]
+
+"They're putting down their names," the Gryphon whispered in reply,
+"for fear they should forget them before the end of the trial."
+
+"Stupid things!" Alice began in a loud, indignant voice, but she stopped
+hastily, for the White Rabbit cried out "Silence in the court!" and the
+King put on his spectacles and looked anxiously round, to see who was
+talking.
+
+Alice could see, as well as if she were looking over their shoulders,
+that all the jurors were writing down "stupid things!" on their slates,
+and she could even make out that one of them didn't know how to spell
+"stupid," and that he had to ask his neighbour to tell him. "A nice
+muddle their slates will be in before the trial's over!" thought Alice.
+
+One of the jurors had a pencil that squeaked. This, of course, Alice
+could _not_ stand, and she went round the court and got behind him, and
+very soon found an opportunity of taking it away. She did it so quickly
+that the poor little juror (it was Bill, the Lizard) could not make out
+at all what had become of it; so, after hunting all about for it, he
+was obliged to write with one finger for the rest of the day; and this
+was of very little use, as it left no mark on the slate.
+
+"Herald, read the accusation!" said the King.
+
+On this the White Rabbit blew three blasts on the trumpet, and then
+unrolled the parchment scroll, and read as follows:
+
+ "The Queen of Hearts, she made some tarts,
+ All on a summer day:
+ The Knave of Hearts, he stole those tarts,
+ And took them quite away!"
+
+"Consider your verdict," the King said to the jury.
+
+"Not yet, not yet!" the Rabbit hastily interrupted. "There's a great
+deal to come before that!"
+
+"Call the first witness," said the King; and the Rabbit blew three
+blasts on the trumpet, and called out "First witness!"
+
+The first witness was the Hatter. He came in with a teacup in one hand
+and a piece of bread-and-butter in the other. "I beg pardon, your
+Majesty," he began, "for bringing these in; but I hadn't quite finished
+my tea when I was sent for."
+
+"You ought to have finished," said the King. "When did you begin?"
+
+The Hatter looked at the March Hare, who had followed him into the
+court, arm-in-arm with the Dormouse. "Fourteenth of March, I _think_ it
+was," he said.
+
+"Fifteenth," said the March Hare.
+
+"Sixteenth," said the Dormouse.
+
+"Write that down," the King said to the jury, and the jury eagerly wrote
+down all three dates on their slates, and then added them up, and
+reduced the answer to shillings and pence.
+
+"Take off your hat," the King said to the Hatter.
+
+"It isn't mine," said the Hatter.
+
+"_Stolen!_" the King exclaimed, turning to the jury, who instantly made
+a memorandum of the fact.
+
+"I keep them to sell," the Hatter added as an explanation: "I've none of
+my own. I'm a hatter."
+
+Here the Queen put on her spectacles, and began staring hard at the
+Hatter, who turned pale and fidgeted.
+
+"Give your evidence," said the King; "and don't be nervous, or I'll have
+you executed on the spot."
+
+This did not seem to encourage the witness at all: he kept shifting from
+one foot to the other, looking uneasily at the Queen, and in his
+confusion he bit a large piece out of his teacup instead of the
+bread-and-butter.
+
+Just at this moment Alice felt a very curious sensation, which puzzled
+her a good deal until she made out what it was: she was beginning to
+grow larger again, and she thought at first she would get up and leave
+the court; but on second thoughts she decided to remain where she was as
+long as there was room for her.
+
+"I wish you wouldn't squeeze so," said the Dormouse, who was sitting
+next to her. "I can hardly breathe."
+
+"I can't help it," said Alice very meekly: "I'm growing."
+
+"You've no right to grow _here_," said the Dormouse.
+
+"Don't talk nonsense," said Alice more boldly: "you know you're growing
+too."
+
+"Yes, but _I_ grow at a reasonable pace," said the Dormouse; "not in
+that ridiculous fashion." And he got up very sulkily and crossed over to
+the other side of the court.
+
+All this time the Queen had never left off staring at the Hatter, and,
+just as the Dormouse crossed the court, she said to one of the officers
+of the court, "Bring me the list of the singers in the last concert!" on
+which the wretched Hatter trembled so, that he shook off both his shoes.
+
+"Give your evidence," the King repeated angrily, "or I'll have you
+executed, whether you're nervous or not."
+
+"I'm a poor man, your Majesty," the Hatter began, in a trembling voice,
+"--and I hadn't begun my tea--not above a week or so--and what with the
+bread-and-butter getting so thin--and the twinkling of the tea----"
+
+"The twinkling of _what_?" said the King.
+
+"It _began_ with the tea," the Hatter replied.
+
+"Of course twinkling _begins_ with a T!" said the King sharply. "Do you
+take me for a dunce? Go on!"
+
+"I'm a poor man," the Hatter went on, "and most things twinkled after
+that--only the March Hare said----"
+
+"I didn't!" the March Hare interrupted in a great hurry.
+
+"You did!" said the Hatter.
+
+"I deny it!" said the March Hare.
+
+"He denies it," said the King: "leave out that part."
+
+"Well, at any rate, the Dormouse said----" the Hatter went on, looking
+anxiously round to see if he would deny it too: but the Dormouse denied
+nothing, being fast asleep.
+
+"After that," continued the Hatter, "I cut some more
+bread-and-butter----"
+
+"But what did the Dormouse say?" one of the jury asked.
+
+"That I can't remember," said the Hatter.
+
+"You _must_ remember," remarked the King, "or I'll have you executed."
+
+The miserable Hatter dropped his teacup and bread-and-butter, and went
+down on one knee. "I'm a poor man, your Majesty," he began.
+
+"You're a _very_ poor _speaker_," said the King.
+
+Here one of the guinea-pigs cheered, and was immediately suppressed by
+the officers of the court. (As that is rather a hard word, I will just
+explain to you how it was done. They had a large canvas bag, which tied
+up at the mouth with strings: into this they slipped the guinea-pig,
+head first, and then sat upon it.)
+
+"I'm glad I've seen that done," thought Alice. "I've so often read in
+the newspapers, at the end of trials, 'There was some attempt at
+applause, which was immediately suppressed by the officers of the
+court,' and I never understood what it meant till now."
+
+"If that's all you know about it, you may stand down," continued the
+King.
+
+"I can't go no lower," said the Hatter: "I'm on the floor, as it is."
+
+"Then you may _sit_ down," the King replied.
+
+Here the other guinea-pig cheered, and was suppressed.
+
+"Come, that finishes the guinea-pigs!" thought Alice. "Now we shall get
+on better."
+
+"I'd rather finish my tea," said the Hatter, with an anxious look at
+the Queen, who was reading the list of singers.
+
+"You may go," said the King; and the Hatter hurriedly left the court,
+without even waiting to put his shoes on.
+
+"--and just take his head off outside," the Queen added to one of the
+officers; but the Hatter was out of sight before the officer could get
+to the door.
+
+"Call the next witness!" said the King.
+
+The next witness was the Duchess's cook. She carried the pepper-box in
+her hand, and Alice guessed who it was, even before she got into the
+court, by the way the people near the door began sneezing all at once.
+
+"Give your evidence," said the King.
+
+"Sha'n't," said the cook.
+
+The King looked anxiously at the White Rabbit, who said in a low voice,
+"Your Majesty must cross-examine _this_ witness."
+
+"Well, if I must, I must," the King said with a melancholy air, and,
+after folding his arms and frowning at the cook till his eyes were
+nearly out of sight, he said in a deep voice, "What are tarts made of?"
+
+"Pepper, mostly," said the cook.
+
+"Treacle," said a sleepy voice behind her.
+
+"Collar that Dormouse," the Queen shrieked out. "Behead that Dormouse!
+Turn that Dormouse out of court! Suppress him! Pinch him! Off with his
+whiskers."
+
+For some minutes the whole court was in confusion, getting the Dormouse
+turned out, and, by the time they had settled down again, the cook had
+disappeared.
+
+[Illustration]
+
+"Never mind!" said the King, with an air of great relief. "Call the next
+witness." And he added in an undertone to the Queen, "Really, my dear,
+_you_ must cross-examine the next witness. It quite makes my forehead
+ache!"
+
+Alice watched the White Rabbit as he fumbled over the list, feeling very
+curious to see what the next witness would be like, "--for they haven't
+got much evidence _yet_," she said to herself. Imagine her surprise,
+when the White Rabbit read out, at the top of his shrill little voice,
+the name "Alice!"
+
+
+
+
+CHAPTER XII
+
+
+[Sidenote: _Alice's Evidence_]
+
+"HERE!" cried Alice, quite forgetting in the flurry of
+the moment how large she had grown in the last few minutes, and she
+jumped up in such a hurry that she tipped over the jury-box with the
+edge of her skirt, upsetting all the jurymen on to the heads of the
+crowd below, and there they lay sprawling about, reminding her very much
+of a globe of gold-fish she had accidentally upset the week before.
+
+"Oh, I _beg_ your pardon!" she exclaimed in a tone of great dismay, and
+began picking them up again as quickly as she could, for the accident of
+the gold-fish kept running in her head, and she had a vague sort of idea
+that they must be collected at once and put back into the jury-box, or
+they would die.
+
+"The trial cannot proceed," said the King in a very grave voice, "until
+all the jurymen are back in their proper places--_all_," he repeated
+with great emphasis, looking hard at Alice as he said so.
+
+Alice looked at the jury-box, and saw that, in her haste, she had put
+the Lizard in head downwards, and the poor little thing was waving its
+tail about in a melancholy way, being quite unable to move. She soon got
+it out again, and put it right; "not that it signifies much," she said
+to herself; "I should think it would be _quite_ as much use in the trial
+one way up as the other."
+
+As soon as the jury had a little recovered from the shock of being
+upset, and their slates and pencils had been found and handed back to
+them, they set to work very diligently to write out a history of the
+accident, all except the Lizard, who seemed too much overcome to do
+anything but sit with its mouth open, gazing up into the roof of the
+court.
+
+"What do you know about this business?" the King said to Alice.
+
+"Nothing," said Alice.
+
+"Nothing _whatever_?" persisted the King.
+
+"Nothing whatever," said Alice.
+
+"That's very important," the King said, turning to the jury. They were
+just beginning to write this down on their slates, when the White Rabbit
+interrupted: "_Un_important, your Majesty means, of course," he said in
+a very respectful tone, but frowning and making faces at him as he
+spoke.
+
+"_Un_important, of course, I meant," the King hastily said, and went on
+himself in an undertone,"important--unimportant--unimportant--important----"
+as if he were trying which word sounded best.
+
+Some of the jury wrote it down "important," and some "unimportant."
+Alice could see this, as she was near enough to look over their slates;
+"but it doesn't matter a bit," she thought to herself.
+
+At this moment the King, who had been for some time busily writing in
+his note-book, called out "Silence!" and read out from his book, "Rule
+Forty-two. _All persons more than a mile high to leave the court._"
+
+Everybody looked at Alice.
+
+"_I'm_ not a mile high," said Alice.
+
+"You are," said the King.
+
+"Nearly two miles high," added the Queen.
+
+"Well, I sha'n't go, at any rate," said Alice: "besides, that's not a
+regular rule: you invented it just now."
+
+"It's the oldest rule in the book," said the King.
+
+"Then it ought to be Number One," said Alice.
+
+The King turned pale, and shut his note-book hastily. "Consider your
+verdict," he said to the jury, in a low trembling voice.
+
+"There's more evidence to come yet, please your Majesty," said the White
+Rabbit, jumping up in a great hurry: "this paper has just been picked
+up."
+
+"What's in it?" said the Queen.
+
+"I haven't opened it yet," said the White Rabbit, "but it seems to be a
+letter, written by the prisoner to--to somebody."
+
+"It must have been that," said the King, "unless it was written to
+nobody, which isn't usual, you know."
+
+"Who is it directed to?" said one of the jurymen.
+
+"It isn't directed at all," said the White Rabbit; "in fact, there's
+nothing written on the _outside_." He unfolded the paper as he spoke,
+and added "It isn't a letter after all: it's a set of verses."
+
+"Are they in the prisoner's handwriting?" asked another of the jurymen.
+
+"No, they're not," said the White Rabbit, "and that's the queerest thing
+about it." (The jury all looked puzzled.)
+
+"He must have imitated somebody else's hand," said the King. (The jury
+all brightened up again.)
+
+"Please your Majesty," said the Knave, "I didn't write it, and they
+can't prove that I did: there's no name signed at the end."
+
+"If you didn't sign it," said the King, "that only makes the matter
+worse. You _must_ have meant some mischief, or else you'd have signed
+your name like an honest man."
+
+There was a general clapping of hands at this: it was the first really
+clever thing the King had said that day.
+
+"That _proves_ his guilt, of course," said the Queen: "so, off with----"
+
+"It doesn't prove anything of the sort!" said Alice. "Why, you don't
+even know what they're about!"
+
+"Read them," said the King.
+
+The White Rabbit put on his spectacles. "Where shall I begin, please
+your Majesty?" he asked.
+
+"Begin at the beginning," the King said gravely, "and go on till you
+come to the end; then stop."
+
+There was dead silence in the court, whilst the White Rabbit read out
+these verses:--
+
+ "They told me you had been to her,
+ And mentioned me to him:
+ She gave me a good character,
+ But said I could not swim.
+
+ He sent them word I had not gone,
+ (We know it to be true):
+ If she should push the matter on,
+ What would become of you?
+
+ I gave her one, they gave him two,
+ You gave us three or more;
+ They all returned from him to you,
+ Though they were mine before.
+
+ If I or she should chance to be
+ Involved in this affair,
+ He trusts to you to set them free,
+ Exactly as we were.
+
+ My notion was that you had been
+ (Before she had this fit)
+ An obstacle that came between
+ Him, and ourselves, and it.
+
+ Don't let him know she liked them best,
+ For this must ever be
+ A secret, kept from all the rest,
+ Between yourself and me."
+
+"That's the most important piece of evidence we've heard yet," said the
+King, rubbing his hands; "so now let the jury----"
+
+"If any of them can explain it," said Alice, (she had grown so large in
+the last few minutes that she wasn't a bit afraid of interrupting him,)
+"I'll give him sixpence. _I_ don't believe there's an atom of meaning in
+it."
+
+The jury all wrote down on their slates, "_She_ doesn't believe there's
+an atom of meaning in it," but none of them attempted to explain the
+paper.
+
+"If there's no meaning in it," said the King, "that saves a world of
+trouble, you know, as we needn't try to find any. And yet I don't
+know," he went on, spreading out the verses on his knee, and looking at
+them with one eye; "I seem to see some meaning in them after all.
+'----_said I could not swim_--' you can't swim can you?" he added,
+turning to the Knave.
+
+The Knave shook his head sadly. "Do I look like it?" he said. (Which he
+certainly did _not_, being made entirely of cardboard.)
+
+"All right, so far," said the King, as he went on muttering over the
+verses to himself: "'_We know it to be true_--' that's the jury, of
+course--'_If she should push the matter on_'--that must be the
+Queen--'_What would become of you?_'--What, indeed!--'_I gave her one,
+they gave him two_--' why, that must be what he did with the tarts, you
+know----"
+
+"But it goes on '_they all returned from him to you_,'" said Alice.
+
+"Why, there they are!" said the King triumphantly, pointing to the tarts
+on the table. "Nothing can be clearer than _that_. Then again--'_before
+she had this fit_--' you never had _fits_, my dear, I think?" he said to
+the Queen.
+
+"Never!" said the Queen furiously, throwing an inkstand at the Lizard
+as she spoke. (The unfortunate little Bill had left off writing on his
+slate with one finger, as he found it made no mark; but he now hastily
+began again, using the ink, that was trickling down his face, as long as
+it lasted.)
+
+"Then the words don't _fit_ you," said the King, looking round the court
+with a smile. There was a dead silence.
+
+"It's a pun!" the King added in an angry tone, and everybody laughed.
+
+"Let the jury consider their verdict," the King said, for about the
+twentieth time that day.
+
+"No, no!" said the Queen. "Sentence first--verdict afterwards."
+
+"Stuff and nonsense!" said Alice loudly. "The idea of having the
+sentence first!"
+
+"Hold your tongue!" said the Queen, turning purple.
+
+"I won't!" said Alice.
+
+"Off with her head!" the Queen shouted at the top of her voice. Nobody
+moved.
+
+"Who cares for _you_?" said Alice (she had grown to her full size by
+this time). "You're nothing but a pack of cards!"
+
+[Illustration: _At this the whole pack rose up into the air, and came
+flying down upon her_]
+
+At this the whole pack rose up into the air, and came flying down upon
+her: she gave a little scream, half of fright and half of anger, and
+tried to beat them off, and found herself lying on the bank, with her
+head in the lap of her sister, who was gently brushing away some dead
+leaves that had fluttered down from the trees upon her face.
+
+"Wake up, Alice dear!" said her sister. "Why, what a long sleep you've
+had!"
+
+"Oh, I've had such a curious dream!" said Alice, and she told her
+sister, as well as she could remember them, all these strange Adventures
+of hers that you have just been reading about; and when she had
+finished, her sister kissed her, and said "It _was_ a curious dream,
+dear, certainly: but now run in to your tea; it's getting late." So
+Alice got up and ran off, thinking while she ran, as well she might,
+what a wonderful dream it had been.
+
+
+
+
+BUT her sister sat still just as she had left her, leaning her head,
+watching the setting sun, and thinking of little Alice and all her
+wonderful Adventures, till she too began dreaming after a fashion, and
+this was her dream:
+
+First, she dreamed of little Alice herself, and once again the tiny
+hands were clasped upon her knee, and the bright eager eyes were looking
+up into hers--she could hear the very tones of her voice, and see that
+queer little toss of her head to keep back the wandering hair that
+_would_ always get into her eyes--and still as she listened, or seemed
+to listen, the whole place around her became alive with the strange
+creatures of her little sister's dream.
+
+The long grass rustled at her feet as the White Rabbit hurried by--the
+frightened Mouse splashed his way through the neighbouring pool--she
+could hear the rattle of the teacups as the March Hare and his friends
+shared their never-ending meal, and the shrill voice of the Queen
+ordering off her unfortunate guests to execution--once more the pig-baby
+was sneezing on the Duchess' knee, while plates and dishes crashed
+around it--once more the shriek of the Gryphon, the squeaking of the
+Lizard's slate-pencil, and the choking of the suppressed guinea-pigs,
+filled the air, mixed up with the distant sobs of the miserable Mock
+Turtle.
+
+So she sat on with closed eyes, and half believed herself in Wonderland,
+though she knew she had but to open them again, and all would change to
+dull reality--the grass would be only rustling in the wind, and the pool
+rippling to the waving of the reeds--the rattling teacups would change
+to the tinkling sheep-bells, and the Queen's shrill cries to the voice
+of the shepherd boy--and the sneeze of the baby, the shriek of the
+Gryphon, and all the other queer noises, would change (she knew) to the
+confused clamour of the busy farm-yard--while the lowing of the cattle
+in the distance would take the place of the Mock Turtle's heavy sobs.
+
+Lastly, she pictured to herself how this same little sister of hers
+would, in the after-time, be herself a grown woman; and how she would
+keep, through all her riper years, the simple and loving heart of her
+childhood: and how she would gather about her other little children,
+and make _their_ eyes bright and eager with many a strange tale, perhaps
+even with the dream of Wonderland of long ago: and how she would feel
+with all their simple sorrows, and find a pleasure in all their simple
+joys, remembering her own child-life, and the happy summer days.
+
+
+THE END
+
+
+
+
+ ILLUSTRATIONS REPRODUCED BY HENTSCHEL COLOURTYPE
+ TEXT PRINTED BY BALLANTYNE & COMPANY LTD
+ AT THE BALLANTYNE PRESS
+ TAVISTOCK STREET
+ LONDON
+
+ * * * * *
+
+Transcriber's Notes:
+
+Page 8, opening quote added to text (doorway; "and even if)
+
+Page 33, "she" changed to "she's" (And she's such a)
+
+Page 37, "quiet" changed to "quite" (I'm quite tired of)
+
+Page 41, colon changed to period (arm, yer honour.)
+
+Page 42, "wont" changed to "want" (want to stay)
+
+Page 66, closing quotation mark added (to-morrow----")
+
+Page 69, single quotation mark changed to double (cat," said the
+Duchess)
+
+Page 91, word "to" added to text (minute or two to)
+
+Page 103, word "as" added to the text (just as she had)
+
+Page 104, "hedge-hog" changed to "hedgehog" (send the hedgehog to)
+
+Page 126, end parenthesis added ("No, never")
+
+Page 153, added an apostrophe (What's in it?)
+
+
+
+
+
+
+End of Project Gutenberg's Alice's Adventures in Wonderland, by Lewis Carroll
+
+*** END OF THIS PROJECT GUTENBERG EBOOK ALICE'S ADVENTURES IN WONDERLAND ***
+
+***** This file should be named 28885-8.txt or 28885-8.zip *****
+This and all associated files of various formats will be found in:
+ http://www.gutenberg.org/2/8/8/8/28885/
+
+Produced by Jana Srna, Emmy and the Online Distributed
+Proofreading Team at http://www.pgdp.net (This file was
+produced from images generously made available by the
+University of Florida Digital Collections.)
+
+
+Updated editions will replace the previous one--the old editions
+will be renamed.
+
+Creating the works from public domain print editions means that no
+one owns a United States copyright in these works, so the Foundation
+(and you!) can copy and distribute it in the United States without
+permission and without paying copyright royalties. Special rules,
+set forth in the General Terms of Use part of this license, apply to
+copying and distributing Project Gutenberg-tm electronic works to
+protect the PROJECT GUTENBERG-tm concept and trademark. Project
+Gutenberg is a registered trademark, and may not be used if you
+charge for the eBooks, unless you receive specific permission. If you
+do not charge anything for copies of this eBook, complying with the
+rules is very easy. You may use this eBook for nearly any purpose
+such as creation of derivative works, reports, performances and
+research. They may be modified and printed and given away--you may do
+practically ANYTHING with public domain eBooks. Redistribution is
+subject to the trademark license, especially commercial
+redistribution.
+
+
+
+*** START: FULL LICENSE ***
+
+THE FULL PROJECT GUTENBERG LICENSE
+PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK
+
+To protect the Project Gutenberg-tm mission of promoting the free
+distribution of electronic works, by using or distributing this work
+(or any other work associated in any way with the phrase "Project
+Gutenberg"), you agree to comply with all the terms of the Full Project
+Gutenberg-tm License (available with this file or online at
+http://gutenberg.net/license).
+
+
+Section 1. General Terms of Use and Redistributing Project Gutenberg-tm
+electronic works
+
+1.A. By reading or using any part of this Project Gutenberg-tm
+electronic work, you indicate that you have read, understand, agree to
+and accept all the terms of this license and intellectual property
+(trademark/copyright) agreement. If you do not agree to abide by all
+the terms of this agreement, you must cease using and return or destroy
+all copies of Project Gutenberg-tm electronic works in your possession.
+If you paid a fee for obtaining a copy of or access to a Project
+Gutenberg-tm electronic work and you do not agree to be bound by the
+terms of this agreement, you may obtain a refund from the person or
+entity to whom you paid the fee as set forth in paragraph 1.E.8.
+
+1.B. "Project Gutenberg" is a registered trademark. It may only be
+used on or associated in any way with an electronic work by people who
+agree to be bound by the terms of this agreement. There are a few
+things that you can do with most Project Gutenberg-tm electronic works
+even without complying with the full terms of this agreement. See
+paragraph 1.C below. There are a lot of things you can do with Project
+Gutenberg-tm electronic works if you follow the terms of this agreement
+and help preserve free future access to Project Gutenberg-tm electronic
+works. See paragraph 1.E below.
+
+1.C. The Project Gutenberg Literary Archive Foundation ("the Foundation"
+or PGLAF), owns a compilation copyright in the collection of Project
+Gutenberg-tm electronic works. Nearly all the individual works in the
+collection are in the public domain in the United States. If an
+individual work is in the public domain in the United States and you are
+located in the United States, we do not claim a right to prevent you from
+copying, distributing, performing, displaying or creating derivative
+works based on the work as long as all references to Project Gutenberg
+are removed. Of course, we hope that you will support the Project
+Gutenberg-tm mission of promoting free access to electronic works by
+freely sharing Project Gutenberg-tm works in compliance with the terms of
+this agreement for keeping the Project Gutenberg-tm name associated with
+the work. You can easily comply with the terms of this agreement by
+keeping this work in the same format with its attached full Project
+Gutenberg-tm License when you share it without charge with others.
+
+1.D. The copyright laws of the place where you are located also govern
+what you can do with this work. Copyright laws in most countries are in
+a constant state of change. If you are outside the United States, check
+the laws of your country in addition to the terms of this agreement
+before downloading, copying, displaying, performing, distributing or
+creating derivative works based on this work or any other Project
+Gutenberg-tm work. The Foundation makes no representations concerning
+the copyright status of any work in any country outside the United
+States.
+
+1.E. Unless you have removed all references to Project Gutenberg:
+
+1.E.1. The following sentence, with active links to, or other immediate
+access to, the full Project Gutenberg-tm License must appear prominently
+whenever any copy of a Project Gutenberg-tm work (any work on which the
+phrase "Project Gutenberg" appears, or with which the phrase "Project
+Gutenberg" is associated) is accessed, displayed, performed, viewed,
+copied or distributed:
+
+This eBook is for the use of anyone anywhere at no cost and with
+almost no restrictions whatsoever. You may copy it, give it away or
+re-use it under the terms of the Project Gutenberg License included
+with this eBook or online at www.gutenberg.net
+
+1.E.2. If an individual Project Gutenberg-tm electronic work is derived
+from the public domain (does not contain a notice indicating that it is
+posted with permission of the copyright holder), the work can be copied
+and distributed to anyone in the United States without paying any fees
+or charges. If you are redistributing or providing access to a work
+with the phrase "Project Gutenberg" associated with or appearing on the
+work, you must comply either with the requirements of paragraphs 1.E.1
+through 1.E.7 or obtain permission for the use of the work and the
+Project Gutenberg-tm trademark as set forth in paragraphs 1.E.8 or
+1.E.9.
+
+1.E.3. If an individual Project Gutenberg-tm electronic work is posted
+with the permission of the copyright holder, your use and distribution
+must comply with both paragraphs 1.E.1 through 1.E.7 and any additional
+terms imposed by the copyright holder. Additional terms will be linked
+to the Project Gutenberg-tm License for all works posted with the
+permission of the copyright holder found at the beginning of this work.
+
+1.E.4. Do not unlink or detach or remove the full Project Gutenberg-tm
+License terms from this work, or any files containing a part of this
+work or any other work associated with Project Gutenberg-tm.
+
+1.E.5. Do not copy, display, perform, distribute or redistribute this
+electronic work, or any part of this electronic work, without
+prominently displaying the sentence set forth in paragraph 1.E.1 with
+active links or immediate access to the full terms of the Project
+Gutenberg-tm License.
+
+1.E.6. You may convert to and distribute this work in any binary,
+compressed, marked up, nonproprietary or proprietary form, including any
+word processing or hypertext form. However, if you provide access to or
+distribute copies of a Project Gutenberg-tm work in a format other than
+"Plain Vanilla ASCII" or other format used in the official version
+posted on the official Project Gutenberg-tm web site (www.gutenberg.net),
+you must, at no additional cost, fee or expense to the user, provide a
+copy, a means of exporting a copy, or a means of obtaining a copy upon
+request, of the work in its original "Plain Vanilla ASCII" or other
+form. Any alternate format must include the full Project Gutenberg-tm
+License as specified in paragraph 1.E.1.
+
+1.E.7. Do not charge a fee for access to, viewing, displaying,
+performing, copying or distributing any Project Gutenberg-tm works
+unless you comply with paragraph 1.E.8 or 1.E.9.
+
+1.E.8. You may charge a reasonable fee for copies of or providing
+access to or distributing Project Gutenberg-tm electronic works provided
+that
+
+- You pay a royalty fee of 20% of the gross profits you derive from
+ the use of Project Gutenberg-tm works calculated using the method
+ you already use to calculate your applicable taxes. The fee is
+ owed to the owner of the Project Gutenberg-tm trademark, but he
+ has agreed to donate royalties under this paragraph to the
+ Project Gutenberg Literary Archive Foundation. Royalty payments
+ must be paid within 60 days following each date on which you
+ prepare (or are legally required to prepare) your periodic tax
+ returns. Royalty payments should be clearly marked as such and
+ sent to the Project Gutenberg Literary Archive Foundation at the
+ address specified in Section 4, "Information about donations to
+ the Project Gutenberg Literary Archive Foundation."
+
+- You provide a full refund of any money paid by a user who notifies
+ you in writing (or by e-mail) within 30 days of receipt that s/he
+ does not agree to the terms of the full Project Gutenberg-tm
+ License. You must require such a user to return or
+ destroy all copies of the works possessed in a physical medium
+ and discontinue all use of and all access to other copies of
+ Project Gutenberg-tm works.
+
+- You provide, in accordance with paragraph 1.F.3, a full refund of any
+ money paid for a work or a replacement copy, if a defect in the
+ electronic work is discovered and reported to you within 90 days
+ of receipt of the work.
+
+- You comply with all other terms of this agreement for free
+ distribution of Project Gutenberg-tm works.
+
+1.E.9. If you wish to charge a fee or distribute a Project Gutenberg-tm
+electronic work or group of works on different terms than are set
+forth in this agreement, you must obtain permission in writing from
+both the Project Gutenberg Literary Archive Foundation and Michael
+Hart, the owner of the Project Gutenberg-tm trademark. Contact the
+Foundation as set forth in Section 3 below.
+
+1.F.
+
+1.F.1. Project Gutenberg volunteers and employees expend considerable
+effort to identify, do copyright research on, transcribe and proofread
+public domain works in creating the Project Gutenberg-tm
+collection. Despite these efforts, Project Gutenberg-tm electronic
+works, and the medium on which they may be stored, may contain
+"Defects," such as, but not limited to, incomplete, inaccurate or
+corrupt data, transcription errors, a copyright or other intellectual
+property infringement, a defective or damaged disk or other medium, a
+computer virus, or computer codes that damage or cannot be read by
+your equipment.
+
+1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the "Right
+of Replacement or Refund" described in paragraph 1.F.3, the Project
+Gutenberg Literary Archive Foundation, the owner of the Project
+Gutenberg-tm trademark, and any other party distributing a Project
+Gutenberg-tm electronic work under this agreement, disclaim all
+liability to you for damages, costs and expenses, including legal
+fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT
+LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE
+PROVIDED IN PARAGRAPH F3. YOU AGREE THAT THE FOUNDATION, THE
+TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE
+LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR
+INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH
+DAMAGE.
+
+1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a
+defect in this electronic work within 90 days of receiving it, you can
+receive a refund of the money (if any) you paid for it by sending a
+written explanation to the person you received the work from. If you
+received the work on a physical medium, you must return the medium with
+your written explanation. The person or entity that provided you with
+the defective work may elect to provide a replacement copy in lieu of a
+refund. If you received the work electronically, the person or entity
+providing it to you may choose to give you a second opportunity to
+receive the work electronically in lieu of a refund. If the second copy
+is also defective, you may demand a refund in writing without further
+opportunities to fix the problem.
+
+1.F.4. Except for the limited right of replacement or refund set forth
+in paragraph 1.F.3, this work is provided to you 'AS-IS' WITH NO OTHER
+WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR ANY PURPOSE.
+
+1.F.5. Some states do not allow disclaimers of certain implied
+warranties or the exclusion or limitation of certain types of damages.
+If any disclaimer or limitation set forth in this agreement violates the
+law of the state applicable to this agreement, the agreement shall be
+interpreted to make the maximum disclaimer or limitation permitted by
+the applicable state law. The invalidity or unenforceability of any
+provision of this agreement shall not void the remaining provisions.
+
+1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the
+trademark owner, any agent or employee of the Foundation, anyone
+providing copies of Project Gutenberg-tm electronic works in accordance
+with this agreement, and any volunteers associated with the production,
+promotion and distribution of Project Gutenberg-tm electronic works,
+harmless from all liability, costs and expenses, including legal fees,
+that arise directly or indirectly from any of the following which you do
+or cause to occur: (a) distribution of this or any Project Gutenberg-tm
+work, (b) alteration, modification, or additions or deletions to any
+Project Gutenberg-tm work, and (c) any Defect you cause.
+
+
+Section 2. Information about the Mission of Project Gutenberg-tm
+
+Project Gutenberg-tm is synonymous with the free distribution of
+electronic works in formats readable by the widest variety of computers
+including obsolete, old, middle-aged and new computers. It exists
+because of the efforts of hundreds of volunteers and donations from
+people in all walks of life.
+
+Volunteers and financial support to provide volunteers with the
+assistance they need are critical to reaching Project Gutenberg-tm's
+goals and ensuring that the Project Gutenberg-tm collection will
+remain freely available for generations to come. In 2001, the Project
+Gutenberg Literary Archive Foundation was created to provide a secure
+and permanent future for Project Gutenberg-tm and future generations.
+To learn more about the Project Gutenberg Literary Archive Foundation
+and how your efforts and donations can help, see Sections 3 and 4
+and the Foundation web page at http://www.pglaf.org.
+
+
+Section 3. Information about the Project Gutenberg Literary Archive
+Foundation
+
+The Project Gutenberg Literary Archive Foundation is a non profit
+501(c)(3) educational corporation organized under the laws of the
+state of Mississippi and granted tax exempt status by the Internal
+Revenue Service. The Foundation's EIN or federal tax identification
+number is 64-6221541. Its 501(c)(3) letter is posted at
+http://pglaf.org/fundraising. Contributions to the Project Gutenberg
+Literary Archive Foundation are tax deductible to the full extent
+permitted by U.S. federal laws and your state's laws.
+
+The Foundation's principal office is located at 4557 Melan Dr. S.
+Fairbanks, AK, 99712., but its volunteers and employees are scattered
+throughout numerous locations. Its business office is located at
+809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887, email
+business@pglaf.org. Email contact links and up to date contact
+information can be found at the Foundation's web site and official
+page at http://pglaf.org
+
+For additional contact information:
+ Dr. Gregory B. Newby
+ Chief Executive and Director
+ gbnewby@pglaf.org
+
+
+Section 4. Information about Donations to the Project Gutenberg
+Literary Archive Foundation
+
+Project Gutenberg-tm depends upon and cannot survive without wide
+spread public support and donations to carry out its mission of
+increasing the number of public domain and licensed works that can be
+freely distributed in machine readable form accessible by the widest
+array of equipment including outdated equipment. Many small donations
+($1 to $5,000) are particularly important to maintaining tax exempt
+status with the IRS.
+
+The Foundation is committed to complying with the laws regulating
+charities and charitable donations in all 50 states of the United
+States. Compliance requirements are not uniform and it takes a
+considerable effort, much paperwork and many fees to meet and keep up
+with these requirements. We do not solicit donations in locations
+where we have not received written confirmation of compliance. To
+SEND DONATIONS or determine the status of compliance for any
+particular state visit http://pglaf.org
+
+While we cannot and do not solicit contributions from states where we
+have not met the solicitation requirements, we know of no prohibition
+against accepting unsolicited donations from donors in such states who
+approach us with offers to donate.
+
+International donations are gratefully accepted, but we cannot make
+any statements concerning tax treatment of donations received from
+outside the United States. U.S. laws alone swamp our small staff.
+
+Please check the Project Gutenberg Web pages for current donation
+methods and addresses. Donations are accepted in a number of other
+ways including including checks, online payments and credit card
+donations. To donate, please visit: http://pglaf.org/donate
+
+
+Section 5. General Information About Project Gutenberg-tm electronic
+works.
+
+Professor Michael S. Hart is the originator of the Project Gutenberg-tm
+concept of a library of electronic works that could be freely shared
+with anyone. For thirty years, he produced and distributed Project
+Gutenberg-tm eBooks with only a loose network of volunteer support.
+
+
+Project Gutenberg-tm eBooks are often created from several printed
+editions, all of which are confirmed as Public Domain in the U.S.
+unless a copyright notice is included. Thus, we do not necessarily
+keep eBooks in compliance with any particular paper edition.
+
+
+Most people start at our Web site which has the main PG search facility:
+
+ http://www.gutenberg.net
+
+This Web site includes information about Project Gutenberg-tm,
+including how to make donations to the Project Gutenberg Literary
+Archive Foundation, how to help produce our new eBooks, and how to
+subscribe to our email newsletter to hear about new eBooks.
diff --git a/ult/ult_4/marks.txt b/ult/ult_4/marks.txt new file mode 100644 index 0000000..f97b743 --- /dev/null +++ b/ult/ult_4/marks.txt @@ -0,0 +1,5 @@ +89 92 85 +98 47 67 +67 82 76 +78 97 60 +67 68 69 diff --git a/ult/ult_4/marks1.txt b/ult/ult_4/marks1.txt new file mode 100644 index 0000000..9a5299d --- /dev/null +++ b/ult/ult_4/marks1.txt @@ -0,0 +1,5 @@ +5 89 92 85 +4 98 47 67 +1 67 82 76 +2 78 97 60 +3 67 68 69 diff --git a/ult/ult_4/script.rst b/ult/ult_4/script.rst new file mode 100644 index 0000000..cd3168a --- /dev/null +++ b/ult/ult_4/script.rst @@ -0,0 +1,384 @@ +.. Objectives +.. ---------- + + .. At the end of this tutorial, you will be able to: + + .. 1. Understand what is Redirection and Piping. + .. 2. Learn various features of shell. + +.. Prerequisites +.. ------------- + +.. 1. Using Linux tools - Part 1 +.. 2. Using Linux tools - Part 2 +.. 3. Using Linux tools - Part 3 + +Script +------ + +.. L1 + +{{{ Show the first slide containing title, name of the production +team along with the logo of MHRD }}} + +.. R1 + +Hello friends and Welcome to the tutorial on +'Using linux tools - Part 4'. + +.. L2 + +{{{ Show slide with objectives }}} + +.. R2 + +At the end of this tutorial, you will be able to, + + 1. Understand what is Redirection and Piping. + #. Learn various features of the shell. + +.. L3 + +{{{ Switch to the pre-requisite slide }}} + +.. R3 + +Before beginning this tutorial,we would suggest you to complete the +tutorial on "Using Linux tools from Part 1 to Part 3". + +.. R4 + +Let us begin with the concept of 'Redirection and Piping' which can do the +same operations as the ``cut`` and ``paste`` commands. + +Consider the files ``marks.txt`` and ``students.txt``, which has the +following contents + +.. L4 + +{{{ Open the terminal }}} +:: + + cat marks1.txt + cat students.txt + +.. R5 + +Let us view the contents of both the files side-by-side + +.. L5 +:: + + cut -d " " -f 2- marks1.txt | paste -d " " students.txt - + +.. R6 + +Now, in order to view the same ouput in a file at a new location, we say, + +.. L6 +:: + + cut -d " " -f 2- marks1.txt > /tmp/m_tmp.txt + paste -d " " students.txt m_tmp.txt + +.. R7 + +Let's first try to understand the second solution, which is a two step +solution. Later, we shall look at the first solution. + +.. L7 + +.. L8 + +{{{ Show slide, with Redirection }}} + +.. R8 + +The standard output, in general, goes to the display. +Hence, the output of the commands that we type, come out to the display. +This may not always be what we require. + +For instance, in the solution above, we use the cut command and get only +the required columns of the file and write the output to a new temporary +file. The ``>`` character is used to state that we wish to redirect the +output, and it is followed by the location to which we wish to redirect. +For example, + + command > file1 + +.. L9 + +{{{ Show slide, with Redirection... }}} + +.. R9 + +Similarly, the standard input (stdin) can be redirected as, + + command < file1 + +The input and the output redirection could be combined in a single command, as, + + command < infile > outfile + +There is actually a third kind of standard stream, called the Standard +error (stderr). Any error messages that you get, are coming through this +stream. Like ``stdout``, ``stderr`` also streams to the display by default, +but it could be redirected to a file, as well. + +.. R10 + +For instance, let's introduce an error into the ``cut`` command used +before. We change the ``-f`` option to ``-c`` + +.. L10 + +{{{ Switch to terminal }}} +:: + + cut -d " " -c 2- marks1.txt > /tmp/m_tmp.txt + +.. R11 + +This prints an error that says the delimiter option should be used with the +fields option only, and you can verify that the ``m_tmp.txt`` file is +empty. We can now, redirect the ``stderr`` also to a file, instead of +showing it on the display. + +.. L11 +:: + + cut -d " " -f 2- marks1.txt 1> /tmp/m_tmp.txt 2> /tmp/m_err.txt + +.. R12 + +The above command redirects all the errors to the ``m_err.txt`` file +and the output to ``m_tmp.txt`` file. When redirecting, 1 stands +for ``stdout`` and 2 stands for ``stderr``. + +Let us complete the solution by using the ``paste`` command + +.. L12 +:: + + paste -d " " students.txt m_tmp.txt + +.. R13 + +So, in two steps we solved the problem of getting rid of the roll numbers +from the marks file and displaying the marks along with the names of the +students. Now, that we know how to redirect output, we could choose to +write the output to a file, instead of showing on the display. + +Let us now look at the first solution. + +.. L13 +:: + + cut -d " " -f 2- marks1.txt | paste -d " " students.txt - + +.. L14 + +{{{ Show slide, with Piping }}} + +.. R14 + +First of all, the hyphen at the end is to ask the paste command to read the +standard input, instead of looking for a FILE. The ``man`` page of ``paste`` +command gives us this information. + +The character ``|`` is called a pipe. +Now, what is happening with the ``cut`` command. If we look at the command only +up to the ``|`` character, it is a normal ``cut`` command . So, the ``|`` seems +to be joining the commands in some way. +Essentially, what we are doing is, to redirect the output of the first +command to ``stdin`` and the second command takes input from the ``stdin``. + +More generally, + + command1 | command2 + +executes ``command1`` and sends it's output to the ``stdin``, which is then +used as the input for ``command2``. This activity is commonly called piping. + +.. L15 + +{{{ Show slide, with Piping... }}} + +.. R15 + +This is roughly equivalent to using two redirects and a temporary file + + command1 > tempfile + command2 < tempfile + rm tempfile + +Also, given that a pipe is just a way to send the output of the command to +the ``stdin``, it should be obvious, to you that we can use a chain of +pipes. Any number of commands can be piped together and you need not be +restricted to two commands. + +The Bash shell has some nice features, that make our job of using the shell +easier and much more pleasant. We shall look at a few of them, here. + +Bash provides the feature of tab completion. What does tab completion mean? +When you are trying to type a word and you have entered enough portion of the +word, bash can complete the word for you, by hitting the tab key. + +If on hitting the tab key, the word doesn't get completed, either the word +doesn't exist or the word cannot be decided unambiguously. If the case is +the latter one, hitting the tab key a second time, will list the +possibilities. + +.. L16 + +{{{ Show slide, with Tab-completion }}} + +.. R16 + +Bash provides tab completion for the following. + + 1. File Names + 2. Directory Names + 3. Executable Names + 4. User Names (when they are prefixed with a ~) + 5. Host Names (when they are prefixed with a @) + 6. Variable Names (when they are prefixed with a $) + +.. R17 + +For example, + +.. L17 + +{{{ Switch to terminal }}} +:: + + pas<TAB><TAB> + ~/<TAB><TAB> + +.. R18 + +Bash also saves the history of the commands you have typed. So, you can go +back to a previously typed command and use the up and down arrow keys to +navigate in your bash history. + +.. L18 +:: + + <UP-ARROW> + +.. R19 + +You can also search incrementally, for commands in your bash history. +``Ctrl-r`` searches for the commands that you have typed before. But, note +that the number of commands saved in the history is limited, generally upto +a 1000 commands. + +.. L19 +:: + + <Ctrl-r> pas + +.. R20 + +Unix recognizes certain special characters, called "meta characters," as +command directives. The shell meta characters are recognized anywhere they +appear in the command line, even if they are not surrounded by blank space. +For that reason, it is safest to only use the characters A-Z, a-z, 0-9, and +the period, dash, and underscore characters when naming files and +directories on Unix. If your file or directory has a shell meta character +in the name, you will find it difficult to use the name in a shell command. + +.. L20 + +.. L21 + +{{{ Show slide, with Shell Meta Characters }}} + +.. R21 + +The characters that you can see on the slide are the shell meta characters + +.. R22 + +Lets take an example, + +.. L22 + +{{{ Switch to terminal }}} +:: + + ls file.? + +.. R23 + +It means, run on a directory containing the files file, file.c, file.lst, +and myfile would list the files file.c and file.lst. However, + +.. L23 +:: + + ls file.? + +.. R24 + +Run on the same directory would only list file.c because the ? only matches +one character, no more, no less. This can save you a great deal of typing +time. + +For example, if there is a file called +california_cornish_hens_with_wild_rice and no other files whose names begin +with 'c', you could view the file without typing the whole name by typing +this + +.. L24 +:: + + more c* + +.. R25 + +Here, the c* matches that long file name. +File-names containing meta characters can pose many problems and should +never be intentionally created. + +.. L25 + +.. L26 + +{{{ Switch to Summary slide }}} + +.. R26 + +This brings us to the end of the end of this tutorial. +In this tutorial, we have learnt to, + + 1. Use the ``cut`` and ``paste`` commands in redirection. + #. Use the pipe ( | ) character. + #. Implement features of shell like tab-completion and history. + +.. L27 + +{{{ Show self assessment questions slide }}} + +.. R27 + +Here are some self assessment questions for you to solve + +.. L28 + +{{{ Solution of self assessment questions on slide }}} + +.. R28 + +And the answers, + +.. L29 + +{{{ Show the Thank you slide }}} + +.. R29 + +Hope you have enjoyed this tutorial and found it useful. +Thank you! + diff --git a/ult/ult_4/students.txt b/ult/ult_4/students.txt new file mode 100644 index 0000000..ddacd6b --- /dev/null +++ b/ult/ult_4/students.txt @@ -0,0 +1,5 @@ +Hussain +Dilbert +Anne +Raul +Sven diff --git a/ult/ult_4/ult4.tex b/ult/ult_4/ult4.tex new file mode 100644 index 0000000..3cb3b3a --- /dev/null +++ b/ult/ult_4/ult4.tex @@ -0,0 +1,234 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Using Linux Tools +% +% Author: FOSSEE +% Copyright (c) 2009, FOSSEE, IIT Bombay +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[12pt,compress]{beamer} + +\mode<presentation> +{ + \usetheme{Warsaw} + \useoutertheme{infolines} + \setbeamercovered{transparent} +} + +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +%\usepackage{times} +\usepackage[T1]{fontenc} + +% Taken from Fernando's slides. +\usepackage{ae,aecompl} +\usepackage{mathpazo,courier,euler} +\usepackage[scaled=.95]{helvet} + +\definecolor{darkgreen}{rgb}{0,0.5,0} + +\usepackage{listings} +\lstset{language=sh, + basicstyle=\ttfamily\bfseries, + commentstyle=\color{red}\itshape, + stringstyle=\color{darkgreen}, + showstringspaces=false, + keywordstyle=\color{blue}\bfseries} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DOCUMENT STARTS +\begin{document} + +\begin{frame} + +\begin{center} +\vspace{12pt} +\textcolor{blue}{\huge Using Linux Tools\\Part IV} +\end{center} +\vspace{18pt} +\begin{center} +\vspace{10pt} +\includegraphics[scale=0.95]{../images/fossee-logo.png}\\ +\vspace{5pt} +\scriptsize Developed by FOSSEE Team, IIT-Bombay. \\ +\scriptsize Funded by National Mission on Education through ICT\\ +\scriptsize MHRD,Govt. of India\\ +\includegraphics[scale=0.30]{../images/iitb-logo.png}\\ +\end{center} +\end{frame} +\begin{frame} +\frametitle{Objectives} +\label{sec-2} + +At the end of this tutorial, you will be able to, +\begin{itemize} +\item Understand what is Redirection and Piping. +\item Learn various features of the shell. +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Pre-requisite} +\label{sec-3} + +Spoken tutorial on - +\begin{itemize} +\item Using Linux tools -- Part I +\item Using Linux tools -- Part II +\item Using Linux tools -- Part III +\end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Redirection} + + \begin{itemize} + \item The standard output (stdout) stream goes to the display + \item Not always, what we need + \item First solution, redirects output to a file + \item \texttt{>} states that output is redirected; It is + followed by location to redirect + \end{itemize} + \begin{lstlisting} + $ command > file1 + \end{lstlisting} % $ + \begin{itemize} + \item \texttt{>} creates a new file at specified location + \item \texttt{>>} appends to a file at specified location + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Redirection \ldots} + \begin{itemize} + \item Similarly, the standard input (stdin) can be redirected + \end{itemize} + \begin{lstlisting} + $ command < file1 + \end{lstlisting} % $ + \begin{itemize} + \item input and the output redirection could be combined + \end{itemize} + \begin{lstlisting} + $ command < infile > outfile + \end{lstlisting} % $ + \begin{itemize} + \item Standard error (stderr) is the third standard stream + \item All error messages come through this stream + \item \texttt{stderr} can also be redirected + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Piping} + \begin{lstlisting} + $ cut -d " " -f 2- marks1.txt \ + | paste -d " " students.txt - + \end{lstlisting} % $ + \begin{itemize} + \item \texttt{-} instead of FILE asks \texttt{paste} to read from + \texttt{stdin} + \item \texttt{cut} command is a normal command + \item the \texttt{|} seems to be joining the two commands + \item Redirects output of first command to \texttt{stdin}, which + becomes input to the second command + \item This is called piping; \texttt{|} is called a pipe + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Piping \ldots} + \begin{itemize} + \item Roughly same as -- 2 redirects and a temporary file + \end{itemize} + \begin{lstlisting} + $ command1 > tempfile + $ command2 < tempfile + $ rm tempfile + \end{lstlisting} % $ + \begin{itemize} + \item Any number of commands can be piped together + \end{itemize} +\end{frame} + +\subsection{Features of the Shell} + +\begin{frame}[fragile] + \frametitle{Tab-completion} + \begin{itemize} + \item Bash provides tab completion for the following. + \begin{enumerate} + \item File Names + \item Directory Names + \item Executable Names + \item User Names (when they are prefixed with a \~{}) + \item Host Names (when they are prefixed with a @) + \item Variable Names (when they are prefixed with a \$) + \end{enumerate} + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Shell Meta Characters} + \begin{itemize} + \item ``meta characters'' are special command directives + \item File-names shouldn't have meta-characters + \item The following are the shell meta characters -- + \begin{itemize} + \item \verb+/<>!$%^&*|{}[]"'`~;+ + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Summary} +\label{sec-8} + + In this tutorial, we have learnt to, + + +\begin{itemize} +\item Use the ``cut'' and ``paste'' commands in redirection. +\item Use the pipe ( | ) character. +\item Implement features of shell like tab-completion and history. +\end{itemize} +\end{frame} +\begin{frame}[fragile] +\frametitle{Evaluation} +\label{sec-9} + + +\begin{enumerate} +\item +\item +\item +\end{enumerate} +\end{frame} +\begin{frame} +\frametitle{Solutions} +\label{sec-10} + + +\begin{enumerate} +\item +\vspace{15pt} +\item +\end{enumerate} +\end{frame} +\begin{frame} + + \begin{block}{} + \begin{center} + \textcolor{blue}{\Large THANK YOU!} + \end{center} + \end{block} +\begin{block}{} + \begin{center} + For more Information, visit our website\\ + \url{http://fossee.in/} + \end{center} + \end{block} +\end{frame} + +\end{document} + + diff --git a/ult/ult_5/foo.txt b/ult/ult_5/foo.txt new file mode 100644 index 0000000..1fe9426 --- /dev/null +++ b/ult/ult_5/foo.txt @@ -0,0 +1,9 @@ +FOO is an abbreviation of Forward Observation Officer, a British Army +term in use as early as the First World War. The etymology of foo is +explored in the Internet Engineering Task Force (IETF) Request for +Comments 3092, which notes usage of foo in 1930s cartoons including +The Daffy Doc (with Daffy Duck) and comic strips, especially Smokey +Stover and Pogo. From there the term migrated into military slang, +where it merged with FUBAR. + +source: wikipedia diff --git a/ult/ult_5/marks1.txt b/ult/ult_5/marks1.txt new file mode 100644 index 0000000..9a5299d --- /dev/null +++ b/ult/ult_5/marks1.txt @@ -0,0 +1,5 @@ +5 89 92 85 +4 98 47 67 +1 67 82 76 +2 78 97 60 +3 67 68 69 diff --git a/ult/ult_5/script.rst b/ult/ult_5/script.rst new file mode 100644 index 0000000..293154c --- /dev/null +++ b/ult/ult_5/script.rst @@ -0,0 +1,311 @@ +.. Objectives +.. ---------- + + .. At the end of this tutorial, you will be able to: + + .. 1. + .. 2. + +.. Prerequisites +.. ------------- + +.. 1. Using Linux tools - Part 1 +.. 2. Using Linux tools - Part 2 +.. 3. Using Linux tools - Part 3 +.. 4. Using Linux tools - Part 4 + + +Script +------ + +.. L1 + +{{{ Show the first slide containing title, name of the production +team along with the logo of MHRD }}} + +.. R1 + +Hello friends and Welcome to the tutorial on +'Using linux tools - Part 5'. + +.. L2 + +{{{ Show slide with objectives }}} + +.. R2 + +At the end of this tutorial, you will be able to, + + 1. Learn text editing tools of linux. + +.. L3 + +{{{ Switch to the pre-requisite slide }}} + +.. R3 + +Before beginning this tutorial,we would suggest you to complete the +tutorial on "Using Linux tools from Part 1 to Part 4". + +.. R4 + +In this tutorial, we shall learn about text processing. +Consider data kept in two files, namely marks1.txt and students.txt +Let us see what data they contain, + +.. L4 + +{{{ Open the terminal }}} +:: + + cat marks1.txt + cat students.txt + +.. R5 + +Let's say we wish to sort the output in the alphabetical order +of the names of the files. We can use the ``sort`` command for this +purpose. + +We just pipe the previous output to the ``sort`` command as, + +.. L5 +:: + + cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| sort + +.. R6 + +Let's say we wish to sort the names, based on the marks in the first +subject i.e. the first column after the name. ``sort`` command also allows us to +specify the delimiter between the fields and sort the data on a particular +field. ``-t`` option is used to specify the delimiter and ``-k`` option +is used to specify the field. + +.. L6 +:: + + cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| sort -t " " -k 2 + +.. L7 + +{{{ Show slide with, Sort... }}} + +.. R7 + +This command give us a sorted output as required. But, it would be +nicer to have the output sorted in the reverse order. + +.. R8 + + ``-r`` option allows the output to be sorted in the reverse order and +the ``-n`` option is used to choose a numerical sorting. + +.. L8 + +{{ Switch to the terminal }}} +:: + + cut -d " " -f 2- marks1.txt | paste -d " " students.txt -| sort -t " " -k 2 -rn + +.. R9 + +Suppose, While you are compiling the student marklist, Anne walks up to you and +wants to know her marks. You, being a kind person that you are, oblige. +But you do not wish to her to see the marks that others have scored. What +do you do? The ``grep`` command comes to your rescue. + +``grep`` is a command line text search utility. You can use it to search +for Anne and show her, what she scored. ``grep`` allows you to search for a +search string in files. But you could, like any other command, pipe the +output of other commands to it. So, we shall use the previous combination +of cut and paste that we had, to get the marks of students along with their +names and search for Anne in that. + +.. L9 +:: + + cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep Anne + +.. R10 + +This will give you only the line containing the word Anne as the output. +The grep command is by default case-sensitive. So, you wouldn't have got +the result if you had searched for anne, with a small a, instead of +Anne, with a capital a. But, what if you didn't know, whether the name was +capitalized or not? ``grep`` allows you to do case-insensitive searches +by using the ``-i`` option. + +.. L10 +:: + + cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep -i Anne + +.. R11 + +Now, in another scenario, if you wished to print all the lines, which do +not contain the word Anne, you could use the ``-v`` option. + +.. L11 +:: + + cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | grep -iv Anne + +.. R12 + +grep allows you to do more complex searches, for instance, searching for +sentences starting or ending with a particular pattern and regular +expression based searches. + +{{{ Show slide with, tr }}} + +``tr`` is a command that takes two sets of characters as parameters, and +replaces occurrences of the characters in the first set with the +corresponding elements from the other set. It reads from the standard +output and writes to the standard output. + +For instance, if you wish to replace all the lower case letters in the +students file with upper case, you can do it as, + +.. L12 + +{{{ Switch to the terminal }}} +:: + + cat students.txt | tr a-z A-Z + +.. R13 + +A common task is to remove empty newlines from a file. The ``-s`` flag +causes ``tr`` to compress sequences of identical adjacent characters in its +output to a single token. For example, + +.. L13 +:: + + tr -s '\n' '\n' + +.. R14 + +Hit enter 2-3 times and see that every time we hit enter we get a newline. + +.. L14 +:: + + <Enter> + <Enter> + +.. R15 + +It replaces sequences of one or more newline characters with a single newline. + +The ``-d`` flag causes ``tr`` to delete all tokens of the specified set of +characters from its input. In this case, only a single character set +argument is used. The following command removes carriage return characters, +thereby converting a file in DOS/Windows format to the Unix format. + +.. L15 +:: + + cat foo.txt | tr -d '\r' > bar.txt + +.. R16 + +The ``-c`` flag complements the first set of characters. + +.. L16 +:: + + tr -cd '[:alnum:]' + +.. R17 + +therefore removes all non-alphanumeric characters. + +Suppose we have a list of items, say books, and we wish to obtain a list +which names of all the books only once, without any duplicates. We use +the ``uniq`` command to achieve this. Let us first have a look at our file + +.. L17 +:: + + cat items.txt + +.. R18 + +Now, let us try and get rid of the duplicate lines from this file using +the ``uniq`` command. + +.. L18 +:: + + uniq items.txt + +.. R19 + +Nothing happens! Why? The ``uniq`` command removes duplicate lines only when they +are next to each other. So, henceforth, we get a sorted file from the original file and work +with that file. + +.. L19 +:: + + sort items.txt | uniq + +.. R20 + +``uniq -u`` command gives the lines which are unique and do not have any +duplicates in the file. ``uniq -d`` outputs only those lines which have duplicates. + +.. L20 +:: + + uniq -u items-sorted.txt + +.. R21 + +The ``-c`` option displays the number of times each line occurs in the file. + +.. L21 +:: + + uniq -dc items-sorted.txt + +.. L22 + +{{{ Show summary slide }}} + +.. R22 + +This brings us to the end of the end of this tutorial. +In this tutorial, we have learnt to, + + 1. Use the ``sort`` command to sort lines of text files. + #. Use the ``grep`` command to search text pattern. + #. Use the ``tr`` command to translate and/or delete characters. + #. Use the ``uniq`` command to omit repeated lines in a text. + +.. L23 + +{{{ Show self assessment questions slide }}} + +.. R23 + +Here are some self assessment questions for you to solve + +.. L24 + +{{{ Solution of self assessment questions on slide }}} + +.. R24 + +And the answers, + +.. L25 + +{{{ Show the Thank you slide }}} + +.. R25 + +Hope you have enjoyed this tutorial and found it useful. +Thank you! diff --git a/ult/ult_5/students.txt b/ult/ult_5/students.txt new file mode 100644 index 0000000..ddacd6b --- /dev/null +++ b/ult/ult_5/students.txt @@ -0,0 +1,5 @@ +Hussain +Dilbert +Anne +Raul +Sven diff --git a/ult/ult_5/ult5.tex b/ult/ult_5/ult5.tex new file mode 100644 index 0000000..904fe18 --- /dev/null +++ b/ult/ult_5/ult5.tex @@ -0,0 +1,164 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Using Linux Tools +% +% Author: FOSSEE +% Copyright (c) 2009, FOSSEE, IIT Bombay +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[12pt,compress]{beamer} + +\mode<presentation> +{ + \usetheme{Warsaw} + \useoutertheme{infolines} + \setbeamercovered{transparent} +} + +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +%\usepackage{times} +\usepackage[T1]{fontenc} + +% Taken from Fernando's slides. +\usepackage{ae,aecompl} +\usepackage{mathpazo,courier,euler} +\usepackage[scaled=.95]{helvet} + +\definecolor{darkgreen}{rgb}{0,0.5,0} + +\usepackage{listings} +\lstset{language=sh, + basicstyle=\ttfamily\bfseries, + commentstyle=\color{red}\itshape, + stringstyle=\color{darkgreen}, + showstringspaces=false, + keywordstyle=\color{blue}\bfseries} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DOCUMENT STARTS +\begin{document} + +\begin{frame} + +\begin{center} +\vspace{12pt} +\textcolor{blue}{\huge Using Linux Tools} +\end{center} +\vspace{18pt} +\begin{center} +\vspace{10pt} +\includegraphics[scale=0.95]{../images/fossee-logo.png}\\ +\vspace{5pt} +\scriptsize Developed by FOSSEE Team, IIT-Bombay. \\ +\scriptsize Funded by National Mission on Education through ICT\\ +\scriptsize MHRD,Govt. of India\\ +\includegraphics[scale=0.30]{../images/iitb-logo.png}\\ +\end{center} +\end{frame} +\begin{frame} +\frametitle{Objectives} +\label{sec-2} + +At the end of this tutorial, you will be able to, +\begin{itemize} +\item Learn text editing tools of linux. +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Pre-requisite} +\label{sec-3} + +Spoken tutorial on - +\begin{itemize} +\item Using Linux tools -- Part I +\item Using Linux tools -- Part II +\item Using Linux tools -- Part III +\item Using Linux tools -- Part IV +\end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{\texttt{sort} \ldots} + \begin{itemize} + \item The command below sorts based on marks in first subject + \end{itemize} + \begin{lstlisting} + $ cut -d " " -f 2- marks1.txt \ + | paste -d " " students.txt -\ + | sort -t " " -k 2 -rn + \end{lstlisting} % $ + \begin{itemize} + \item \texttt{-t} specifies the delimiter between fields + \item \texttt{-k} specifies the field to use for sorting + \item \texttt{-n} to choose numerical sorting + \item \texttt{-r} for sorting in the reverse order + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{\texttt{tr}} + \begin{itemize} + \item \texttt{tr} translates or deletes characters + \item Reads from \texttt{stdin} and outputs to \texttt{stdout} + \item Given, two sets of characters, replaces one with other + \item The following, replaces all lower-case with upper-case + \end{itemize} + \begin{lstlisting} + $ cat students.txt | tr a-z A-Z + \end{lstlisting} % $ +\end{frame} + +\begin{frame} +\frametitle{Summary} +\label{sec-8} + + In this tutorial, we have learnt to, + + +\begin{itemize} +\item Use the ``sort'' command to sort lines of text files. +\item Use the ``grep'' command to search text pattern. +\item Use the ``tr'' command to translate and/or delete characters. +\item Use the ``uniq'' command to omit repeated lines in a text. +\end{itemize} +\end{frame} +\begin{frame}[fragile] +\frametitle{Evaluation} +\label{sec-9} + + +\begin{enumerate} +\item +\item +\item +\end{enumerate} +\end{frame} +\begin{frame} +\frametitle{Solutions} +\label{sec-10} + + +\begin{enumerate} +\item +\vspace{15pt} +\item +\end{enumerate} +\end{frame} +\begin{frame} + + \begin{block}{} + \begin{center} + \textcolor{blue}{\Large THANK YOU!} + \end{center} + \end{block} +\begin{block}{} + \begin{center} + For more Information, visit our website\\ + \url{http://fossee.in/} + \end{center} + \end{block} +\end{frame} + +\end{document} + diff --git a/ult/ult_6/script.rst b/ult/ult_6/script.rst new file mode 100644 index 0000000..33f144e --- /dev/null +++ b/ult/ult_6/script.rst @@ -0,0 +1,278 @@ +.. Objectives +.. ---------- + + .. At the end of this tutorial, you will be able to: + + .. 1. Prepare a simple shell script. + .. 2. Run a script successfully and print it's result. + .. 3. Understand what an environment variable is. + +.. Prerequisites +.. ------------- + +.. 1. Using Linux tools - Part 1 +.. 2. Using Linux tools - Part 2 +.. 3. Using Linux tools - Part 3 +.. 4. Using Linux tools - Part 4 +.. 5. Using Linux tools - Part 5 + + +Script +------ + +.. L1 + +{{{ Show the first slide containing title, name of the production +team along with the logo of MHRD }}} + +.. R1 + +Hello friends and Welcome to the tutorial on +'Using linux tools - Part 6'. + +.. L2 + +{{{ Show slide with objectives }}} + +.. R2 + +At the end of this tutorial, you will be able to, + + 1. Prepare a simple shell script. + #. Run a script successfully and print it's result. + #. Understand what an environment variable is. + +.. L3 + +{{{ Switch to the pre-requisite slide }}} + +.. R3 + +Before beginning this tutorial,we would suggest you to complete the +tutorial on "Using Linux tools from Part 1 to Part 5". + +Let us start with creating a simple shell script. +A shell script is simply a sequence of commands, that are put into a file, +instead of entering them one by one onto the shell. The script can then be +run, to run the sequence of commands in a single shot instead of manually +running, each of the individual commands. +For instance, let's say we wish to create a directory called ``marks`` in the +home folder and save the results of the students into a file +``results.txt``. + +.. R4 + +We open our editor and save the following text to ``results.sh`` + +.. L4 + +{{{ Open an editor and type the following }}} +:: + + #!/bin/bash + mkdir ~/marks + cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | sort > ~/marks/results.txt + +.. R5 + +We can now run the script as, + +.. L5 + +{{{ Open the terminal }}} +:: + + ./results.sh + +.. R6 + +We get an error saying, Permission denied! Why? Can you think of the +reason? Yes, the file doesn't have execute permissions. +We make the file executable and then run it. + +.. L6 +:: + + chmod u+x results.sh + ./results.sh + +.. R7 + +We get back the prompt. We can check the contents of the file +``results.txt`` to see if the script has run. + +So, here, we have our first shell script. The first line of the script is used +to specify the interpreter or shell which should be used to execute the script. +In this case, we are asking it to use the bash shell. +Once, the script has run, we get back the prompt. Here, we had to manually check, +if the contents of the file are correct. It would be useful to have our script +print out messages. For this, we can use the ``echo`` command. We can edit our +``results.sh`` script, as follows. + +.. L7 + +{{{ Open an editor and type the following }}} +:: + + #!/bin/bash + mkdir ~/marks + cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | sort > ~/marks/results.txt + echo "Results generated." + +.. R8 + +Now, on running the script, we get a message on the screen informing us, +when the script has run. + +Let's now say, that we wish to let the user decide the file to which the +results should be written to. The results file, should be specifiable by an +argument in the command line. We can do so, by editing the file, as below. + +.. L8 + +{{{ Make the necessary changes in the previous script }}} + +:: + + #!/bin/bash + mkdir ~/marks + cut -d " " -f 2- marks1.txt | paste -d " " students.txt - | sort > ~/marks/$1 + echo "Results generated." + + +{{{ Highlight the text ``$1`` }}} + +.. R9 + +The ``$1`` above, corresponds to the first command line argument to the +script. So, we can run the script as shown below, to save the results to +``grades.txt``. + +.. L9 +:: + + ./results.sh grades.txt + +.. R10 + +When we run the ``results.sh`` file, we are specifying the location of the +script by using ``./``. But for any of the other commands, +we didn't have to specify their locations. Why? The +shell has a set of locations where it searches, for the command that we are +trying to run. + +.. L10 + +.. L11 + +{{{ Show slide, PATH }}} + +.. R11 + +These set of locations are saved in an "environment" +variable called PATH.let us look at what the value of the PATH variable is. To view the +values of variables, we can use the echo command. + +.. L12 + +{{{ Switch to the terminal }}} +:: + + echo $PATH + +.. R12 + +So, these are all the paths that are searched, when looking to execute a +command. If we put the results.sh script in one of these locations, we +could simply run it, without using the ``./`` at the beginning. + +.. L13 + +{{{ Show slide, variables & comments }}} + +.. R13 + +As expected, it is possible to define our own variables inside our shell +scripts. For example, + +.. L14 + +{{{ Switch to the terminal }}} +:: + + name="FOSSEE" + +.. R14 + +It creates a new variable ``name`` whose value is ``FOSSEE``. To refer to this +variable, inside our shell script, we would refer to it, as ``$name``. +Note that, there is no space around the ``=`` sign. + +.. L15 +:: + + ls $name* + +.. R15 + +.. R16 + +It is possible to store the output of a command in a variable, by enclosing +the command in back-quotes. + +.. L16 +:: + + count=`wc -l wonderland.txt` + +.. R17 + +It saves the number of lines in the file ``wonderland.txt`` in the variable +count. + +The ``#`` character is used to comment out content from a shell script. +Anything that appears after the ``#`` character in a line, is ignored by +the bash shell. + +.. L18 + +.. L19 + +{{{ Switch to 'Summary' slide }}} + +.. R19 + +This brings us to the end of the end of this tutorial. +In this tutorial, we have learnt to, + + 1. Prepare a shell script. + #. Display the result of a script, using the ``echo`` command. + #. Use the environment variable ``PATH``. + #. Create variables and comment out content using the ``#`` sign. + +.. L20 + +{{{ Show self assessment questions slide }}} + +.. R20 + +Here are some self assessment questions for you to solve + +.. L21 + +{{{ Solution of self assessment questions on slide }}} + +.. R21 + +And the answers, + +.. L22 + +{{{ Show the Thank you slide }}} + +.. R22 + +Hope you have enjoyed this tutorial and found it useful. +Thank you! + + diff --git a/ult/ult_6/ult6.tex b/ult/ult_6/ult6.tex new file mode 100644 index 0000000..016c2d1 --- /dev/null +++ b/ult/ult_6/ult6.tex @@ -0,0 +1,169 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Using Linux Tools +% +% Author: FOSSEE +% Copyright (c) 2009, FOSSEE, IIT Bombay +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[12pt,compress]{beamer} + +\mode<presentation> +{ + \usetheme{Warsaw} + \useoutertheme{infolines} + \setbeamercovered{transparent} +} + +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +%\usepackage{times} +\usepackage[T1]{fontenc} + +% Taken from Fernando's slides. +\usepackage{ae,aecompl} +\usepackage{mathpazo,courier,euler} +\usepackage[scaled=.95]{helvet} + +\definecolor{darkgreen}{rgb}{0,0.5,0} + +\usepackage{listings} +\lstset{language=sh, + basicstyle=\ttfamily\bfseries, + commentstyle=\color{red}\itshape, + stringstyle=\color{darkgreen}, + showstringspaces=false, + keywordstyle=\color{blue}\bfseries} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DOCUMENT STARTS +\begin{document} + +\begin{frame} + +\begin{center} +\vspace{12pt} +\textcolor{blue}{\huge Using Linux Tools} +\end{center} +\vspace{18pt} +\begin{center} +\vspace{10pt} +\includegraphics[scale=0.95]{../images/fossee-logo.png}\\ +\vspace{5pt} +\scriptsize Developed by FOSSEE Team, IIT-Bombay. \\ +\scriptsize Funded by National Mission on Education through ICT\\ +\scriptsize MHRD,Govt. of India\\ +\includegraphics[scale=0.30]{../images/iitb-logo.png}\\ +\end{center} +\end{frame} +\begin{frame} +\frametitle{Objectives} +\label{sec-2} + +At the end of this tutorial, you will be able to, +\begin{itemize} +\item Prepare a simple shell script. +\item Run a script successfully and print it's result. +\item Understand what an environment variable is. +\end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Pre-requisite} +\label{sec-3} + +Spoken tutorial on - +\begin{itemize} +\item Using Linux tools -- Part I +\item Using Linux tools -- Part II +\item Using Linux tools -- Part III +\item Using Linux tools -- Part IV +\item Using Linux tools -- Part V +\end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{\texttt{PATH}} + \begin{itemize} + \item The shell searches in a set of locations, for the command + \item Locations are saved in ``environment'' variable called PATH + \item \texttt{echo} can show the value of variables + \end{itemize} + \begin{lstlisting} + $ echo $PATH + \end{lstlisting} % $ + \begin{itemize} + \item Put \texttt{results.sh} in one of these locations + \item It can then be run without \texttt{./} + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Variables \& Comments} + \begin{lstlisting} + $ name=FOSSEE + $ count=`wc -l wonderland.txt` + $ echo $count # Shows the value of count + \end{lstlisting} % $ + \begin{itemize} + \item It is possible to create variables in shell scripts + \item Variables can be assigned with the output of commands + \item \alert{NOTE:} There is no space around the \texttt{=} sign + \item All text following the \texttt{\#} is considered a comment + \end{itemize} +\end{frame} + +\begin{frame} +\frametitle{Summary} +\label{sec-8} + + In this tutorial, we have learnt to, + + +\begin{itemize} +\item Prepare a shell script. +\item Display the result of a script, using the ``echo'' command. +\item Use the environment variable ``PATH''. +\item Create variables and comment out content using the ``\#'' sign. +\end{itemize} +\end{frame} + +\begin{frame}[fragile] +\frametitle{Evaluation} +\label{sec-9} + + +\begin{enumerate} +\item +\item +\item +\end{enumerate} +\end{frame} +\begin{frame} +\frametitle{Solutions} +\label{sec-10} + + +\begin{enumerate} +\item +\vspace{15pt} +\item +\end{enumerate} +\end{frame} +\begin{frame} + + \begin{block}{} + \begin{center} + \textcolor{blue}{\Large THANK YOU!} + \end{center} + \end{block} +\begin{block}{} + \begin{center} + For more Information, visit our website\\ + \url{http://fossee.in/} + \end{center} + \end{block} +\end{frame} + +\end{document} + + |