# Core utilities (한국어)

관련 항목

- Bash
- Zsh
- General recommendations
- GNU Project
- sudo
- cron
- File system search
- man page
- Securely wipe disk#shred
- File permissions and attributes

이 문서는 less, ls, grep 등 GNU/Linux 시스템 상에서 Core utilities라고 불리는 유틸리티들에 대해 설명합니다. 이 문서는 GNU coreutils 패키지에 포함되어 있는 유틸리티 등을 포함합니다. 아래에는 해당 유틸리티들에 대한 유용한 도움말과 기타 정보가 제공됩니다.

## 기본적 명령어

아래의 표는 리눅스 사용자라면 익숙해져야할 기본적인 명령어들입니다. 볼드처리된 명령어들은 쉘의 일부이며, 나머지는 독립된 프로그램들입니다. 아래의 섹션들과 관련 문서들을 참고하십시오.

Command | Description | Example
--- | --- | ---
man | 명령어에 대한 설명을 표시합니다. | man ed
cd | 작업중인 디렉토리를 바꿉니다. | cd /etc/pacman.d
mkdir | 디렉토리를 만듭니다. | mkdir ~/newfolder
rmdir | 빈 디렉토리를 삭제합니다. | rmdir ~/emptyfolder
rm | 파일을 삭제합니다. | rm -r ~/file.txt
rm -r | 디렉토리와 그 안의 파일들을 삭제합니다. | rm -r ~/.cache
ls | 파일의 목록을 출력합니다. | ls *.avi
ls -a | 숨겨진 파일 역시 표시합니다. | ls -a /home/archie
ls -al | 숨겨진 파일을 표시하고 파일 속성을 같이 출력합니다. |
mv | 파일을 옮깁니다. | mv ~/compressed.zip ~/archive/compressed2.zip
cp | 파일을 복사합니다. | cp ~/.bashrc ~/.bashrc.bak
chmod +x | 파일을 실행가능하게 만듭니다. | chmod +x ~/.local/bin/myscript.sh
cat | 파일의 내용을 표시합니다. | cat /etc/hostname
strings | 바이너리 파일 안에서 출력 가능한 문자열을 출력합니다. | strings /usr/bin/free
find | 파일을 찾습니다. | find ~ -name myfile
mount | 파티션을 마운트합니다. | mount /dev/sdc1 /media/usb
df -h | 각 파티션에 남은 공간을 표시합니다. |
ps -A | 실행중인 프로세스를 모두 표시합니다. |
killall | 특정 프로세스의 인스턴스를 모두 종료합니다. |

## cat

위키백과에서: cat 명령어는 파일들을 연결하고 표시하기 위해 사용되는 표준 유닉스 프로그램입니다.

- cat은 쉘에 포함된 프로그램이 아닙니다. 스크립트를 작성하고 있거나, 성능을 향상하고 싶은 사용자라면 많은 경우에리다이렉션을 사용하는 것이 유용할 수 있습니다. 실제로 `< file` 명령은 `cat file`과 같은 기능을 합니다.

- cat은 여러 줄을 처리할 수 있습니다. 그러나 경우에 따라 cat을 이렇게 사용하는 것은 권장되지 않습니다.

    $ cat << EOF >> path/file
    first line
    ...
    last line
    EOF

  이런 경우 echo 명령어를 사용하는 것이 낫습니다.

    $ echo "\
    first line
    ...
    last line" \
    >> path/file

- 파일을 역순으로 나열해야 한다면, tac 명령어를 사용하십시오. (tac은 cat을 거꾸로 쓴 것입니다.)

## dd

dd는 유닉스 계열의 운영체제의 명령어로서, 파일 변환과 복사를 주 목적으로 합니다.

참고: cp 명령어는 기타 피연산자 없이도 dd와 같은 작업을 실행합니다. 하지만 cp는 dd와는 다르게 다양한 디스크를 지우는 작업을 지원하지 않습니다.

### dd 실행 중 진행률 확인하기

기본적으로 dd는 작업이 완료되기 전까지 아무런 메시지도 출력하지 않습니다. kill명령어와 `USR1` 신호를 사용하면 dd를 실제로 종료시키지 않고도 진행률을 확인할 수 있습니다. 두번째 터미널 에뮬레이터에서 루트 권한으로 `killall -USR1 dd` 명령을 실행하십시오.

참고: 이 명령은 실행중인 모든 dd 프로세스에 작용합니다.

또는,

    # kill -USR1 dd_명령어의_pid

를 사용할 수 있습니다.

예를 들어,

    # kill -USR1 $(dd_프로세스의_pid)

를 사용하십시오.

이 명령을 사용할 경우, dd는 즉시 진행률을 터미널에 출력합니다. 다음과 유사한 내용이 출력됩니다.

    605+0 records in
    605+0 records out
    634388480 bytes (634 MB) copied, 8.17097 s, 77.6 MB/s

#### 파이프 뷰어 사용하기

pv를 사용하여 dd-pipeline의 상태를 보는 것도 가능합니다.

    # dd if=/소스/파일스트림 | pv -모니터링_옵션 -s 파일_크기 | dd of=/목표지점/파일스트림

파이프 뷰어를 더욱 쉽게 사용하기 위해서 bashrc나 zshrc에 다음을 추가할 수 있습니다.

    copy() {
        size=$(stat -c%s $1)
        dd if=$1 &> /dev/null | pv -petrb -s $size | dd of=$2
    }

    # copy /소스/파일 /목표지점/파일

과 같이 사용할 수 있습니다.

### dd의 변형판

dd와 유사하지만 단순한 상태 바 등을 통해 주기적으로 상태를 출력하는 프로그램들도 있습니다.

dcfldd
  dcfldd는 dd의 확장판으로서, 보안 및 데이터 복구, 조사 등을 위한 유용한 추가 기능을 포함합니다. dd에서 사용할 수 있는 대부분의 파라미터를 dcfldd에서도 사용할 수 있으며, dcfldd는 자동으로 상태를 출력합니다. 가장 최근의 안정화판은 2006년 12월 19일에 출시되었습니다.[1]

ddrescue
  GNU ddrescue는 데이터 복구용 도구입니다. 읽기 오류를 무시하는 기능을 포함합니다. 이 기능은 대개의 경우 사용할 필요가 없을 것입니다. 공식 설명서를 참고하십시오.

## grep

grep은 유닉스용 명령줄 텍스트 검색 프로그램입니다. (ed 텍스트 편집기의 g/re/p(모든 범위/정규표현식/출력) 명령어에서 유래되었습니다) grep 명령어는 표준 입력 내용 혹은 파일들에서 주어진 정규표현식과 일치하는 줄들을 찾고, 표준 출력에서 검색 결과를 표시합니다.

- grep은 파일을 처리합니다. 그러므로 `cat 파일`과 같은 명령 대신 `grep 파일 패턴`으로 대체해도 무관합니다.
- 버전 컨트롤 시스템 안의 소스 코드를 위하여 최적화된 `grep` 대용판들에는 the_silver_searcher과 ack 등이 있습니다.

### 컬러 출력

`grep`의 컬러 출력 기능은 정규표현식과 `grep`의 추가적인 기능을 익히는 데에 도움이 될 수 있습니다.

grep의 컬러 출력을 활성화하려면 다음 항목을 쉘의 설정 파일에 추가하십시오. (이 예에서는 Bash를 사용할 경우를 보여줍니다)

    ~/.bashrc

    alias grep='grep --color=auto'

`GREP_COLOR` 환경 변수는 기본 색을 선택하는 데에 사용할 수 있습니다. 기본 설정값은 붉은색입니다. 색깔을 바꾸기 위해서는 원하는 색깔의 ANSI escape sequence를 알아낸 후에 그 값을 쉘의 설정파일에 추가하십시오.

    export GREP_COLOR="1;32"

`GREP_COLORS` 변수는 특정 검색에만 적용되도록 설정할 수 있습니다.

### 표준 오류

어떤 명령어들은 출력을 표준 오류로 보내기도 합니다. 이 경우, grep은 아무련 효과도 없는 것처럼 보입니다. 이 때에는 표준 오류의 출력을 표준 출력으로 리다이렉트해주면 됩니다.

    $ command 2>&1 | grep args

혹은 Bash 단축명령어로

    $ command |& grep args

I/O 리다이렉션 문서를 참고하십시오.

## iconv

## ip

## less

## ls

## mkdir

## mv

## rm

## sed

## seq

## 같이 보기

Categories:

- System administration (한국어)
- Command shells (한국어)