Running Bash

Using the code from the AP CSP site to clone a repository on my machine.

echo "Using conditional statement to create a project directory and project"

# Variable section
export project_dir=$HOME/vscode  # change vscode to different name to test git clone
export project=$project_dir/APCSP  # change APCSP to name of project from git clone
export project_repo="https://github.com/nighthawkcoders/APCSP.git"  # change to project of choice

cd ~    # start in home directory

# Conditional block to make a project directory
if [ ! -d $project_dir ]
then 
    echo "Directory $project_dir does not exists... makinng directory $project_dir"
    mkdir -p $project_dir
fi
echo "Directory $project_dir exists." 

# Conditional block to git clone a project from project_repo
if [ ! -d $project ]
then
    echo "Directory $project does not exists... cloning $project_repo"
    cd $project_dir
    git clone $project_repo
    cd ~
fi
echo "Directory $project exists."
Using conditional statement to create a project directory and project
Directory /Users/poonam/vscode exists.
Directory /Users/poonam/vscode/APCSP exists.

Using this code, we see that the directory already exist.s

echo "Navigate to project, then navigate to area wwhere files were cloned"
cd $project
pwd

echo ""
echo "list top level or root of files with project pulled from github"
ls

echo ""
echo "list again with hidden files pulled from github"
ls -a   # hidden files flag, many shell commands have flags

echo ""
echo "list all files in long format"
ls -al   # all files and long listing
Navigate to project, then navigate to area wwhere files were cloned
/Users/poonam/vscode/APCSP

list top level or root of files with project pulled from github
Gemfile			_includes		_word
LICENSE			_layouts		assets
Makefile		_notebooks		docker-compose.yml
README.md		_pages			images
_action_files		_plugins		index.html
_config.yml		_posts			python
_fastpages_docs		_sass

list again with hidden files pulled from github
.			Makefile		_posts
..			README.md		_sass
.devcontainer.json	_action_files		_word
.git			_config.yml		assets
.gitattributes		_fastpages_docs		docker-compose.yml
.github			_includes		images
.gitignore		_layouts		index.html
.vscode			_notebooks		python
Gemfile			_pages
LICENSE			_plugins

list all files in long format
total 96
drwxr-xr-x  28 poonam  staff    896 Aug 23 13:41 .
drwxr-xr-x   6 poonam  staff    192 Aug 23 13:41 ..
-rw-r--r--   1 poonam  staff    420 Aug 23 13:41 .devcontainer.json
drwxr-xr-x  14 poonam  staff    448 Aug 25 13:14 .git
-rw-r--r--   1 poonam  staff     84 Aug 23 13:41 .gitattributes
drwxr-xr-x   4 poonam  staff    128 Aug 23 13:41 .github
-rw-r--r--   1 poonam  staff    917 Aug 23 13:41 .gitignore
drwxr-xr-x   3 poonam  staff     96 Aug 23 13:41 .vscode
-rwxr-xr-x   1 poonam  staff   1304 Aug 23 13:41 Gemfile
-rw-r--r--   1 poonam  staff  11351 Aug 23 13:41 LICENSE
-rwxr-xr-x   1 poonam  staff   1422 Aug 23 13:41 Makefile
-rwxr-xr-x   1 poonam  staff   3614 Aug 23 13:41 README.md
drwxr-xr-x  18 poonam  staff    576 Aug 23 13:41 _action_files
-rw-r--r--   1 poonam  staff   3716 Aug 23 13:41 _config.yml
drwxr-xr-x  24 poonam  staff    768 Aug 23 13:41 _fastpages_docs
drwxr-xr-x  29 poonam  staff    928 Aug 23 13:41 _includes
drwxr-xr-x   6 poonam  staff    192 Aug 23 13:41 _layouts
drwxr-xr-x  13 poonam  staff    416 Aug 25 13:14 _notebooks
drwxr-xr-x   9 poonam  staff    288 Aug 23 13:41 _pages
drwxr-xr-x   4 poonam  staff    128 Aug 23 13:41 _plugins
drwxr-xr-x  29 poonam  staff    928 Aug 23 13:41 _posts
drwxr-xr-x   3 poonam  staff     96 Aug 23 13:41 _sass
drwxr-xr-x   3 poonam  staff     96 Aug 23 13:41 _word
drwxr-xr-x   4 poonam  staff    128 Aug 23 13:41 assets
-rwxr-xr-x   1 poonam  staff   1136 Aug 23 13:41 docker-compose.yml
drwxr-xr-x  52 poonam  staff   1664 Aug 23 13:41 images
-rw-r--r--   1 poonam  staff   1061 Aug 23 13:41 index.html
drwxr-xr-x   3 poonam  staff     96 Aug 23 13:41 python

Pretty cool to see that you can easily list all the files using the ls command.

echo "Look for posts"
export posts=$project/_posts  # _posts inside project
cd $posts  # this should exist per fastpages
pwd  # present working directory
ls -l  # list posts
Look for posts
/Users/poonam/vscode/APCSP/_posts
total 456
-rw-r--r--  1 poonam  staff  21306 Aug 23 13:41 2022-06-01-TT160-deploy.md
-rw-r--r--  1 poonam  staff   5861 Aug 23 13:41 2022-07-07-PBL-binary.md
-rw-r--r--  1 poonam  staff   3085 Aug 23 13:41 2022-07-08-PBL-grade_calc.md
-rw-r--r--  1 poonam  staff   3698 Aug 23 13:41 2022-07-08-PBL-graph.md
-rw-r--r--  1 poonam  staff   5729 Aug 23 13:41 2022-07-08-PBL-life.md
-rw-r--r--  1 poonam  staff  14387 Aug 23 13:41 2022-07-08-PBL-snake.md
-rw-r--r--  1 poonam  staff    334 Aug 23 13:41 2022-07-10-PBL-database.md
-rw-r--r--  1 poonam  staff   2908 Aug 23 13:41 2022-07-10-PBL-jokes.md
-rw-r--r--  1 poonam  staff   4046 Aug 23 13:41 2022-07-10-PBL-rapidapi.md
-rw-r--r--  1 poonam  staff   6685 Aug 23 13:41 2022-07-19-PBL-calculator.md
-rw-r--r--  1 poonam  staff  23325 Aug 23 13:41 2022-07-25-CSP-workshop.md
-rw-r--r--  1 poonam  staff   2333 Aug 23 13:41 2022-08-15-TP000-student_score_history.md
-rw-r--r--  1 poonam  staff   4363 Aug 23 13:41 2022-08-15-TP100-pseudo_code.md
-rw-r--r--  1 poonam  staff   7968 Aug 23 13:41 2022-08-15-TR100-tool_setup.md
-rw-r--r--  1 poonam  staff  15026 Aug 23 13:41 2022-08-15-TT100-tools.md
-rw-r--r--  1 poonam  staff   5590 Aug 23 13:41 2022-08-15-TT101-vscode-wsl.md
-rw-r--r--  1 poonam  staff   2155 Aug 23 13:41 2022-08-22-TR110-intro_python.md
-rw-r--r--  1 poonam  staff   5173 Aug 23 13:41 2022-08-22-TT110-fastpages.md
-rw-r--r--  1 poonam  staff   2798 Aug 23 13:41 2022-08-22-TT110-focus.md
-rw-r--r--  1 poonam  staff   2737 Aug 23 13:41 2022-08-29-TR120-data_abstract.md
-rw-r--r--  1 poonam  staff  10683 Aug 23 13:41 2022-08-29-TT120-agile.md
-rw-r--r--  1 poonam  staff   4498 Aug 23 13:41 2022-08-29-TT120-html_fragments.md
-rw-r--r--  1 poonam  staff   9037 Aug 23 13:41 2022-09-05-TP130-create_performance_task.md
-rw-r--r--  1 poonam  staff   7753 Aug 23 13:41 2022-09-05-TP131-create-task-bria.md
-rw-r--r--  1 poonam  staff   8066 Aug 23 13:41 2022-09-05-TR130-creative_development.md
-rw-r--r--  1 poonam  staff   3520 Aug 23 13:41 2022-09-05-TT130-applab.md
-rw-r--r--  1 poonam  staff    720 Aug 23 13:41 README.md

Looking through all the posts on the AP CSP repository.

echo "Look for notebooks"
export notebooks=$project/_notebooks  # _notebooks is inside project
cd $notebooks   # this should exist per fastpages
pwd  # present working directory
ls -l  # list notebooks
Look for notebooks
/Users/poonam/vscode/APCSP/_notebooks
total 280
-rw-r--r--  1 poonam  staff  14243 Aug 23 13:41 2022-06-01-TT150-webapi_tutorial.ipynb
-rw-r--r--  1 poonam  staff   8653 Aug 23 13:41 2022-07-21-PBL-neo4j_intro.ipynb
-rw-r--r--  1 poonam  staff  11694 Aug 25 13:14 2022-08-22-TP110-python_hello.ipynb
-rw-r--r--  1 poonam  staff  20003 Aug 23 13:41 2022-08-22-TT110-anthony_and_sahil.ipynb
-rw-r--r--  1 poonam  staff   9525 Aug 23 13:41 2022-08-22-TT110-bash_tutorial.ipynb
-rw-r--r--  1 poonam  staff  35721 Aug 25 13:14 2022-08-25-tool_check.ipynb
-rw-r--r--  1 poonam  staff  10141 Aug 23 13:41 2022-08-29-TP120-python_lists.ipynb
-rw-r--r--  1 poonam  staff  12632 Aug 23 13:41 2022-09-05-TT130-js_tutorial.ipynb
-rw-r--r--  1 poonam  staff    771 Aug 23 13:41 README.md
drwxr-xr-x  3 poonam  staff     96 Aug 23 13:41 images

Looking through the Jupyter notebooks.

echo "Look for images in notebooks, print working directory, list files"
cd $notebooks/images  # this should exist per fastpages
pwd
ls -l
Look for images in notebooks, print working directory, list files
/Users/poonam/vscode/APCSP/_notebooks/images
total 200
-rw-r--r--  1 poonam  staff  101617 Aug 23 13:41 kernels.png

Only one image in the notebooks folder.

echo "Navigate to project, then navigate to area wwhere files were cloned"

cd $project
echo "show the contents of README.md"
echo ""

cat README.md  # show contents of file, in this case markdown
echo ""
echo "end of README.md"
Navigate to project, then navigate to area wwhere files were cloned
show the contents of README.md

[//]: # (This template replaces README.md when someone creates a new repo with the fastpages template.)

![](https://github.com/nighthawkcoders/APCSP/workflows/CI/badge.svg) 
![](https://github.com/nighthawkcoders/APCSP/workflows/GH-Pages%20Status/badge.svg) 
[![](https://img.shields.io/static/v1?label=fastai&message=fastpages&color=57aeac&labelColor=black&style=flat&logo=data:image/png;base64,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)](https://github.com/fastai/fastpages)

https://nighthawkcoders.github.io/APCSP/

# My Blog


_powered by [fastpages](https://github.com/fastai/fastpages)_


## What To Do Next?

Great!  You have setup your repo.  Now its time to start writing content.  Some helpful links:

- [Writing Blogs With Jupyter](https://github.com/fastai/fastpages#writing-blog-posts-with-jupyter)

- [Writing Blogs With Markdown](https://github.com/fastai/fastpages#writing-blog-posts-with-markdown)

- [Writing Blog Posts With Word](https://github.com/fastai/fastpages#writing-blog-posts-with-microsoft-word)

- [(Optional) Preview Your Blog Locally](_fastpages_docs/DEVELOPMENT.md)

Note: you may want to remove example blog posts from the `_posts`,  `_notebooks` or `_word` folders (but leave them empty, don't delete these folders) if you don't want these blog posts to appear on your site.

Please use the [nbdev & blogging channel](https://forums.fast.ai/c/fastai-users/nbdev/48) in the fastai forums for any questions or feature requests.

end of README.md

The cat command allows the user to read the contents of the file, which is really useful.

echo "Show the shell environment variables, key on left of equal value on right"
echo ""

env
Show the shell environment variables, key on left of equal value on right

SHELL=/bin/bash
TMPDIR=/var/folders/c_/88_504y97hd643cmkq8tzqwr0000gq/T/
CONDA_SHLVL=1
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.oycAsUgh6D/Render
PYTHONUNBUFFERED=1
CONDA_PROMPT_MODIFIER=(base) 
OLDPWD=/Users/poonam/vscode/APCSP/_notebooks/images
ORIGINAL_XDG_CURRENT_DESKTOP=undefined
MallocNanoZone=0
PYTHONIOENCODING=utf-8
USER=poonam
CONDA_EXE=/opt/anaconda3/bin/conda
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.EaGiq3KNHr/Listeners
__CF_USER_TEXT_ENCODING=0x1F7:0x0:0x0
PAGER=cat
VSCODE_AMD_ENTRYPOINT=vs/workbench/api/node/extensionHostProcess
ELECTRON_RUN_AS_NODE=1
_CE_CONDA=
PATH=/opt/anaconda3/bin:/opt/anaconda3/condabin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
CONDA_PREFIX=/opt/anaconda3
PWD=/Users/poonam/vscode/APCSP
notebooks=/Users/poonam/vscode/APCSP/_notebooks
VSCODE_HANDLES_UNCAUGHT_ERRORS=true
project_repo=https://github.com/nighthawkcoders/APCSP.git
project=/Users/poonam/vscode/APCSP
project_dir=/Users/poonam/vscode
XPC_FLAGS=0x0
PS1=[PEXP\[\]ECT_PROMPT>
_CE_M=
XPC_SERVICE_NAME=0
SHLVL=2
HOME=/Users/poonam
VSCODE_NLS_CONFIG={"locale":"en-us","availableLanguages":{},"_languagePackSupport":true}
CONDA_PYTHON_EXE=/opt/anaconda3/bin/python
LOGNAME=poonam
VSCODE_IPC_HOOK=/Users/poonam/Library/Application Support/Code/1.70.2-main.sock
VSCODE_CODE_CACHE_PATH=/Users/poonam/Library/Application Support/Code/CachedData/e4503b30fc78200f846c62cf8091b76ff5547662
CONDA_DEFAULT_ENV=base
VSCODE_PID=52554
posts=/Users/poonam/vscode/APCSP/_posts
VSCODE_CWD=/
_=/usr/bin/env

The environment.

cd $project

echo ""
echo "show the secrets of .git"
cd .git
ls -l

echo ""
echo "look at config file"
cat config
show the secrets of .git
total 88
-rw-r--r--   1 poonam  staff    353 Aug 25 22:41 FETCH_HEAD
-rw-r--r--   1 poonam  staff     23 Aug 23 13:41 HEAD
-rw-r--r--   1 poonam  staff     41 Aug 25 13:14 ORIG_HEAD
-rw-r--r--   1 poonam  staff    314 Aug 23 13:41 config
-rw-r--r--   1 poonam  staff     73 Aug 23 13:41 description
drwxr-xr-x  13 poonam  staff    416 Aug 23 13:41 hooks
-rw-r--r--   1 poonam  staff  20021 Aug 25 13:14 index
drwxr-xr-x   3 poonam  staff     96 Aug 23 13:41 info
drwxr-xr-x   4 poonam  staff    128 Aug 23 13:41 logs
drwxr-xr-x  48 poonam  staff   1536 Aug 25 22:41 objects
-rw-r--r--   1 poonam  staff    271 Aug 23 13:41 packed-refs
drwxr-xr-x   5 poonam  staff    160 Aug 23 13:41 refs

look at config file
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
	ignorecase = true
	precomposeunicode = true
[remote "origin"]
	url = https://github.com/nighthawkcoders/APCSP.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master

Finding the secrets of .git!

Learning about bash was really interesting to see the many things it can show the user. It looks like it can be a very helpful tool.

Hacks

Is there anything we use to verify tools we install? Think about versions.

Using the bash script, we can use --version option for each of the tools to verify which version of the tool is installed. For example, executing the command python --version in bash will give us the version of python the user has installed. This helps to verify the tool that has been set up, and tells the version, so the user can know if they want to update it. Also, we can use conda list to check the programs and their versions.

Is there anything we could verify with Anaconda?

Using conda list, we can verify the programs installed. This is also useful to see what version of the program is installed.

How would you update a repository?

To update a remote repository with changes made to the local repository, we can use git push to push changes from a local repository to the remote repository. To update a local repository with changes made to the remote repository, we use git pull to pull the changes from the remote repository to the local repository. Additionally, git add and git commit are used to stage and commit changes.

Really cool would be automating a procedure from installation.

This can be done by writing and running programs using the Shell Script.