Mastering Modern Linux
Second Edition
Mastering Modern Linux
Second Edition
Paul S. Wang
Kent State University, Kent, Ohio
CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742
2018 by Taylor & Francis Group, LLC
CRC Press is an imprint of Taylor & Francis Group, an Informa business
No claim to original U.S. Government works
Printed on acid-free paper
Version Date: 20180420
International Standard Book Number-13: 978-0-8153-8098-6 (Paperback)
International Standard Book Number-13: 978-0-8153-8111-2 (Hardback)
This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have been made to publish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials or the consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained. If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint.
Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers.
For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that provides licenses and registration for a variety of users. For organizations that have been granted a photocopy license by the CCC, a separate system of payment has been arranged.
Trademark Notice : Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to infringe.
Library of Congress Cataloging-in-Publication Data
Names: Wang, Paul S., author.
Title: Mastering modern Linux / Paul S. Wang.
Other titles: Mastering Linux
Description: Second edition. | Boca Raton : Taylor & Francis, CRC Press,
2018. | Revised edition of: Mastering Linux / Paul S. Wang. 2011. |
Includes bibliographical references and index.
Identifiers: LCCN 2018008944| ISBN 9780815380986 (pbk. : alk. paper) | ISBN
9780815381112 (hardback)
Subjects: LCSH: Linux. | Operating systems (Computers)
Classification: LCC QA76.774.L46 W36 2018 | DDC 005.4/46--dc23
LC record available at https://lccn.loc.gov/2018008944
Visit the Taylor & Francis Web site at
http://www.taylorandfrancis.com
and the CRC Press Web site at
http://www.crcpress.com
Contents
Linux, a great success story of open-source, community-developed software, is increasingly used in Web and application servers, software development platforms, personal workstations, and research machines. In the past few years, Linux has improved its user interface, added many useful and powerful apps, and greatly expanded its home and business user base.
In computer science and engineering departments, youll find Linux systems in classrooms, programming labs, and computer centersnot just because Linux is free but also because it offers a rich computing environment for teaching and learning.
From its beginning in 1991, and with help from the GNU Project, Linux has evolved quickly and has brought new powers and conveniences to users. Competency on Linux will be important for any serious computer professional.
This book is a revised edition of Mastering Linux (late 2010), which was very well received and had the most wonderful review from ACM Computing Reviews :
This authoritative and exceptionally well-constructed book has my highest recommendation. It will repay careful and recursive study.Computing Reviews, August 2011
The new edition has a new title, Mastering Modern Linux , yet retained much of the good materials while updating them, adding new topics and removing old ones.
This book provides a comprehensive and up-to-date guide to Linux concepts, usage, and programming. This text will help you master Linux with a well-selected set of topics. Hands-on practice is encouraged; it is the only way to gain familiarity with an operating system. A primer gets you started quickly. The chapters lead you from user interfaces, commands and filters, Shell scripting, the file system, networking, basic system administration, and Web hosting, to C-level programming and kernel system calls.
There are many examples and complete programs ready to download and run. A summary and exercises of varying degrees of difficulty can be found at the end of each chapter. A companion website provides appendices, information updates, an example code package, and other resources for instructors as well as students. See page 353 for details.
User Friendly and Comprehensive
There is both breadth and depth in this books presentation. Chapter contains a Linux primer to get the new user started as quickly as possible, without awkwardness or confusion. Being able to play and experiment with the system adds to the users interest and motivation to learn more. Once introduced and comfortable, the user is guided through a well-selected set of topics covering the type of detailed material appropriate for a one-semester course at the advanced undergraduate or beginning graduate level.
The first part of the textbook covers interactive use of Linux via the Graphical User Interface (GUI) and the Command-Line Interface (CLI), including comprehensive treatment of the Gnome desktop and the Bash Shell. Using different apps, commands and filters, building pipelines, and matching patterns with regular expressions are major focuses.
Next come Bash scripting, file system structure, organization, and usage, which bring us to about the middle of the book.
The next chapters present networking, the Internet and the Web, data encryption, and basic system admin, as well as Web hosting. The Linux Apache MySQL/MariaDB PHP (LAMP) Web hosting combination is presented in depth. Such practical knowledge can be valuable for many Linux programmers.
In Chapters , attention is then turned to C-level programming. Because the Linux kernel and most of its applications are implemented in C, it is considered the native language of Linux. In-depth knowledge of Linux requires understanding the Standard C Libraries and the system calls which form the interface to the Linux kernel. Topics covered include the C compiler, preprocessor, debugger, I/O, file manipulation, process control, inter-process communication, and networking. Many complete example programs, written in the standard ISO C99, are provided.
Appendices are kept on the books website (mml.sofpower.com). They supply useful supplemental information for students, including text editing and how to set up Linux learning environments on their own Windows or Mac computers.
Flexible Usage
This book is for people who wish to learn Linux and to become good at using it and writing programs in it. The book does not assume prior knowledge of Linux or UNIX, but has the depth to satisfy even those with Linux experience.