ICE2015F14.Assignments History
Hide minor edits - Show changes to output
Deleted lines 3-83:
* You can submit your (advisory) homework to homework.skku@gmail.com with the title ''[ICE2015] Homework''.
* Advisory homework assignments will contribute by 10% to the final grade.
* %red%Shell Lab%% (mandatory) - Due: Dec. 12
** Logistics
*** All files must be in a single directory that are named after your student ID.
**** The directory has two sub-directories, ''docs'' and ''srcs''.
**** Documents are in the directory ''docs''.
**** Source files are in the directory ''srcs''.
*** The student ID directory will be zipped into a single tgz file.
*** You will send the zipped file to ''homework.skku@gmail.com'' by the end of the due date
*** The title of the e-mail should be '''[ICE2015 SA] ''your student ID'''''.
** Part VI - Issued on Dec. 1
*** Congratulations! You've made a shell that is able to do basic functions.
*** An excellent engineering should be documented with excellence, too. This is the time to write a technical report and manual pages about your shell.
*** A technical report must well illustrate the internal structure and mechanisms of your shell. The features provided by your shell must be clearly documented in the manual pages, accordingly.
*** %red%All documentation should be done in English.%%
** Part V - Issued on Dec. 1
*** Polish your shell with more built-in commands and the job control feature.
*** The following build-in commands should be implemented.
#### ''time''
#### ''cd''
#### ''pwd''
*** In order to support job controlling, following commands are also need to be implemented.
#### ''bg''
#### ''fg''
#### ''jobs''
*** The job control may require your shell to create a new process group for each command line input.
** Part IV - Issued on Nov. 28
*** Now, your shell must handle pipelining and redirection of commands as ''bash'' does.
*** Arbitrary number of commands can be pipelined.
*** Redirection of standard input and output as well as standard error must be supported.
** Part III - Issued on Nov. 22
*** This is the turn to make your shell invoke external commands. If a given command is not found in the internal command list, fork and exec the corresponding external command instead. Use p-series exec functions to find proper command in the directories specified by the PATH variable.
*** Your shell supposedly supports the background execution feature. Like ''bash'', if a command followed by ''&'' is given, your shell will execute the command in the background. Naturally, your shell must properly handle SIGCHLD from the children in the background. Never let them become zombies.
** Part II - Issued on Nov. 12
*** Surprisingly, your shell provides an in-house version of the ''ls'' command as an internal command. Exactly the same as the conventional ''ls'', your ''ls'' must show detailed information about files when used with ''-l'' option.
*** No more specifications will be provided. Give your ''ls'' as many features as possible.
** Part I - Issued on Nov. 4
### Write the skeleton of your shell.
### The prompt of your shell should be "(username)@(hostname):(cwd)$".
### Implement the following built-in functions.
**** ''echo''
**** ''whoami'' (returns the current username)
**** ''export''
* Function programming assignment (advisory) - Issued on Nov. 15
** Write a function, ''system2'' that exactly does the same thing as the library call, ''system''.
** ''system2'' parses the argument string and passes the string tokens to ''bash'' as argvs via the exec call.
** Naturally, the exec must be invoked by the child process after forking.
** The parent process must wait for the child to finish with the ''wait'' system call.
** ''system2'' must return status information as defined in the manual page of ''system''.
* Utility programming assignment (advisory) - Issued on Nov. 10
** Write a program mychmod.c, which is a simplified version of the ''chmod'' command.
** The program should support both octal mode input and symbolic input.
* Utility programming assignment (advisory) - Issued on Oct. 30
** ''top'' is a useful tool for monitoring system status on the fly. Your mission is to build a simplified version of ''top''.
** Your top will periodically show system information that includes the followings:
*** Load average of 1, 5 and 15 minutes.
*** Number of existing processes.
*** Total memory and free memory.
** The original ''top'' displays the information in good-looking form. This output is generated through the ''ncurses'' library. If you want to make a command line tool with user-friendly interface, learning how to use ''ncurses'' is highly recommended.
** If you are interested in ''ncurses'', please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install ''ncurses'' to your system with the ''apt-get install ncurses-devel'' command.
* System administration homework assignment (advisory) - Issued on Oct. 6
**You want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory. The backup file should be a tarred and gzipped file.
* Shell scripting homework assignment (advisory) - Issued on Sep. 22
## Counting the number of files with the given name
*** Your shell script traverses a directory structure and counts the number of files with the given file name.
*** The file name will be given to the script as its first command line argument.
*** The second argument is the starting directory to traverse. If it is not given, by default, the current working directory will be used as the starting point.
*** The file name can be written in regular expression.
*** The output should be as follows:\\
"(number of files) files have the file name (given name) under the directory (starting directory)."
## Logging the number of threads in a system
*** Your shell script periodically record the number of threads in execution.
*** Your shell script demands two command line arguments.
*** The first argument denotes the log file name, and the second argument determines the logging period.
*** The logging period is represented in seconds. For example, if the second argument is 60, the shell script will wake up every 1 min and log the number of existing threads on the log file.
*** The format of the log is as follows:\\
"2014-09-22 16:26:20 - 124 threads exist."\\
"2014-09-22 16:31:20 - 128 threads exist."
Changed line 21 from:
*** %%red%All documentation should be done in English.%
to:
*** %red%All documentation should be done in English.%%
Added line 21:
*** %%red%All documentation should be done in English.%
Changed line 16 from:
*** The title of the e-mail should be [ICE2015 SA] ''your student ID''.
to:
*** The title of the e-mail should be '''[ICE2015 SA] ''your student ID'''''.
Added lines 9-20:
** Logistics
*** All files must be in a single directory that are named after your student ID.
**** The directory has two sub-directories, ''docs'' and ''srcs''.
**** Documents are in the directory ''docs''.
**** Source files are in the directory ''srcs''.
*** The student ID directory will be zipped into a single tgz file.
*** You will send the zipped file to ''homework.skku@gmail.com'' by the end of the due date
*** The title of the e-mail should be [ICE2015 SA] ''your student ID''.
** Part VI - Issued on Dec. 1
*** Congratulations! You've made a shell that is able to do basic functions.
*** An excellent engineering should be documented with excellence, too. This is the time to write a technical report and manual pages about your shell.
*** A technical report must well illustrate the internal structure and mechanisms of your shell. The features provided by your shell must be clearly documented in the manual pages, accordingly.
*** All files must be in a single directory that are named after your student ID.
**** The directory has two sub-directories, ''docs'' and ''srcs''.
**** Documents are in the directory ''docs''.
**** Source files are in the directory ''srcs''.
*** The student ID directory will be zipped into a single tgz file.
*** You will send the zipped file to ''homework.skku@gmail.com'' by the end of the due date
*** The title of the e-mail should be [ICE2015 SA] ''your student ID''.
** Part VI - Issued on Dec. 1
*** Congratulations! You've made a shell that is able to do basic functions.
*** An excellent engineering should be documented with excellence, too. This is the time to write a technical report and manual pages about your shell.
*** A technical report must well illustrate the internal structure and mechanisms of your shell. The features provided by your shell must be clearly documented in the manual pages, accordingly.
Changed lines 12-19 from:
#### time
#### cd
#### pwd
*** In order to support job controlling, following commands are also need to be implemented
#### bg
#### fg
#### jobs
*** The job control may require your shell to create a new process group for each command line input
to:
#### ''time''
#### ''cd''
#### ''pwd''
*** In order to support job controlling, following commands are also need to be implemented.
#### ''bg''
#### ''fg''
#### ''jobs''
*** The job control may require your shell to create a new process group for each command line input.
#### ''cd''
#### ''pwd''
*** In order to support job controlling, following commands are also need to be implemented.
#### ''bg''
#### ''fg''
#### ''jobs''
*** The job control may require your shell to create a new process group for each command line input.
Changed line 19 from:
*** Job controlling may require your shell to create a new process group for each command line input
to:
*** The job control may require your shell to create a new process group for each command line input
Added lines 9-19:
** Part V - Issued on Dec. 1
*** Polish your shell with more built-in commands and the job control feature.
*** The following build-in commands should be implemented.
#### time
#### cd
#### pwd
*** In order to support job controlling, following commands are also need to be implemented
#### bg
#### fg
#### jobs
*** Job controlling may require your shell to create a new process group for each command line input
*** Polish your shell with more built-in commands and the job control feature.
*** The following build-in commands should be implemented.
#### time
#### cd
#### pwd
*** In order to support job controlling, following commands are also need to be implemented
#### bg
#### fg
#### jobs
*** Job controlling may require your shell to create a new process group for each command line input
Added lines 9-12:
** Part IV - Issued on Nov. 28
*** Now, your shell must handle pipelining and redirection of commands as ''bash'' does.
*** Arbitrary number of commands can be pipelined.
*** Redirection of standard input and output as well as standard error must be supported.
*** Now, your shell must handle pipelining and redirection of commands as ''bash'' does.
*** Arbitrary number of commands can be pipelined.
*** Redirection of standard input and output as well as standard error must be supported.
Changed line 10 from:
*** This is the turn to make your shell invoke external commands. If a given command is not found in the internal command list, fork and exec the corresponding external command instead. Use p-series exec functions to find proper command by using the PATH environment.
to:
*** This is the turn to make your shell invoke external commands. If a given command is not found in the internal command list, fork and exec the corresponding external command instead. Use p-series exec functions to find proper command in the directories specified by the PATH variable.
Deleted lines 7-12:
** Write a function, ''system2'' that exactly does the same thing as the library call, ''system''.
** ''system2'' parses the argument string and passes the string tokens to ''bash'' as argvs via the exec call.
** Naturally, the exec must be invoked by the child process after forking.
** The parent process must wait for the child to finish with the ''wait'' system call.
** ''system2'' must return status information as defined in the manual page of ''system''.
Added lines 9-11:
** Part III - Issued on Nov. 22
*** This is the turn to make your shell invoke external commands. If a given command is not found in the internal command list, fork and exec the corresponding external command instead. Use p-series exec functions to find proper command by using the PATH environment.
*** Your shell supposedly supports the background execution feature. Like ''bash'', if a command followed by ''&'' is given, your shell will execute the command in the background. Naturally, your shell must properly handle SIGCHLD from the children in the background. Never let them become zombies.
*** This is the turn to make your shell invoke external commands. If a given command is not found in the internal command list, fork and exec the corresponding external command instead. Use p-series exec functions to find proper command by using the PATH environment.
*** Your shell supposedly supports the background execution feature. Like ''bash'', if a command followed by ''&'' is given, your shell will execute the command in the background. Naturally, your shell must properly handle SIGCHLD from the children in the background. Never let them become zombies.
Added lines 22-27:
* Function programming assignment (advisory) - Issued on Nov. 15
** Write a function, ''system2'' that exactly does the same thing as the library call, ''system''.
** ''system2'' parses the argument string and passes the string tokens to ''bash'' as argvs via the exec call.
** Naturally, the exec must be invoked by the child process after forking.
** The parent process must wait for the child to finish with the ''wait'' system call.
** ''system2'' must return status information as defined in the manual page of ''system''.
** Write a function, ''system2'' that exactly does the same thing as the library call, ''system''.
** ''system2'' parses the argument string and passes the string tokens to ''bash'' as argvs via the exec call.
** Naturally, the exec must be invoked by the child process after forking.
** The parent process must wait for the child to finish with the ''wait'' system call.
** ''system2'' must return status information as defined in the manual page of ''system''.
Changed line 10 from:
** ''system2'' parses the argument string and passes the string tokens to ''bash'' with the exec call.
to:
** ''system2'' parses the argument string and passes the string tokens to ''bash'' as argvs via the exec call.
Added lines 8-13:
* Function programming assignment (advisory) - Issued on Nov. 15
** Write a function, ''system2'' that exactly does the same thing as the library call, ''system''.
** ''system2'' parses the argument string and passes the string tokens to ''bash'' with the exec call.
** Naturally, the exec must be invoked by the child process after forking.
** The parent process must wait for the child to finish with the ''wait'' system call.
** ''system2'' must return status information as defined in the manual page of ''system''.
** Write a function, ''system2'' that exactly does the same thing as the library call, ''system''.
** ''system2'' parses the argument string and passes the string tokens to ''bash'' with the exec call.
** Naturally, the exec must be invoked by the child process after forking.
** The parent process must wait for the child to finish with the ''wait'' system call.
** ''system2'' must return status information as defined in the manual page of ''system''.
Added lines 10-11:
*** Surprisingly, your shell provides an in-house version of the ''ls'' command as an internal command. Exactly the same as the conventional ''ls'', your ''ls'' must show detailed information about files when used with ''-l'' option.
*** No more specifications will be provided. Give your ''ls'' as many features as possible.
*** No more specifications will be provided. Give your ''ls'' as many features as possible.
Changed lines 7-9 from:
** Write a program mychmod.c, which is a simplified version of the ''chmod'' command.
** The program should support both octal mode input and symbolic input.
to:
Added line 9:
** Part II - Issued on Nov. 12
Added lines 17-19:
* Utility programming assignment (advisory) - Issued on Nov. 10
** Write a program mychmod.c, which is a simplified version of the ''chmod'' command.
** The program should support both octal mode input and symbolic input.
** Write a program mychmod.c, which is a simplified version of the ''chmod'' command.
** The program should support both octal mode input and symbolic input.
Changed line 9 from:
to:
** The program should support both octal mode input and symbolic input.
Added lines 7-9:
* Utility programming assignment (advisory) - Issued on Nov. 10
** Write a program mychmod.c, which is a simplified version of the ''chmod'' command.
*** The program should support both octal mode input and symbolic input.
** Write a program mychmod.c, which is a simplified version of the ''chmod'' command.
*** The program should support both octal mode input and symbolic input.
Changed lines 12-14 from:
**** echo
**** whoami (returns the current username)
****export
****
to:
**** ''echo''
**** ''whoami'' (returns the current username)
**** ''export''
**** ''whoami'' (returns the current username)
**** ''export''
Changed lines 10-14 from:
###
to:
### The prompt of your shell should be "(username)@(hostname):(cwd)$".
### Implement the following built-in functions.
**** echo
**** whoami (returns the current username)
**** export
### Implement the following built-in functions.
**** echo
**** whoami (returns the current username)
**** export
Changed lines 9-10 from:
to:
### Write the skeleton of your shell.
###
###
Changed lines 7-10 from:
* %red%Shell Lab%
to:
* %red%Shell Lab%% (mandatory) - Due: Dec. 12
** Part I - Issued on Nov. 4
**# Write the skeleton of your shell.
**#
** Part I - Issued on Nov. 4
**# Write the skeleton of your shell.
**#
Changed line 14 from:
** If you are interested in ''ncurses'', please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install ''ncurses'' to your system with ''apt-get install ncurses-devel'' command.
to:
** If you are interested in ''ncurses'', please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install ''ncurses'' to your system with the ''apt-get install ncurses-devel'' command.
Changed line 8 from:
** ''top'' is a useful tool for monitoring system status on the fly. Your mission is to build a simplified version of "top"
to:
** ''top'' is a useful tool for monitoring system status on the fly. Your mission is to build a simplified version of ''top''.
Changed lines 13-14 from:
** The original "top" displays the information in good-looking form. This output is generated through the "ncurses" library. If you want to make a command line tool with user-friendly interface, learning how to use "ncurses" is highly recommended.
** If you are interested in"ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install "ncurses" to your system with "apt-get install ncurses-devel" command.
** If you are interested in
to:
** The original ''top'' displays the information in good-looking form. This output is generated through the ''ncurses'' library. If you want to make a command line tool with user-friendly interface, learning how to use ''ncurses'' is highly recommended.
** If you are interested in ''ncurses'', please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install ''ncurses'' to your system with ''apt-get install ncurses-devel'' command.
** If you are interested in ''ncurses'', please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install ''ncurses'' to your system with ''apt-get install ncurses-devel'' command.
Changed line 14 from:
** If you are interested in "ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]].
to:
** If you are interested in "ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]]. Also, you can easily install "ncurses" to your system with "apt-get install ncurses-devel" command.
Changed line 8 from:
** ''top'' is a useful tool to monitor system status on the fly. Your mission is to build a simplified version of "top"
to:
** ''top'' is a useful tool for monitoring system status on the fly. Your mission is to build a simplified version of "top"
Changed line 14 from:
** If you are interested in "ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]].
to:
** If you are interested in "ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Programming Howto]].
Changed line 7 from:
* Utility programming assignment (advisory) - Issue on Oct. 30
to:
* Utility programming assignment (advisory) - Issued on Oct. 30
Changed line 14 from:
** If you are interested in "ncurses", refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]].
to:
** If you are interested in "ncurses", please refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]].
Changed line 14 from:
** If you are interested in "ncurses", refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]]
to:
** If you are interested in "ncurses", refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]].
Changed lines 13-14 from:
** The original "top" displays the information in good-looking form. This output is generated through the "ncurses" library. If you want to make a command line tool with user-friendly interface, learning how to use "ncurses"
to:
** The original "top" displays the information in good-looking form. This output is generated through the "ncurses" library. If you want to make a command line tool with user-friendly interface, learning how to use "ncurses" is highly recommended.
** If you are interested in "ncurses", refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]]
** If you are interested in "ncurses", refer to [[http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/|ncurses Howto]]
Changed lines 8-9 from:
** ''top'' is a useful tool to monitor system status on the fly.
to:
** ''top'' is a useful tool to monitor system status on the fly. Your mission is to build a simplified version of "top"
** Your top will periodically show system information that includes the followings:
*** Load average of 1, 5 and 15 minutes.
*** Number of existing processes.
*** Total memory and free memory.
** The original "top" displays the information in good-looking form. This output is generated through the "ncurses" library. If you want to make a command line tool with user-friendly interface, learning how to use "ncurses"
** Your top will periodically show system information that includes the followings:
*** Load average of 1, 5 and 15 minutes.
*** Number of existing processes.
*** Total memory and free memory.
** The original "top" displays the information in good-looking form. This output is generated through the "ncurses" library. If you want to make a command line tool with user-friendly interface, learning how to use "ncurses"
Changed lines 8-9 from:
** 'top'
to:
** ''top'' is a useful tool to monitor system status on the fly.
Changed lines 7-8 from:
*
to:
* Utility programming assignment (advisory) - Issue on Oct. 30
** 'top'
** 'top'
Changed lines 8-9 from:
**You want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory.
** The backup file should be a tarred and gzipped file.
**
to:
**You want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory. The backup file should be a tarred and gzipped file.
Added line 9:
** The backup file should be a tarred and gzipped file.
Changed line 25 from:
"2014-09-22 16:31:20 - 128 threads exist."
to:
"2014-09-22 16:31:20 - 128 threads exist."
Changed lines 7-8 from:
* System administration homework assignment (advisory) - Issue on Oct. 6
**If you want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory.
**
to:
* System administration homework assignment (advisory) - Issued on Oct. 6
**You want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory.
**You want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory.
Added lines 7-8:
* System administration homework assignment (advisory) - Issue on Oct. 6
**If you want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory.
**If you want to make your system back up all temporary files in /tmp to a backup file, of which name is tmp-YYYY-MM-DD, in /backup/ after every boot up, how can you accomplish this? Write a shell script according to the rc shell script convention, and place the shell script in /etc/init.d and create a symbolic link in the proper rc directory.
Added line 6:
* Advisory homework assignments will contribute by 10% to the final grade.
Changed line 20 from:
"2014-09-22 16:26:20 - 124 threads exist."
to:
"2014-09-22 16:26:20 - 124 threads exist."\\
Changed line 6 from:
* Shell scripting homework assignment (advisory)
to:
* Shell scripting homework assignment (advisory) - Issued on Sep. 22
Changed lines 13-21 from:
"16 files have the file name (given name) under the directory (starting directory)."
to:
"(number of files) files have the file name (given name) under the directory (starting directory)."
## Logging the number of threads in a system
*** Your shell script periodically record the number of threads in execution.
*** Your shell script demands two command line arguments.
*** The first argument denotes the log file name, and the second argument determines the logging period.
*** The logging period is represented in seconds. For example, if the second argument is 60, the shell script will wake up every 1 min and log the number of existing threads on the log file.
*** The format of the log is as follows:\\
"2014-09-22 16:26:20 - 124 threads exist."
"2014-09-22 16:31:20 - 128 threads exist."
## Logging the number of threads in a system
*** Your shell script periodically record the number of threads in execution.
*** Your shell script demands two command line arguments.
*** The first argument denotes the log file name, and the second argument determines the logging period.
*** The logging period is represented in seconds. For example, if the second argument is 60, the shell script will wake up every 1 min and log the number of existing threads on the log file.
*** The format of the log is as follows:\\
"2014-09-22 16:26:20 - 124 threads exist."
"2014-09-22 16:31:20 - 128 threads exist."
Changed lines 8-13 from:
*** ffff
to:
*** Your shell script traverses a directory structure and counts the number of files with the given file name.
*** The file name will be given to the script as its first command line argument.
*** The second argument is the starting directory to traverse. If it is not given, by default, the current working directory will be used as the starting point.
*** The file name can be written in regular expression.
*** The output should be as follows:\\
"16 files have the file name (given name) under the directory (starting directory)."
*** The file name will be given to the script as its first command line argument.
*** The second argument is the starting directory to traverse. If it is not given, by default, the current working directory will be used as the starting point.
*** The file name can be written in regular expression.
*** The output should be as follows:\\
"16 files have the file name (given name) under the directory (starting directory)."
Changed lines 7-8 from:
## dd
to:
## Counting the number of files with the given name
*** ffff
*** ffff
Added lines 6-7:
* Shell scripting homework assignment (advisory)
*# dd
*# dd
Changed line 5 from:
* You can submit your (advisory) homework to homework.skku@gmail.com with the title ''[ICE2015] Homework''
to:
* You can submit your (advisory) homework to homework.skku@gmail.com with the title ''[ICE2015] Homework''.
Changed lines 3-5 from:
!!! [Assignments]
to:
!!! [Assignments]
* You can submit your (advisory) homework to homework.skku@gmail.com with the title ''[ICE2015] Homework''
* You can submit your (advisory) homework to homework.skku@gmail.com with the title ''[ICE2015] Homework''
Added lines 1-3:
!! ICE2015: UNIX Programming (Fall 2014)
!!! [Assignments]
!!! [Assignments]
Deleted lines 0-12:
!!! [Resources]
* Installation and preparation
** [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]] - Official Linux distribution for our class
** [[https://www.virtualbox.org|Oracle Virtual Box]] - A free open-source multiplatform virtualization product
* Development Tools
** Vim
*** [[http://www.openvim.com/tutorial.html|Vim Tutorial]]
*** [[https://kldp.org/node/102947|Vim Short-cut Keys]] - A graphical Vim cheat sheet
*** [[http://vim-adventures.com|Vim Adventure]] - An interactive game that teaches you how to use Vim
Changed lines 10-12 from:
* [[http://www.openvim.com/tutorial.html|Vim Tutorial]]
* [[https://kldp.org/node/102947|Vim Short-cut Keys]] - A graphical Vim cheat sheet
* [[http://vim-adventures.com|Vim Adventure]] - An interactive game that teaches you how to use Vim
* [[https://kldp.org/node/102947|Vim Short-cut Keys]] - A graphical Vim cheat sheet
* [[http://vim-adventures.com|Vim Adventure]] - An interactive game that teaches you how to use Vim
to:
** Vim
*** [[http://www.openvim.com/tutorial.html|Vim Tutorial]]
*** [[https://kldp.org/node/102947|Vim Short-cut Keys]] - A graphical Vim cheat sheet
*** [[http://vim-adventures.com|Vim Adventure]] - An interactive game that teaches you how to use Vim
*** [[http://www.openvim.com/tutorial.html|Vim Tutorial]]
*** [[https://kldp.org/node/102947|Vim Short-cut Keys]] - A graphical Vim cheat sheet
*** [[http://vim-adventures.com|Vim Adventure]] - An interactive game that teaches you how to use Vim
Changed lines 6-7 from:
** [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]]
** [[https://www.virtualbox.org|Oracle Virtual Box]] (Free Open-Source Multiplatform Virtualization Product)
to:
** [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]] - Official Linux distribution for our class
** [[https://www.virtualbox.org|Oracle Virtual Box]] - A free open-source multiplatform virtualization product
* Development Tools
* [[http://www.openvim.com/tutorial.html|Vim Tutorial]]
* [[https://kldp.org/node/102947|Vim Short-cut Keys]] - A graphical Vim cheat sheet
* [[http://vim-adventures.com|Vim Adventure]] - An interactive game that teaches you how to use Vim
** [[https://www.virtualbox.org|Oracle Virtual Box]] - A free open-source multiplatform virtualization product
* Development Tools
* [[http://www.openvim.com/tutorial.html|Vim Tutorial]]
* [[https://kldp.org/node/102947|Vim Short-cut Keys]] - A graphical Vim cheat sheet
* [[http://vim-adventures.com|Vim Adventure]] - An interactive game that teaches you how to use Vim
Changed lines 6-7 from:
* [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]]
to:
** [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]]
** [[https://www.virtualbox.org|Oracle Virtual Box]] (Free Open-Source Multiplatform Virtualization Product)
** [[https://www.virtualbox.org|Oracle Virtual Box]] (Free Open-Source Multiplatform Virtualization Product)
Added lines 1-5:
!! ICE2015: UNIX Programming (Fall 2014)
!!! [Resources]
* [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]]
!!! [Resources]
* [[http://www.ubuntu.com/download/desktop/install-ubuntu-desktop|How to install Ubuntu]]