4. 파일 편집 명령어 | ||
4.1 ed 편집기 | 행단위 편집기 | |
4.2 vi 편집기 | 화면 편집기 - 가장 많이 활용 | |
4.3 ex 편집기 | 대화형 편집기 - 기본, 원시적 |
4.1 ed 편집기
4.1.1 ed 명령어의 실행 및 종료 | ed의 호출 | $ ed al $ ed e al |
al 이라는 파일의 편집작업 시작 ed를 호출 al이라는 파일의 편집 시작 |
ed의 종료 | w q |
버퍼의 내용을 파일에 저장 ed 명령어를 종료 |
|
파일의 편집 | $ ed al al: No such file or directory a main(){ printf("독도는 우리땅"); } . w 31 q $ |
al 파일을 ed 편집기로 작성 처음 작성시 나타남 자료 추가 명령(문안입력 모드 시작) (문안입력 모드 종료 & 명령 모드 시작) 자료 저장 저장된 파일의 문자수 프로그램을 종료 |
|
4.1.2 파일의 내용 출력 : p | 시작행번호, 끝행번호 명령어 | $ ed al 31 1,2p main(){ printf("독도는 우리땅"); 1,$p main(){ printf("독도는 우리땅"); } q $ |
이미 존재하는 파일로 크기가 31 byte 1~2번째 행까지 출력 1~마지막 번째 행까지 출력 |
4.1.3 파일의 입력 및 수정 | (1) 문안추가 (append) : a | 새로운 파일에 처음 문안 입력 기존 파일 내용에 새로운 내용 첨가 |
|
(2) 문안삽입 (insert) : i |
8i printf("%d\n,x); . |
8행에 문장을 삽입 삽입되는 문장 프로그램 입력 종료 |
|
(3) 문안삭제 (delete) : d |
8d | 8행을 삭제 | |
(4) 문안 치환 (change) : c,s 행 전체 내용 바꾸고자 =c 특정 행내 내용 수정 =s 행번호s/치환전의문자/치환되는문자/명령어 |
$ ed al 43 1,$p main(){ printf("독도는 우리땅"); } 3c printf("%d\n",2); . 1,$p main(){ printf("독도는 우리땅"); printf("%d\n",2); } w 64 q |
3행을 다른 문장으로 치환 치환된 문자열 문장 입력 종료 |
|
$ ed al 64 1s/main()/computer() computer(){ 1,$p computer(){ printf("독도는 우리땅"); printf("%d\n",2); } w 68 q |
1행의 main()을 computer()로 변환 | ||
(5) 문안검색 (search) : / /찾고자하는 문자열/ |
$ ed al 68 1,$p computer(){ printf("독도는 우리땅"); printf("%d\n",2); } /printf/ printf("독도는 우리땅"); /printf/ printf("%d\n",2); q |
"printf"문자열을 찾아 행 출력 | |
(6) 문안이동 (move)와 복사(transfer) : m,t |
$ ed al 68 1,$p computer(){ printf("독도는 우리땅"); printf("%d\n",2); } 1,2m3 1,$p printf("%d\n",2); computer(){ printf("독도는 우리땅"); } |
1~2행의 내용을 3행 다음으로 이동 | |
$ ed al 68 1,$p computer(){ printf("독도는 우리땅"); printf("%d\n",2); } 1,2t3 1,$p computer(){ printf("독도는 우리땅"); printf("%d\n",2); computer(){ printf("독도는 우리땅"); } |
1~2행의 내용을 3행에 복사 | ||
(7) 명령 취소 (undo) : u |
u | ||
(8) 행 결합 (join) : j 파일 편집중 인접한 행을 한 행으로 결합 |
ed al 68 1,$p computer(){ printf("독도는 우리땅"); printf("%d\n",2); } 3,4j 1,$p computer(){ printf("독도는 우리땅"); printf("%d\n",2);} |
3,4행 결합 | |
(9) 다른 파일의 내용 읽어오기 (read) : r 현재 편집한 파일에 다른 파일 첨가/ 편집중 현재 행 뒤에 다른 파일 첨가 r 파일이름 |
$ ed al 67 1,$p computer(){ printf("독도는 우리땅"); printf("%d\n",2);} r al 67 1,$p computer(){ printf("독도는 우리땅"); printf("%d\n",2);} computer(){ printf("독도는 우리땅"); printf("%d\n",2);} |
al 파일을 읽음 | |
(10) 버퍼안에 새로운 파일 작성 (edit) : e 현재의 버퍼내에 있는 파일 내용의 전부를 사용자가 무시, 새로운 파일을 버퍼에 넣어 작업 e 파일이름 |
4.2 vi 편집기
4.2.2 vi의 호출과 종료 | (1) vi 호출하기 vi [+행번호][-rRx] [파일명] |
+행번호 : 파일 호출시 행번호에 커서가 위치함 -r : 비정상적 종료시 파일의 내용을 복구시킴 -R : 읽기 전용으로 파일을 열음(view 명령과 동일) -x : 파일 저장시 암호화하여 저장 ** vi a3 a4 입력하면 여러 개 파일 편집. a3 편집과 저장후, :n(Enter) 입력하면 동시에 a4 편집 할수 있음 |
|
(2) vi의 저장과 종료 |
:w : 파일로 저장한 후 수행 계속 :w a5 : a5파일로 저장한 후 수행 계속 :q :편집한 내용이 없을 경우 수행 종료 :q! :편집한 내용을 파일에 저장하지 않고 종료 :wq : 파일에 저장한 후 수행 종료 (= ZZ) :sh 와 ^D 제대로 안됨 이유 |
||
(3) vi 명령어의 구조 [count] [operator] [count] [object] count : 반복횟수 operator : 명령어 |
w dw 2dw / d2w 2d2w / 4wd / d4w |
한 단어만큼 커서 이동 텍스트의 한 단어를 삭제하는데 사용 두 단어 삭제 네 단어 삭제 |
|
4.2.3 vi의 모드 | command mode (명령 모드) -> ESC Insert mode (입력 모드) -> iIaAoO Ex mode (마지막 행모드) -> : |
||
4.2.4 커서의 이동 | (1) 기본적인 커서 이동 명령어 | 8l 2k 8l2k 0 ^ $ |
ㅓ ㅜ ㅗ ㅏ h j k l 커서를 8문자 오른쪽으로 이동 (공백 포함) 커서를 2행 위쪽으로 이동 커서를 8문자 오른쪽으로 이동한 후 2행 위로 이동 커서를 현재 행의 왼쪽 끝으로 이동 커서를 현재 행의 처음으로 이동 커서를 현재 행의 끝으로 이동 |
(2) 단어 단위 커서 이동 명령어 | w b e |
다음 단어의 처음으로 이동 이전 단어의 처음으로 이동 현재 단어의 끝 부분으로 이동 |
|
(3) 텍스트 단위(문장과 단락) 커서 이동 명령어 | --- | ||
4.2.5 텍스트의 수정 명령어 | (1) 자료 첨가 명령어 | a A i I o O |
현재 커서 위치 이후에 새로운 내용 삽입 현재 행의 끝부분에 내용 삽입 현재 커서 위치 이전에 새로운 내용 삽입 현재 행의 앞 부분에 내용 삽입 새 행을 현재 행 아래에 열고 텍스트 삽입 새 행을 현재 행 위에 열고 텍스트 삽입 |
(2) 자료 삭제 명령어 | [count] x [count] X D dd d0 dw d$ |
커서 위치부터 count개의 문자 삭제 커서 위치직전부터 count개의 문자 삭제 현재 위치에서 행끝까지 삭제 현재 행 삭제 현재 커서에서 왼쪽 끝까지 삭제 한 단어 삭제 커서에서 행끝까지 삭제 |
|
(3) 기본적인 대치 | r{char} R{string} [count]S {string} C {string} |
커서 위치에 있는 한 문자를 char로 대치 현재 커서 위치에서부터 (esc)를 누를 때까지 기존 문자들을 {string}으로 대치 count 만큼의 행을 {string}으로 대치 커서 위치에서 행 끝까지를 입력된 텍스트로 대치 = c$ |
|
4.2.6 패턴의 검색 및 대치 명령어 | (1) 문자열 검색 | [count]/[string][/] [count]?[string][?] |
정방향으로 string과 대응하는 문자열 검색 역방향으로 string과 대응하는 문자열 검색 |
4.2.8 기타 유용 명령어 | (6) vi 모드에서 쉘 명령어 수행 | :! {command} | |
(7) 비정상적 종료로 인한 파일 복구 | vi -r [파일명] | ||
5 디렉토리 관련 명령어 | ||
5.1 디렉토리 이동/확인 명령어 -cd, pwd | pwd (print working directory) cd (change directory) |
현재 작업중인 디렉토리 위치 출력 작업 디렉토리 변경 |
cd 단독 사용 : 홈디렉토리로 이동 cd $HOME : 홈디렉토리 이동 cd / : 루트 디렉토리 이동 cd /etc : /etc 디렉토리 이동 cd .. : 상위 디렉토리 이동 cd ../cip10 : cip10 디렉토리 이동 |
||
5.2 디렉토리 생성 명령어 -mkdir | mkdir [옵션] [디렉토리 명] | mkdir -m=rwx [디렉토리 명] : 디렉토리의 권한 rwx로 설정 mkdir -m=rw- [디렉토리 명] : 디렉토리의 권환 rw 로 설정 |
5.3 디렉토리 삭제 명령어 -rmdir | rmdir [옵션] [디렉토리 명] | |
5.4 디렉토리 파일 검색 명령어 -find | find directory -name [파일명] | 파일의 경로를 보여줌 |
6 파일 관련 명령어 | ||
6.1 파일의 내용확인 명령어 | ||
6.3 파일 관리 명령어 | ||
6.1.1 파일 내용보기 명령어 -cat | cat [-sunv] [파일명] | |
cat > a2 cat a2 |
a2파일의 내용을 출력 | |
cat -n a2 | 파일의 내용에 행번호 붙여서 출력 | |
cat a2 a3 > a5 | a2,a3 파일의 내용을 합쳐 a5 파일에 저장 | |
cat a4 a5 >> a6 | a4,a5 파일의 내용을 합쳐 a5 파일에 추가 저장 | |
6.1.2 화면단위 파일내용 출력 -more | more [-d] [-line] [파일명] | |
ex) more /etc/passwd more -10d /etc/passwd ls - l | more -10 |
/etc/passwd 파일의 내용을 화면크기 24행으로 나누어서 출력 /etc/passwd 파일의 내용을 화면크기 10행으로 나누어서 출력 파일과 디렉토리에 관한 정보를 입력받아 처음부터 10행씩 화면 단위로 출력 |
|
6.1.6 파일의 앞뒤부분 출력 -head, tail | head [-count] [파일명] | count 디폴트값 10 |
head -5 a5 | a5파일의 선두 5개의 행 출력 |
6.3.1 파일 복사 명령어 -cp | cp [옵션] [original_file] [destination file] |
cp a3 a4 room1 : a3와 a4 파일을 room1 디렉토리에 복사. |
6.3.2 파일 삭제 명령어 -rm | rm [-fir] [파일명] |
-i : 파일 삭제에 대한 확인을 대화형식으로 수행 -r : 사용자가 지정한 디렉토리와 서브 디렉토리 및 파일 삭제 |
6.3.3 파일 이동 명령어-mv | mv file1 file2 mv directory1 directory2 mv *2 book |
파일명, 디렉토리 변경 파일명이 2로 끝나는 파일을 book 디렉토리로 이동 |
6.3.6 파일 검색 및 정보 출력 명령어 | find directory -name [파일명] -name 대신 -size 15 (파일 크기가 15블록 이상) |
파일명을 directory에서 검색하여 출력 |
조금 복합 | ||
find /home -name a3 > b3 | a3파일을 /home 디렉토리에서 검색한 결과를 b3 파일에 저 | |
find /home -name a5 -exec rm {} \; |
a5 파일을 검색하여 화면에 출력하고 그것을 삭제 | |
find / -size 15 | 루트 디렉토리내에 있는 파일 중 크기가 15 블록 이상의 파일 찾아서 화면 출력 | |
7 파일 속성변경 명령어 | ||
7.3 파일 권환변경 명령어 -chmod | ||