Categories
Blog Command Line Featured Linux

10 Command Line Tricks I Wish I’d Always Known

One thing that Linux Guru’s and Terminal Wizards often argue is that it’s way quicker to use the command line to do anything in Linux than it is through menus and what not. While the jury is still out on this, there are a lot of things they know which do help put the ball in their court which can often take a lot of time exploring the terminal to discover. I’ve compiled a list of my favourite commands and tricks that I think that would have saved me a bunch of time if I’d been aware of them when I first ventured in to Linux.

1. Repeat Recent Commands:

Let’s say you’ve just ran a command but forgot you needed to run it as sudo, you can use !! to repeat it with the additional sudo at the beginning, as below:

alex:~$ apt-get install package
alex:~$ sudo !!
sudo apt-get install package

Additionally you’re able to use this to go back further than the last command by replacing the second ! for -n (where n is the number of commands ago you want to repeat).

alex:~$ ls
alex:~$ cd dir
alex:~$ cat file
alex:~$ !-3
ls

How about if you want to reuse the arguments from the last command but not the command itself, well it can do that too:

alex:~$ ls /home/alex/Desktop
alex:~$ cd !*
cd /home/alex/Desktop

2. Replace String In Last Command:

The use of the following command allows you to repeat the last command but replacing a string within it, useful if you made a mistake or typo. The follow example shows correcting a path for a change directory command.

alex:~$ cd /this/dir/is/wrong
alex:~$ ^wrong^right^
cd /this/dir/is/right

3. Reset:

Chances are, you’ll come across a situation where you’ve seemingly borked a terminal. Maybe you used cat on the wrong file or a program tried to export some strange characters which changed the settings. The following command should get you back to a fresh terminal quickly and you can often run it even when you don’t think you can. If the screen is really borked, try hitting enter before hand, typing reset and hitting enter again.

alex:~$ reset

4. Running A Command In The Background:

Adding an & after the command you run allows you to continue to use the terminal screen while keeping the process running. Below shows an example of opening gedit in the background but allowing me to continue using the terminal for other commands. Great for editing and compiling code with the minimal number of terminals open.

alex:~$ gedit &

Once ran it’ll give you the process ID which allows you to kill it easily once you’re done with it.

5. Exiting A Terminal & Keeping Background Processes Running:

If you’ve opened a bunch of processes in the background (as per previous command) but now you want to close the terminal screen but not these processes you can use the following to release the ownership of the processes and exit.

alex:~$ disown -a && exit

6. htop:

Similar to ‘top’ (which allows you to view tasks in real-time with other useful info such as memory and CPU usage) but it’s displayed in a much easier to understand and interactive. It allows you to kill tasks without entering its PID, search, filter, sort and a bunch of other features.

alex:~$ htop

7. Reverse History Search:

Ctrl + r

Using this will allow you to start typing and it’ll find the last command that contained the string you’re typing, hitting enter will execute that command. For example:

alex:~$ cd /home/alex/this/is/a/dir
ctrl+r & typing "a/dir"
(reverse-i-search)`': cd /home/alex/this/is/a/dir

8. Piping (Combining) Commands:

Piping commands allows you to pass the data that would usually be outputted to be directly passed as an input to another command, for example below is a list command being passed in to the less command to allow for scrolling of the data. This will work for most commands and experimentation is the best form of learning in this case.

alex:~$ ls | less

9. Auto Complete Command & File Names:

Half way through typing a command you can hit the Tab key and it’ll auto complete the word for you, if there are more than one other possible combinations a double tap of it will show you the possibilities. This also works for directory and files and can save some serious typing time.

10. Other useful Keyboard Shortcuts:

A few other keyboard shortcuts that are also useful to know (and not always as obvious as they should be):

Ctrl + c – kill current process
Ctrl + z – put current process in to the background
Ctrl + l – clear the terminal
Ctrl + a – set cursor to the start of the line
Ctrl + e – set cursor to the end of the line
Ctrl + shift + c – copy
Ctrl + shift + c – paste

Categories
Arch Linux Blog Command Line Fedora Linux Posts Ubuntu

Switching Between Two Resolutions in Linux

I have a TV and my monitor connected to my PC by a VGA switch box but what’s annoying is they aren’t the same resolution. This causes problems because I can’t see what I’m doing when I have switched to TV and usually have to leave the setting manager open so that when I change between them I just have to hit return and the resolution changes. That’s great and all but it’s far more effort than I want for something I do fairly often.

My plan was initially to create two xorg.conf files and switch between them using a script, I figured this would be the easiest way even though I haven’t messed around with xorg stuff for a few years ever since things just started working better in Linux. Turns out I couldn’t even find where they keep the xorg.conf file, it sure isn’t in /etc/X11 where it was the last time I looked..

On the search for this file though I came across another useful tool called xrandr, which essentially allows you to change the resolution from the command line.

Xrandr is used to set the size, orientation and/or reflection of the outputs for a
screen. It can also set the screen size.

If invoked without any option, it will dump the state of the outputs, showing the
existing modes for each of them, with a ‘+’ after the preferred mode and a ‘*’
after the current mode.

There are a few global options. Other options modify the last output that is spec‐
ified in earlier parameters in the command line. Multiple outputs may be modified
at the same time by passing multiple –output options followed immediately by
their corresponding modifying options.

For more information on xrandr check out the manual page (or type man xrandr in terminal).

It turns out it’s an extremely easy tool to use, with a command as simple as the following changing the resolution:

xrandr --output VGA1 --mode 1440x900

So the next thing I did was create the following script which allows the resolution to switch between 1440×900 and 1360×768 (my monitor and my TV native resolutions).

#!/bin/bash

TV="1360 x 768"
MONITOR="1440 x 900"

TEST="$(xrandr | grep current | sed -e 's/.*current //;s/, maximum.*//')"

#echo $TEST

if [ "$TEST" == "$MONITOR" ]
        then
                xrandr --output VGA1 --mode 1360x768

elif [ "$TEST" == "$TV" ]
        then
                xrandr --output VGA1 --mode 1440x900

else

        exit

fi

This script simply checks what the current resolution is being used and then toggles between the two set resolutions.

Categories
Arch Linux Blog Command Line HowTo Linux Posts Ubuntu

HowTo: Remove Every Other Line in Text Files – Linux

Let’s say you’ve got a text file, of any size, big or small, and you want to remove every other line of that file, well here are a few commands in Linux that allow you to do this.

Example, you want to get from this:

1
2
3
4
5
6
7
8
9
10

To this:

1
3
5
7
9

The sed way:

 sed -n "p;N;" file.txt > newfile.txt

The awk way:

 awk 'NR%2 != 0' file.txt > newfile.txt

Here you can actually specify N lines, replace 2 in the above command and you’ll be able to take out every N’th number. As an example, here’s the above replaced with a 3 on the file:

1
2
4
5
7
8
10

Easy as pie, right?

Categories
Command Line HowTo Linux Posts Ubuntu

HowTo: Mount USB Persistent casper-rw File in Linux

So, you’ve created an awesome Live USB Linux stick with a persistence file which let’s you boot anywhere and carry all your sweet sweet datas around on it too. If you want to see those files in Linux on your desktop or laptop outside the USB you’re going to have to mount the loop device (the casper-rw file) somewhere first. The following commands show how to make a folder and mount the loop and then unmount it too.

Just change the /media/USB/ for the mounted location of your mounted USB stick which contains the casper-rw file you want to view the contents of and the /home/alex/caspermnt/ for the mount point on your system.

Mount:

 mkdir ~/caspermnt
sudo mount -o loop /media/USB/casper-rw /home/alex/caspermnt/

Unmount:

 sudo umount ~/caspermnt/

This can be useful for recovering data from a borked Live USB stick or for backing up your files on your computer just to be sure.

Categories
HowTo Posts Ubuntu Video

HowTo: Switch the Window Menu Buttons Back to the Right – Ubuntu 10.04 / 10.10 / 11.04

I’m not an OSX person and personally prefer my minimise, maximise and close buttons to be in that order on the right, which they are not as default on the new Ubuntu 10.04 (Lucid Lynx) so here’s how you can swap them back to their rightful place (pun intended).

This can be done either of two ways:
Use the following one line command to edit gconf (for more info type man gconftool):

gconftool -s /apps/met>gconftool -s /apps/met>gconftool -s /apps/metacity/general/button_layout -t string menu:minimize,maximize,close

OR
Using gconf-editor (the GUI version):

  1. In terminal type: gconf-editor
  2. Navigate to /apps/metacity/general
  3. Change button_layout to: menu:minimize,maximize,close
  4. Hit enter and you are done.