GNU 코어 유틸리티
"오늘의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)을 확인합니다. |
pinky | finger 명령의 경량 버전입니다. |
printenv | 환경 변수의 전부 또는 일부를 표시합니다. |
printf | 데이터의 표시 형식을 변환하여 표시합니다. |
pwd | 현재 디렉터리의 이름을 표시합니다. |
readlink | 심볼릭 링크의 값을 표시합니다. |
seq | 일련 번호를 표시합니다. |
sleep | 지정된 시간 동안 휴지합니다. |
stat | 파일의 상태를 얻습니다. |
stty | 터미널의 행 설정을 변경, 표시합니다. |
tee | 표준 입력에서 읽은 내용을 표준 출력과 파일에 기록합니다. |
test | 파일 형식의 확인 또는 값의 비교를 수행합니다. |
true | 아무것도 하지 않고 성공 값을 반환합니다. |
tty | 터미널 이름을 표시합니다. |
uname | 시스템의 정보를 표시합니다. |
unlink | 이름을 삭제하고, 경우에 따라 해당 이름이 참조하는 파일도 삭제합니다. |
users | 현재 로그인한 사용자를 표시합니다. |
who | 현재 로그인한 사용자를 자세히 표시합니다. |
whoami | 사용자의 로그인 이름을 표시합니다. |
yes | kill 시그널이 전송될 때까지 문자를 계속 표시합니다. |
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