Setting Up a Computer Environment for Research ============================================== Terminal Tools -------------- Terminal Emulator ~~~~~~~~~~~~~~~~~ - `iTerm2 - macOS Terminal Replacement `__ - A nice free choice for **MacOSX**. `iTerm2 `__ brings the terminal into the modern age with features you never knew you always wanted. - A `cheat sheet of iTerm2 shortcuts `__ - It becomes easier and easier to do research under Windows system: - `Microsoft’s terminal - The new Windows Terminal, and the original Windows console host `__ - `cmder - Portable console emulator for Windows `__ - Different Linux releases have there own default terminal emulator and normally they are good enough for research works. Meanwhile, there are some nice choices of drop-down style emulators: - `tilda - A Gtk based drop down terminal for Linux and Unix `__ - `guake - Drop-down terminal for GNOME `__ - **Guake** is a dropdown terminal made for the **GNOME** desktop environment. **Guake**\ ’s style of window is based on an FPS game, and one of its goals is to be easy to reach. Terminal Multiplexer ~~~~~~~~~~~~~~~~~~~~ - `GNU Screen `__ - **Screen** is available in most Unix/Linux system release. - `How to use Linux Screen `__ - `tmux - a terminal multiplexer for Unix-like operating systems `__ - Similar to **Screen**. There are a lot of discussions about the pros and cons of **Screen** and **tmux**, but as a beginner, either is fine. - Read `A tmux crash course `__ and `tmux shortcuts and cheat sheet `__ before you use it. Shell Environment ----------------- Fluency on the command line is a skill often neglected or considered arcane, but it improves your flexibility and productivity as an engineer in both obvious and subtle ways. – The Art of Command Line - **The same also applies to student of science and researcher.** - `The Art of Command Line `__ - In multiple languages, including Chinese - `37 Important Linux Commands You Should Know `__ - `awesome-command-line-apps - Use your terminal shell to do awesome things `__ - A curated list of useful command line apps, in celebration of the TUI. - `awesome-macos-command-line - Use your macOS terminal shell to do awesome things `__ - A curated list of shell commands and tools specific to OS X. - A lot of these actually work for Linux too. Regular Expression ~~~~~~~~~~~~~~~~~~ - Regular expression (**regex**) is a group of characters or symbols which is used to find a specific pattern from a text. It is very useful to learn the basic of **regex**. - `Learn Regex the Easy Way `__ - There is a `Chinese version `__ **Bash** related ~~~~~~~~~~~~~~~~ - `Pure Bash Bible `__ - A collection of pure bash alternatives to external processes. - `Bash Notebook `__ - In depth Bash notebook in multiple languages - `Bash-it - a collection of community Bash commands and scripts for Bash 3.2+ `__ - Achieve some of **zsh**\ ’s functions in **bash**. Other than **bash** ~~~~~~~~~~~~~~~~~~~ - `Oh My Zsh `__ - Code on Github is `here `__ - `The Fish Cookbook `__ - Tips and recipes for fish, from shell to plate Version Control --------------- **Git** ~~~~~~~ - `git `__ is the most widely used software for version control and it is extremely useful to learn the basic of it. - Plenty of reference and examples are provided in the above webpage including many short videos. - `Learn Git with Bitbucket Cloud `__ is another good place to start learning about version control using **git**. - `Git cheat sheet `__ and `Advanced Git Tutorials `__. - `Oh shit, git! `__ - A very practical guide for when you screw up in **git**. Others ~~~~~~ - `mercurial `__ is another popular version control software. System Tools ------------ - `gotop - system monitor `__ - A terminal based graphical activity monitor inspired by gtop and vtop - `tldr - command document for human `__ - Simplified and community-driven man pages - `thefuck - Magnificent app which corrects your previous console command `__ - Well….it is actually kind of useful… -------------- MacOS ----- - `mac-setup: Installing Development environment on macOS `__ - The more readable website is `here `__ Mount harddrive in Linux file system ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Linux system uses **ext4** or other similar file system that is not automatically readable under **MacOSX**. The `ext4fuse software `__ will be useful. - Please read `this stackexchange thread `__ for more details. - `ExtFS `__ is not a free software. It costs you $39.95 but it is claimed to be able to mount or even repair **ext** system under **MacOSX**