맨위로가기

GNU 코어 유틸리티

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

GNU 코어 유틸리티(coreutils)는 1990년에 시작되어 2002년에 통합된, 셸에서 사용되는 기본적인 유틸리티 프로그램 모음이다. 파일, 텍스트, 셸 유틸리티를 포함하며, `rm`, `ls`와 같은 명령어를 통해 파일 관리 및 텍스트 처리를 수행한다. `--help`, `--version`과 같은 공통 옵션을 제공하며, POSIXLY_CORRECT 환경 변수 설정에 따라 옵션 해석 방식이 달라진다.

더 읽어볼만한 페이지

  • 유닉스 소프트웨어 - 한/글
    한/글은 1980년대 후반부터 개발된 대한민국의 대표적인 워드프로세서로, 다양한 운영체제 지원, 정부 전자 문서 시스템에서의 역할, 꾸준한 기능 발전과 사용자 편의성 및 국제 표준을 고려한 업데이트를 통해 발전해왔다.
  • 유닉스 소프트웨어 - 베오울프 클러스터
    베오울프 클러스터는 여러 대의 컴퓨터를 네트워크로 연결하여 단일 머신처럼 작동하도록 구성한 병렬 컴퓨팅 시스템이며, 1994년 NASA에서 개발되었고, 기성 PC 부품과 리눅스 운영체제를 사용하여 비용 효율적인 슈퍼컴퓨터의 원형이 되었다.
  • GNU 프로젝트 소프트웨어 - GNU 허드
    GNU 허드는 유닉스 운영 체제를 대체하는 것을 목표로 개발된 GNU 프로젝트의 커널로, 마이크로커널 기반의 서버-클라이언트 아키텍처를 사용하며, 파일 시스템 기능을 확장하는 트랜슬레이터 개념을 제공한다.
  • GNU 프로젝트 소프트웨어 - GNU 옥타브
    GNU 옥타브는 MATLAB과 높은 호환성을 가지며 수치 해석 계산을 위해 사용되는 자유-오픈 소스 소프트웨어이다.
  • C로 작성된 자유 소프트웨어 - PostgreSQL
    PostgreSQL은 캘리포니아 대학교 버클리 분교의 Ingres 프로젝트에서 시작되어 전 세계 개발자들의 협력을 통해 발전해온 객체 관계형 데이터베이스 관리 시스템(ORDBMS)이다.
  • C로 작성된 자유 소프트웨어 - 김프
    김프(GIMP)는 GNU 프로젝트에서 개발된 크로스 플랫폼 기반의 무료 오픈소스 래스터 그래픽 편집기로, 다양한 운영체제를 지원하며 풍부한 기능을 제공하지만 사용자 인터페이스에 대한 비판과 일부 기능의 부족함에 대한 평가도 존재한다.
GNU 코어 유틸리티 - [IT 관련 정보]에 관한 문서
기본 정보
이름GNU 코어 유틸리티
개발자GNU 프로젝트
최신 버전9.4
최신 버전 발표일2024년 2월 24일
프로그래밍 언어C, 셸 스크립트
운영 체제유닉스 계열
종류잡종 유틸리티
라이선스2007: GPL-3.0-or-later
2002: GPL-2.0-or-later
웹사이트GNU Core Utilities

2. 역사

1990년, 데이비드 매켄지는 ''GNU 파일 유틸리티''를 발표했다.[4]

1991년, 매켄지는 ''GNU 쉘 유틸리티''와 ''GNU 텍스트 유틸리티''를 발표했고,[5][6] 짐 메이어링이 coreutils의 관리자가 되어 현재까지 유지하고 있다.[7]

2002년, 메이어링은 이전의 텍스트 유틸리티, 쉘 유틸리티, 파일 유틸리티를 다른 여러 유틸리티와 함께 병합하여 ''GNU 코어 유틸리티''를 발표했다.

2. 1. 초기 개발

1990년, 데이비드 매켄지는 ''GNU 파일 유틸리티''를 발표했다.[4]

1991년, 매켄지는 ''GNU 쉘 유틸리티''와 ''GNU 텍스트 유틸리티''를 발표했다.[5][6] 같은 해, 짐 메이어링이 현재 coreutils로 알려진 패키지의 관리자가 되었으며, 이후 계속 유지해 오고 있다.[7]

2. 2. GNU 코어 유틸리티 탄생

1990년, 데이비드 매켄지는 ''GNU 파일 유틸리티''를 발표했다.[4]

1991년, 매켄지는 ''GNU 쉘 유틸리티''와 ''GNU 텍스트 유틸리티''를 발표했으며,[5][6] 짐 메이어링이 현재 coreutils로 알려진 패키지의 관리자가 되어 현재까지 유지하고 있다.[7]

2002년, 메이어링은 이전의 텍스트 유틸리티, 쉘 유틸리티, 파일 유틸리티 패키지를 다른 여러 유틸리티와 함께 병합하여 ''GNU 코어 유틸리티''를 발표했다.

3. 특징

코어 유틸리티 프로그램은 에 입력하여 사용할 수 있다. 예를 들어, `rm` 명령은 인수로 주어진 파일을 삭제한다. 이러한 프로그램은 단독으로도 작동하지만, 파이프를 사용하여 여러 개를 조합함으로써 복잡한 처리도 가능하다.

3. 1. 옵션

Coreutils에 포함된 명령어에 공통으로 사용되는 옵션은 다음과 같다.

  • --help: 해당 명령어의 도움말을 표시한다.
  • --version: 버전을 출력한다.
  • --: 이후의 인수를 오퍼랜드로 취급한다.


Coreutils 명령어는 환경 변수 `POSIXLY_CORRECT`가 정의되어 있지 않은 경우, 인수가 어떤 순서로 쓰여 있든 옵션을 먼저 해석하고, 오퍼랜드를 나중에 해석한다. 예를 들어 "ls /usr -l"과 "ls -l /usr"은 동일한 결과를 반환한다. (\UNIX의 도구에서는 이러한 경우의 동작이 제각각인 경우가 많다.)

4. 포함된 프로그램

GNU 코어 유틸리티(Coreutils) 5.2.1 버전에는 파일, 텍스트, 셸 관리를 위한 다양한 프로그램이 포함되어 있다.


  • '''파일 유틸리티'''는 파일을 복사, 이동, 삭제하고 파일 속성을 변경하는 등 기본적인 파일 관리 작업을 수행한다.
  • '''텍스트 유틸리티'''는 텍스트 파일의 내용을 표시, 편집, 검색, 정렬하는 등 텍스트 처리 작업을 수행한다.
  • '''셸 유틸리티'''는 운영 체제의 셸과 상호 작용하여 날짜 및 시간 표시, 환경 변수 설정, 프로세스 관리 등 다양한 시스템 작업을 수행한다.


UNIX의 관례에 따라 `test`의 별명으로 `[`가 있으며, 셸에서 `if [ ''expression'' ]`과 같이 사용된다.

4. 1. 파일 유틸리티

Coreutils 5.2.1 버전을 기준으로, 파일 관리에 사용되는 유틸리티는 다음과 같습니다.

  • chgrp: 파일의 소유 그룹을 변경합니다.
  • chown: 파일의 소유자를 변경합니다.
  • chmod: 파일 또는 디렉토리의 접근 권한을 변경합니다.
  • cp: 파일 또는 디렉토리를 복사합니다.
  • dd: 파일을 복사하고 변환합니다.
  • df: 디스크의 빈 용량을 표시합니다.
  • dir: ls와 동일한 기능을 수행합니다.
  • dircolors: ls의 표시 색상을 설정합니다.
  • install: 파일을 복사하고 속성을 설정합니다.
  • ln: 링크를 생성합니다.
  • ls: 디렉토리 내용을 나열합니다.
  • mkdir: 디렉토리를 생성합니다.
  • mkfifo: FIFO (이름 지정된 파이프)를 생성합니다.
  • mknod: 특수 파일 (장치 파일 등)을 생성합니다.
  • mv: 파일을 이동합니다.
  • rm: 파일을 제거합니다.
  • rmdir: 빈 디렉토리를 제거합니다.
  • shred: 파일 내용을 복구할 수 없도록 파괴합니다.
  • sync: 파일 캐시를 디스크에 기록합니다.
  • touch: 파일의 접근 및 수정 시간을 변경합니다.
  • vdir: ls -l과 동일하게 상세한 디렉토리 내용을 표시합니다.

4. 2. 텍스트 유틸리티


  • cat: 파일의 내용을 표시하거나 여러 파일을 연결하여 표시한다.
  • cksum: 파일의 체크섬과 파일 크기를 계산한다.
  • comm: 두 파일을 행 단위로 비교한다.
  • csplit: 파일을 문맥에 따라 분할한다.
  • cut: 각 행에서 선택한 부분을 표시한다.
  • expand: 탭 문자를 공백 문자로 변환한다.
  • fmt: 텍스트의 서식을 단락별로 지정한다.
  • fold: 입력 행을 지정된 너비에 맞추어 접는다.
  • head: 파일의 앞부분을 표시한다.
  • join: 두 파일을 읽어 공통 필드를 가진 행들을 결합한다.
  • md5sum: MD5 해시 체크섬을 계산하고 확인한다.
  • nl: 파일에 행 번호를 붙여 출력한다.
  • od: 파일을 8진수 또는 다른 형식으로 출력한다.
  • paste: 여러 파일의 행들을 병합한다.
  • pr: 인쇄를 위해 파일의 페이지를 나누고 단을 구성한다.
  • ptx: 정렬된 색인을 생성한다.
  • sha1sum: SHA-1 해시 체크섬을 계산하고 검증한다.
  • sort: 텍스트 파일을 행 단위로 정렬한다.
  • split: 파일을 지정된 크기로 분할한다.
  • sum: 체크섬과 블록 수를 표시한다.
  • tac: 파일을 결합하고 역순으로 표시한다.
  • tail: 파일의 뒷부분을 표시한다.
  • tr: 문자를 변환, 삭제하거나 연속된 문자를 압축한다.
  • tsort: 유향 그래프의 위상 정렬을 수행한다.
  • unexpand: 공백 문자를 탭 문자로 변환한다.
  • uniq: 정렬된 파일에서 중복되는 행을 제거한다.
  • wc: 파일의 바이트 수, 단어 수, 행 수를 표시한다.

4. 3. 셸 유틸리티

Coreutils 5.2.1 버전을 기준으로, 셸 유틸리티에는 다음과 같은 프로그램들이 포함되어 있습니다.

프로그램설명
basename파일 이름에서 디렉터리와 확장자를 제거합니다.
chroot루트 디렉터리를 변경합니다.
date현재 시스템 날짜와 시간을 표시하거나 변경합니다.
dirname경로에서 디렉터리 이름 이외의 부분을 제거합니다.
du파일의 디스크 사용량을 추정합니다.
echo한 줄의 텍스트를 표시합니다.
env환경 변수를 일시적으로 설정하거나 표시합니다.
expr식을 평가합니다.
factor수치를 소인수 분해하여 소수의 약수를 표시합니다.
false아무것도 하지 않고 실패 값을 반환합니다.
groups로그인한 사용자의 그룹을 표시합니다.
hostid현재 호스트의 식별 값을 표시합니다.
id현재 사용자 ID 이름과 그룹 ID 이름을 표시합니다.
link파일의 새 이름을 생성합니다.
logname사용자의 로그인 이름을 표시합니다.
nice프로세스의 우선 순위를 변경합니다.
nohup로그아웃 후에도 명령의 실행이 계속되도록 허용합니다.
pathchk파일 이름의 이식성(portability)을 확인합니다.
pinkyfinger 명령의 경량 버전입니다.
printenv환경 변수의 전부 또는 일부를 표시합니다.
printf데이터의 표시 형식을 변환하여 표시합니다.
pwd현재 디렉터리의 이름을 표시합니다.
readlink심볼릭 링크의 값을 표시합니다.
seq일련 번호를 표시합니다.
sleep지정된 시간 동안 휴지합니다.
stat파일의 상태를 얻습니다.
stty터미널의 행 설정을 변경, 표시합니다.
tee표준 입력에서 읽은 내용을 표준 출력과 파일에 기록합니다.
test파일 형식의 확인 또는 값의 비교를 수행합니다.
true아무것도 하지 않고 성공 값을 반환합니다.
tty터미널 이름을 표시합니다.
uname시스템의 정보를 표시합니다.
unlink이름을 삭제하고, 경우에 따라 해당 이름이 참조하는 파일도 삭제합니다.
users현재 로그인한 사용자를 표시합니다.
who현재 로그인한 사용자를 자세히 표시합니다.
whoami사용자의 로그인 이름을 표시합니다.
yeskill 시그널이 전송될 때까지 문자를 계속 표시합니다.



UNIX의 관례에 따라 `test`의 별명으로 `[`가 있습니다. 셸에서 `if [ ''expression'' ]`과 같이 사용하기 위한 것입니다.

참조

[1] 웹사이트 The GNU Core Utilities Open Source Project on Open Hub: Languages Page https://www.openhub.[...] 2019-03-28
[2] 웹사이트 README-package-renamed-to-coreutils https://git.savannah[...] 2003-01-13
[3] 웹사이트 COPYING: Update to Version 3. https://git.savannah[...] 2007-07-23
[4] 웹사이트 GNU file utilities release 1.0 https://groups.googl[...]
[5] 웹사이트 GNU shell programming utilities released https://groups.googl[...]
[6] 웹사이트 new GNU file and text utilities released https://groups.googl[...]
[7] 웹사이트 GNU's Who https://www.gnu.org/[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com