By Developers, For Developers

Historical errata for Small, Sharp Software Tools

PDF PgPaper PgTypeDescriptionFixed onComments
103TYPO

Output on the page shows START_HIGHLIGHTING instead of actual highlighting.

2018-11-08
30SUGGEST

I spent considerable time trying to find the “Devices” menu while trying to install the :guest additions“. Eventually I tried the ”storage" setting under “settings” and managed to “load” the VBoxGuestAdditions.iso file. This seemed to install the guest additions, but it was not what was described in the book. I am running Windows 10 as my host with Ubuntu 18.04 as the virtual machine

2018-11-15On Windows, the Devices menu is on the Virtual Machine window where your OS is running, rather than on the VirtualBox window which is separate. I'll see if I can clarify this, as on macOS it's a unified menu.
47TYPO

the line
$ touch docs/markdown/{chapter1,chapter2,chapter3}.md
should be
$ touch files/docs/markdown/{chapter1,chapter2,chapter3}.md

2018-11-15
84TYPO

at the bottom of the page
$ sed -e ‘/\\.\\/s/\\/_/g’ document.md
This is very important text with very important words.

  • These words are not important.
  • Neither are these.
    You can always tell very important text because it’s in italics

very and always should be very and always that’s the point of the exercise

2018-11-15
87ERROR

$ sed -e ‘/LINKS/{r urls.txt’ -e ‘d’} useful_links.md

This can’t be correct because one of the brackets { is within quotes, the other outside.

$ sed -e ‘/LINKS/{r urls.txt’ -e’d}’ useful_links.md

works for gnu sed.

$ sed -e ‘/LINKS/{r urls.txt ; d}’ useful_links.md

does not work (unmatched bracket }), but

$ $ gsed -e ‘/LINKS/{
r urls.txt
d}’ useful_links.md

works just fine. Apparently command groups with semicolons semi-work.

2018-11-15With sed (GNU sed) 4.4, the command in the book works, even though it looks like it shouldn't. But since your version works as well and is less confusing, I've changed it.
6TYPO

(second paragraph from bottom of page, second sentence )
…just like you did to create a tet file with echo:

tet instead of text.

2018-11-28
47ERROR

Here is your text and code:

Next, create the files chapter1.md, chapter2.md, and chapter3.md in the docs/markdown
folder. You can use brace expansion here too:
$ touch docs/markdown/{chapter1,chapter2,chapter3}.md

You either need to do a cd to files before executing this command or change the command to

$ touch files/docs/markdown/{chapter1,chapter2,chapter3}.md

2018-11-28
65TYPO

„The wizard then asks you For the hard disk file type.“

“For” should read “for”.

2018-11-28
16TYPO

“which are call the file system. You’ll explore this in detail in xxx.”

“are call” has to be fixed.
“xxx” can now be replaced with the reference to Chapter 3.

2018-11-28
20TYPO

“Let’s use it create a directory called website”

Looks like there’s a “to” missing.

2018-11-28
25ERROR

The link to the book’s web site in the footnote at the bottom of the page is not clickable.

2018-11-28
19TYPO

“and the Q key to exit”

Should be “q” as on page 25.

2018-11-28
102TYPO

“The value is 1-3, which tells cut to cut out everything other than characters 2 through 4.”

“1-3” should read “2-4”.

P. S.: I just realized that I messed up the page numbers in my previous reports.
Instead of the number printed on the page I took the one from the iBooks application. So please subtract 13 to get the printed page number. Sorry for that!

2018-11-28
38ERROR

The figure in the Kindle version doesn’t show the /tmp and /opt directories as it’s the case in the PDF version.

42TYPO

There’s a single quotation mark at the end of the last sentence:

“4. Use cd local to get to the /usr/local folder’.”

2018-11-28
60TYPO

“The cat file reads small files nicely.”

“cat file” should read “cat command” or “cat program” for example.

2018-11-28
56TYPO

The file “file.txt” has different groups here:

“$ ls -lh file.txt
-rw-r—r— 1 brianhogan brianhogan 0B Mar 15 14:09 file.txt
…
$ touch file.txt
$ ls -alh file.txt
-rw-r—r— 1 brianhogan staff 0B Mar 15 14:11 file.txt”

2018-11-28
73TYPO

$ sudo -R chown brianhogan:brianhogan /var/files

should be

$ sudo chown -R brianhogan:brianhogan /var/files

2018-11-28
83TYPO

“Use the stat command to view details about the test.html command you just worked with:”

-> “test.html command” to be fixed

2018-11-28
78TYPO

“Look at the permissions for the permissions.txt folder.”

It’s not a folder. :)

2018-11-28
141ERROR

The line

(local) $ ssh brian@192.168.99.100 ‘tree ~/website2’

at the bottom of the page is not colored.

2018-11-29
136TYPO

“This installs and activate the SSH server on port 22.”

Should be “activates”

2018-11-28
135TYPO

At the bottom of the page:

“You can delete that note with cURL as well:
curl -X DELETE …://localhost:3000/notes/2
You can stop json-server by switching back to its terminal window and pressing CTRL-C.”

1. The curl line is missing the prompt and color.
2. “CTRL-C” should be “CTRL-c”.

Note that I had to replace “http” by “…” because hyperlinks are not alowed in errata.

2018-11-28
83SUGGEST

Mention that macOS requires stat -x in order to show something humanly readable

$ stat card.tex
16777221 6492847 -rw-r—r— 1 mholiday staff 0 1705 “Sep 13 21:50:20 2018” “Sep 7 20:13:34 2018” “Sep 13 21:50:21 2018” “Sep 7 20:13:29 2018” 4194304 8 0 card.tex

$ stat -x card.tex
File: “card.tex”
Size: 1705 FileType: Regular File
Mode: (0644/-rw-r—r—) Uid: ( 501/mholiday) Gid: ( 20/ staff)
Device: 1,5 Inode: 6492847 Links: 1
Access: Thu Sep 13 21:50:20 2018
Modify: Fri Sep 7 20:13:34 2018
Change: Thu Sep 13 21:50:21 2018

2018-12-28
101ERROR

1. remove “[2.5.1] streams_of_text” in the second example
2. prompt and color are missing the last example
3. the link in the footnote is not clickable

2018-12-28
93TYPO

“and chain then together”

“then” -> “them”

2018-12-28
93ERROR

“Remember the head and tail commands you used in [xxx](#sec.head.tail)?”

2018-12-28
93SUGGEST

As an alternative to the history example you may consider this one, which uses your later cut example from page 103.

$ history | cut c 8 | cut -d ’ ’ -f1 | sort | uniq -c | sort -rn | head

I find this simpler than the version with awk. Easier to come up with and to type as well. ;) It would also be a good opportunity to mention the uniq command.
Or show both variants as an example that there are always several ways to solve a problem.

2018-12-28It's a good suggestion but I don't think I want to go with it. Two cuts plus a uniq seems like bad practice when you can do it with awk, and I sorta address that kind of efficiency thing in the awk section too.
78SUGGEST

“Generally, you don’t want files to be executable, so change the permissions on that file back…”

I’d mention the possibility to use an “X” instead of “x” in conjunction with the -R option to set “x” only for directories. So for example

$ chmod -R go+rwX /var/files/dropbox

2019-01-08I like this. It took me a bit to figure out how I wanted to include it, because I wanted the reader to experience what would happen when you use the bits rather than the letter options, as I've experienced this in labs. But I've added your suggestion after the section as a "you can avoid this additional step" bit.
77SUGGEST

In the table at the top of the page, I’d add leading zeros to the binary numbers, so they all would have three digits - one for each of the permissions. That would make it clearer that 001 sets the x bit for example.

2018-12-28
39TYPO

“This is a good place to put alternative versions of software, so it won’t conflict with existing versions.”

“so they”?

2018-12-28
109ERROR

In the output of the first two sed examples the arrow pointing to the changes is missing.
Also, the second example is missing the prompt.

2018-12-29
110ERROR

In the output of the first and last sed examples the arrow pointing to the changes is missing.
Also, the first example is missing the prompt.

2018-12-29
105TYPO

Two commas after “file” in the first sentence.

2018-12-29
112TYPO

In the last example at the bottom of the page:
1. The “S” of “State” is missing in the header
2. The numbers of Alabama are wrong (same on the following page)

I’d also mention that “in the real world” the column command would be easier to use in this case. And the output looks even better, since it aligns the columns properly.

$ cat population.txt | column -t -s,
(or column -t -s, population.txt)

2018-12-29I agree that the column command makes it look prettier and is the way you'd format text, but in the example in this part, we're not formatting text - we're changing the delimiter to tabs. The column command inserts spaces and is meant for display on screens. I've added a note about this to clarify the difference between using a delimiter and aligning columns for display purposes.
116TYPO

Last sentence: “also somewhat cryptic. so”

2018-12-14
117TYPO

"
b. the least popular URL on the site.
…
d. The most popular web browser used to access the site. 4.
"

“the least” -> “The least”
“the site. 4. -> ”the site."

2018-12-14
123TYPO

“While there are newer tools available, iyou’re…”

2018-12-14
150ERROR

“9. Use cURL to inspect…”

“cURL” is not typeset correctly.

2018-12-14
149TYPO

“CTRL-C” should be “CTRL-c” or “Ctrl-c” as on page 148 (should be the same everywhere of course :) “Ctrl-c” looks nicer IMO.)

“1. Using the tools you learned…” shouldn’t probably No. 1?

2018-12-14
148TYPO

1. In the first line “EOF” is in backticks.

2. “You can use this approach to serve a web pages.”

2018-12-14
145ERROR

The paragraph beginning with “The -n switch tells” is not typeset properly.

2019-01-08
137TYPO

At the bottom of the page: “RSA keypir”

2018-12-14
136TYPO

“Ready to look at connecting to to…”

2018-12-14
103ERROR

In the third example the “hello” output should be black.

2018-12-29
98ERROR

The last command line at the bottom of the page is not colored.

2018-12-28
18ERROR

cat /usr/share/dict/words does not work on WSL (w/ Ubuntu 18.04 LTS).

2019-01-08Thanks for reporting this. I've addressed this.
0SUGGEST

I’d use https instead of http for (clickable) links wherever possible.

2019-01-08This is a good idea in theory, but several of the URLs don't actually have certs set up. I went through and checked and think I have changed the ones that do work though.
10TYPO

p10 of the “files.pdf” excerpt, the prose says “Read the names.txt file but don’t display the first three lines:”

but the command

$ tail -n +3 names.txt
Bart
Lisa
Maggie

doesn’t display the first two lines (it starts displaying at line #3)

2018-12-28
6SUGGEST

On p6 of the files.pdf excerpt, it uses “cat << ‘EOF’”

To the uninitiated, “EOF” may be cryptic, so it might help to let the reader know it is short for “End Of File” (if this is done elsewhere in the book before this point, then cool; just basing off the context of the excerpt)

2018-12-28
9TYPO

On p9 of the connections.pdf excerpt, the first “question” in the “Your Turn” section of questions isn’t a question but rather an introduction to the questions that belongs in the paragraph before.

2019-01-08
9ERROR

On p9 of the connections.pdf excerpt, question #7 discusses Class A/B/C networks which were largely supplanted with the introduction of CIDR (“slash notation”) in 1993 and don’t really have much value in modern networking beyond a historical footnote.

2018-12-28Yup this question should go because I removed the discussion on IP classification anyway and this isn't a networking book.
10SUGGEST

On p10 of the connections.pdf excerpt, question #10 of the “Your Turn” section advises the reader to “use nc to make the same connections”. However, several of the links use HTTPS rather than HTTP which entails (1) using port 443 instead of port 80, and (2) talking SSL/TLS which is better done with `openssl s_client` since `nc` doesn’t natively do SSL/TLS.

2018-12-28
12TYPO

In sentence describing how to download the book’s source code: “vising” should be “visiting”

2019-01-08
15TYPO

Capitalization of Virtualbox in the 2nd paragraph

2019-01-27
16TYPO

Capitalization of Virtualbox (two occurrences)

2019-01-08
16TYPO

The link to download Ubuntu in the footnote currently redirects to
www.ubuntu.com/download/desktop (note: download singular)

2019-01-08
38TYPO

Grammar: “If you’re familiar with Windows operating system” should be “If you’e familiar with the Windows operating system”

2019-01-08
38TYPO

Grammar: “C: drive or D: drive, each with its own collections of files” should be “C: drive or D: drive, each with its own collection of files”

2019-01-08
47ERROR

In the last example for find, which calls ls via exec, you single quote the curly braces. This isn’t necessary in bash, and the command works fine for me (in macOS) without quoting the braces. There is no variable expansion happening here, and the explanation that it “prevent(s) the shell from doing any escaping” is misleading.

Reference here: superuser.com/questions/995617/difference-between-and-in-find-command

2019-01-08
99ERROR

At the bottom of the PDF page, there is a collection of terminal commands:
$ find /root/ > log.txt 2>&1
$ cat log

I believe the “cat” command should reference “log.txt”. Log, on my terminal, causes a “No such file or directory” error.

2019-01-27
192TYPO

Two issues here:

1. The two Makefile code examples are in the wrong order
2. “The $&lt; variable” should read “The $< variable”

2019-01-27
115TYPO

In the output of the last awk example, the “S” of “State” is missing in the header.

2019-03-11
118ERROR

At the bottom of the page it reads “You never used the END section either” although there’s an example with the END keyword just a few lines above that sentence.

2019-03-11
117ERROR

The last two sentences of the second paragraph are typesetted with the wrong font, starting with “tail, but you”.
Also, there’s a single quote after “NR>1”.

2019-03-11
118ERROR

In the first two paragraphs, awk is spelled “Awk” and typesetted differently.

2019-03-11
125TYPO

“that other programs cam use”

“cam” -> “can”

2019-03-11
138TYPO

At the bottom of the page:
$ cat ~/.bashrcc

“bashrcc” -> “bashrc”

2019-03-11
141TYPO

“Add the following line to the ~/bashrc file”

“~/bashrc” should be “~/.bashrc”

2019-03-11
141ERROR

At the bottom of the page “Ctrl-O” and “Enter” aren’t typesetted correctly.
Also, “Ctrl-O” should read “Ctrl-o” I guess.

2019-03-11
129ERROR

On page 129 you’re creating the greetings file in the greeting_script directory but in the subsequent commands on the following page you’re using ~/greetings.

2019-03-11
157ERROR

In 4.b. it should read “source ~/.aliases” instead of “source ~/.bashrc”.

2019-03-11
155TYPO

Missing space in “bindcommand” in the middle of the page.

2019-03-11
155ERROR

Wrong code for this one:
‘Now create a keybinding that binds Alt+" to wrap the contents of the line with double quotes’

2019-03-11
152ERROR

In the “Meta key” box, the two footnotes are broken ([^fn-symbolics] and [^fn-iterm2]).

2019-03-11
152ERROR

The second part of the sentence “Instead of using a keybinding” is not typeset properly.

2019-03-11
153TYPO

There’s a double arrow character instead of “>>” in the example with “output.txt”.

2019-04-28
155TYPO

At the botton of the page: “tab completion. add this line:”

“add” should read “Add”

2019-03-11
154ERROR

The link in the footnote is not clickable.

2019-03-11
173ERROR

The links in the footnote aren’t clickable.

2019-03-11
127ERROR

The line with the command “printenv HOME” is missing the prompt and color.

2019-03-11
93SUGGEST

In the definition of heredoc, it says “a block of code that programs…”. In the example immediately preceding, the heredoc contains a list of characters’ names, so it might be more precise to say that it can just be “a block of text”

2019-03-11
94TYPO

In the explanation of the heredoc example, the paragraph describing the redirection to names.txt, uses STDOUT. This is inconsistent capitalization with the rest of this section, as well as using the abbreviation, when “standard output” is used elsewhere.

2019-03-11
93SUGGEST

I didn’t know about herestrings, and in contrasting them with heredocs, it might be useful to mention that heredocs allow newlines, which is why the limit string is needed.

2019-04-28Thanks, but I don't think this is necessary to explain explicitly.
94TYPO

In “Creating Pipelines of Data”, the description of less mentions “but less also access input from standard input”. Replace “access” with “accept” or “accesses”?

2019-03-11
98TYPO

In the Working with GUI Clipboards box, there are several command-line examples where the angle brackets are rendered as HTML entities. There are two “>” visible, that should be “>” instead.

2019-03-11
102SUGGEST

In the description of the -C switch of grep, perhaps mention that it provides leading/trailing “context”. It’s how I remember which switch to use. In the previous paragraph, you mention “above” and “below” for -A and -B.

2019-04-28
107SUGGEST

In the lightbulb section describing macOS sort, there is a space missing between “coreutils” and “—with-default-names”

2019-03-11
107SUGGEST

In the lightbulb section on macOS sort, the Homebrew option —with-default-names begins with two hyphens. It’s very easy to miss this with the sans-serif font. Can this command example use a fixed-width font?

Similarly, on Page 109, in the lightbulb section for macOS sed.

2019-03-11
109SUGGEST

In the section describing modifying files in place, is it worthwhile mentioning that trying to redirect the output of sed to the original file won’t work? I’ve made that mistake in the past, when it just truncates the original file.

That is, something like this is a gotcha:

sed -e ‘s/very/really/g’ document.md > document.md

2019-04-28
112SUGGEST

In the example of adding a line at the top of the file, maybe use “insert” as the verb instead? It’s a way to help remember what “i” does.

2019-04-28
107ERROR

The Homebrew option —with-default-names is no longer available, and has been deprecated as of January 2019:

See the GitHub issue at github.com/Homebrew/homebrew-core/pull/35720

2019-03-11
121ERROR

The BSD xargs on macOS doesn’t understand the -a argument to pass in a file. The GNU version (from Homebrew findutils) does though.

2019-03-11
128TYPO

In the example demonstrating the erroneous variable $USER_history, the text reads “…because the shell though the variable was…”. It should read “…because the shell THOUGHT the variable was…”

2019-03-11
131TYPO

When demonstrating how to set an environment variable, there is a spurious single left quote after “export” in the text preceding the example command-line.

2019-03-11
138TYPO

In the description of the sequence of settings files examined for login shells, in the first complete paragraph on this page, the typesetting of /.bash_login and/.profile is wrong. There’s some spurious left single quotes.

2019-03-11
138TYPO

In the paragraph about non-login shells (second complete paragraph on the page), the path for .profile is missing. It should read ~/.profile

2019-03-11
143TYPO

At the bottom, when cleaning up the definition of the prompt by using variables for color and resetting, the sentence says “…in variables with the escaped braces already”. I believe that should be “escaped brackets”.

2019-04-28
152TYPO

In the “The Meta key” box, iTerm2 is incorrectly capitalized, in the sentence “The popular Iterm2 app”

2019-03-11
163TYPO

In the footnote, the Wikipedia link for reserved IP addresses is unnecessarily parenthesized. The link is clickable, however, and resolves correctly.

2019-03-11
166TYPO

In the section describing finding the owner of a domain name, “unscruplous” is incorrectly spelled.

2019-03-11
166TYPO

In the description of whois on Ubuntu systems, the apt command isn’t typeset as something the reader has to type.

2019-03-11
167TYPO

On the very bottom of the page, CTRL-C isn’t typeset the same as other keypresses. It’s not highlighted, and it’s in all-caps. For this example, the final C should be lowercase also.

2019-03-11
173TYPO

In the 3rd paragraph on the page, NodeSource should have the ‘S’ capitalized.

2019-03-11
181TYPO

In the second paragraph, the sentence “you’ll copy it to a new folder named ` testsite2” has a spurious backtick. (Or there’s some formatting markup that’s messed up)

2019-03-11
181TYPO

In the description of using rsync, the delete option (—delete) has only one hyphen, but it should be two. (It’s correct in the command-line example)

2019-03-11
185TYPO

The description of the lsof command example, has some typesetting issues, beginning with the “-iTCP” flag.

2019-04-26
202TYPO

At the top of the page, there is an unresolved reference “#sec.alias.function”.

2019-03-11
205ERROR

In the for loop that installs packages, the apt-get command passes the -y option after the subcommand name. I noticed this is inconsistent with the example for installing NodeSource on page 206.

I don’t have apt-get (on macOS), but I took a look at a manpage online. I think the options all precede the subcommand.

2019-04-26
207TYPO

At the part where the script is finished, and we are about to test it out, the two sample command-lines refer to the script as “setup.sh” in two places, whereas it was called “ubuntu_setup.sh” previously.

2019-03-11
208SUGGEST

In the section that describes installing Homebrew, you don’t discuss executing the file downloaded from GitHub and executed using Ruby. Perhaps you could briefly mention that this is how the Homebrew homepage currently describes how to install itself. (I remember years (?) ago, the installation instructions were shorter, and the script was hosted on the Homebrew site itself)

2019-03-11
84ERROR

“you’ll look at in {chp.shell}”

2019-03-11
132TYPO

“…you don’t need want to set…”

2019-03-11
134TYPO

“Let’s look at how Nano to create…”

2019-03-11
139ERROR

“… operators in (#sec.series.of.commands).”

2019-03-11
143SUGGEST

At the end of the second paragraph it reads “followed by ::”.
Maybe rephrase it “followed by a colon:”?

2019-03-11
148ERROR

I guess the second line should be completely black.

What about the WAN IP “xx.xx.xx.xx”? Is that intentional?

2019-03-11
152TYPO

At the end of the second paragraph of the Meta Key box, it should be “Alt keys” instead of “alt keys”.

2019-03-11
154TYPO

In the first sentence: “library library”

2019-03-11
165TYPO

“This classification system resulted in a lot of IPs that were allocated but never used.”

“IPs” -> “IP addresses”

2019-03-11
170ERROR

The last line of the ouput of “ls -l test_site” is printed in green instead of black.

2019-04-28
170ERROR

The timestamps of the script output at the bottom of the page (and at the top of page 171) do not match with the creation date of the previously created directories and the index file.

2019-04-26
171TYPO

“Use the ls -alh command to get…”
In the example that follows you’re using “ls -lh”, not “ls -alh”.

2019-04-26
155ERROR

The first sentence of the last paragraph is not typeset properly (“Instead of using…”).

2019-04-28
180TYPO

At the end of the first paragraph: “Linu version”.

2019-04-26
180TYPO

Second paragraph: “… sort. use…”.

Also, “Shift + M” etc. on this page should have lowercase letters “m” etc., I guess.

2019-05-17
180TYPO

Third paragraph below the screenshot: “and ress s”.

Also, “CMD” should probalby read “COMMAND”?

2019-04-26
181TYPO

There’s already an ampersand at the end of the first example.

2019-04-26
267TYPO

First paragraph: “to ignore the.envrc file”.

2019-04-26
269ERROR

“First, use apt to install fzf”"

Should be “git”.

2019-04-26
271ERROR

The sentence starting with “Save the file, source it” in the middle of the page is not typeset properly.

2019-04-26
273TYPO

“and you’ll see your file:”

The colon should be a period. Or is there a screenshot missing?

2019-04-26
282TYPO

At the top of the page: “Remmeber, the indexs”

2019-04-26
282TYPO

Different spellings: “HTTpie” vs. “HTTPie”

2019-04-26
285TYPO

In the middle of the page: “Siege an keep…”

2019-04-26
285TYPO

Bottom of page: “…, you an use Siege…”

2019-04-26
288TYPO

“head: ouput the…” -> “head: Ouput the…”

“ip: show / manipulate…” -> “ip: Show/manipulate…”

2019-04-26
291TYPO

In the title: “utilties”

2019-04-26
291ERROR

“…verify that the date command…”

Should read “stat command”

2019-04-26
175SUGGEST

The example in the middle of the page might be a good opportunity to introduce the reader to the <Alt+.> shortcut that lets you recall the last argument of the previous commands. I’m using it all the time. You can step through the history by holding down and pressing <.> repeatedly.

mkdir -p /tmp/some/long/directory
touch <Alt+.>/data.csv
cp <Alt+.> .
So in this case, using the shortcut might be a better alternative for some people.
You also see the actual argument after pressing <Alt+.> and can adjust it if need be.

Also, the example “cp !$ !$:t” (instead of simply “cp !$ .”) might be more useful if you add something to the original file name, like the date for example. That is, if that works (I didn’t try)?
cp !$ 2019-03-25-!$:t

2019-05-17This is a great suggestion, but I won't be including this in the final version of the book,. I'll add it as supplemental material on smallsharpsoftwaretools.com.
14SUGGEST

Maybe also add these shortcuts. I find them very useful.
Ctrl+k, Ctrl+u
Ctrl+w
Ctrl+d, Ctrl+h
Ctrl+f, Ctrl+b
Ctrl+p, Ctrl+n
Ctrl+g
Alt+.

2019-04-26Great ideas, but hopefully when we get to the chapter on keybindings the info there will help people discover these built-ins.
52TYPO

Extra dash in file permissions explanation.
“In this example, you see rwxr-x-r-x”
Should be:
“In this example, you see rwxr-xr-x”

2019-04-26
28TYPO

Preface::What’s In (and not in) This Book::3rd to last paragraph::last sentence

is:
“You’ll use the Linux versions of these tools, rather than the BSD ersions found on OpenBSD or FreeBSD.”

should be:
“You’ll use the Linux versions of these tools, rather than the BSD versions found on OpenBSD or FreeBSD.”

2019-04-26
62SUGGEST

The “curl” command line to get the source code in Chapter 1::Downloading files separates using a hyphen at an inopportune place.

“$ curl O XXXXs://media.pragprog.com/titles/bh
cldev/code/bhcldev-code.zip”
<had to remove the https, because the Erratum website does not allow links for security reasons>

because of the hyphen in the filename the reader may not realize that the hyphen is not included in the directory name (bhcldev, not bh-cldev).

Suggestion: break the command at a “/”.

2019-04-28I can't reproduce this. The command is short enough to fit the line in the PDF version of this book.
15TYPO

Last line of last full paragraph says:
the BSD ersions found on OpenBSD or FreeBSD.
should be:
the BSD versions found on OpenBSD or FreeBSD.
(missing the “v” in versions)

2019-05-17
159TYPO

“Add these keybindings in your ~/inputrc file:”

Should be:
Add these keybindings in your ~/.inputrc file:

237TYPO

When writing the bash script, the instructions tell the user to use the following line:

nano hello_world.sh

On page 238, the command to run the script is:

bash hello.sh

191ERROR

The following code from the book does not work, and appears to be incomplete with regard to the number of quotes:

PS1=“\\$(err=\\$?; echo ”${USERCOLOR}\\u${RESET}@\\h:\\w\\ - $err - \\\\$) "

If I add a quote character to complete the echo command, it works, but attempts to evaluate ‘-’ as a command not found:

PS1=“\\$(err=\\$?; echo ”${USERCOLOR}\\u${RESET}@\\h:\\w\\ - $err - \\\\$" ) "

If I remove the “\\” escape at the beginning of the whole thing, it works as intended, but does not evaluate $? each time dynamically:

PS1=“$(err=\\$?; echo ”${USERCOLOR}\\u${RESET}@\\h:\\w\\ - $err - \\\\$“) ”

I must admit, I’m a little lost on how to resolve this…

191ERROR

Removal of inital “\\” escape, and addition of quotes to close echo, plus brackets for ${err} works as intended:

PS1=“$(err=\\$?; echo ”${USERCOLOR}\\u${RESET}@\\h:\\w\\ - ${err} - \\\\$“) ”

234/5TYPO

The command
$ nano makefile
should be
$ nano Makefile

259TYPO

The text.txt file appears in the backup.txt folder.
should be
The text.txt file appears in the backup folder.

Categories: