Sharing Files Between Computers on a Local Network Using Linux

Written by BinnyVA on July 26, 2008 – 10:47 pm -

Windows has a nice feature in Networking – you just configure the IPs correctly, and the network sharing “magically” works. In Linux we will have to manually configure Samba or some other similar tool to share files between two linux systems – and that’s a bit daunting for a new user. But there is an easier way – using SSH.

SSH or Secure Shell is a program for logging into a remote machine and executing commands on a that machine. Don’t worry – you won’t have to type commands to transfer files – there are GUI clients that supports SSH protocol – for example, the great Konqueror.

SSH is installed and turned on in most distros – so chances are you are running an SSH server at the moment. But if its not installed by default, you can install it using these commands…

In Fedora/Red Hat

yum install openssh

In Ubuntu/Debian

apt-get install openssh

After installing it, you have to activate it in the Services configuration utility. Once that is done, SSH will turned on at boot. Make sure the remote machine have SSH installed and running before trying to connect to it.

An Example Implementation

I use SSH to transfer files between my system and my brothers system. This will give you an overview of the network…

Home Network

Both the systems have SSH enabled. Now if I want to get some files from my brother’s system, all I have to do is open Konqueror and enter this address in the Address bar: fish://username@192.168.1.20

That is fish://[Remote User]@[Remote Machine’s IP/Name].

This will show a password prompt – where you have to input the password of the remote user. Once that is done, you will see all the files in the remote machine that is accessable by the user you logged in as. All operation you are used to in Konqueror are still supported – Copy/Paste, Drag and Drop etc – they will work between the local system and the remote machine.

If you are a Gnome user, this is possible in Nautilus as well. Instead of fish://username@192.168.1.20 , you have to enter ssh://username@192.168.1.20 in the address bar – protocol is ssh:// instead of fish://.

Limitations

Keep in mind that this is practical only for small home networks. If you are implementing a large network with permission settings, shares and stuff, go with Samba. SSH is not a choice there.


Tags: , , , , , ,
Posted in KDE, Networking, Tools | 4 Comments »

fish(Friendly Interactive Shell)

Written by BinnyVA on April 8, 2007 – 1:00 pm -

fish(Friendly Interactive Shell) is a new shell for Linux. I tried it out and have decided to dump bash for fish. Try it out – you will come to the same conclusion as well.

Features of fish

Syntax Coloring

The shell colorizes the commands as you type them – if it is a valid command it will have a green color. For example, lets say I want to see my network interfaces. Recently, I had a lot of use for that – but that is another post. So, I type ifconfig into the shell. When I am at ‘ifco’, the shell will be like this…

Ifco - Typing completion

When I have completed the command, ifconfig, the shell will be like this…

Completed

Strings, matching etc. are also highlighted as you type.

Syntax Highlighting

Tab Completion

You would not think that this is a new feature. Bash has tab completion. Even Windows XP’s DOS terminal has tab completion. But fish’s tab completion is no ordinary tab completion – think of it as tab completion on steroids.

fish’s tab completion implements a feature that I really needed – tab completion for subcommands. Subcommand is the command line argument that is given to some programs. For example,

yum update gimp
cvs commit file.php

In the first example, yum is the command an ‘update‘ is the subcommand. Just type ‘yum upd’ and press Tab to complete the command. Similarly in the second case cvs is the command and commit is the subcommand.

Many other completions are also supported…

  • Commands, both builtins, functions and regular programs.
  • Environment variable names (Eg. $HOME).
  • Usernames for tilde(~) expansion.
  • Filenames, even on strings with wildcards such as ‘*’, ‘**’ and ‘?’.
  • Job id, job name and process names for process expansion. This is very useful when using kill.

Enough talking. You can download the fish shell from their official website. For Red Hat/Fedora Core users, this command will do the trick.

yum install fish

If you are a debian or Ubuntu user, use this command

apt-get install fish


Tags: , , ,
Posted in Command Line, Tools | 5 Comments »