CIT 383: Administrative Scripting

Slides:



Advertisements
Similar presentations
The Unix File System. What are the three parts of every file on a Unix filesystem? And where is each stored? Filename - stored in directories Inode -
Advertisements

5 Basic utilities When a user logs in to the Linux operating system the directory that they will start in is their home directory. Most users will have.
UNIX file systems Learning Objectives: 1. To understand the basics of file systems 2. To understand the hierarchical structure in Unix file system 3. To.
1 CSE 390a Lecture 2 Exploring Shell Commands, Streams, and Redirection slides created by Marty Stepp, modified by Josh Goodwin
Linux+ Guide to Linux Certification, Second Edition
Linux Linux File System.
Guide To UNIX Using Linux Third Edition
UNIX Files and Security Software Tools. Slide 2 File Systems l What is a file system? A means of organizing information on the computer. A file system.
CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting RSS.
7/15/2015B.RamamurthyPage 1 File System B. Ramamurthy.
Getting Started with Linux Linux System Administration Permissions.
1 THE UNIX FILE SYSTEM By Chokechai Chuensukanant ID COSC 513 Operating System.
Lesson 7-Creating and Changing Directories. Overview Using directories to create order. Managing files in directories. Using pathnames to manage files.
Files & Directories Objectives –to be able to describe and use the Unix file system model and concepts Contents –directory structure –file system concepts.
1 Lecture 2 Working with Files and Directories COP 3344 Introduction to UNIX.
Chapter Four UNIX File Processing. 2 Lesson A Extracting Information from Files.
Guide To UNIX Using Linux Fourth Edition
CIT 383: Administrative Scripting
Linux+ Guide to Linux Certification, Second Edition
Managing Files CSCI N321 – System and Network Administration Copyright © 2000, 2011 by the Trustees of Indiana University except as noted.
The UNIX File System. The UNIX File A file is a container for storing information and data. Filename limited to 255 characters. Can’t contain / or NULL.
CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Writing Methods.
INTRODUCTION TO LINUX Jacob Chan. GNU/Linux Consists of Linux kernel, GNU utilities, and open source and commercial applications Works like Unix –Multi-user.
File Permission and Access. Module 6 File Permission and Access ♦ Introduction Linux is a multi-user system where users can assign different access permission.
CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Methods and Hashes.
Unix/Linux cs3353. The Shell The shell is a program that acts as the interface between the user and the kernel. –The shell is fully programmable and will.
Chapter 4: File Security & Permissions Also: Hard and Soft Links, see p77-80 &
Linux+ Guide to Linux Certification, Third Edition
Linux+ Guide to Linux Certification, Third Edition
PacNOG 6: Nadi, Fiji UNIX ™/ /Linux Permissions Hervey Allen Network Startup Resource Center.
1 © 2001 John Urrutia. All rights reserved. Chapter 4 The LINUX Filesystem.
CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Regular Expressions.
Managing Files CSCI N321 – System and Network Administration Copyright © 2000, 2007 by the Trustees of Indiana University except as noted.
CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Numbers.
Linux Filesystem WeeSan Lee. Roadmap Disk Partitions The Filesystem Filesystem Mouting & Umounting File Tree File Type File Permission.
1 Lecture 2 Working with Files and Directories COP 3353 Introduction to UNIX.
CIT 383: Administrative ScriptingSlide #1 CIT 383: Administrative Scripting Directories.
1 Introduction to Unix. 2 What is UNIX?  UNIX is an Operating System (OS).  An operating system is a control program that helps the user communicate.
A Brief Overview of Unix Brandon Bohrer. Topics What is Unix? – Quick introduction Documentation – Where to get it, how to use it Text Editors – Know.
UNIX file systems Learning Objectives: 1. To understand the basics of file systems 2. To understand the hierarchical structure in Unix file system 3. To.
The Unix File System R Bigelow. The UNIX File System The file system refers to the way in which UNIX implements files and directories. The UNIX file system.
File Management commands cat Cat command cat cal.txt cat command displays the contents of a file here cal.txt on screen (or standard out).
ORAFACT The Linux File System. ORAFACT Filesystem Support Support for dozens of filesystem types including: Minix, ext2, MS-DOS, UMSDOS, VFAT, NTFS, NFS,
Linux Filesystem Management
Privileges: who can control what
Module X (Unix/Linux Password Security)
Lecture 2 Working with Files and Directories
CIT 383: Administrative Scripting
CIT 383: Administrative Scripting
Privileges: who can control what
CIT 383: Administrative Scripting
CIT 383: Administrative Scripting
CSE 390a Lecture 2 Exploring Shell Commands, Streams, and Redirection
File System B. Ramamurthy B.Ramamurthy 11/27/2018.
CIT 383: Administrative Scripting
Security and File Permission
Chapter Four UNIX File Processing.
Exploring Shell Commands, Streams, and Redirection
CIT 383: Administrative Scripting
CSE 390a Lecture 2 Exploring Shell Commands, Streams, and Redirection
CIT 383: Administrative Scripting
CIT 383: Administrative Scripting
CIT 383: Administrative Scripting
Software I: Utilities and Internals
CIT 383: Administrative Scripting
CIT 383: Administrative Scripting
Chapter 4: The Linux Filesystem
Exploring Shell Commands, Streams, and Redirection
January 26th, 2004 Class Meeting 2
Presentation transcript:

CIT 383: Administrative Scripting Files and Directories CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Topics Creating File Objects Reading Files Writing Files Directories Inodes File Management Command Line Arguments CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Files File class constructor arguments Pathname Access type a: append a+: read-write (starts at end of file if file exists) r: read r+: read-write w: write (truncate file to zero length) w+: read-write (truncate file to zero length) Examples pwfile = File.new(‘/etc/passwd’, ‘r’) usrfile = File.new(‘userlist’, ‘w’) logfile = File.new(‘/var/log/mylog’, ‘a’) CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Reading Files getc: reads a single character at current pos gets: reads a single line at current pos seek: changes position in file tell: returns position in file read: reads entire file as a string readlines: reads file as an array of lines CIT 383: Administrative Scripting

Reading a file line by line File class each_line iterator fh.each_line do |line| # do stuff with line here end While loop while line = fh.gets CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Writing Files putc: writes a single character at current pos print: writes a single line at current pos puts: writes line at current pos with newline seek: changes position in file tell: returns position in file write: writes to file, returns bytes written CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Line Endings Getting rid of line end characters line_without_ending = line.chomp OR line.chomp! Outputting line ending characters puts inserts a line ending print does not add a line ending CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Global File Objects $stdin Default object for getc and gets $stdout Default object for puts $stderr CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Closing Files After reading/writing to a file, close it. file.close What if an error kills program before close? Use open instead of new to auto close File.open(pathname,’r’) do |fh| fh.gets end CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Data Munging Data munging: to convert data from one format to another format, possibly sorting, summarizing, or otherwise modifying it in the process. CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Skipping lines Skipping blank lines file.each_line do |line| next if line == "\n" puts line end Skipping lines beginning with a character next if line[0] == ?# CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Delimited Data pwfields = [:username, :password, :uid, :gid, :gcos, :homedir, :shell] pwline = ‘root:x:0:0:root:/root:/bin/sh’ pwitems = pwline.split(‘:’) pwhash = Hash.new i = 0 while i < pwitems.size pwhash[pwfields[i]] = pwitems[i] i = i + 1 end CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Directories Directory: table of name to inode mappings $ ls –i / 2272929 bin 65409 boot 49057 cdrom 2260 dev 850305 etc 2 home 2371041 initrd 49075 initrd.img 49058 initrd.img.old 948417 lib CIT 383: Administrative Scripting

Accessing Directories thisdir = Dir.new(pathname) absolutedir = Dir.new(‘/home/smi/dir1’) relativedir = Dir.new(‘smi/dir1’) currentdir = Dir.new(‘.’) uponedir = Dir.new(‘..’) Methods entries: returns array of filenames each: iterates over each file in directory CIT 383: Administrative Scripting

CIT 383: Administrative Scripting Inodes An inode is a disk structure that contains Size of the file in bytes. Device ID that identifies device where file is located. UID of the file’s owner. GID of the file’s group. File mode (permissions.) Timestamps ctime: inode change time mtime: time file content was last modified atime: time file content was last accessed Reference count that identifies how many directory entries point to inode. Pointers to disk blocks containing file data. CIT 383: Administrative Scripting

Hard and Symbolic Links A hard link is A directory entry that points to an inode. Deleting a file with rm just removes the directory entry. File data is not removed until all links removed. A symbolic link is A file that contains a pathname. Deleting the link does not affect the file. Deleting a file with rm invalidates the symbolic link but does not remove it from filesystem. CIT 383: Administrative Scripting

Basic File Permissions Three sets of permissions: owner, group, world Each set represented by an octal digit. Each permission (r,w,x) one bit in octal digit. Special permissions: setuid, setgid, sticky. ex: chmod 0644 file u: rw, g: r, o: r ex: chmod 0711 bin u: rwx, g: x, o: x 4 read setuid 2 write setgid 1 execute sticky CIT 383: Administrative Scripting

CIT 383: Administrative Scripting File::Stat The File::Stat class allows access to inodes stat = File::Stat.new(pathname) OR file = File.new(pathname) stat = file.stat Methods size: size of file in bytes uid: UID of file owner gid: GID of file owner mode: file permissions in octal mtime,ctime,atime: file timestamps CIT 383: Administrative Scripting

Querying File Attributes directory? – Is file a directory? symlink? – Is file a symbolic link? file? – Is file an ordinary file (not a directory, device, or symlink)? readable? – Is file readable by me? writable? – Is file writable by me? executable? – Is file executable by me? setuid? – Is file setuid? setgid? – Is file setgid? sticky? – Is the sticky bit set? CIT 383: Administrative Scripting

CIT 383: Administrative Scripting File Management The FileUtils class provides methods that emulate the functionality of UNIX commands: chmod chown cp ln mkdir mv rm rmdir CIT 383: Administrative Scripting

Command Line Arguments Using command line arguments ./test.rb arg1 arg2 arg3 Accessing command line arguments Ruby provides them via the ARGV array: ARGV.each do |arg| puts arg end CIT 383: Administrative Scripting

CIT 383: Administrative Scripting References Michael Fitzgerald, Learning Ruby, O’Reilly, 2008. David Flanagan and Yukihiro Matsumoto, The Ruby Programming Language, O’Reilly, 2008. Hal Fulton, The Ruby Way, 2nd edition, Addison- Wesley, 2007. Robert C. Martin, Clean Code, Prentice Hall, 2008. Dave Thomas with Chad Fowler and Andy Hunt, Programming Ruby, 2nd edition, Pragmatic Programmers, 2005. CIT 383: Administrative Scripting