<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <link href="https://blog.jaysinh.dev/tags/programming/feed.xml" rel="self" type="application/atom+xml"/> <link href="https://blog.jaysinh.dev/" rel="alternate" type="text/html"/> <updated>2026-08-01T12:49:14+00:00</updated> <id>https://blog.jaysinh.dev/</id> <title type="html">Jaysinh’s own heed</title> <subtitle>I am a Full-stack developer by profession, Computer scientist by heart and an Actor by gene. I write mostly on programming topics. Browse through my blog posts to identify my taste of writing. </subtitle> <entry> <title type="html">Book review ‘Introduction to the Command Line’</title> <link href="https://blog.jaysinh.dev/book/review/2017/02/28/book-review-introduction-to-the-commandline.html" rel="alternate" type="text/html" title="Book review &apos;Introduction to the Command Line&apos;"/> <published>2017-02-28T00:00:00+00:00</published> <updated>2017-02-28T00:00:00+00:00</updated> <id>https://blog.jaysinh.dev/book/review/2017/02/28/book-review-introduction-to-the-commandline</id> <content type="html" xml:base="https://blog.jaysinh.dev/book/review/2017/02/28/book-review-introduction-to-the-commandline.html">&lt;p&gt;&lt;img src=&quot;https://blog.jaysinh.dev/assets/images/book_image_introduction_to_the_commandline.jpg&quot; alt=&quot;introduction_to_command_line&quot; /&gt;&lt;/p&gt; &lt;h2 id=&quot;tldr&quot;&gt;tl;dr&lt;/h2&gt; &lt;p&gt;Every chapter will introduce a bunch of comands and will point to its respective documentation for further learning. You should expect chapters describing from the &lt;a href=&quot;https://www.gnu.org/software/grep/manual/grep.html&quot;&gt;grep&lt;/a&gt; command to &lt;a href=&quot;https://www.gnu.org/software/octave/&quot;&gt;GNU Octave&lt;/a&gt; which is a scientific programming language. The chapters are independent of each other. The book is must read if you are new to the &lt;a href=&quot;https://en.wikipedia.org/wiki/Linux&quot;&gt;GNU/Linux&lt;/a&gt; command line. If you are at the intermediate level, then too investing time in reading this book will unveil a few surprises for you.&lt;/p&gt; &lt;h2 id=&quot;detailed-review&quot;&gt;Detailed review&lt;/h2&gt; &lt;p&gt;The book is community driven and published under &lt;a href=&quot;http://flossmanuals.net&quot;&gt;FLOSS Manual&lt;/a&gt;. It is a collaborative effort of the &lt;a href=&quot;http://www.fsf.org/&quot;&gt;FSF&lt;/a&gt; community. The fun part is you can contribute to this book by adding new chapters or by improving an existing one. I fixed one typo in this book after reading. The best introduction is crafted comparing GUI based image editing tools with the most unknown command &lt;a href=&quot;https://linux.die.net/man/1/convert&quot;&gt;convert&lt;/a&gt;. It conveys the importance of command line well to the reader. Initial chapters will present the overview of various &lt;a href=&quot;https://www.gnu.org/software/bash/&quot;&gt;GNU/bash&lt;/a&gt; commands. From my personal experience, you have to use mentioned commands in this chapter daily. The chapter of Command history shortcuts depicts geeky shell patterns. I will advise not to skip that chapter and read through once. The advanced section was not much advance for me. It demonstrates &lt;a href=&quot;https://linux.die.net/man/1/ssh&quot;&gt;ssh&lt;/a&gt; and related commands like &lt;a href=&quot;https://linux.die.net/man/1/scp&quot;&gt;scp&lt;/a&gt; and more. I appreciated the preference of using &lt;a href=&quot;https://www.gnu.org/software/screen/&quot;&gt;GNU Screen&lt;/a&gt; though I use &lt;a href=&quot;https://tmux.github.io/&quot;&gt;tmux&lt;/a&gt; over it. If you are possessed by moving around on multiple directories simultaneously, then &lt;strong&gt;directory stacks&lt;/strong&gt; under &lt;strong&gt;Moving Again&lt;/strong&gt; section is worth scanning. This functionality is saving dozens of my keystrokes now. There is one entire division dedicated to various editors. That section is not limited to &lt;a href=&quot;https://www.gnu.org/software/emacs/&quot;&gt;GNU Emacs&lt;/a&gt; or &lt;a href=&quot;http://www.vim.org/&quot;&gt;vim&lt;/a&gt;, but also briefs &lt;a href=&quot;https://www.nano-editor.org/&quot;&gt;GNU NANO&lt;/a&gt;, &lt;a href=&quot;http://www.kedit.com/&quot;&gt;Kedit&lt;/a&gt; and &lt;a href=&quot;https://wiki.gnome.org/Apps/Gedit&quot;&gt;Gedit&lt;/a&gt;. This section does not compare the pros and cons of several editors, but describes basics of each which should be counted as a good part. I skipped this part because I am comfortable with &lt;a href=&quot;http://www.vim.org/&quot;&gt;vim&lt;/a&gt; editor at present and don’t want to invest much in others.&lt;/p&gt; &lt;p&gt;The scripting section turned out to be the most interesting division for me. Though I was aware about the tools like &lt;a href=&quot;https://www.gnu.org/software/sed/manual/sed.html&quot;&gt;sed&lt;/a&gt; and language &lt;a href=&quot;https://linux.die.net/man/1/awk&quot;&gt;awk&lt;/a&gt; I was not using them often. Reading their chapters and implementing mentioned examples built little confidence in me. Now I am much comfortable in utilizing them. The irregular &lt;strong&gt;Regular expressions&lt;/strong&gt; are everywhere. You should not pass over this section and pay careful attention to various examples. It is worth to invest your time in this segment.&lt;/p&gt; &lt;p&gt;This is not the ending. This book presents a glimpse of various scripting level programming languages like &lt;a href=&quot;https://www.perl.org/&quot;&gt;Perl&lt;/a&gt;, &lt;a href=&quot;http://python.org&quot;&gt;Python&lt;/a&gt; and &lt;a href=&quot;https://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt;. Because I am a python developer for a few years and I was not much interested in other languages, I skipped this section. A shallow introduction to &lt;a href=&quot;https://www.gnu.org/software/octave/&quot;&gt;GNU Octave&lt;/a&gt; is nice to study if you are interested in knowing a little about this scientific programming language.&lt;/p&gt; &lt;h3 id=&quot;how-to-read-this-book&quot;&gt;How to read this book?&lt;/h3&gt; &lt;p&gt;Do not read to read. This book contains nice shell examples. By merely reading, you will end up without bringing about anything meaningful. I will advise you to interpret the description first, observe the examples and then implement them on your own. If you have any confusions, read the example and description again or obtain help from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;man&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;info&lt;/code&gt; are the best options. To remember, I revised the important chapters more than once in a week. It helped me to refresh what I learned before. I will attempt to re-read the important sections once again after a few days to refresh my memory.&lt;/p&gt; &lt;h3 id=&quot;what-is-missing&quot;&gt;What is missing?&lt;/h3&gt; &lt;p&gt;Considerably, the book is nicely written, equally distributed and largely acceptable, but I would prefer to have a small set exercises section at the end of each topic. Exercise might help the reader to identify their weak points early and refer on them again if they desire to.&lt;/p&gt; &lt;h3 id=&quot;typo--mistakes&quot;&gt;Typo / Mistakes&lt;/h3&gt; &lt;p&gt;I didn’t encounter any sever mistakes except one typo. The section of &lt;strong&gt;Userful customizations&lt;/strong&gt; on page number 80 of my printed version, contains following example:&lt;/p&gt; &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;function manyargs { $arg=$1 shift ... } &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt; &lt;p&gt;Here, &lt;strong&gt;$arg&lt;/strong&gt; is a misprint. A shell variable is never assigned with &lt;strong&gt;$&lt;/strong&gt;. It should be &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;args=$1&lt;/code&gt;. I myself has corrected the typographical error in the book. This change will be published maybe in the next release of this book.&lt;/p&gt; &lt;p&gt;If you are encountering any mistakes while reading, I request you to fix the change &lt;a href=&quot;http://write.flossmanuals.net/command-line/introduction/&quot;&gt;here&lt;/a&gt;. The interface for editing the book is beginner friendly. It took less than 5 minutes to drive the change.&lt;/p&gt; &lt;h3 id=&quot;where-to-buydownload&quot;&gt;Where to buy/download?&lt;/h3&gt; &lt;ul&gt; &lt;li&gt; &lt;p&gt;&lt;a href=&quot;https://shop.fsf.org/books-docs/introduction-command-line&quot;&gt;Buy printed version&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;a href=&quot;http://write.flossmanuals.net/command-line/introduction/&quot;&gt;Read Online&lt;/a&gt;.&lt;/p&gt; &lt;/li&gt; &lt;li&gt; &lt;p&gt;&lt;a href=&quot;http://archive.flossmanuals.net/_booki/command-line/command-line.pdf&quot;&gt;Download PDF&lt;/a&gt;&lt;/p&gt; &lt;/li&gt; &lt;/ul&gt; &lt;h6 id=&quot;proofreader-dhavan-vaidya&quot;&gt;Proofreader: &lt;a href=&quot;http://codingquark.com/&quot;&gt;Dhavan Vaidya&lt;/a&gt;&lt;/h6&gt;</content> <author> <name>Jaysinh Shukla</name> </author> <category term="books"/> <category term="linux"/> <category term="programming"/> <summary type="html">Every chapter will introduce a bunch of comands and will point to its respective documentation for further learning. You should expect chapters describing from the grep command to GNU Octave which is a scientific programming language. The chapters are independent of each other.</summary> </entry> </feed>