Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발공부일지

Linux ② - User , Shell, Process, Package Manager 본문

ETC

Linux ② - User , Shell, Process, Package Manager

보람- 2023. 8. 17. 16:13

목차

1. 사용자 (User)

2. Shell

3. Package Manager

4. Process

5. 실습


 

 

 

1. 사용자 (User)

- 멀티 유저 : 여러 사용자가 동시에 하나의 시스템에 접근이 가능한 것

- '디렉토리'와 '파일'에 권한을 부여할수있다.

  • 사용자 타입
- 루트 사용자 : UID 0
- 시스템 사용자 : UIDs 1 ~ 999
- 일반 사용자 :  UIDs 1000 ~ n

 

 

 

2. Shell

- 커널에게 보내기 전에 알아듣게 바꿔주는 인터페이스

  shell → 커널 → 하드웨어

- 종류로는 bash, sh, zsh 이 있는데 zsh를 설치해서 사용하기로한다! 

 

 

 

3. Package Manager

- 패키지들을 수정하고 삭제하는 등 관리를 도와주는것

- 예를들면 어떤 프로그램을 설치하고 싶을때 sudo apt install [프로그램이름]

 

 

 

4. Process

- 프로세스의 일반적인 정의 : 실행중인 프로그램

for (let i = 2; i <= 9; i++) {
  console.log(i);
}

- 컴퓨터 CPU에서 실행되는 모든 프로그램을 프로세스라고한다. → console.log()
    - for 문이 끝나면 프로그램이 종료된다 (실행된게 끝난거니까)
    - 프로세스 종료 : 콜스택에서 실행되서 끝난것!
    - 근데 for문을 각각 돌아도 메모리 공간은 다를수있다
- 프로그램은 프로세스가 실행될때마다 고유의 PID (프로세스 아이디가 생성된다)
   - setInetval로 1초마다 hello world 가 찍히는건
   - 백그라운드에 들어간 setInterval이 콜스택에 계속 들어가
   - 프로세스가 돈다는건 콜스택이 비어있지않고, 계속 쌓이고 실행됨을 나타난다. → 적재된다고한다
   - 그래서 프로세스를 kill 죽일수있다!

     - kill -9 [PID번호]

ps -ef
# ps : 프로세스 ctrl,alt,dlete를 누른것과 같다
 
^C
#(컨트롤C)
#강제로 프로세스를 끌수있다

 

 

5. 실습 

  • 유저 생성하기  (boram)
sudo useradd boram
sudo passwd boram
id boram
# uid=1001(boram) gid=1001(boram) groups=1001(boram)

cat /etc/passwd | grep boram
# boram:x:1001:1001::/home/boram:/usr/bin/zsh

cd /home
ls -al
sudo mkdir boram
# drwxr-xr-x  2 root   root   4096 Aug 17 14:44 boram

 

  • 생성한 유저에 권한 부여하기
sudo chown boram ./boram
sudo chown boram:boram ./boram
ls -al
# drwxr-xr-x  2 boram  boram  4096 Aug 17 14:44 boram

sudo su - boram
whoami
# boram

pwd
# /home/boram

 

  • shell 설정하기
sudo apt install zsh
sudo chsh -s /usr/bin/zsh boram
grep boram /etc/passwd
echo $SHELL
# /usr/bin/zsh

# 위에가 안된다면
# 교수님처럼 커스텀하기위해 강제로 만들기

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# 설치 후 

cd ~
ls -al

vi .zshrc
# 테마 이름을 "agnoster"로 변경해주기

source ~/.zshrc

vi .zshrc 
# 맨마지막 아래코드에 붙여주기
prompt_context() {
   if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
     prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
   fi
}
:wq!

source ~/.zshrc

 


 오늘의 포인트와 남겨두기 ★

 

※ NVM 을 설치해서 Nodejs 관리하기

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

vi ~/.zshrc
vi ~/.bashc

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

#위에꺼를 zshrc에 추가해주기!!!!

source ~/.zshrc
nvm --version

node --version

nvm install --lts