RSH(1) | General Commands Manual | RSH(1)

# NAME

`rsh` —
remote shell

# SYNOPSIS

`rsh` | [`-46dn`] [`-l` username] [`-p` port] host [command]

`rsh` | [`-46dn`] [`-p` port] username@host [command]

# DESCRIPTION

`rsh` executes command on host.

`rsh` copies its standard input to the remote command, the standard output of the remote command to its standard output, and the standard error of the remote command to its standard error. Interrupt, quit and terminate signals are propagated to the remote command; `rsh` normally terminates when the remote command does. The options are as follows:

`-4`
  Use IPv4 addresses only.
`-6`
  Use IPv6 addresses only.
`-d`
  The `-d` option turns on socket debugging (using setsockopt(2)) on the TCP sockets used for communication with the remote host.
`-l` username
  By default, the remote username is the same as the local username. The `-l` option or the username@host format allow the remote name to be specified.
`-n`
  The `-n` option redirects input from the special device /dev/null (see the BUGS section of this manual page).
`-p` port
  Uses the given port instead of the one assigned to the service “shell”. May be given either as symbolic name or as number. If no command is given, note that rlogin(1) is started, which may need a different daemon (rlogind(8) instead of rshd(8)) running on the server; you want to pass the rshd(8) port number in that case.

If no command is specified, you will be logged in on the remote host using rlogin(1).

Shell metacharacters which are not quoted are interpreted on local machine, while quoted metacharacters are interpreted on the remote machine. For example, the command

`rsh otherhost cat remotefile >> localfile`

appends the remote file remotefile to the local file localfile, while

`rsh otherhost cat remotefile ">>" other_remotefile`

appends remotefile to other_remotefile.

# FILES

/etc/hosts

# SEE ALSO

rcmd(1), rlogin(1), rcmd(3), hosts.equiv(5), rhosts(5), environ(7)

# HISTORY

The `rsh` command appeared in 4.2BSD.

# BUGS

If you are using csh(1) and put a `rsh` in the background without redirecting its input away from the terminal, it will block even if no reads are posted by the remote command. If no input is desired you should redirect the input of `rsh` to /dev/null using the `-n` option.

You cannot run an interactive command (like rogue(6) or vi(1)) using `rsh`; use rlogin(1) instead.

Stop signals stop the local `rsh` process only; this is arguably wrong, but currently hard to fix for reasons too complicated to explain here.

March 9, 2005 | NetBSD 10.0