예전에 우분투 리눅스를 약간 아주 약간 다뤄본 적이 있는데 그때는 vmware까지 설치해야 했다. 그게 아마 2학년 때인가 싶은데 몇년 새 환경이 좋아져서 이제는 윈도우 터미널만으로 리눅스를 다룰 수 있게 되었다.
리눅스는 CLI; Command-Line Interface로 컴퓨터를 명령어로 제어한다. 기본적으로 사용하는 윈도우 같은 GUI; Graphic User Interface 대신에 CLI를 사용하는 이유는 GUI에 비해 적은 자원 소모와 높은 안전성, 빠른 속도에 있다.
Linux 기본 명령어
명령어 | 의미 | 설명 |
pwd | print working directory | 현재 위치를 확인한다 |
mkdir | make directories | 새로운 폴더를 생성한다 |
ls | list | 특정 폴더에 포함된 파일과 폴더를 확인한다 |
ls -l | list long | 상세 정보까지 포함해 확인한다 |
ls -a | list all | 숨김 파일까지 확인한다 |
ls -la / ls -al | list long all / all long | 숨김 파일의 상세 정보까지 포함해 확인한다 |
explorer.exe . | 터미널 창의 현재 위치를 윈도우 탐색기로 오픈 | |
cd | change directory | 폴더에 진입한다 |
touch | 파일을 생성한다 | |
cat | 파일의 내용을 터미널에서 출력한다 | |
rm | remove | 파일을 삭제한다 |
rm -rf | remove recursive force | 폴더를 삭제한다 |
mv | move | 폴더나 파일의 이름을 변경하거나 위치를 옮긴다 |
cp | copy | 파일을 복사한다 |
cp -rf | copy recursive force | 폴더를 복사한다 |
절대 경로
기준점으로부터의 절대적인 위치를 나타낸다.
- 명령어 pwd로 확인한다
- 기준점: 루트 폴더(/)
상대 경로
현재 위치로부터의 상대적인 위치를 나타낸다.
- 기준점: 특정 폴더 또는 파일의 위치
- 현재 위치한 폴더: .
- 상위 폴더: ..
- cd ./폴더명 : 하위 폴더에 접근한다
- cd ../ : 상위 폴더에 접근한다
관리자(root) 권한
리눅스는 일반 사용자에게 관리자(root) 권한을 완전하게 넘 기지 않는다. 사용자에게는 프로그램을 설치, 변경, 삭제할 수 있는 권한만을 전달하여 사용자와 관리자를 명확하게 분리함으로써 사용자의 실수로 인해 발생할 수 있는 시스템 에러로부터 운영체제를 보호한다.
현재 로그인 된 사용자를 확인하는 명령어 whoami
관리자 권한을 획득하는 명령어: sudo
현재 로그인 된 사용자를 확인해보고, 관리자 권한을 얻기 위해 sudo 명령어를 기본 cli 명령어의 앞에 작성할 수 있다.
텍스트 에디터 nano
원격 서버 환경에서 원격으로 텍스트 파일을 편집해야 할 경우에 유용하게 사용된다.
패키지
여러 파일을 모아 하나의 파일로 저장하고 있는 압축 파일으로 다음과 같은 파일로 구성된다.
- 프로그램 파일
- 프로그램 설치 파일
- 프로그램 설치 설명서
- 프로그램에 대한 정보를 담은 파일
패키지 매니저
패키지의 설치, 변경, 삭제 등 관리를 지원한다. 모든 패키지의 저장소 위치를 저장하고 있고, 설치된 모든 프로그램의 업데이트를 확인하거나 필요 없는 프로그램을 제거하는 데 사용될 수 있다.
우분투 패키지 매니저 -apt
관리자 권한 여부 | 명령어 | 설명 |
sudo | apt update | 패키지의 업데이트 여부를 확인한다 |
apt list --upgradable | 업그레이드가 필요한 파일을 조회한다 | |
sudo | apt upgrade | 전체 패키지를 업그레이드한다 |
sudo | apt --only-upgrade install 패키지 이름 | 특정 패키지를 업그레이드 한다 |
apt show | 패키지의 정보를 확인한다 | |
sudo | apt install 패키지 이름 | 패키지를 설치한다 |
apt list --installed | 설치된 패키지의 목록을 조회한다 | |
sudo | apt remove 패키지 이름 | 패키지를 삭제한다 |
apt search 패키지 이름 | 패키지를 검색한다 |
wget, neofetch 설치, 사용해보기~
사용 권한 rwx; read write execute
ls -l 명령어로 확인할 수 있는 사용자 권한이다. 맨 처음 글자는 폴더일 경우 d(directory), 파일일 경우 -를 출력한다. 뒤는 세글자씩 끊어 각각 owner, group, other가 가지고 있는 rwx 권한을 출력한다.
chmod: 사용 권한을 변경하는 명령어
1. Symbolic method: +, -. =
1) Access class | 2) Operator | 3) Access Type |
u (user) | + | r (read) |
g (group) | - | w (write) |
o (other) | = | x (execute) |
a (all: u, g, o) |
chmod (class)+(type) filename
chmod (class)-(type) filename
chmod (class)=(type) filename
2. Absolute form: 4, 2, 1
Permission | Number |
Read (r) | 4 |
Write (w) | 2 |
Execute (x) | 1 |
chmod (sum) filename
# | Sum | rwx | Permission |
7 | 4(r) + 2(w) + 1(x) | rwx | read, write, execute |
6 | 4(r) + 2(w) + 0(-) | rw- | read, write |
5 | 4(r) + 0(-) + 1(x) | r-x | read and execute |
4 | 4(r) + 0(-) + 0(-) | r— | read only |
3 | 0(-) + 2(w) + 1(x) | -wx | write, execute |
2 | 0(-) + 2(w) + 0(-) | -w- | write only |
1 | 0(-) + 0(-) + 1(x) | —x | execute only |
0 | 0(-) + 0(-) + 0(-) | —- | none |
보충하자,,,
환경 변수
환경에 따라 프로그램의 동작에 영향을 줄 수 있는 값들을 말한다. 환경 변수 설정을 통해 프로그램이 동작하는 환경을 설정할 수 있다. 운영체제는 환경 변수를 설정하고, 프로그램이 환경 변수를 찾아서 사용할 수 있도록 한다.
지역 환경 변수
환경 변수를 생성한 특정 사용자만 사용할 수 있는 환경 변수 > (windows) User에 대한 사용자 변수
전역 환경 변수
모든 사용자가 사용할 수 있는 환경 변수 > (windows) 시스템 변수
🐑 Daily 회고
1. 리눅스 오랜만이야
- 그래도 그땐 나름 열심히 들었...었다고 생각했는데 까먹은 내용이 90 이상인데 어카지 이 돌머리?
- 여전히 명령어 헷갈린다 ^^
2. 오늘도 효율은 개떨어졌다
- 정규 시간에 졸고 딴짓하고 난리남
- til도 미루고 미루다가 겨우 시작함
3. 정리 방식을 고칠 필요가 있겠다
- 노션 대충 쓸 거면 왜 쓰지?
- til은 더 더 간단하게 쓰고 study에서 정리하는 게 낫지 않을까? 일 두번 하고 있는 듯
총평 ⭐
엉망이다. 아니 til인데 지금 쓰는 사이에 또 날짜 바뀐 거 실화인가.......? 그치만 오늘의 런닝 포기할 수 없었다. 마스크 해제 첫날인데........ 인간적으로 좀 달려줘야 되지 않나? ㅎㅎㅠ 그치만 진지하게 운동 시간 아침으로 옮기는 것 좀 고민해봐야 할 것 같기는 하다. 좀 비효율적이고 몸 상태도 영. 그리구 캠스터디도,,, ㅎㅎ,,, 잠깐 놀다가 뒤쳐지는 거 한순간이다. 자바 들어가기 전에 얼른 한 군데 들어가자. 여러모로 부족한 하루였다. 내일은 그러지 말자. 일단 얼른 자자. 내일은 졸기 금지야 ㅜㅠ
✔️ To Do List (5/5)
1. Study - 우분투 리눅스 - 명령어 정리해놓기
2. 심심하면 책도 있겠다 심화 Study 포스팅 고
'diary > codestates (be39)' 카테고리의 다른 글
05/04/22 [1/2] [Java] 자바 자바 자바 기초 떼기 (0) | 2022.05.04 |
---|---|
05/03/22 [Git + pair programming] 우당탕탕탕탕탕탕탕 (0) | 2022.05.03 |
[CSS] 레이아웃 만들기 (0) | 2022.05.02 |
[CSS] 박스 모델 (0) | 2022.05.01 |
[CSS] CSS Selectors (0) | 2022.05.01 |