Linux 개념 & Terminal 명령어

4547 단어 TILTIL

1. Linux

FHS(Filesystem Hierarchy Standard)

  • root(/)
    루트 폴더. 최상위 경로.

  • /home (~)
    윈도우 : C드라이브/Users/사용자명 ⇒ 바탕 화면, 다운로드, 내 문서
    유저의 공간. 가장 빈번하게 사용하게 되는 경로. Home 디렉토리 이외의 다른 디렉토리 들은 주로 system directory 라고 하는데, 즉 리눅스의 운영과 관리에 관련한 파일들이 존재하는 디렉토리들. ~ 기호로 곧바로 접근할 수 있다.

  • /bin & /sbin
    윈도우 : C드라이브/windows/system32 폴더
    Binary의 약자. OS의 최소한의 구동을 위해 필요한 프로그램이 들어있는 폴더. cat, chmod, chown, cp, date, echo, kill, ln, ls, mkdir, etx 와 같은 기초적인 프로그램들이 포함.
    sbin 폴더는 bin과 유사하지만 오직 루트유저 전용 프로그램 포함.

  • /usr
    윈도우 : C드라이브/Users/사용자1
    user의 약자. 각 유저 이름에 해당하는 폴더이름이 존재. 각 폴더마다 bin, sbin, shared, lib과같이 각 유저들이 사용할 수 있는 폴더가 생성되어 있음. 각각의 유저별로 다른 파티션으로 존재하기 때문에 다른 사용자들이 사용할 수 있도 록 마운트할 수 있지만 이 경우 수정할 수는 없음.

PATH

  • / : root 디렉토리
  • ~ : home 디렉토리
  • 절대 경로 : Absolute path는 이름 그대로 절대적 경로. 경로를 표현하는 방식이 root 디렉토리 부터 시작한다는 점에서 "완전한"의 의미에 더욱 가까움. (ex. /home/eun/bin)
  • 상대 경로 : Relative path. 현재 자신의 위치를 기반으로 움직이는 경로. (ex. cd ..)
  • . : 현재 경로
  • .. : 상위 경로
  • 환경 변수
    OS도 프로그램이기 때문에 OS가 동작하기 위해 변수가 필요
    env 명령어로 linux의 환경변수 확인

2. 터미널

터미널에서 할 수 있는 것

텍스트 기반으로 명령어를 입력할 수 있는 CLI(command-line interface)역할을 한다. 모든 명령어를 구현할 수 있다.

터미널 실행하기

Mac OS는 Spotlight (⌘ + Space)를 불러 “Terminal”을 찾아 실행할 수 있다.
Linux는 “terminal” 을 찾아 실행하면 된다. 단축기 Ctrl + Alt + T를 이용해 실행할 수 있다.
Windows 10은, PowerShell이라는 터미널을 실행한다.

기본 명령어

  • vi : 파일 편집 에디터 활성화(파일명.확장자)
  • cd : 폴더이동 cd (경로) → . .. /usr (change directory)
  • ls : 현재 경로 내 파일 목록 출력 (list segments)
    ls -al
  • pwd : 현재 경로 출력 (print working directory)
  • mkdir : 디렉토리 생성 (make directory)
  • rmdir : 디렉토리 제거
  • rm : 파일 / 디렉토리제거
  • rm -rf : 묻지 않고 디렉토리 모두 제거 (하지말것, 복구가 어려움)
  • cp : 파일 / 디렉토리 복사
  • mv : 파일 / 디렉토리 이동
  • cat : 터미널에 파일 내용 출력 (concatenate)
  • touch : 파일 생성 및 날짜정보 변경 touch readme.md
  • chmod : 파일 / 디렉토리 권한 설정 change mode (chmod u+x readme.md)

파일 편집 명령어

vi : 파일 편집 에디터 활성화

  • i : 편집모드(끼워넣기/insert)
  • esc
  • Shift + ;
  • wq : write & quite
    입력모드에서 다시 명령모드로 가려면 [ESC]키

vi에서 커서 움직이는 방법

H : ←
J : ↓
K : ↑
L : →
gg : 파일의 맨 위

커서 & 라인 기준으로 움직이는 방법

G : 파일의 맨 아래
a : 현재 커서의 오른쪽
A : 현재 라인의 맨 끝부분
i : 현재 커서의 왼쪽
I : 현재 라인의 왼쪽
o : 현재 라인의 아래
O : 현재 라인의 위

문장 컨트롤

→ y는 "복사"의미를 가지고 있다
yy : 현재 커서 라인 복사
yy를 이용해서 문장을 number의 라인을 복사할 수 있다
ex) 3yy (현재 커서부터 아래로 3라인을 복사한다)

yw : 단어 복사(단어위에 커서를 올리고 실행)
p : 현재 커서 아래에 붙여넣기
P : 현재 커서 위 에 붙여넣기
dd : 라인 삭제
→ d는 "삭제"의미를 가지고 있다.
ex) 3dd (햔재 커서부터 아래로 3줄 삭제한다)
u : 실행취소(undo)
ctrl+r : 다시실행(redo)

실행모드

명령모드 → 실행모드
[:을 붙여주는 명령어]
:q : 종료
(파일 변경시 저장하지 않고 나가면 에러메세지 출력)
:q! : 저장하지 않고 종료
:w : 저장

:wq : 저장후 종료
:set nu(:se nu) : 해당 줄에 인덱스들이 보임
:se nonu는 인덱스는 보이지 않음
-->> : num번째 줄로 이동
ex) :5 : 5번째 줄로 이동
:,y : num1~num2 라인 복사
:,d : num1~num2 라인 삭제

%는 전체

:%y : 전체복사
:%d : 전체삭제

$마지막 라인

:$y
:$d

y자리에 d가 d자리에 y가 들어갈 수 있다.

찾기

/copy : 찾기(아래방향)
?copy : 찾기(위의방향)
=> 이때 단어를 하나찾고 기능을 멈춘다

중복된 단어 찾기

n 같은방향으로 탐색
N 반대방형으로 탐색

바꾸기

:범위s/찾을내용/바꿀내용/옵션
ex) 2~4번쨰 라인에서 abc를 찾고 ABC로 변경하겠다
:2,4s/abc/ABC
이때 중복된 값은 한개만 치환되기에
커서를 그 문장에 두고
:s/abc/ABC/g
option g(global)옵션을 사용한다
이렇게 되면 라인안에서 abc문자가 ABC로 모두 바뀌게 된다.
모두 바꾸고 싶을때는
:%s/abc/ABC/g
전체를 나타내는 %와 option g를 같이 사용한다.

vi 실행 중 커멘드 실행하기

:!<command>
:! ls /root

하면 /root의 내용이 출력되고
ENTER를 누르면 다시 vi편집기로 돌아갑니다.

vi안에서 다른 vi열기

:sp : 다른 파일도 열겠다
cat > : 파일 출력
cat : 파일 편집 (나올 때 cmd + c)
vi : 파일 편집(실행/입력/명령모드)

좋은 웹페이지 즐겨찾기