stty ?터미널? 백스페이스가 erase가 DEL 키로 되어있습니다.

anaud2의 이미지

안녕하세요

shell프로그램을 만들다가
아이디와 비번을 입력하는 과정에서 백스페이스가 문자열로 입력이 되어서 글을 올렸었습니다.
고마운분의 도움으로 termio 에서 ICANON, VERASE 을 보라는 말을 듣고
그 부분을 보고 찾던중에 termio 구조체 설정중 VERASE를 보던중 다음의 문구를 봤습니다.

이것은 특별 제어문자 배열에 있는 ERASE문자를 위한 첨자이다.사용자가 ERASE문자를 입력할 때, 전에 입력된 문자가 버려진다.보통 ERASE문자는 DEL 이다.

이부분을 보고 혹시나 해서 제가 사용만드는 shell의 문자열 입력과정에서 백스페이스 대신(백스페이스 입력 ^H가 입력됨) DEL키를 눌러봤습니다.
그랬더니 앞의 문자열이 지워지는것 입니다. 이걸로 보니까 shell의 터미널 환경에서는 ERASE가 백스페이스(^H)가 아니라 DEL(^?)인것으로 판정이 난거 같습니다.
제가 만든쉘이 아니라 그냥 리눅스에 telnet으로 접속해도 DEL키를 눌러야 지워졌습니다.

로그인후 접속하는 쉘들 bash, ksh등에서는 stty -a 해보면 ERASE가 ^H로 되어있어서 백스페이스가 먹히는데요 로그인하는 과정에서의 터미널에서는 백스페이스 대신 델로 되어있는데요

소스상에서 ERASE를 백스페이스로 변경하는 c 함수가 없을까요?
termio을 전체다 읽어봤지만 ERASE를 변경하는 부분은 없었던거 같아요
찾아봐도 설정을 보는건 쉘에서 stty -a 로 볼수는 있지만 소스안에서 이것을 수정하는 부분이 있을까요?

송효진의 이미지

stty 가 수정도 되는걸로 보이는데요?
stty erase "^?"

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

anaud2의 이미지

stty를 님이 말씀하신것 처럼 해보니까 수정이 되네요 man stty를 제대로 살펴보질 않아서 그런거 같습니다.
헌데 제가 생각하기엔 telnet으로 로그인할때 터미널환경을 stty로 볼수가 없고 stty로 보는건 접속이 끝나고 login 쉘 즉 /bin/sh 이나 bin/ksh, bin/bash 등의 내용을 보는거 같습니다. 그래서 제가 만드는 로그인쉘 프로그램에서 환경은 아닌거 같습니다.

로그인을 할때에는 어떠한 쉘, 이표현이 맞는지 모르겠지만 telnet으로 접속을 하면 어떠한 쉘이 열리고 사용자의 아이디와 패스워드를 받게 되죠
그부분에서 사용하는 쉘이 어떠한 쉘인지는 모르겠으나... termios 구조체 에서 ECHO 를 off시켜서 scanf 받을때 화면에 안뿌려주듯이..소스상에서 쉘의 환경중 ERASE가 del에서 backspace로 바꾸는 부분을 하고 싶습니다.

현재 stty 에서 수정을 해봐도 telnet로그인환경이 바뀌진 않는거 같습니다. 왜냐면 로그인후 bin/bash의 환경을 stty명령어로 보는게 되니까요

답변 감사합니다.^^

송효진의 이미지

/etc/login.defs 에 보니까
/etc/ttytype 라는 파일이 있는것 같은데,
리눅스는 기본설정이 잘 되어있어 그런지 저 파일이 없네요.
PuTTy 에서 많이 보던 vt100 같은 종류설정을 해 주면 될것 같습니다.

귀찮으면 ~/.bashrc 에 stty 넣어버리세요.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.