[리눅스 일반] 파일포맷 및 패턴처리 실무

1. 특정 패턴의 문자들을 원하는 포맷으로 처리하는 강력한 유틸리티 awk 개론

– awk 는 기본적으로 탭 또는 공백으로 구분되는 각각의 단어들을 하나의 변수로 처리함. 탭과 공백을 기본적인 구분문자로 사용한다는 의미임.

– 탭과 공백을 무시하고 특정문자( 🙁 콜론 ) ;( 세미콜론 ) ,( 콤마 ) 등 ) 를 구분문자로 처리하고자 한다면 -F 옵션을 사용하면 됨.

– -F 옵션 다음에 원하는 특정문자를 지정하면 그 문자를 구분문자로 하여 각각의 단어들을 변수로 처리할 수 있음.

– 사용형식 : awk [ 옵션 ] ‘스크립트’ [ 변수=값 ] [ 파일… ]
awk [ 옵션 ] [ -F ] ‘{ 스크립트 }’

2. /etc/passwd 파일에서 계정명( ID ) 만 출력하기

– cat /etc/passwd | awk -F: ‘{print $1}’

3. /etc/passwd 파일에서 각각의 ID 와 홈디렉토리만을 출력하기

– cat /etc/passwd | awk -F: ‘{print $1″           “$6}’

– 각각의 ID 와 홈디렉토리를 조사하고자 할 때에 주로 사용되는 방법임.

4. /etc/passwd 파일을 이용한 /etc/group 파일내용 만들기

– cat /etc/passwd | awk -F: ‘{print $1″:x:”$4″:”}’

5. /etc/passwd 파일을 이용한 /etc/shadow 파일내용 만들기

– grep home /etc/passwd | awk -F: ‘{print “grep “$1″ /etc/shadow”}’

– ” grep home /etc/passwd ” 의 의미는 /etc/passwd 파일내에서 home 이라는 문자를 가진 행들은 모두 출력하라는 것임. 즉, /etc/passwd 파일에서 실계정을 사용하는 계정들이라면 그 홈디렉토리가 home 이라는 것에서 착안한 것.

6. /home 디렉토리의 각 계정별로 압축하는 명령어 만들기

– ls -l /home | grep “^d” | awk ‘{print “tar xvfpz ” $9″.tar.gz” “/home/”$9}’

– 명령어 실행의 결과를 vi 로 작성후 맨 첫번째 행에 반드시 #!/bin/bash 를 입력한다.

7. 각각 다른 여러디렉토리 내에 동일한 파일을 vi 로 수정하는 명령어 만들기

– ls -l | grep “^d” | awk ‘{print “vi “$9″/home.html”}’

[리눅스 일반] 문자열 검색 및 편집처리 실무

1. 지정한 파일내에서 특정문자열에 해당하는 문자열 검색하기

– grep 은 ” Globally find Regular-Expression and Print ”  의 약어이며 지정된 파일내의 특정문자나 단어를 검색하는 명령어로서 파일편집이나 특정문자를 포함한 단어를 찾는데 매우 유용하게 사용굄.

– egrep 은 grep 의 확장된 명령어이며 파일내의 특정문자를 확장된 정규표현으로 검색할 수 있음.

– fgrep 은 파일내의 특정문자를 고정된 문자열로만 인식하여 검색함.

– egrep 은 ” grep -E ” 옵션을 사용하는 것과 같으며, fgrep 은 ” grep -F ” 옵션을 사용하는 것과 같음.

– grep 에서 사용되는 검색문자패턴 정규표현식
. : 아무문자나 한문자를 의미함
* : 어떤문자열이나 문자길이에 무관한 문자열을 의미함
^ : 행의 시작 위치를 의미함.
$ : 행의 마지막 위치를 의미함.
[ ] : 한문자 길이의 패턴리스트
[^ ] : 지정된문자들 이외의 문자들을 의미함( ^ 는 여집합을 의미함 )
: 뒤에오는 문자를 문자그대로 인식함( 특수문자를 그대로 표현할때 사용함 )
/< : 단어의 시작 위치를 의미함.
/> : 단어의 마지막 위치를 의미함.

– 사용형식 : grep [ 옵션 ] 검색할문자표현식 [ 파일… ]
grep [ 옵션 ] [ -e 검색할문자표현식 | -f 파일 ] [ 파일… ]

2. 지정된 파일내에서 특정문자 찾기

– 사용형식 : grep 찾을문자 대상파일

3. 지정된 파일내에서 특정문자를 포함한 행의 개수 출력하기

– grep -c Test TestFile

4. 지정된 파일내에서 특정문자가 존재하지 않는 행만 검사하기

– grep -v Test TestFile

5. 지정된 파일 내에서 대소문자 구분없이 특정문자 검색하기

– grep -i Test TesFile

6. 특정 디렉토리내에서 디렉토리리스트만 확인하기

– 사용형식 : ls -l 디렉토리경로( 절대경로 ) | grep “^d”

– “^d” 는 처음의 행이 ” d ” 로 시작한다는 것을 의미하는 정규표현식.

7. 특정 디렉토리내에서 파일리스트만 보기

– 사용형식 : ls -l 디렉토리경로( 절대경로 ) | grep -v “^d”

– grep -v “^d” 는 각 행의 척번째 문자가 ” d ” 로 시작하지 않는 행만을 의미

8. 특정디렉토리 내에 존재하는 파일들 한번에 편집하는 명령어만들기

– 사용형식 : ls -l 대상디렉토리 | grep -v “^d” | awk ‘{print “vi ” $9}’

– 특정 디렉토리내의 모든 파일을 vi 로 하나씩 차례대로 편집하고자 할 때에는 ” ls -l ” 을 해서 파일이름을 확인한 후에 vi 명령어를 차례대로 실행하는 것이 일반적임.

[리눅스 일반] 파일리스팅 실무처리

1. 파일리스팅 실무 개론

– 사용형식 : ls [ 옵션 ] [ 디렉토리 ] [ 파일 ]

2. 파일과 디렉토리의 크기순서대로 확인하는 방법

–  -R 옵션 : 지정한 디렉토리이하에 있는 하부디렉토리와 파일들을 모두 포함함.( Recursive)

– -r 옵션 : 출력결과를 정렬할 때에서 내림차순으로 정렬함.( Descending )

– -S 옵션 : 파일사이즈가 가장 큰 것부터 순서대로 나열하게 된다.

– -l 옵션 : 파일들을 나열할 때에 자세한 출력을 하게 된다.( 파일형태, 사용권한, 하드링크 번호, owner 이름, group 이름, 파일크기, 시간 등)

– -a 옵션 : 경로안의 모든 파일을 나열한다. ‘.’ 으로 시작하는 파일 들도 포함됨.

– -A 옵션 : 출력결과의 파일들에서 . 와 .. 는 제외한다.

– -h 옵션 : 파일사이즈를 용량단위( Megabyte, Gigabyte ) 를 붙여서 출력해준다.

– ls -lhRS 또는 ls -lhRS  디렉토리절대경로

– 현재디렉토리 이하에 존재하는 모든 파일과 디렉토리를 대상( R ) 으로 하여 자세한 출력( l ) 을 하면서 파일크기가 큰 순서대로( S ) 결과를 보여준다. 이때에 파일사이즈를 용량단위( KB, MB, GB 등) 를 붙여서( h ) 표시해주게 된다.

– 파일시스템의 사용량을 확인하려면 du 또는 df 명령어를 사용한다.

3. 파일정보 자세히 표시하기

– 현재 디렉토리내에 존재하는 파일들의 보다 자세한 정보들을 확인하고자 한다면 ls 명령어에 -l 옵션을 사용한다.

– -l 옵션을 사용하면 파일명뿐 아니라 파일의 퍼미션, 소유자, 소유그룹, 파일사이즈, 파일변경일시 등 보다 자세한 정보를 표시해 줌.

– -l 옵션을 사용하면 파일명을 기준으로 오름차순으로 정렬되어 출력이 된다.

4. 파일명을 기준으로 내림차순 정렬하기

– 파일명을 기준으로 내림차순 정렬을 하려면 -r 옵션을 함께 사용하면 된다.

5. 특정 디렉토리의 모든 파일 확인하기

– ls 명령어에 -a 옵션을 사용하면 .( 점 ) 으로 시작하는 파일들까지도 모두 표시됨.

– . 는 현재 디렉토리를 의미하며 .. 는 현재디렉토이의 상위디렉토리를 의미함.

– 일반적으로 -a 옵션을 사용하지 않으면 .( 점 ) 으로 시작하는 파일은 표시되지 않는다. 보통의 경우에는 .( 점 ) 으로 시작하는 파일들까지 확인할 필요는 없지만 디렉토리내의 모든 파일을 확인해야하는 경우나 서버보안점검을 위해 숨겨진 파일들까지 모두 확인해야하는 경우, 그리고 사용환경설정에 대한 숨겨진 파일들을 확인하고자 할 때에 .( 점 ) 으로 시작하는 파일들을 모두 확인해야 할 필요가 있다.

– 일반적인 계정사용자라면 굳이 -a 옵션을 매번 사용해야 할 필요는 없겠지만, 시스템관리자라면 서버의 보안을 위하여 -a 옵션을 꼭 사용할 것을 권한다.

6. 콤마( , ) 로 파일들을 구분하기

– 특정 디렉토리내의 파일리스트를 나열할 때에 파일과 파일사이에 ,( 콤마 ) 로 구분하여 출력하게 하려면 -m 옵션을 사용한다.

7. 파일의 끝부분에 파일형태를 표시하는 특수문자 표시하기

– 일반적인 파일 : 아무런 표시도 하지 않는다.

– 실행파일 : ” * ” 를 붙여서 실행파일임을 표시한다.

– 디렉토리 : ” / ” 를 붙여서 디렉토리임을 표시한다.

– 심볼릭링크 : ” @ ” 를 붙여서 심볼릭링크임을 표시한다.

– FIFO : ” | ” 을 붙여서 FIFO 파일임을 표시한다.

– 소켓파일 : ” = ” 을 붙여서 소켓( Socket ) 파일임을 표시한다.

– 파일의 종류별로 파일의 끝에 표시를 하려면 ls 명령어 사용시에 -F 옵션을 함께 사용한다.

8. . ( 현재디렉토리 ) 와 .. ( 상위디렉토리 ) 를 제외하고 표시하기

– -A 옵션을 사용하면 . ( 현재디렉토리 ) 와 .. ( 상위디렉토리 ) 의 출력을 제외시키게 된다.

9. 파일의 UID 와 GID 를 표시하기

– 특정 디렉토리내의 파일리스트를 출력 할 때에 -l 옵션을 사용하면 파일의 소유자와 소유그룹을 표시해준다.

– ls 명령어로 파일리스트를 나열할 때에 UID 와 GID 를 출력하려면 -n 옵션을 사용하면 된다.

10. 소유그룹정보 제외하기

– ls 명령어에 -G 옵션을 사용하면 소유자그룹정보를 제외시킨채 파일리스트가 출력된다.

11. 한줄에 한 파일씩만 나열하기

– -1 ( 숫자 1 ) 옵션을 사용하면 한행에 파일하나씩만 출력한다.

12. 파일의 끝에 ‘ ~ ‘ 가 붙은 파일( 백업파일 ) 은 출력제외하기

– 파일명 끝에 ” ~ ” 가 붙은 파일은 특정 파일의 백업파일을 의미함.

– ls 명령어 사용시 -B 옵션을 함께 사용하면 파일명의 끝에 ” ~ ” 이 붙은 파일은 출력에서 제외됨.

13. 가로길이를 지정하여 표시하기

– -w 옵션을 사용하면 결과들의 가로길이를 지정할 수 있다.

– 기본값은 80 컬럼으로 표시되지만 특별한 설정이 없다면 현재 터미널의 영역에 맞추어 출력된다.

14. 특정패턴의 파일은 나열에서 제외하기

– -I 옵션을 사용하면 출력결과에서 원하지 않는 파일들을 제외시킬 수 있다.

15. 서브디렉토리내의 모든 파일들도 함께 표시하기

– ls 명령어에서 -R 옵션을 함께 사용하면 현재 디렉토리내의 파일리스트뿐 아니라 하위디렉토리내의 파일과 디렉토리들 까지 모두 출력한다.

16. 파일의 용량별로 내림차순 정렬하여 보여주기

– ls -S

– ls 명령어에서 파일의 용량별로 정렬을 해주는 옵션은 -S 옵션이다.

– 용량을 기준으로 내림차순 정렬이란 용량이 큰 파일부터 작은 파일 순으로 차례대로 출력되는 것을 의미한다.

17. 파일의 용량별로 오름차순 정렬하여 보여주기

– 오름차순 정렬이란 용량이 작은 파일부터 큰 파일 순으로 출력되는 것을 의미한다.

– ls -Sr

– 오름차순 정렬을 하려면 -r 옵션을 사용한다.

18. 파일 확장자순으로 정렬하여 표시하기

– ls 명령어에서 -X 옵션을 사용하면 확장자를 기준으로 정렬한다.

19. 디스크저장 순서대로 출력하기

– 특정 디렉토리내의 파일리스트를 출력 할 때에 정렬하지 않고 디스크에 저장된 순서대로 파일을 나열하려면 ls 명령어에서 -U 옵션을 사용하면 된다.

20. 심볼릭 링크파일을 일반 파일형태로 출력하기

– ls -L

– ls 로 출력되는 링크파일은 기본적으로 ” 링크파일명 -> 가르키는 위치 ” 와 같은 형태로 표시가 되지만 ls 명령어의  -L 옵션을 사용하면 심볼릭링크파일을 일반파일과 같은 형태로 출력해 준다.

21. 최근 변경시간을 기준으로 정렬하기

– -c 옵션을 사용하면 특정 디렉토리내의 파일리스트를 ls 명령어로 출력할 때에 파일의 최근 변경시간을 기준으로 정렬하여 출력할 수 있음.

– ls -c

22. 파일의 시간순서대로 표시하기

– ls –full-time

– –full-time 옵션을 사용하면 파일의 시간을 초단위 이하까지 표시해 준다.

23. 파일리스트 맨 앞에 파일 색인번호를 표시하기

– 파일이 색인번호( inode ) 를 각 행의 맨 앞에 표시하려면 -i 옵션을 사용하면 된다.

24. 가로로 나열하여 파일리스팅하기

– ls -x

– 파일의 리스트를 출력할 때에 가로로 출력하려면 -x 옵션을 사용한다.

25. 세로로 나열하여 파일리스팅하기

– 파일리스트가 세로방향출력이 되게하려면 -C 옵션을 사용하면 된다.

– ls -C

26. 파일의 크기를 KB 단위로 표시하여 파일리스팅하기

– ls -s

– 파일의 앞부분에 용량을 kb 단위로 표시하려면 -s 옵션을 사용한다.

27. 특정디렉토리 이하의 모든 파일을 대상으로 용량별로 정렬하기

– ls -alRSh /해당디렉토리

– 특정디렉토리내부의 파일들과 디렉토리들을 파일사이즈로 정렬( S ) 하여 용량단위로( h ) 모든 서브디렉토리까지( R ) 숨김파일까지( a ) 모든정보를 표시하여( l ) 확인하는 명령어

28. 특정디렉토리이하를 용량별로 정렬리스트하여 지정한 파일에 저장하기

– ls -alRSh /특정디렉토리 > Test_List.txt

[리눅스 일반] 디스크 사용량 점검하기 실무

1. 특정 디렉토리의 용량을 확인하는 du 명령어 개론

– du 는 “Disk Usage” 의 약어로서 파일및 디렉토리의 사용량을 확인 할 때 사용하는 명령어임.

– df 명령어가 파티션( 파일시스템 ) 단위의 디스크사용량을 점검한다면 du 명령어는 특정 디렉토리 또는 파일을 단위로하여 그 용량을 확인하는 명령어임

– du 명령어는 현재디렉토리의 용량뿐 아니라 현재디렉토리의 서브디렉토리 및 파일들 까지 모두 함께 사용량을 계산하여 표시해 줌.

– 사용형식 : du [ 옵션 ]….[ 파일 ] [ 디렉토리 ]

2. 특정 디렉토리의 전체 사용량 점검하기

– du -s /etc

– 전체용량을 간략히 표시할때는 -s 옵션을 사용함.

3. 특정 디렉토리의 전체 사용량을 용량단위를 붙여서 점검하기

– 전체용량을 모두 합해서 용량단위까지 붙여서 출력하라는 옵션은 -sh 이다.

– du 명령어사용시 “-h”(human-readable)는 단위를 표시하게 하는 du 명령어의 옵션으로서 KByte 또는 MByte 또는 GByte 등의 용량표시를 해주게 됨.

– du -sh /etc

4. 일반 계정사용자의 홈디렉토리 전체 디스크 사용량 점검하기

– du -sh ~stkim

– “du -sh ~ID” 라고하면 현재 자기가 사용중인 계정의 전체용량을 확인할 수 있음.

5. 현재 서버의 파일시스템별 디스크사용량 점검하는 df명령어 실무활용

– df 는 “Disk Free” 의 약어로서 현재 사용중인 파일시스템의 전체용량, 사용한 용량, 사용가능한 용량, 사용울, 마운트정보등을 보여줌.

– 서버 장애의 주된 원인이 될 수 있는 File System Full( 파일시스템용량이 꽉 참 ) 을 방지하기 위하여 서버관리자의 주된 업무 중 한가지가 주기적인 파일시스템 사용량 점검임.

– 파일시스템의 사용량점검을 위해 사용되는 명령어가 df 임.

– df 명령어는 /etc/fstab 파일에서 파일시스템정보를 참조하고, /etc/mtab 에서 마운트됨 정보를 참조함.

– 현재 서버의 디스크사용량을 파티션별로 확인하기

– 파일시스텤 사용량 정보를 확인하기 위해서는 간단히 “df” 라고만 입력하면 됨.

6. 디스크사용량을 파티션별로 확인할 때에 용량을 KByte 단위로 표시하기

– df -k

– -k 옵션을 사용하면 표시되는 용량단위가 KB임. 하지만, 아무런 옵션없이 사용하여도 기본 표시단위가 KB 이므로 -k 옵션은 디폴트( default) 라고 생각하면 됨.

7. 디스크사용량을 파티션별로 확인할 때에 용량을 Mbyte 단위로 표시하기

– 용량을 MB단위로 용량을 표시하려면 -m 옵션을 사용함.

8. 디스크사용량을 파티션별로 확인할 때에 가장 적당한 용량단위 표시하기

– -h 옵션은 human-readable 이라는 의미에서도 알 수 있듯이 사람이 보기 쉽도록 최적의 용량단위를 알아서 표시해 줌.

– df -h

9. 디스크용량 확인시에 모든 파일시스템을 대상으로 점검하기

– df -a

– 파일시스템의 크기가 0인 것까지 모든 파일시스템을 확인하는 옵션인 -a .

10. 파틱션별로 디스크용량 점검시에 inode 사용자정보를 표시하기

– df 명령어 사용시에 -i 옵션을 사용하면 블록대신에 inode 단위로 사용량 정보를 표시해 줌.

11. 디스크사용량을 출력할 때에 파일시스템의 종류와 함께 표시하기

– df -T

– -T 옵션은 각 파일시스템들이 사용하고 있는 파일시스템 종류를 추가로 표시해 줌.

12. 특정 파일시스템의 종류만을 대상으로 디스크사용량 조사하기

– df -t 파일시스템종류

– df 명령어 사용시 -t 옵션뒤에 파일시스템의 종류명을 지정하면 그 파일시스템의 종류를 가진 파일시스템에 대해서만 사용량을 표시해 줌.

13. 특정 파일시스템의 종류를 제외한 디스크사용량 조사하기

– df -x ext3

– df 명령어에 -x 과 파일시스템 명을 명시하면 지정한 파일시스템을 제외한 파일시스템에 대해서만 사용량을 표시해 줌.

[리눅스 일반] 파일 및 디렉토리 복사 실무

1. cp 활용 개론

– 사용형식 : cp [ 옵션 ] 원본파일 복사파일
cp [ 옵션 ] 원본파일( 디렉토리 ) 디렉토리

– mv 와  cp 명령어의 차이점 : mv 명령어는 복사하고 난 후에 원본파일이 지워지게 된다.

2. 디렉토리전체를 복사하는 방법

– cp 명령어의 -r 옵션과 -R 옵션은 지정한 디렉토리내의 하위디렉토리들까지 모두 복사된다는 점에서 동일함. 하지만 -r 옵션이 파일복사에 사용되었을 경우에는 그냥 복사만 됨.

– cp -r TestDir1 TestDir2

3. 원본파일의 소유자, 그룹소유자, 권한, 시간정보등을 그대로 보존하면서 복사하기

– cp 명령어는 실행한 사용자의 umask 값에 따라서 파일과 디렉토리의 퍼미션이 결정됨.

– 특정 디렉토리를 원본 디렉토리와 그 안에 있는 파일들의 소유자, 그룹, 권한, 시간정보등을 원본과 동일하게 복사하려면 cp 명령어를 사용할 때에 -rp 옵션을 함께 사용해야 함.

– cp -rp TestDir1 TestDir2

4. 복사 명령어 cp 의 다양한 복사방법들

– -a 옵션 : 복사대상 원본파일의 속성( attribution ) 과 링크정보등을 그대로 유지하면서 복사하는 옵션임. cp 명령어 사용시 -dpR 옵션을 함께 사용한 것과 같은 역할을 함.

– -b 옵션 : 복사하고자 하는 파일이 동일한 이름으로 이미 그 위치에 존재하고 있을 경우, 덮어쓰기 또는 원본을 지우고 복사할 경우에 원본파일의 복사본을 만들어 둠.

– -f 옵션 : 복사대상파일이 이미 그 위치에 존재한다면 파일을 지우고 복사함.

– -i 옵션 : 복사대상파일이 이미 그 위치에 존재한다면 덮어쓸 것인가 또는 복사하지 않을 것인가를 사용자에게 확인하는 절차를 거침.

– -P 옵션 : 복사대상이 되는 원본파일이 디렉토리경로와 함께 지정되었을 경우에 지정된 디렉토리경로를 그대로 복사함. 이 경우 원본파일은 Dir1/SubDir1/SubDir2/FileName 등과 같이 디렉토리 경로와 함께 지정이 되어야 함.

– -u 옵션 :
복사되는 원본파일의 이름과 동일한 파일이 대상위치에 존재할 경우에 원본파일과 변경날짜를 비교하여 최신파일일 경우에 복사하지 않는 옵션임.

5. 관리자 전용 복사명령어 install 활용하기

– cp 명령어와 유사한 명령이지만 cp 명령어에 비해 다양한 복사 옵션들이 있다는 점이 좀 특이함

– 사용형식 : install [ 옵션 ] [ -s ] [ –strip ] 원본파일 복사파일
install [ 옵션 ] [ -s ] [ –strip ] 파일….. 디렉토리
install [ 옵션 ] [ -d, –디렉토리 ] 디렉토리…

6.  사용가능한 옵션들

– -c : 전통 유닉스 버전과 호환을 위한 옵션으로 별다른 의미는 없음.

– -d, –diectory : 지정한 파일이 복사될 경로를 지정하는 옵션으로서 만약 지정한 경로명의 디렉토리가 존재하지 않는다면 직접 만들어서 복사를 함.

– -g, –group group :  지정한 파일 복사시에 이 옵션으로 지정한 소유그룹을 복사되는 파일의 소유그룹으로 설정함.

– -m, –mode mode : 지정한 파일 복사시에 이 옵션으로 지정한 퍼미션을 복사되는 파일의 퍼미션으로 설정함.

– -o, –owner owner : 지정한 파일 복사시에 이 옵셔으로 지정한 소유자를 복사되는 파일의 소유자로 설정함.

– -s, –strip : 지정한 파일복사시에 이 옵션이 사용되면 strip 명령을 수행함. 심볼릭테이블이 삭제되므로 파일의 크기가 줄어듬