DINGA DINGA
article thumbnail
728x90

현재 경로명 출력: pwd

현재 디렉토리의 절대 경로명을 출력한다.

 

시스템 정보 확인: hostname, uname

hostname: 시스템의 이름을 확인, 변경한다.

uname: 시스템의 이름(커널)을 출력한다. -a 옵션을 붙여 커널명, 호스트명, 커널 릴리즈, 버전, 머신, 프로세스, 하드웨어 플랫폼, 운영체제를 출력한다.

 

패스워드 변경: passwd

비밀번호를 타이핑해도 화면상에는 출력되지 않는다.

 

화면 정리: clear

 

화면이 정리된다.

 

온라인 매뉴얼: man

매뉴얼(도움말).

 

디렉터리 생성: mkdir

중간 디렉토리 자동 생성: -p

 

디렉터리 삭제: mkdir

 

디렉터리 이동: cd

'gae' 디렉토리로 이동한 모습이다.

 

 

디렉터리 내용 확인: ls

'gae' 디렉토리 안에 'gae1' 디렉토리를 생성하고 ls를 통해 내용을 확인한 모습이다.

 

 

간단한 파일 만들기: gedit, cat, touch

gedit: gui기반 문서편집기.

$ gedit [파일이름] &

 

cat: 표준 입력 내용을 모두 파일에 저장하고, 파일이 없으면 새로 만든다.

$ cat > [파일]

 

touch: 파일 크기가 0인, 이름만 있는 빈 파일을 생성한다.

$ touch [파일]

 

 

파일 내용 출력: cat, more, head, tail

cat: 파일(들)의 내용을 그대로 화면에 출력한다. 파일을 지정하지 않으면 표준입력 내용을 그대로 화면에 출력한다.

$ cat [-n] 파일*

 

more: 파일(들)의 내용을 페이지 단위로 화면에 출력한다.

$ more 파일+ 

 

head: 파일(들)의 앞부분을 화면에 출력한다. 파일을 지정하지 않으면 표준입력 내용을 대상으로 한다.

$ head [–n] 파일*

 

tail: 파일(들)의 뒷부분을 화면에 출력한다. 파일을 지정하지 않으면 표준입력 내용 을 대상으로 한다.

$ tail [-n] 파일*

 

([-n] 옵션은 줄번호 표시)

 

파일 복사: cp

$ cp [-i] 파일1 파일2: 파일1을 파일2에 복사한다. -i는 대화형 옵션이다.

$ cp [–r] 디렉터리1 디렉터리2: 디렉터리1 전체를 디렉터리2에 복사한다.

 

 

파일 이동: mv

$ mv 파일 디렉터리: 파일을 지정된 디렉터리로 이동한다.

$ mv 파일1 ... 파일n 디렉터리: 여러 개의 파일들을 지정된 디렉터리로 모두 이동한다.

$ mv [-i] 파일1 파일2: 파일1의 이름을 파일2로 변경한다. -i는 대화형 옵션이다.

 

 

파일 삭제: rm

$ rm [-i] 파일+: 파일(들)을 삭제한다. -i는 대화형 옵션이다.

 

$ rm [-ri] 디렉터리: -r은 리커전 옵션으로 디렉터리 아래의 모든 것을 삭제한다.

 

 

파일 종류: file

파일의 종류에 대한 자세한 정보를 출력한다.

$ file 파일 

 

 

접근 권한 변경: chmod

파일 혹은 디렉터리의 접근권한을 변경한다.

-R 옵션을 사용하면 지정된 디렉터리 아래의 모든 파일과 하위 디렉터리에 대해서도 접근권한을 변경한다.

$ chmod [-R] 접근권한 파일 혹은 디렉터리

 

사용자범위  연산자     권한

[u|g|o|a]+    [+|-|=]    [r|w|x]+

  

접근권한의 8진수 표현: 권한이 있으면 1, 없으면 0으로 표시

 

 

파일 찾기: find

옵션의 검색 조건에 따라 지정된 디렉터리 아래에서 해당되는 파일들을 모두 찾아 출력한다.

$ find 디렉터리 [-옵션] 

 

 

파일 필터링: grep

파일(들)을 대상으로 지정된 패턴의 문자열을 검색하고, 해당 문자열을 포함하는 줄들을 출력한다.

$ grep 패턴 파일* 

 

옵션

-i: 대소문자 무시

-l: 해당 패턴이 들어있는 파일 이름을 출력

-n: 각 줄의 줄번호도 함께 출력

-v: 명시된 패턴을 포함하지 않는 줄을 출력

-c: 패턴과 일치하는 줄 수를 출력

-w: 패턴이 하나의 단어로 된 것만 검색

 

정규식

?: 한 글자 혹은 없음을 의미

.: 임의의 한 문자를 의미

*: 바로 앞의 것을 0번 이상 반복

[]: [과 ] 사이의 문자 중 하나 (- 기호: 문자의 범위를 지정)
[^...]: [^ 과 ] 사이의 문자를 제외한 나머지 문자 중 하나

^,$: 각각 줄의 시작과 끝을 의미

 

 

파일 정렬: sort

텍스트 파일(들)의 내용을 줄 단위로 정렬한다. 옵션에 따라 다양한 형태로 정렬한다.

$ sort [-옵션] 파일* 

위의 예시처럼 -r 옵션을 이용하면 내림차순으로 정렬할 수 있다.

 

옵션

-b: 앞에 붙는 공백 무시

-c: 이미 정렬된 상태인지 확인

-d: 숫자, 문자, 공백만 비교하여 사전식 순서로 정렬

-f: 대소문자를 구분하지 않고 정렬

-n: 숫자 문자열의 숫자 값에 따라 비교하여 정렬

-r: 역순(내림차순)으로 정렬

-t 문자: 지정된 문자를 필드 구분자로 사용

-o 출력파일: 정렬된 내용을 지정된 파일에 저장

 

 

파일 비교: cmp, diff

$ cmp 파일1 파일2: 파일1과 파일2가 같은지 비교한다.

두 파일이 같으면 아무것도 출력하지 않고, 다르면 서로 달라지는 위치를 출력한다.

위의 예시에서 siss_1.txt는

1

2

3

siss_2.txt는

a

b

c

이다.

 

$ diff [-i] 파일1 파일2: 파일1과 파일2를 줄 단위로 비교하여 그 차이점을 출력한다. -i 옵션은 대소문자를 무시하여 비교한다.

 

 

파일 나누기: split

하나의 입력파일을 일정한 크기의 여러 개의 작은 파일들로 분할한다. -l n 옵션 을 이용하여 분할할 줄 수를 지정할 수 있다.

$ split [-l n] 입력파일 [출력파일] 

 

 

 

파일 합병: cat, paste

$ cat 파일1 파일2 > 파일3: 파일1과 파일2의 내용을 붙여서 새로운 파일3을 만들어 준다.

 

$ paste [ -s ][ -d구분문자 ] 파일*: 여러 파일들을 병합하여 하나의 파일을 만들어 준다.

-s : 한 파일 끝에 다른 파일 내용을 덧붙인다.

-d구분문자 : 어떠한 문자로 열을 구분하는지 지정한다. 기본값은 탭 문자이다.

 

 

gcc 컴파일러

c프로그램을 컴파일한다. 옵션을 사용하지 않으면 실행파일 a.out를 생성한다.

$ gcc [-옵션] 파일

 

 

gdb (GNU debugger)

가장 대표적인 디버거이다. 실행파일을 이용하여 디버깅 모드로 실행한다.

$ gdb [실행파일]

 

주요 기능: 정지점(breakpoint) 설정, 한 줄씩 실행, 변수 접근 및 수정, 함수 탐색, 추적(tracing) 등

 

소스보기 : I

정지점 : b, clear, d

프로그램 수행: r 인수 (명령줄 인수를 받아 프로그램 수행), k(강제 종료), n(멈춘 지점에서 다음 줄을 수행하고 멈춤), s(n가 같은 기능, 함수 호출 시 함수 내부로 진입), c(정지점을 만날 때 까지 계속 수행), u(반복문에서 빠져나옴), finish(현재 수행하는 함수의 끝으로 이동), return(현재 수행 중인 함수를 빠져나옴), quit(종료)

변수 값 프린트 : p

 

 

vi 에디터

기본 텍스트 에디터. 명령 모드와 입력 모드가 구분되어 있으며, 명령모드로 시작한다.

마지막 줄 모드

:wq   작업 내용을 저장하고 종료 (ZZ와 동일한 기능)

:q     아무런 작업을 하지 않은 경우의 종료

:q!    작업 내용을 저장하지 않고 종료

 

커서 이동

h, ← : 한 칸 왼쪽                                j, ↓: 한 칸 아래쪽

k, ↑: 한 칸 위쪽                                l, → : 한 칸 오른쪽

BACKSPACE : 왼쪽으로 한 칸            SPACE : 오른쪽으로 한 칸

- : 이전 줄의 처음(명령모드)                    + : 다음 줄의 처음 (명령모드)

RETURN : 다음 줄의 처음(명령모드)          0 : 현재 줄의 맨 앞(명령모드)

$ : 현재 줄의 끝(명령모드)                      ^ : 현재 줄의 첫 글자(명령모드)

W : 다음단어의 첫 글자(명령모드)            B : 이전단어의 첫 글자(명령모드)

 

화면 이동

^F : 한 화면 아래로       ^B : 한 화면 위로

^D : 반 화면 아래로      ^U : 반 화면 위로

 

특정 줄로 이동

nG : n번째 줄로 이동          1G : 첫 줄로 이동하기

G : 마지막 줄로 이동하기      :n : n번째 줄로 이동

 

탐색(search)

/탐색패턴 : forward 탐색

?탐색패턴 : backward 탐색

 

입력 모드로 전환

i : 커서 위치 앞에 삽입            a : 커서 위치 뒤에 삽입

I : 현재 줄의 앞에 삽입            A : 현재 줄의 뒤에 삽입

o : 현재 줄의 아래에 전개        O : 현재 줄의 위에 전개

 

현재 커서를 중심으로 수정

r : 단지 한 글자만 변경             R : 입력하는 대로 겹쳐 쓰기

s : 현재 글자 삭제, 삽입 상태     C : 커서로부터 줄 끝까지 변경 (커서로 부터 줄 끝까지 지우고 삽입)

cc : 현재 줄 전체를 변경           cw : 현재 단어를 삭제하고 변경

 

삭제

x : 커서가 있는 문자 지우기        X : 커서의 왼쪽 문자 지우기

D : 커서부터 줄끝까지 지우기     dd : 현재 줄의 전체를 지우기

:n,m d : n~m번째 줄 삭제

 

대치 명령

:s/패턴/스트링 : 현재 줄에서 대치            :n,m s/패턴/스트링 : 지정된 줄 범위에서 대치 

:n s/패턴/스트링 : 지정된 줄(n)에서 대치   s/패턴/스트링/g : 각 줄의 해당되는 모든 단어 대치

 

수행 취소 / 재수행

u : 방금 전 수행 내용 취소(Undo)

U : 현재 줄 수행 내용을 취소

. : 방금 전 수행 내용을 반복(Redo)

 

줄 내용 복사(copy)

nY : 현재 줄에서부터 n개의 줄을 복사

:n,m y : n번째 줄에서 m번째 줄까지를 버퍼에 복사

 

마지막으로 삭제/복사한 내용 붙이기(put)

P : 버퍼 내용을 커서의 뒤(혹은 아래)에 삽입

p : 버퍼 내용을 커서의 앞(혹은 위)에 삽입

 

다른 파일 편집

:e 파일이름 : 현재 파일 대신에 주어진 파일 열기

:e! 파일이름 : 저장 여부를 점검하지 않고 파일 변경

:e# : 이전 파일을 다시 열기

 

줄 번호 붙이기

:set number

:se nu

 

줄 번호 없애기

:set nonumber

:se non

 

편집기 내에서 쉘 명령어 수행

:!ls

:!cat

728x90