1 / 32

Part 1: Basic Commands/Utilities

Part 1: Basic Commands/Utilities. Final Exam. May 17 th 3:00~4:00pm S-3-143 Same types of questions as in mid -term. Basic Utilities. ls , cat, echo ls -l e.g., regular file or directory, permissions, file size ls -a cat file1 file2 file3 … echo “hello world” > file

gefjun
Download Presentation

Part 1: Basic Commands/Utilities

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Part 1: Basic Commands/Utilities

  2. Final Exam • May 17th • 3:00~4:00pm • S-3-143 • Same types of questions as in mid-term

  3. Basic Utilities • ls, cat, echo • ls -l • e.g., regular file or directory, permissions, file size • ls -a • cat file1 file2 file3 … • echo “hello world” > file • echo $VAR, echo hello* • echo –n “hello world”

  4. Basic Utilities • more, less, head, tail • head -5 file • tail -f file • pwd, cd • cp, mv, rm, mkdir, rmdir • ‘-i’ option • ‘-r’ option: • rm –r dir1, cp –r dir1 dir2 • rmdiran empty directory

  5. Basic Utilities • sort, wc, grep, |(pipe) • wc -l file, wc –c file • grep “keyword” file • grep -v • sort linux | head -5 • command1 | command2 • command1 > temp • command2 < temp • rm temp

  6. Part 2: File Systems

  7. Filename and Path • Hierarchical tree structure • Absolute path name • ls /home/it244/it244 • Relative path name • cd /home/it244 • ls it244 • ‘.’ ‘..’ ‘~’ • ‘*’ ‘?’ • echo hello*, echo ./.?a*

  8. Access Permissions • r, w, x (chmod) • chmoda+rw file • chmod a=rx file • chmod 644 file • Execute permission of a directory • A directory is a table of files (filename:meta) • Executable means searchable

  9. Access Permissions • Operations on book/book1 • ls book/book1 • book ( x ) • cat book/book1 • book1 ( r ), book ( x ) • rm book/book1 • book ( xw ), book1 ( w )

  10. Links • Hard link and soft link • Hard link cannot refer to a directory • Soft link can point to a nonexistent file $ ln -s hello hello.sl $ rm hello $ echo “new” > hello $ cat hello.sl new

  11. Part 3: Bash/Shell Scripting

  12. Execute Commands • Foreground and background jobs • command &, CTRL+Z • difference between a suspended job and a background job, PID • jobs, ps, kill, bg, fg • Group commands • (cmd1; cmd2; cmd3)

  13. Redirection • Standard input, output, error output • cat file1 file2 > out 2>err • cat file1 file2 &> out • cat file1 file2 > out 2>&1 • Redirected output will not be displayed on the screen.

  14. Variables • System variables • $PATH, $PWD, $HOME • User defined variables • VAR=hello • export VAR=hello • declare; declare -x

  15. Variables • New shell for executing a script $cat script1 echo $VAR VAR=new echo $VAR $VAR=old;./script1;echo $VAR $VAR=new ./script1;echo $VAR $export VAR=old;./script1;echo $VAR

  16. Expansion/ Quote • Types • echo hello*; echo ~ • echo $VAR • echo $(pwd) • echo $((1+1)) • VAR=hello* • echo $VAR • Single quote suspends all expansions

  17. Control Flow if..then..fi, if..then..else..fi, while test-command do commands done for loop-index in argument-list do commands done

  18. Control Flow • Conditions • test $# -eq 0 • [ -f “$1” ] • [ condition1 –a condition2 ], -o • [[ && ]], (( || )) • Exit status $? • if [ read <file $line ] …

  19. Expressions • Arithmetic • a=5;b=3;echo $((a%b)) • echo $((a+++3)) • Logic • cat abc && ls • echo $?

  20. Control Flow • Boolean operators

  21. Control Flow • Boolean operators • Short circuiting $((a=2, b=2)) $((a++ || b--)) $echo $a $b $((--a>2 || b++)) $echo $a $b

  22. Control Flow • Boolean operators • Short circuiting (($#==2)) || echo "Usage:require two arguments” mkdir $1 && cp file1 $1

  23. Variables • Arguments • $1-$n, $0, $#, $@ • set set a 123 hello echo $1 $2 $3 set $(date) • shift echo $@ shift echo $@ • $$, $?

  24. File I/O • exec exec 3 < infile exec 4 > outfile • read • read -p “Enter sth: ” input1 input2 • read <&3 line, read –u3 line • Determine the end of a file • $line has no value • ‘read’ returns false • Write to a file • echo “abc” >&4

  25. Expressions • Arithmetic • a=5;b=3;echo $((a%b)) • echo $((a+++3)) • Logic • cat abc && ls • echo $?

  26. Part 4: Perl/AWK/SED

  27. Run a Program • Perl • perl simple.pl • perl –e ‘print “hi\n”’ • AWK • gawk -f simple file • gawk ‘/chevy/ {print}’ file • SED • sed -f simple file • sed ‘/line/ p’ file Stand-alone scripts #!/usr/bin/perl #!/usr/bin/gawk -f #!/bin/sed -f

  28. Patterns • AWK • awk ‘/chevy/ {print}’ cars • gawk ‘$1 ~ /h/’ cars • gawk ‘$5 > 2000 && $5<6000’ cars • SED • sed -n ‘3,6 p’ lines • sed–n ‘s/line/sentence/w temp’ lines

  29. File I/O in perl • Read open ($infile, '<', “filename”); while ($line=<$infile>){ print $line; } $line=<> • Write $filename="./log"; open($outfile,'>',$filename); print $outfile "Hello world!\n";

  30. Questions If we execute the following sequence of commands in order, what are the values of variables a, b and the output AFTER executing each line? $((a=1, b=2)) $echo $((a-- + b++))a=_0_, b=_3_, output=_3_ $echo $((a++ + ++b)) a=_1_, b=_4_, output=_4_

  31. Questions • Read the following shell script and explain its function. $ cat script1 #!/bin/bash count=0 for i in * then ((count++)) fi echo $count

  32. Questions • Read the following shell script and answer the questions $cat script1 #!/bin/bash exec 3<$1 exec 4<$2 exec 5>$3 while read line <&3 do echo “$line” >&5 done while read line <&4 do echo “$line” >&5 done • Q1. The script requires 3 filenames as arguments, e.g., • ./script1 file1 file2 file3 • Which files are input files and which are output files? • Q2. Inside the while-loop, why variable “$line” has to • be enclosed by double quotes?

More Related