INDEX

리눅스 명령어

...파일관리 명령어....................................................1

...네트워크 관리 명령어............................................2

...프로세스 관리 명령어............................................2

...검색명령어...........................................................3

...컴파일 명령어......................................................4

...사용자 관리 명령어...............................................4

VI 명령어

...수정명령어...........................................................5

...검색명령어...........................................................6

...이동명령어...........................................................7

파일관리 명령어
cd	디렉토리를 변경한다
	cd [directory]
	cd .. : 상위디렉토리로 이동 cd or cd ~ : 어느곳에서든지 자기 홈디렉토리로 바로 이동
cp	파일을 복사한다
	cp [option] [file1] [file2] cp [option] [file1] [directory]
	-d : 연결을 보존한다. -p : 속성을 보존한다. -l : 복사를 하는 대신 연결한다. -s : 복사하는 대신 특정 링크를 만든다. -u : 새롭게 갱신된 파일만 복사한다. -v : 작업된 내용을 보여준다.
rm	파일을 지운다
	rm [directory]
	-f : 무조건 지움. 아무런 메시지를 나타내지 않는다. -i : 어떤 작업을 하기 전에 무조건 메시지를 묻는다. -r : 파일을 포함하고 있는 디렉토리도 삭제한다. -v : 작업된 내용을 보여준다.
mkdir	디렉토리를 생성한다
	mkdir [directory]
	-m : 퍼미션 설정을 함께 한다. -v : 작업된 내용을 보여준다.
ls	디렉토리의 내용을 화면에 출력한다
	ls [option]
	-a : .file을 포함한 전 entry를 출력한다. -d : directory명만 출력하며 내용은 출력하지 않는다 -f : 인수를 directory로 해석하며 각각의 슬롯에 있는 directory 및 file명을 출력 -g : 옵션 -l과 같으나 소유자명이 출력되지 않는다 -r : 화일명이나 수정시간을 알파벳 또는 오래된 역순으로 출력 -R : 발견되는 sub-directory의 내용을 순환적으로 출력 -s : 간접블럭을 내포하는 블럭수를 출력 -t : 화일명 대신에 수정된 시간으로 분류 -u : -t 또는 -l option으로 분류하는 중에서 최종접근 시간을 사용
cat	파일의 내용을 출력한다
	cat [option] file_name
	-b : 공백 외의 글자가 있는 모든 행의 개수를 센다. -e : 제어 문자를 ^ 형태로 출력하면서, 각 행의 끝에 $를 추가한다. -vE와 같다. -n : 각 행을 출력하면서 행 번호를 함께 첨부한다. -s : 중복되고 겹치는 빈 행은 하나의 빈 행으로 처리한다. -r : 행바꿈 문자를 제외한 제어 문자를 ^ 형태로 출력한다. -vT와 같다. -u : 유닉스 호환성을 위해 추가된 옵션으로서 무시된다. -v : tab과 행바꿈 문자를 제외한 제어 문자를 ^ 형태로 출력한다. -E : 각 행마다 끝에 $ 문자를 출력한다. -T : 시로서 탭(tab) 문자를 출력한다. -A : -vET 옵션을 사용한 것과 같은 효과를 가진다.

파일 관리 명령어
chmod	파일의 퍼미션을 제어
	chmod [option] [file]
	-c : 실제로 파일의 권한이 바뀐 파일만 자세히 기술한다. -f : 파일의 권한이 바뀔 수 없어도 에러 메시지를 출력하지 않는다. -v : 변경된 권한에 대해서 자세히 기술한다. -R : 디렉토리와 파일들의 권한을 재귀적으로 모두 바꾼다.
chown	파일의 소유권을 다른 사람에게로 변경시킨다
	chown [option] [user file]
	-c : 실제로 파일의 권한이 바뀐 파일만 자세히 기술한다. -f : 파일의 권한이 바뀔 수 없어도 에러 메시지를 출력하지 않는다. -v : 변경된 권한에 대해서 자세히 기술한다. -R : 디렉토리와 파일들의 권한을 재귀적으로 모두 바꾼다.

네트워크 관리 명령어
ping	네트워크가 통신이 잘되고 있는지를 확인한다.
	ping hostname
ifconfig	내 네트워크의 정보를 표시한다
	if config
whois	도메인에 대한 정보 출력
	whois domain

프로세스 관리 명령어
ps	현재 활성화된 프로세스 보여주기
	ps aux | grep mysql [프로세스 확인]
kill	프로레스를 종료
	kill 15 PID
top	실행중인 모든 프로세스 보여주기
	top

검색 명령어
grep	파일안의 패턴을 찾기
	grep [option] expression! [file]
	-A : [숫자] 라인에서 패턴과 매치되는 문자열을 찾아서 그 이상의 라인을 전부 보여줍니다. -B : [숫자] 라인에서 패턴과 매치되는 <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />문장열을 찾아서 그 이하의 라인을 전부 보여줍니다. -b : 매치되는 라인과 그 크기(bite)를 출력합니다. -c : 매치되는 개수를 출력합니다. -f : 파일로부터 패턴을 입력받아 들입니다. -n : 매치되는 라인과 그 라인수를 출력합니다. -v : 매치되지 않는 라인을 출력합니다. -w : 주어진 단어와 완전히 매치되는 라인을 출력합니다. -l : 매치되는 내용이 있는 파일의 이름만을 표시한다. -h : 매치되는 내용을 찾은 파일의 이름을 표시하지 않는다. -i : 대소문자 구분을 하지 않는다. -e expression! : 표현이 하이픈 문자로 시작될 때 사용한다. -f file : 규칙적인 식(grep) 또는 리스트열(fgrep)이 화일로부터 취한다 -s : 읽지못하는 화일이거나 존재하지 않는 화일에 대한 에러 메세지 출력을 억제

검색 명령어
find	특정파일이나 디렉토리를 탐색하여 찾는다
	find path_list expression!
	-name 파일명 : 찾고자 하는 파일의 이름을 정한다. 와일드 카드도 가능하다. -perm 모드 : 파일권한(permission)이 일치되는 것을 찾는다. 원하는 권한은 ls로 볼 수있는 형태와 같이 지정한다. -type ? : 형태가 같은 파일을 찾는다. 물음표(?) 부분에 디렉토리는 d, 파이프는 p, 심볼릭 링크는 l, 소켓은 s, 블록 파일은 b, 일반 파일은 f 등의 기호를 사용한다. -links ? : 특정 개수의 링크를 가진 파일을 찾는다. 물음표 부분에 링크의 숫자를 표기한다. -size ? : 파일의 크기가 일치하는 것을 탐색한다. 파일 크기는 블록단위로 물음표 부분에 지정한다. 한 블록은 512바이트로 내정되어 있지만 블록 숫자 뒤에 단위로 k자를 붙이면 1키로바이트 크기의 블록 숫자로 간주된다. -user 사용자 : 파일 사용자의 ID에 따라서 검색한다. 로그인 이름이나 번호 모두가 가능하다. -atime ? : 최근 며칠내에 엑세스한 파일을 검색한다. 날짜수는 ?에 명시한다. -exec 명령 : 원하는 검색 조건에 맞는 파일을 찾으면 명시된 명령을 실행한다. 명령의 끝은 \;을 사용하여 끝낸다. find가 검색해낸 파일의 이름을 인수로 사용하고 싶다면 그 위치에 {}를 사용한다. -newer 파일 : 어떤 파일보다 최근에 갱신된 모든 파일을 검색한다. -cpio device : 현재의 화일은 cpio(1)의 문법(5120byte 레코드)으로 장치에 써넣는다 -ctime n : 화일이 n 날짜내에 변경되면 참 -group gname: 화일에 gname에 포함되어 있으면 참 -mtime n : 화일이 n 날짜 이내에 수정되면 참 -ok cmd : 명령어 라인을 의문부호를 선두에 부과하여 화면에 출력하며 만약 사용자가 y를 칠 경우에만 실행 가능

컴파일 명령어
cc	c언어를 컴파일하는 컴파일러
	cc [option] file
	-c : compile의 linkage editor 단계를 억제한다 -E : 지정된 C program에 대해 cpp만을 실행하고 결과는 표준출력하지 않는다 -f : C program에서 부동소수점을 포함하는 코드를 linkage editor시킨다 -o : outfile outfile이라는 화일명으로 목적프로그램을 저장하며 생략시는 a.out에 저장 -s : C program을 compile 하지만 assemble하지 않으며 어셈블리 언어 출력은 .S가 붙은 화일에 저장

사용자 관리 명령어
passwd	패스워드를 관리하는 명령어
	passwd [user]
whoami	현재 접속한 계정명 확인 및 접속자의 정보를 출력
	whoami
who	현재의 시스템에 접속한 사용자의 이름이나 로그온 정보를 보여준다
	who [ -uTHqs ] [로그온 정보파일 ]
	-u : 현재 시스템에 누가 로그온되어 있는지 보여준다. -T : 사용자의 터미널이 메시지를 보낼 수 있는지를 알려준다. +기호는 메시지를 쓸 수 있고, -는 그렇지 않음을 보여준다. -H : 헤더 라인을 프린트한다. -q : 사용자 이름과 카운트가 구분된 목록을 보여줌, 다른 옵션은 무시된다. -s : 호환을 위해 포함된 옵션으로 무시된다

vi 명령어

글 입력
a	커서 위치의 다음 칸부터부터 끼워넣기
A	커서가 있는 줄의 끝에서부터 끼워넣기
i	커서 위치부터 끼워넣기
I	커서가 있는 줄의 맨 앞에서부터 끼워넣기
o	커서 바로 아래에 줄을 만들고 끼워넣기
O	커서 바로 위에 줄을 만들고 끼워넣기

글 수정
r	커서 위치의 한 글자 교체
R	커서 위치부터 <ESC>를 누를때까지 다른 글자로 교체
s, cl	커서 위치의 글자를 한개를 여러 글자로 교체
ch	커서 바로 앞의 글자를 한개를 여러 글자로 교체
cw	커서 위치의 한 단어를 교체
c0	커서 위치부터 줄의 처음까지 교체
C, c$	커서 위치부터 줄의 끝까지 교체
cc	커서가 있는 줄을 교체
cj	커서가 있는 줄과 그 다음 줄을 교체
ck	커서가 있는 줄과 그 앞줄을 교체

글 삭제
x, dl	커서 위치의 글자 삭제
X, dh	커서 바로 앞의 글자 삭제
dw	한 단어를 삭제
d0	커서 위치부터 줄의 처음까지 삭제
D, d$	커서 위치부터 줄의 끝까지 삭제
dd	커서가 있는 줄을 삭제
dj	커서가 있는 줄과 그 다음 줄을 삭제
dk	커서가 있는 줄과 그 앞줄을 삭제

복사 &붙이기
yw	커서 위치부터 단어의 끝까지 복사
y0	커서 위치부터 줄의 처음까지 복사
y$	커서 위치부터 줄의 끝까지 복사
yy	커서가 있는 줄을 복사
yj	커서가 있는 줄과 그 다음 줄을 복사
yk	커서가 있는 줄과 그 앞줄을 복사
p	커서의 다음 위치에 붙여넣기
P	커서가 있는 위치에 붙여넣기

패턴 검색 및 교체
/[pattern]<CR>	현재 위치에서부터 아래 방향으로 패턴 검색
?[pattern]<CR>	현재 위치에서부터 위쪽 방향으로 패턴 검색
n	검색하던 방향으로 계속 패턴 검색
N	검색하던 반대 방향으로 계속 패턴 검색

:s/old/new<CR>	현재 줄의 처음 old를 new로 교체
:s/old/new/g<CR>	현재 줄의 모든 old를 new로 교체
:1,20s/old/new/g<CR>	1부터 20번째 줄까지 모든 old를 new로 교체
:-2,+4s/old/new/g<CR>	커서 2줄 위부터 4줄 아래까지 old를 new로 교체
:%s/old/new/g<CR>	문서 전체에서 old를 new로 교체
:%s/old/new/gc<CR>	문서 전체에서 old를 new로 확인하며 교체
:g/pattern/s/old/new/g<CR>	pattern이 있는 모든 줄의 old를 new로 교체
:g/pattern/s//new/g<CR>	:%s/old/new/g<CR>과 동일

정규식(Regular Expression)
^	줄의 처음을 나타낸다.
$	줄의 끝을 나타낸다.
.	아무 글자나 한 글자를 나타낸다.
[...]	[과 ] 사이에 있는 글자 중 하나
*	* 앞의 내용이 0번 이상 반복됨
\{min,max\}	min 이상 max 이하의 횟수만큼 반복됨

커서 이동
h	한칸 왼쪽으로 이동	l	한칸 오른쪽으로 이동
j	한줄 아래로 이동	k	한줄 위로 이동
w	다음 단어의 첫 글자로 이동	W	다음 단어의 첫 글자로 이동
b	이전 단어의 첫 글자로 이동	B	이전 단어의 첫 글자로 이동
e	단어의 마지막 글자로 이동	E	단어의 마지막 글자로 이동
^	그 줄의 첫 글자로 이동	$	그 줄의 마지막 글자로 이동
0	그 줄의 처음으로 이동	<CR>	다음 줄의 첫 글자로 이동
+	다음 줄의 첫 글자로 이동	-	윗줄의 첫 글자로 이동
(	이전 문장의 첫 글자로 이동	)	다음 문장의 첫 글자로 이동
{	이전 문단으로 이동	}	다음 문단으로 이동

화면 이동
H	커서를 화면의 맨 위로	z<CR>	현재 줄을 화면의 맨 위로
M	커서를 화면의 중앙으로	z.	현재 줄을 화면의 중앙으로
L	커서를 화면의 맨 아래로	z-	현재 줄을 화면의 맨 아래로
[n]H	커서를 위에서 [n]번째 줄로	[n]L	커서를 아래에서 [n]번째 줄로
Ctrl+u	반 화면 위로 스크롤	Ctrl+b	한 화면 위로 스크롤
Ctrl+d	반 화면 아래로 스크롤	Ctrl+f	한 화면 아래로 스크롤
gg, 1G	문서의 맨 처음 줄로	G	문서의 맨 마지막 줄로
[n]G	[n]번째 줄로 이동

기타
u	작업 취소(undo)
U	그 줄에 행해진 작업 모두 취소
Ctrl+r	작업 재실행(redo)
.	조금 전에 했던 명령을 반복
J	현재 줄과 아래 줄을 연결
~	대문자를 소문자로, 소문자를 대문자로 바꿈
%	괄호의 반대쪽 짝으로 이동
Ctrl+l	현재 화면을 지우고 다시 그림
Ctrl+g	파일에 관한 정보를 표시

끝줄 모드의 사용
:q<CR>	vi를 종료함
:w<CR>	편집중인 문서를 저장
:w [file]<CR>	편집중인 문서를 [file]로 저장
:w >>[file]<CR>	편집중인 문서를 [file]에 덧붙여서 저장
:e [file]<CR>	[file]을 불러옴
:e#<CR>	이전에 편집하던 파일을 불러옴
:e%<CR>	현재 파일을 다시 불러옴, 즉 저장하지 않은 작업 취소
:r [file]<CR>	[file]을 커서위치에 끼워넣기
:set [option]<CR>	[option]을 켜기
:set [nooption]<CR>	[option]을 끄기
:![command]<CR>	[command] 실행
:r ![command]<CR>	[command] 실행 결과를 끼워넣기