vi , vim
리눅스에서 사용되는 가장 대표적인 문서 편집기 (기본 지원함)
윈도우 메모장과 비슷한 기능을 하며 파일 편집이 가능
vim /etc/sysconfig/selinux - 파일 열기
vim + /etc/sysconfig/selinux - 커서가 맨 아래에 위치함
vim +n /etc/sysconfig/selinux - 커서가 n번째 행에 위치함
vim +/selinux /etc/sysconfig/selinux - /selinux 라는 단어가 포함된 행에 위치함
esc :q 로 나감
1) 입력모드 : 글자를 입력할 수 있는 모드
2) 명령모드(default) : 파일을 편집할 수 있는 작업이 가능한 모드
3) 실행모드 : 파일 저장, 읽기, 외부 명령 실행, 종료 등을 수행할 수 있는 모드
각 모드별 직접 연결된 모드간에 이동이 가능함. 하지만, 건너뛰어 이동하는 것은 불가.
입력 모드 <=> 명령모드(default) <=> 실행모드
=> "ESC"키 입력 <=
a,A,i,I,o,O <= => ":"
=> 방향키를 사용!!
k : 위로 이동
j : 아래 이동
h : 왼쪽 이동
l : 오른쪽 이동
^ : 행에 맨 왼쪽의 첫글자로 커서 이동
$ : 행에 마지막 글자의 위치로 커서 이동
G : 파일의 마지막 행
nG : n번째 행으로 이동
[[ : 커서를 파일의 맨 처음으로 이동
]] : 커서를 파일의 맨 마지막 행으로 이동
a(커서 바로 다음부터 편집)
A(커서를 행의 마지막으로 이동 후 편집)
i(커서 위치에서 편집)
I(커서를 행의 처음으로 이동 후 편집)
o(커서 아래에 행을 추가하고 편집)
O(커서 위에 행을 추가하고 편집)
x : 한글자씩 삭제
b : 한단어씩 뒤로 이동
db : 한단어씩 뒤로(왼쪽) 삭제
dd : 한줄(행) 삭제
ndd : n(숫자) 만큼 행을 삭제
yy : 한줄(행) 복사
nyy : n(숫자) 만큼 행을 복사
p : 현재 커서 아래에 붙여넣기
P : 현재 커서 위치에 붙여넣기
np : n(숫자)만큼 행을 붙여넣기
dw : 커서위치 한단어 삭제
D : 커서 위치에서 라인 마지막까지 삭제
ndw : n(숫자) 단어 삭제
nx : n(숫자) 글자만큼 삭제
y$ : 커서의 위치에서 라인 마지막까지 복사
u : 마지막 변경된 내용 취소
U : 현재 행에서 변경된 내용 모두 취소
/(단어) : 문서내에 단어를 위에서 아래로 검색
?(단어) : 문서내에 단어를 아래에서 위로 검색
n - 진행방향으로 다음 단어 검색
N - 진행 반대방향으로 다음 단어 검색
치환(찾아서 바꾸기) : 문서상에 특정 단어를 찾아서 새로운 단어로 변경하는 것!!
[사용형식]
:[n]s/old/new
n - 라인(행)
old - 이전단어(검색 단어)
new - 새로운 단어(변경할 단어)
ex)
:39s/PASS/Word => 39줄에 있는 PASS => Word로 변경
:34,42s/PASS/Word => 34 ~ 42줄에 있는 PASS => Word로 변경
:%s/PASS/Word => 문서 전체에 있는 PASS => Word로 변경
"/g"옵션 : 전부를 의미함.
"/i" 옵션 : 대소문자 구분하지 않음.
실행모드(:)
:w => 파일 저장
:q => 종료
:wq => 파일을 저장하고 종료
:{}! => 강제 실행({} 명령) ex) q!
:x => 저장하고 종료
:e 파일명 => "파일명"의 파일을 불러들여서 기존 파일 대체
:r 파일명 => "파일명"의 파일을 불러들여서 현 커서 위치에 추가
:nr 파일명 => "파일명"의 파일을 불러들여서 n줄 이후에 추가
:!명령어 => 외부 명령어를 실행
ex) :!ls -l => ls -l을 터미널에서 사용한 것과 같은 출력 결과
:e! => 현재 문서 내에서 변경한 모든 내용을 취소 (문서를 다시 불러와 준다)
:set nu => 편집 문서에 행번호를 표기
:set nonu => 편집 문서에 행번호를 표기 제거(비활성화)
:set ai => 자동 들여쓰기
:set wrap => 자동 줄바꿈 설정
:set ts=숫자 => 탭키를 숫자만큼 공간으로 설정하기(기본 8자)
:n => n(숫자)번째 행으로 이동
:f => 현재 파일 정보를 확인
추가
사전작업
root로 작업(#)
mkdir -p /test/viTest -> /test/viTest 디렉터리를 생성
cd /test/viTest
cp /etc/login.defs /test/viTest/login.defs실습할 파일 : /test/viTest/login.defs
테스트 조건 : 절대로 vi(m)나와서 작업하지 않습니다. 오직 vi(m) 내에서 모든 작업 진행!!!
루트 권한으로 전환:
sudo su -디렉토리 생성:
mkdir -p /test/viTest디렉토리로 이동:
cd /test/viTest파일 복사:
cp /etc/login.defs /test/viTest/login.defs파일 열기 :
vi(m) /test/viTest/login.defs
1) /test/viTest/ 디렉터리 하위에 파일 A, B, C를 생성!
:!touch /test/viTest/A /test/viTest/B /test/viTest/C
2) 치환 작업 : 'PASS(->word)', 'number(->PASS)' 단어를 치환...
:%s/PASS/word/g
:%s/number/PASS/g
3) 5 ~ 12번째 라인을 2번째 라인 밑에 복사
:5,12t2
4) 14번째 라인으로 이동 후에 ls -l /var/log/의 명령어 결과를 문서 내용으로 추가!!
:14
:r !ls -l /var/log/
5) 편집한 내용을 저장[종료는 하지 않음]
:w
6) 현재 열려있는 파일의 내용을 비어 있는 /test/viTest/B 파일에 입력 후에 B파일을 열어 내용 입력이 되었는 확인
:w /test/viTest/B
:e /test/viTest/B
7) 현재 열려있는 B파일의 내용을 수정![치환 작업X] UID 단어를 찾아 UID를 수동으로 지워준 다음,
Xwindow라는 내용으로 변경 후에 저장(UID -> Xwindow로)
/UID로 UID 검색
cw로 단어 변경 모드 진입
Xwindow 입력 후 <Esc>
/backup 디렉터리를 생성 END 이름으로 파일을 추가 저장
:!mkdir /backup
:w /backup/END
8) 현재 vi 화면에서 새로운 문서를 불러온 후에
:enew
"안녕하세요!" 내용을 입력한 후에
i -> 안녕하세요 -> Esc
/backup/END 파일을 불러오기. 단, 현재 새로만들기로 이용해서 불러온 문서는 별도로 저장하지 않습니다.
:r /backup/END
사용자 생성 및 전환
사용자 생성
root에서
useradd testuser1
혹은 일반사용자에서
sudo useradd testuser1
비밀번호 설정
passwd testuser1
> Changing password for user testuser1.
> New password: 1111
> BAD PASSWORD: The password is a palindrome
> Retype new password: 1111
> passwd: all authentication tokens updated successfully.
사용자 전환
su testuser1
whoami
>testuser1
로 바뀐것을 확인할 수 있다
exit -> 나가기
루트 -> 일반 계정 전환은 인증이 불필요함
일반 -> 루트 전환은 인증이 필요함
제한적 관리자 권한 사용 명령어. 관리자 권한으로 실행해야 하는 경우.
sudo [옵션] or [관리자 권한으로 실행 할 명령어]
-i : 해당 터미널에서 관리자 권한 세션으로 처리
$ gpasswd -a testuser1 wheel
> gpasswd: Permission denied.
$ sudo gpasswd -a testuser1 wheel
> Adding user testuser1 to group wheel
sudo 는 관리자 권한을 사용할 수 있는 설정이 되어 있는 경우에만 사용이 가능함.
sudo 설정 변경은 "visudo"를 통해서 변경이 가능함.
설정파일의 위치 : /etc/sudoers