질문합니다.

익명 사용자의 이미지

안녕하세요 음 저는 초보적인 질문인지 모르겠습니다.
어제도 질문했는데 오늘도 또 질문하게 되었어요 정말 감사드리는것은
친절하게도 마스터님께서 답변을 해주셔 참 감사드립니다.
오늘은 쉘에 관한 질문을 하려구 합니다.
아시는분은 꼭좀 답변해주세요 그럼 시작할께요
sub쉘에 관한 질문이거든요
사용자가 로그인할때 unix는 로그인쉘을 제공하는것은 알거든요 그리고 그 로
그인쉘에 의해 기본적인 명령들이 수행된다는것도 메뉴얼을 읽어서 알게되었습
니다. 그러나 현재쉘이 어떤 작업을 수행하기 위해서는 sub쉘을 생성 수행한다
고 한다는데요 음 제가 질문할 내용은요
예를 들어볼께요
%pwd 1.(로그인쉘의 현재 작업 디렉토리 표시)
/home1/p961010/unix2
%(cd/;pwd) 2.(서브 셀로 이동후 pwd 수행)
/ 3.(서브 쉘로부터 출력)
%pwd 4.(로그인쉘은 이동되지 않음)
/home1/p961010/unix2
%
여기서요 처음 로그인시 제가 잡은 프롬프트가 이렇게 1.번처럼 나오는데요
음 다음에 2번에서 처럼 cd/pwd라고 이렇게 표현하는것이 시스템 루트디렉토
리로 변셩한후 그 경로를 나타내라고 하는거인것 같거든요
그리고 다시 pwd로 현제 경로를 표현한다면 4번처럼 이렇게 나오거든요
음 그래서 질문하고 싶은것이 왜 이런식으로 만들고 표현을 해야하는지 그것
이 궁금합니다. 제가 알기로는요 부모쉘이 자식(서브쉘)에게 환경변수는 모두
복사해줄수 있다고 하지만 지역변수는 새롭게 서브쉘에서 생성한다고 하거든

음 이렇게 쓰는 이유를 알고 싶고요 예를 들어서 제가 학교에서 작업하는
학교 유닉스 서버에서 저에게 할당해준 계정이 이런 의미를 말하는것인지가
무척 궁금합니다. 그럼 예를 들어 학교 교수님 서버가 부모쉘이 되는것이고
제 계정이 그럼 (sub)쉘이 되는것인가요 ?
그럼 로그인할경우 저의 .cshrc나 .login파일이 시동 파일로 operate할때 그

저의 계정이 서브쉘이라고 하는것입니까 ?
음 그럼 1의 경우처럼 pwd해서 작업디렉토리를 표시하는것은 저의 계정의 절대
경로를 제가 .cshrc에 setprompt를 사용해서 작성했거든요 그래서 나오는 경로
인가요 ? 그리고 나서 2번이나 3번은 제 계정만으로는 제가 서브쉘을 새롭게
생성하지 않는한은 나오지 않는것입니까 ?
너무 말이 빙빙 돌려서 죄송하구요 음 다시 정리해서 여쭤 볼께요
음 큰 광의로 부모쉘은 = 교수님 서버 sub쉘은 = 제 계정
이런뜻인가요 ?
그럼 예에서 보여준것 처럼 이런식으로 표현할려면 제 계정에서 만약해
제 친구에게 계정을 뛰어주는 경우 가능한것입니까 ?
그럼 제 친구에게 계정을 뛰어주게 되면 제가 부모쉘이 되는것이구
제 친구가 sub쉘이 되는것인가요 ?
죄송합니다. 너무 재미가 있고 또 이렇게 늦은밤이지만 자다가 벌떡 일어났어

너무 유닉스 배우고 싶어서요 좀 가르쳐주세요 마스터님 그럼
이만 갈께요 새벽6시17분 헤네시가........

익명 사용자의 이미지

서브쉘이란 기본 쉘이 자기자신을 복제해서 만들어낸 쉘을 뜻합니다.
설명하신 부분은 계정을 말하는 거죠.
서버가 계정을 할당해주면 계정 사용자는 그 계정으로 로그인을 하고
거기에서 일련의 작업을 수행합니다.
다른 사람이 서버에 접근을 하려면 계정사용자가 계정을 임의로 분활
해서 나눠주는 것이 아니라 서버에게 요청을 해서 새로운 계정을 할당
받아야 하는거죠. 물론 불법적으로 하나의 계정을 2명 이상이 공유해서
사용할 수도 있습니다. 하지만 이건 서브쉘의 개념이 아닙니다.

다시 질문으로 돌아가서...
계정 사용자는 표준적으로 자신이 선택한(또는 관리자가 부여한) 쉘이
있습니다. 표준 UNIX에서는 csh을 많이 사용하고 LINUX에서는 bash를
사용하죠. 이 쉘은 로그인을 하면 하나가 생깁니다.
여기서 사용자가 디렉토리에서 원하는 파일을 찾기위해 명령을 내린다고
가정을 합시다.

$ find ./ -name "show.me" -print > result.txt

이렇게 하면 일단 find라는 명령을 쉘이 찾고 뒤에있는 인자들을 넘겨주
는데 이때는 find라는 명령을 실행하기전에 쉘이 자기 자신을 복제합니다.
이걸 fork()라고 하는데 이 fork ()함수가 실행되면 현재 쉘이 그대로
메모리로 복사가 되고 실행권한을 새로 생성된 쉘로 전달해줍니다.
물론 현재 자기 자신도 실행권한을 받게되고...
복제된 쉘(서브쉘)에서는 명령을 실행하게 되죠.
이때 원래의 쉘의 모든 환경변수들을 복제된 쉘이 그대로 이어받아서
이걸 이용하죠. 물론 디렉토리 이동이나 기타 다른 설정변경들은 원래의
쉘에 영향을 미치지 않으므로 프로그램이 종료되고 복제된 쉘이 종료되면
원래 상태로 돌아가게 되는겁니다.
즉, 원래의 쉘 상태 그대로 되는거죠.

정확한 설명은 아니지만 일단 개념은 위와 같습니다.
^^;

익명 사용자의 이미지

아 마스터님 감사해요
fork()는 저도 메뉴얼에서 읽어서 이해를 하고 있었는데
정말 감사드립니다. 지금 학교거든요 전산실 오자마자 바로 열어봤어요
정말 감사드립니다. 음 이해가 아주 제가 딱 할수 있도록 친절하게 예까지
들어주셔서 감사드리구요 음 오늘은 비가 많이 와서 그런지
날씨가 많이 꿀꿀하네요 오늘은 커널에 관한 문서를 뽑았는데 한 50장이 넘더
라구요 기본부터 하드 소프트 메모리 부터 리눅스 유닉스 시스템자체의
기본 원리부터 알아볼까 하고 뽑았거든요 하다가 모르는 부분 있으면 오늘 바
로 또 질문할께요 감사드립니다. 그리고 지금은 java수업인데 교수님이 너무
딱딱하셔서 "자 알지 ~~~~"
그러고 늘 넘어가세요 책은 두껍고 할것은 많고 참 막막하고 하지만 그래도
할것이 있고 희망이 있다는것에 늘 하루하루 만족합니다.
오늘도 가서 해야할것이 많다는것이 너무 즐거운 하루입니다.
좋은 하루 마무리 하시구요 마스터님 저에게 가르쳐 주시는 분이시기 때문에
마스터님이세요 자주 질문해서 죄송해요 열심히 배워서 꼭 마스터님처럼
다른분들에게 도움이 될수 있는 리눅서가 되도록 노력하겠습니다.
그리고 이건 여담인데요 리눅스 인스톨 제가 30번했거든요
윈도우 2000서버 30번 날리구 다시 깔고 또 다시 깔고 그래서 그런지
문서부터 해서 이곳도 정말 많이 방문했었거든요
결국은 메뉴얼 사서 그거 보구 성공은 했지만 무척 힘들게 설치했었습니다.
그래서 그런지 무척 애착이 가거든요 음 그래서 인지 꼭 잘하고 싶어요
윈도우처럼 모든것이 만들어진 그런것 보다는 자신의 환경을 자기가 만들고
자신이 만들어간다는것이 무척 맘에 들거든요 그래서 그런지 .......
그리고 저는 많은 사람들이 사용하는 것 보다는 조금은 적지만 그래서인지
더욱 발전시켜야하고 공유와 공존 그리고 무엇보다도 자유라는 그런 선각자들
의 땀이 있는 그런 것이라서 더욱 발전시키고 더욱 사랑하고 싶습니다.
아무것도 모르는 저이지만 꼭 열심히 할께요 아 그리고 오늘 집에가서 또 질문
해도 되나요 그럼 갈께요 이만 쉬는시간이 끝이라서요 .....

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.