<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://rockhopper.monmouth.edu/cs/jchung/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://rockhopper.monmouth.edu/cs/jchung/feed.php">
        <title>Joe Chung&lt;br&gt;Monmouth U. Homepage - cs370</title>
        <description></description>
        <link>http://rockhopper.monmouth.edu/cs/jchung/</link>
        <image rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/_media/wiki/logo.png" />
       <dc:date>2026-05-12T02:22:19+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_command_line_option_handling?rev=1686686125"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_file_network_and_version_utilities?rev=1718693324"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_introduction_unix_fundamentals?rev=1716413161"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_reading_lines_from_files?rev=1506434564"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_regular_expressions?rev=1686018302"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_shell_scripting?rev=1717107886"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_shell_scripts_and_user_interfaces?rev=1718746948"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_subshells_and_parallel_processing?rev=1719261969"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_text_processing_utilities?rev=1718051102"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_unix_shells_and_shell_scripting?rev=1716928374"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_assignments?rev=1718307401"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_projects?rev=1720335985"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_reading?rev=1226950077"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/fortune2png?rev=1414523084"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/leet_script_q_and_a?rev=1413160651"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/makeuserids_github_setup?rev=1415127732"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/names2userids_script_q_and_a?rev=1414806767"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/print?rev=1415127744"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/robots?rev=1252610745"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/shrinkprint_script_q_and_a?rev=1412615502"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/start?rev=1513689704"/>
                <rdf:li rdf:resource="http://rockhopper.monmouth.edu/cs/jchung/cs370/ytplay_script_q_and_a?rev=1418868811"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://rockhopper.monmouth.edu/cs/jchung/_media/wiki/logo.png">
        <title>Joe Chung<br>Monmouth U. Homepage</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/</link>
        <url>http://rockhopper.monmouth.edu/cs/jchung/_media/wiki/logo.png</url>
    </image>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_command_line_option_handling?rev=1686686125">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-13T19:55:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Handling Command Line Options (getopts)</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_command_line_option_handling?rev=1686686125</link>
        <description>Handling Command Line Options (getopts)

Most Unix command line utilities we have looked at provide multiple command line options. Some of them, such as tar allow you to flexibly combine command line options to modify command behavior in multiple ways at once.</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_file_network_and_version_utilities?rev=1718693324">
        <dc:format>text/html</dc:format>
        <dc:date>2024-06-18T06:48:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>File, Network and Revision Control Utilities</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_file_network_and_version_utilities?rev=1718693324</link>
        <description>File, Network and Revision Control Utilities

----------

File Utilities

----------

Batch processing

find

	*  find files/directories/named pipes/etc.
	*  See examples here.
		*  -exec option allows running a command on the find results.
			*  Not everything is possible with</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_introduction_unix_fundamentals?rev=1716413161">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-22T21:26:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Introduction, UNIX Fundamentals</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_introduction_unix_fundamentals?rev=1716413161</link>
        <description>Introduction, UNIX Fundamentals

----------

Accessing Your UNIX Account

	*  HH 310 (Linux/Mac Lab), HH 305 (Mac Lab)
	*  Remote access via Internet or LAN
		*  UNIX servers (Linux)
			*  rockhopper.monmouth.edu
			*  plato.monmouth.edu

		*  UNIX lab machines (Linux)</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_reading_lines_from_files?rev=1506434564">
        <dc:format>text/html</dc:format>
        <dc:date>2017-09-26T14:02:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Reading Lines From Files</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_reading_lines_from_files?rev=1506434564</link>
        <description>Reading Lines From Files

----------

Links &amp; references:

	*  Bash FAQ, Question #1
	*  An askubuntu page on this topic
	*  Bash Internal Field Separator variable
	*  Summarizes the above

----------

While Read

The shell read command inputs entire lines.

We can do the following to send a file, line by line, to a  while read loop:


# Non-ideal method.
# File we are going to process is represented by $filename.
cat $filename |
while read line; do
   echo $line   # simple echo of each line
don…</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_regular_expressions?rev=1686018302">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-06T02:25:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Regular Expressions</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_regular_expressions?rev=1686018302</link>
        <description>Regular Expressions

----------

Links &amp; references:

	*  &lt;http://linuxreviews.org/beginner/tao_of_regular_expressions&gt;
	*  &lt;http://en.wikipedia.org/wiki/Regular_expressions&gt;
	*  Web tools for testing and learning:
		*  &lt;http://www.regexr.com/&gt;
		*  &lt;http://regexpal.com/&gt;
		*  &lt;https://regexone.com/&gt;


----------

Introduction

	*  To fully utilize shell scripting and certain commands and utilities commonly used in scripts (expr, sed, awk, etc.), you need to know how to use regular expressions.</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_shell_scripting?rev=1717107886">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-30T22:24:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>More Shell Scripts</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_shell_scripting?rev=1717107886</link>
        <description>More Shell Scripts

----------

	*  Also see the Advanced Bash Scripting Guide and Bash FAQ.

----------

Writing Shell Scripts

Setup

	*  Create the ~/cs370/examples/scripts subdirectory:
mkdir -p ~/cs370/examples/scripts
	*  Change to the just-created directory:
cd ~/cs370/examples/scripts</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_shell_scripts_and_user_interfaces?rev=1718746948">
        <dc:format>text/html</dc:format>
        <dc:date>2024-06-18T21:42:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>The Shell and User Interfaces</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_shell_scripts_and_user_interfaces?rev=1718746948</link>
        <description>The Shell and User Interfaces

----------

	*  The shell (and shell scripts) can display simple user interfaces and dialogs for applications that demand them.

	*  zenity and yad can be used to generate GUI dialogs.
	*  whiptail can be used to generate TUI (</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_subshells_and_parallel_processing?rev=1719261969">
        <dc:format>text/html</dc:format>
        <dc:date>2024-06-24T20:46:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Subshells and Parallel Processing</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_subshells_and_parallel_processing?rev=1719261969</link>
        <description>Subshells and Parallel Processing

----------

	*  Some information taken the Advanced Bash-Scripting Guide section on subshells (&lt;http://en.tldp.org/LDP/abs/html/subshells.html&gt;)
	*  (Do in class) Setup:
$ mkdir -p ~/cs370/examples/subshells_parallel_proc
$ cd ~/cs370/examples/subshells_parallel_proc</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_text_processing_utilities?rev=1718051102">
        <dc:format>text/html</dc:format>
        <dc:date>2024-06-10T20:25:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Text Processing Utilities</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_text_processing_utilities?rev=1718051102</link>
        <description>Text Processing Utilities

	*  Also see “Data Wrangling” section of MIT's Missing Semester course.
	*  The UNIX philosophy is driven by a core set of UNIX text processing utilities that work together to process streams of text.
		*  These text processing utilities are line-based, meaning they process text streams one line at a time.</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_unix_shells_and_shell_scripting?rev=1716928374">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-28T20:32:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>UNIX Shells and Shell Scripts</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_-_unix_shells_and_shell_scripting?rev=1716928374</link>
        <description>UNIX Shells and Shell Scripts

----------

UNIX shells

The  &quot;shell&quot; sits between you and the operating system

	*  a user interface
			*  reads input
			*  translates commands into actions to be taken by the system

		*  acts as a command interpreter
			*  If commands are in a shell script, interprets the shell script.</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_assignments?rev=1718307401">
        <dc:format>text/html</dc:format>
        <dc:date>2024-06-13T19:36:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CS 370 List of Assignments</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_assignments?rev=1718307401</link>
        <description>CS 370 List of Assignments

----------

Collection Setup

During the semester, I will collect your homework and projects from your school UNIX home directory.

After logging into a lab machine or server, create either a cs370 or se370 directory inside your home directory (~) by running the command:</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_projects?rev=1720335985">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-07T07:06:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CS 370 List of Projects</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_projects?rev=1720335985</link>
        <description>CS 370 List of Projects

You will be writing shell scripts for projects. It is suggested that you use the shellcheck command to check your shell script syntax and style. The shellcheck command is installed on all Linux lab machines and Linux servers.

----------</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_reading?rev=1226950077">
        <dc:format>text/html</dc:format>
        <dc:date>2008-11-17T19:27:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CS 370 - Reading Assignments</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/cs_370_reading?rev=1226950077</link>
        <description>CS 370 - Reading Assignments

----------

Weeks 1-2: Read chapter 1 (“What is UNIX”) and chapter 2 (“UNIX Utilities for Nonprogrammers”) of the book.

----------

Weeks 3-4: Read chapters 4 and 5 on UNIX shells and the Bourne Shell.

----------</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/fortune2png?rev=1414523084">
        <dc:format>text/html</dc:format>
        <dc:date>2014-10-28T19:04:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fortune2png</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/fortune2png?rev=1414523084</link>
        <description>fortune2png

Write a script called fortune2png that takes the output of fortune and creates a PNG image file from it (sample).

Here is a description in words of how this needs to be done in the script to convert text from fortune to a PNG image:

Step 1: Run</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/leet_script_q_and_a?rev=1413160651">
        <dc:format>text/html</dc:format>
        <dc:date>2014-10-13T00:37:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Leet script Q &amp; A</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/leet_script_q_and_a?rev=1413160651</link>
        <description>Leet script Q &amp; A

----------

&lt;== Back to leet project

----------

	*  Q: Does the script have to do whole word substitutions?
		*  A: Yes. So “my goodness” would not become “my leetness”. But, “the greater good” would become “teh greater leet”.


----------</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/makeuserids_github_setup?rev=1415127732">
        <dc:format>text/html</dc:format>
        <dc:date>2014-11-04T19:02:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/makeuserids_github_setup?rev=1415127732</link>
        <description>Not here</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/names2userids_script_q_and_a?rev=1414806767">
        <dc:format>text/html</dc:format>
        <dc:date>2014-11-01T01:52:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>names2userids script Q &amp; A</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/names2userids_script_q_and_a?rev=1414806767</link>
        <description>names2userids script Q &amp; A

----------

&lt;== Back to names2userids project

----------

	*  Q: The input file has thousands of lines, and shell scripts are slow. How can I test my script without the long waits between runs?
		*  A: Use a smaller version of the input file for testing.</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/print?rev=1415127744">
        <dc:format>text/html</dc:format>
        <dc:date>2014-11-04T19:02:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/print?rev=1415127744</link>
        <description>Not here</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/robots?rev=1252610745">
        <dc:format>text/html</dc:format>
        <dc:date>2009-09-10T19:25:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title></title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/robots?rev=1252610745</link>
        <description>User-agent: *
Disallow: /</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/shrinkprint_script_q_and_a?rev=1412615502">
        <dc:format>text/html</dc:format>
        <dc:date>2014-10-06T17:11:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Shrinkprint script Q &amp; A</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/shrinkprint_script_q_and_a?rev=1412615502</link>
        <description>Shrinkprint script Q &amp; A

----------

&lt;== Back to shrinkprint project

----------

	*  Q: Does the shell script have to be designed so that it somehow takes textfile.txt and hh305 as two parameters for use within the pipeline?
		*  A: Yes, textfile.txt would be the first argument to the script, and</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/start?rev=1513689704">
        <dc:format>text/html</dc:format>
        <dc:date>2017-12-19T13:21:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CS/SE 370 - Program Development Under UNIX</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/start?rev=1513689704</link>
        <description>CS/SE 370 - Program Development Under UNIX

Semester: Fall 2017

----------

Announcements

	*  Final exam, Tuesday, 12/19/2017, 8:30am-11:20am
		*  Sample final exam
		*  The final exam will include a question on your group's Project 3 shell script code.

	*  Quiz 3 will be a take-home quiz from Friday, 12/8 to Monday, 12/11.</description>
    </item>
    <item rdf:about="http://rockhopper.monmouth.edu/cs/jchung/cs370/ytplay_script_q_and_a?rev=1418868811">
        <dc:format>text/html</dc:format>
        <dc:date>2014-12-18T02:13:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ytplay script Q &amp; A</title>
        <link>http://rockhopper.monmouth.edu/cs/jchung/cs370/ytplay_script_q_and_a?rev=1418868811</link>
        <description>ytplay script Q &amp; A

----------

&lt;== Back to ytplay project

----------

	*  Q: Can I develop/test ytplay on rockhopper?
		*  A: Unfortunately, cclive is not installable on rockhopper at present, so developing ytplay on rockhopper will be severely limited. You can login to opus instead, which does have</description>
    </item>
</rdf:RDF>
