Exploring Shell Commands, Streams, and Redirection

Slides:



Advertisements
Similar presentations
การใช้ระบบปฏิบัติการ UNIX พื้นฐาน บทที่ 4 File Manipulation วิบูลย์ วราสิทธิชัย นักวิชาการคอมพิวเตอร์ ศูนย์คอมพิวเตอร์ ม. สงขลานครินทร์ เวอร์ชั่น 1 วันที่
Advertisements

CIS 118 – Intro to UNIX Shells 1. 2 What is a shell? Bourne shell – Developed by Steve Bourne at AT&T Korn shell – Developed by David Korn at AT&T C-shell.
NETW-240 Shells Last Update Copyright Kenneth M. Chipps Ph.D. 1.
David Notkin Autumn 2009 CSE303 Lecture 3 Dictionary.com, “shell," in Dictionary.com Unabridged. Source location: Random House, Inc.
1 CSE 390a Lecture 2 Exploring Shell Commands, Streams, and Redirection slides created by Marty Stepp, modified by Josh Goodwin
CSE 303 Lecture 2 Introduction to bash shell
Guide To UNIX Using Linux Third Edition
Introduction to Unix – CS 21 Lecture 5. Lecture Overview Lab Review Useful commands that will illustrate today’s lecture Streams of input and output File.
CS 141 Labs are mandatory. Attendance will be taken in each lab. Make account on moodle. Projects will be submitted via moodle.
Chapter 4: UNIX File Processing Input and Output.
COMP1070/2002/lec4/H.Melikian COMP1070 Lecture #5  Files and directories in UNIX  Various types of files  File attributes  Notion of pathname  Commands.
Linux environment ● Graphical interface – X-window + window manager ● Text interface – terminal + shell.
3 File Processing Mauro Jaskelioff. Introduction More UNIX commands for handling files Regular Expressions and Searching files Redirection and pipes Bash.
Agenda User Profile File (.profile) –Keyword Shell Variables Linux (Unix) filters –Purpose –Commands: grep, sort, awk cut, tr, wc, spell.
File Processing. Introduction More UNIX commands for handling files Regular Expressions and Searching files Redirection and pipes Bash facilities.
Chapter Four UNIX File Processing. 2 Lesson A Extracting Information from Files.
Guide To UNIX Using Linux Fourth Edition
Unix Basics Chapter 4.
BIF703 stdin, stdout, stderr Redirection. stdin, stdout, stderr Recall the Unix philosophy “do one thing well”. Unix has over one thousand commands (utilities)
– Introduction to the Shell 10/1/2015 Introduction to the Shell – Session Introduction to the Shell – Session 2 · Permissions · Users.
The UNIX Shell. The Shell Program that constantly runs at terminal after a user has logged in. Prompts the user and waits for user input. Interprets command.
System Administration Introduction to Unix Session 2 – Fri 02 Nov 2007 Reference:  chapter 1, The Unix Programming Environment, Kernighan & Pike, ISBN.
Module 6 – Redirections, Pipes and Power Tools.. STDin 0 STDout 1 STDerr 2 Redirections.
Lesson 2-Touring Essential Programs. Overview Development of UNIX and Linux. Commands to execute utilities. Communicating instructions to the shell. Navigating.
1 CSE 303 Lecture 3 bash shell continued: processes; multi-user systems; combining commands read Linux Pocket Guide pp , , , 118, 122,
Chapter Four I/O Redirection1 System Programming Shell Operators.
Week 9 - Nov 7, Week 9 Agenda I/O redirection I/O redirection pipe pipe tee tee.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 2a – A Unix Command Sampler (Courtesy of David Notkin, CSE 303)
Linux Commands C151 Multi-User Operating Systems.
Lecture 02 File and File system. Topics Describe the layout of a Linux file system Display and set paths Describe the most important files, including.
Lecture 1: Introduction, Basic UNIX Advanced Programming Techniques.
1 CSE 390a Lecture 2 Exploring Shell Commands, Streams, and Redirection slides created by Marty Stepp, modified by Jessica Miller & Ruth Anderson
File Processing. Introduction More UNIX commands for handling files Regular Expressions and Searching files Redirection and pipes Bash facilities.
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).
Exploring Shell Commands, Streams, and Redirection
Linux 201 Training Module Linux Adv File Mgmt.
Lesson 5-Exploring Utilities
Some Linux Commands.
C151 Multi-User Operating Systems
The Command Prompt Commands are the way to “do things” in Unix
The Linux Operating System
stdin, stdout, stderr Redirection
Exploring Shell Commands, Streams, and Redirection
CSE 374 Programming Concepts & Tools
CSE 303 Concepts and Tools for Software Development
Exploring Shell Commands, Streams, and Redirection
Tutorial of Unix Command & shell scriptS 5027
Introduction to UNIX.
Tutorial of Unix Command & shell scriptS 5027
CSE 390a Lecture 2 Exploring Shell Commands, Streams, and Redirection
Introduction to Linux Week 0 - Thursday.
CSE 390a Lecture 1 introduction to Linux/Unix environment
CSE 390a Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
Tutorial of Unix Command & shell scriptS 5027
Exploring Shell Commands, Streams, and Redirection
Chapter Four UNIX File Processing.
Exploring Shell Commands, Streams, and Redirection
Exploring Shell Commands, Streams, and Redirection
Exploring Shell Commands, Streams, Redirection, and Processes
CSE 390a Lecture 2 Exploring Shell Commands, Streams, and Redirection
CSE 303 Concepts and Tools for Software Development
CSE 390a Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
Module 6 Working with Files and Directories
introduction to Linux/Unix environment
Exploring Shell Commands, Streams, and Redirection
Exploring Shell Commands, Streams, and Redirection
A shell is a user interface.
Exploring Shell Commands, Streams, and Redirection
January 26th, 2004 Class Meeting 2
introduction to Linux/Unix environment
Presentation transcript:

Exploring Shell Commands, Streams, and Redirection CSE 391 Lecture 2 Exploring Shell Commands, Streams, and Redirection slides created by Marty Stepp, modified by Jessica Miller, Ruth Anderson, and Brett Wortzman http://www.cs.washington.edu/391/

Lecture summary Unix file system structure Commands for file manipulation, examination, searching Java compilation: using parameters, input, and streams Redirection and Pipes

Unix file system directory description / root directory that contains all others (drives do not have letters in Unix) /bin programs /dev hardware devices /etc system configuration files /etc/passwd stores user info /etc/shadow stores passwords /home users' home directories /media, /mnt, ... drives and removable disks that have been "mounted" for use on this computer /proc currently running processes (programs) /tmp, /var temporary files /usr user-installed programs

File examination Let’s explore what we can do here… command description cat output a file's contents on the console more or less output a file's contents, one page at a time head, tail output the first or last few lines of a file wc count words, characters, and lines in a file

Searching and sorting grep is actually a very powerful search tool; more later... Exercise : Display the contents of the text file names.txt in alphabetical order. command description grep search a file for a given string (useful options: –v and –i) sort convert an input into a sorted output by lines uniq strip duplicate (adjacent) lines find search for files within a given directory locate search for files on the entire system which shows the complete path of a command

Links hard link: Two names for the same file. $ ln orig other_name the above command links other_name as a duplicate name for orig if one is modified, the other is too; follows file moves soft (symbolic) link: A reference to another existing file. $ ln -s orig_filename nickname the above command creates a reference nickname to the file orig_filename nickname can be used as though it were orig_filename but if nickname is deleted, orig_filename will be unaffected command description ln create a link to a file unlink remove a link to a file

^KEY means hold Ctrl and press KEY Keyboard shortcuts ^KEY means hold Ctrl and press KEY key description Up arrow repeat previous commands ^R command name search through your history for a command Home/End or ^A/^E move to start/end of current line " quotes surround multi-word arguments and arguments containing special characters * "wildcard" , matches any files; can be used as a prefix, suffix, or partial name Tab auto-completes a partially typed file/command name ^C or ^\ terminates the currently running process ^D end of input; used when a program is reading input from your keyboard and you are finished typing ^S don't use this; hides all output until ^Q is pressed

Shell History The shell remembers all the commands you’ve entered Can access them with the history command Can execute the most recent matching command with ! Ex: !less will search backwards until it finds a command that starts with less, and re-execute the entire command line Can execute also execute a command by number with ! 165 19:36 ls 166 19:37 cat test.txt 167 19:38 pwd 168 19:40 history Ex: !166 will execute: “cat test.txt”

Programming Exercise : Write/compile/run a program that prints "Hello, world!" $ javac Hello.java $ java Hello Hello, world! $ command description javac ClassName.java compile a Java program java ClassName run a Java program python, perl, ruby, gcc, sml, ... compile or run programs in various other languages

Programming Creating parameter input to programs String[] args holds any provided parameters Exercise: modify hello world to use parameters Parameters not the same as the input stream! Exercise: modify hello world to also use a Scanner to grab input Let’s revisit the standard streams…

Streams in the Shell Stdin, stdout, stderr Example: grep hi These default to the console Some commands that expect an input stream will thus read from the console if you don’t tell it otherwise. Example: grep hi What happens? Why? We can change the default streams to something other than the console via redirection.

Output redirection command > filename run command and write its output to filename instead of to console; think of it like an arrow going from the command to the file... if the file already exists, it will be overwritten (be careful) >> appends rather than overwriting, if the file already exists command > /dev/null suppresses the output of the command Example: ls -l > myfiles.txt Example: java Foo >> Foo_output.txt Example: cat > somefile.txt (writes console input to the file until you press ^D) Exercise : List the vegetables in veggies.txt in alphabetical order in the file sortedVeggies.txt.

Input redirection command < filename run command and read its input from filename instead of console whenever the program prompts the user to enter input (such as reading from a Scanner in Java), it will instead read the input from a file some commands don't use this; they accept a file name as an argument again note that this affects user input, not parameters useful with commands that can process standard input or files: e.g. grep, more, head, tail, wc, sort, uniq, write Example: java Guess < input.txt Exercise : run HelloWorld taking input from names.txt Exercise : run it again and write the output to output.txt

Combining commands command1 | command2 run command1 and send its console output as input to command2 very similar to the following sequence: command1 > filename command2 < filename rm filename Examples: grep Simpson names.txt | less sort names.txt | uniq Exercise : How many types of beans are listed in veggies.txt?

Misusing pipes and cat Why doesn't this work to compile all Java programs? ls *.java | javac Misuse of cat bad: cat input_filename | command good: command < input_filename bad: cat filename | more good: more filename bad: command | cat good: command

Commands in sequence command1 ; command2 command1 && command2 run command1 and then command2 afterward (they are not linked) command1 && command2 run command1, and if it succeeds, runs command2 afterward will not run command2 if any error occurs during the running of 1 Example: Make directory songs and move my files into it. mkdir songs && mv *.mp3 songs