Linux Networks

Total Page:16

File Type:pdf, Size:1020Kb

Linux Networks Jose L. Muñoz Juanjo Alins Jorge Mata Oscar Esparza Carlos H. Gañán UPC Telematics Department Linux Networks Contents I Linux Essentials 9 1 Introduction to Unix/Linux 11 2 Introduction to Unix/Linux 13 2.1 Introduction to OS . 13 2.2 Resources Management . 13 2.3 User Interaction . 15 2.4 Implementations and Distros . 16 3 Processes 17 4 Processes 19 4.1 The man command . 19 4.2 Working with the terminal . 19 4.3 Listing processes . 19 4.4 Scripts . 21 4.5 Running in foreground/background . 22 4.6 Signals . 22 4.7 Job Control . 23 4.8 Running multiple commands . 24 4.9 Extra . 25 4.9.1 *Priorities: nice . 25 4.9.2 *Trap: catching signals in scripts . 25 4.9.3 *The terminal and its associated signals . 25 4.9.4 *States of a process . 26 4.9.5 Command Summary . 26 4.10 Practices . 26 5 Filesystem 29 6 Filesystem 31 6.1 Introduction . 31 6.2 Basic types of files . 31 6.3 Hierarchical File Systems . 32 6.4 The path . 33 6.5 Directories . 34 6.6 Files . 35 6.7 File content . 35 6.8 File expansions and quoting . 36 6.9 Links . 36 6.10 Text Files . 37 6.11 Commands and applications for text . 38 6.12 Unix Filesystem permission system . 39 6.12.1 Introduction . 39 6.12.2 Permissions . 39 6.12.3 Change permissions (chmod) . 40 6.12.4 Default permissions . 41 6.13 File System Mounting . 42 6.13.1 Disk usage . 43 6.14 Extra . 44 6.14.1 *inodes . 44 6.14.2 *A file system inside a regular disk file . 45 6.15 Command summary . 46 6.16 Practices . 46 7 File Descriptors 49 8 File Descriptors 51 8.1 File Descriptors . 51 8.2 Redirecting Output . 52 8.3 Redirecting Input . 53 8.4 Unnamed Pipes . 54 8.5 Named Pipes . 55 8.6 Dash . 56 8.7 Process Substitution . 56 8.8 Files in Bash . 57 8.9 Extra . 59 8.9.1 Regular Expressions . 59 8.9.2 tr . 60 8.9.3 find . 61 8.9.4 *xargs . 61 8.10 Command summary . 62 8.11 Practices . 62 II Linux Virtualization 65 9 Introduction to Virtualization 67 10 Introduction to Virtualization 69 10.1 Introduction . 69 10.2 Types of virtualization . 69 10.3 What is UML . 70 10.4 Practical UML . 70 10.5 Update and Install Software in the UML system . 71 10.6 Problems and solutions . 72 10.7 Networking with UML . 72 10.7.1 Virtual switch . 72 10.7.2 Connecting the Host with the UML guests . 73 10.8 Extra . 73 10.8.1 *Building your UML kernel and filesystem . 73 11 Virtual Network UML (VNUML) 77 12 Virtual Network UML (VNUML) 79 12.1 Introduction . 79 12.2 Preliminaries: XML . 79 12.2.1 Introduction . 79 12.2.2 XML Comments . 80 12.2.3 Escaping . 80 12.2.4 Well-formed XML . ..
Recommended publications
  • A Multiplatform Pseudo Terminal
    A Multi-Platform Pseudo Terminal API Project Report Submitted in Partial Fulfillment for the Masters' Degree in Computer Science By Qutaiba Mahmoud Supervised By Dr. Clinton Jeffery ABSTRACT This project is the construction of a pseudo-terminal API, which will provide a pseudo-terminal interface access to interactive programs. The API is aimed at developing an extension to the Unicon language to allow Unicon programs to easily utilize applications that require user interaction via a terminal. A pseudo-terminal is a pair of virtual devices that provide a bidirectional communication channel. This project was constructed to enable an enhancement to a collaborative virtual environment, because it will allow external tools such to be utilized within the same environment. In general the purpose of this API is to allow the UNICON runtime system to act as the user via the terminal which is provided by the API, the terminal is in turn connected to a client process such as a compiler, debugger, or an editor. It can also be viewed as a way for the UNICON environment to control and customize the input and output of external programs. Table of Contents: 1. Introduction 1.1 Pseudo Terminals 1.2 Other Terminals 1.3 Relation To Other Pseudo Terminal Applications. 2. Methodology 2.1 Pseudo Terminal API Function Description 3. Results 3.1 UNIX Implementation 3.2 Windows Implementation 4. Conclusion 5. Recommendations 6. References Acknowledgments I would like to thank my advisor, Dr. Clinton Jeffery, for his support, patience and understanding. Dr. Jeffery has always been prompt in delivering and sharing his knowledge and in providing his assistance.
    [Show full text]
  • Chapter 1 Introducing Python
    3 Chapter 1 Introducing Python 1.1: Introduction Python is a programming language that is both simple and powerful. For those who have struggled with learning programming languages in the past, this may come as a pleasant surprise. This chapter describes some of the main features of Python and its use as a programming language to write scripts for ArcGIS. The logic and struc- ture of this book and the accompanying exercises is described, followed by some examples of how Python is used. The final part of this chapter intro- duces Python editors that make it easier to write and organize your code. 1.2: Exploring the features of Python Python has a number of features that make it the programming language of choice for working with ArcGIS. Among them: It’s simple and easy to learn: Python is easy to learn compared with other highly structured programming languages like C++ or Visual Basic. The syntax is simple, which gives you more time to focus on solving problems than having to learn the language itself. It’s free and open source: Python is free and open source software ( FOSS ). You can freely distribute copies of the software, read the source code, make changes to it, and use pieces of it in new free programs. One of the reasons Python works so well is that it has been created, and is constantly being improved, by an active and dedicated user community. The FOSS nature of Python makes it possible for Esri to distribute Python with ArcGIS software. It’s cross platform: Python is supported on different platforms, includ- ing Windows, Mac, Linux, and many others.
    [Show full text]
  • Introduction to Shell Programming Using Bash Part I
    Introduction to shell programming using bash Part I Deniz Savas and Michael Griffiths 2005-2011 Corporate Information and Computing Services The University of Sheffield Email [email protected] [email protected] Presentation Outline • Introduction • Why use shell programs • Basics of shell programming • Using variables and parameters • User Input during shell script execution • Arithmetical operations on shell variables • Aliases • Debugging shell scripts • References Introduction • What is ‘shell’ ? • Why write shell programs? • Types of shell What is ‘shell’ ? • Provides an Interface to the UNIX Operating System • It is a command interpreter – Built on top of the kernel – Enables users to run services provided by the UNIX OS • In its simplest form a series of commands in a file is a shell program that saves having to retype commands to perform common tasks. • Shell provides a secure interface between the user and the ‘kernel’ of the operating system. Why write shell programs? • Run tasks customised for different systems. Variety of environment variables such as the operating system version and type can be detected within a script and necessary action taken to enable correct operation of a program. • Create the primary user interface for a variety of programming tasks. For example- to start up a package with a selection of options. • Write programs for controlling the routinely performed jobs run on a system. For example- to take backups when the system is idle. • Write job scripts for submission to a job-scheduler such as the sun- grid-engine. For example- to run your own programs in batch mode. Types of Unix shells • sh Bourne Shell (Original Shell) (Steven Bourne of AT&T) • csh C-Shell (C-like Syntax)(Bill Joy of Univ.
    [Show full text]
  • UNIX System Services Z/OS Version 1 Release 7 Implementation
    Front cover UNIX System Services z/OS Version 1 Release 7 Implementation z/OS UNIX overview z/OS UNIX setup z/OS UNIX usage Paul Rogers Theodore Antoff Patrick Bruinsma Paul-Robert Hering Lutz Kühner Neil O’Connor Lívio Sousa ibm.com/redbooks International Technical Support Organization UNIX System Services z/OS Version 1 Release 7 Implementation March 2006 SG24-7035-01 Note: Before using this information and the product it supports, read the information in “Notices” on page xiii. Second Edition (March 2006) This edition applies to Version 1 Release 7 of z/OS (5637-A01), and Version 1, Release 7 of z/OS.e (5655-G52), and to all subsequent releases and modifications until otherwise indicated in new editions. © Copyright International Business Machines Corporation 2003, 2006. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Notices . xiii Trademarks . xiv Preface . .xv The team that wrote this redbook. .xv Become a published author . xvi Comments welcome. xvii Chapter 1. UNIX overview. 1 1.1 UNIX fundamentals . 2 1.1.1 UNIX objectives . 2 1.1.2 What people like about UNIX . 2 1.1.3 What people don’t like about UNIX . 3 1.1.4 UNIX operating system . 3 1.1.5 UNIX file system . 4 1.1.6 Parameter files . 6 1.1.7 Daemons. 6 1.1.8 Accessing UNIX . 6 1.1.9 UNIX standards. 7 1.1.10 MVS and UNIX functional comparison . 8 1.2 z/OS UNIX System Services fundamentals .
    [Show full text]
  • Mengenal Sistim Operasi *BSD
    Mengenal Sistim Operasi *BSD Ada banyak sekali tulisan-tulisan yang membahas tentang BSD, baik tulisan mengenai sejarah, system administrasi, sampai penggunaan BSD kepada end-user sebagai desktop. Tulisan ini memperkenalkan BSD sebagai alternatif lain dari Linux untuk memenuhi kebutuhan akan UNIX-like operating system di Indonesia. Dalam tulisan ini pula, dibahas mengenai beberapa hal yang membedakan antara Linux dan BSD, namun tidak memutuskan mana yang paling baik, karena untuk menentukan mana operating system yang paling baik digunakan adalah Anda sendiri. Daftar Isi 1. Sejarah 2. Distribusi Varian BSD 3. Model Pengembangan 4. Integrasi System 5. Software-software di BSD 6. System Administrasi 7. File System 8. Lain-lain 9. Kesimpulan Sejarah Hampir semua orang telah mendengar Linux saat ini. Namun apa itu BSD? BSD adalah singkatan dari Berkeley Software Distribution. BSD pertama kali dibangun dan dikembangkan oleh Computer System Research Group (CSRG) di University of California at Berkeley (UCB), BSD pertama kali keluar pada akhir 1977 sebagai paket tambahan dan patch dari AT&T UNIX version 6, yang mana waktu itu beroperasi pada mesin PDP-11 minicomputer. BSD pada akhirnya banyak memberikan kontribusi berharga pada pengembangan UNIX secara umum. Ada banyak fitur yang pertama kali diperkenalkan oleh BSD dan beberapa diadopsi dari AT&T dan vendor-vendor lainnya. BSD dibuat, dikembangkan, dan digunakan secara BEBAS sebagai perlawanan terhadap lisensi UNIX yang dimiliki oleh AT&T dan oleh karena itu BSD mempunyai lisensi tersendiri yang memungkinkan setiap orang bebas melakukan pengembangan, dan menggunakan source code BSD. Pada tahun 1993, 4.4BSD dirilis sebagai sebuah Operating System yang utuh. Untuk sejarah lengkap BSD di CSRG, mulai sejarah dari jaman kuda, motivasi orang-orang yang pertama kali mengerjakannya, sampai perseteruan lisensi dan hak cipta dengan AT&T, saya mereferensikan Anda untuk membaca tulisan yang dibuat oleh Kirk McKusick, “Twenty Years of Berkeley Unix“.
    [Show full text]
  • Linux Shell Scripting Cookbook Second Edition
    Linux Shell Scripting Cookbook Second Edition Over 110 practical recipes to solve real-world shell problems, guaranteed to make you wonder how you ever lived without them Shantanu Tushar Sarath Lakshman BIRMINGHAM - MUMBAI Linux Shell Scripting Cookbook Second Edition Copyright © 2013 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: January 2011 Second edition: May 2013 Production Reference: 1140513 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78216-274-2 www.packtpub.com Cover Image by Parag Kadam ([email protected]) Credits Authors Project Coordinator Shantanu Tushar Shiksha Chaturvedi Sarath Lakshman Proofreader Reviewers Linda Morris Rajeshwari K. John C. Kennedy Indexer Hemangini Bari Anil Kumar Sudhendu Kumar Production Coordinator Aravind SV Shantanu Zagade Acquisition Editor Cover Work Kartikey Pandey Shantanu Zagade Lead Technical Editor Ankita Shashi Technical Editors Jalasha D'costa Amit Ramadas Lubna Shaikh About the Authors Shantanu Tushar is an advanced GNU/Linux user since his college days.
    [Show full text]
  • Linux Shell Scripting Tutorial V2.0
    Linux Shell Scripting Tutorial v2.0 Written by Vivek Gite <[email protected]> and Edited By Various Contributors PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Mon, 31 May 2010 07:27:26 CET Contents Articles Linux Shell Scripting Tutorial - A Beginner's handbook:About 1 Chapter 1: Quick Introduction to Linux 4 What Is Linux 4 Who created Linux 5 Where can I download Linux 6 How do I Install Linux 6 Linux usage in everyday life 7 What is Linux Kernel 7 What is Linux Shell 8 Unix philosophy 11 But how do you use the shell 12 What is a Shell Script or shell scripting 13 Why shell scripting 14 Chapter 1 Challenges 16 Chapter 2: Getting Started With Shell Programming 17 The bash shell 17 Shell commands 19 The role of shells in the Linux environment 21 Other standard shells 23 Hello, World! Tutorial 25 Shebang 27 Shell Comments 29 Setting up permissions on a script 30 Execute a script 31 Debug a script 32 Chapter 2 Challenges 33 Chapter 3:The Shell Variables and Environment 34 Variables in shell 34 Assign values to shell variables 38 Default shell variables value 40 Rules for Naming variable name 41 Display the value of shell variables 42 Quoting 46 The export statement 49 Unset shell and environment variables 50 Getting User Input Via Keyboard 50 Perform arithmetic operations 54 Create an integer variable 56 Create the constants variable 57 Bash variable existence check 58 Customize the bash shell environments 59 Recalling command history 63 Path name expansion 65 Create and use aliases 67 The tilde expansion 69 Startup scripts 70 Using aliases 72 Changing bash prompt 73 Setting shell options 77 Setting system wide shell options 82 Chapter 3 Challenges 83 Chapter 4: Conditionals Execution (Decision Making) 84 Bash structured language constructs 84 Test command 86 If structures to execute code based on a condition 87 If.
    [Show full text]
  • Learning the Bash Shell, 3Rd Edition
    1 Learning the bash Shell, 3rd Edition Table of Contents 2 Preface bash Versions Summary of bash Features Intended Audience Code Examples Chapter Summary Conventions Used in This Handbook We'd Like to Hear from You Using Code Examples Safari Enabled Acknowledgments for the First Edition Acknowledgments for the Second Edition Acknowledgments for the Third Edition 1. bash Basics 3 1.1. What Is a Shell? 1.2. Scope of This Book 1.3. History of UNIX Shells 1.3.1. The Bourne Again Shell 1.3.2. Features of bash 1.4. Getting bash 1.5. Interactive Shell Use 1.5.1. Commands, Arguments, and Options 1.6. Files 1.6.1. Directories 1.6.2. Filenames, Wildcards, and Pathname Expansion 1.6.3. Brace Expansion 1.7. Input and Output 1.7.1. Standard I/O 1.7.2. I/O Redirection 1.7.3. Pipelines 1.8. Background Jobs 1.8.1. Background I/O 1.8.2. Background Jobs and Priorities 1.9. Special Characters and Quoting 1.9.1. Quoting 1.9.2. Backslash-Escaping 1.9.3. Quoting Quotation Marks 1.9.4. Continuing Lines 1.9.5. Control Keys 4 1.10. Help 2. Command-Line Editing 2.1. Enabling Command-Line Editing 2.2. The History List 2.3. emacs Editing Mode 2.3.1. Basic Commands 2.3.2. Word Commands 2.3.3. Line Commands 2.3.4. Moving Around in the History List 2.3.5. Textual Completion 2.3.6. Miscellaneous Commands 2.4. vi Editing Mode 2.4.1.
    [Show full text]
  • Script Programming with Perl
    Script Programming with Perl 15-123 Systems Skills in C and Unix Scripting Languages • Many routine programming tasks require custom designed solutions, environments and approaches – Extracting data from a roster file • Scripting languages are ideal for tasks that do not require a “high level” compiled language solution – Some argue that this is the real way to learn programming – No need to worry about static typing • Scripts are widely used as backend processing languages for web based applications – Authenticate passwords – Extract data from a database – Create dynamic web pages Popular Scripting Languages • JavaScript – Client side processing based on a built in browser interpreter • PHP – Server side processing • Python – Object oriented, interpreted, data structures, dynamic typing, dynamic binding, rapid application development, binding other programming components • Perl – Also you can call it an “ interpreted ” language (more later) Perl • An interpreted scripting language – Practical extraction and Report Language – Developed as a tool for easy text manipulation and report generation • Why Perl – Easy scripting with strings and regex – Files and Processes • Standard on Unix • Free download for other platforms What’s good for Perl? • Scripting common tasks • Tasks that are too heavy for the shell • Too complicated (or short lived) for C First Perl Program #! usr/bin/perl –w print (“hello world \n”); • How does this work? – Load the interpreter and Execute the program • perl hello.pl An interpreted language • Program instructions
    [Show full text]
  • Common Desktop Environment: Desktop Kornshell User's Guide
    Common Desktop Environment: Desktop KornShell User’s Guide Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 U.S.A. Part No: 805-3917–10 October 1998 Copyright 1998 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California 94303-4900 U.S.A. All rights reserved. This product or document is protected by copyright and distributed under licenses restricting its use, copying, distribution, and decompilation. No part of this product or document may be reproduced in any form by any means without prior written authorization of Sun and its licensors, if any. Third-party software, including font technology, is copyrighted and licensed from Sun suppliers. Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. Sun, Sun Microsystems, the Sun logo, SunDocs, Java, the Java Coffee Cup logo, and Solaris are trademarks, registered trademarks, or service marks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. The OPEN LOOK and SunTM Graphical User Interface was developed by Sun Microsystems, Inc. for its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching and developing the concept of visual or graphical user interfaces for the computer industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User Interface, which license also covers Sun’s licensees who implement OPEN LOOK GUIs and otherwise comply with Sun’s written license agreements.
    [Show full text]
  • 1.5 Declaring Pre-Tasks
    Invoke Release Jul 09, 2021 Contents 1 Getting started 3 1.1 Getting started..............................................3 2 The invoke CLI tool 9 2.1 inv[oke] core usage..........................................9 3 Concepts 15 3.1 Configuration............................................... 15 3.2 Invoking tasks.............................................. 22 3.3 Using Invoke as a library......................................... 30 3.4 Loading collections........................................... 34 3.5 Constructing namespaces........................................ 35 3.6 Testing Invoke-using codebases..................................... 42 3.7 Automatically responding to program output.............................. 46 4 API 49 4.1 __init__ ................................................ 49 4.2 collection .............................................. 50 4.3 config ................................................. 52 4.4 context ................................................ 58 4.5 exceptions .............................................. 63 4.6 executor ................................................ 66 4.7 loader ................................................. 68 4.8 parser ................................................. 69 4.9 program ................................................ 72 4.10 runners ................................................ 76 4.11 tasks .................................................. 87 4.12 terminals ............................................... 89 4.13 util ..................................................
    [Show full text]
  • Basic UNIX Processes and Shells
    Basic UNIX Processes and Shells Shell CPU ls Kernel pico Disk NIC httpd Basic UNIX Processes and Shells Processes Processes are tasks run by you or the OS. Processes can be: ● shells ● commands ● programs ● daemons ● scripts Basic UNIX Processes and Shells Shells Processes operate in the context of a shell. The shell is a command interpreter which: • Interprets built-in characters, variables and commands • Passes the results on to the kernel The kernel is the lowest level of software running. It controls access to all hardware in the computer. Basic UNIX Processes and Shells Shells Types of shells: • /bin/sh ± Bourne shell • /bin/csh ± C shell • /bin/tcsh - Enhanced C shell • /bin/bash ± Bourne ªagainº shell • /bin/zsh ± Z shell • /bin/ksh ± Korn shell Basic UNIX Processes and Shells Shell Scripts Shell scripts are files which contain commands to be interpreted and executed by a shell. A shell is its own programming environment. Shells contain: • Variables • Loops • Conditional statements • Input and Output • Built-in commands • Ability to write functions Basic UNIX Processes and Shells Shell Scripts Specifying the shell to be used: On the first line of the file: ● Implicitly blank line ± Bourne shell # in column 1 ± C shell ● Explicitly #!/bin/sh ± Bourne shell #!/bin/csh ± C shell Basic UNIX Processes and Shells Exercise Which shell are you using? # echo $SHELL (Don©t worry about what these mean, we©ll come back to them later) Basic UNIX An Interlude How to be ªCoolº All UNIX people pronounce EVERYTHING. If you don©t you aren©t cool. Examples: • ! - bang • # - pound • awk ± awk as in ªawkwardº • grep ± grrrrrrr ep • chmod ± chaaa mod • chown ± chaa own • www ± wu wu wu Basic UNIX Processes and Shells The echo Command The echo command and the echo variable are very useful for debugging scripts.
    [Show full text]