1. access(권한 확인) |
1) 경로 : /usr/bin/access
2) 요약 : 지정한 파일의 존재 유무와 권한을 확인
3) 사용 방법 : access [모드] [파일명]
4) 옵션
--help : 사용법 출력
--version : 버전 정보 출력
5) 추가 설명
현재 사용자 권한으로 지정한 파일이 존재 하는지, 읽기/쓰기/실행 권한이 있는지를 확인할 수 있습니다. 독립적으로 사용되기보다 쉘 스크립트 안에서 사용됩니다. "모드" 인수에는 r(읽기), w(쓰기), x(실행)을 대입하여 파일에 권한이 있는지를 질의할 수 있습니다. 읽기(r), 쓰기(w) 권한이 있는 테스트 파일을 access 명령어를 이용하여 권한을 확인해 봅니다.
# ls -l testfile
-rw-rw-r-- 1 chan chan 0 Mar 27 14:20 testfile
현재 터미널 사용자는 chan이며 아래와 같이 testfile은 chan 사용자와 그룹에 읽기(r), 쓰기(w) 권한이 있는 것을 알 수 있습니다. access 명령어를 실행하면 인수를 제대로 입력하여도 아무런 결과도 출력되지 않습니다. echo "$?" 명령어를 이용하여 access 명령어의 결과가 성공(0) 했는지, 실패(1) 했는지 확인 할 수 있습니다.
# access rw testfile
$ echo "$?"
0
testfile에 읽기(r), 쓰기(w) 권한은 있지만 실행(x) 권한은 없으므로, 모든 인수를 rwx로 질의할 경우 결과는 실패(1)를 출력합니다.
# access rwx testfile
# echo "$?"
1
2. cat(파일 보기) |
1) 경로 : /bin/cat
2) 요약 : 텍스트 파일 내용을 출력
3) 사용 방법 : cat [옵션] [파일]...
4) 옵션
-A, --show-all : -vET 옵션과 같음
-b, --number-nonblank : 각 문자 앞에 번호를 표시해 줌. 공백 줄은 번호를 표시하지 않음
-e : -vE와 같음
-E, --show-ends : 개행 문자를 $로 표시. 줄 바꿈 표시
-n, --number : 각 문자 앞에 번호를 표시. 공백 줄도 번호를 표시
-s, --squeeze-blank : 공백이 여러 줄일 경우, 한 줄만 공백으로 보여주고 나머지 줄은 무시
-t : -vT 옵션과 같음
-T, --show-tabs : 탭 문자를 ^I(대문자 아이)로 출력
-v, --show-nonprinting : ^와 M 표시법으로 출력. 줄 바꿈 문자와 탭 문자는 표시하지 않음
--help : 사용법 출력
--version : 버전 정보 출력
5) 추가 설명
cat은 파일 내용을 출력하는 대표적인 명령어 입니다. cat은 파일 내용을 한 번에 출력해서 문서의 양이 많을 경우 제대로 볼 수가 없습니다. 이때는 more 명령이나 less, tail 명령어를 사용하거나 출력 내용을 파이프를 통해 다른 명령과 조합하여 사용합니다.
다음의query 파일을 cat으로 살펴봅니다. 한 줄이 너무 길 때 어디서 개행(줄바꿈)되었는지 구별이 쉽지 않습니다.
# cat query
select date_format(uregdate, '%Y%m') date,count(uid) from cst_users u,
cst_productregs p, cst_productregdetail d
where u.uno =p.preguno
and p.pregno=d.preggno
group by date
이런 경우 -n 옵션으로 줄 번호를 붙여 줍니다. 이 파일은 총 4줄입니다.
# cat -n query
1 select date_format(uregdate, '%Y%m') date,count(uid) from cst_users u, cst_productregs p, cst_productregdetail d
2 where u.uno =p.preguno
3 and p.pregno=d.preggno
4 group by date
문서의 양이 많은 경우 파이프를 통해 more 명령어에 출력을 넘겨 한 페이지씩 살펴볼 수 있습니다. 다음 페이지를 보려면 Space Bar 키를 입력하고, 한 줄씩 내려가려면 Enter 키를 입력합니다.
cat은 간단한 라인 편집기의 역할을 할 수 있습니다. 라인 편집기란 현재 입력하고 있는 행은 수정할 수 있지만 이미 지나 온 행은 수정할 수 없는 것으을 말합니다.
사용법은 다음과 같습니다.
# cat > [파일명]
그러면 실제로 파일을 만들어 저장해 봅니다. 파일을 다 쓰고 나서는 Ctrl + D 키를 눌러 cat 명령을 종료합니다.
# cat > boa.txt
You Still my No. 1,
날 찾지 말아 줘.
나의 슬픔 가려줘. 저 구름 뒤에
너를 숨겨 빛을 닫아 줘.
Ctrl + D
노래 가사를 입력해 보았습니다. 그러면 제대로 저장이 되었는지 새로 만들어진 boa.txt 파일을 읽어보면 저장 내용을 확인 할 수 있습니다.
# cat boa.txt
You Still my No. 1,
날 찾지 말아 줘.
나의 슬픔 가려줘. 저 구름 뒤에
너를 숨겨 빛을 닫아 줘.
그러나 리다이렉션(>)으로 저장 할 때 주의할 점은 추가할 때 마다 기존 파일의 내용을 덧씌운다는 것입니다. 100m.txt 파일의 내용을 화면에 출력하는 대신 리다이렉션으로 boa.txt 파일에 입력하고 저장해 봅니다.
# cat 100m.txt > boa.txt
# cat boa.txt
저기 보이는 노란 찻집
오늘은 그녀를 세 번째 만나는 날
앞서 작성한 boa.txt의 내용이 사라지고 100m.txt의 내용이 저장되었습니다. 그렇다면 기존 내용에 새 내용을 추가하려면 어떻게 해야 할까요? 이 때에는 >>를 사용합니다.
# cat sarah.txt >> boa.txt
3. chattr(파일 보호) |
1) 경로 : /usr/bin/chattr
2) 요약 : 파일 시스템의 파일 속성을 변경하여 파일 손상을 방지
3) 사용 방법 : chattr [옵션] [+- 속성] 파일...
4) 옵션
-R : 현재 디렉터리 이하의 모든 디렉터리와 파일의 속성을 변환
-V : 변환된 속성의 자세한 정보를 출력
-v : 버전 정보 출력
<속성>
a : 파일을 추가 모드로만 열 수 있음
c : 커널에 의해 디스크 상에 압축 상태로 저장
d : dump 명령 수행 시 백업하지 않음
i : 파일의 수정을 바지. 오직 슈퍼 유저만이 다시 이 속성을 변경할 수 있음
s : 파일이 지워질 때 일단 블록들이 모두 0이 된 다음 디스크에 기록
S : 파일이 수정될 때 그 변화가 디스크 상에 동기화
u : 파일이 지워지면 내용을 저장
5) 추가 설명
파일 시스템의 파일 속성을 변경하는 명령어입니다. 보호해야 하는 파일을 실수로 지우거나 덮어쓰지 않게 합니다. + 속성은 파일에 속성을 추가하고, -속성은 파일에서 속성을 제거합니다. =속성은 파일이 오로지 주어진 속성만 갖도록 합니다.
chattr +i 명령으로 /root/passwd_backup 파일에 수정 방지 속성을 부여해 봅니다. 이 속성을 추가하면 파일을 지우거나 이름을 변경하지 못하며 내용의 추가나 링크를 생성할 수도 없습니다.
# chattr +i /root/passwd_backup
lsattr 명령으로 파일 속성을 확인할 수 있습니다.
# lsattr /root/passwd_backup
---i--------- /root/passwd_backup
/root/passwd_backup 파일을 삭제해 봅니다. 속성을 제거하기 전까지는 삭제할 수 없습니다. 마찬가지로 파일 내용 변경도 불가능합니다. VI 에디터로 파일을 열어도 읽기 전용으로 열립니다.
# rm -rf /etc/passwd
rm: cannot unlink '/etc/passwd': Operation not permitted
그럼 chattr -i로 수정 방지 속성을 제거해 봅니다.
# chattr -i /etc/passwd
# lsattr /etc/passwd
------------- /etc/passwd
4. file(파일 종류 확인) |
1) 경로 : /usr/bin/file
2) 요약 : 파일의 종류와 파일 정보를 출력
3) 사용 방법 : file [옵션] 파일
4) 옵션
-b, --brief : 지정한 파일명은 출력하지 않고, 파일의 유형만을 출력
-f, --files-from 파일목록 : 파일 목록에서 지정한 파일들에 대해서 명령을 실행
-i, --mime : 사람이 읽을 수 있는 전통적인 형식이 아니라 MIME 타입 문자를 출력(예를 들어 ASCII text를 text/plain; charset=us-ascii 형태로 출력)
-L, --dereference : 심볼릭 링크된 파일을 추적하여 원본 파일 정보를 출력
-m, --magic-file 매직파일 : 매직파일을 지정(기본값은 /usr/share/file/magic)
-v, --version : 버전 정보 출력
-z, --uncompress : 압축된 파일의 내용을 출력
--help : 사용법 출력
5) 추가 설명
file 명령어는 파일 종류를 구분 짓는 유틸리티로 file 명령 뒤에 파일명을 입력하면 ascii나 text나 date 같은 파일 속성을 출력합니다. /usr/share/magic나 /usr/lib/magic에 저장한 파일 정보를 참고하여 파일 속성을 출력합니다. 아래 예제는 test 파일 속성을 알려줍니다.
# file test
test: ASCII text
-b 옵션은 저장한 파일명은 제외하고 유형만을 출력합니다.
# file -b test
ASCII text
-i 옵션은 MIME 타입을 볼 수 있습니다.
# file -i test
file: Using regular magic file '/usr/share/magic.mime'
test: text/planin; charset=us-ascii
5. head(파일 앞부분 보기) |
1) 경로 : /usr/bin/head
2) 요약 : 파일의 첫 번째 부분을 출력
3) 사용 방법 : head [옵션] [파일명]
4) 옵션
-숫자 : 출력을 원하는 줄수를 지정. 기본값은 10을 사용하여 열 줄을 출력.
-c, --bytes=SIZE : 출력을 원하는 용량을 정할 수 있음. 사이즈(SIZE)는 b(block=512bytes), k(Kilo bytes), m(Mega Bytes)를 숫자 뒤에 붙여 용량을 구분. 뒤에 단위가 없을 때는 바이트 단위로 출력
-n, --lines=N : 출력을 원하는 줄 수를 지정
-q, --quiet, --silent : 출력 할 때 파일명을 출력하지 않음
-v, --verbose : 출력하는 파일명을 출력
--help : 사용법 출력
--version : 버전 정보 출력
5) 추가 설명
파일의 앞 부분을 보여주는 명령어로 행 수나 용량을 지정할 수 있습니다. 이 명령어는 대용량 파일의 앞 부분의 내용을 볼 때 유용하며 특히 로그 파일을 확인 할 때 tail 명령어와 함께 자주 사용합니다.
head 명령어를 이용하여 mail 파일의 처음 10줄을 읽어봅니다. -v 옵션은 출력되는 파일명을 제일 먼저 출력합니다.
# head -v /var/mail/chan
==> /var/spool/mail/root <==
From root Fri Mar 27 16:40:11 2020
Return-Path: <root@apache.com>
Received: (from root@localhost)
by apache.com (9.10.1/9.10.1) id g1emr2oi3
for root; The 26 Mar 2020 12:00:11 +900
Date: Fri 27 Mar 2020 16:40:11 +0900
From: root <root@apache.com>
Message-Id: <2020032612000.g1emr2oi3@apache.com>
To: root@apache.com
Subject: File intergrity report
위의 예는 10개행으로 이루어진 메일의 처음을 출력합니다.
아래 예제는 읽을 범위를 지정하여 12번째 줄까지 읽어보도록 합니다.
# head -12 /var/mail/chan
==> /var/spool/mail/root <==
From root Fri Mar 27 16:40:11 2020
Return-Path: <root@apache.com>
Received: (from root@localhost)
by apache.com (9.10.1/9.10.1) id g1emr2oi3
for root; The 26 Mar 2020 12:00:11 +900
Date: Fri 27 Mar 2020 16:40:11 +0900
From: root <root@apache.com>
Message-Id: <2020032612000.g1emr2oi3@apache.com>
To: root@apache.com
Subject: File intergrity report
Hello~!!!
You must read this mail and send you answer.
-c 옵션을 사용하여 파일 용량을 기준으로 일정 용량까짐나 읽을 수 있습니다.
# head -v -c 74 /var/mail/chan
==> /var/spool/mail/root <==
From root Fri Mar 27 16:40:11 2020
Return-Path: <root@apache.com>
74 바이트 만큼 출력합니다.
'IT 이야기 > Linux 명령어' 카테고리의 다른 글
[RHEL6] 파일 보기 명령어 3탄(pathchk, size, sum, tail, tailf) (0) | 2020.03.27 |
---|---|
[RHEL6] 파일 보기 명령어 2탄(ispell, less, lsattr, more, namei) (0) | 2020.03.27 |
[RHEL6] 터미널 명령어 5탄(slattach, source, stty, tty, watch) (0) | 2020.03.27 |
[RHEL6] 터미널 명령어 4탄(reset, tset, screen, script, setsid, setterm) (0) | 2020.03.26 |
[RHEL6] 터미널 명령어 3탄(locale, mesg, openvt, printenv) (0) | 2020.03.26 |
댓글