Errata

Linux in a Nutshell

Errata for Linux in a Nutshell

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
PDF Page 29
2nd paragraph

The 2nd sentence starts with: "Tthe facilities provided by netfilter..." instead of "The facilities provided by netfilter..."

Lukas Rueegg  Oct 28, 2010 
Other Digital Version 83

Overview of Firewalls and Masquerading

page 83 .epub file

Overview of Firewalls and Masquerading
third paragraph, start of second sentence

...iptables. Tthe facilities...

Anonymous  Dec 16, 2009 
Printed Page 128
First egrep example

In the example:
egrep 'Victor(ia)*' file

This will actually match something like 'Victoriaia..ia' as opposed to the '(Victor)|(Victoria)' wanted.

The example should actually be
egrep 'Victor(ia)?' file

Ricardo Jesus  Aug 10, 2016 
Printed Page 135
Second line of the page

Double quotes in 'Result is ""version""'

Ricardo Jesus  Aug 10, 2016 
Printed Page 139
-cnewer

Description of the -cnewer option reads 'Find files that were changed after they were last modified...'. I think this should be something like 'Find files that were changed after file was last modified...'.

Ricardo Jesus  Aug 10, 2016 
Printed Page 155
-n option

-n option reads '...udp for local UPD ports...', which should be '...udp for local UDP ports...' (there's a typo on UDP).

Ricardo Jesus  Aug 13, 2016 
Printed, Other Digital Version Page 473
wc -l

The "-l. --lines" option for wc user command is "Print line count only."
I use the gnu wc program supplied with openSUSE.
Its help for "-l, --lines" states: "print the newline counts."
If the last line in the file is not terminated with a newline,
the newline count will be one less than the number of lines in the file.

>python3 -c 'print("one line", end="")' > oneline.txt
>wc -l oneline.txt
0 oneline.txt
>cat oneline.txt
one line>
>
>

Phil Geraci  Apr 17, 2020 
Printed Page 648
String conditions

"= =" should be "==" (remove space)

All operators should be entirely in bold type, the following are not:
== != =~ < >

Anonymous  Jan 31, 2010 
Printed Page 649
top of page

NB. this description is based on Bash version 3.2.48, whereas the book mentions on p.596 that all references are to Bash version 4. Regardless, these issues may still apply and should be verified.


"s1 =~ s2" entry should specify "(Valid only within [[ ]] construct.)" since the =~ operator is not valid with the `test' or [ ] constructs.

Conversely, the statement "(Valid only within [[ ]] construct.)" should be *removed* from the entries "s1 < s2" and "s1 > s2", since the `<' and `>' operators *are* valid with the `test' and [ ] constructs, though in the latter cases they must be quoted or escaped (eg. s1 \< s2) to prevent being interpreted as redirection operators (this being a potentially disastrous mistake).

Lastly, in the "s1 =~ s2" entry, the instruction "Quote s2 to keep the shell from expanding embedded shell metacharacters" is apparently incorrect:
$ [[ a =~ '[a]' ]]; echo $?
1

$ [[ a =~ [a] ]]; echo $?
0

Anonymous  Oct 22, 2009 
Printed Page 649
Combined forms

the "||" operator should be in bold type.

Anonymous  Jan 31, 2010 
Printed Page 714
GNU sed address forms (middle of the page)

The description for the "/pattern/m" address is confusing and/or misleading. It says:
"Match pattern, allowing ^ and $ to match around an embedded newline."

I recommend changing it to:
"Match pattern, allowing ^ and $ to work on individual lines in a multiline pattern space."

...or something along those lines.

Anonymous  Feb 19, 2013 
Other Digital Version 733
2nd paragraph

The "E" is missing off the "END" keyword.

It reads
/widget/ { count["widget"]++ } Count widgets
ND { print count["widget"] } Print the count

It should read
/widget/ { count["widget"]++ } Count widgets
END { print count["widget"] } Print the count

Scott Field  Sep 06, 2010 
PDF Page 810
First sentence

Phrasing of "Try pulling in the changes from v.2.6.20 to v.2.6.21:" is ambiguous, and for beginners, confusing. One is working with version 2.6.20, not 2.6.21... right? I assume what the author meant (after re-reading the section) was "Try pulling in all the changes made BETWEEN v.2.6.20 and 2.6.21:", or "Try pulling the 2.6.21 changes into your 2.6.20-based branch:". Correct?

beth whiteside  Oct 06, 2010