1
0
Fork 0
SDEV-415-81/week-04/week4.sh

134 lines
4.5 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
#/-------------------------------------------------------------------------------------------------------
#
# @version 1.0.0
# @build 28th Sept, 2020
# @package SDEV-415-81: Linux/ Unix Programming I - Fall 2020 (2020FA)
# @sub-package Week 4: Assignment - Directory Structure
# @author Llewellyn van der Merwe <https://github.com/Llewellynvdm>
# @copyright Copyright (C) 2020. All Rights Reserved
# @license GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html
#
#/--------------------------------------------------------------------------------------------------------
# 1. Create a directory structure for the work you do in this class. The directory structure should
# include a top-level directory (located in your home directory) named “Linux Programming I”.
# You then need to create sub-directories inside this directory for each week.
# (week1, week2, all the way up to week15).
# Lastly, create Assignment directories in each “weekN” directory.
# You will need to use the mkdir and cd commands to do this.
# You should also use the ls command to demonstrate the creation of the directory structure.
echo "Create Working Directories"
DIR="/home/llewellyn/Linux Programming I"
if [ ! -d "$DIR" ]
then
mkdir -p "$DIR"
fi
# now create the first 7 weeks directories
for w in {1..7};
do
WEEK="${DIR}/1_Week${w}_1"
echo "Creating $WEEK"
if [ ! -d "$WEEK" ]
then
mkdir -p "$WEEK"
fi
done
# now create the last 7/8 weeks directories
for w in {8..15};
do
WEEK="${DIR}/2_Week${w}_1"
echo "Creating $WEEK"
if [ ! -d "${DIR}/2_Week${w}_1" ]
then
mkdir -p "${DIR}/2_Week${w}_1"
fi
done
# 2. Perform the following
echo "Change your prompt variable to display the current working directory (pwd)"
echo "" >> /home/llewellyn/.bashrc
echo "# Set SIMPLE (pwd) prompt" >> /home/llewellyn/.bashrc
echo "PS1='\${PWD##*/}/ '" >> /home/llewellyn/.bashrc
echo "Set the history to be 100 commands"
echo "" >> /home/llewellyn/.profile
echo "# Keep only 100 History Commands" >> /home/llewellyn/.profile
echo "export HISTSIZE=100" >> /home/llewellyn/.profile
echo "Change to working directory ${PWD}"
cd "${PWD}"
echo "Set an alias to allow typing h to list the history of commands."
echo "" >> /home/llewellyn/.bash_aliases
echo "# To list history of commands" >> /home/llewellyn/.bash_aliases
echo "alias h='!!'" >> /home/llewellyn/.bash_aliases
echo "Set an alias for listlong to be ls latr."
echo "" >> /home/llewellyn/.bash_aliases
echo "# To list long detials" >> /home/llewellyn/.bash_aliases
echo "alias listlong='ls -latr'" >> /home/llewellyn/.bash_aliases
echo "Set an alias named dir to be ls -aF | more"
echo "" >> /home/llewellyn/.bash_aliases
echo "# To show dir listing" >> /home/llewellyn/.bash_aliases
echo "alias dir='ls -aF | more'" >> /home/llewellyn/.bash_aliases
echo "Set an alias named del to be \"rm -i\"."
echo "" >> /home/llewellyn/.bash_aliases
echo "# To do a stupid prompt before every removal" >> /home/llewellyn/.bash_aliases
echo "alias del='rm -i'" >> /home/llewellyn/.bash_aliases
# 3. TERM and HOME
echo "Display the values of your TERM and HOME environment variables to the screen."
echo "TERM = ${TERM}"
echo "HOME = ${HOME}"
# 4. Hit the CTRL-D key combination
echo "When the IGNOREEOF=4 the means pressing CTRL-D four times will only close my session."
echo "" >> /home/llewellyn/.profile
echo "# Prevent closing a session inadvertently" >> /home/llewellyn/.profile
echo "export IGNOREEOF=4" >> /home/llewellyn/.profile
# 5. MAN page
echo "Write bash man page to ${PWD}/bash.txt"
man bash > "${PWD}/bash.txt"
echo "Write csh man page to ${PWD}/csh.txt"
man csh > "${PWD}/csh.txt"
echo "Write korn/ksh man page to ${PWD}/korn.txt"
man ksh > "${PWD}/korn.txt"
# 6. number of files in /usr/bin
echo "list the number of files in /usr/local/bin"
ls -1 /usr/bin | wc -l > ~/ls_output
echo "~/ls_output is in the current user directory"
echo "On my PC there is 1385 files in this directory"
# 7. Display the current number of processes
# running on your system using any number
# of commands and a pipe. I want the number,
# not just a list of processes.
number=$(ps aux | wc -l)
echo "There is ${number} prossess running right now."
# 8. Explain the difference between “>” and “>>”
# when using redirection. Also, what does
# the “!” command do.
# Give me an example and its output.
echo "My whole script demostrates the >> and >"
echo "The >> adds a new line to a file"
echo "The > replace the whole file with the new given values"