Shell에서 명령어 다시 쓰기에 대한 질문.

익명 사용자의 이미지

SHELL에서 가령 전에 쓰던 명령어를 다시 쓰고 싶습니다.

환경에서 그렇게 설정해 놓지 않는다면 프로그램 실행시마다 다시 타이핑
해야 하므로 힘들겠죠?

그래서...

k를 누르면 바로전에 있던 명령어를 실행하고,
j를 누르면 바로 후에 실행했던 명령어를 실행하는 식으로 하고 싶습니다.

이렇게 하고 싶다면 어떻게 하면 좋을까요?

이에 대한 고수님들의 현명한 조언을 기대합니다.

아마도 .profile에다가 모종의 allias 명령어를 쳐줘야 할 것 같기는 한데
구체적인 방법론이 떠오르지 않는군요.

익명 사용자의 이미지

bash에서는 history라는 기능을 이용해서 그런 환경을 만들어 주고 있습니
다.

$ history

로 확인을 할 수 있습니다.
일단 우측의 화살표키를 이용하면 위,아래로 이전에 입력한 명령어들을 찾
을 수
있습니다. 이경우는 순차적으로 저장된 순서대로 나옵니다.
시스템을 Off시킨후 다시 On시켜도 그 명령어들은 계속 보관되어있죠.
History기능중에 백미(^^;)로는 바로 전에 입력되었던 명령어를 곧바로 실

시킬 수 있는 방법입니다. 그것이 바로 '!'입니다.
일단 history가

ls
mount -t iso9660 /dev/cdrom /mnt/cdrom
gcc -o foo foo.c
mkdir foo
umount /mnt/cdrom

이런 식으로 되어있다면...
mount를 다시 하고 싶다면

$ !mou

여기까지만 해주면 됩니다. '!'의 특성은 '!'다음에 있는 단어가 같은 것

다시 실행해 준다는 점이죠. 문제점은 만일

$ !m

이라고 한다면 의도한 mount가 불리는 것이 아니라 최근에 호출된 mkdir이
실행된다는 겁니다. 따라서 고유한 문자까지 넣어주어야 합니다.
물론 !mo로 실행시킨 명령어도 history에 포함이 되므로 그다음에 또한번
mount를 해야한다면 !m로도 가능합니다.

음... 이런 history기능에 관련된 사항은 UNIX기초책에 자세하게 소개되어
있으니 책을 한번 읽어보시는게 좋겠네요.

댓글 달기

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 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.