📄 학습내용
컴퓨터 제어 방식
- CLI : Command-Line Interface, 명령어를 통해서 컴퓨터를 제어하는 방식
- GLI : Graphic-Line Interface, 그래픽 화면에서 사용자가 컴퓨터를 제어하는 방식
리눅스 기본 명령어
- pwd : 현재 위치를 절대 경로로 출력
pwd
- mkdir : 새로운 디렉터리 생성
mkdir 디렉터리명
- ls : 디렉터리 안에 있는 디렉터리나 파일 출력
- -l : 파일이나 디렉터리의 상세내역 출력
- -a : 숨어있는 디렉터리나 파일을 전부 출력
- -al 또는 -la : 숨어있는 디렉터리나
ls
ls -a
ls -l
ls -al
- cd : 다른 디렉터리로 이동
cd 디렉터리명
- touch : 새로운 파일 생성
touch 새로운파일명
- > : > 왼쪽 명령어의 결과를 > 오른쪽 파일에 저장
명령어 > 파일명
- cat : 파일의 내용 출력
cat 파일명
- \ : 디렉터리나 파일의 이름에 공백이나 특수문자가 있는 경우에 사용하는 문자
- rm : 파일이나 디렉터리를 삭제
- -rf : 옵션 r(recursive)은 일정한 행동을 반복하고, 옵션 f(force)는 강제적으로 행동을 진행한다. 그러므로 내용이 들어있는 디렉터리를 제거할 때 사용가능한 옵션이다.
rm 파일명 또는 디렉터리명
rm -rf 디렉터리명
- mv : 파일이나 디렉터리를 다른 디렉터리로 옮기거나, 이름을 변경
mv 파일명(또는 디렉터리명) 이동할디렉터리
mv 파일명(또는 디렉터리명) 새로운파일명(또는 디렉터리명)
- cp : 파일이나 디렉터리 복사
- -rf : 내용이 있는 디렉터리를 복사하기 위해서 사용하는 옵션
cp 파일명(또는 디렉터리명) 새로운파일명(또는 디렉터리명)
cp -rf 디렉터리명 새로운디렉터리명
- whoami : 현재 사용 중인 사용자명을 출력
whoami
- sudo : 관리자 권한 획득
- 사용자가 파일을 안전하게 관리할 수 있도록 있는 관리자 계정이 존재한다. 이때 새로운 프로그램을 설치하거나, 업데이트 및 삭제할 때 잠시 관리자 계정을 획득해서 이를 진행한다. 또는 관리자 권한이 필요한 부분을 진행하기 위해서 사용된다.
- man : 명령어의 메뉴얼
man 명령어
경로 & 키워드
- / : 루트 또는 디렉터리를 구분하기 위해서 사용
- . : 현재 디렉터리
- .. : 상위 디렉터리
- ~ : 루트에서부터 사용자 경로까지의 경로를 의미
- 절대 경로 : 기준점(루트 / )를 기준으로 경로를 표현하는 방식
- 상대 경로 : 현재 디렉터리 위치를 기준으로 경로를 표현하는 방식
텍스트 에디터 nano
- window에 있는 메모장과 유사한 텍스트 에디터로 기본적으로 설치되어 있다.
- 파일 저장 명령어 : ctrl+o
nano 파일명
nano
- 패키지 : 프로그램 설치 및 동작에 필요한 파일들이 압축된 것
- 패키지 매니저 : 패키지의 관리를 도와주는 도구
- apt 패키지 매니저와 패키지 명령어
- sudo apt update : 설치가능한 패키지 리스트 업데이트
- apt list --upgradable : 업데이트가 간으한 패키지 리스트 출력
- sudo apt upgrade : 전체 패키지 업데이트
- sudo apt --only-upagrad install 패키지명 : 특정 패키지만 업데이트
- apt show 패키지명 : 패키지 정보 출력
- sudo apt install 패키지명 : 패키지 설치
- apt list --installed : 설치된 패키지 출력
- sudo apt remove 패키지명 : 패키지 삭제
- apt search 패키지명 : 패키지 검색
설치한 패키지
- neofetch : 사용자 정보 확인
sudo apt install neofetch
neofetch
- sl : ls를 반대로 입력했을 때 나오는 귀여운 애니메이션
sudo apt install sl
sl
- asciiquarium : 귀여운 물고기를 볼 수 있는 애니메이션 영상, 물고기는 랜덤으로 등장한다.
asciiquarium
파일 또는 디렉터리의 소유자와 사용 권한을 확인
- drwxrwxrwx : ① d ②rwx ③ rwx ④ rwx
- ① d : 디렉토리 또는 파일 구분
- ② rwx : user(사용자)
- ③ rwx : group(그룹)
- ④ rwx : other(그 외의 사람들)
- - : 첫번째 자리일 경우에는 파일이라는 의미이고, 나머지는 권한없음을 의미
- d : 디렉터리
- r : read 권한
- w : write 권한
- x : execute 권한
사용 권한 변경
- chmod : 파일이나 디렉터리의 사용 권한 변경
- 방법 1) symbolic method ; 연산자와 접근자를 통해서 사용 권한을 변경하는 방식
- 명령어 : chmod ①②③ 파일명
- ① 접근자 클래스 : u, g, o, a
- ② 연산자 : +, -, =
- ③ 접근 권한 : r, w, x
- 방법 2) absolute form : 숫자를 통해서 사용 권한을 변경하는 방식
- 명령어 : chmod ①②③ 파일명
- rwx : r=4, w=2, x=1 이진수 계산법
- 각 ①(user)②(group)③(other) 값들은 필요한 권한(rwx)들만의 값들을 더한 값
환경변수
- 환경변수 : 환경에 따라서 프로그램에 영향을 주는 변수값들
- 전역 환경변수와 지역 환경변수
- 전역 환경변수 : 모든 사용자가 사용가능한 환경변수
- 지역 환경변수 : 환경변수를 설정한 사용자만 사용 가능한 환경변수
임시적으로 환경변수 설정 방법(in linux)
- 지역변수 : 변수명=값
- 전역변수 : export 변수명=값
영구적으로 환경변수 설정 방법
- linux 지역변수: 홈 디렉터리(~)에서 .zshrc 또는 .bashrc 파일의 맨 아래에 변수와 값을 추가해서 사용 가능
- linux 전역변수 : /etc/profile의 권한을 777로 변경 후 변수와 값을 추가해서 사용 가능
- window : '시스템 환경 변수 편집' → 환경변수 → 환경 변수를 추가 및 삭제 가능
환경변수 확인 방법
- linux : export
- window : cmd 창 → set 명령어
터미널을 통해서 명령어가 실행되는 과정
- 1) 터미널(terminal)에 명령어 실행
- 2) 터미널의 명령어가 쉘(shell)로 전달
- 3) 쉘은 터미널로부터 받은 명령어를 해석해서 커널(kernel)로 전달
- 4) 커널은 쉘로부터 받은 명령어를 실행해서 하드웨어가 동작
- 5) 하드웨어 동작 후 실행 결과를 커널로 전달
- 6) 커널을 실행 결과를 쉘로 전달
- 7) 쉘을 실행 결과를 터미널로 전달해서 터미널에서 실행한 명령어 결과가 화면에 출력
⭐ 공부 난이도
리눅스 ☆☆☆☆★
🧶 발생한 문제 및 해결방법
- 문제점) ubuntu로 접속을 했을 때 내가 설정한 kung(username)으로 접속되지 않고 root 계정으로 접속이 되었다.
- 해결방법) su username 명령어를 통해서 문제를 해결하였다.
root → user : su username
user → root : su
- 문제점) asciiquarium은 supo apt install asciiquarium으로 설치가 되지 않음
- 해결방법) https://www.cyberciti.biz/tips/linux-unix-apple-osx-terminal-ascii-aquarium.html 사이트 참조해서 해결
Term::Animation과 asciiaquarium을 설치해야 제대로 동작함
+추가) Term::Animation을 설치받기 위해서 /tmp에 다운받은 asciiquarium.tar.gz과 Term-Animation-2.6.tar.gz을 삭제해도 asciiquarium은 정상적으로 동작한다. 필요없는 파일은 그때그때 지우는 것이 중요한 것 같다.
🌕 느낀점
리눅스는 작년 2학기에 리눅스 서버 스터디를 진행해서 크게 어려운 부분은 없었다. 환경변수 부분만 자세하게 공부할 수 있었다. 어려운 점이 있었다면 굿모닝 세션에서 멘토님이 보여주신 asciiquarium 설치가 쉽게 되는 줄 알았는데 생각보다 복잡했다. 구글링을 통해서 따라하다가 계속 막히는 부분이 발생해서 해결하는데 30분 정도의 시간이 소모된 것 같다. 그래도 해결해서 asciiquarium이 제대로 동작한다는 사실에 만족한다. 그리고 처음에 linux에 접속했을 때, user가 아닌 root 사용자로 접속되어서 조금 당황스럽긴 했지만 금방 문제를 해결할 수 있었다.
'코드스테이츠 - 3회차 백엔드 부트캠프 > Section 1' 카테고리의 다른 글
2022.08.30 화 - Java 기초 (0) | 2022.08.30 |
---|---|
2022.08.29 월 - Git (0) | 2022.08.29 |
2022.08.25 목 - 첫번째 페어프로그래밍 (0) | 2022.08.25 |
2022.08.24 수 - Flexbox, 와이어프레임 (0) | 2022.08.24 |
2022.08.23 화 - HTML, CSS (0) | 2022.08.23 |