Linux – commands & options

1. 기본 개념: 옵션(Options)이란?

옵션은 명령어의 동작 방식을 조정하는 부가적인 설정값

2. Short Options (-x 형식)

항목설명
형식- + 한 글자 (-a, -l 등)
특징짧고 간단하며 하나의 문자만 허용
조합 가능 여부여러 개를 하나로 묶을 수 있음 (-al)

예시:

Bash
ls -l      # long listing format
ls -a      # show hidden files
ls -la     # 두 옵션을 함께
Bash

이건 ls -l -a 와 동일함


3. Long Options (--option 형식)

항목설명
형식-- + 전체 이름 (--help, --version)
특징가독성이 좋고 의미가 명확
조합 가능 여부묶을 수 없음. 각 옵션은 개별적으로 지정해야 함

long option 예시:

Bash
ls --all           # 숨긴 파일도 보여줌
ls --format=long   # 출력 포맷 설정
rm --recursive     # 디렉토리도 재귀적으로 삭제
Bash

short/long 비교 예:

Bash
grep -i "text" file.txt       # -i = ignore case
grep --ignore-case "text" file.txt  # 동일한 기능, long option 사용
Bash

4. 어떻게 구현되는가?

각 명령어 도구에서 내부적으로:

  • getopt() 또는 getopt_long() (GNU 확장) 함수로 처리
  • ls, grep, cp, rm 등 GNU coreutils는 대부분 short + long 옵션 둘 다 지원

5. 옵션 사용 도움말 보기

Bash
ls --help
grep --help
Bash

또는:

Bash
man ls
man grep
Bash


6. 요약

구분Short OptionLong Option
형식-x--option
가독성낮음높음
조합 가능여러 개 묶기 가능 (-al)묶을 수 없음 (--a --b)
사용 목적빠르고 간결한 입력명확한 의미 전달

find

Bash
find . -name "*.c" -exec ls -l {} \;
Bash

(단, 이건 한 번만 실행되는 게 아니라, .c 파일 하나하나마다 ls -l이 실행됨)

확장된 예시

🔁 모든 .c 파일을 한 번에 전달하고 싶을 때

Bash
find . -name "*.c" -exec ls -l {} +
Bash
Bash
find . -name "*.c" | xargs ls -l
Bash

+는 여러 개의 결과를 한 번의 명령으로 전달

즉, 아래처럼 실행됨:

Bash
ls -l file1.c file2.c file3.c ...
Bash

성능면에서 훨씬 효율적 (프로세스를 여러 번 만들지 않음)

하나 더 개선:

Bash
find . -name "*.c" -exec ls -l {} + 2> /dev/null
Bash

에러 출력을 버림

Bash
find . -name "*.c" | xargs ls -l
Bash
  • xargsfind의 출력값을 인수로 변환해 ls -l에 전달
  • 단, 파일명이 공백/특수문자를 포함할 경우 오류 발생 가능

→ 해결책: 공백 처리하려면 -print0xargs -0 조합 사용:

Bash
find . -name "*.c" -print0 | xargs -0 ls -l
Bash

Linux Package Managers

  • yum
  • apt : ubuntu
    • sudo apt update
    • sudo apt-get install
    • sudo apt-get remove
    • apt-cache search keyword
    • apt-cache show aptitude
  • apk : alpine

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다