0% found this document useful (0 votes)
4 views18 pages

Shell Tutorial

shell tutorial

Uploaded by

kortjohn3
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views18 pages

Shell Tutorial

shell tutorial

Uploaded by

kortjohn3
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Shell / Python Tutorial

CS279 – Autumn 2017


Rishi Bedi
Shell (== console, == terminal, == command prompt)
You might also hear it called “bash,” which is the most widely used shell program

macOS Windows 10+ Linux

Launch Terminal Windows Subsystem for Linux Launch Terminal


Getting around in Bash
cd Change working directory cd ~/some/path
Use man pages to find
ls List all files in working directory ls -ltrh more information about a
command:
pwd Print current working directory pwd
man ls
mkdir Create a new directory mkdir /new/dir

cat Dump out the contents of a file cat [Link]

less Preview file contents less [Link]

cp Copy a file cp /path/to/old/file /path/to/new/file

mv Move a file mv /path/to/old/file /path/to/new/file


You can do a lot in bash
● In principle, the bash scripting language is a complete programming language
● It’s especially useful for things like...
○ Plumbing (connecting the inputs & outputs of different console programs)
○ System administration
○ Automating simple command line tasks
○ Quickly examining and editing text files
● I wouldn’t use it for…
○ Anything else
Running Python from the Shell
● There are many ways to run Python
● The most “bare-bones” is to run the python command in your shell
bash-3.2$ python
Python 2.7.5 (v2.7.5:ab05e7dd2788, May 13 2013, 13:18:45)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Note that we are running


Python 2.7, not Python 3
This is a new kind of shell!
To avoid confusion, we’ll call it the Python interpreter
We can’t run bash commands in it, but we can execute Python statements
Running a Python Script
● The interpreter is neat, especially when you’re learning Python, but we also
want to be able to save programs and run them in their entirety
● Many ways to write Python programs – the easiest is to use any text editor

Sublime Text Atom Vim**

● Save your Python program, we use the “.py” extension by convention


● In your bash shell, run this command, filling in the path to your program:
python /path/to/your/[Link]
Python Fundamentals
Python slides adapted from Sam Redmond’s CS41

● Comments
● Variables
● Output
● Strings
● Lists
● Control Flow
● Functions
Comments

In Python In Java / C++


# Single line comments start with a '#' // single line comment
"""
/* multi line
Multiline strings can be written
using three "s, and are often used comment
as function and module comments */
"""

adapted from Sam Redmond’s CS41


Variables

In Python In Java / C++


x = 5 int x = 5;
y = x + 7 int y = x + 7;
z = 3.14 double z = 3.14;

name = “Rishi” String name = “Rishi”; // Java


string name(“Rishi”); // C++

1 == 1 # => True 1 == 1 # => true


5 > 10 # => False 5 > 10 # => false

True and False # => False true && false # => false
not False # => True !(false) # => true

adapted from Sam Redmond’s CS41


Output

In Python In Java / C++


x = 5 // Java:
print x int x = 5;
[Link](x);
name = ‘Rishi’
print name + str(x) String name = “Rishi”;
[Link](name + x);

// C++:
int x = 5;
cout << x << endl;

string name(“Rishi”);
cout << name << x << endl;
adapted from Sam Redmond’s CS41
Strings
greeting = 'Hello'
group = "world"

greeting + ' ' + group + '!' # => 'Hello world!'

0 1 2 3 4 5 6 s[0] = ‘p’
s[4] = ‘e’
s = 'protein' s[7]
s[0:3]
s[4:]
=
=
=
BAD!
‘pro’
‘ein’

adapted from Sam Redmond’s CS41


Lists
# Create a new list
empty = []
letters = ['a', 'b', 'c', 'd']
numbers = [2, 3, 5]

# Lists can contain elements of different types


mixed = [4, 5, "seconds"]

# Append elements to the end of a list


[Link](7) # numbers == [2, 3, 5, 7]
[Link](11) # numbers == [2, 3, 5, 7, 11]

adapted from Sam Redmond’s CS41


Lists
# Access elements at a particular index
numbers[0] # => 2
numbers[-1] # => 11 There are many more data
structures!
# You can also slice lists - the same rules apply
dicts are like Maps/HashMaps
letters[:3] # => ['a', 'b', 'c'] sets are like Sets
numbers[1:-1] # => [3, 5, 7] tuples are immutable lists

# Lists really can contain anything - even other lists!


x = [letters, numbers]
x # => [['a', 'b', 'c', 'd'], [2, 3, 5, 7, 11]]
x[0] # => ['a', 'b', 'c', 'd']
x[0][1] # => 'b'
x[1][2:] # => [5, 7, 11]
adapted from Sam Redmond’s CS41
if Statements
if some_condition: ● Each condition should evaluate to a
print 'Some condition holds' boolean
elif other_condition: ● Zero or more elifs
print 'Other condition holds' ● else is optional
else: ● Python has no switch statement!
_ _ _ _ print 'Neither condition holds'
or
__

Whitespace matters, unlike in C++ or Java!

adapted from Sam Redmond’s CS41


for loops Strings and lists, amongst other
things, are iterables
for item in iterable:
do_something(item)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

for idx in range(0,10):


do_something(item)

for idx in range(0,10): You can nest loops like this


for item in iterable: however you’d like
do_something(idx, item)
adapted from Sam Redmond’s CS41
Functions
def fn_name(param1, param2): def isEven(num):
value = do_something() if num % 2 == 0:
return value return True
else:
● “def” starts a function definition
return False
● return is optional
○ if either return or its value are myNum = 100
omitted, implicitly returns None if isEven(myNum):
● Parameters have no explicit types
print str(myNum) + “ is even”

adapted from Sam Redmond’s CS41


Calling Library Functions
● Many functions are built-in to Python
● Some are available in the standard installation, but their modules need to be
imported
● In general, look for built-ins / library functions before writing your own
● Example: square root function

import math
[Link](25)
More Python Resources
● Stanford Python (CS41)
● Codecademy Python
● Official Documentation
● LearnXinYminutes

You might also like