Linux

Unix / Linux programming

  • Linux,  Programming

    [Linux] Redirection (2>&1)

    Linux shell에선 출력되는 결과를 다른 방식으로 변경하는 명령이 존재한다. Standard I/O 0: Standard input 우리가 키보드로 입력하는 것을 표준 입력이라고 말한다. 이는 file descriptor에 0번으로 지정되어 있다. 1: Standard output 우리가 모니터로 출력을…

  • Linux,  Programming

    [Linux] Shell: $* vs. $@

    Linux에서 shell script를 사용하다 보면 $*과 $@를 쉽게 볼 수 있다. $*: All the positional parameters (as a single word) $@: All the positional parameters (as separate strings) 차이점은 다음 예제 코드를 통해…

  • Linux,  Programming

    [Linux] Executable의 RPATH 확인

    Linux에서 executable은 elf format으로 구성되는데, 내부에는 rpath entry라는게 존재한다. 참고로 rpath는 shared library를 이용하는 build된 binary에서 dynamic loading 시 어떤 위치에 shared library가 존재하는지 가리키는 entry다. Runtime 시 shared library를 참조하는 순서는 다음과…

  • Linux,  Programming

    [Linux] Bash set 명령어

    Bash shell에서 set 명령어는 스크립트에서 자주 사용되는 명령어다. 이번 글에서 주요한 옵션에 대해서 설명해본다. -e -e 옵션은 bash shell에서 각 명령어를 수행하고 난 뒤에 error가 발생해 return value가 0이 아닌 다른 값이면 뒤따르는…

  • Linux,  Programming

    [Linux] Bash Shell 특정 패턴 문자 제외

    Linux에서 pipe (|) 연산자를 통해 stdout으로 출력된 문자열들을 처리하는 업무들을 자주한다. 만약 stdout으로 출력된 여러줄의 문자열 각각에 대해 특정 조건에 해당되는 부분을 제외하고 출력하고 싶을 때 다음 표현식을 통해 해결 가능하다. Example 예를…

  • Linux,  Programming

    [Linux] LSF 사용법

    LSF는 Load Sharing Facility의 약자로 IMB에서 제공하는 서비스다. 이는 UNIX 운영체제에서 범용적인 분산 컴퓨팅 시스템이다. 이전에 앞서 포스팅 한 slurm과 같은 역할을 한다.(Slurm 사용법) LSF도 기본적으로 유용한 명령어에 대해 소개한다. bsub Job을 LSF로…

  • Linux,  Programming

    [Linux] tmux 사용법

    tmux 구성 요소 Session: 여러 window로 구성 Window: terminal 화면, session 내에서 탭처럼 사용 가능 Pane: 하나의 window 내에서 분할된 화면 Session 관련 명령어 Command Description tmux new -s [session_name] 새로운 session 생성…

  • Linux,  Programming

    [Linux] Slurm 사용법

    slurm은 cluster server 상에서 작업을 관리하기 위한 프로그램으로, node간 통신을 통해 작업 management가 이루어진다. sinfo sinfo는 노드들의 status를 확인하는 명령어다. 위 경우 각 노드들이 다른 상태들을 가지는 경우인데, 각 state에 대한 설명은 다음과…

  • Linux,  Programming

    [Linux] Binary GLIBC Version Check

    Build된 binary의 library dependency를 확인하기 위한 방법은 다음과 같다. 그리고 우리가 확인하고자 하는 library를 pipe를 통해 찾으면 된다. 위 결과를 보면 사용된 shared library의 GLIBC version이 나온다. 현재 설치된 GLIBC version 확인 현재…