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 → 파일 오픈(없으면 생성함)
- vi filename:
- vi 명령어를 사용하여 "filename"이라는 파일을 엽니다. 이 명령어를 통해 텍스트 파일을 수정하거나 조회할 수 있습니다.
- 파일을 열면 기본적으로 "명령 모드"에 있으며, 텍스트를 편집하려면 "편집 모드"로 전환해야 합니다. 편집 모드로 전환하려면 "i" 키를 누릅니다. 자세한 편집 방법은 vi 편집기의 명령어를 사용하는 방식에 따라 다릅니다.
- vi -r filename:
- vi 명령어에 r 옵션을 추가하여 "filename" 파일을 복구 모드로 엽니다. 이 옵션을 사용하면 비정상적인 종료로 손상된 파일을 복구하려고 할 때 유용합니다. **vi**는 파일을 자동으로 복구하려고 시도하며, 이 옵션은 그러한 복구 시도를 수동으로 수행하도록 합니다.
- vi -R filename:
- vi 명령어에 R 옵션을 추가하여 "filename" 파일을 "읽기 전용 모드"로 엽니다. 이 모드에서는 파일을 편집할 수 없으며, 오로지 파일 내용을 조회할 수 있습니다. 이 모드에서는 파일을 저장하거나 편집할 수 없으므로, 주로 읽기만 필요한 경우에 사용됩니다.
- 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를 다룰 때 조심 할 것
- Caps lock Key
- 어느 모드인지 확인하기
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에 관하여 (0) | 2023.11.02 |
[시스템프로그래밍] 디렉토리 엔트리, hard/symbolic link, stat에 관하여 (0) | 2023.11.02 |
[시스템프로그래밍] 프로그램, 프로세스, 스레드에 관하여 (2) | 2023.10.26 |
[시스템프로그래밍] 리눅스 터미널과 명령어 요약 - 1 (0) | 2023.10.26 |