카테고리 보관물: 맥 관련 정보

여러가지 맥 관련 정보

dos2unix

가끔 “^M”문자가 텍스트 파일 안에 들어가 있을 때가 있다. 윈도우 엔터문자 유닉스 엔터문자 어쩌구 저쩌구 하지만, 리눅스에서는 대체로 기본으로 깔려있는 dos2unix라는 프로그램을 이용해서 유닉스 형태의 엔터문자로 바꿔줘서 정상적인 문서로 만들 수 있다.

맥에는 이게 기본적으로 없는데, dos2unix 하나 쓰자고 요상한걸 막 깔긴 기분이 나쁘니까 아래 스크립트를 만들어서 실행 권한을 주고, PATH가 지정된 폴더에 집어 넣어 주거나 특정 폴더에 집어넣은 후 PATH를 지정해주면 어디서나 쉽게 사용할 수 있다.

LaTeX에 새로운 클래스 추가하기

학회에 페이퍼를 내거나 논문을 쓰거나 할 때, 새로운 클래스를 등록해야 할 때가 있다. 이 때, 새로운 클래스 파일을 다운받은 후, 아래 경로에 넣어준다. (2013년 MacTeX 기준)

  • /usr/local/texlive/texmf-local/tex/latex/local

그 다음 다음 명령어를 쳐 준다.

  • texhash

이제 바로 다운받은 클래스를 사용할 수 있다.

라고 위처럼 써놨는데, cls파일 내부에 ProvidesClass에 어떤게 써있는지 보고 그 클래스를 사용하면 그냥 같은 폴더에 넣어놓는 것 만으로도 사용이 가능한 것 같다. – 2013/08/06 추가

awk & grep

리눅스랑 맥에 기본적으로 깔려있는 awk랑 grep을 이용해서 파일 리스트를 원하는 형태로 조작하는 연습을 하며 이 두 프로그램에 대해 알아보자. 먼저 주어진 리스트는 다음과 같다.

2013-07-20_22-38-44여기서 raw라는 확장자를 가진 파일만 추려서 확장자를 떼고, rawToROOT라는 실행파일의 인자로 넘겨주는 형태로 rawToROOT파일을 실행시키는 문장을 만들려고 한다. 물론 아무생각 없이 ls > run.sh 로 ls 내용을 run.sh에 입력한다음 vi를 이용해서 손으로 하나하나 혹은 매크로로 입력해주는 방법도 있다. 그게 편한 사람은 그걸 그냥 써도 된다. 일단 해보고 생각해보자.

먼저 raw 확장자를 가진 파일만 추려내보자.

ls | grep .raw$

2013-07-20_23-10-47

위 명령어는 ls에서 나온 결과에서 “.raw”로 끝나는 문자를 가진 결과만 출력한다. “$”가 문장의 끝을 의미한다. 결과는 다음과 같다.

이제 이 결과에서 “.raw”확장자를 가진 파일만 추려서 .raw를 떼버리고 앞쪽에 “./rawToROOT ”를 붙이면 완성이다.

ls | grep .raw$ | awk -F.raw ‘{printf(“./rawToROOT %s\n”, $1)}’

2013-07-20_23-11-28끝! awk를 이용해서 “ls | grep .raw$”에서 나온 결과를 편집해서 출력한 것이다. awk의 “-F.raw”옵션은 “.raw”를 기준으로 결과에 있는 문자열을 자른다. 순서대로 자르는 기준의 앞쪽 문자열은 $1에, 뒷쪽 문자열은 $2에 할당된다. 자르는 기준의 문자가 “.”이나 “,”여서 잘리는 위치가 여러군대라면 순서대로 “$숫자”형태로 저장된다. (10 이상까지 되는지는 모르겠다. 한번 해보길….)
그 다음 자른 문자를 printf를 이용해서 “./rawToROOT ”라는 문자를 붙여서 출력한다. printf 문법은 다들 아시시라 생각하고 생략한다.

이제 적당히 뒤에 “> run.sh”를 붙여서 결과를 파일로 출력한다음 실행시켜주면 끝!

 

Symbolic link 사용시 주의사항!

예를들어 /home/geniejhang/test 라는 폴더를 symbolic link로 /home/geniejhang/test_sym 이라고 만들었다고 해보자.

이 상태에서 rm -rf /home/geniejhang/t 까지 치고 tab을 누르면 /home/geniejhang/test 까지 완성되고, _를 친 다음 다시 tab을 누르면 /home/geniejhang/test_sym/ 까지 완성된다!

여기서 주의 할 곳은 /home/geniejhang/test_sym여기서의 마지막 슬래시! 이놈이 있을 때, rm -rf 를 해버리면 폴더 안에 있는 내용이 다 날아간다ㅠ

Symbolic link를 지울땐 rm으로 하자ㅠㅠ

Linux Terminal 단축기 (당연 맥에서도 됨)

  • Ctrl + A
    • 지금 치고 있는 줄의 제일 앞으로 커서를 이동
  • Ctrl + E
    • 지금 치고 있는 줄의 제일 뒤로 커서를 이동
  • Ctrl + U
    • 지금 커서가 있는 위치부터 앞을 지워버림
  • Ctrl + K
    • 지금 커서가 있는 위치부터 뒤를 다 지워버림
  • Ctrl + W
    • 지금 커서가 있는 위치부터 앞 한 단어를 지워버림
  • Ctrl + R
    • 이전에 친 명령어를 검색해서 찾음
    • history 에서 나오는 것들을 검색으로 찾을 수 있다고 보면 됨
    • 한번 더 누르면 더 과거의 겂이 나옴
  • Ctrl + F (→, Forward), Ctrl + B (←, Backward)
  • Ctrl + P (↑, Previous), Ctrl + N (↓, Next)
  • Ctrl + Y
    • Ctrl + U, K, W로 방금전에 지워버린 내용을 붙여넣기
  • Ctrl + M
    • 엔터
  • Ctrl + D
    • 지금 커서가 있는 위치의 문자 지우기
    • 아무것도 없을땐 exit 명령어와 동일

gfortran on OSX

http://hpc.sourceforge.net

이곳에 가면 자신의 OSX에 맞는 gfortran 바이너리를 받을 수 있다. 압축을 풀면 “usr”폴더가 나오는데, 무시하고 “usr” 안에 “local” 폴더를 “/Applications/gfortran-v#.#” 폴더로 이름을 바꿔서 옮긴다. 그 다음 환경변수를 입력해주면 된다. 아래 예시를 적어둔다.

# for gfortran
export PATH=$PATH:/Applications/gfortran-v4.8/bin
export MANPATH=$MANPATH:/Applications/gfortran-v4.8/share
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Applications/gfortran-v4.8/lib

마지막으로, 컴파일시에 라이브러리가 필요한 경우, LDFLAG에 “-L/Applications/gfortran-v#.#/lib -lgfortran” 이 들어가도록 잘 수정해주면 된다.