[시스템프로그래밍] 리눅스 터미널과 명령어 요약 - 2

2023. 10. 26. 18:36·Study/시스템프로그래밍
chmod

사용자 권한을 바꿀 수 있다.

 

-rw-r—-r—

첫 번째: owner에게 주어진 권한

두 번째: 이 파일의 그룹 사용자에게 주어진 권한

세 번째: 그 외의 사람들에게 주어진 권한

 

문법: chmod [user/group/others/all] +(-)[permission].[file(s)]

ex) 모두한테 실행 권한을 준다.

 

예시) chmod a+x test.txt

 

touch

touch test.txt → test.txt 생성

 

ps

ps : 지금 running되는 process를 볼 수 있다.

 

kill

kill: process를 죽이고자 할 때 사용한다.

ex) kill -9(시그널) 1255(프로세스ID)

 

input/output redirection (”piping”)

 

program_a | program_b

  • program_a’s output becomes program_b’s input

program_a > file.txt

  • program_a’s output is written to a file called “file.txt”

program_a < input.txt

  • program_a gets its input from a file called “input.txt”

 

wc

wc : 라인 수 , 단어 수, character 수 출력해줌

 

grep

grep: 특정 단어가 있는 file을 찾고 싶다면 쓴다.

ex) grep “hello world” *.pl

 

gcc command

gcc = GNU C compiler

g++ = GNU C++ compiler

hello.c를 컴파일 하려면 → gcc hello.c

→ A output executable file is a.out

hello라는 이름의 output file을 가지고 있는 hello.c를 컴파일 하려면

→ gcc hello.c -o hello

 

 

vi editor

 

insert mode

  • entry
  • exit

vi edit mode (inline and ex commands)

  • command syntax
  • typical navigation commands
  • typical delete commands
  • typical modify commands
:q

:q → 빠져나가기

:wq → 저장하고 빠져나가기

 

 

vi filename

vi filename → 파일 오픈(없으면 생성함)

  1. vi filename:
    • vi 명령어를 사용하여 "filename"이라는 파일을 엽니다. 이 명령어를 통해 텍스트 파일을 수정하거나 조회할 수 있습니다.
    • 파일을 열면 기본적으로 "명령 모드"에 있으며, 텍스트를 편집하려면 "편집 모드"로 전환해야 합니다. 편집 모드로 전환하려면 "i" 키를 누릅니다. 자세한 편집 방법은 vi 편집기의 명령어를 사용하는 방식에 따라 다릅니다.
  2. vi -r filename:
    • vi 명령어에 r 옵션을 추가하여 "filename" 파일을 복구 모드로 엽니다. 이 옵션을 사용하면 비정상적인 종료로 손상된 파일을 복구하려고 할 때 유용합니다. **vi**는 파일을 자동으로 복구하려고 시도하며, 이 옵션은 그러한 복구 시도를 수동으로 수행하도록 합니다.
  3. vi -R filename:
    • vi 명령어에 R 옵션을 추가하여 "filename" 파일을 "읽기 전용 모드"로 엽니다. 이 모드에서는 파일을 편집할 수 없으며, 오로지 파일 내용을 조회할 수 있습니다. 이 모드에서는 파일을 저장하거나 편집할 수 없으므로, 주로 읽기만 필요한 경우에 사용됩니다.
  4. vi +/pattern filename:
    • vi 명령어에 +/pattern 옵션을 추가하여 "filename" 파일을 열고 "pattern"이라는 텍스트 패턴을 찾아서 파일을 열 때 해당 패턴을 강조 표시합니다. 이 명령어를 사용하면 파일을 열면서 특정 패턴을 바로 찾을 수 있습니다.
    • 예를 들어, vi +/example myfile.txt 명령어를 사용하면 "myfile.txt" 파일을 열 때 "example"라는 패턴을 찾아 표시합니다

 

 

에디터 모드

esc를 누르면 에디터 모드로 간다.

 

:w → save(저장)

:w def → 다른 이름으로 저장하기

:w! def → 같은 이름이 존재하는 경우에, 강제로 덮어쓰기로 저장하기

:r def → 파일을 읽어들이겠다.

:f → 파일에 대한 정보 제공

:q → 빠져 나간다.

:q! → 강제로 빠져나간다.

ZZ or :x → 잘 사용하진 않는다.

:wq → 저장하고 빠져나간다.

 

vi Editor를 다룰 때 조심 할 것
  1. Caps lock Key
  2. 어느 모드인지 확인하기

 

vi Modes

edit

  • default
  • most powerful feature of the vi editor
  • Allows for efficient navigation and editing of existing text.

insert(타이핑 가능)

  • Used to enter text into a file (exited via Esc key)
  • Multiple ways to enter this mode
  • Not efficient for navigation or editing!

 

Insert commands

i <esc> → 인서트 모드로 진입, 인서트 모드를 탈출

o,O → 새로운 line을 밑에 삽입해서 인서트 모드로 진입(대문자 O는 위에)

a,A → 현재 커서 위치 다음부터 편집시작(대문자 A는 현재 문장 끝으로 이동)

대문자 i → 현재 라인의 첫부분에 입력

 

ncm

edit mode general command syntax → ncm

n자리에 숫자를 넣을 수 있다.(명령을 몇 번 반복할지)

c는 명령어를 넣는다.

m에 명령어를 적용할 범위를 넣는다.

 

3dw - delete 3 special character delimited words

dW - delete a single, space, delimited word

 

소문자w는 특수문자도 단어의 구분 기준이다.

 

m(modifier)에 올 수 있는 커맨드

d → 라인 삭제

w → 특수문자로 구분되는 단어 삭제

W → whitespace로 구분되는 단어 삭제

 

} → paragraph 삭제

^ → 현재 라인의 첫 번째까지 삭제

/pattern → 현재 위치부터 위 패턴이 나오는 때까지 삭제

n → 다음 패턴이 나올때까지 삭제

 

fa → delete up to and including a on this line

ta → delete up to (not including) a on this line

 

character를 하나 지울 때는 x를 쓰자.

nx → delete current [and n-1] character

nX → delete previous n character (백스페이스키 생각)

rx → replace current character with x

Rtext → replace text beginning at cursor

cd → Replace based on dimension d(cw replaces a word) use escape to terminate replacement

 

line을 나누고싶다.(문단을 나누고싶다)

→ 나누고 싶은 위치로 커서를 이동하고 r + 엔터

line을 합치고 싶다.

→ 합치고 싶은 위치로 커서를 이동하고 대문자 J

 

navigation commands

h,j,k,l → 왼, 아래, 위 , 오른쪽 방향키

w,W → 다음 단어로 이동

e,E → 다음 단어의 끝으로 이동

b,B → 왼쪽 단어로 이동

(,) → sentence 단위로 이동

{,} → paragraph 단위로 이동

 

현재 줄 navigation commands

0 → 라인의 첫번째 위치

$ → 라인의 끝 위치

^ → 라인의 non-blank 첫번째 위치

n| → n column

/text → Search for text forward

?text → Search for text backward

n → Search for same text again

N → Search for text reverse direction of initial search

 

copy/paste commands

현재 커서가 있는 라인 전체 복사 → 대문자 Y or yy

복사하려는 범위를 지정할 수 있다. → 소문자 y

P, p → 붙여넣기(대문자P → 커서 위쪽, 소문자p → 커서 아래쪽)

 

Substitute/Replace Command

format :[address] s/old/new/[g]^1

 

그 외의 명령어

:set nu → vi editor에서 라인 번호 나타나게 해줌

:set nu! → 라인 번호 사라짐

!cmd → vi editor에서 쉘 명령어 사용하고 싶을 때

:sh → 쉘 화면으로 돌아가고 싶을 때 (vi를 완전히 빠져나가는건 아님)

:f → 작업 중인 화면의 정보

저작자표시 비영리 변경금지 (새창열림)

'Study > 시스템프로그래밍' 카테고리의 다른 글

[시스템프로그래밍] Signals  (1) 2023.12.03
[시스템프로그래밍] pipe에 관하여  (1) 2023.11.02
[시스템프로그래밍] 디렉토리 엔트리, hard/symbolic link, stat에 관하여  (0) 2023.11.02
[시스템프로그래밍] 프로그램, 프로세스, 스레드에 관하여  (2) 2023.10.26
[시스템프로그래밍] 리눅스 터미널과 명령어 요약 - 1  (0) 2023.10.26
'Study/시스템프로그래밍' 카테고리의 다른 글
  • [시스템프로그래밍] pipe에 관하여
  • [시스템프로그래밍] 디렉토리 엔트리, hard/symbolic link, stat에 관하여
  • [시스템프로그래밍] 프로그램, 프로세스, 스레드에 관하여
  • [시스템프로그래밍] 리눅스 터미널과 명령어 요약 - 1
퀵차분
퀵차분
웹 프론트엔드 개발자를 꿈꾸고 있습니다 :)
  • 퀵차분
    QC's Devlog
    퀵차분
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • Frontend (28)
        • HTML, CSS (7)
        • Javascript (3)
        • React (11)
        • Typescript (2)
        • Next.js (4)
      • Node.js (3)
      • Study (40)
        • Modern JS Deep Dive (13)
        • SQL (1)
        • Network (1)
        • 프롬프트 엔지니어링 (4)
        • 인공지능 (9)
        • 시스템프로그래밍 (11)
        • 선형대수학 (1)
      • Intern (4)
      • KUIT (20)
      • Algorithm (48)
        • Baekjoon(C++) (26)
        • Programmers(JavaScript) (22)
      • 우아한테크코스(프리코스) (4)
      • Project (7)
        • PROlog (4)
        • Nomadcoder (2)
      • 생각 (4)
      • Event (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    인공지능
    next.js
    HTML
    javascript
    프론트엔드
    자바스크립트
    오블완
    시스템프로그래밍
    티스토리챌린지
    react
    프롬프트 엔지니어링
    KUIT
    음악추천
    리액트
    타입스크립트
    프로그래머스 자바스크립트
    백준
    typescript
    프로그래머스
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
퀵차분
[시스템프로그래밍] 리눅스 터미널과 명령어 요약 - 2
상단으로

티스토리툴바