A Practical Guide to Linux Commands, Editors, and Shell Programming

A Practical Guide to Linux Commands, Editors, and Shell Programming

3.97 (229 ratings by Goodreads)
By (author) 

Free delivery worldwide

Available. Dispatched from the UK in 2 business days
When will my order arrive?


"First Sobell taught people how to use Linux ...now he teaches you the power of Linux. A must-have book for anyone who wants to take Linux to the next level." -Jon "maddog" Hall, Executive Director, Linux International New Chapters on Python and MySQL-Covers Perl, too! * Learn from hundreds of realistic, high-quality examples, and become a true Linux command-line guru! * NEW! Covers busybox, Midnight Commander, screen, and sshfs/curlftpf * Covers the Mac OS X command line and its unique tools * 295-page reference covers 98 utilities, including Mac OS X commands! For use with all popular versions of Linux, including Ubuntu(TM), Fedora(TM), openSUSE(TM), Red Hat(R), Debian, Mageia, Mint, Arch, CentOS, and Mac OS X, too! The Most Useful Tutorial and Reference, with Hundreds of High-Quality Examples for Every Popular Linux Distribution Linux is today's dominant Internet server platform. System administrators and Web developers need deep Linux fluency, including expert knowledge of shells and the command line. This is the only guide with everything you need to achieve that level of Linux mastery. Renowned Linux expert Mark Sobell has brought together comprehensive, insightful guidance on the tools sysadmins, developers, and power users need most, and has created an outstanding day-to-day reference. This title is 100 percent distribution and release agnostic. Packed with hundreds of high-quality, realistic examples, it presents Linux from the ground up: the clearest explanations and most useful information about everything from filesystems to shells, editors to utilities, and programming tools to regular expressions. Use a Mac? You'll find coverage of the Mac OS X command line, including OS X-only tools and utilities other Linux/UNIX titles ignore. Sobell presents a new MySQL chapter. There's even an expert introduction to Python-today's most valuable tool for automating complex, time-consuming administration tasks. A Practical Guide to Linux(R) Commands, Editors, and Shell Programming, Third Edition, is the only guide to deliver * A MySQL chapter to get you started with this ubiquitous relational database management system (RDBMS) * A masterful introduction to Python for system administrators and power users * New coverage of the busybox single binary collection of utilities, the screen terminal session manager/multiplexer, and the mc (Midnight Commander) textual file manager, plus a new chapter on using ssh for secure communication * In-depth coverage of the bash and tcsh shells, including a complete discussion of environment, inheritance, and process locality, plus coverage of basic and advanced shell programming * Practical explanations of 98 core utilities, from aspell to xargs, including printf and sshfs/curlftpfs, PLUS Mac OS X-specific utilities from ditto to SetFile * Expert guidance on automating remote backups using rsync * Dozens of system security tips, including step-by-step walkthroughs of implementing secure communications using ssh and scp * Tips and tricks for customizing the shell, including step values, sequence expressions, the eval builtin, and implicit command-line continuation * High-productivity editing techniques using vim and emacs * A comprehensive, 295-page command reference section covering 98 utilities, including find, grep, sort, and tar * Instructions for updating systems using apt-get and yum * And much more, including coverage of BitTorrent, gawk, sed, find, sort, bzip2, and regular expressionsshow more

Product details

  • Paperback | 1200 pages
  • 190.5 x 228.6 x 40.64mm | 1,679.97g
  • Pearson Education (US)
  • Prentice Hall
  • Upper Saddle River, United States
  • English
  • Revised
  • 3rd Revised edition
  • 013308504X
  • 9780133085044
  • 122,649

About Mark G. Sobell

Mark G. Sobell is President of Sobell Associates Inc., a consulting firm that specializes in UNIX/Linux training, support, and custom software development. He has more than thirty years of experience working with UNIX and Linux systems and is the author of many best-selling books, including A Practical Guide to Fedora(TM) and Red Hat(R) Enterprise Linux(R), Sixth Edition, and A Practical Guide to Ubuntu Linux(R), Third Edition, both from Prentice Hall.show more

Review quote

Praise for Previous Editions of A Practical Guide to Linux(R) Commands, Editors, and Shell Programming "This book is a very useful tool for anyone who wants to 'look under the hood' so to speak, and really start putting the power of Linux to work. What I find particularly frustrating about man pages is that they never include examples. Sobell, on the other hand, outlines very clearly what the command does and then gives several common, easy-to-understand examples that make it a breeze to start shell programming on one's own. As with Sobell's other works, this is simple, straight-forward, and easy to read. It's a great book and will stay on the shelf at easy arm's reach for a long time." -Ray Bartlett, Travel Writer "Overall I found this book to be quite excellent, and it has earned a spot on the very front of my bookshelf. It covers the real 'guts' of Linux- the command line and its utilities-and does so very well. Its strongest points are the outstanding use of examples, and the Command Reference section. Highly recommended for Linux users of all skill levels. Well done to Mark Sobell and Prentice Hall for this outstanding book!" -Dan Clough, Electronics Engineer and Slackware Linux User "Totally unlike most Linux books, this book avoids discussing everything via GUI and jumps right into making the power of the command line your friend." -Bjorn Tipling, Software Engineer, ask.com "This book is the best distro-agnostic, foundational Linux reference I've ever seen, out of dozens of Linux-related books I've read. Finding this book was a real stroke of luck. If you want to really understand how to get things done at the command line, where the power and flexibility of free UNIX-like OSes really live, this book is among the best tools you'll find toward that end." -Chad Perrin, Writer, TechRepublic "I moved to Linux from Windows XP a couple of years ago, and after some distro hopping settled on Linux Mint. At age 69 I thought I might be biting off more than I could chew, but thanks to much reading and the help of a local LUG I am now quite at home with Linux at the GUI level. "Now I want to learn more about the CLI and a few months ago bought your book: A Practical Guide to Linux(R) Commands, Editors, and Shell Programming, Second Edition. "For me, this book is proving to be the foundation upon which my understanding of the CLI is being built. As a comparative 'newbie' to the Linux world, I find your book a wonderful, easy-to-follow guide that I highly recommend to other Linux users." -John Nawell, CQLUG (Central Queensland Linux User Group) "I have the second edition of A Practical Guide to Linux(R) Commands, Editors, and Shell Programming and am a big fan. I used it while working as a Cisco support engineer. I plan to get the third edition as soon as it is released. We will be doing a ton of command-line work on literally 1000 boxes (IMS core nodes). I feel you have already given me a lot of tools with the second edition. I want to get your new book as soon as possible. The way you write works very well for my style of learning." -Robert Lingenfelter, Support Engineer, VoIP/IMS Praise for Other Books by Mark G. Sobell "Since I'm in an educational environment, I found the content of Sobell's book to be right on target and very helpful for anyone managing Linux in the enterprise. His style of writing is very clear. He builds up to the chapter exercises, which I find to be relevant to real-world scenarios a user or admin would encounter. An IT/IS student would find this book a valuable complement to their education. The vast amount of information is extremely well balanced and Sobell manages to present the content without complicated asides and meandering prose. This is a 'must have' for anyone managing Linux systems in a networked environment or anyone running a Linux server. I would also highly recommend it to an experienced computer user who is moving to the Linux platform." -Mary Norbury, IT Director, Barbara Davis Center, University of Colorado at Denver, from a review posted on slashdot.org "I had the chance to use your UNIX books when I when was in college years ago at Cal Poly, San Luis Obispo, CA. I have to say that your books are among the best! They're quality books that teach the theoretical aspects and applications of the operating system." -Benton Chan, IS Engineer "The book has more than lived up to my expectations from the many reviews I read, even though it targets FC2. I have found something very rare with your book: It doesn't read like the standard technical text, it reads more like a story. It's a pleasure to read and hard to put down. Did I say that?! :-)" -David Hopkins, Business Process Architect "Thanks for your work and for the book you wrote. There are really few books that can help people to become more efficient administrators of different workstations. We hope (in Russia) that you will continue bringing us a new level of understanding of Linux/UNIX systems." -Anton Petukhov "Mark Sobell has written a book as approachable as it is authoritative." -Jeffrey Bianchine, Advocate, Author, Journalist "Excellent reference book, well suited for the sysadmin of a Linux cluster, or the owner of a PC contemplating installing a recent stable Linux. Don't be put off by the daunting heft of the book. Sobell has striven to be as inclusive as possible, in trying to anticipate your system administration needs." -Wes Boudville, Inventor "A Practical Guide to Red Hat(R) Linux(R) is a brilliant book. Thank you, Mark Sobell." -C. Pozrikidis, University of California at San Diego "This book presents the best overview of the Linux operating system that I have found... [It] should be very helpful and understandable no matter what the reader's background: traditional UNIX user, new Linux devotee, or even Windows user. Each topic is presented in a clear, complete fashion and very few assumptions are made about what the reader knows... The book is extremely useful as a reference, as it contains a 70-page glossary of terms and is very well indexed. It is organized in such a way that the reader can focus on simple tasks without having to wade through more advanced topics until they are ready." -Cam Marshall, Marshall Information Service LLC, Member of Front Range UNIX Users Group [FRUUG], Boulder, Colorado "Conclusively, this is THE book to get if you are a new Linux user and you just got into RH/Fedora world. There's no other book that discusses so many different topics and in such depth." -Eugenia Loli-Queru, Editor in Chief, OSNews.com "I currently own one of your books, A Practical Guide to Linux(R). I believe this book is one of the most comprehensive and, as the title says, practical guides to Linux I have ever read. I consider myself a novice and I come back to this book over and over again." -Albert J. Nguyen "Thank you for writing a book to help me get away from Windows XP and to never touch Windows Vista. The book is great; I am learning a lot of new concepts and commands. Linux is definitely getting easier to use." -James Moritz "I am so impressed by how Mark Sobell can approach a complex topic in such an understandable manner. His command examples are especially useful in providing a novice (or even an advanced) administrator with a cookbook on how to accomplish real-world tasks on Linux. He is truly an inspired technical writer!" -George Vish II, Senior Education Consultant, Hewlett-Packard Company "Overall, I think it's a great, comprehensive Ubuntu book that'll be a valuable resource for people of all technical levels." -John Dong, Ubuntu Forum Council Member, Backports Team Leader "The JumpStart sections really offer a quick way to get things up and running, allowing you to dig into the details of the book later." -Scott Mann, Aztek Networks "I would so love to be able to use this book to teach a class about not just Ubuntu or Linux but about computers in general. It is thorough and well written with good illustrations that explain important concepts for computer usage." -Nathan Eckenrode, New York Local Community Team "Ubuntu is gaining popularity at the rate alcohol did during Prohibition, and it's great to see a well-known author write a book on the latest and greatest version. Not only does it contain Ubuntu-specific information, but it also touches on general computer-related topics, which will help the average computer user to better understand what's going on in the background. Great work, Mark!" -Daniel R. Arfsten, Pro/ENGINEER Drafter/Designer "I read a lot of Linux technical information every day, but I'm rarely impressed by tech books. I usually prefer online information sources instead. Mark Sobell's books are a notable exception. They're clearly written, technically accurate, comprehensive, and actually enjoyable to read." -Matthew Miller, Senior Systems Analyst/Administrator, BU Linux Project, Boston University Office of Information Technology "This is well-written, clear, comprehensive information for the Linux user of any type, whether trying Ubuntu on for the first time and wanting to know a little about it, or using the book as a very good reference when doing something more complicated like setting up a server. This book's value goes well beyond its purchase price and it'll make a great addition to the Linux section of your bookshelf." -Linc Fessenden, Host of The LinuxLink TechShow, tllts.org "The author has done a very good job at clarifying such a detail-oriented operating system. I have extensive Unix and Windows experience and this text does an excellent job at bridging the gaps between Linux, Windows, and Unix. I highly recommend this book to both 'newbs' and experienced users. Great job!" -Mark Polczynski, Information Technology Consultant "Your text, A Practical Guide to Ubuntu Linux(R), Third Edition, is a well constructed, informative, superbly written text. You deserve an award for outstanding talent; unfortunately my name is not Pulitzer." -Harrison Donnelly, Physician "When I first started working with Linux just a short ten years or so ago, it was a little more difficult than now to get going... Now, someone new to the community has a vast array of resources available on the web, or if they are inclined to begin with Ubuntu, they can literally find almost every single thing they will need in the single volume of Mark Sobell's A Practical Guide to Ubuntu Linux(R). "I'm sure this sounds a bit like hyperbole. Everything a person would need to know? Obviously not everything, but this book, weighing in at just under 1200 pages, covers so much so thoroughly that there won't be much left out. From install to admin, networking, security, shell scripting, package management, and a host of other topics, it is all there. GUI and command-line tools are covered. There is not really any wasted space or fluff, just a huge amount of information. There are screen shots when appropriate but they do not take up an inordinate amount of space. This book is information-dense." -JR Peck, Editor, GeekBook.org "I have been wanting to make the jump to Linux but did not have the guts to do so-until I saw your familiarly titled A Practical Guide to Red Hat(R) Linux(R) at the bookstore. I picked up a copy and am eagerly looking forward to regaining my freedom." -Carmine Stoffo, Machine and Process Designer to pharmaceutical industry "I am currently reading A Practical Guide to Red Hat(R) Linux(R) and am finally understanding the true power of the command line. I am new to Linux and your book is a treasure." -Juan Gonzalez "Overall, A Practical Guide to Ubuntu Linux(R) by Mark G. Sobell provides all of the information a beginner to intermediate user of Linux would need to be productive. The inclusion of the Live DVD of the Gutsy Gibbon release of Ubuntu makes it easy for the user to test-drive Linux without affecting his installed OS. I have no doubts that you will consider this book money well spent." -Ray Lodato, Slashdot contributor, www.slashdot.orgshow more

Table of contents

Preface xxxvii Chapter 1: Welcome to Linux and Mac OS X 1 The History of UNIX and GNU-Linux 3 What Is So Good About Linux? 6 Overview of Linux 11 Additional Features of Linux 16 Chapter Summary 18 Exercises 18 Part I: The Linux and Mac OS X Operating Systems 21 Chapter 2: Getting Started 23 Conventions Used in This Book 24 Logging In from a Terminal (Emulator) 26 Working from the Command Line 28 su/sudo: Curbing Your Power (root Privileges) 32 Where to Find Documentation 33 More About Logging In and Passwords 42 Chapter Summary 46 Exercises 46 Advanced Exercises 47 Chapter 3: The Utilities 49 Special Characters 50 Basic Utilities 51 Working with Files 53 | (Pipeline): Communicates Between Processes 60 Four More Utilities 61 Compressing and Archiving Files 63 Locating Utilities 68 Displaying User and System Information 70 Communicating with Other Users 74 Email 76 Chapter Summary 76 Exercises 79 Advanced Exercises 80 Chapter 4: The Filesystem 81 The Hierarchical Filesystem 82 Directory Files and Ordinary Files 83 Pathnames 87 Working with Directories 90 Access Permissions 98 ACLs: Access Control Lists 104 Links 109 Chapter Summary 119 Exercises 120 Advanced Exercises 122 Chapter 5: The Shell 125 The Command Line 126 Standard Input and Standard Output 133 Running a Command in the Background 146 Filename Generation/Pathname Expansion 148 Builtins 153 Chapter Summary 153 Exercises 155 Advanced Exercises 156 Part II: The Editors 157 Chapter 6: The vim Editor 159 History 160 Tutorial: Using vim to Create and Edit a File 161 Introduction to vim Features 168 Command Mode: Moving the Cursor 174 Input Mode 178 Command Mode: Deleting and Changing Text 179 Searching and Substituting 183 Miscellaneous Commands 190 Copying, Moving, and Deleting Text 190 Reading and Writing Files 193 Setting Parameters 194 Advanced Editing Techniques 199 Units of Measure 203 Chapter Summary 206 Exercises 211 Advanced Exercises 212 Chapter 7: The emacs Editor 213 History 214 Tutorial: Getting Started with emacs 216 Basic Editing Commands 223 Online Help 229 Advanced Editing 232 Major Modes: Language-Sensitive Editing 246 Customizing emacs 256 More Information 260 Chapter Summary 261 Exercises 269 Advanced Exercises 270 Part III: The Shells 273 Chapter 8: The Bourne Again Shell (bash) 275 Background 276 Startup Files 278 Commands That Are Symbols 281 Redirecting Standard Error 282 Writing and Executing a Simple Shell Script 284 Control Operators: Separate and Group Commands 289 Job Control 294 Manipulating the Directory Stack 297 Parameters and Variables 300 Special Characters 315 Locale 316 Time 320 Processes 323 History 326 Aliases 342 Functions 346 Controlling bash: Features and Options 349 Processing the Command Line 354 Chapter Summary 364 Exercises 366 Advanced Exercises 368 Chapter 9: The TC Shell (tcsh) 369 Shell Scripts 370 Entering and Leaving the TC Shell 371 Features Common to the Bourne Again and TC Shells 373 Redirecting Standard Error 379 Working with the Command Line 380 Variables 385 Control Structures 398 Builtins 407 Chapter Summary 411 Exercises 412 Advanced Exercises 414 Part IV: Programming Tools 415 Chapter 10: Programming the Bourne Again Shell (bash) 417 Control Structures 418 File Descriptors 452 Parameters 458 Variables 467 Builtin Commands 476 Expressions 492 Implicit Command-Line Continuation 499 Shell Programs 500 Chapter Summary 510 Exercises 512 Advanced Exercises 514 Chapter 11: The Perl Scripting Language 517 Introduction to Perl 518 Variables 526 Control Structures 533 Working with Files 542 Sort 546 Subroutines 547 Regular Expressions 550 CPAN Modules 555 Examples 558 Chapter Summary 561 Exercises 562 Advanced Exercises 562 Chapter 12: The Python Programming Language 563 Introduction 564 Scalar Variables, Lists, and Dictionaries 568 Control Structures 574 Reading from and Writing to Files 579 Regular Expressions 583 Defining a Function 584 Using Libraries 585 Lambda Functions 589 List Comprehensions 590 Chapter Summary 591 Exercises 592 Advanced Exercises 592 Chapter 13: The MySQL Database Management System 595 Notes 596 Installing a MySQL Server and Client 599 Client Options 600 Setting Up MySQL 601 Creating a Database 603 Adding a User 604 Examples 605 Chapter Summary 617 Exercises 617 Chapter 14: The AWK Pattern Processing Language 619 Syntax 620 Arguments 620 Options 621 Notes 622 Language Basics 622 Examples 629 Advanced gawk Programming 646 Chapter Summary 651 Exercises 651 Advanced Exercises 652 Chapter 15: The sed Editor 653 Syntax 654 Arguments 654 Options 654 Editor Basics 655 Examples 658 Chapter Summary 669 Exercises 669 Part V: Secure Network Utilities 671 Chapter 16: The rsync Secure Copy Utility 673 Syntax 674 Arguments 674 Options 675 Examples 677 Chapter Summary 684 Exercises 685 Chapter 17: The OpenSSH Secure Communication Utilities 687 Introduction to OpenSSH 688 Running the ssh, scp, and sftp OpenSSH Clients 691 Tunneling/Port Forwarding 706 Chapter Summary 708 Exercises 709 Advanced Exercises 709 Part VI: Command Reference 711 Utilities That Display and Manipulate Files 713 Network Utilities 714 Utilities That Display and Alter Status 715 Utilities That Are Programming Tools 716 Miscellaneous Utilities 716 Standard Multiplicative Suffixes 717 Common Options 718 The sample Utility 718 sample: Brief description of what the utility does 719 aspell: Checks a file for spelling errors 721 at: Executes commands at a specified time 725 busybox: Implements many standard utilities 729 bzip2: Compresses or decompresses files 732 cal: Displays a calendar 734 cat: Joins and displays files 735 cd: Changes to another working directory 737 chgrp: Changes the group associated with a file 739 chmod: Changes the access mode (permissions) of a file 741 chown: Changes the owner of a file and/or the group the file is associated with 746 cmp: Compares two files 748 comm: Compares sorted files 750 configure: Configures source code automatically 752 cp: Copies files 754 cpio: Creates an archive, restores files from an archive, or copies a directory hierarchy 758 crontab: Maintains crontab files 763 cut: Selects characters or fields from input lines 766 date: Displays or sets the system time and date 769 dd: Converts and copies a file 772 df: Displays disk space usage 775 diff: Displays the differences between two text files 777 diskutil: Checks, modifies, and repairs local volumes (OS X) 782 ditto: Copies files and creates and unpacks archives (OS X) 785 dmesg: Displays kernel messages 787 dscl: Displays and manages Directory Service information (OS X) 788 du: Displays information on disk usage by directory hierarchy and/or file 791 echo: Displays a message 794 expand/unexpand: Converts TABs to SPACEs and SPACEs to TABs 796 expr: Evaluates an expression 798 file: Displays the classification of a file 802 find: Finds files based on criteria 804 finger: Displays information about users 810 fmt: Formats text very simply 812 fsck: Checks and repairs a filesystem 814 ftp: Transfers files over a network 819 gawk: Searches for and processes patterns in a file 825 gcc: Compiles C and C++ programs 826 GetFileInfo: Displays file attributes (OS X) 831 grep: Searches for a pattern in files 833 gzip: Compresses or decompresses files 838 head: Displays the beginning of a file 841 join: Joins lines from two files based on a common field 843 kill: Terminates a process by PID 846 killall: Terminates a process by name 848 launchctl: Controls the launchd daemon (OS X) 850 less: Displays text files, one screen at a time 852 ln: Makes a link to a file 856 lpr: Sends files to printers 858 ls: Displays information about one or more files 861 make: Keeps a set of programs current 869 man: Displays documentation for utilities 875 mc: Manages files in a textual environment (aka Midnight Commander) 879 mkdir: Creates a directory 886 mkfs: Creates a filesystem on a device 887 mv: Renames or moves a file 890 nice: Changes the priority of a command 892 nl: Numbers lines from a file 894 nohup: Runs a command that keeps running after you log out 896 od: Dumps the content of a file 897 open: Opens files, directories, and URLs (OS X) 901 otool: Displays object, library, and executable files (OS X) 903 paste: Joins corresponding lines from files 905 pax: Creates an archive, restores files from an archive, or copies a directory hierarchy 907 plutil: Manipulates property list files (OS X) 913 pr: Paginates files for printing 915 printf: Formats string and numeric data 917 ps: Displays process status 921 renice: Changes the priority of a process 925 rm: Removes a file (deletes a link) 926 rmdir: Removes directories 928 rsync: Copies files and directory hierarchies securely over a network 929 scp: Securely copies one or more files to or from a remote system 930 screen: Manages several textual windows 931 sed: Edits a file noninteractively 937 SetFile: Sets file attributes (OS X) 938 sleep: Creates a process that sleeps for a specified interval 940 sort: Sorts and/or merges files 942 split: Divides a file into sections 951 ssh: Securely executes commands on a remote system 953 sshfs/curlftpfs: Mounts a directory on an OpenSSH or FTP server as a local directory 954 stat: Displays information about files 957 strings: Displays strings of printable characters from files 959 stty: Displays or sets terminal parameters 960 sysctl: Displays and alters kernel variables at runtime 964 tail: Displays the last part (tail) of a file 965 tar: Stores or retrieves files to/from an archive file 968 tee: Copies standard input to standard output and one or more files 973 telnet: Connects to a remote computer over a network 974 test: Evaluates an expression 978 top: Dynamically displays process status 981 touch: Creates a file or changes a file's access and/or modification time 985 tr: Replaces specified characters 987 tty: Displays the terminal pathname 990 tune2fs: Changes parameters on an ext2, ext3, or ext4 filesystem 991 umask: Specifies the file-creation permissions mask 994 uniq: Displays unique lines from a file 996 w: Displays information about local system users 998 wc: Displays the number of lines, words, and bytes in one or more files 1000 which: Shows where in PATH a utility is located 1001 who: Displays information about logged-in users 1003 xargs: Converts standard input to command lines 1005 Part VII: Appendixes 1009 Appendix A: Regular Expressions 1011 Characters 1012 Delimiters 1012 Simple Strings 1012 Special Characters 1012 Rules 1015 Bracketing Expressions 1016 The Replacement String 1016 Extended Regular Expressions 1017 Appendix Summary 1019 Appendix B: Help 1021 Solving a Problem 1022 Finding Linux and OS X Related Information 1023 Specifying a Terminal 1024 Appendix C: Keeping the System Up-to-Date 1027 Using yum 1028 Using apt-get 1034 BitTorrent 1038 Appendix D: Mac OS X Notes 1041 Open Directory 1042 Filesystems 1043 Extended Attributes 1044 Activating the Terminal META Key 1049 Startup Files 1050 Remote Logins 1050 Many Utilities Do Not Respect Apple Human Interface Guidelines 1050 Installing Xcode and MacPorts 1050 Mac OS X Implementation of Linux Features 1051 Glossary 1053 File Tree Index 1105 Utility Index 1107 Main Index 1111show more

Rating details

229 ratings
3.97 out of 5 stars
5 38% (87)
4 30% (68)
3 25% (58)
2 6% (13)
1 1% (3)
Book ratings by Goodreads
Goodreads is the world's largest site for readers with over 50 million reviews. We're featuring millions of their reader ratings on our book pages to help you find your new favourite book. Close X