putty - 리눅스를 가독성 있게 사용
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
#pwd- 현 작업 공간을 확인하는 명령어
#ip addr show - ip주소를 확인
- 절대경로 - 있는 그대로 표현
/ - 최상위
/var/tmp - 최상위 아래 var 아래 tmp 디렉토리의 경로
- 상대경로 - 현재 위치에 따라 결정되는 경로
. - 현재 디렉토리
.. - 상위 디렉토리
#cd : 이동하는 명령어(이동 시 공통된 지점까지 올라갔다가 내려와야 함.)
- ex> 절대경로로 /root 디렉토리에서 /var/tmp로 이동
#cd /var/tmp
- ex> 상대경로로 /var/tmp 디렉토리에서 /bin 디렉토리로 이동#cd ../../bin
#cd 만 입력시 기본지정(홈 디렉토리)로 이동!
#ls - l : 해당 디렉토리에 뭐가 있는지 확인(앞이 d로 시작하면 디렉토리)
자동완성 : tab 키 사용
디렉토리 부분에서 자동완성 시 디렉토리명 뒤에 /(슬래시)가 자동으로 붙음
파일 내용 확인 cat - 파일 내용 전체 확인
- #cat anaconda-ks.cfg
가상 머신에서는 상위 내용을 확인 X
putty에서는 상위 내용을 확인 O
head - 파일 내용의 전반부 10줄 확인(14page ppt 글자 깨짐)
- #head anaconda-ks.cfg
- #head -n 12 anaconda-ks.cfg
- anaconda-ks.cfg 파일의 전반부 12줄 확인
tail - 파일 내용의 후반부 10줄 확인
- #tail anaconda-ks.cfg
more - 파일 내용 전체 확인
- #more anaconda-ks.cfgl
화살표 위아래 키 사용 불가
space바로 페이지 이동
enter로 한 줄 이동
less - 파일 내용 전체 확인
- #less anaconda-ks.cfg
화살표 위아래 키 사용 가능
space바로 페이지 이동
enter로 한 줄 이동
page up/down 사용 가능
빠져나올 경우 q 버튼 누르기
grep - 파일 내용에서 문자열 검색
- #cat anaconda-ks.cfg | grep System
anaconda-ks.cfg 라는 파일을 확인하여 결과물을 출력하여 System 이라는 단어에 해당하는 줄 내용을 출력
- 파일 관리 명령어파일 디렉토리
생성 생성 touch, vim mkdir 이동 이동 mv 파일명 이동할위치 mv 디렉토리명 이동할위치 복사 복사 cp 파일명 복사할위치 cp -r 디렉토리명 이동할위치 삭제 삭제 rm 파일명 rm -r 디렉토리명
파일 생성
- #touch test.py
빈 파일 생성
- #touch fileA fileB fileC
- fileA fileB fileC 생성 (파일 여러개 생성 가능)
디렉토리 생성
- #mkdir dirA(빈 디렉토리 생성)
파일 이동
- #mv test.py dirA/
- #mv fileA fileB fileC dirA
- fileA fileB fileC 파일을 dirA 이동
여러 파일 이동 가능 (옮길 위치에 똑같은 이름의 파일이 있을 경우 덮어 쓸 것인지 질문함)
질문에 no 라고 답하면 이동자체가 되지 않음
디렉토리 이동
- #mkdir dirB
- #mv dirB dirA
파일 복사
- #cp anaconda-ks.cfg /tmp
- #touch python.p
- #cp anaconda-ks.cfg python.p dirA
- -anaconda-ks.cfg, python.py 파일을 dirA에 복사
여러 파일을 디렉토리에 복사 가능
디렉토리 복사
- #mkdir dirC
- #cp -r dirC dirA
파일 삭제
- #rm anaconda-ks.cfg
- 일반 파일 삭제 시에 삭제할 것인지 질문함
- #touch fileA fileB fileC
- #rm fileA fileB fileC
- fileA, fileB, fileC 제거
파일 한 번에 삭제 가능
디렉토리 삭제
- #rm -r dirA/
rmdir 로 디렉토리를 지울 경우 내부에 파일이 있으면 디렉토리 삭제 불가
번외) 파일 강제로 덮어쓰기
- #touch fileA fileB fileC
- #cp fileA fileB fileC dirC/
- #mv -f fileA fileB fileC dirC/
- f 옵션 사용시 강제로 덮어씀
cp 명령어도 마찬가지로 -f 옵션 사용 시 강제로 덮어씀
rm 명령어도 마찬가지로 -f 옵션 사용 시 강제로 삭제
링크 실습을 위한 선행 작업
- #rm -rf *
- #touch fileA
- 링크 파일
1. 심볼릭링크(소프트링크)
-파일명을 참조
- -원본 파일 삭제시 사용 불가(파일명을 참조하기 때문)
- -용도 : 명령어, 경로가 복잡한 디렉토리에 쉽게 접근하기 위해 사용
- -명령어 형식 : ln -s [원본 파일명] [만들 파일명]
#ln -s fileA soft_fileA
2.하드링크
- -inode 테이블을 참조
- -파일 삭제시 사용 가능(inode 테이블을 참조)
- -용도 : 프로그래밍(다수 사람들의 작업)
- -명령어 형식 : ln [원본 파일명] [만들 파일명]
#ln fileA hard_fileA
링크 실습(확인 시 ls -il 로 확인해보는 것을 권장)
파일 분석
#ls -l
결과)
- -rw-r--r--. 2 root root 0 1월 25 14:31 fileA
- -rw-r--r--. 2 root root 0 1월 25 14:31 hard_fileA
- -lrwxrwxrwx. 1 root root 5 1월 25 14:33 soft_fileA
하드링크는 root 앞에 갯수가 1에서 2로 증가
원본 파일에 내용 삽입
#echo "12345" > fileA
파일 내용 확인
- #cat fileA
- 결과) 12345
- #cat hard_fileA
- 결과) 12345
- #cat soft_fileA
- 결과) 12345
원본 파일 지우기
- #rm fileA
- 파일 확인(확인 시 ls -il 로 확인해보는 것을 권장)
- ls -l
- 결과) -rw-r--r--. 1 root root 6 1월 25 14:39 hard_fileA
- lrwxrwxrwx. 1 root root 5 1월 25 14:33 soft_fileA(빨간색) -> fileA(빨간색)
파일 내용 확인
- #cat hard_fileA
- 결과) 12345
- #cat soft_fileA
- 결과) cat: soft_fileA: 그런 파일이나 디렉터리가 없습니다
fileA 생성
#touch fileA
파일 확인
- #ls -l
- 결과) -rw-r--r--. 1 root root 0 1월 25 14:42 fileA
- -rw-r--r--. 1 root root 6 1월 25 14:39 hard_fileA
- lrwxrwxrwx. 1 root root 5 1월 25 14:33 soft_fileA -> fileA
추가 내용 정리)
fileA를 재생성한 것은 기존 파일 fileA와 다른 파일이 생성된 것(확인은 cat 명령어 사용)
하드링크 복사 차이점
- -하드링크는 원본 데이터를 참조(바뀐 데이터가 계속 반영)
- -복사는 일시적인 데이터 복사(바뀐 데이터가 계속 반영 X)
검색
- locate
- 명령어 형식 : locate [파일명] 패키지 설치
- #yum -y install mlocate
- 데이터베이스 업데이트
- #updatedb
- locate 명령어로 fileA 검색
- #locate fileA
- 결과) /root/fileA /root/hard_fileA /root/soft_fileA
- find
- find 명령어로 파일명이 file로 시작하는 모든 파일 검색(최상위 디렉토리부터)
- #find / -name "file*"
- (*은 모든이라는 뜻을 가짐)
- find 명령어로 파일명이 file로 시작하는 모든 파일 검색(현재 디렉토리부터)
- #find . -name "file*"
- ""(쌍따옴표) 사용 이유
- -하나로 묶여진 문자열을 표현하기 위해 사용
vim 편집기 설치
- #yum -y install vim
4가지 동작모드 지원(21page ppt 글자 깨짐)
- Command mode - 커서 이동 및 단순 편집 기능
- Edit mode - 내용 추가 및 수정
- Extended mode - 추가 기능 지원
- Visual mode - 블록 처리 기능 제공
사용법(ppt 내용 참고)
- i - edit mode 진입
- esc - command mode 진입
- :w - 저장하기(extended mode)
- :q - 빠져나오기(extended mode)
- ! - 강제(extended mode)
리다이렉션
- >: 덮어쓰기
- >> : 이어쓰기
- echo: 인자를 그대로 출력
echo와 리다이렉션을 사용하여 파일 쓰기
- #echo 123456 > test.txt
- 파일 덮어쓰기(원본 파일 복귀 불가)
- 확인은 cat 명령어 사용
#echo 789 >> test.txt
- 파일 이어쓰기
- 중간에 파일 내용 추가 불가(무조건 끝 줄에 추가)
- 확인은 cat 명령어 사용
파이프
- 입력에 해당하는 출력값을 파이프 뒤에 나오는 명령어가 입력값으로 받아서 처리
- #cat test.txt | grep 345
- test.txt 내용의 출력값을 grep이 받아서 345 문자열을 찾아서 출력
tee
리다이렉션과 파이프를 혼용해서 사용
- #ls -l | tee bbbbbb | grep bbbbbb
- ls -l 명령어는 grep 명령어 도달까지 계속 동작
- 도중에 ls -l 결과를 bbbbbb에 저장
아카이브 및 압축
- tar
- 아카이브 파일 관리 도구
- 현재 작업 위치에서 사용됨(경로를 지정해서 작업 불가)
- 현재 위치에 같은 파일이 있을 경우 물어보지 않고 파일을 덮어씀
- 아카이브 파일
- 단순한 의미로 파일의 묶음(압축 X)
- 용량을 감소시켜주지 않음
tar [옵션] [옵션] [옵션] 파일명
c | f(필수) | z | ||
x | j | |||
t | J |
-c : 아카이브 파일을 만드는 옵션
-x : 원본 파일을 추출하는 옵션
-t : 묶여있는 파일의 목록을 확인하는 옵션
-f : 파일의 이름을 지정하는 옵션(필수)
-z : gzip 방식으로 파일을 압축하거나 추출할 때 사용
-j : bzip2 방식으로 파일을 압축하거나 추출할 때 사용
-J : xz 방식으로 파일을 압축하거나 추출할 때 사용
tar 실습을 위한 선행 작업
- #rm -rf *
- #touch fileA fileB fileC
아카이브 파일 생성
- #tar cf file.tar fileA fileB fileC
- tar 확장자를 빼고 만들 수 있으나 식별이 어려운 관계로 .tar 확장자를 붙여줌
아카이브 파일 추출
- #tar xf file.tar
아카이브 파일 목록 확인
#tar tf file.tar
아카이브 파일 생성 및 gzip 압축
- #tar cfz file.tar.gz fileA fileB fileC
gzip 파일을 추출
- #tar xfz file.tar.gz
팁) tar 옵션을 사용할 때 대시(-) 를 붙여서 사용해도 되고 붙이지 않고 사용해도 됨
- 대시(-) 사용시에는 옵션의 순서를 지켜줘야 함
- 대시(-) 미사용시에는 옵션의 순서를 지켜주지 않아도 됨
- 대시 사용 유무에 큰 의미는 없음
'Linux' 카테고리의 다른 글
Linux , 프로세스 및 권한 (0) | 2022.07.12 |
---|---|
VirtualBox , Centos (0) | 2022.07.11 |