개발공부일지
Linux ② - User , Shell, Process, Package Manager 본문
목차
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
'ETC' 카테고리의 다른 글
Github - Repositories, token, (0) | 2023.08.22 |
---|---|
Git ② - Branch, merge, rebase (0) | 2023.08.21 |
Git ① - git workflow, git add, git commit (0) | 2023.08.18 |
AWS , PuTTY , FileZilla, apache (0) | 2023.08.16 |
WSL ① - 리눅스(Linux), 우분투(Ubuntu), CLI, 디렉토리 (0) | 2023.08.14 |