리눅스란?
- 운영체제의 한 종류로 컴퓨터 시스템의 하드웨어를 효율적으로 관리하기 위한 시스템 소프트웨어이다.
- 1989년 리누스 토르발스가 유닉스를 기반으로 개발했으며 오픈소스 운영체제이다.
- GPL 라이센스가 적용된 운영체제로 리눅스를 설치한 뒤 사용자가 자신의 운영체제를 수정하여 사용할 수도 있다.
- 다음과 같은 특징을 가진다.
- 오픈소스 운영체제
- GPL 라이센스 사용
- 다중 사용자 및 다중 처리 시스템
- 뛰어난 유연성, 확장성
- POSIX와 호환
- 하드웨어 > 커널 > 셸 > 응용프로그램
커널(Kernel) : 메모리에 상주하면서 시스템을 관리하는 운영체제의 핵심으로 응용프로그램 수행에 필요한 프로세스, 메모리, 입출력, 파일 관리 등 여러 서비스를 제공한다.
셸(Shell) : 사용자가 입력한 문장을 읽어 요청을 실행하는 명령어 해석기/번역기 이다. 커널과 직접적으로 연결되어 명령어를 해석한 결과를 다른 프로그램 또는 커널로 전송한다. 리눅스에서 표준 셸은 bash 셸이다.
파일 시스템 : 파일 저장의 기본적인 구조, 시스템 관리를 위한 기본 환경을 제공한다. 계층적인 트리 구조 형태로 리눅스의 표준 파일 시스템은 ext4 이다.
- 리눅스는 파생된 운영체제들이 많이 존재하며 대표적으로 우분투가 있다.
- 리눅스 서버에 접속하여 명령어를 실행하기 위해서는 ssh 접속을 해야하며 mac은 터미널에서 접속 가능하고 window는 PuTTY 등을 설치하여 접속한다.
ssh -i "pem key" "host id"@"host name || server ip" -p "port"
명령어
- man
- 각종 명령어, 프로그램의 사용법(매뉴얼)을 확인하는 명령어이다.
- clear
- pwd
- ls
- 현재 디렉토리의 파일목록을 조회하는 명령어이다.
- ls -l : 파일들의 상세 정보를 나타낸다.
- ls -a : 숨긴 파일도 표시한다.
- ls -t : 최신 파일부터 표시한다.
- ls -rt : 오래된 파일부터 표시한다.
- cd
- 디렉토리를 이동하는 명령어이다.
- cd ~ : 어느 곳에서든 홈 디렉토리로 이동한다.
- cd .. : 상위 디렉토리로 이동한다.
- cd /dir : 절대경로로 이동한다.
- cd - : 이동하기 바로 전의 디렉토리로 이동한다.
- find
- 특정 디렉토리/파일을 찾는 명령어이다.
- find "path" -"type" -name '"파일 이름"' | "option"
- which
- touch
- 파일의 용량이 0인 파일을 생성하는 명령어이다.
- 파일의 최종 시간을 변경하는 용도로도 사용된다.
- cat
- echo
- 화면에 문자열을 출력한다.
- 보통 환경 변수를 출력하여 확인할 때 사용한다.
- mkdir
- 현재 경로에 디렉토리를 생성하는 명령어이다.
- mkdir -p "path" : 해당 경로로 모든 디렉토리를 한번에 생성한다.
- cp
- 파일을 복사하는 명령어이다.
- 앞의 파일이 뒤의 파일로 복사되니 주의하자.
- cp -f : 파일이 있으면 덮어 쓰기한다.
- cp -R : 디렉토리 복사할 때 사용하며 하위 경로와 파일들을 모두 복사한다.
- mv
- 파일을 이동시키는 명령어이다.
- mv -b : 파일이 이미 존재하면 백업하고 이동한다.
- mv -f : 파일이 존재하면 백업 없이 덮어 쓴다.
- rm
- 파일을 제거하는 명령어이다.
- rm -f : 파일 이름을 묻지 않고 삭제한다.
- rm -r : 디렉토리를 하위 모든 것까지 삭제한다.
- grep
- 특정 문자열의 위치를 특정 파일에서 찾는 명령어이다.
- grep -"option" "string" "file"으로 다양한 옵션을 적용하여 수행할 수 있다.
- 프로세스에도 사용 가능하다.
- export
- env
- 현재 지정되어 있는 환경 변수들을 출력하는 명령어이다.
- redirection
- 리눅스 스트림의 방향을 조정하는 명령어이다.
- "command" > "file" : 명령의 결과를 파일로 저장한다.
- cat file1 file2 > file3 : file1, file2를 출력하고 file3에 저장한다.
- "command" >> "file" : 멸령의 결과를 파일에 추가한다.
- cat file4 >> file3 : file4의 내용을 file3에 추가한다.
- "command" < "file" : 파일의 데이터를 명령에 입력한다.
- cat < file1 : file1의 내용을 출력한다.
- 여러 개를 동시에 사용할 수 있다.
- cat < file1 > file2 : file1의 내용을 출력하는 결과물을 file2에 저장한다.
- df
- 파일 시스템의 디스크 공간에 대한 필수 정보를 표시하는 명령어이다.
- ps
- 현재 실행 중인 프로세스를 시각화하는 명령어이다.
- kill
- 특정 프로세스의 번호를 입력하여 중지하는 명령어이다.
- tail
- 대량의 텍스트 파일에서 패턴을 검색할 때 사용하는 강력한 정규식 명령이다.
- 오류나 파일 로그를 실시간으로 확인할 때 유용하다.
권한 관리
rwx / rw- / r-x : 소유자의 권한 / 그룹의 권한 / 기타 사용자의 권한
2진수로 표현 (위의 예시는 765)
- chmod
- 권한을 변경한다.
- chmod -r : 하위 디렉토리의 모든 권한까지 변경한다.
- chmod -c : 권한 변경 파일내용을 출력한다.
- chown
- 소유자를 변경한다.
- chown "option" "user || group" "file"
- chown -r : 하위 디렉토리의 모든 권한까지 변경한다.
- r
- 읽기 권한이다.
- 파일일 때 읽고 카피가 가능하다.
- 디렉토리일 때 ls 명령어가 가능하다.
- w
- 쓰기 권한이다.
- 파일일 때 수정이 가능하다.
- 디렉토리일 때 파일 생성 가능하다.
- d
- 실행 권한이다.
- 파일일 때 실행이 가능하다.
- 디렉토리일 때 cd 접근이 가능하다.