[RHEL6] 일반 명령어 2탄(date, dir, dirname, iconv, id)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 일반 명령어 2탄(date, dir, dirname, iconv, id)

by 찬찬이 아빠 2020. 3. 20.
반응형
  6. date(날짜 보기)

 1) 경로 : /bin/date

 2) 요약 : 시스템 날짜와 시간을 출력하거나 설정

 3) 사용 방법 : date [옵션] [+포맷] [날짜]

 4) 옵션

 -d, --date=string : 지정한 날짜(string)를 출력

 -f, --file=datefile : 지정한 파일(datefile)에서 각 행에 대한 날짜를 출력

 -I(아이), --iso-8610[=timespec] : ISO-8601 형식으로 출력. 만일 timespec을 지정하면 날짜나 시, 분, 초 중 하나를 출력

 -r, --reference=file : 지정한 파일(file)이 마지막으로 수정된 날짜를 출력

 -R, --rfc-822 : RFC-822 데이트 문자열로 출력

 -s, --set=string : 지정한 값(string)으로 시간을 설정

 -u, --utc, --universal : 국제 표준시로 출력 또는 설정

 --help : 사용법 출력

 --version : 버전 정보 출력

 

 5) 추가 설명

date는 시간과 날짜를 알려줍니다. 만일 옵션이 ㅇ벗으면 시스템의 현재 시간과 날짜를 출력하며 +로 시작되는 옵션은 지정한 포맷 형식으로 출력합니다.

# date
2020. 03. 20. (금) 16:30:12 PDT

 

%j는 현재 연도에서 오늘이 며칠째인지 알 수 있습니다. 즉, date %j 값이 188이면 2020.03.20일에서 188일이 지났다는 의미입니다.

# date +%j
188

 

%H는 ㅣ간을 24시로 표기하고,  %M은 분을 출력합니다. 또한 아래와 같은 방법으로 오늘 날짜를 "연-월-일" 형식으로 표현할 수도 있습니다.

# date +%H%M
2236
# date +%Y-%m-%d
2020-03-20

 

아래는 --date 옵션으로 시스템 시간에서 15이 후의 날짜를 알 수 있습니다.

# date --date '15 days day'
2020. 04. 04. (토) 22:44:46 PDT

 

그럼 현재 시간으로부터 3년 2개월 전의 날짜가 어떻게 될까요?

# date --date '3years ago 2months ago'
2017. 01. 20. (금) 16:08:06 PDT

 

또한 결과를 다양한 포맷으로 출력할 수 있습니다. 특히 쉘 스크립트와 cron을 이용한 백업이나 시스템 작업에 다양한 포맷이 필요할 때 더욱 유용합니다.

 

지원하는 포맷 형식에 대해서는 아래 표를 참고합니다.

포맷 설명
% % 문자를 표시
-(하이픈) 필드를 채우지 않음(기본적으로 0으로 채움)
_(언더바) 필드를 공백으로 채움
%a 로케일에 맞는 약식 요일 이름(Sun...Sat)
%b, %h 로케일에 맞는 약식 월 이름(Jan...Dec)
%c 로케일에 맞는 날짜와 시간(Mon Jun 01 10:42:09 KST 2020)
%d 월 기준 일(01...31)
%j 년 기준 일(001...366)
%k 24시간 기준 시간(0...23)
%l 12시간 기준 시간(1...12)
%m 년 기준 월(01...12)
%n 새로운 줄 입력
%p AM 또는 PM
%r 2시간 표현 형식(hh:mm:ss[AM|PM])
%s 1970-01-01 00:00:00 UTC로부터 경과된 초
%t 탭을 입력
%w 요일의 숫자(일요일은 0)
%x 로케일의 날짜 표현식(mm/dd/yy)
%y 년 표현의 뒤에서 2자리(00-99)
%z RGC 822 표현의 숫자 시간대
%A 로케일에 맞는 완전한 요일 이름 표현(Sunday...Saturday)
%B 로케일에 맞는 완전한 월 표현(January...December)
%D %m/%d/%y 날짜 표현식
%H 24시간 표현형식(00...23)
%I(아이) 12시간 표현형식(01...12)
%M 분 표현형식(00...59)
%S 초 표현 형식(00...59)
%T %H:%M:%S 형태의 시간 표현
%U 년 기준 주일의 숫자(일요일을 주일의 시작. 00...53)
%V 년 기준 주일의 숫자(월요일을 주일의 시작. 01...52)
%W 년 기준 주일의 숫자(월요일을 주일의 시작. 00...53)
%X 정의한 시간의 표현(%H:%M:%S)
%Y 년 표현의 네 자리 숫자(2020)
%Z 시간대의 이름(KST)

 

 

 

  7. dir(파일 목록 보기)

 1) 경로 : /usr/bin/dir

 2) 요약 : 디렉터리와 파일의 목록을 출력

 3) 사용 방법 : dir [옵션] 파일

 4) 옵션

 -a, --all : .로 시작하는 목록을 출력

 -A, --almost-all : .과 ..으로 시작하는 목록은 포함하지 않음

 --author : -l(엘) 옵션과 함께 각 파일을 처음 만든 사용자를 출력

 -b, --escape : nongraphic 문자를 위한 8진수 이스케이프 문자를 출력

 -B, --ignore-backups : ~로 끝나는 백업 파일을 출력하지 않음

 -c : -lt(엘티) 옵션과 함께 ctime (마지막으로 변경된 파일정보) 정보를 출력. -l(엘)과 함께 ctime을 보여주고 이름을 기준으로 정렬. 그렇지 ㅇ낳으면 ctime 기준으로 정렬

 -C : 열 목록을 출력

 --color[=WHEN] : 파일 타입을 구별할 컬러를 제어. WHEN은 never, always나 auto임

 -d, --directory : 디렉터리 목록을 출력

 -D, --dired : Emacs의 dired 모드로 출력

 -f : 정렬하지 않음. -aU와 같이 쓰면 활성화되고 -ls --color와 같이 쓰면 비활성화

 -F, --classify : 목록에서 */=>@| 중 하나의 표시를 출력. 참고로 디렉터리는 /임

 --file-type : 위와 비슷하지만 "*"은 추가되지 않음

 --format=WORD : WORD에 올 수 있는 across는 -x, commas는 -m, horizontal은 -x, long은 -I(아이), single-column은 -1, verbose는 -l(엘), vertical은 -C 옵션과 같음

 --full-time : -l(엘) --time-style=full-iso와 비슷

 -g : -l(엘)과 비슷하지만, 소유자를 출력하지 않음

 --group-directories-first : 파일 전에 디렉터리 그룹을 출력

 -G, --no-group : 긴 목록으로 출력하는데, 그룹 이름은 출력하지 않음

 -h, --human-readable : 사람이 읽기 쉬운 포맷으로 크기를 출력

 --si : -h 옵션과 비슷. 1KB는 1,204바이트지만 사용자가 보기에 편하도록 1,000 단위로 용량을 표시

 -H, --dereference-command-line : 심볼릭 링크의 우너본 파일을 출력

 --hide=PATTERN : 지정한 형식(PATTERN)을 출력하지 않음(-a나 -A 옵션이 우선)

 -i, --inode : 파일의 인덱스 번호를 보여줌

 -I(아이), --ignore=PATTERN : 형식(PATTERN)과 일치하는 목록을 출력

 -k : --block-size 1K와 비슷

 -l(엘) : 자세한 목록의 형식으로 출력

 -L, --dereference : 심볼릭 링크의 파일 정보를 출력할 때, 원본 파일의 정보를 출력

 -m : 전체 리스트를 콤마(,)로 구분하여 출력

 -n, --numeric-uid-gid ; -l(엘)과 비슷하지만, 사용자와 그룹의 숫자 ID를 출력

 -N, --literal : 로우(raw) 엔트리 이름을 출력

 -o(오) : -l(엘)과 비슷하나 그룹정보를 출력하지 않음

 -p, --indicator-stype=slash : 디렉터리에 / 지시자를 추가

 -q, --hide-contorl-chars : nongraphic 문자 대신 ?를 출력

 -Q, --quote-name : 쌍따옴표(")로 목록 이름을 감싸서 출력

 -r, --reverse : 정려할 때 기준의 역으로 정렬

 -R, --recursive : 하위 디렉터리를 모두 포함하여 출력

 -s, --size : 파일의 사이즈를 블록 단위로 출력

 -S : 파일 크기를 기준으로 정렬

 --sort=WORD : 이름 대신 지정한 단어(WORD)로 정렬. 단어에 들어갈 수 있는 none은 -U, extension은 -X, size는 -S, time은 -t, version은 -v와 같음

 --time=WORD : -l(엘) 옵션과 함께 수정한 시간 대신 지정한 단어(WORD)로 출력. 단어에 들어갈 수 있는 atime은 -u, access는 -u, use는 -u, ctime은 -c, status는 -c와 같음

 --time-style=STYLE : -l(엘) 옵션과 함께 지정한 스타일(STYLE) 시간을 출력. full-iso, long-iso, iso, locle, +FORMAT이 올 수 있음

 -t : 수정된 시간을 기준으로 정렬

 -T, --tabsize=COLS : 기본값 8 대신 지정한 탭(CLOS) 만큼 지정

 -u : -lt(엘티) 옵션과 함ㅁ께, 접근 시간을 기준으로 정렬. -l(엘) 옵션과 함께 이름을 기준으로 정렬

 -U : 정렬하지 않음. 디렉터리를 기준으로 정렬

 -v : 텍스트 안의 버전 번호를 정렬

 -w, --width=CLOS : 현재 값 대신 스크린 너비를 COLS로 지정

 -x : 열 대신 라인 목록으로 출력

 -X : 알파벳으로 정렬

 -Z, --context : SELinux 보안 컨텍스트를 출력

 -1 : 각 줄 별로 하나의 파일만 출력

 --help : 사용법 출력

 --version : 버전 정보 출력

 

 5) 추가 설명

dir은 디렉터리와 파일 목록을 추력하는 명령어로 사용법과 결과가 ls와 같습니다. DOS에서도 같은 명령어를 쓰기 때문에 DOS와 MS 윈도우의 터미널 환경에 친숙한 사용자라면 편하게 이용할 수 있습니다.

 

 

  8. dirname(경로명 보기)

 1) 경로 : /usr/bin/dirname

 2) 요약 : 디렉터리의 이름을 출력

 3) 사용 방법 : dirname 파일명

 4) 옵션

 --help : 사용법 출력

 --version : 버전 정보 출력

 

 5) 추가 설명

dirname은 전체 경로의 파일 이름에서 디렉터리가 아닌 접미사를 제거하는 명령어입니다. 아래 예제는 상대 경로와 정대 경로에 따른 dirname 명령의 차이점을 출력하는데, 전체 절대 경로를 지정하지 않으면 현재 디렉터리 표시인 점(.)을 출력합니다.

# dirname linux-2.6.32
.

# dirname ~/sources.pkgs/linux-2.6.32
/home/user/sources.pkgs

 

절대 경로와 상대 경로

컴퓨터 운영체제에서 path란 파일 시스템에서 지정한 파일에 이르는 경로를 말합니다. 유닉스기반의 시스템에서 경로의 형식은 다음과 같습니다.

   /directory/subdirectory/filename

 

절대 경로란 루트(/) 디렉터리로부터 시작하는 파일이나 디렉터리의 완전히 기술된 경로명을 말합니다.

상대 경로란 현재 위치에서 시작하는(디렉터리명이나 점(.)으로 시작하는) 지정된 파일이나 디렉터리의 경로를 말합니다.

 

 

  9. iconv(인코딩 변경)

 1) 경로 : /usr/bin/iconv

 2) 요약 : 주어진 파일의 문자 인코딩 방식을 변경

 3) 사용 방법 : iconv -f [변경전인코딩] -t [변경후인코딩]

 4) 옵션

 -from-code, -f encoding : 원본 파일의 변경 전 문자 인코딩을 지정

 -to-code, -t encoding : 변경하려는 대상의 문자 인코딩을 지정

 -list, -l(엘) : 지원하는 인코딩 목록을 출력

 --output, -o(오) file : 출력 내용을 표준 출력대신 지정한 파일에 저장

 --silent, -s : 경고 메시지를 출력하지 않음

 --verbose : 상태의 자세한 정보를 출력

 

 5) 추가 설명

iconv 명령어는 지정한 파일이나 표준 입력의 문자 인코딩을 지정한 인코딩으로 변환합니다. 변경 결과는 -o(오) 옵션으로 파일로 저장하거나 표준 출력으로 출력합니다.

 

아래 명령어는 EUC-KR 문자셋을 가진 test 파일을 읽어 UTF-9 문자셋으로 인코딩 후에 test_UTF8 파일에 저장합니다.

# iconv -f EUC-KR -t UTF-8 test -o test_UTF8

 

iconv가 지원하는 인코딩을 확인하려면 아래와 같이 iconv -l(엘) 명령을 사용합니다. 지원 인코딩 중 EUC-KR을 지원하는지 확인하려면 grep을 이용하여 검색합니다.

# iconv -l | grep -i EUC-KR
Euuc-KR//

 

 

  10. id(계정 ID 확인)

 1) 경로 : /usr/bin/id

 2) 요약 : 사용자의 UID, GID 번호를 출력

 3) 사용 방법 : id [옵션] [사용자명]

 4) 옵션

 -g, --group : 사용자의 그룹 ID만 출력

 -G, --groups : 추가 그룹의 ID만 출력

 --help : 사용법 출력

 -n, --name : -u, -g, -G 옵션과 함께 쓰여 해당하는 ID의 이름만 출력

 -r, --real : -u, -g, -G 옵션과 함께 쓰여 해당하는 실제 ID를 출력

 --version : 버전 정보 출력

 

 5) 추가 설명

id 명령어는 현재 사용자의 실제 ID와 유효사용자 ID, 그룹 ID를 출력합니다. 내부 bash 변수인 $UID, $EUID, $GROUPS와 짝을 이룹니다. 만일 사용자를 지정하면 해당 사용자 정보를 출력합니다. 아래와 같이 id ㅕㅇ령으로 현재 로그인한 admin 계정의 정보를 살펴봅니다.

# id
uid=500(admin) gid=500(admin) groups=500(admin, 22(CD-ROM), 80(cdwriter), 81(audio

 

위의 예제의 사용자는 admin으로서 uid는 500, gid는 500입니다. 그룹 22, 80, 81에도 속해 있습니다.

 

echo $UID 명령으로 로그인한 사용자의 uid를 확인할 수 있습니다.

# echo $UID
500
반응형

댓글