□ Login
- 사용자 계정 및 암호를 통해 사용자 인증을 거치는 과정
- 파일 및 디렉토리에 대해 접근권한 및 사용권한을 얻어 시스템을 사용할
수 있게 되는 과정
- 입력한 password는 출력되지 않는다. (GUI제외)
(1) /etc/passwd 파일에 존재 하는 쉘 환경 확인
(2) /etc//bashrc와 /etc/profile 파일을 읽음
(3) 사용자 홈디렉토리에 위치한 .bashrc, .bash_profile 파일을 읽음
□ Logout
xshell : Ctrl + d (연결해제)
Console : Ctrl + d
#exit, #logout
Console에서는 총 6개의 작업창이 제공된다.
Ctrl + Alt + F1 ~ F6
□ 파일의 종류
파일(file) - 관련있는 정보들의 집합
- 파일을 효과적으로 관리하기 위해 디렉토리를 사용
- 파일은 사용목적에 따라 일반 파일, 디렉토리, 심볼릭링크, 장치 파일로 구분
(1)일반파일 : 데이터를 저장하는데 주로 사용, 각종 텍스트 파일, 실행 파일, 이미지 파일등 리눅스에서 사용하는 대부분의 파일은 일반파일에 해당
(2)디렉토리 : 리눅스에서는 디렉토리도 파일로 취급, 디렉토리 파일에는 해당 디렉토리에 저장된 파일이나 하위 디렉토리에 대한 정보가 저장
(3)링크파일 : 원본 파일을 대신하여 다른이름으로 파일명을 지정한 것
(4)장치파일 : 리눅스에서는 하드디스크나 키보드 같은 각종 장치도 파일로 취급, 리눅스 시스템에 연결된 장치들을 관리하기 위한 특수파일
□ 디렉토리 계층 구조
- 리눅스에서는 파일을 효율적으로 관리하기 위해 디렉토리를 계층적으로 구성
최상위 디렉토리
- '/'로 표시하며 모든 디렉토리에 상위 디렉토리
하위 디렉토리(서브 디렉토리)
- 디렉토리 아래 있는 디렉토리
상위 디렉토리(부모 디렉토리)
- '..'으로 표시하며 '/' 디렉토리를 제외한 모든 디렉토리는
상위 디렉토리가 있다.
□ 작업 디렉토리(현재 디렉토리)
- 현재 위치한 디렉토리이며 '.'으로 표시
홈 디렉토리
- '~' 물결로 표시하며 각 사용자에게 할당된 디렉토리로 처음 사용자 계정 생성 시 지정
파일과 디렉토리 이름의 규칙
- 파일과 디렉토리에는 경로명의 구분자로 사용하느 '/'을 사용 할 수 없다.
- '-', '_' '.'만 사용하며 그외 공백이나 특수기호 사용하면 안된다.
- 대소문자를 구별하며 '.'으로 시작하면 숨김파일로 간주한다.
--------------------------------------------------------------------------
□ 명령어의 구조
1. #[CMD] + [OPTION]
#[CMD] + [ARGUMENT]
#[CMD] + [OPTAION] + [ARGUMENT]
2. 대, 소문자 구분
3. 명령어의 도움말
- 명령어 뒤에 --help 인자를 사용하여 사용방법 및 옵션을 확인 할 수
있다.
#[CMD] --help
#[CMD] -h or #[CMD] -help
-man 패키지 설치 후 #man [CMD]
man 패키지 설치
(1) #yum -y install man
--------------------------------------------------------------------------
□ 기본 명령어
pwd - (Print Working Directory)
- 현재 위치한 경로 확인 (절대 경로)
ls - (List Segment)
-파일 및 디렉토리 목록 출력
※ ls를 통해서 현재 위치에 해당하는 파일 및 디렉토리등을 확인 할 수가 있다.
#ls [option] [file/directory]
-a 숨김파일을 포함한 경로안에 모든 내용 출력
-l 리스트형태로 출력 (#ll)
출력결과 가장첫번째 필드 부분을 확인하여 해당 파일의 종류를 알 수 있음 (- 일반파일, d 디렉토리)
-F 파일의 형식을 알 수 있는 문자를 추가
-t 수정된 날짜를 기준으로 출력
-R 현재 위치를 기준으로 하위 디렉토리 및 파일을 출력
-h -l과 함께 사용하여 파일 크기를 사람이 보기 쉽게 출력
-S -l과 함께 사용하여 파일 크기를 기준으로 정렬하여 출력
/ : 디렉토리
* : 실행파일
@ : 링크파일
cd (Change Directory) - 디렉토리 변경
- #cd [디렉토리명]
- 디렉토리 나타내는 특수문자
- #cd / #cd ~ : 로그인한 사용자 홈디렉토리
- #cd ~[계정명] : 해당 계정의 홈디렉토리로 이동
- #cd - : 바로 이전의 작업 디렉토리 이동
- #cd .. : 상위 디렉토리로 이동
- #cd / : 최상의 디렉토리로 이동
※ 현재 디렉토리를 확인한 후 최상위 root로 이동한것
□ 절대 경로
- 최상위 디렉토리 '/' 부터 시작하는 위치
- 반드시 '/' 으로 시작
- 루트 디렉토리로 부터 시작하여 특정 파일이나 디렉토리의 위치까지
이동하면서 거치는 모든 중간 디렉토리의 이름을 표시
- 특정 위치를 가리키는 절대 경로명은 항상 동일하다
□ 상대 경로
- 현재 작업하고 있는 디렉토리에서의 상대적인 위치
- '.' 현재 디렉토리 '..' 상위디렉토리
- '/' 이외에 문자로 시작
- 상대 경로명은 현재 디렉토리가 어디냐에 따라 달라진다
절대 경로 : cd /windows/10/enterpise
상대 경로 : cd ../../windows/10/enterpise
□ mkdir (Make Directory) - 디렉토리 생성
mkdir [디렉토리명]
mkdir [옵션] [디렉토리명]
옵션 : -p 하위 디렉토리까지 한번에 생성
-m 기본 권한을 주면서 디렉토리 생성 // 사용X
복수 지정 가능
#mkdir test //현재 디렉토리에 test 디렉토리 생성
#mkdir test1 test2 test3 test4 //현재 디렉토리에 test1~4 디렉토리 생성
□ rmdir (Remove Directory)
- 디렉토리 삭제
- 디렉토리에 파일이 있는 경우 삭제가 되지 않는다.
빈 디렉토리만 삭제 가능
#rmdir [디렉토리명]
□ cp (copy) 파일 혹은 디렉토리 복사
cp [option] [source] [target]
-i 만약 복사할 대상이 기존에 있다면 사용자에게 덮어쓸지 물어보는 옵션
-f 기존에 중복된 파일이 있다면 물어보지 않고 강제로 덮어쓰는 옵션
-v 복사 과정 출력
-R, -r 디렉토리를 복사할 경우 하위 디렉토리 및 파일을 포함하여 모두 복사
cp [option] [source] [target]
복사 시 두인자가 모두 파일인 경우
#cp /bin/ls /practice/day1/ls_backup // /bin/ls 파일을 ls_backup으로 복사
- ls_backup 파일이 존재하면 원본파일 덮어쓴다.
- ls_backup 파일이 존재하지 않을 경우 새로 생성이 된다.
복사 시 두번째 인자가 디렉토리 인경우
#cp /bin/ls /practice/day1/
- /practice/day1/ 디렉토리 ls 파일 복사
복사 시 인자를 여러개 지정할 경우
#cp /bin/ls /bin/cp /practice/day1/
- 마지막 인자 [/practice/day1/]는 무조건 디렉토리여야한다.
디렉토리 복사하기
#cp -r /bin /practice/day1/bin_backup
- 목적지 디렉토리가 없을 경우 생성된다.
- 디렉토리 내부에 파일도 함께 복사된다.
□ mv (move) - 파일 및 디렉토리 이동
#mv [source] [target]
-v 실행과정
-i 중복될 경우 덮어쓸지 물어본다.
-f 강제로 덮어쓴다.
□ mv [file1] [file2] [file3] ... [directory]
-----------------------------------------------------------------------------------
□ rm (Remove) - 파일 및 디렉토리 삭제
rm [option] [file/directory]
-f 삭제시 물어보지 않고 강제 삭제
-r 디렉토리 삭제시 하위 디렉토리 및 파일을 포함하여 삭제
-i 삭제여부 사용자에게 확인
-----------------------------------------------------------------------------------
□ cat (conCATenate)
- 파일보기 (일반 파일 중 텍스트파일 내용 출력)
cat [옵션] [파일명]
-n 라인번호 포함하여 출력
-b 라인번호 출력, 공백은 제외하고 출력
-----------------------------------------------------------------------------------
touch - 빈파일 생성 및 파일의 생성 시간을 변경
touch [파일명] // [파일명] 으로된 빈 파일 생성
touch -t YYYYMMDDhhmm [파일명] //기존 파일일 경우 해당 시간으로 생성 시간 변경
//없을 경우 해당 시간으로 생성시간을 정하여 파일
생성
-----------------------------------------------------------------------------------
□ file - 파일의 형식을 확인
형식 : file [파일명]
#file /bin/ls // 실행 파일
#file /etc/passwd // 아스키코드로 구성된 일반 텍스트 파일
#file /root // 디렉토리
-----------------------------------------------------------------------------------
□ type - 명령어 파일의 위치, bash 내장 명령 여부, alias등의 정보를 확인
#type [파일명]
-----------------------------------------------------------------------------------
□ whereis - 명령어에 대한 바이너리, 소스, (man)메뉴얼 페이지의 위치 확인
#whereis [파일명]
#whereis ls
#whereis file
-----------------------------------------------------------------------------------
□ which - 실행파일 위치 및 alias 여부 확인
which [파일명]
-----------------------------------------------------------------------------------
□ more - 화면 단위로 파일 내용 출력
형식 : more [파일]
space bar - 다음화면출력
enter key - 한 라인씩 스크롤
q - 종료
ctrl + f 다음화면으로 이동
ctrl + b 이전화면으로 이동
-----------------------------------------------------------------------------------
□ head - 파일 내용의 첫 10줄만 출력
head [옵션] [파일명]
-n [행번호]
- [행번호]
#head /etc/services // 처음 10줄만 출력
#head -n 5 /etc/services // 처음부터 5줄만 출력
#head -5 /etc/services // 처음부터 5줄만 출력
-----------------------------------------------------------------------------------
□ tail - 파일 내용의 마지막 10줄만 출력
tail [옵션] [파일명]
-n [행번호]
- [행번호]
★-f 실시간으로 파일 마지막 내용을 출력★
tail -f /var/log/secure
#tail /etc/services //마지막 10줄만 출력
#tail -1 /etc/services //마지막 1줄만 출력
#tail -n 1 /etc/services //마지막 1줄만 출력
-----------------------------------------------------------------------------------
□ nl (number line) - 파일의 각 라인에 번호를 표시
#nl /etc/services
-----------------------------------------------------------------------------------
□ grep (Globally find Regular-Expression and Print)
- 문자열 검색
grep [옵션] [패턴] [파일]
-i : 대소문자를 구별하지 않는다.
-n : 행번호를 함께 보여준다.
-v : [패턴]을 제외한 나머지를 출력
/etc/service --> filenet
ls abc*
□ cal [달력출력]
cal
cal [년도]
cal [월] [년도]
date - 현재시간 확인
date -s "hh:mm:ss"
date -s "YYYY-MM-DD hh:mm:ss"
□ 파일링크
파일시스템상에 존재하는 파일이나 디렉토리에 대한 바로가기를 만들때
사용되는 파일
1.심볼릭 링크
파일을 가르키는 포인터가 있는 작은 파일을 생성(바로가기)
- 원본 파일을 가리키는 새로운 파일을 생성
ln -s [대상파일명] [링크파일명]
2. 하드 링크
ln [대상파일명] [링크파일명]
- 기존파일에 새로운 파일명을 추가로 생성
- 디렉토리 링킹 할수 없으면 같은 파일시스템에 존재 해야한다.
정규 표현식 메타문자
메타문자
^ - 행의시작
$ - 행의마지막
. - 하나의 문자와 대응
[] - 사이에 문자하나와대응
[^] - []사이의 문자를 제외한 문자와 대응
sort - 파일내의 내용을 알파벳 순서대로 정렬
형식 : sort [옵션] [파일]
-n 숫자지준으로 정렬
-r 역순으로 정렬
-u 중복행 제거
-o 출력결과를 파일로 저장
wc - 단어,라인,문자 수를 계산
wc [옵션] [파일]
-l 라인수 출력
-m 문자수
-w 단어수
출력필드 의미 [라인][단어][문자]