Skip to content

Commit d28e366

Browse files
[ADD] Adding a blog post describing the review of "Introduction to the command line" (#4)
* [ADD] Adding blog post describing the review of Introduction to the command line. Proofread by Dhavan Vaidya.
1 parent 0e90e13 commit d28e366

File tree

2 files changed

+132
-0
lines changed

2 files changed

+132
-0
lines changed
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
---
2+
layout: post
3+
categories: book review
4+
title: Book review 'Introduction to the Command Line'
5+
tag: books linux programming
6+
---
7+
![introduction_to_command_line]({{ site.url
8+
}}/assets/images/book_image_introduction_to_the_commandline.jpg)
9+
10+
11+
## tl;dr
12+
13+
14+
Every chapter will introduce a bunch of comands and will point to its
15+
respective documentation for further learning. You should expect chapters
16+
describing from the [grep](https://www.gnu.org/software/grep/manual/grep.html)
17+
command to [GNU Octave](https://www.gnu.org/software/octave/) which is a
18+
scientific programming language. The chapters are independent of each other.
19+
The book is must read if you are new to the
20+
[GNU/Linux](https://en.wikipedia.org/wiki/Linux) command line. If you are at
21+
the intermediate level, then too investing time in reading this book will
22+
unveil a few surprises for you.
23+
24+
25+
## Detailed review
26+
27+
The book is community driven and published under [FLOSS
28+
Manual](http://flossmanuals.net). It is a collaborative effort of the
29+
[FSF](http://www.fsf.org/) community. The fun part is you can contribute to
30+
this book by adding new chapters or by improving an existing one. I fixed one
31+
typo in this book after reading. The best introduction is crafted comparing GUI
32+
based image editing tools with the most unknown command
33+
[convert](https://linux.die.net/man/1/convert). It conveys the importance of
34+
command line well to the reader. Initial chapters will present the overview of
35+
various [GNU/bash](https://www.gnu.org/software/bash/) commands. From my
36+
personal experience, you have to use mentioned commands in this chapter daily.
37+
The chapter of Command history shortcuts depicts geeky shell patterns. I will
38+
advise not to skip that chapter and read through once. The advanced section was
39+
not much advance for me. It demonstrates
40+
[ssh](https://linux.die.net/man/1/ssh) and related commands like
41+
[scp](https://linux.die.net/man/1/scp) and more. I appreciated the preference
42+
of using [GNU Screen](https://www.gnu.org/software/screen/) though I use
43+
[tmux](https://tmux.github.io/) over it. If you are possessed by moving around
44+
on multiple directories simultaneously, then **directory stacks** under
45+
**Moving Again** section is worth scanning. This functionality is saving
46+
dozens of my keystrokes now. There is one entire division dedicated to various
47+
editors. That section is not limited to [GNU
48+
Emacs](https://www.gnu.org/software/emacs/) or [vim][vim], but also briefs [GNU
49+
NANO](https://www.nano-editor.org/), [Kedit](http://www.kedit.com/) and
50+
[Gedit](https://wiki.gnome.org/Apps/Gedit). This section does not compare the
51+
pros and cons of several editors, but describes basics of each which should be
52+
counted as a good part. I skipped this part because I am comfortable with
53+
[vim][vim] editor at present and don’t want to invest much in others.
54+
55+
The scripting section turned out to be the most interesting division for me.
56+
Though I was aware about the tools like
57+
[sed](https://www.gnu.org/software/sed/manual/sed.html) and language
58+
[awk](https://linux.die.net/man/1/awk) I was not using them often. Reading
59+
their chapters and implementing mentioned examples built little confidence in
60+
me. Now I am much comfortable in utilizing them. The irregular **Regular
61+
expressions** are everywhere. You should not pass over this section and pay
62+
careful attention to various examples. It is worth to invest your time in this
63+
segment.
64+
65+
This is not the ending. This book presents a glimpse of various scripting level
66+
programming languages like [Perl](https://www.perl.org/),
67+
[Python](http://python.org) and [Ruby](https://www.ruby-lang.org/en/). Because I
68+
am a python developer for a few years and I was not much interested in other
69+
languages, I skipped this section. A shallow introduction to [GNU
70+
Octave](https://www.gnu.org/software/octave/) is nice to study if you are
71+
interested in knowing a little about this scientific programming language.
72+
73+
74+
### How to read this book?
75+
76+
Do not read to read. This book contains nice shell examples. By merely
77+
reading, you will end up without bringing about anything meaningful. I will
78+
advise you to interpret the description first, observe the examples and then
79+
implement them on your own. If you have any confusions, read the example and
80+
description again or obtain help from `man` or `info` are the best options. To
81+
remember, I revised the important chapters more than once in a week. It helped
82+
me to refresh what I learned before. I will attempt to re-read the important
83+
sections once again after a few days to refresh my memory.
84+
85+
86+
### What is missing?
87+
88+
Considerably, the book is nicely written, equally distributed
89+
and largely acceptable, but I would prefer to have a small set exercises section
90+
at the end of each topic. Exercise might help the reader to identify their weak
91+
points early and refer on them again if they desire to.
92+
93+
94+
### Typo / Mistakes
95+
96+
I didn't encounter any sever mistakes except one typo. The section of **Userful
97+
customizations** on page number 80 of my printed version, contains following
98+
example:
99+
100+
```
101+
function manyargs {
102+
$arg=$1
103+
shift
104+
...
105+
}
106+
```
107+
108+
Here, **$arg** is a misprint. A shell variable is never assigned with **$**. It
109+
should be `args=$1`. I myself has corrected the typographical error in the
110+
book. This change will be published maybe in the next release of this book.
111+
112+
If you are encountering any mistakes while reading, I request you to fix the
113+
change [here](http://write.flossmanuals.net/command-line/introduction/). The
114+
interface for editing the book is beginner friendly. It took less than 5
115+
minutes to drive the change.
116+
117+
118+
### Where to buy/download?
119+
120+
* [Buy printed
121+
version](https://shop.fsf.org/books-docs/introduction-command-line).
122+
123+
* [Read Online](http://write.flossmanuals.net/command-line/introduction/).
124+
125+
* [Download
126+
PDF](http://archive.flossmanuals.net/_booki/command-line/command-line.pdf)
127+
128+
129+
###### Proofreader: [Dhavan Vaidya](http://codingquark.com/)
130+
131+
132+
[vim]: http://vim.org/
702 KB
Loading

0 commit comments

Comments
 (0)