CSE 391 Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.

Slides:



Advertisements
Similar presentations
Learning Unix/Linux Bioinformatics Orientation 2008 Eric Bishop.
Advertisements

Introducing the Command Line CMSC 121 Introduction to UNIX Much of the material in these slides was taken from Dan Hood’s CMSC 121 Lecture Notes.
1 CSE 390a Lecture 2 Exploring Shell Commands, Streams, and Redirection slides created by Marty Stepp, modified by Josh Goodwin
1 CSE 303 Lecture 4 users/groups; permissions; intro to shell scripting read Linux Pocket Guide pp , 25-27, 61-65, , 176 slides created by.
CS 141 Labs are mandatory. Attendance will be taken in each lab. Make account on moodle. Projects will be submitted via moodle.
Introduction to Linux Workshop February Introduction Rob Lane & The HPC Support Team Research Computing Services CUIT.
CSE 390a Editing and Moving Files
Linux environment ● Graphical interface – X-window + window manager ● Text interface – terminal + shell.
Guide to Linux Installation and Administration, 2e1 Chapter 8 Basic Administration Tasks.
Unix Basics Chapter 4.
UNIX command line. In this module you will learn: What is the computer shell What is the command line interface What is the directory tree Some UNIX commands.
Introduction to Unix – CS 21 Lecture 9. Lecture Overview Shell description Shell choices History Aliases Topic review.
PROGRAMMING PROJECT POLICIES AND UNIX INTRO Sal LaMarca CSCI 1302, Fall 2009.
1 CSE 303 Lecture 3 bash shell continued: processes; multi-user systems; combining commands read Linux Pocket Guide pp , , , 118, 122,
1May 16, 2005 Week 2 Lab Agenda Command Line FTP Commands Review More UNIX commands to learn File name expansion - * Introduction of vi.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 2a – A Unix Command Sampler (Courtesy of David Notkin, CSE 303)
Text editing and more basic commands CS 2204 Class meeting 3 *Notes by Doug Bowman and other members of the CS faculty at Virginia Tech. Copyright
introduction to Linux/Unix environment
1 CSE 390a Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
CS 120 Extra: The CS1 Server Tarik Booker CS 120.
Assignprelim.1 Assignment Preliminaries © 2012 B. Wilkinson/Clayton Ferner. Modification date: Jan 16a, 2014.
Review Why do we use protection levels? Why do we use constructors?
Exploring Shell Commands, Streams, and Redirection
introduction to Linux/Unix environment
slides created by Marty Stepp, modified by Josh Goodwin
Getting started with CentOS Linux
Introduction to Shells
CSE 391 Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
introduction to Linux/Unix environment
Linux Commands Help HANDS ON TRAINING Author: Muhammad Laique
introduction to Linux/Unix environment
introduction to Linux/Unix environment
CSE 391 Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
Some Linux Commands.
introduction to Linux/Unix environment
Assignment Preliminaries
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
CSE 390a Lecture 2 Exploring Shell Commands, Streams, and Redirection
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.
CSE 391 Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
slides created by Marty Stepp, modified by Jessica Miller
Web Programming Essentials:
Multi-user systems; remote login; editors; users/groups; permissions
Exploring Shell Commands, Streams, and Redirection
Exploring Shell Commands, Streams, and Redirection
Exploring Shell Commands, Streams, and Redirection
Getting started with CentOS Linux
introduction to Linux/Unix environment
Exploring Shell Commands, Streams, Redirection, and Processes
CSE 390a Lecture 2 Exploring Shell Commands, Streams, and Redirection
CSE 390a Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
slides created by Marty Stepp, modified by Jessica Miller
Intro to shell scripting
CSE 391 Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
introduction to Linux/Unix environment
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.
CSE 390a Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
CSE 390a Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
CSE 391 Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
introduction to Linux/Unix environment
Exploring Shell Commands, Streams, and Redirection
Exploring Shell Commands, Streams, and Redirection
Exploring Shell Commands, Streams, and Redirection
Persistent shell settings; users/groups; permissions
CSE 391 Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller.
Presentation transcript:

CSE 391 Lecture 3 bash shell continued: processes; multi-user systems; remote login; editors slides created by Marty Stepp, modified by Jessica Miller and Ruth Anderson http://www.cs.washington.edu/391/

Lecture summary A bit more on combining commands Processes and basic process management Connecting to remote servers (attu) multi-user environments Text editors

Review: Redirection and Pipes command > filename Write the output of command to filename (>> to append instead) command < filename Use filename as the input stream to command command1 | command2 Use the console output of command1 as the input to command2 command1 ; command2 Run command1 and then run command2 command1 && command2 Run command1, if completed without errors then run command2

Tricky Examples Amongst the top 250 movies in movies.txt, display the third to last movie that contains "The" in the title when movie titles are sorted. The wc command can take multiple files: wc names.txt student.txt Can we use the following to wc on every txt file in the directory? ls *.txt | wc Find the disk space usage of the man program Hints: use which and du... Does which man | du work? Answers posted in lecture_commands.txt after lecture

Command Substitution command1 $(command2) run command2 and pass its console output to command1 as a parameter; best used when command2's output is short (one line) Finish the example! du $(which man)

xargs xargs allows you to repeatedly run a command over a set of lines often used in conjunction with find to process each of a set of files Example: Remove all my .class files. find ~ -name “*.class” | xargs rm Find the disk usage of man using xargs which man | xargs du command description xargs run each line of input as an argument to a specified command Xargs will pass several arguments to the command. You can also use a parameter for xargs to control how many arguments get sent to the command.

Processes process: a program that is running (essentially) when you run commands in a shell, it launches a process for each command Process management is one of the major purposes of an OS PID: 1232 Name: ls PID: 1173 Name: emacs PID: 1343 Name: man PID: 1723 Name: Mozilla PID: 1288 Name: cp

Process commands use kill or killall to stop a runaway process (infinite loop) similar to ^C hotkey, but doesn't require keyboard intervention command description ps or jobs list processes being run by a user; each process has a unique integer id (PID) top show which processes are using CPU/memory; also shows stats about the computer kill terminate a process by PID (sometimes –KILL is needed) killall terminate several processes by name Exercise: Modify your Java program so that it produces infinite output. Compile and run it; your terminal is now stuck in an infinite loop. Find 2 or 3 ways to get out of this loop and stop the program from running.

Background processes On the VM, if you run a graphical program like gedit or emacs from the shell, the shell will lock up waiting for the graphical program to finish instead, run the program in the background, so the shell won't wait: $ emacs homework1.txt & if you forget to use & , suspend emacs by hitting ^Z at the TERMINAL (NOT in emacs), then run bg from the terminal lets play around with an infinite process… command description & (special character) when placed at the end of a command, runs that command in the background ^Z (hotkey) suspends the currently running process fg , bg resumes the currently suspended process in either the foreground or background

Connecting with ssh Linux/Unix are built to be used in multi-user environments where several users are logged in to the same machine at the same time users can be logged in either locally or via the network You can connect to other Linux/Unix servers with ssh once connected, you can run commands on the remote server other users might also be connected; you can interact with them can connect even from other operating systems command description ssh open a shell on a remote server there are actually several physical computers that respond as attu (to spread the load), so if you want to be on the same physical machine as your friend, you may need to connect to attu2, attu3, etc.

The CSE attu server attu : The UW CSE department's shared Linux server (only available to CSE majors) Connect to attu by typing: ssh attu.cs.washington.edu (or ssh username@attu.cs.washington.edu if your Linux system's user name is different than your CSE user name) Students with EE accounts may use their departmental servers All UW students may use UW Linux servers. (how to activate your account) Note: There are several computers that respond as attu (to spread load), so if you want to be on the same machine as your friend, you may need to connect to attu2, attu3, etc. Connect to the server attu.cs.washington.edu using SSH. See who else is logged in to the server. Send one of those people a message.

Multi-user environments Exercise : Connect to attu, and send somebody else a message. command description whoami outputs your username passwd changes your password hostname outputs this computer's name/address w or finger see info about people logged in to this server write send a message to another logged in user

Network commands command description links or lynx text-only web browsers (really!) ssh connect to a remote server sftp or scp transfer files to/from a remote server (after starting sftp, use get and put commands) wget download from a URL to a file curl download from a URL and output to console alpine, mail text-only email programs

Text editors you cannot run graphical programs when connected to attu (yet) so if you want to edit documents, you need to use a text-only editor most advanced Unix/Linux users learn emacs or vi I would recommend you try to pick up the basics of one of these. Your choice! command description pico or nano simple editors emacs More advanced text editor vi or vim

Aliases Example: When I type q , I want it to log me out of my shell. alias name=command must wrap the command in quotes if it contains spaces Do not put spaces on either side of the = Example: When I type q , I want it to log me out of my shell. Example: When I type ll , I want it to list all files in long format. alias q=exit alias ll="ls -la" Exercise : Make it so that typing q quits out of a shell. Exercise : Make it so that typing woman runs man. Exercise : Make it so that typing attu connects me to attu. command description alias assigns a pseudonym to a command Answers posted in lecture_commands.txt after lecture

Mounting remote files An alternate usage model to remotely connecting to servers is mounting remote directories and files and work on them locally once mounted, use remote directories and files as if they were local command description sshfs mount and interact with remote directories and files

Mounting cse homedir on VM For CSE majors: you can access your home dir on attu from the VM as follows: Create a directory on the VM in your home directory, called csehomedir: cd  mkdir csehomedir Now to use that directory as a “link” to your CSE files on your VM: sshfs username@attu: ~/csehomedir OR sshfs username@attu.cs.washington.edu:/homes/iws/username ~/csehomedir/ It is a good idea to back up your files from your VM regularly. Actually keep your files on your CSE home directory Regularly move files from your VM to another location If you need to get a fresh VM image, you can save the files from your old VM using this procedure: "My VM Seems Broken. How Do I Recover?"

Remote editing Gnome's file browser and gedit text editor are capable of opening files on a remote server and editing them from your computer press Ctrl-L to type in a network location to open

My VM is Broken! If your VM is misbehaving, first try a reboot of the VM and also of your machine. If that doesn’t work, often it is easiest just to get a fresh VM image and start over (maybe you saved the .zip file you downloaded previously?) BEFORE you delete your current copy of the VM, you can save the files from your current copy of the VM using this procedure: See "My VM Seems Broken. How Do I Recover?“ here: https://https://www.cs.washington.edu/lab/software/linuxhomevm

Basic Emacs Commands C- = control key M- = meta/alt key read a file into Emacs: C-x C-f save a file back to disk: C-x C-s exit Emacs permanently: C-x C-c search forward: C-s search backward: C-r scroll to next screen: C-v scroll to previous screen: M-v Undo: C-x u entity to move over backward forward character C-b C-f word M-b M-f line C-p C-n go to line beginning/end C-a C-e go to buffer beginning/end M-< M-> https://courses.cs.washington.edu/courses/cse391/17au/handouts/emacs.pdf

Basic Vim Commands :w Write the current file :wq Write the current file and exit. :q! Quit without writing To change into insert mode: i or a Use escape to exit search forward /, repeat the search backwards: N Basic movement: h l k j character left, right; line up, down (also arrow keys) b w word/token left, right ge e end of word/token left, right 0 $ jump to first/last character on the line x delete u undo https://wiki.gentoo.org/wiki/Vim/Guide and http://tnerual.eriogerg.free.fr/vimqrc.pdf