난 쉘프로그래밍 하는데 C로 해야 된다는 말이 이해가 안감. 책은 그냥 오렐리에서 나온 Bash 책 추천.
fm100(220.117)2012-05-25 00:02
잉.. 조교님이 C로 한다고 하셨는데
익명(123.140)2012-05-25 00:05
스크립트 짠다는 얘긴지... c로 데몬같은걸 만든다는건지...
퓨리님(msfury)2012-05-25 00:06
쉘을 만들어야해 형 ㅠ
익명(123.140)2012-05-25 00:06
만든거 써서 파일 생성 변경 등을 하는거
익명(123.140)2012-05-25 00:07
쉘스크립트짜는거면 fm횽이 얘기한책보라능
퓨리님(msfury)2012-05-25 00:09
아 쉘을 만든다고. 그건 그냥 fork랑 execve 함수 매뉴얼만 잘 봐도 만들수 있음. bash처럼 파이프, 리다이렉션 이런거 다 구현하라면 좀 귀찮긴 할텐데 할만은 할듯? 추가로 더 하면 백그라운드 정도?
fm100(220.117)2012-05-25 00:11
fm형 ㅇㅇ 쉘을 만든다고 ㅋㅋ 위에 추천해준 책 보면 그런거 나와있어??
익명(123.140)2012-05-25 00:12
예제도 좀 있었으면 좋겠다 ㅠㅠ
익명(123.140)2012-05-25 00:12
Bash책은 말그대로 Bash 쉘 사용법에 관한 책이니깐 그런거 없고. 내가 본 책중에 쉘에 대한 설명이 있었던게 The Design of the Unix Operating System이라고 좀 고전인데, 지금 확인해보니깐 7.8절이 제목이 The Shell 이고 예제코드도 있네.
fm100(220.117)2012-05-25 00:16
아 내가 생각해도 이정도면 진심 조낸 친절하다. 책 제목에 챕터까지 갈쳐주고.
fm100(220.117)2012-05-25 00:18
그냥 한 부분이 그거에 대한 내용이면 좀 부족하지 않을까.. 아에 쉘프로그래밍 자체를 위한 책은 없을까 ㅠㅠ
익명(123.140)2012-05-25 00:19
자꾸 오해의 소지가 있게 말을하는데, 쉘프로그래밍은 쉘 스크립트로 스크립트 만드는걸 말하는거임. 쉘을 만드는건 쉘프로그래밍이라고 안함. 그리고 쉘 만드는게 책 한권이 될만큼 큰내용이 아니라서. 예제코드도 보면 알겠지만 겨우 한페이지 분량인데 그게 동작하는 쉘임.
fm100(220.117)2012-05-25 00:20
지금 보니깐 완전한 코드가 있는건 아니네.ㅋㅋㅋ 여튼 쉘 만드는걸 책한권으로 설명하고 있으면 낭비임.
fm100(220.117)2012-05-25 00:22
아 그렇구나 근데 bash쉘같은 경우에도 명령어가 되게 많은데 그걸 고작 한 챕터에 다 담을수 있나... 좀 명령어별로 상세하게 나온거 있음 좋겠다 ㅠㅠ
익명(123.140)2012-05-25 00:24
bash는 기능이 존내 많잖아. 그리고 쉘이 명령어를 구현하는게 아님. 각각의 명령어는 개별적으로 따로 프로그램이 있는거고 쉘은 그 명령을 실행시키는거임. 쉘에서 ls 치면 쉘이 ls 기능을 구현해서 돌아가는게 아니라 ls 라는 프로그램을 실행시키는거. /bin 디렉토리 보면 명령어들이 다 각각의 프로그램으로 있음.
fm100(220.117)2012-05-25 00:27
그니까 쉘에서 그냥 ls 같은 명령어 치는거나 다른 프로그램 실행시키는거나 결국 동작이 같음. 쉘 입장에선 그냥 프로그램을 실행시키는거야.
fm100(220.117)2012-05-25 00:28
명령어 받으면 fork 로 프로세스 하나 새로 만들고, child 프로세스는 execve, execvp 등 뭐 대충 exec 패밀리의 시스템콜 써가지고 프로세스 메모리 스페이스를 실행할 프로그램으로 대체시키는거지.
fm100(220.117)2012-05-25 00:30
진짜 이정도 설명했으면 코딩 다 해준거나 마찬가지임.
fm100(220.117)2012-05-25 00:30
아 내가 잘몰라서 설명을 못했구나... 그러니깐 그 ls 같은 명령어 프로그램들도 만들어야해 형ㅠㅠ
익명(123.140)2012-05-25 00:31
그런 기능 하나하나 만드는방법 설명이 나와있는게 필요 ㅠㅠ
익명(123.140)2012-05-25 00:31
뭐여 명령어가 대체 몇갠데 그걸 다 만들고 있어. 원래 쉘에선 그런거 만드는거 아닌데. 그럼 무슨 명령어를 구현할건지 명령어 목록도 안줬나? 내생각엔 ㅇㅇ 형이 이해를 잘못했던가 조교가 병신임.
fm100(220.117)2012-05-25 00:32
아 물론 다 만드는건 아니고 구현해야할 명령어 리스트는 있어
익명(123.140)2012-05-25 00:33
그럼 말이되지. 근데 그건 쉘 안에서 구현할게 아니라 별도의 프로그램으로 있는게 맞어. 도스같은 경우는 내장명령어로 들고있는 것들도 많은데 리눅스에서 한다니까 하는말임. 원래 유닉스/리눅스 계열에선 쉘이 내장명령어 들고있는게 철학에 좀 안맞아서.
fm100(220.117)2012-05-25 00:35
개별 명령어 만드는거는 별로 어렵진 않은데 보통 어지간히 간단한 기본명령어들은 그거에 해당하는 시스템콜들이 대체로 있어.
fm100(220.117)2012-05-25 00:35
특히 파일 관련된건 다 있지. 뭐 쉘에서 명령 내려봐야 어지간해선 다 파일 관련된 커맨드일테니 쉬울듯. Advanced Programming in Unix Environment 라고 거의 벽돌 수준의 책이 있는데 두꺼워서 그렇지 어렵지 않어. 맘잡고 보면 보름이면 볼거여. 화이팅.
번역서도 있는데 역자가 김치하면 보지말고. 내가 알기로 최근에 류광느님이 새로 번역해서 내놓은걸로 알고있음. 난 번역서 안봐서 보르겠지만 류광느님 번역은 퀄리티가 좋아서 안봐도 믿을만해.
fm100(220.117)2012-05-25 00:38
cd 는 따로 프로그램으로 빼는거보다 쉘에서 내장하는게 쉬워. chdir 시스템콜 있음. 나머지는 별도의 프로그램으로 만드는게 더 정석이고.
fm100(220.117)2012-05-25 00:39
cd를 내장 안시키고 외부 프로그램으로 만들 방법이 있나 모르겠네.
fm100(220.117)2012-05-25 00:40
아 오케이 어떤개념인지 잘 잡혔어.. 예제 몇개보고 만든거 리눅스에 적용하는방법 같은거 좀 알면 금방 하겠는데 그런거 책이 어떤건질 잘 몰라서 쉘프로그래밍 치니깐 형말대로 스크립트관련책만 나오고 ㅠㅠ
익명(123.140)2012-05-25 00:40
아름답게 예제도 잘나와있는 한글책이 있으면 좋으련만 ㅠ ㅋㅋㅋ
익명(123.140)2012-05-25 00:42
애초에 검색어가 잘못됐으니까 제대로 된게 안나오지. 내가 말한 Advanced Progra..... 이 제목 긴거 보통 APUE라고 부르는데 시스템 프로그래밍쪽에선 바이블이야. 컴과 전공이면 양심상 한권은 소장하는게 맞을듯? The Design of the Unix Operating System은 너무 오래된 고전이라 없는사람도 많은데 솔직히 한번 보는거 추천.
난 쉘프로그래밍 하는데 C로 해야 된다는 말이 이해가 안감. 책은 그냥 오렐리에서 나온 Bash 책 추천.
잉.. 조교님이 C로 한다고 하셨는데
스크립트 짠다는 얘긴지... c로 데몬같은걸 만든다는건지...
쉘을 만들어야해 형 ㅠ
만든거 써서 파일 생성 변경 등을 하는거
쉘스크립트짜는거면 fm횽이 얘기한책보라능
아 쉘을 만든다고. 그건 그냥 fork랑 execve 함수 매뉴얼만 잘 봐도 만들수 있음. bash처럼 파이프, 리다이렉션 이런거 다 구현하라면 좀 귀찮긴 할텐데 할만은 할듯? 추가로 더 하면 백그라운드 정도?
fm형 ㅇㅇ 쉘을 만든다고 ㅋㅋ 위에 추천해준 책 보면 그런거 나와있어??
예제도 좀 있었으면 좋겠다 ㅠㅠ
Bash책은 말그대로 Bash 쉘 사용법에 관한 책이니깐 그런거 없고. 내가 본 책중에 쉘에 대한 설명이 있었던게 The Design of the Unix Operating System이라고 좀 고전인데, 지금 확인해보니깐 7.8절이 제목이 The Shell 이고 예제코드도 있네.
아 내가 생각해도 이정도면 진심 조낸 친절하다. 책 제목에 챕터까지 갈쳐주고.
그냥 한 부분이 그거에 대한 내용이면 좀 부족하지 않을까.. 아에 쉘프로그래밍 자체를 위한 책은 없을까 ㅠㅠ
자꾸 오해의 소지가 있게 말을하는데, 쉘프로그래밍은 쉘 스크립트로 스크립트 만드는걸 말하는거임. 쉘을 만드는건 쉘프로그래밍이라고 안함. 그리고 쉘 만드는게 책 한권이 될만큼 큰내용이 아니라서. 예제코드도 보면 알겠지만 겨우 한페이지 분량인데 그게 동작하는 쉘임.
지금 보니깐 완전한 코드가 있는건 아니네.ㅋㅋㅋ 여튼 쉘 만드는걸 책한권으로 설명하고 있으면 낭비임.
아 그렇구나 근데 bash쉘같은 경우에도 명령어가 되게 많은데 그걸 고작 한 챕터에 다 담을수 있나... 좀 명령어별로 상세하게 나온거 있음 좋겠다 ㅠㅠ
bash는 기능이 존내 많잖아. 그리고 쉘이 명령어를 구현하는게 아님. 각각의 명령어는 개별적으로 따로 프로그램이 있는거고 쉘은 그 명령을 실행시키는거임. 쉘에서 ls 치면 쉘이 ls 기능을 구현해서 돌아가는게 아니라 ls 라는 프로그램을 실행시키는거. /bin 디렉토리 보면 명령어들이 다 각각의 프로그램으로 있음.
그니까 쉘에서 그냥 ls 같은 명령어 치는거나 다른 프로그램 실행시키는거나 결국 동작이 같음. 쉘 입장에선 그냥 프로그램을 실행시키는거야.
명령어 받으면 fork 로 프로세스 하나 새로 만들고, child 프로세스는 execve, execvp 등 뭐 대충 exec 패밀리의 시스템콜 써가지고 프로세스 메모리 스페이스를 실행할 프로그램으로 대체시키는거지.
진짜 이정도 설명했으면 코딩 다 해준거나 마찬가지임.
아 내가 잘몰라서 설명을 못했구나... 그러니깐 그 ls 같은 명령어 프로그램들도 만들어야해 형ㅠㅠ
그런 기능 하나하나 만드는방법 설명이 나와있는게 필요 ㅠㅠ
뭐여 명령어가 대체 몇갠데 그걸 다 만들고 있어. 원래 쉘에선 그런거 만드는거 아닌데. 그럼 무슨 명령어를 구현할건지 명령어 목록도 안줬나? 내생각엔 ㅇㅇ 형이 이해를 잘못했던가 조교가 병신임.
아 물론 다 만드는건 아니고 구현해야할 명령어 리스트는 있어
그럼 말이되지. 근데 그건 쉘 안에서 구현할게 아니라 별도의 프로그램으로 있는게 맞어. 도스같은 경우는 내장명령어로 들고있는 것들도 많은데 리눅스에서 한다니까 하는말임. 원래 유닉스/리눅스 계열에선 쉘이 내장명령어 들고있는게 철학에 좀 안맞아서.
개별 명령어 만드는거는 별로 어렵진 않은데 보통 어지간히 간단한 기본명령어들은 그거에 해당하는 시스템콜들이 대체로 있어.
특히 파일 관련된건 다 있지. 뭐 쉘에서 명령 내려봐야 어지간해선 다 파일 관련된 커맨드일테니 쉬울듯. Advanced Programming in Unix Environment 라고 거의 벽돌 수준의 책이 있는데 두꺼워서 그렇지 어렵지 않어. 맘잡고 보면 보름이면 볼거여. 화이팅.
CD, LS, CP, RM, MV, MKDIR, RMDIR, CAT, TIME 이정도 구현하고 여기에대한 로그파일도 기록되게 하라는게 목표야
번역서도 있는데 역자가 김치하면 보지말고. 내가 알기로 최근에 류광느님이 새로 번역해서 내놓은걸로 알고있음. 난 번역서 안봐서 보르겠지만 류광느님 번역은 퀄리티가 좋아서 안봐도 믿을만해.
cd 는 따로 프로그램으로 빼는거보다 쉘에서 내장하는게 쉬워. chdir 시스템콜 있음. 나머지는 별도의 프로그램으로 만드는게 더 정석이고.
cd를 내장 안시키고 외부 프로그램으로 만들 방법이 있나 모르겠네.
아 오케이 어떤개념인지 잘 잡혔어.. 예제 몇개보고 만든거 리눅스에 적용하는방법 같은거 좀 알면 금방 하겠는데 그런거 책이 어떤건질 잘 몰라서 쉘프로그래밍 치니깐 형말대로 스크립트관련책만 나오고 ㅠㅠ
아름답게 예제도 잘나와있는 한글책이 있으면 좋으련만 ㅠ ㅋㅋㅋ
애초에 검색어가 잘못됐으니까 제대로 된게 안나오지. 내가 말한 Advanced Progra..... 이 제목 긴거 보통 APUE라고 부르는데 시스템 프로그래밍쪽에선 바이블이야. 컴과 전공이면 양심상 한권은 소장하는게 맞을듯? The Design of the Unix Operating System은 너무 오래된 고전이라 없는사람도 많은데 솔직히 한번 보는거 추천.
http://book.naver.com/bookdb/book_detail.nhn?bid=5276904
이건것 같네?
ㅇㅇ 맞는거같은데. 류광느님이 번역한거. 근데 어지간하면 원서 보는게 나음. 어차피 나중에 일하면서 커팅엣지 달리면 볼 한글 문서따윈 존재하지 않기땜에 미리 익숙해지길 권해.
분야가 어느쪽이냐에 따라 다르겠지만.
아.. 유닉스/리눅스 시스템 프로그래밍 이라고 하니깐 관련 책들 막 나오네 ㅠㅠ
형이 추천해준 책도 보고 한국에서 나온 책들도 좀 찾아봐야겠다 ㅠㅠ
고마워 형 ㅠㅠ
난 저책 중딩때 봤는데 그땐 류광느님 번역서가 없어가지고 원서로 보느라 피똥쌌음. 그래도 보다보면 볼만해. 한글책이 읽는 속도는 좀 나오긴 하지.
흔히 하는 시스템 프로그래밍 과제
ls 는 네이버에 \"C 디렉토리 목록 가져오기\" 치면 30분이면 만들겟고, cp는 fopen 한다음 읽어서 그대로 딴데다 write하면 그게 cp고. rm도 네이버에 \"C 파일삭제\" 치면 바로 나오고 머가 문제지
그리고 리눅스 시스템프로그래밍할때 옵션인자들 (rm -rf)에서 -rf같은거 쉽게 얻어올 수 있는 함수도 이미 존재하고 있음.. 찾아서 해