linux & terminal
2022. 4. 7. 18:37
- 목차
- 운영체제
- 리눅스
- 리눅스 핵심개념
- 터미널 명령어
- Quiz
1. 운영체제(OS)
- 컴퓨터를 사용하게 해주는 프로그램
- 0,1밖에 모르는 컴퓨터를 , 사용자가 편하게 사용할 수 있도록 중간에서 도움을 주는 프로그램
- ex)window,macos,linux
- 사용자의 명령(코딩)은 터미널(쉘) > 커널 > 하드웨어 순으로 전달된다
- 터미널에서 실행되는 프로그램이 '쉘'임. 쉘은 사용자 입장에서 명령을 내리는 곳이라고 보면 됨
- 쉘의 종류 : zsh(맥북)...
- 커널 : 하드웨어에 직접적으로 명령을 전달하는 곳
- 리눅스를 쓰는 이유
- 오픈소스 > 누구나 자유롭게 사용가능 + 자유로운 커마 및 배포도 가능
- 멀티테스킹 및 멀티스레드 > 여러명이 동시접속해도 동시작업이 가능
- 서버쪽은 99%이상이 리눅스
- 리눅스의 종류
- 우분투 , centos , android
- 사용방법에 따라도 CLI와 GUI로 나눌 수 있음
- CLI : 터미널. 까만환경에 하얀 글
- GUI : 흔히 쓰는 노트북과 비슷
- GUI가 더 편하긴 하지만, 결국 서버관리의 영역에서는 CLI를 사용해야 한다.
- 또한 CLI는 GUI에서 할 수 있는 걸 모든 걸 할 수 있으나, 반대로 GUI가 CLI의 모든 걸 하지는 못한다.
리눅스의 핵심개념
- 리눅스의 파일 구조
- root : 최상위 경로. 모든 리눅스는 여기서부터 시작됨
- '/' 로 표시할 수 있음. 즉 리눅스에서 시작되는 경로는 모두 '/'로 시작되는데 이게 root로부터 시작한다는 뜻임
- home : 윈도우로 치면 c드라이브와 같은 유저의 공간. 다른 위치로 자유롭게 이동할 수 있음
- '~'로 접근이 가능
- 터미널을 처음 켰을 때 위치가 보통 home임
- bin : linux가 실행될 때 필요한 기본적인 명령어들이 저장되어 있음
- usr : 배포판을 위한 설정이 담겨져 있음.
리눅스의 경로
- 리눅스는 반드시 경로에 대한 정보를 가지고 작업을 진행함
- 절대경로 : 최상위 경로로부터 시작됨 ex) /home/eun/bin..
- 상대경로 : 현재 내가 있는 위치로부터 시작됨 ex) cd ..
- .은 현재경로, ..는 상위경로
환경변수
- os가 구동되는데 필요한 변수
- 터미널에 env라고 치면 현재 os에 구동되고 있는 환경변수들을 볼 수 있음
- 환경변수 예시
- path : 여기에 경로를 담아두면 , 그 경로까지 직접가지 않아도 명령어를 실행시킬 수 있음 ex) os가 구동될때 필요한 bin명령어를 여기에 담아두면 , bin폴더까지 가지 않아도 됨
- home : home디렉토리의 경로
- 그외에도, 비밀번호 같은 것들을 환경변수에 담아둠. 코드에 실제로 담아두면 바로 털릴 수 있으니까, 프로그램으로 하여금 환경변수에 접근해서 비밀번호를 얻을 수 있도록 함
Config파일(dot 파일)
- 리눅스에서는 주로 파일을 통하여 설정
- .으로 시작되는 파일을 dot파일이라고 하며, 이는 숨김파일로 간주함
- ex) .zshrc
터미널 명령어
- pwd(print working diectory) : 현재 내가 있는 위치를 출력
- ~ : home directory로 이동. 근데 만약 안되면(버전마다 다를 수 있음) 'cd ~' 와 같이 하면 됨
- cd : 경로이동. 뒤에 절대경로든 상대경로든 뭐든 ㄱㅊ
- cd ..
- cd / : 루트로 이동
- cd ~ : home으로 이동
- ls : 현재 내 위치에 있는 파일 목록 출력
- ls + 경로 : 해당 경로에 있는 파일목록
- mkdir (현재 경로에)디렉토리 폴더 생성
- cd로 특정경로로 이동한 후, 'mkdir (이름)'으로 생성
- touch : 파일 생성
- touch test.md
- vi/vim : 파일을 편집할 수 있는 에디터를 활성화
- vi : 리눅스에서 제공하는 파일 편집기
- vi + 파일명,경로. 이때 만약에 , 없는 파일명or경로로 가면 새로 파일이 생성되면서 편집기가 열림(q!로 나가면 그냥 파일 사라지면서 나가짐)
- 입력하면 편집화면으로 바뀌는데, 'i'를 누르면 편집을 시작할 수 있음. 편집이 끝나면 'esc'로 종료
- 작업이 끝나면 저장해야함 >> ':w + enter '
- 다시 원래 있던 터미널로 >> :q
- 저장과 동시에 나가려면 wq
- 그냥 저장안하고 강제로 나가려면 !q
- cp : 복사
- cp + 복사하려는 파일(경로+파일) + 복사한 파일을 넣을 경로
- rm : 파일 삭제
- rm + 삭제하려는 파일(경로+파일)
- mv : 파일 이동 / 파일 이름 변경
- mv + 이동하려는 파일 + 이동시킬 경로
- mv + 바꾸려는 파일이름 + 변경시킬 파일 이름
- 바꿀 파일이름이 현재 위치에 없을 경우에만 적용됨
- rm-r : 디렉토리 삭제
- 그냥 rm만으로는 directory를 지울 수 없다(경고가 뜸)
- rm-r + 지우려는 디렉토리
- rm-rf * : f는 강제, *는 모든것 . 즉 현재 위치에서 이걸쓰면 모든게 경고도 없이 다 날라감