What do you need to know to do about Linux to be an effective researcher?
While every lab is different, we typically use Linux and the command line for some subset of research tasks. In part, this is because much of our “post-Moore” equipment is remotely accessible. It’s not always feasible to work with certain tools or hardware from the GUI.
As a baseline, we expect that any undergraduate or graduate researcher eventually learns how to do the following:
- Use the command line to inspect files and folders (ls, pwd, cd)
- Edit files on the command line (vim, emacs, nano, etc.)
- Search for items on the command line (grep, awk) and basic regular expressions
- Run build scripts (make, cmake)
- Use source control tools (git)
- Debug issues with environment variables (PATH, LD_LIBRARY_PATH, PYTHONPATH)
Understanding Environment Variables (PATH, LD_LIBRARY_PATH, etc.)
Please see this wiki page for the basics on Linux PATH and LD_LIBRARY_PATH variables.
Reviewing Linux Concepts
- MIT’s Missing Semester: this set of material is highly recommended as it goes through command line, source control, and most of the skills mentioned above.
- The Art of Command Line
- https://software-carpentry.org/lessons/
- https://cmdchallenge.com/ - test your understanding of the Unix shell
- https://regexcrossword.com/ - test your understanding of regular expressions