comparison man/tramp.texi @ 64772:060177e931f8

Sync with Tramp 2.0.50.
author Michael Albinus <michael.albinus@gmx.de>
date Sun, 07 Aug 2005 15:42:42 +0000
parents d20f7349d704
children 3723093a21fd
comparison
equal deleted inserted replaced
64771:ef0eb1c0d920 64772:060177e931f8
216 216
217 @node Overview 217 @node Overview
218 @chapter An overview of @value{tramp} 218 @chapter An overview of @value{tramp}
219 @cindex overview 219 @cindex overview
220 220
221 After the installation of @value{tramp} into your @value{emacsname}, you 221 After the installation of @value{tramp} into your @value{emacsname},
222 will be able to access files on remote machines as though they were 222 you will be able to access files on remote machines as though they
223 local. Access to the remote file system for editing files, version 223 were local. Access to the remote file system for editing files,
224 control, and @command{dired} are transparently enabled. 224 version control, and @code{dired} are transparently enabled.
225 225
226 Your access to the remote machine can be with the @command{rsh}, 226 Your access to the remote machine can be with the @command{rsh},
227 @command{rlogin}, @command{telnet} programs or with any similar 227 @command{rlogin}, @command{telnet} programs or with any similar
228 connection method. This connection must pass @acronym{ASCII} 228 connection method. This connection must pass @acronym{ASCII}
229 successfully to be usable but need not be 8-bit clean. 229 successfully to be usable but need not be 8-bit clean.
287 Communication with this process happens through an 287 Communication with this process happens through an
288 @value{emacsname} buffer, that is, the output from the remote end 288 @value{emacsname} buffer, that is, the output from the remote end
289 goes into a buffer. 289 goes into a buffer.
290 290
291 @item 291 @item
292 The remote host may prompt for a login name (for @command{telnet}). The 292 The remote host may prompt for a login name (for @command{telnet}).
293 login name is given in the file name, so @value{tramp} sends the login name and 293 The login name is given in the file name, so @value{tramp} sends the
294 a newline. 294 login name and a newline.
295 295
296 @item 296 @item
297 The remote host may prompt for a password or pass phrase (for 297 The remote host may prompt for a password or pass phrase (for
298 @command{rsh} or for @command{telnet} after sending the login name). 298 @command{rsh} or for @command{telnet} after sending the login name).
299 @value{tramp} displays the prompt in the minibuffer, asking you for the 299 @value{tramp} displays the prompt in the minibuffer, asking you for the
363 363
364 @item 364 @item
365 Again, @value{tramp} transfers the file contents to the remote host either 365 Again, @value{tramp} transfers the file contents to the remote host either
366 inline or out-of-band. This is the reverse of what happens when reading 366 inline or out-of-band. This is the reverse of what happens when reading
367 the file. 367 the file.
368
369 @end itemize 368 @end itemize
370 369
371 I hope this has provided you with a basic overview of what happens 370 I hope this has provided you with a basic overview of what happens
372 behind the scenes when you open a file with @value{tramp}. 371 behind the scenes when you open a file with @value{tramp}.
373 372
651 650
652 651
653 @item @option{sshx} 652 @item @option{sshx}
654 @cindex method sshx 653 @cindex method sshx
655 @cindex sshx method 654 @cindex sshx method
656 @cindex Cygwin (with sshx method)
657 655
658 As you would expect, this is similar to @option{ssh}, only a little 656 As you would expect, this is similar to @option{ssh}, only a little
659 different. Whereas @option{ssh} opens a normal interactive shell on 657 different. Whereas @option{ssh} opens a normal interactive shell on
660 the remote host, this option uses @samp{ssh -t -t @var{host} -l 658 the remote host, this option uses @samp{ssh -t -t @var{host} -l
661 @var{user} /bin/sh} to open a connection. This is useful for users 659 @var{user} /bin/sh} to open a connection. This is useful for users
672 in without such questions. 670 in without such questions.
673 671
674 This is also useful for Windows users where @command{ssh}, when 672 This is also useful for Windows users where @command{ssh}, when
675 invoked from an @value{emacsname} buffer, tells them that it is not 673 invoked from an @value{emacsname} buffer, tells them that it is not
676 allocating a pseudo tty. When this happens, the login shell is wont 674 allocating a pseudo tty. When this happens, the login shell is wont
677 to not print any shell prompt, which confuses @value{tramp} mightily. For 675 to not print any shell prompt, which confuses @value{tramp} mightily.
678 reasons unknown, some Windows ports for @command{ssh} (maybe the 676 For reasons unknown, some Windows ports for @command{ssh} require the
679 Cygwin one) require the doubled @samp{-t} option. 677 doubled @samp{-t} option.
680 678
681 This supports the @samp{-p} kludge. 679 This supports the @samp{-p} kludge.
682 680
683 681
684 @item @option{krlogin} 682 @item @option{krlogin}
815 @item @option{scpx} --- @command{ssh} and @command{scp} 813 @item @option{scpx} --- @command{ssh} and @command{scp}
816 @cindex method scpx 814 @cindex method scpx
817 @cindex scpx method 815 @cindex scpx method
818 @cindex scp (with scpx method) 816 @cindex scp (with scpx method)
819 @cindex ssh (with scpx method) 817 @cindex ssh (with scpx method)
820 @cindex Cygwin (with scpx method)
821 818
822 As you would expect, this is similar to @option{scp}, only a little 819 As you would expect, this is similar to @option{scp}, only a little
823 different. Whereas @option{scp} opens a normal interactive shell on 820 different. Whereas @option{scp} opens a normal interactive shell on
824 the remote host, this option uses @samp{ssh -t -t @var{host} -l 821 the remote host, this option uses @samp{ssh -t -t @var{host} -l
825 @var{user} /bin/sh} to open a connection. This is useful for users 822 @var{user} /bin/sh} to open a connection. This is useful for users
830 827
831 This is also useful for Windows users where @command{ssh}, when 828 This is also useful for Windows users where @command{ssh}, when
832 invoked from an @value{emacsname} buffer, tells them that it is not 829 invoked from an @value{emacsname} buffer, tells them that it is not
833 allocating a pseudo tty. When this happens, the login shell is wont 830 allocating a pseudo tty. When this happens, the login shell is wont
834 to not print any shell prompt, which confuses @value{tramp} mightily. 831 to not print any shell prompt, which confuses @value{tramp} mightily.
835 Maybe this applies to the Cygwin port of SSH.
836 832
837 This method supports the @samp{-p} hack. 833 This method supports the @samp{-p} hack.
838 834
839 835
840 @item @option{pscp} --- @command{plink} and @command{pscp} 836 @item @option{pscp} --- @command{plink} and @command{pscp}
1023 (add-to-list 1019 (add-to-list
1024 'tramp-multi-connection-function-alist 1020 'tramp-multi-connection-function-alist
1025 '("sshf" tramp-multi-connect-rlogin "ssh %h -l %u -p 4400%n")) 1021 '("sshf" tramp-multi-connect-rlogin "ssh %h -l %u -p 4400%n"))
1026 @end lisp 1022 @end lisp
1027 1023
1028 Now you can use an @code{sshf} hop which connects to port 4400 instead of 1024 Now you can use an @option{sshf} hop which connects to port 4400 instead of
1029 the standard port. 1025 the standard port.
1030 1026
1031 1027
1032 @node Default Method 1028 @node Default Method
1033 @section Selecting a default method 1029 @section Selecting a default method
1072 1068
1073 Another consideration with the selection of transfer methods is the 1069 Another consideration with the selection of transfer methods is the
1074 environment you will use them in and, especially when used over the 1070 environment you will use them in and, especially when used over the
1075 Internet, the security implications of your preferred method. 1071 Internet, the security implications of your preferred method.
1076 1072
1077 The @command{rsh} and @command{telnet} methods send your password as 1073 The @option{rsh} and @option{telnet} methods send your password as
1078 plain text as you log in to the remote machine, as well as transferring 1074 plain text as you log in to the remote machine, as well as
1079 the files in such a way that the content can easily be read from other 1075 transferring the files in such a way that the content can easily be
1080 machines. 1076 read from other machines.
1081 1077
1082 If you need to connect to remote systems that are accessible from the 1078 If you need to connect to remote systems that are accessible from the
1083 Internet, you should give serious thought to using @command{ssh} based 1079 Internet, you should give serious thought to using @option{ssh} based
1084 methods to connect. These provide a much higher level of security, 1080 methods to connect. These provide a much higher level of security,
1085 making it a non-trivial exercise for someone to obtain your password or 1081 making it a non-trivial exercise for someone to obtain your password
1086 read the content of the files you are editing. 1082 or read the content of the files you are editing.
1087 1083
1088 1084
1089 @subsection Which method is the right one for me? 1085 @subsection Which method is the right one for me?
1090 @cindex choosing the right method 1086 @cindex choosing the right method
1091 1087
1099 My suggestion is to use an inline method. For large files, out-of-band 1095 My suggestion is to use an inline method. For large files, out-of-band
1100 methods might be more efficient, but I guess that most people will want 1096 methods might be more efficient, but I guess that most people will want
1101 to edit mostly small files. 1097 to edit mostly small files.
1102 1098
1103 I guess that these days, most people can access a remote machine by 1099 I guess that these days, most people can access a remote machine by
1104 using @code{ssh}. So I suggest that you use the @code{ssh} method. 1100 using @command{ssh}. So I suggest that you use the @option{ssh}
1105 So, type @kbd{C-x C-f 1101 method. So, type @kbd{C-x C-f
1106 @value{prefix}ssh@value{postfixsinglehop}root@@otherhost@value{postfix}/etc/motd 1102 @value{prefix}ssh@value{postfixsinglehop}root@@otherhost@value{postfix}/etc/motd
1107 @key{RET}} to edit the @file{/etc/motd} file on the other host. 1103 @key{RET}} to edit the @file{/etc/motd} file on the other host.
1108 1104
1109 If you can't use @code{ssh} to log in to the remote host, then select a 1105 If you can't use @option{ssh} to log in to the remote host, then
1110 method that uses a program that works. For instance, Windows users 1106 select a method that uses a program that works. For instance, Windows
1111 might like the @code{plink} method which uses the PuTTY implementation 1107 users might like the @option{plink} method which uses the PuTTY
1112 of @code{ssh}. Or you use Kerberos and thus like @code{krlogin}. 1108 implementation of @command{ssh}. Or you use Kerberos and thus like
1109 @option{krlogin}.
1113 1110
1114 For the special case of editing files on the local host as another 1111 For the special case of editing files on the local host as another
1115 user, see the @code{su} or @code{sudo} method. It offers shortened 1112 user, see the @option{su} or @option{sudo} methods. They offer
1116 syntax for the @samp{root} account, like 1113 shortened syntax for the @samp{root} account, like
1117 @file{@value{prefix}su@value{postfixsinglehop}@value{postfix}/etc/motd}. 1114 @file{@value{prefix}su@value{postfixsinglehop}@value{postfix}/etc/motd}.
1118 1115
1119 People who edit large files may want to consider @code{scp} instead of 1116 People who edit large files may want to consider @option{scp} instead
1120 @code{ssh}, or @code{pscp} instead of @code{plink}. These out-of-band 1117 of @option{ssh}, or @option{pscp} instead of @option{plink}. These
1121 methods are faster than inline methods for large files. Note, however, 1118 out-of-band methods are faster than inline methods for large files.
1122 that out-of-band methods suffer from some limitations. Please try 1119 Note, however, that out-of-band methods suffer from some limitations.
1123 first whether you really get a noticeable speed advantage from using an 1120 Please try first whether you really get a noticeable speed advantage
1124 out-of-band method! Maybe even for large files, inline methods are 1121 from using an out-of-band method! Maybe even for large files, inline
1125 fast enough. 1122 methods are fast enough.
1126 1123
1127 1124
1128 @node Customizing Methods 1125 @node Customizing Methods
1129 @section Using Non-Standard Methods 1126 @section Using Non-Standard Methods
1130 @cindex customizing methods 1127 @cindex customizing methods
1363 @emph{all} situations. The other strategy is to require you to set up 1360 @emph{all} situations. The other strategy is to require you to set up
1364 the remote host such that it behaves like @value{tramp} expects. This might 1361 the remote host such that it behaves like @value{tramp} expects. This might
1365 be inconvenient because you have to invest a lot of effort into shell 1362 be inconvenient because you have to invest a lot of effort into shell
1366 setup before you can begin to use @value{tramp}. 1363 setup before you can begin to use @value{tramp}.
1367 1364
1368 The package, therefore, pursues a combined approach. It tries to figure 1365 The package, therefore, pursues a combined approach. It tries to
1369 out some of the more common setups, and only requires you to avoid 1366 figure out some of the more common setups, and only requires you to
1370 really exotic stuff. For example, it looks through a list of 1367 avoid really exotic stuff. For example, it looks through a list of
1371 directories to find some programs on the remote host. And also, it 1368 directories to find some programs on the remote host. And also, it
1372 knows that it is not obvious how to check whether a file exists, and 1369 knows that it is not obvious how to check whether a file exists, and
1373 therefore it tries different possibilities. (On some hosts and shells, 1370 therefore it tries different possibilities. (On some hosts and
1374 the command @code{test -e} does the trick, on some hosts the shell 1371 shells, the command @command{test -e} does the trick, on some hosts
1375 builtin doesn't work but the program @code{/usr/bin/test -e} or 1372 the shell builtin doesn't work but the program @command{/usr/bin/test
1376 @code{/bin/test -e} works. And on still other hosts, @code{ls -d} is 1373 -e} or @command{/bin/test -e} works. And on still other hosts,
1377 the right way to do this.) 1374 @command{ls -d} is the right way to do this.)
1378 1375
1379 Below you find a discussion of a few things that @value{tramp} does not deal 1376 Below you find a discussion of a few things that @value{tramp} does not deal
1380 with, and that you therefore have to set up correctly. 1377 with, and that you therefore have to set up correctly.
1381 1378
1382 @table @asis 1379 @table @asis
1407 different user. The default value of 1404 different user. The default value of
1408 @code{tramp-shell-prompt-pattern} is the same as the default value of 1405 @code{tramp-shell-prompt-pattern} is the same as the default value of
1409 @code{shell-prompt-pattern}, which is reported to work well in many 1406 @code{shell-prompt-pattern}, which is reported to work well in many
1410 circumstances. 1407 circumstances.
1411 1408
1412 @item @code{tset} and other questions 1409 @item @command{tset} and other questions
1413 @cindex Unix command tset 1410 @cindex Unix command tset
1414 @cindex tset Unix command 1411 @cindex tset Unix command
1415 1412
1416 Some people invoke the @code{tset} program from their shell startup 1413 Some people invoke the @command{tset} program from their shell startup
1417 scripts which asks the user about the terminal type of the shell. 1414 scripts which asks the user about the terminal type of the shell.
1418 Maybe some shells ask other questions when they are started. @value{tramp} 1415 Maybe some shells ask other questions when they are started. @value{tramp}
1419 does not know how to answer these questions. There are two approaches 1416 does not know how to answer these questions. There are two approaches
1420 for dealing with this problem. One approach is to take care that the 1417 for dealing with this problem. One approach is to take care that the
1421 shell does not ask any questions when invoked from @value{tramp}. You can 1418 shell does not ask any questions when invoked from @value{tramp}. You can
1441 1438
1442 1439
1443 @item Non-Bourne commands in @file{.profile} 1440 @item Non-Bourne commands in @file{.profile}
1444 1441
1445 After logging in to the remote host, @value{tramp} issues the command 1442 After logging in to the remote host, @value{tramp} issues the command
1446 @code{exec /bin/sh}. (Actually, the command is slightly different.) 1443 @command{exec /bin/sh}. (Actually, the command is slightly
1447 When @code{/bin/sh} is executed, it reads some init files, such as 1444 different.) When @command{/bin/sh} is executed, it reads some init
1448 @file{~/.shrc} or @file{~/.profile}. 1445 files, such as @file{~/.shrc} or @file{~/.profile}.
1449 1446
1450 Now, some people have a login shell which is not @code{/bin/sh} but a 1447 Now, some people have a login shell which is not @code{/bin/sh} but a
1451 Bourne-ish shell such as bash or ksh. Some of these people might put 1448 Bourne-ish shell such as bash or ksh. Some of these people might put
1452 their shell setup into the files @code{~/.shrc} or @code{~/.profile}. 1449 their shell setup into the files @file{~/.shrc} or @file{~/.profile}.
1453 This way, it is possible for non-Bourne constructs to end up in those 1450 This way, it is possible for non-Bourne constructs to end up in those
1454 files. Then, @code{exec /bin/sh} might cause the Bourne shell to barf 1451 files. Then, @command{exec /bin/sh} might cause the Bourne shell to
1455 on those constructs. 1452 barf on those constructs.
1456 1453
1457 As an example, imagine somebody putting @code{export FOO=bar} into the 1454 As an example, imagine somebody putting @command{export FOO=bar} into
1458 file @file{~/.profile}. The standard Bourne shell does not understand 1455 the file @file{~/.profile}. The standard Bourne shell does not
1459 this syntax and will emit a syntax error when it reaches this line. 1456 understand this syntax and will emit a syntax error when it reaches
1457 this line.
1460 1458
1461 Another example is the tilde (@code{~}) character, say when adding 1459 Another example is the tilde (@code{~}) character, say when adding
1462 @file{~/bin} to @code{$PATH}. Many Bourne shells will not expand this 1460 @file{~/bin} to @code{$PATH}. Many Bourne shells will not expand this
1463 character, and since there is usually no directory whose name consists 1461 character, and since there is usually no directory whose name consists
1464 of the single character tilde, strange things will happen. 1462 of the single character tilde, strange things will happen.
1465 1463
1466 What can you do about this? 1464 What can you do about this?
1467 1465
1468 Well, one possibility is to make sure that everything in @file{~/.shrc} 1466 Well, one possibility is to make sure that everything in @file{~/.shrc}
1469 and @file{~/.profile} on all remote hosts is Bourne-compatible. In the 1467 and @file{~/.profile} on all remote hosts is Bourne-compatible. In the
1470 above example, instead of @code{export FOO=bar}, you might use 1468 above example, instead of @command{export FOO=bar}, you might use
1471 @code{FOO=bar; export FOO} instead. 1469 @command{FOO=bar; export FOO} instead.
1472 1470
1473 The other possibility is to put your non-Bourne shell setup into some 1471 The other possibility is to put your non-Bourne shell setup into some
1474 other files. For example, bash reads the file @file{~/.bash_profile} 1472 other files. For example, bash reads the file @file{~/.bash_profile}
1475 instead of @file{~/.profile}, if the former exists. So bash 1473 instead of @file{~/.profile}, if the former exists. So bash
1476 aficionados just rename their @file{~/.profile} to 1474 aficionados just rename their @file{~/.profile} to
1477 @file{~/.bash_profile} on all remote hosts, and Bob's your uncle. 1475 @file{~/.bash_profile} on all remote hosts, and Bob's your uncle.
1478 1476
1479 The @value{tramp} developers would like to circumvent this problem, so if you 1477 The @value{tramp} developers would like to circumvent this problem, so
1480 have an idea about it, please tell us. However, we are afraid it is not 1478 if you have an idea about it, please tell us. However, we are afraid
1481 that simple: before saying @code{exec /bin/sh}, @value{tramp} does not know 1479 it is not that simple: before saying @command{exec /bin/sh},
1482 which kind of shell it might be talking to. It could be a Bourne-ish 1480 @value{tramp} does not know which kind of shell it might be talking
1483 shell like ksh or bash, or it could be a csh derivative like tcsh, or 1481 to. It could be a Bourne-ish shell like ksh or bash, or it could be a
1484 it could be zsh, or even rc. If the shell is Bourne-ish already, then 1482 csh derivative like tcsh, or it could be zsh, or even rc. If the
1485 it might be prudent to omit the @code{exec /bin/sh} step. But how to 1483 shell is Bourne-ish already, then it might be prudent to omit the
1486 find out if the shell is Bourne-ish? 1484 @command{exec /bin/sh} step. But how to find out if the shell is
1485 Bourne-ish?
1487 1486
1488 @end table 1487 @end table
1489 1488
1490 1489
1491 @node Auto-save and Backup 1490 @node Auto-save and Backup
1628 1627
1629 This section needs a lot of work! Please help. 1628 This section needs a lot of work! Please help.
1630 1629
1631 @cindex method sshx with Cygwin 1630 @cindex method sshx with Cygwin
1632 @cindex sshx method with Cygwin 1631 @cindex sshx method with Cygwin
1633 If you use the Cygwin installation of ssh (you have to explicitly select 1632 The recent Cygwin installation of @command{ssh} works only with a
1634 it in the installer), then it should work out of the box to just select 1633 Cygwinized @value{emacsname}. You can check it by typing @kbd{M-x
1635 @code{sshx} as the connection method. You can find information about 1634 eshell}, and starting @kbd{ssh test.machine}. The problem is evident
1636 setting up Cygwin in their FAQ at @uref{http://cygwin.com/faq/}. 1635 if you see a message like this:
1636
1637 @example
1638 Pseudo-terminal will not be allocated because stdin is not a terminal.
1639 @end example
1640
1641 Older @command{ssh} versions of Cygwin are told to cooperate with
1642 @value{tramp} selecting @option{sshx} as the connection method. You
1643 can find information about setting up Cygwin in their FAQ at
1644 @uref{http://cygwin.com/faq/}.
1637 1645
1638 @cindex method scpx with Cygwin 1646 @cindex method scpx with Cygwin
1639 @cindex scpx method with Cygwin 1647 @cindex scpx method with Cygwin
1640 If you wish to use the @code{scpx} connection method, then you might 1648 If you wish to use the @option{scpx} connection method, then you might
1641 have the problem that @value{emacsname} calls @code{scp} with a 1649 have the problem that @value{emacsname} calls @command{scp} with a
1642 Windows filename such as @code{c:/foo}. The Cygwin version of 1650 Windows filename such as @code{c:/foo}. The Cygwin version of
1643 @code{scp} does not know about Windows filenames and interprets this 1651 @command{scp} does not know about Windows filenames and interprets this
1644 as a remote filename on the host @code{c}. 1652 as a remote filename on the host @code{c}.
1645 1653
1646 One possible workaround is to write a wrapper script for @code{scp} 1654 One possible workaround is to write a wrapper script for @option{scp}
1647 which converts the Windows filename to a Cygwinized filename. 1655 which converts the Windows filename to a Cygwinized filename.
1648
1649 I guess that another workaround is to run @value{emacsname} under
1650 Cygwin, or to run a Cygwinized @value{emacsname}.
1651 1656
1652 @cindex Cygwin and ssh-agent 1657 @cindex Cygwin and ssh-agent
1653 @cindex SSH_AUTH_SOCK and @value{emacsname} on Windows 1658 @cindex SSH_AUTH_SOCK and @value{emacsname} on Windows
1654 If you want to use either @code{ssh} based method on Windows, then you 1659 If you want to use either @option{ssh} based method on Windows, then
1655 might encounter problems with @code{ssh-agent}. Using this program, 1660 you might encounter problems with @command{ssh-agent}. Using this
1656 you can avoid typing the pass-phrase every time you log in. However, 1661 program, you can avoid typing the pass-phrase every time you log in.
1657 if you start @value{emacsname} from a desktop shortcut, then the 1662 However, if you start @value{emacsname} from a desktop shortcut, then
1658 environment variable @code{SSH_AUTH_SOCK} is not set and so 1663 the environment variable @code{SSH_AUTH_SOCK} is not set and so
1659 @value{emacsname} and thus @value{tramp} and thus @code{ssh} and 1664 @value{emacsname} and thus @value{tramp} and thus @command{ssh} and
1660 @code{scp} started from @value{tramp} cannot communicate with 1665 @command{scp} started from @value{tramp} cannot communicate with
1661 @code{ssh-agent}. It works better to start @value{emacsname} from 1666 @command{ssh-agent}. It works better to start @value{emacsname} from
1662 the shell. 1667 the shell.
1663 1668
1664 If anyone knows how to start @code{ssh-agent} under Windows in such a 1669 If anyone knows how to start @command{ssh-agent} under Windows in such a
1665 way that desktop shortcuts can profit, please holler. I don't really 1670 way that desktop shortcuts can profit, please holler. I don't really
1666 know anything at all about Windows@dots{} 1671 know anything at all about Windows@dots{}
1667 1672
1668 1673
1669 @node Usage 1674 @node Usage
2106 2111
2107 @item 2112 @item
2108 There's this @file{~/.sh_history} file on the remote host which keeps 2113 There's this @file{~/.sh_history} file on the remote host which keeps
2109 growing and growing. What's that? 2114 growing and growing. What's that?
2110 2115
2111 Sometimes, @value{tramp} starts @code{ksh} on the remote host for tilde 2116 Sometimes, @value{tramp} starts @command{ksh} on the remote host for
2112 expansion. Maybe @code{ksh} saves the history by default. @value{tramp} 2117 tilde expansion. Maybe @command{ksh} saves the history by default.
2113 tries to turn off saving the history, but maybe you have to help. For 2118 @value{tramp} tries to turn off saving the history, but maybe you have
2114 example, you could put this in your @file{.kshrc}: 2119 to help. For example, you could put this in your @file{.kshrc}:
2115 2120
2116 @example 2121 @example
2117 if [ -f $HOME/.sh_history ] ; then 2122 if [ -f $HOME/.sh_history ] ; then
2118 /bin/rm $HOME/.sh_history 2123 /bin/rm $HOME/.sh_history
2119 fi 2124 fi
2314 @chapter Debatable Issues and What Was Decided 2319 @chapter Debatable Issues and What Was Decided
2315 2320
2316 @itemize @bullet 2321 @itemize @bullet
2317 @item The uuencode method does not always work. 2322 @item The uuencode method does not always work.
2318 2323
2319 Due to the design of @value{tramp}, the encoding and decoding programs need to 2324 Due to the design of @value{tramp}, the encoding and decoding programs
2320 read from stdin and write to stdout. On some systems, @code{uudecode -o 2325 need to read from stdin and write to stdout. On some systems,
2321 -} will read stdin and write the decoded file to stdout, on other 2326 @command{uudecode -o -} will read stdin and write the decoded file to
2322 systems @code{uudecode -p} does the same thing. But some systems have 2327 stdout, on other systems @command{uudecode -p} does the same thing.
2323 uudecode implementations which cannot do this at all---it is not 2328 But some systems have uudecode implementations which cannot do this at
2324 possible to call these uudecode implementations with suitable parameters 2329 all---it is not possible to call these uudecode implementations with
2325 so that they write to stdout. 2330 suitable parameters so that they write to stdout.
2326 2331
2327 Of course, this could be circumvented: the @code{begin foo 644} line 2332 Of course, this could be circumvented: the @code{begin foo 644} line
2328 could be rewritten to put in some temporary file name, then 2333 could be rewritten to put in some temporary file name, then
2329 @code{uudecode} could be called, then the temp file could be printed and 2334 @command{uudecode} could be called, then the temp file could be
2330 deleted. 2335 printed and deleted.
2331 2336
2332 But I have decided that this is too fragile to reliably work, so on some 2337 But I have decided that this is too fragile to reliably work, so on some
2333 systems you'll have to do without the uuencode methods. 2338 systems you'll have to do without the uuencode methods.
2334 2339
2335 @item @value{tramp} does not work on XEmacs 20. 2340 @item @value{tramp} does not work on XEmacs 20.
2366 disabled. This can be achieved by setting file permissions @code{000} 2371 disabled. This can be achieved by setting file permissions @code{000}
2367 to the files @file{.../xemacs-packages/lisp/tramp/auto-autoloads.el*}. 2372 to the files @file{.../xemacs-packages/lisp/tramp/auto-autoloads.el*}.
2368 2373
2369 In case of unified filenames, all @value{emacsname} download sites 2374 In case of unified filenames, all @value{emacsname} download sites
2370 are added to @code{tramp-default-method-alist} with default method 2375 are added to @code{tramp-default-method-alist} with default method
2371 @code{ftp} @xref{Default Method}. These settings shouldn't be touched 2376 @option{ftp} @xref{Default Method}. These settings shouldn't be touched
2372 for proper working of the @value{emacsname} package system. 2377 for proper working of the @value{emacsname} package system.
2373 2378
2374 The syntax for unified filenames is described in the @value{tramp} manual 2379 The syntax for unified filenames is described in the @value{tramp} manual
2375 for @value{emacsothername}. 2380 for @value{emacsothername}.
2376 @end ifset 2381 @end ifset
2377
2378 @end itemize 2382 @end itemize
2379 2383
2380 @node Concept Index 2384 @node Concept Index
2381 @comment node-name, next, previous, up 2385 @comment node-name, next, previous, up
2382 @unnumbered Concept Index 2386 @unnumbered Concept Index