cat
: 파일의 내용을 화면에 연속적으로 출력
cat [옵션] 파일명
★ -n 옵션 ★
: 행 번호를 같이 출력함
→ 행 번호는 화면에만 보이고 파일에 저장되지는 않음
more
: 화면 단위로 파일 내용을 출력함
more [옵션] 파일명
→ space bar 키 : 다음 화면 출력
→ Enter 키 : 행 단위로 스크롤
→ /문자열 : 해당 문자열 찾기
→ q : more 명령 중지
→ b : 이전 페이지
head
파일의 첫 10행 출력
head [옵션] 파일명
★ 숫자 옵션 ★
head -[출력할 행 숫자] 파일명
→ 파일의 앞부분 5행을 출력한 모습
tail
파일의 마지막 10행 출력
tail [옵션] 파일명
★ 숫자 옵션 ★
tail -[출력할 행 숫자] 파일명
→ 파일의 뒷부분 5행을 출력한 모습
★ -f 옵션 ★
: 파일 출력이 종료되지 않고 대기 상태가 되며, 파일 내용이 주기적으로 반복 출력됨
→ 파일의 뒷부분에 내용이 추가되면 그 내용이 자동으로 출력되므로 파일의 내용 변화를 확인할 때 사용하면 편리함
→ 무한히 반복되기 때문에 ctrl+c로 명령을 종료시켜야 함
wc(word count)
파일에 저장된 줄, 단어, 문자의 개수 출력
→ 파일을 지정하지 않으면 표준입력 내용을 대상으로 함
wc [옵션] 파일명
→ -l : 줄 수
→ -w : 단어 수
→ -c : 문자 수
→ 612줄, 2669 단어, 19605개의 문자로 이루어져 있음
cp
파일이나 디렉토리를 복사
cp [옵션] 파일명1/디렉토리명1 파일명2/디렉토리명2
→ -i : 대화식 복사 방법으로 파일명2가 기존에 존재할 경우 덮어쓸 것인지 물어봄
→ -r : 디렉토리를 복사할 때 지정
Ex.
cp file1 file2
▶ file1을 file2로 복사
cp f1 f2 f3 dir1
▶ f1, f2, f3를 dir1 밑에 같은 이름으로 복사
cp -r dir1 dir2
▶ dir1을 dir2로 복사
→ dir1의 파일도 모두 복사
- 파일 → 파일 복사
첫 번째 인자, 두 번째 인자 모두 파일명으로 지정
→ 두 번째 인자에서 지정한 파일명이 존재하지 않는 파일인 경우 새로 생성
→ 이미 존재하는 파일명을 지정하면 원래의 내용은 사라지고 복사된 내용만 남게 됨
→ text1과 같은 내용을 갖는 새로운 파일 text2가 생성됨
- 파일 → 디렉토리 복사
첫 번째 인자는 파일명, 두 번째 인자는 디렉토리명으로 지정
→ /etc 디렉토리에 있는 hosts 파일을 현재 디렉토리(.) 아래에 같은 이름으로 복사함
→ 현재 디렉토리가 아닌 다른 디렉토리로 복사하기 위해 디렉토리 이름을 지정
: hosts 파일을 temp 디렉토리에 복사함
→ 파일명을 바꿔서 디렉토리에 저장하기 위해 디렉토리명에 파일명도 함께 지정
: hosts 파일을 temp 디렉토리에 hosts1이라는 파일명으로 저장함
★ 쓰기 권한 오류 ★
→ 파일을 디렉토리에 복사할 때는 디렉토리에 대해 쓰기 권한이 있어야 함
→ 권한이 없는 디렉토리에 파일을 복사하려고 하면 오류 발생
- 여러 파일 → 디렉토리 복사
첫 번째 인자의 자리에 파일명을 여러개 지정
: 지정한 디렉토리로 파일들이 모두 복사됨
→ 마지막 인자는 반드시 디렉토리명이어야 함
→ text1과 text2 두 개의 파일을 temp 디렉토리로 복사함
- -i 옵션
두 번째 인자에 저장한 파일명이 기존에 있는 파일일 경우 겹쳐서 복사할 것인지를 물어봄
→ 'y'는 겹쳐서 복사, 'n'은 복사하지 않음을 의미
- -r 옵션
첫 번째 인자는 디렉토리 이름으로 지정
→ temp 디렉토리를 tmp 디렉토리로 복사할 때 -r 옵션을 지정하지 않으면 오류 발생
→ 디렉토리를 복사하면 디렉토리 내에 있던 파일이나 하위 디렉토리 모두 복사됨
: 두 번째 인자인 tmp 디렉토리가 원래 없었기 때문에 원본 디렉토리와 같은 위치에 tmp 디렉토리가 새로 생성됨
→ 두 번째 인자가 기존에 있던 디렉토리라면 원본 디렉토리는 두 번째 인자로 저장된 디렉토리 아래에 같은 이름으로 복사됨
: 현재 존재하는 tmp 디렉토리를 두 번째 인자로 지정하면 temp 디렉토리가 tmp 디렉토리 아래에 하위 디렉토리로 복사됨
rm
파일과 디렉토리 삭제
rm [옵션] 파일명 / 디렉토리명 ...
→ -i : 대화식으로 지정한 파일을 정말 삭제할 것인지 확인
→ -r : 디렉토리를 삭제할 때 지정
→ -f: 무조건 삭제
★ 옵션 지정 주의 ★
-i 옵션을 지정하지 않으면 삭제할 것인지 확인하지 않음
→ '휴지통'에 저장되는 윈도우와 달리, 유닉스에서 삭제된 파일은 복구할 수 없음
Ex.
rm file
▶ 'file'명을 가진 파일을 삭제함
rm -r dir
▶ 'dir'명을 가진 디렉토리를 삭제함
- 디렉토리 삭제
→ 디렉토리를 -r 옵션 없이 삭제하려고 하면 위와 같은 오류가 발생함
→ rmdir 명령과는 달리, 지정한 디렉토리가 비어 있는지 여부와 상관없이 디렉토리와 그 아래 모든 파일을 삭제함
→ rmdir 명령은 디렉토리가 비어 있는 경우에만 삭제할 수 있음
: temp 디렉토리 아래에는 'hosts', 'hosts1', 'text1', 'text2' 파일들이 존재하므로 디렉토리가 삭제되지 않음
- -i 옵션
파일을 정말 삭제할 것인지를 물어봄
→ 'y'를 대답하면 삭제하고 'n'을 대답하면 삭제하지 않음
mv
파일의 이름을 바꾸거나 다른 디렉토리로 이동
mv [옵션] 파일명1/디렉토리명1 파일명2/디렉토리명2
→ -i : 파일명2/디렉토리명2가 존재하면 덮어쓸 것인지 물어봄 ( 확인 후 이동함 )
Ex.
mv file1 file2
▶ file1의 이름을 file2로 바꿈
mv file1 dir1
▶ file1을 dir1로 옮김
mv file1 file2 file3 dir1
▶ file1, file2, file3을 dir1로 옮김
- 파일 → 파일 이동
첫 번째 인자와 두 번째 인자를 모두 파일명으로 지정
→ 첫 번째 인자로 지정한 파일이 두 번째 지정한 파일로 이동
→ 첫 번째 인자로 지정한 파일의 이름이 두 번째 지정한 파일의 이름으로 변경됨
→ 두 번째 인자로 이미 존재하는 파일명을 지정하면 첫 번째 파일이 덮어써서 원래 내용은 없어지고 새로운 내용만 남게 됨
→ hosts1 파일을 hosts 파일로 복사
- 파일 → 디렉토리 이동
두 번째 인자로 디렉토리를 지정할 경우 파일을 다른 디렉토리로 이동시킴
→ text2 파일을 temp 디렉토리로 이동
→ 두 번째 인자에서 디렉토리명과 파일명을 한꺼번에 지정하면 지정한 디렉토리로 파일명을 바꿔 이동
: 'hosts1' 파일을 이름을 'data1'로 변경 후 temp 디렉토리로 이동
★ 쓰기 권한 오류 ★
→ 파일을 디렉토리에 이동할 때는 디렉토리에 대해 쓰기 권한이 있어야 함
→ 권한이 없는 디렉토리에 파일을 이동하려고 하면 오류 발생
: cp 명령어와 동일함
- 여러 파일 → 디렉토리 이동
첫 번째 인자의 자리에 파일명을 여러 개 지정하면 두 번째 인자는 반드시 디렉토리가 되어야 함
→ 마지막에 지정한 디렉토리로 파일들이 모두 이동
→ hosts2 파일과 hosts3 파일을 temp 디렉토리로 이동
→ 이동 후 홈 디렉토리에 hosts2 파일과 hosts3 파일 존재하지 않음 확인
- -i 옵션
두 번째 인자에 지정한 파일명이 기존에 있는 파일일 경우 덮어쓸 것인지 물어봄
→ 'y'를 대답하면 덮어쓰고 'n'을 대답하면 덮어쓰지 않음
- 디렉토리 → 디렉토리 이동
두 인자를 모두 디렉토리명으로 지정하면 첫 번째 인자인 디렉토리가 두 번째 인자 디렉토리로 이동
→ 두 번째 인자가 새로운 이름이면 첫 번째 디렉토리의 이름이 새 이름으로 변경됨
→ tmp2 디렉토리를 tmp 디렉토리로 이동
→ tmp2 디렉토리가 tmp 디렉토리로 이동된 모습 확인
→ tmp3 디렉토리가 존재하지 않아 tmp2를 tmp3로 이름 변경
ln
기존의 파일에 새로운 이름을 붙임
→ 하드 링크 파일(원본 파일)이나 심볼릭 링크 파일(원본을 가리키는 특수한 파일)을 만들 때 사용
ln [옵션] 원본 파일명 링크 파일명
Ex.
ln test lntest
▶ 기존에 있는 test 파일에 lntest라는 새로운 이름을 붙임
ln -s test lntest
▶ test
- 하드 링크
유닉스에서는 하나의 파일에 둘 이상의 다른 이름을 붙일 수 있음
→ 파일에 붙인 이름 : 하드링크, 이름이 붙여진 파일 : 하드 링크 파일
→ "I love UNIX!"라는 내용이 담긴 ln.txt 파일을 생성
→ 하드 링크의 수는 1, 즉 파일 이름의 개수가 1개
→ ln.txt 파일에 ln.hd라는 새로운 이름을 붙임
→ 하드 링크의 수는 2, 즉 파일 이름의 개수가 2개로 바뀜
→ ln.txt 파일과 ln.hd 파일 모두 내용이 동일함
→ 각 파일의 정보를 저장하는 inode 일련번호를 확인했을 때도 두 파일이 동일한 파일임을 알 수 있음
→ ln.hd 파일의 기존 내용에 inode 일련번호가 더해진 내용을 추가함
→ ln.hd 파일의 내용을 변경해도 ln.txt 파일의 내용까지 변경됨
→ ln.txt 파일을 삭제해도 ln.hd 이름은 남아있지만, 하드 링크의 수는 1 감소됨
★ rm 명령어 ★
무조건 파일을 삭제하는 것이 아니라 파일의 하드 링크 수를 1 감소시켜 0이 되면 파일의 이름과 inode와 파일의 내용이 들어있는 블록을 삭제
→ 하드 링크 수가 0이 되지 않은 경우에는 파일의 이름만 디렉토리에서 삭제
- 심볼릭 링크
원본 파일에 쉽게 접근하기 위해 생성한 특수 파일로, 파일의 내용은 원본 파일의 경로임
→ 링크 파일을 복사하거나 내용을 출력하면 모든 작업이 원본 파일에 대해 수행됨
→ 원본 파일이 삭제되면 심볼릭 링크 파일이 남아있어도 사용할 수 없음
- -s 옵션
→ ln.hd 파일에 대한 심볼릭 링크 파일 ln.sl 생성
→ 파일의 내용을 확인해보면 ln.sl 심볼릭 링크 파일이 생성되었음을 확인할 수 있음
: l로 시작하는 심볼릭 링크
: 하드 링크 수의 변화가 없음, 즉 이름 추가가 아님
: 파일 이름 뒤에 원본 파일의 이름이 표시됨 ( 원본 파일의 이름 : ln.hd )
→ inode 일련번호를 확인해보면 두 파일이 다른 것을 확인할 수 있음
→ 심볼릭 파일을 수정하면 원본이 수정됨
: 심볼릭 파일에 pwd 내용을 추가함
: 원본인 ln.hd를 출력해보면 내용이 변경된 것을 확인해볼 수 있음
→ 원본을 삭제하면 심볼릭 링크 파일 사용 불가능
★ 복사 & 심볼릭 링크 차이 ★
cp 명령 : 원본과 복사본이 별개의 파일
→ 하나의 파일을 수정해도 다른 파일에 영향을 주지 않음
→ 같은 파일을 별도로 수정해 작업할 때 사용함
심볼릭 링크 파일 ( ln -s ) : 원본 파일의 경로 파일
→ 원본 파일을 수정하면 나머지 파일도 같이 수정됨
→ 파일을 공동으로 관리하거나 긴 이름을 간단히 줄여 편리하게 사용
touch
빈 파일을 생성하거나 파일 관련 시각을 변경
: 인자로 주어진 파일이 존재하지 않으면 내용이 없는 빈 파일 생성
: 파일이 존재하면 현재 시각 또는 옵션에 지정한 시각으로 파일의 관련 시각을 변경
touch [ -acm] [ -r ref_file | -t time ] 파일
- 파일 생성
→ test 파일이 존재하지 않음을 확인
→ touch 명령어를 통해 새로운 파일 생성
: 파일의 크기는 0으로 아무 내용도 없이 파일 정보만 존재함
→ 한 번에 여러 파일 생성도 가능함
- 파일 접근 및 수정 시각 변경
: 인자로 지정한 파일이 존재하면 해당 파일의 접근 및 수정 시각을 변경함
- 현재 시각으로 변경하기
→ 옵션 없이 touch 명령어를 사용하면 현재 시각으로 변경됨
- -t : 지정한 시각으로 변경하기
[[CC]YY]MMDDhhmm[.ss]
→ CC : 연도의 첫 두 자리
→ YY : 연도의 마지막 두 자리
→ MM : 달(01 ~ 12 범위내 지정)
→ DD : 날짜(01~31 범위내 지정)
→ hh : 시각(00~23 범위내 지정)
→ mm : 분(00~59 범위내 지정)
→ ss : 초(00~59 범위내 지정)
★ CC 지정하지 않았을 경우, YY 값에 따라 자동으로 인식 ★
YY | CC |
69 ~ 99 | 19 |
00 ~ 38 | 20 |
39 ~ 68 | ERROR |
→ test의 시간을 7월 26일 오후 4시 41분으로 변경
→ test의 시간을 05년 1월 1일 00시 00분으로 변경
: 연도의 마지막 두 자리만 지정하면 위 표 규칙에 의해 앞 두자리가 지정됨
→ test의 시간을 2010년 1월 2일 00시 00분으로 변경
: 연도 네 자리를 모두 지정할 수 있음
- -r : 특정 파일 기준으로 변경
→ t1 파일의 시간을 기준으로 test 파일의 시간을 변경함
- -m, -a : 수정, 접근 시간 선택 변경
touch 명령으로 수정 시각만 변경하는 경우는 -m, 접근 시각만 변경하는 경우는 -a 옵션을 사용
→ ls -l의 결과로 보이는 시각은 파일 최종 수정 시각
: -a 옵션으로 접근 시각만을 변경하면 ls -l로는 결과 확인 불가능
→ -u 옵션을 사용하면 접근 시각을 볼 수 있음
'Linux' 카테고리의 다른 글
디렉토리 명령어 (0) | 2021.09.21 |
---|---|
경로명(상대경로 / 절대경로) (0) | 2021.09.20 |
디렉토리(Directory) (0) | 2021.09.20 |
유닉스 파일 시스템 (0) | 2021.09.19 |
유닉스 기본 명령어 (0) | 2021.09.19 |