What is the Unix Shell?
The structure of a computer’s operating system is described using the metaphor of a nut. The innermost program layer is the Kernel, which connects the hardware and the software of the machine, and gives programs access to the power and resources that they need in order to run. The next layer ‘around’ the Kernel is the Shell. The Shell is a program layer that can take input from you and communicate with the Kernel.
You are in fact using the Shell whenever you use your computer’s Graphical User Interface, or GUI, the visual system made up of elements like the mouse cursor, desktop and icons. But there is also another way to use the Shell, known as a Command-Line Interface, or CLI. This CLI lets you send text commands directly to your computer’s Shell, which will then communicate directly with the Kernel (and other programs, as directed) in order to carry them out. This CLI is usually what is being referred to when people talk about using the Shell.
What is the Unix Shell useful for?
While the GUI makes your computer easy to use, it does not give you full control over all its possible functions. Using the Command Line Interface to control the Shell, in contrast, enables you to carry out a huge range of tasks. Harnessing the Shell through a CLI is particularly useful for dealing with large volumes of data, when you need to automate a process, or when you want to stitch a number of different program functions together into a single process. It can be used to:
- Change a word or number inside thousands of files without having to manually open any of them
- Rename a large batch of files using a special naming format
- Fetch some data from the web, convert it to a specific format, run it through a program, and save it
Using the Shell is also an important skill to develop before moving onto the use of High-Performance Computing (HPC).
Where can I get it?
The Shell is a key component of all computers, so this tool is free as long as you have a machine to use. On most Unix-like systems, you would use the Terminal application as your CLI. On shared or networked computers, your ability to access the Shell will often be limited. This is because the Shell provides access to so many advanced functions that could threaten the security and stability of the network. You may need to request permission from your system administrator to access the Shell of your machine using the CLI.
Unix Shell workshops
Unix Shell events run regularly throughout the year and include the following workshops:
- Introduction to Unix shell and command line
Registering for a workshop
Workshop registration is available through myDevelopment. This aligns with myPlan and training records for staff, and enables more streamlined processes for assigning credit towards the Monash Doctoral Program for Graduate Research students.
To search for upcoming Data Fluency workshops log into myDevelopment from your myMonash portal. Type "Data Fluency" or the software you are interested in (eg. "python") into the search box to find a list of available workshops.
No access to myDevelopment?
If you do not have access to myDevelopment, please complete the relevant form:
- External staff and users (without Monash ID) Requires Monash approver name and email address.
- Monash students (non-Graduate Research) Requires current Monash student ID.
Staff Development will validate and approve access. This process will take one business day to complete. An email will be sent to users confirming access details.
Where else to find training
You can find more online training materials for this tool via the Library. Visit LinkedIn Learning or Safari to access a range of videos, eBooks and online courses, or try using Library Search to find other resources to help you master this tool.
If you're still not sure where to start, use the details below to get in touch with the Data Fluency community.