---
# System prepended metadata

title: Jam 00 - Exercise 1 - Learning the Shell
tags: [jam00, linux, setup, shell, "4 \U0001F973 done"]

---

---
title: "Jam 00 - Exercise 1 - Learning the Shell"
tags:
  - 4 🥳 done
  - jam00
  - setup
  - shell
  - linux
---
<!-- markdownlint-disable line-length single-h1 no-inline-html -->
<!-- markdownlint-configure-file { "ul-indent": { "indent": 4 }, "link-fragments": {"ignore_case": true} } -->

# Exercise 1 – Learning the Shell

{%hackmd dJZ5TulxSDKme-3fSY4Lbw %}

## Overview - Exercise 1

As you progress throughout your work in this course, you will be working at the **shell prompt**. If you don't know what a shell prompt is or what it means when you are told to open your terminal, this first exercise will get you going. The first few weeks of this course will spend a lot of time at the shell prompt until we get to the part of the course using a more advanced _Integrated Development Environment_, or IDE. All computer science students need to understand how to work at the shell. It's used in future courses in CSCI, and there are a variety of tasks that are much easier to complete at the shell.

For example, suppose we asked you, "Please create a new directory called csci205_jams and then change your current working directory to it." Would you know how to do this at the shell prompt, using File Explorer (Windows) or Finder (MacOS)?

While you may know how to do basic file management using your OS apps like File Explorer or Finder, those apps are slow, cumbersome, and extremely limiting compared to becoming fluent in working at the shell.

:::info
🎯 **Why the Shell Matters**

- Essential skill for all computer scientists
- Used extensively in future CSCI courses
- More efficient than graphical interfaces
- Required for many development tasks
- Industry standard for development work

:::

**Learning to work at the shell is an essential skill for all computer scientists.**

## Required Steps - Exercise 1

### Logging in

1. Log into your Linux account:
    - **If you want to use the lab computer**, simply turn on the computer and log in
    - **If you want to use your own laptop**:
        a. Open your browser and connect to [Bucknell Remote Linux](https://bucknell.teamdynamix.com/TDClient/40/LIT/KB/ArticleDet?ID=274)
        b. Note: Chrome works best as it supports standard mouse/trackpad gestures
    - **If you are NOT in the lab** and off campus, you'll need the [Bucknell VPN](https://bucknell.teamdynamix.com/TDClient/40/LIT/KB/ArticleDet?ID=300)

    :::warning
    🔑 **Plan Ahead for Off-Campus Access**
    You'll need the VPN installed whenever you want to access Linux remotely from off-campus. This includes:

    - Spring break
    - Athletic travel
    - Weekend trips home
    - Study sessions off campus

    **Add a reminder to your calendar now** to install the VPN before you need it! You don't want to be stuck unable to complete work because you can't connect.
    :::

2. Once logged in, locate and click the terminal icon on the right side of the screen.  If you don't see it, click **Show Applications** on the bottom left and search for "terminal"
    ![Picture1](https://hackmd.io/_uploads/r1u6bdjz1x.png)

3. You should see your terminal program open and ready to go.
    ![Picture2](https://hackmd.io/_uploads/Hk3efdsGke.png)

4. In your browser, open [Linux Command Tutorial](https://linuxcommand.org/lc3_learning_the_shell.php)
    - Work through the "Learning the Shell" section
    - Try each command as you learn it
    - If a command gets stuck, press `Control-C` to cancel it

:::success
🔑 **Key Commands to Master**

- Navigation: `pwd`, `cd`, `ls`
- File Operations: `cp`, `mv`, `rm`
- Directory Operations: `mkdir`
- Viewing Files: `less`
- Help: `man`
- Special Paths: `.` (current directory), `..` (parent directory), `~` (home directory)
- File Patterns: `*` (wildcard)

👀 **Note**: Expect a quiz on these commands soon after this jam is due!
:::

> 🔍 **Checkpoint**: Verify your access:
>
> - You can log into Linux
> - Terminal opens successfully
> - You see a command prompt
