Difference between revisions of "Tutorial: A bit of Bash"

From dftwiki3
Jump to: navigation, search
(Challenge 2)
Line 171: Line 171:
 
<br />
 
<br />
 
<br />
 
<br />
 
+
<!--
 
=Creating a bash script=
 
=Creating a bash script=
  
Line 291: Line 291:
 
  for i in 10 1 10 3 3 5 6 3 2 4 7 9 6 6 6 5 ; do echo $i ; done | sort -n | uniq
 
  for i in 10 1 10 3 3 5 6 3 2 4 7 9 6 6 6 5 ; do echo $i ; done | sort -n | uniq
 
   
 
   
 
+
-->
 
<br />
 
<br />
 
<br />
 
<br />

Revision as of 11:10, 13 September 2015

--D. Thiebaut (talk) 11:03, 26 November 2013 (EST)


A quick review of some useful Bash commands that can be used on the command line, or that can be included in bash scripts





Exploration


A good reference on using a shell can be found here: http://linuxcommand.org/.

Here's a recommended path through this on-line tutorial; just click on each link, read the description, and try it out on the linux server (aurora.smith.edu very likely) that you are connected to.




Challenge 1

QuestionMark1.jpg


  • Create three files in your Linux account.
  • The first one should be called file1.txt and reside in the path ~/labs/lab1/. Its permissions should be "rwx------". It should contain the text "Mary had a little lamb."
  • The second one should be called hello.asm and reside in ~/hws/hw1/. Its permissions should be "rw-rw-rw-". It should contain the "hello world" program we saw in class.
  • The third should be the executable version of hello.asm, and reside in the ~/ directory.







wc and grep


  • Get a copy of James Joyce's Ulysses book by running this command:
 wget https://www.gutenberg.org/files/4300/4300.txt
  • Verify that you have a file called 4300.txt in your directory.
  • Rename the file ulysses.txt, which is a more appropriate name.
  • Let's view just the top 30 lines of the file:
 head -30 ulysses.txt

  • and the last 30 lines:
 tail -30 ulysses.txt

  • How about the 15th to the 20th line? Think about how you would do that...
 head -20 ulysses.txt | tail -5

  • Let's get some statistics on the text file:
 wc ulysses.txt
  • you will observe that the file contains over 30,000 lines, over 250,000 words, and over 1.5 million characters.
  • If you had wanted just the number of lines, you could have typed
 wc -l ulysses.txt



Challenge 2

QuestionMark2.jpg


  • Use the man pages for wc and figure out how to make it tell you the length (in character) of the longest line in the file. (To get the man page for a command, use man wc at the prompt.)













  • Let's find all the lines in the book that contains the name of the main protagonist, Muliligan:"
 grep Mulligan ulysses.txt
  • Let's count the number of lines that contain "Mulligan":
 grep Mulligan ulysses.txt | wc -l
  • Let's count how many "Buck Mulligan" appear together:
grep "Buck Mulligan" ulysses.txt | wc -l

Note that we use double-quotes to indicate that the string "Buck Mulligan" should be treated as a block.




Challenge 3

QuestionMark3.jpg
  • How many lines contain "Buck" but not "Mulligan"?
  • How many lines contain "Mulligan" but not "Buck"?








File System



Challenge 4

QuestionMark4.jpg


  • Create 3 text files in your account.
  • The first one should be called file1.txt and reside in the path ~/labs/lab1/. Its permissions should be "rwx------". It should contain the text "Mary had a little lamb."
  • The second one should be called file2.txt, and be a copy of the previous file1.txt, and it should reside in your home directory, and have privileges "rw-rw-rw-"
  • The third one should be called .file3.txt and reside in ~/hws/hw1/. Its permissions should be "rw-------". It should contain the string "I am a hidden file!"




Challenge 5

QuestionMark5.jpg


  • Create 3 text files in your account.
  • The first one should be called file1.txt and reside in the path ~/labs/lab1/. Its permissions should be "rwx------". It should contain the text "Mary had a little lamb."
  • The second one should be called hello.asm and reside in ~/hws/hw1/. Its permissions should be "rw-rw-rw-". It should contain the "hello world" program we saw in class.
  • The third should be the executable version of hello.asm, and reside in the ~/ directory.