-
Notifications
You must be signed in to change notification settings - Fork 0
Linux, bash, and Git resources
We have collated a few resources for getting started with Linux.
- Linux resources for Harvard-ACMG users
- Basic Linux commands
- Linux commnand cheat sheet
- Summary of Unix commands (PDF doc)
- A Brief Introduction to Unix (by Corey Satten)
- The 15 Essential Unix commands (by Pete Freitag)
- Installing the Windows Subystem for Linux
You can also find a lot of third-party information online with information about Linux (including Youtube videos).
Q. Some of the links above refer to Linux and others to Unix. What's going on?
A. Unix was originally one of the first time-sharing operating systems, originally developed for the Digital PDP-11 computer. For many years, the Unix license was held by AT&T. Over time, a number of licensed Unix flavors (e.g. IRIX for Silicon Graphics machines, Solaris for Sun machines, AIX for IBM machines, UNICOS for Cray machines, etc.) have come and gone. So you can think of Unix as more of a family of operating systems than as a single operating system.
In the early 1990's, Linus Torvalds reverse-engineered the Unix kernel (i.e. the "heart" of the operating system) and made it freely available. This new kernel was named the Linux kernel after its inventor. At about the same time, the GNU project at MIT had created several "Unix-like" utilities (i.e. ls', 'cp, 'mv', grep, emacs, etc). The combination of the Linux kernel and the GNU utilities resulted in what is commonly called GNU/Linux. There are several GNU/Linux distributions available today.
In common usage Linux and Unix are bandied about interchangeably, even though they refer to different operating systems. Unix (except for some derivatives like FreeBSD) has largely been superseded by Linux.
One of the nice features of Linux is that you can highly customize your environment by selecting a different user interface, or shell. While there are several Unix shells that you can pick from, we recommend using bash, which is the de-facto standard on most HPC computing systems.
You can also write shell scripts to perform several commands (such as copying files or running programs) sequentially. This will save you the trouble of having to type the same commands over and over at the command-line prompt.
Here are some resources that you can use to learn more about the bash shell:
- What is the .bashrc file on SuperUser
- The Bash Shell Startup Files (by Beyond Linux from Scratch)
- LinuxCommand.org interactive tutorial
- How to use the Unix alias command
- Bash Guide for Beginners (by tldp.org)
- Bash programming for beginners (by tldp.org)
- Advanced Bash scripting (by tldp.org)
- Using bash functions in scripts (by Bob Yantosca)
Many scientific software applications (including GEOS-Chem, and GCPy) use Git for version control and for source code distribution. If you have never used Git before, we invite you to view the following resources:
- Our Guide to using Git with GEOS-Chem on the GEOS-Chem wiki is a good basic introduction to Git and version control.
- Our video tutorial Managing Git branches between the superproject and submodules. This will be especially useful to you if you are using GEOS-Chem 13.0.0 and later.
We use Github to store the GEOS-Chem source code, as well as source code for related software packages such as GCPy. You may also report a bug or request support by opening an issue on the issue tracker attached to the relevant Github repository. You may also search for past issues (to see if a given bug has already been fixed). Please see: