2016-05-13 24 views
-1

Ich bin mit etwas seltsames Verhalten konfrontiert, wenn Sie versuchen, ssh auf den Server mit entweder Iterm2 oder OSX Terminal. Grundsätzlich ist das Problem, wenn tab für Auto-Vervollständigung verwenden, wird es eine weitere zufällige zusätzliche char in dem Ende drucken, zum Beispiel:Tab und Pfeiltasten seltsames Verhalten in Redhat

//the 'e' is extra in this case 
$ cd keys/e 

Und wenn alle Pfeiltasten für die Navigation zu verwenden versuchen, es funktioniert im Grunde nicht überhaupt arbeiten.

//^[[C^[[C^[[C^[[C^[[C^[[C^[[C are printed by pressing arrow keys 
$ cd keys/^[[C^[[C^[[C^[[C^[[C^[[C^[[Ce 

//Kernel Version 
OS Version: 2.6.39-400.246.2.el6uek.x86_64 

//Distribution Information 
$ cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.6 (Santiago) 

Aber es funktioniert in meinem macbook ganz gut, ich vermute, es von meinem Serverprofil verursacht wird eingerichtet, aber ich habe doppelt geprüft, dass ich nicht eine der folgenden Dateien in meinem Haus haben:

$ vi .bash_profile 
$ vi .bashrc 

Jede Hilfe wird geschätzt.

+0

Die Frage ist unklar, da '^ [[C' (Pfeil nach rechts) nicht für "Navigation" in der Schale verwendet. Möglicherweise finden Sie einige Probleme mit der Nichtübereinstimmung der Terminal- und 'TERM'-Einstellung, aber es gibt keine Details, die den Leuten bei der Beantwortung helfen könnten. –

+0

Wenn ich "Navigation" sage, meine ich das Navigieren zwischen den Zeichen, die ich in den Befehl eingegeben habe. –

Antwort

1

Ich hatte es herausgefunden, es ist wegen meiner Standard-Shell auf dem Server ksh, müssen Sie den Systemadministrator bitten, es zu bash oder zsh zu ändern.

BTW, ich hasse wirklich jene Leute, die Downvote auf die Frage ohne Grund gibt, ist es irgendwie verärgert, wenn Sie die Frage nicht mögen, können Sie es einfach ignorieren.

1

Was Sie "Navigation" genannt haben, ist Teil der Zeilenbearbeitung.

Wenn Sie ksh verwenden, die Art und Weise am besten seine Line-Bearbeitungsfunktionen zu verwenden, ist auf Emacs-Modus zu aktivieren:

set -o emacs 

Offenbar KSH Entwickler vi nicht verwendet, weil der vi-Modus ist sehr begrenzt. Der Modus emacs ist jedoch der Standardwert.

In Ihrer Frage, die Cursor-Tasten sind in normalen Modus (die ^[[ Zeichen), die konventionell Anwendungsmodus verwenden, wenn TERM=linux, während andere Terminals angenommen wird (^[O Zeichen). Wenn Ihr falsch eingestellt ist, kann das ksh verwechseln. Einige Leute definieren Aliase in ihrer Shell-Initialisierung, damit die Shell mit beiden arbeitet.

Siehe zum Beispiel Make Arrow and delete keys work in KornShell command line. Die Lösungen in dieser Antwort sollte für Sie arbeiten, da RHEL6 (und CentOS6) verwenden KSH-93:

Name  : ksh       Relocations: (not relocatable) 
Version  : 20120801       Vendor: CentOS 
Release  : 28.el6_7.3     Build Date: Tue Sep 22 11:08:59 2015 
Install Date: Mon Mar 28 16:22:50 2016   Build Host: c6b9.bsys.dev.centos> 
Group  : System Environment/Shells  Source RPM: ksh-20120801-28.el6_7.3> 
Size  : 1743023       License: EPL 
Signature : RSA/SHA1, Tue Sep 22 14:35:03 2015, Key ID 0946fca2c105b9de 
Packager : CentOS BuildSystem <http://bugs.centos.org> 
URL   : http://www.kornshell.com/ 
Summary  : The Original ATT Korn Shell 
Description : 
KSH-93 is the most recent version of the KornShell by David Korn of 
AT&T Bell Laboratories. 
KornShell is a shell programming language, which is upward compatible 
with "sh" (the Bourne Shell). 

Weiterführende Literatur:

  • 2.1 Enabling Command-line Editing (das Korn Shell Learning)
  • Command Line Editing in Bash and Ksh Noten

    Einige Aktionen sind auch an Tasten mit speziellen Markierungen gebunden, zB: Pfeil nach oben, Del (oder Löschen). Diese werden auch angezeigt, wo zutreffend. Beachten Sie, dass diese möglicherweise nicht funktionieren, wenn die Terminalemulation nicht korrekt ist, ksh unterstützt sie nicht ebenso wie bash.