Linux

홍찬우·2023년 7월 24일
0
post-custom-banner

대표적인 Linux 배포판

  1. Debian

  2. Ubuntu

  3. Redhat

  4. CentOS



Shell Command

쉘의 종류

Shell

  • 사용자가 문자를 입력해 컴퓨터에 명령할 수 있도록 하는 프로그램

sh

  • 최초의 쉘

bash

  • Linux 표준 쉘

쉘 UX

username@hostname:current folder

  • hostname : 컴퓨터 네트워크에 접속된 장치에 할당된 이름
  • host : 우리 컴퓨터

기본 쉘 커맨드

man

  • manual의 약자
  • 쉘 커맨드의 매뉴얼 문서를 보고 싶은 경우
  • e.g., man python → 파이썬 매뉴얼 문서를 볼 수 있음

mkdir

  • make directory, 폴더 생성
  • mkdir 폴더 이름

ls

  • list segments
  • 현재 접근한 폴더의 파일 확인
  • 옵션
    • -a : 전체 파일 출력
    • -l : 퍼미션, 소유자, 만든 날짜, 용량까지 출력
    • -h : GB, MB 단위로 표현

pwd

  • print working directory
  • 현재 폴더 경로를 절대 경로로 보여줌

cd

  • change directory
  • 폴더 변경, 폴더 이동

echo

  • python print처럼 터미널에 텍스트 출력
    • echo “hi”
  • echo 쉘 커맨드 입력 시 쉘 커맨드의 결과를 출력
    • ` : backtick
    • echo pwd

cp

  • copy, 파일 또는 폴더 복사
  • -r 옵션을 주면 디렉토리 내 파일도 모두 복사

vi

  • vim 편집기로 파일 생성
  • command mode, insert mode, last line mode

bash

  • bash로 쉘 스크립트 실행

sudo

  • 관리자 권한으로 실행

mv

  • 파일, 폴더 이동 또는 이름 변경

cat

  • concatenate, 특정 파일 내용 출력
  • 여러 파일을 인자로 주면 합쳐서 출력
  • 저장하고(overwrite) 싶은 경우 > , 추가하고(append) 싶은 경우 >>

history

  • 최근 입력한 쉘 커맨드 히스토리 출력
  • history 결과에 느낌표를 붙이면 다시 실행 가능

find

  • 파일 및 디렉토리 검색 시 사용
  • find . -name “File” : 현재 폴더에서 File 이름을 갖는 파일 검색

export

  • 환경 변수 설정
  • export water=”물”
    • echo $water 시 “물” 출력
  • 매번 쉘을 실행할 때마다 환경변수를 저장하고 싶으면 .bashrc, .zshrc에 저장
  • source ~/.bashrc
    • Linux 환경 설정을 재로그인하지 않고 즉시 적용하고 싶은 경우 source 사용

alias

  • 별칭으로 설정
  • alias ll=’ls -l’
    • ll 입력하면 ls -l 실행

tree

  • 폴더 하위 구조를 계층적으로 표현
  • tree -L 2
    • 2단계까지 보여줌


head, tail

  • 파일의 앞, 뒤 n개 행 출력

sort

  • 오름차순 정렬

uniq

  • 중복된 행이 연속으로 있는 경우 중복제거
  • sort와 같이 사용
  • cat fruits txt | sort | uniq

grep

  • 파일에 주어진 패턴 목록과 매칭되는 라인 검색
  • grep 옵션 패턴 파일명

cut

  • 파일에서 특정 필드 추출
  • cat cut_file | cut -d : -f 1, 7
    • cut_file 파일에서 :로 나눠 1, 7번째만 가져옴


표준 스트림

Unix에서 동작하는 프로그램은 커맨드 실행 시 3개의 Stream 생성

  • stdin : 0으로 표현, 입력(비밀번호, 커맨드 등)

  • stdout : 1로 표현, 출력 값(터미널에 나오는 값)

  • stderr : 2로 표현, 디버깅 정보나 에러 출력


Redirection

  • 프로그램 출력을 다른 파일이나 스트림으로 전달
  • > : 덮어쓰기, >> : 맨 아래에 추가하기

Pipe

  • 프로그램의 출력을 다른 프로그램의 입력으로 사용
    • A의 output을 B의 input으로 사용
    • ls | grep “vi”
      • ls의 output을 grep의 input으로 사용
    • ls | grep “vi” > output.txt
      • 결과를 다시 output.txt에 저장


서버에서 자주 사용하는 쉘 커맨드

ps

  • process status
  • 현재 실행되고 있는 프로세스 출력

curl

  • Client URL
  • 웹 서버를 작성한 후 요청이 제대로 실행되는지 확인

df

  • 현재 사용중인 디스크 용량 확인
  • df -h : 사람이 읽기 쉬운 형태로 출력

scp

  • SSH를 이용해 네트워크로 연결된 호스트 간 파일을 주고 받는 명령어
  • local → remote 또는 remote → remote 파일 전송

nohup

  • 터미널 종료 후에도 계속 작업이 유지하도록 실행
  • nohup python3 app.py &
  • nohup으로 실행될 파일은 퍼미션이 755여야 함
  • 종료는 ps ef | grep app.py로 pid를 찾음
    • 그 후 kill -9 pid로 프로세스 kill
  • 로그는 nohup.out에 저장

chmod

  • 파일의 권한 변경



쉘 스크립트

  • .sh파일을 생성하고, 그 안에 쉘 커맨드 추가
  • 쉘 커맨드의 조합

#!/bin/bash

  • Shebang
  • 스크립트를 bash shell로 해석







※ 모든 이미지 및 코드 출처는 네이버 커넥트재단 부스트캠프 AI Tech 5기입니다. ※

profile
AI-Kid
post-custom-banner

0개의 댓글