내부 명령(builtin) 은 Bash 툴 셋에 포함된 명령어로 말 그대로 bulit in(고유의, 붙박이의)된 명령어입니다. 내부 명령은 시스템 명령어와 이름이 같을 수도 있지만 이런 경우는 Bash가 내부적으로 다시 구현해 놓은 것입니다. [1] 예를 들어, 하는 일이 거의 동일한 bash의 echo는 /bin/echo와 다릅니다.
# Bash Shell Builtin 명령어
* bash shell 의 builtin 명령인 exec
* 배쉬 스크립트 내부에서 exec 로 명령을 실행시키면 그 다음 라인의 명령이 수행되는지 명확하지가 않다. (되는것 같기도 하고..) 명화하지 않은 것을 사용하지 말자. 나는 exec 명령 다음 라인이 명확하게 실행되어야 한다.
이 쉘 내부 명령은 현재의 프로세스를 주어진 명령어로 대치시킵니다. 보통은 쉘이 어떤 명령어를 만나면 그 명령어를 실행하기 위해서 자식 프로세스를 포크 [3] 시킵니다. 하지만 exec 내장 명령은 포크를 하지 않고 exec된 그 명령어로 쉘 자체를 대치시킵니다. 그렇기 때문에 스크립트에서 이 명령어가 쓰이면 exec된 명령어가 종료할 때 스크립트가 강제로 종료됩니다. 이런 이유로, exec을 스크립트에서 쓰려면 아마도 제일 마지막 명령어로 써야 할 겁니다.
exec는 또한 파일 디스크립터를 재할당 할 때도 쓰입니다. exec <zzz-file은 표준입력을 zzz-file으로 바꿔줍니다(예 16-1 참고).
예 11-15. exec 효과
#!/bin/bash
exec echo "\"$0\" 를 종료합니다." # 스크립트에서 종료.
# 다음 줄은 절대 실행되지 않습니다.
echo "여기는 절대 에코되지 않습니다."
exit 0 # 역시, 여기서 종료되지도 않고요.
참고: find 명령어의 -exec 옵션은 exec 쉘 내장 명령과 다릅니다.
# 결론
* find 에서 쓰는 -exec 랑은 다르다.
* bash 스크립트 내부의 빌트인 명령들이 존재한다.
* 스크립트 내부에서 exec 를 쓸 때는 제일 마지막에 쓰자.
오늘 '그림에 마음을 놓다' 라는 책을 보다가 그 수업이 떠올랐다.
복학하고 학점 수 맞춰 보고자 들었던 '미술의 이해'
그 동안 그냥 보아왔던 작품들 하나 하나에 얼마나 많은 이야기가 있는지..
작품을 보고 느끼는 방법을 배워가던 재밌는 수업이었다.
남이 해설해주는거 말고 내가 보고 느끼고 싶은데.. 아직은 내공이 부족한가봐.
* Daum 요즘(yozm)
* 선별한 컨텐츠(뉴스, 동영상)를 다양한 SNS로 공유 하기 쉬움. (글 보내기 허브 역할 활용)
* 트위터
* 평소 듣기 힘든 유명인들이나 다양한 사고를 가진 사람들의 이야기를 들어 볼 수 있음.
* Read Only ㅋㅋ
* Facebook, 싸이월드
* 자주 만나지 못하는 지인들의 살아가는 이야기를 들을 수 있음.
* Tistory
* 개인적인 공간.
loop-back 이라도 불리는 loopback 주소는 호스트 자신을 가리키는 IP 주소다
[참고] hosts 파일 컬럼별 의미
9.9.9.9 test.daum.net tweb1
첫번째 컬럼은 ip
두번째 컬럼은 호스트명(hostname)
세번째 컬럼부터는 alias 즉 호스트 명의 다른 별명들
The hosts file contains lines of text consisting of an IP address in the first text field followed by one or more hostnames. Each field is separated by white space (blanks or tabulation characters).
○ 이 전에는
* 웹 상의 파일을 다운받아 서버에 파일 올리는 방법
* 지금까지 웹 상에 존재하는 설치 파일을 서버로 설치하기 위해서 아래의 과정처럼 했었다.
* 웹 상에서 설치 파일을 찾아 로컬 PC로 다운로드.
* ftp 를 이용해서 서버로 업로드.
* 서버에 설치
○ 더 나은 방법
wget 명령어를 이용
(eg) wget http://ooo.com/download/000-1.2pr30-linux-i686_64-glibc25-oci10.tar.gz
○ Wget 이란
man wget
Wget - The non-interactive network downloader.
GNU Wget is a free utility for non-interactive download of files from the Web.
...
* man page에서 non-interactive 라고하는 의미를 보니까 사용자가 계속 logged on 해 있을 필요가 없다는 것이다.
wget 으로 파일을 받기 시작하고, 사용자는 로그 아웃해도 파일은 계속 받아진다는 의미. 큰 파일 다운로드 걸어둘 때 좋겠네. 브라우저의 경우는 다운로드 하다가 브라우저를 닫으면 다운로드도 멈추게 된다.
여기 블로거의 말대로 순서대로 권한도 넣어주고 스크립트도 만들어서 해보니 되더라.
이전에 따라할 때 안했던 걸 생각해보면
...
(1) root 권한 활성화
(2) svn 계정 등록 과정
svn checkout svn://localhost/kyl7179 하니까 잘 되넹.
...
==
○ Problem
* 원격 접속 svn client 에 대한 쓰기 권한 문제 발생
맥북에 svn 설정 완료 후 집 pc에서 맥북의 svn 에 apache 접속이 되는 것까지 확인하였음.
집 pc 이클립스에서 체크 아웃까지도 받았음.
그런데 집 pc 이클립스에서 파일 수정 후 commit 할 때 이런 에러가 난다.
...
Some of selected resources were not committed.
svn: Commit failed (details follow):
svn: Can't open file '/Users/000/workbench/svn/projectname/db/txn-current-lock': Permission denied
svn: MKACTIVITY of '/svn/projectname/!svn/act/0066f932-3101-0010-ad0a-0169e328b3b9': 500 Internal Server Error (http://000.000.000.000)
...
○ Solution
1. chmod -R 770 /Users/000/workbench/svn
2. chown -R www /Users/000/workbench/svn
(여기서 svn 은 svn 디렉토리 만든 것. svn/projectname1, svn/projectname2 ...)
* 맥북에서 load 를 수행
svnadmin create new_projectname
svnadmin load new_projectname < a.dump
(!) 중요한 것은 VisualSVN 으로 작업한 리포지토리를 svn 으로 옮기는 것이 가능하다는 것이다.
* ViusalSVN 에서 VisualSVN 으로 백업/복구하는 방법
* 2010/04/28 - [improvement] - VisualSVN 백업
* VisualSVN 에서 hotcopy 와 dump 의 차이
* hotcopy를 한 결과 디렉토리는 다른 VisualSVN 에서 복구가 쉽게 가능하다.
* dump를 한 결과 파일은 다른 Subversion 에서 복구가 가능하다.
* 나는 지금까지 hotcopy로 백업 받아왔다.
○ Tip
맥북에 svn 설치하고 집이나 회사에서 이클립스로 checkout, commit 등을 원할히 수행할 수 있다.
그런데 문제는 이클립스에 svn repositories 를 등록할 때 svn server 의 ip를 넣아야 하는데, 무선으로 동적할당을 받다보니 맥북의 ip가 자꾸 바뀐다.
이럴때는 svn 클라이언트 PC의 hosts 파일에 이런식으로 추가해주고, 이클립스에는 hosts 파일에 등록한 도메인 명을 넣어주자. ip가 바뀌면 hosts 파일만 수정해 주면 된다.
...
127.0.0.1 localhost
xxx.xxx.xxx svn호스트명 # my svn server
...
- 무통 분만은 할 것 의사 가족들은 모두 한다. 나중에 부작용 걱정은 안해도 된다. 통계적으로 문제 없음 - 아빠는 분만 중 아무 생각 없이 힘들 아내에게 숨을 크게 내 쉬라고 주문 할 것.(작은 숨 여러번 보다 산소를 많이 받아들일 수 있다) - 여자의 몸은 크게 세번 변한다 일반, 임신, 폐경기 - 전혀 다른 개체(몸) 이다. - 태아, 신생아, 유아도 의학적으로 다른 개체 - 임신하면 면역 체계가 바뀐다 아토피나 루마티스 증상도 온다. - 분만 시 아기는 엄마의 등쪽을 봐야 출산이 쉽다 - 운동을 무리하면 관절에 무리가 간다. 조심하자. 수영. 요가 - 가진통과 진통 구분 가진통은 불규칙적, 진통은 규칙적으로 점차 간격이 짧아짐 - 첫째 출산과 둘째 출산은 완전 다르다. - 평균 1단계 9시간, 2단계 1시간 진통 - 의학적으로 통계적인 수치가 중요 - 아이 출산 후 인큐베이터에 넣어 적응 기간을 준다 - 아이에게 환경 변화를 넘 빠르게 주지 않고, 존중해 주는 것이 중요 - 배뭉침은 누구나 있는 일이므로 걱정말라.