SDEV-415-81/week-04/week4.sh

134 lines
4.5 KiB
Bash
Raw Permalink Normal View History

#!/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"