This wiki is intended to hold documentation of any kind about GNU Bash. The main motivation was to provide human-readable documentation and information so users aren’t forced to read every bit of the Bash manpage – which can be difficult to understand. However, the docs here are not meant as a newbie tutorial.
I recently faced a problem opening some JPG images that I have downloaded somewhere over the internet, probably Twitter. So I though I’d share the problem and the simple solution.
When I tried opening an image I got the following error
Error interpreting JPEG image file (Not a JPEG file: starts with 0x89 0x50)
As the error states I was trying to open an image with a JPEG extension but which was not actually a JPEG image. To further verify this and know the actually format I ran this command in the terminal:
which will give you something like this:
PNG image data, 346 x 480, 8-bit/color RGB, non-interlaced
The solution was to imply replace .jpg or .jpeg with the appropriate format, .png in this case.
Many Linux users usually need to repeat the same command over and over again. For the newbie she will often re-write the whole command. The average use might already know that there’s something called a bash history and so she would use the up and down arrows to navigate through the history. It will take a while to find the needed command.
The more advanced user would know the trick I am about to tell you to find the appropriate command in less than 3 seconds.
$ lsusb #list USB devices $ lspci #list all PCI devi $ startx #initialize an X session $ more #filter for paging through text one screenful at a time. (less gives more advanced). $ less #opposite of more; allows backward movement in the file as well as forward movement. $ stty #change and print terminal line settings $ stty size # prints terminal size
$ locate #find files by name (for newbies I suggest the gui catfish -requires installation) $ find #search for files in a directory hierarchy $ ls #list directory contents $ cd #change directory $ pwd #print name of current/working directory $ cp #copy files and directories $ rm #remove files or directories $ rmdir #remove empty directories $ file foo.format #extracts info about file and what software it was written with; helpful in the case of having forgot which software was used to produce such a file
$ uname $ df #report file system disk space usage #e.g; df or df /home $ man #interface to the on-line reference manuals $ free #Display amount of free and used memory in the system #e.g; free -mt (m for MB & t for totals line) $ uptime #tell how long the system has been running. $ finger #user information lookup program $ w #show who is logged on and what they are doing. $ whoami #print effective userid $ cat /proc/meminfo #memory info $ cat /proc/cpuinfo #cpu info $ lsb_release -a #print (a: all ) distribution-specific information $ last -x | grep shutdown #show listing of last 10 logged in users; you can pipe this to the tail to read the last n instances. #e.g; for 10 instances: last -x | grep shutdown | tail -n 10 $ last -x | grep reboot #show listing of last logged in users $ sudo shutdown -P hh:mm #shutdown & poweroff (-P) @ hh:mm
$ uname $ ps #report a snapshot of the current processes. $ top #display Linux tasks $ htop #interactive process viewer based on top $ watch #execute a program periodically, showing output fullscreen #e.g; watch -n 5 free -m $ powertop #program to analyze power consumption on Intel-based laptops $ kill pid #send a signal to a process $ killall proc #kill processes by name $ pidof program #find the process ID of a running program
Some useful terminal shortcuts
Thanks for reading
Here is the code you need to compile and install the free numerical and graphical MUESLI library, developed by Édouard Canot .
sudo apt-get install 'libatlas-dev liblapack-dev zlib1g-dev libreadline6-dev imagemagick libx11-dev libpng12-dev g++ gfortran' #installing dependencies
tar xvfj muesli-linux-all-2.6.3_2012-05-03.tar.bz2 #untar cd muesli-linux-all-2.6.3_2012-05-03/GNU_GFC ./configure --f90=gfortran --blas=/usr/lib/ --lapack=/usr/lib/lapack/ #configuring make -s distclean #clean your distribution from previous installation make -s (or for detailed output: make MODE=verbose) #compiling; this will take some time cd tests #testing make #make the test files ./run_all #run all the made test files cd .. make install #installing cd tests/fgl #testing fgl make #make the test files ./run_all #run all the made test files
For further help, please contact MUESLI’s author from the respective homepage .
 MUESLI library homepage: http://people.irisa.fr/Edouard.Canot/muesli/