GNU Astronomy Utilities manual

Next: , Previous: , Up: Introduction   [Contents][Index]


1.6 New to GNU/Linux?

Some astronomers initially install and use the GNU/Linux operating systems because their research software can only be run in this environment. This is how the founder of Gnuastro started using GNU/Linux at least! If this is not the case for you, you can skip this section. Tutorials is a complete chapter with some real world example applications of Gnuastro making good use of GNU/Linux capabilities written for newcomers to this environment. It is fully explained and is easy and entertaining to read, we hope you enjoy it.

You might have already noticed that we are not using the name “Linux”, but “GNU/Linux”. Please take the time to have a look at the following essays and FAQs for a complete understanding of this very important distinction.

Another thing you will notice is that Gnuastro only has a command line user interface (CLI) or the ‘shell’ as it is referred to in Unix-like systems. This might be contrary to your mostly graphical user interface (GUI) experience with proprietary operating systems. To a first time user, the command line does appear much more complicated and adapting to it might not be easy.

Through GNOME 39, most GNU/Linux based operating systems now have a very advanced and useful GUI. Since the GUI was created long after the command line, some wrongly consider the command line to be obsolete. Both interfaces are very useful for different tasks (for example you can’t view an image, video or web page on the command line!). Therefore they should not be regarded as rivals but as complementary, here we will outline how the CLI can be useful in scientific programs.

You can think of the GUI as a veneer over the CLI to facilitate a small subset of all the possible CLI operations. Each click you do on the GUI, can be thought of as internally running a different command. So asymptotically (if a good designer can design a GUI which is able to show you all the possibilities to click on) the GUI is only as powerful as the command line. In practice, such designers are very hard to come by for every program, so the GUI operations are always a subset of the internal CLI commands. For programs that are only made for the GUI, this results in not including lots of potentially useful operations. It also results in ‘interface design’ to be a crucially important part of any GUI program. Scientists don’t usually have enough resources to hire a graphical designer, also the complexity of the GUI code is far more than CLI code, which is harmful for a scientific software, see Science and its tools.

For those operations with a GUI, one action on the GUI might be more efficient. However, if you have to repeat that same action more than once, it will soon become very frustrating and prone to errors. Unless the designers of a particular program decided to design such a system for a particular GUI action, there is no general way to run everything automatically on the GUI.

On the command line, with one command you can run numerous actions which can come from various CLI capable programs you have decided your self in any possible permutation with one command10. This allows for much more creativity than that offered to a GUI user. For technical and scientific operations, where the same operation (using various programs) has to be done on a large set of data files, this is crucially important. It also allows exact reproducability which is a foundation principle for scientific results. The most common CLI (which is also known as a shell) in GNU/Linux is GNU Bash, we strongly encourage you to put aside several hours and go through this beautifully explained web page: https://flossmanuals.net/command-line/. You don’t need to read or even fully understand the whole thing, only a general knowledge of the first few chapters are enough to get you going.

Since the operations in the GUI are very limited and they are visible, reading a manual is not that important in the GUI (most programs don’t even have any!). However, to give you the creative power explained above, with a CLI program, it is best if you first read the manual of any program you are using. You don’t need to memorize any details, only an understanding of the generalities is needed. Once you start working, there are more easier ways to remember a particular option or operation detail, see Getting help.

To experience the command line in its full glory and not in the GUI terminal emulator, press the following keys together: CTRL+ALT+F411 to access the virtual console. To return back to your GUI, press the same keys above replacing F4 with F1. In the virtual console, the GUI, with all its distracting colors and information, is gone. Enabling you to focus more accurately on your actual work.

For operations that use a lot of your system’s resources (processing a large number of large astronomical images for example), the virtual console is the place to run them. This is because the GUI is not competing with your research work for your system’s RAM and CPU. Since the virtual consoles are completely independent, you can even log out of your GUI environment to give even more of your hardware resources to the programs you are running and thus reduce the operating time.

Since it uses far less system resources, the CLI is also very convenient for remote access to your computer. Using secure shell (SSH) you can log in securely to your system (similar to the virtual console) from anywhere even if the connection speeds are low. There are apps for smart phones and tablets which allow you to do this.


Footnotes

(9)

http://www.gnome.org/

(10)

By writing a shell script and running it, for example see the tutorials in Tutorials.

(11)

Instead of F4, you can use any of the keys from F2 to F6 for different virtual consoles. You can also run a separate GUI from within this console.


Next: , Previous: , Up: Introduction   [Contents][Index]


Read in other formats.
GNU Astronomy Utilities manual, November 2015.