유닉스 명령어
[디렉토리 계층 구조]
* 홈 디렉토리 : ~
* 현재 디렉토리 : .
* 상위 디렉토리 : ..
* 하위 디렉토리 : 이름
[기초 명령어]
* banner - 화면에 큰 문자를 출력 ex) banner unix
* date - 날짜와 시간을 출력
* clear - 화면을 깨끗이 지움
* man - 명령에 대한 설명 출력 ex) man clear // 정보 끝내기 q
* passwd - 패스워드 변경
* logout , exit, ctrl+d - 로그아웃
[디렉토리 다루기]
* file + 파일명 - 파일의 성격이나 형식 보기
* pwd - 현재 디렉토리의 절대경로 표시 (print working directory)
* cd - 디렉 토리 변경 (change directory)
cd .. - 상위 디렉토리로 이동
cd ../test - 상위 디렉토리 아래에 있는 test 디렉토리로 이동
cd ~test - test 계정의 홈 디렉토리로 이동
cd ~/test - 자신의 홈 디렉토리 아래에 있는 test 디렉토리로 이동
cd /test - 루트 디렉토리 아래에 있는 test 디렉토리로 이동
* ls - 디렉토리의 파일 목록 확인(list)
옵션 : a , A , l , d , F , R
ls - 현재 디렉토리의 파일 목록을 출력
ls / - 루트 디렉토리의 파일 목록을 출력
ls -a - 현재 디렉토리의 숨김 파일을 포함하여 모든 파일 목록 출력
ls -A - 현재 디렉토리의 숨김 파일을 포함하여 모든 파일 목록 출력하되 . 와 .. 제외한다.
ls -a / - 루트 디렉토리의 숨김파일을 포함하여 모든 파일 목록 출력
ls -a test - 현재 디렉토리 하위디렉토리인 test 디렉토리의 모든 파일 목록 출력(숨김파일 포함)
ls -l - (long) 파일의 상세 정보 출력
ls -d - 지정한 디렉토리 자체의 정보 출력
ls -ld - 현재 디렉토리 자체의 상세 정보 출력
ls -ld / - 루트 디렉토리 자체의 상세 정보 출력
ls -i - 첫번째 행에 inode 번호 출력
ls -ai - 현재 디렉토리의 숨김 파일을 포함하여 모든 파일목록을 출력하되 첫번 째 행에 inode 번호도 출력한다.
ls -F - 파일의 종류 표시하여 출력( *:실행 파일 , / : 디렉토리 , @ : 심볼릭 링크 )
ls -R - 하위 디렉토리 목록까지 출력
ls -l
=> drwxr-xr-x 23 root root 4096 2월 27 18:38 var
d : 파일 종류 ( - : 일반파일 , d : 디렉토리 파일 , l : 심볼릭 링크 파일 , b,c,p,s)
rwxr-xr-x : 접근 권한
23 : 하드 링크 수
root : 파일의 소유자
root : 파일이 속한 그룹
4096 : 파일 크기(바이트)
2월 27일 18:38 : 파일이 마지막으로 수정된 시간
var : 파일 이름
* mkdir : 디렉토리를 생성
mkdir unix - unix 디렉토리 생성
mkdir unix temp test - 여러개 디렉토리 생성
mkdir -p unix/temp/test - 하위 디렉토리 생성 (p 옵션을 통해서 생성한다.)
* rmdir : 디렉토리를 삭제 (디렉토리가 반드시 비어 있어야 한다)
rmdir unix - unix 디렉토리 삭제
rmdir -p unix/temp/test - 하위 디렉토리 포함하여 삭제
[파일 내용 보기]
* cat - 파일의 내용을 연속 출력
cat /Unix/test.txt - Unix 디렉토리내에 test.txt 파일의 내용을 연속적으로 출력한다.
cat -n /Unix/test.txt - Unix 디렉토리내에 test.txt 파일의 내용을 행번호 붙여 연속적으로 출력한다.
* more - 화면 단위로 파일 내용을 출력
more +5 /Unix/test - Unix 디렉토리내에 test 파일의 내용을 5행 이후부터 화면단위로 출력한다.
-- 계속 -- 나오는 부분에서
spacebar - 다음 페이지
b - 이전 페이지
enter - 한줄 단위
q - 즉시 종료
/문자열 - 문자열 찾기
* tail - 파일의 뒷부분 몇 행을 출력한다.(로그, 접근 정보 볼 때 마지막을 보기때문에 사용)
tail +10 /boot/log - boot 디렉토리내에 log 파일의 내용을 10행부터 끝까지 출력한다.
tail -5 log - log 파일의 뒷부분 5행이 출력된다(기본 값은 10 이다)
tail -f log - log 파일 출력이 종료 되지 않고 주기적으로 감시하여 변화 확인시 출력된다.
- ctrl+c 로 명령을 종료 시킨다.
[파일 복사]
* cp - 파일이나 디렉토리를 복사한다.
cp file1 file2 - 파일을 파일로 복사
cp -i file1 file2 - 파일명2가 기존에 존재할 경우 덮어쓸 것인지 물어봄
cp f1 f2 f3 dir1 - f1 f2 f3 파일을 dir1 디렉토리에 복사한다.
cp -r dir1 dir2 - 디렉토리 복사
cp -ri dir1 dir2 - 덮어쓸것인지 물어보면서 디렉토리 복사
[파일 삭제]
* rm - 파일과 디렉토리를 삭제한다.
rm file - 파일을 삭제한다.
rm file1 file2 - 여러파일을 삭제한다.
rm -i file - 파일삭제시 정말 삭제할 것인지 확인한다.
rm -r dir - 디렉토리를 삭제할때
[파일 이동]
* mv - 파일의 이름을 바꾸거나 다른 디렉토리로 이동시킬 때
mv file1 file2 - 현재 디렉토리의 file1을 file2로 이름을 바꾸어 이동한다.
mv -i file1 file2 - 기존 file2 파일이 있을 경우 덮어 쓸 것인지 물어본다.
mv file1 dir1/file2 - 현재 디렉토리의 file1 을 dir1 디렉토리내의 file2로 이름을 바꾸어 이동
mv dir1/file1 dir2/file2 . - 두 파일을 현재 디렉토리로 이동한다.
[파일 링크]
* ln - 하드 링크 파일이나 심볼릭 링크 파일을 만들 때 사용한다.
- 하드 링크는 원본 파일에 붙인 새로운 이름이고,
- 심볼릭 링크 파일은 윈도우의 바로가기 아이콘 처럼 원본을 가리키는 특수한 파일이다.
ln test Intest - 하드 링크 생성
ln -s test Intest - 심볼릭 링크 파일 생성
[파일 생성 및 수정 시간 변경]
* touch - 빈 파일을 생성하거나 파일의 마지막 접근 시간이나 수정 시간을 변경하는 명령이다.
touch t1 t2 t3 - 여러 빈 파일을 생성
touch t1 - t1 을 현재 시간으로 변경
touch -t 200704201740 t1 - t1의 파일 수정 시간을 2007년 4월 20일 17:40 분 으로 변경
touch -t t1 t2 - t2의 파일 수정 시간을 t1 파일 기준으로 변경
touch -a -t 03100001 test - 접근 시간만 변경
touch -m -t 03100001 test - 수정 시간만 변경
ls -ul - 접근 시간 확인하기
[vi 사용 명령어]
* vi 시작과 종료
- 시작
vi [파일명...] : 파일명을 지정하지 않으면 빈파일이 열린다.
- 종료
:q : vi에서 작업한 것이 없을때 그냥 종료
:q! : 작업한 내용을 저장하지 않고 종료
:w [파일명] : 작업한 내용을 저장만 한다. 파일명을 지정하면 새 파일로 저장한다.
:wq, :wq! [파일명]: 작업한 내용을 저장하고 vi 종료, 파일명을 지정하면 파일명 생성 후 저장된다.
ZZ : 작업한 내용을 저장하고 vi 종료
* 입력 모드로 전환
i : 커서 앞에 입력한다(현재 커서 자리에 입력).
a : 커서 뒤에 입력한다(현재 커서 다음 자리에 입력).
o : 커서가 위치한 행의 다음 행에 입력한다.
I : 커서가 위치한 행의 첫 컬럼으로 이동해 입력한다.
A : 커서가 위치한 행의 마지막 컬럼으로 이동해 입력한다.
O : 커서가 위치한 행의 이전 행에 입력한다.
* 커서 및 화면이동
h,j,k,l : 커서를 왼,아래,위,오른쪽 으로 이동시킨다.
^ 또는 0: 커서를 현재 행의 처음으로 이동시킨다.
$ : 커서를 현재 행의 마지막으로 이동시킨다.
- : 커서를 이전 행의 처음으로 이동시킨다.
+ 또는 Enter : 커서를 다음 행의 처음으로 이동시킨다.
H,M,L : 커서를 화면의 맨 위, 중간, 맨 아래 행으로 이동시킨다.
w : 커서를 다음 단어의 첫 글자 위치로 이동시킨다.
b : 커서를 앞 단어의 첫 글자 위치로 이동시킨다.
e : 커서를 다음 단어의 마지막 글자 위치로 이동시킨다.
* 화면이동
ctrl + u : 반 화면 위로 이동시킨다.
ctrl + d : 반 화면 아래로 이동시킨다.
ctrl + b : 한 화면 위로 이동시킨다.
ctrl + f : 한 화면 아래로 이동시킨다.
ctrl + y : 화면을 한 행만 위로 이동시킨다.
ctrl + e : 화면을 한 행만 아래로 이동시킨다.
* 수정 및 삭제
- 내용 수정하기(입력모드 esc)
r : 커서가 위치한 문자를 다른 문자로 수정한다.
cw, #cw : 커서의 위치부터 현재 단어의 끝까지 수정한다.
(#에는 수정할 단어의 수를 지정, 3cw는 커서 위치부터 3단어 수정)
s, #s : 커서의 위치부터 ESC 키를 입력할 때까지 수정한다
(#에는 수정할 문자의 수를 지정, 5s는 커서 위치부터 5글자 수정)
cc : 커서가 위치한 행의 내용을 모두 수정한다.
C : 커서의 위치부터 행의 끝까지 수정한다.
- 내용 삭제하기
x, #x : 커서가 위치한 문자를 삭제한다.(#은 삭제할 문자 수, 예를 들어 3x 하면 3글자 삭제)
dw, #dw : 커서 위치의 단어를 삭제한다.(#은 삭제할 단어 수)
dd, #dd : 커서가 위치한 행을 삭제한다.(#은 삭제할 행의 수)
shift+d(D) : 커서 위치부터 행의 끝까지 삭제한다.
u : 방금 수행한 명령을 취소한다.
U : 해당 행에서 한 모든 명령을 취소한다.
:e! : 마지막으로 저장한 내용 이후의 것을 버리고 새로 작업한다.
* 복사하기 / 붙이기 / 잘라내기 명령
yy, #yy : 커서가 위치한 행을 복사한다(#에는 복사할 행의 수 지정)
p : 커서가 위치한 행의 아래쪽에 붙인다.
P : 커서의 위치한 행의 위쪽에 붙인다.
dd, #dd : 커서가 위치한 행을 잘라둔다(#에는 잘라둘 행의 수 지정)
"ayy : 네임트 버퍼에 저장 ("a, "b, "c .... "z)
* 범위 지정 명령키
% : 첫 줄에서 마지막 줄까지(파일내의 모든 줄)
.,$ : 커서가 있는 행부터 마지막 행까지 지정한다.
10,20 : 10행부터 20행까지 지정한다.
* 마지막행 모드에서 복사와 잘라내기
:#y : #으로 지정한 행을 복사(:10y -> 10행을 복사)
:<범위>y : 범위로 지정한 행을 복사
:#d : #으로 지정한 행을 삭제
:pu : 현재 행 다음에 버퍼내용 붙이기
* vi 검색 명령키
/문자열 : 문자열을 아래 방향으로 검색한다.
?문자열 : 문자열을 위 방향으로 검색한다.
n : 원래 찾는 방향으로 다음 문자열을 찾는다.
N : 역방향으로 다음 문자열을 찾는다.
* 마지막행 모드에서 바꾸기 기능
:s/문자열1/문자열2/ : 커서가 위치한 줄에서만 문자열1을 문자열2로 바꿈
:%s/문자열1/문자열2/g : 파일 전체에서 모든 문자열1을 문자열2로 바꾼다
:<범위>s/문자열1/문자열2/gc :
<범위> 안의 모든 행에 대해서 각 문자열1을 문자열2로 바꿀 때 수정할지 여부를 묻는다.
* 파일 읽어오기 / 여러파일 편집
:r 파일명 : 지정한 파일을 현재 커서 위치에 삽입
:e 파일명 : 현재 파일 대신 지정한 파일을 읽음
:n : vi 시작시 여러 파일을 지정할였을 경우 다음 파일로 이동
* vi에서 쉘 명령 실행
:!명령 : vi를 중단하고 지정한 명령 수행(vi로 돌아올때 : Enter)
:sh : vi를 잠시 빠져나가서 쉘을 수행(vi로 돌아올때 : exit)
* 알아두면 유용한 명령키들
ctrl + l : 화면을 다시 출력한다.(깨졌을때)
ctrl + g : 현재행을 마지막 행에 출력한다.
shift + j(또는 J) : 현재 행과 아래 행을 연결하여 하나의 행으로 만듦
. : 바로 직전에 했던 명령을 반복한다.
~ : 현재 커서 위치의 한 문자를 소문자 혹은 대문자로 전환한다.
* vi 환경설정
:set nu : 파일 내용의 각 줄에 줄 번호 표시(보이기만 할 뿐 저장은 되지 않는다.)
:set nonu : 줄번호 취소
:set showmode : 현재 모드를 표시한다.
:set noshowmode : 현재 모드 표시를 감춘다.
'소비 > 유용한 지식' 카테고리의 다른 글
MS 워드 에서 모든 하이퍼링크 제거 (0) | 2008.01.23 |
---|---|
성남 세이브존 - 김포공항 , 인천공항 리무진 버스 시간표 (0) | 2008.01.03 |
작업 표시줄 초기화. ( 작업표시줄 프로그램 창 배열 복구 ) (0) | 2007.12.23 |
'너무' 와 '아주' 를 혼동하지 말자. (0) | 2007.11.29 |
성공하는 여성들의 7가지 법칙. LG경제연구원. (0) | 2007.11.04 |