리눅스 (4) - 셸, 커널, 단축키

haeIT·2024년 10월 29일
1

Linux

목록 보기
4/9
post-thumbnail

2024-10-29 TUE

1. 셸, 커널

  • 내가 셸에 'date'라는 명령어를 입력하면
  • 셸이 'date'라는 명령어를 찾아서
  • 리눅스 커널에 실행을 의뢰!
  • 리눅스 커널이 명령어를 실행하면
  • 셸은 그 결과를 전달받아서 출력
    이런 매커니즘~!

🤔 왜 셸과 커널을 분리 해놨을까?

  • 분리되어 있으면 커널을 바꾸지 않고 셸만 바꾸기가 가능해짐!
  • 다른 OS 사용시 셸만 이식해서 사용가능
  • 본체인 리눅스 커널에 높은 부하 발생시 미치는 영향을 최소화 해서 보호할 수 있음~!
  • 보통 한 프로그램에 너무 많은 기능을 넣지 않는 것이 리눅스의 기본 철학이기도 함!

셸에도 종류가 있는데요!

  • sh : 오래됨, 대화형 bad
  • csh : c셸 계열, 대화형 굿
  • bash : sh 대체 가능, 기본으로 많이 사용중
  • tsch : c셸 계열, 대화형 조작 굿, 셸 스크립트는 bad
  • zsh : 최근 개발, bash + tcsh, 어려움

나는 bash셸 사용!

일시적으로 셸 종류 바꾸기!

  • bash -> sh로 일시적으로 바꿈!

  • 다시 bash 입력시 돌아옵니다~!

❗ 하지만, 다시 돌아온게 아니라 중첩된 것임!

  • 즉, bash → sh → bash 이렇게 된 것!
  • 진짜로 빠져 나오려면 어떻게 해야 할까?!

exit 명령어 이용하기~!

  • 첫번째 화살표는 bash → sh 이고,
    두번째 화살표는 sh → bash 가 됩니다!
  • 이렇게 하면 완전히 돌아 온것!
  • 그렇다면 아예 처음부터 로그인셸을 바꾸려면 어떻게 해야 할까??

cshs 명령어 사용하기~!

  • 하지만 그냥 bash를 사용하도록 하자~~

2. 프롬프트

  • 명령어 앞부분에 이부분을 프롬프트라고 함!
  • 빨간색 밑줄은 '사용자 이름'
  • 초록색 밑줄은 '호스트 이름;
  • 일반 사용자는 ~# 말고 ~$ 로 표기
  • ~# 는 슈퍼사용자, 루트 사용자 라는 뜻!

3. 터미널

  • 터미널은 컴퓨터의 입출력만을 담당하는 전용 하드웨어를 말함!
  • 입력 장치인 키보드와 출력 장치인 모니터로 구성되어 있음
  • 요즘에 말하는 터미널은 보통 터미널 에뮬레이터를 말함!
운영체제터미널 에뮬레이터
WindowsPuTTY, Tera Term
macOS Xterminal, iTem2
LinuxGNOME Terminal, Konsole

4. 로그인

1. WSL 사용자 추가하기

sudo adduser [사용자 이름]
  • 이렇게 해서 사용자를 추가해준다.

  • 나는 username: haeit, 비밀번호는 1234로 설정!

  • 비밀번호는 입력해도 안보임!!

2. 기본 로그인 사용자 변경

wsl -u haeit

  • root에서 exit 한 후에 위 명령어 입력해주면
  • haeit으로 잘 들어갑니다~!

5. 단축키

  • Ctrl + a/e : 커서가 맨 앞/뒤로 이동
  • Ctrl + b/f : 커서가 뒤/앞으로 한칸씩 이동
  • Alt + b/f :커서가 한 단어 뒤/앞으로 이동
  • Ctrl + W : 한 단어 지우기
  • Ctrl + h : 한 글자 지우기
  • Ctrl + u : 복사
  • Ctrl + y : 붙여넣기
  • Ctrl + p/n : 바로 전/후 명령으로 이동

개꿀팁

  • 이걸 왜 이제 알려주냐며....
  • Ctrl + a : 화면 표시 잠금, 표시만 잠금된거지 써지고 있는 중~!
  • Ctrl + q : 화면 표시 잠금 해제

6. 기본 명령어

🐧 date

root@DESKTOP-6EAFI8H:~# date

  • date : 현재 날짜와 시간이 출력


🐧 echo

root@DESKTOP-6EAFI8H:~# echo hello

  • echo : 지정한 문자열을 출력


🐧 존재하지 않는 명령어

root@DESKTOP-6EAFI8H:~# haeit

  • haeit : 이라는 존재하지 않는 명령어를 입력시 'command not found'라고 뜹니다~!

0개의 댓글