본 글은 개인 공부를 위한 정리글입니다. 부정확한 내용이 포함될 수 있습니다.
리눅스
많은 운영체제 중에 리눅스가 있음
운영체제는 컴퓨터에 올라가는 일종의 프로그램
운영체제는 우리의 명령을 받아들어 컴퓨터를 실행한다.
운영체제는 기계(하드웨어)에 바로 설치되는 프로그램 ( mac, window, linux ...)
역사
1991년 리누스 토르발스가 리눅스 커널에 기반을 둔 오픈소스 유닉스 계열의 운영체제
오픈소스 트렌드는 리처드 스톨만을 통해 시작됨 ( gnu)
리눅스는 당시 오픈소스이다. 즉 커스터마이징이 가능하여 여러 배포판들이 있다.
devian, ubuntu, 칼리리눅스(해킹전용 배포판) 가 있다.
오픈소스
소스가 공개되어짐, 독점되어선 안됨, 소스코드가 공개되어지면 지금 당장은 보안적으로 위험할 수 있지만 그 후부터는 취약점이 보강된다. 오히려 안전해지며 튼튼한 리눅스가 되어짐
cli
gui, cli 로 인간은 운영체제에게 명령을 한다.
gui ( grapic user interface)
cli ( command line interface) ( 그래픽이 아닌 명령어를 통한 입력)
shell
운영체제가 사람에게 명령을 받는 창을 쉘이라고 한다.
terminal <-> shell
terminal은 명령어 입력, 출력 환경 , 즉 인터페이스 자체 <-> shell은 명령어의 입력, 출력을 처리하는 프로그램
명령어 구조
1.명령어 ifconfig, id, ping, find ...
2.전달인자 argument
3.옵션
ex) ping 8.8.8.8 -c
옵션은 명령어 뒤에만 오면 된다.
디렉토리 관련 명령어
pwd (print working directory) - 현재 경로
/ - 최상위 경로
-> root
-> bin
cd / -> 경로 변경
~ -->home directory
ls /etc/passwd -l
ls -a -> 숨긴파일 볼 수 있음
.파일-> 이름 앞에 .있으면 숨긴 파일
ls-al -> 숨김 + 자세한 정보
파일 시스템
리눅스는 트리구조
/bin binary (이진수, 실행파일)
/dev (하드웨어 장치)
/etc (리눅스의 설정파일들)
/home (각 계정의 홈디렉토리)
/lib (공유 라이브러리)
/root (root 계정의 홈 디렉토리)
/sbin (system binary)
/tmp ( temp, 임시 디렉토리) 누구나 접근 가능
/var ( 리눅스에서 사용하는 프로그램들이 사용하는 파일들을 보관)
절대 경로 상대경로
절대경로 -> 최상위 디렉토리 부터 하위 디렉토리까지 쭉
ex) /etc/passwd
상대경로 -> 현재 사용자가 위치한 곳에서 부터 표현
-> 지금 현재 위치가 어디냐에 따라 달라짐
./ -> 지금 이곳
../ -> 바로 위 상위폴더
vi
윈도우의 메모장 역할
2가지 모드 (입력 모드 , 명령모드) / 맨처음에는 명령모드
i 입력모드 esc 누르면 명령모드
tab은 자동환성
:w 파일을 저장한다. :q 나가기 :wq 저장하고 나가기 / 찾기기능 ( 2개 이상일 경우 n 을 누르면 아래 N은 위로)
:숫자 숫자줄로 이동
dd 커서줄 삭제됨
명령어
cat -> 파일을 읽음 ( 문자 출력만 안깨짐)
file -> 파일 속성
copy -> 파일 복사 copy [scr] [dst]
mkdir -> 디렉토리 생성
rm -> -f 옵션 강제삭제 -r 옵션 하위 디렉토리까지 삭제
mv -> 파일 이동
-> 원본 파일이 업어지며 파일 이동, 파일이름을 변경할때도 사용
권한
컴퓨터를 쓰기 위해선 권한이 있어야 한다.
uid - userid ( root = 0 root -> 최고의 관리자 권한 , 1001 )
gid - group id ( 개별적인 아닌 그룹으로 편리하게 묶어서 권한을 관리한다.
useradd [ ] -> 사용자 계정 추가
su-> switch user
/etc/passwd -> 사용자 정보를 저장하는 파일
-> root:x:0:0:root:/root:/usr/bin/zsh
1. 계정 이름 (id) -> root
2. 비밀번호 -> x
3.uid
4.gid
5.사용자 별칭
6.홈 디렉토리
7.로그인 쉘
rwx
r: read ( 읽기 권한 - 파일읽기, 디렉토리 안에 파일 있는지 )
w: write (쓰기 권한 - 파일 수정, 디렉토리 안에 생성할 수 있는지)
x: excute ( 실행 권한 - 파일 실행, 디렉토리 안으로 접근)
ls -l
-rw-,r--,r-- root root
(1) 소유자 권한 (2) 그룹 권한 (3) 기타 사용자 권한: 소유자, 그룹 아닌 사람 (4) 소유자 (5) 그룹
특수권한
1. setuid -> 그 파일을 실행할때, 파일 소유자의 권한으로 실행한다. x자리에 s가
2. setgid -> 그 파일을 실행할때, 파일 그룹의 권한으로 실행한다.
3. stikcy bit -> 디렉토리에 설정 -> 누구나 마음껏 파일 생성가능 == /tmp -rw-r--rwt (t)
권한 변경
chmod [ ] u, g, o + - r , w, x
chomod u-r [ ]
숫자로도 권한 표현 가능
표준 입출력
표준 입력 : standard input stream, 0
표준 출력 : standard output stream, 1 ex) [명령어 ] 1 > [파일]
표준 에러 : standard error stream, 2 ex) [명령어] 2 > [파일]
출력을 .txt로 보낼때 > 사용 ( > : 기존 파일 사라짐 , >> 기존파일 안사라짐 )
redirection : 에러메세지를 거를때, 명령어의 출력을 화면이 아닌 파일로 저장할때
pipe ( 어떤 프로세스 출력을 다른 프로세스의 입력으로 넣을때)