[Linux] 기초 (터미널 기본 명령어)

김예인·2023년 4월 16일

백엔드 공부일지

목록 보기
3/43
post-thumbnail

컴퓨터를 조작하기 위한 입력과 출력 I/O(Input/Output) "아이오"

CLI : 명령줄 인터페이스(Command-Line Interface)
GUI : 그래픽 사용자 인터페이스(Graphic User Interface)

프롬프트(Prompt) : CLI 환경에서 키보드의 입력을 확인하고 편집할 수 있는 한 줄의 공간, 명령어를 입력

pwd : 현재 위치를 확인하는 명령어
cd : 폴더에 진입하는 명령어
ls : 폴더나 파일의 목록을 출력하는 명령어
ls -l : 폴더나 파일의 포맷을 전부 표현하는 명령어
ls -a : 숨어있는 폴더나 파일을 포함한 모든 항목을 출력하는 명령어
ls -al / ls -la
mkdir : 새로운 폴더를 생성하는 명령어
open (macOS) : 현재 폴더를 파일 탐색기로 여는 명령어
touch : 새로운 파일을 생성하는 명령어
cat : 파일의 내용을 터미널에 출력하는 명령어
echo : echo 뒤의 내용을 화면에 출력하는 명령어
> : 실행 결과를 파일로 저장하는 명령어
rm : 휴지통을 거치지 않고 단일 파일을 삭제하는 명령어
rm -rf : 폴더를 삭제하기 위한 옵션
mv : 폴더나 파일의 위치를 이동하거나, 이름을 변경하는 명령어
cp : 폴더나 파일을 복사하는 명령어
sudo : 관리자 권한을 이해할 수 있다.
whoami : 현재 로그인된 사용자를 확인하는 명령어
chomod : 권한을 변경하는 명령어
/ : 루트 디렉토리
~ : 홈 디렉토리
. : 현재 폴더
.. : 현재 폴더보다 앞에 있는 폴더
./ : "현재 폴더 아래의"라는 뜻

nano : nano 텍스트 에디터를 통해 파일을 여는 명령어

| 사용자와 관리자

사용자 : 프로그램을 실행할 수 있지만, 변경할 수 없도록 제한된 권한을 가짐
관리자 : 프로그램을 설치하거나 변경 또는 삭제하는 권한을 가짐

왜 분리하여 운영되도록 했을까?

사용자와 관리자를 명확히 분리하여 사용자의 실수로 발생할 수 있는 시스템 에러로부터 운영체제를 보호

| 절대 경로와 상대 경로

절대 경로 : pwd로 확인할 수 있고, 특정 폴더나 파일이 루트 폴더로부터 어떤 폴더로 진입하는 경우 만날 수 있는지 나타낸다

상대 경로 : 특정 폴더 또는 파일의 위치를 현재 위치를 기준점으로 . 과 / 등을 사용하여 나타낸다

| 관리자(root) 권한

관리자 영역 : 절대 경로의 기준점인 루트폴더(/)는 Linux의 관리자 영역

  • 사용자 폴더의 경로(Path)는 ~/로 표시
  • 명령어 sudo를 이용해 생성한 폴더의 소유자는 루트, 사용자 권한이 아니라 관리자 권한으로 생성되었다는 뜻

| 패키지와 패키지 매니저

  • 패키지 : 하나의 프로그램이 정상적으로 설치되고 동작하기 위한 모든 파일을 압축해 담고 있음
  • 패키지 매니저 : 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구로 모든 패키지의 저장소 위치를 저장하고 있다 (Mac OS 패키지 매니저 - brew)
예를들어, 톰캣을 설치하고 싶을 때, 톰캣 홈페이지가 아닌 터미널에서 brew 패키지 매니저를 이용하여 톰캣 설치 명령
brew update: 패키지의 업데이트 여부 확인, brew 자체 업데이트
brew outdated: 업데이트 필요한 파일 조회
brew upgrade: 프로그램 업그레이드
brew info: 프로그램의 정보 확인
brew install: 프로그램 설치
brew list: 설치된 프로그램 목록 보기
brew uninstall: 프로그램 삭제
* brew 를 통해 wget 설치해보기! (wget 은 URL을 통해 파일을 다운로드하는 프로그램) / 설치 후 터미널에 wget -O goodjob.txt https://bit.ly/37sJqCo 명령해보기!
* brew 를 통해 neofetch 설치 후 실행해보기! ( neofetch 는 CLI 환경 꾸미는 패키지)

| Read, Write, Execute 권한 (사용권한)

ls -l 실행 후 가장 왼쪽의 표현 해석하기

d : directory, 폴더
'-' : not directory, 파일
r : read permission, 읽기 권한
w : write permission, 쓰기 권한
x : execute permission, 실행 권한

첫번째 구간 : user(소유자)
두번째 구간 : group(그룹에 추가된 모든 user)
세번째 구간 : other(소유자가 아닌 모든 user, global 권한 설정이라고 볼 수도 있음)

chmod: 권한을 변경하는 명령어

OS에 로그인한 사용자와, 폴더나 파일의 소유자가 같을 경우에 폴더나 파일의 읽기, 쓰기, 실행 권한을 변경할 수 있다

* 다를 경우, sudo 명령어를 이용해 관리자 권한을 변경할 수 있음!

변경방법

  • Symbolic method : 더하기(+), 빼기(-), 할당(=)과 액세서(accessor) 유형을 표기해서 변경
  • Absolute form : r(4) w(2) x(1) 의 합을 user, group, other 순으로 입력하여 사용

여기서 연습해보자!


| 환경변수

: 환경에 따라 프로그램의 동작에 영향을 줄 수 있는 값들

1. 환경변수 임시 적용하기
(터미널을 종료하면 환경변수가 자동으로 삭제)

  • 지역 환경변수 : 환경변수를 생성한 특정 사용자만 사용할 수 있는 환경변수
    - <변수명=값> 형태 : hello=codestates
  • 전역 환경변수 : 모든 사용자가 사용할 수 있는 환경변수
    - <export 변수명=값> : export urclass="is good"
* 공백이 존재할 경우 값 전체를 따옴표로 감싸줘야함
* 달러사인은 $ 뒤의 문자열이 환경변수라는 의미

2. 환경변수 영구 적용하기
(터미널을 닫거나 재부팅해도 환경변수가 저장되어 사라지지 않음)

  • 지역 환경변수 영구 적용하기
    1. cd ~를 입력하여 홈 디렉토리로 이동 후, ls -al로 전부 조회
    2. nano .zshrc를 입력하여 편집창을 연다
    3. <export 변수명=값> 작성 후 저장
    4. source .zshrc를 입력하여 변경 내용을 적용
    5. echo $변수명 을 입력하여 내용을 출력
  • 전역 환경변수 영구 적용하기
    1. <sudo chmod 777 /디렉토리명/디렉토리명> 으로 파일의 권한을 수정
    2. <nano /디렉토리명/디렉토리명> 으로 입력창을 연다
    3. <export 변수명=값> 작성 후 저장
    4. < source /디렉토리명/디렉토리명> 을 입력하여 변경 내용을 적용
    5. echo $변수명 을 입력하여 내용을 출력
export 키워드를 통해 운영체제 내에 이미 설정되어 있는 환경변수 및 export 키워드를 통해 설정한 환경 변수들의 목록을 확인할 수 있음
profile
백엔드 개발자 김예인입니다.

0개의 댓글