Coder Social home page Coder Social logo

cambiotraining / unix-shell Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 3.0 2.48 MB

Materials for "Introduction to Unix Shell" course.

Home Page: https://cambiotraining.github.io/unix-shell

License: Other

HTML 6.31% SCSS 32.24% Lua 28.95% Shell 32.49%

unix-shell's Introduction

Introduction to the Unix Shell

This repository contains the materials for the course.

Course Developers: see our guidelines page if contributing materials.

These materials are released under a CC BY 4.0 license.

unix-shell's People

Contributors

ilina-moitra avatar tavareshugo avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

unix-shell's Issues

2022-10 course debrief

TODO:

  • Symbolic links confusion
  • # key on Mac OS using Guacamole
  • Exercise file paths -- use an actual file path on their machines to make it clearer.
  • scripts directory -- this caused confusion as to where the directory should be.
    • maybe skip creating directory to keep things simple -- script can go in the folder of the data.

Other ideas/comments:

  • Streamlining second half of the course:
    • Consider skipping some parts
    • Could we skip for loops entirely in this course -- instead cover that in a new module for "advanced Bash programming"?
  • Related to the above, could we split this into two courses?
    • The basics in one course (including scripts, variables and remote resources).
    • Advanced stuff in another course (including for loops, sed, awk).
    • Making two courses brings issues of logistics and prerequisites.
  • (Raquel) Screen splitting -- was very cool idea for teaching!
    • For example, showing command running and in the file explorer next to it visualise what just happened

find

Would be nice to have something about find command. Maybe in the Files & Folders lesson, after the wildcards.

trainer delivery notes

  • The workshop is mostly live-coded (i.e. the trainer is coding along with the participants).
  • The exception is the very start of the workshop, where we provide some slides to help get things started.
    The slides contain speaker notes, which should help you deliver the session.
    These slides basically cover section 3 of the materials.
  • You can use the written materials as a guide to prepare the delivery (basically going through the same commands and explanations given in the materials).
  • If you want to make small changes in your teaching, that's fine - the materials are a guide, but you can decide to tweak things for your own style of delivery.
  • Information boxes (grey with the โ“˜ symbol) contain extra information, which can be skipped in the live workshop (if tight for time).
  • Give participants a set time for exercises (e.g. 10 minutes) but ask them to press the green button (online) or use the green sticky note (in-person) to signal they have completed the exercises - this will help you determine that the class is ready to move on.
  • After giving time for the exercise, go through the solution - this is useful for those that didn't manage to complete the exercise, or to reinforce their learning.
  • Level 3 exercises (marked with triple star ๐ŸŸŠ๐ŸŸŠ๐ŸŸŠ) are not covered in the live workshops (they are extra exercises for faster participants).

During the workshop:

  • Remember to increase the font size on your terminal.
  • It's preferable to slow down the pace of the workshop if you notice participants are having difficulties, and cut material at the end, rather than rush things and risk loosing a large proportion of the audience.
  • If you are behind on the materials, you can either skip some exercises, or solve the exercises with the participants (rather than giving them time to do it by themselves).

Guacamole issues

Some issues using the Guacamole interface:

  • The # key sometimes doesn't work on Mac OS. This varies between keyboards, but we should try to compile some solutions for common keyboard versions/layouts.

ideas for remote lessons

  • Connect to HPC - could mention e.g. what a scheduler is
  • ssh keys? (although links are self-explanatory)
  • FTP
  • X-forwarding

tmux/screen

Maybe mention this somewhere?
Possibly in the remote server section (as that a most common scenario when one would use these)

WSL - creating links to Desktop/Documents

TODO:

  • Update instructions using wslpath and powershell.exe to automatically fetch paths
  • Test instructions on users that have OneDrive as default

When participants use their own laptops in workshops, often they install WSL but don't setup the symbolic links to their Desktop, which means the course doesn't work later on.

Need to improve the instructions (maybe a video?)

WSL instructions for users on OneDrive

The instructions given to create symbolic links to Documents, Desktop, etc. are wrong if the users connected their computer to OneDrive.
The path is instead:

/mnt/c/Users/<username>/OneDrive/Documents

etc.

Downloads is still in the user's home (not on OneDrive)

2023-03-15 Course Debrief

Content:

  • Intersperse exercises in Files & Folders
  • New early exercise to let them explore the filesystem. Idea: change a filename using your explorer and then check on the terminal that the file has changed.
  • Make sure to clarify distinction between grep and *
  • In for loops: clarify that scripts can call other scripts.
    • maybe a diagram would help here
    • some scripts we write for a particular analysis, other scripts we use to automate our analysis (and they may be calling the specific scripts)

Delivery:

  • Add to trainer tips:
    • Have the file explorer next to the terminal to show the correspondence between the two
    • When should you listen and when should you follow along?
  • Remember to test screen share with trainer on day 1
  • Remove remote resources from timetable

Transferred from last iteration:

  • make username and directory structure consistent between the room and Guacamole (currently the room is /home/participant and guacamole is /home/ubuntu. A username called "participant" seems more logical.
  • Make sure the course materials match the username that is chosen for issue above.

2023-01-10 Course Debrief

Issues:

  • make username and directory structure consistent between the room and Guacamole (currently the room is /home/participant and guacamole is /home/ubuntu. A username called "participant" seems more logical.
  • Make sure the course materials match the username that is chosen for issue above.

Mac issues

  • colourful terminal: iterm2
  • some commands different: ls --help and ls --block-size don't work
  • need to quote the dropbox link with curl -- and emphasise that wget is not available by default on MAC OS
  • the find command on Mac needs a directory as input (it doesn't accept no directory as input, I think)

macOS keyboard shortcuts on Guacamole

This is a problem affecting macOS users only, where keyboard shortcuts don't work properly on Guacamole.
This issue is an attempt to document some of the problems we encounter and how to solve them:

Language Symbol Shortcut
UK # right option + shift + 3 (the left option does not work)
US (I think) # Fn + Cmd + 3
Spanish | option + command + 1

Backslash syntax

Because this is used in other courses, it may be worth explaining what the backslash is for.

Parallelisation

  • GNU parallel
  • Other features such as using & in a for loop or ctrl + z/fg to keep things running in background.
  • Mention parallelisation in general

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.