본문 바로가기
Linux

[Linux] 여러 명령어

by JINJINC 2023. 3. 18.
728x90
반응형

어떤 파일 있는지 확인하는 명령어 :  ls -F
cd 가고싶은 디렉토리

cd /home/
ls |  greb [ 찾고싶은 단어]

 


명령어 [옵션] [대상]

* 띄어쓰기 필수!!
- cd : 이동 명령어, 디렉터리 지정 대상으로 
ex) cd /home

절대경로 : 파일의 전체 주소  / 부터 시작 /home/dbug/LABs/test1 

=> 참조해야하는 변수위치, 대상 지정할 때 사용한다. 

- 상대 경로 : 내가 있는 지점부터 주소를 시작한다. 

./ - 로 나의 위치를 표시 => 디렉터리 단위로 개발할 때, 사용  

현재 위치 labs -  > test3   ==> cd  ./test1/test2/test3

더보기

Q_/ var/ lib/ yum/ repos/ x86_64b  디렉터리 개수

 

==> 정답 :6개

- pwd : 현재 내 위치 (cd명령후 pwd 매번 습관처럼 해보자)


- mkdir : 디렉토리를 만든다 mk = make , dir = directory 

mkdir [이름 혹은 경로] 

mkdir test1 && cd $_  - 만들고 그 폴더로 바로 이동

  • && ==> 앞의 명령어를 실행하고 이어서 다음 명령어 진행, 앞에 명령어가 실패하면 진행 x 
  • &_ ==> 직전에 사용했던 변수를 이어받음 
  • -p 옵션 => 1 test1]# mkdir -p test1_1/test1_1_1  종속적인  폴더를 만들어준다. 
     없는 경로가 중간에 껴있는 디렉터리를 만들때 

[root@server1 LABs]# mkdir test2 test3 

 = > 폴더마다 구분해주면 각각의 디렉터리가 만들어진다. 

# mkdir test2/{test2_1,test2_2} 

 = > 지정 디렉터리안에 여러개 한번에 만들때 

  • p 옵션 : 생성 시 경로에 기존에 생성되지 않을 디렉터리가 있으면 함께 생성
  • m [부여할 권한 숫자] [생성 할 디렉터리 명] : 생성 시에 미리 권한부여 조정
  • v : 디렉터리 생성 시 생성에 대한 메시지를 출력


[root@server1 LABs]# mkdir -m -v 700 test4
[root@server1 LABs]# ls -l



# ls => 디렉터리 보기 , 현재 위치, 혹은 대상의 위치에서 존재하는 파일들을 조회

  •  l 옵션  : 상세내용 출력
     (파일의 성격, 권환 연관된 파일수 , 소유권자, 소유그룹, 용량, 생성일시, 파일이름)
       drwxr-xr-x.     2                         root         root           6       Oct  8 13:45      test2_1

  •  a 옵션 : 숨김파일 출력, 리눅스의 숨김파일 = 파일이름 앞에 .이 붙으면 숨길파일로 지정


# ls -Sl  파일의 용량에 따라 내림차순

  •  i : inode 출력 
  •  h : size를 사람이 보기 편하게 단위로 세팅
  •  S : size순으로 내림차순 정렬 
  •  R :  재귀옵션 - 내 하위 파일들에 대해서도 해당 명령어 수행 

# ls -Sila 많이 사용

# ps -ef | grep [찾을 단어] :   찾을 단어가 포함된 것을 지우는 것

yum install -y tree 설치 명령어 

rm = remove  파일을 대상으로 

  • rm -r 디렉토리이름 = > 디렉토리 삭제 
  • rm -rf 강제지움 경로 내 비어있는 디렉터리 모두 삭제
  • rmdir -p 한꺼번에 종속된 사항에 대해서도 


# cat (catenate = 잇다, 연결하다)

  1. cat 을 이용한 파일 조회
    cat /etc/servcies
  2. cat > 을 이용한 새 파일 만들기
    cat > services_5 
  3. cat >>을 이용한 파일에 문장 첨부
    cat /etc/services | tail -5 > servies_5
  4. 그럼 질문 services_5에 cat –n  옵션을 붙이면 어떻게 붙을까?  번호 그대로 붙습니다
    cat -n /etc/services | tail  ( => 끝에서 10개만 출력됨
  5. 파일 합병
    cat file1 file2 file3 > file_integration
#옵션들
n: 줄번호를 화면 왼쪽에 나타낸다. 비어있는 행도 포함한다.
b: 줄번호를 화면 왼쪽에 나타낸다. 비어있는 행은 제외한다.
s: 연속되는 2개이상의 빈 행을 한 행으로 출력한다.
v: tab과 행 바꿈 문자를 제외한 제어 문자를 ^ 형태로 출력한다.
E: 행마다 끝에 $ 문자를 출력한다.
T: 탭(tab) 문자를 출력한다.
A: -vET 옵션을 사용한 것과 같은 효과를 본다.

 

1. cat 파일명  => 파일의 내용을 조회할 때 사용함 

2. cat  => 조회 및 입출력 그냥 치면 바로 출력 컨트롤 c로 빠ㅣ져나옴

3. [root@server1 ~]# cat > service_txt
 안녕하세요
리눅스 수업입니다.
끝 ^C

cat > [대상] = > 해당대상에 내용 기입

> : direction = > 꺽쇠 방향으로 내용을 엎어씀, 전달 
>>   : 내용 추가 (기존 내용유지)

4. cat -n [filename] 
5. cat [1file] [2file] > [저장대상] : 파일 합치기 


# more [옵션] [조회 할 대상]

more  - 문서를 조회할때 명령어 조회할때 

명령어 | more  

| : 앞의 명령어 출력 결과를 뒤에 인자로 넘김

ex > cat etc/service | more

#more 검색후 

  • enter : 한 줄씩 이동
  • space bar : 한 페이지 씩 이동
  • q : 중단하기  
  • = : 현재 라인 확인
반응형

#more 옵션들 

  • -숫자 -> 숫자만큼 끊어서 조회 
  • +숫자 -> 입력한 행부터 출력

 

#텍스트 모드 단축키

  • enter -> 한 줄씩 
  • space bar => 한 페이지 씩
  • h => 명령어 상태에서 도움말 확인
  • b => 이전 페이지로 이동
  • ! => 다른 명령을 실행할 수 있는 상태로 전환
  • :f => 현재 파일명과 줄 번호
  • q   => 명령 종료
  • =   => 현재 위치의 행 번호 표시
  • /단어 => 지정한 문자열 검색
  • v => 바로 vi 편집기로 전환

cat -n /etc/services | more(less)
번호가 없기 때문에 헷갈릴 수 있는 것 이렇게 해결
! 이 때는 문서가 아닌 결과를 조회하는 상황이기 때문에 v가 먹지 않음

 

# less [옵션] [조회 할 대상]

#less : 명령어 결과를 조회 - 얘는 앞뒤로 이동이 가능함 

q 로 중단하면 결과가 남지 않는다. 

 

# less 옵션들 : 

  • -? : less에서 사용할 수 있는 명령들에 대한 도움말 출력
  • -i : 대소문자를 무시하고 탐색
  • -s : 연속되는 공백 라인은 하나의 행으로 처리
  • +행번호 : 지정된 행 다음부터의 내용을 출력
  • #텍스트 모드 단축키
  • q: 종료 후 쉘창으로 복귀
  • enter: 1행 아래로 이동
  • space bar: 아래로 1페이지 이동
  • 위 방향키: 위로 1행 이동
  • 아래 방향키: 아래로 1행 이동
  • PageUp: 위로 1페이지 이동
  • PageDown: 아래로 1페이지 이동
  • v  바로 vi 편집기로 전환
  • /단어  지정한 문자열 검색
  • !  다른 명령을 실행할 수 있는 상태로 전환
  • =  현재 위치의 행 번호 표시

공통옵션 

+번호 / : 시작라인 지정

-번호 : 한번에 출력할 줄 크기 지정



#tail, head [옵션] [출력 할 대상]

head ==> 앞에서 출력

tail ==> 뒷줄부터 출력

#옵션들:

-n : 뒷 번 n번째 출까지 출력(default 10)

-f : 종료되지 않은 상태에서 표준입력을 읽어들임

#head/tail [1번파일] [2번파일]  동시 출력

tail -f /var/log/secure

-f 옵션 : 해당 파일을 종료하지 않고 출력을 읽어드림 

number옵션  특정 줄까지 

[root@server1 ~]# tail -f /var/log/secure


#cp  ==copy

  cp [옵션] [복사 할 대상] [복사 할 위치]

-  p : 파일의 소유자나, 권한 ,그룹 접근 시간 완벽한 복사본 
- r  : 파일이면 그냥 복사, 디렉터리일 떄는 하위 디렉터리까지

-  i  : 복사할 위치에 동일 명의 파일이 이미 있으면 한 번 물어보기 

- R : 디렉터리를 복사할 경우 그 안에 포함된 모든 하위경로와 파일들을 모두 복사합니다.

==> 재귀명령(하위 개체에 대해서도 일괄적용)

복사, 백업 파일 이동
configure 나 수정안되는 파일들을 미리 백업개념으로 사용할 수 있다.

백업본을 미리 만들고 문제시 원본에 엎을 수 있도록 습관 .

** cp * 복사할장소 : 현재장소의 모든 파일을 복사할 장소로 복사시킴
** cp -r .  :명령으로 숨김파일까지 모두 복사가능 
cp -r . ./LABs   ==> 현재위치의 숨김파일까지  LABs로 모두 복사 

 

# cp service_txt service_2.txt => service_txt에서 service_2.txt로 복사  
 [root@server1 ~]# cat service_2.txt
안녕하세요
리눅스 수업입니다.
 다시시작

cp service_.conf service_conft 

# -R  == > 재귀명령(하위개체에 대해서도 일괄 적용

[root@server1 ~]# cp LABs/ LABS/

cp: omitting directory ‘LABs/’     = > cp만 사용했을때는 디렉터리 복사는 되지 않는다.

[root@server1 ~]# cp -r LABs/ LABS/

==> -r 옵션 사용시 디렉터리 복사도 가능

[root@server1 ~]# alias

alias cp='cp -i'

alias egrep='egrep --color=auto'

alias fgrep='fgrep --color=auto'

alias grep='grep --color=auto'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'a

lias mv='mv -i'

alias rm='rm -i'

alias vi='vim'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

 

 

rm -rf LABS

 

 


#mv  [옵션] [이동시킬 대상] [이동할 위치] 복사 이동

보통은 이동보다는 이름을 변경할 때 많이 사용(깨지는 경우가 종종 있음)

-b : 이동할 위치에 동일 대상이 있다면 이름 끝에 ~를 붙여서 백업본을 생성 

-f : 강제 옵션

[root@server1 LABs]# mv -f testtouch testfile 

-i : 목적 경로에 같은 이름의 파일(혹은 디렉토리)가 존재하면, 덮을 지 질문(alias 설정 되어있음)

 

 

#sed  ==> streamlined editor :문서를 추출하거나 편집하는 기능 ,

다만 결과를 바로 적용하지 않는다 

#버퍼 : 데이터가 전송되는 동안 일시적으로 보관하는 메모리 영역

  • - n :바뀐 내용만 보여줌
    sed -n '[행번호]p' [대상파일] = p 는 출력
    sed -n '[행번호][기능]' [대상파일]   => 기능
  • -p :출력
  • -e :다중행 출력 
  • `/ssh/p' : 특정문자 검색
  • -d : 화대 

 


[root@server1 ~]# sed -n '25p' /etc/service  => 특정 줄만 지정하여 출력 

[root@server1 ~]# sed -n '3,25p' /etc/services  => 일정 범위를 지정할 수 있다

[root@server1 ~]# sed -n -e '22p' -e '25p' /etc/services =>  특정항을 지정하여 출력

    (연속적이지 않은 항도 출력가능) 

[root@server1 ~]# sed -n -e '22,25p' -e '30,35p' /etc/services  

* 검색한 내용을 저장할 수 있다 : sed -n '3,25p' /etc/services > serv_3_25   

* 출력시 내가 원하는 줄에서 : [root@server1 ~]# sed -n -e '1d' -e '1,2p' /etc/hosts   

* 's/[바꿀 대상]/[바뀐 결과]/p' 단어 치환  : sed -n 's/tcp/icmp/p' tcp_txt  

[root@server1 ~]# sed -n '15,25p' /etc/services > serv_15_25

 

 

 

특정 문자열 검색 출력 

=> ex) ssh이 포함된 열 출력원할때 >  sed -n '/ssh/p' /etc/services

삭제시  sed -n '1d' /etc/hosts 

 

** 만약 수정후 원본에 반영을 하고 싶다면 sed -n -e '1d' -e '1,2p' /etc/hosts > /etc/hosts 

결과를 원본으로 저장해 주어야 한다. 

1./ etc/service 에서 tcp라는 단어를 포함하는 모든 행을 tcp 문서로 저장

2.tcp 문서에 1-25행까지 출력하되 2-10행은 출력하지 않음

sed -n '/tcp/p' /etc/services > tcp

sed -n -e '2,10d' -e '1,25p' /etc/service

 



# rm : remove 제거 

rm *  : 전체 삭제 

  • -r : 디렉터리도 제거가능 
  • -f : 강제로 삭제(확신이 있을때만 사용)
  • rm -rf * = > 전체 강제 삭제 확신이 있는 경우만 사용 잘 사용하지 않는방법 
     

# rmdir  ==> 디렉터리 삭제 명령어 

  • -p : 해당 디렉터리 경로 내에 빈 디렉터리는 모두 삭제
    의도치 않게 삭제되는 경우 많기 때문에 조심해야 한다. 

#ln   = >  링크파일 생성

  • -s : 심볼릭 링크파일로 지정
  • 링크파일? ->  바로가기와 비슷. 원본이 바뀌면 링크파일도 바뀌지만, 
    - 링크 파일이 바뀌면 원본도 바뀐다.
    - 원본과 링크는 inode도 동일하다.
    - 하드링크  : 원본과 아이노드가 동일, 원본이 삭제되도 본인의 역할 수행
    - 심볼릭 링크 : 원본과 inode가 다름, 원본이 삭제되면 기능을 못함 대신 이름과 위치만 같으면 바로 대체가능

[root@server1 ~]# ln tcp tcp_ln

root@server1 ~]# ln -s tcp tcp_sln

-> 확인하는 방법 ls -li tcp_*

# touch -->  터치

1, 빈파일 생성 ( 내용이 없는 파일 생성

2. 파일의 접근 시간 변경 

touch *   =>  작업 끝내고 모든 파일의 작업시간을 변경시켜줌

stat *

 

touch .autorelabel

#stat 파일의 정보를 알려줌 

# grep [찾을 문자열][대상 파일] =>지정 문자열을 대상에서 찾아준다.

명령어 | grep [찾을 문자열] ==> 명령어 결과를 받아서 처리 
  • -i : ignore(대소문자 구별 x)
  • -e : or (조건 추가)
  • -v : not (제외시키기)
  • -w : 완전일치
  • -E : 확장된 정규표현식 적용 

ve 

 

ls | grep tcp

ls | grep -ie tcp -ie lab 

ls | grep -v tcp  => tcp 빼고 검색

lls | grep -vE "tcp|LAB" 한번에 여러개 검색 

ls | grep '^serv'  시작하는 단어를 지정할때 

cat | grep 

[root@server1 ~]# ls | grep serv /etc/services 

 


#echo ==> 해당하는 문자열을 출력

- 해당하는 문자열 출력

- 변수를 출력

- 입력한 명령어에 넘겨서 변수 입력

 


[root@server1 LABs]# echo "USER"  => 문자열 출력 

USER

[root@server1 LABs]# echo $USER   => 변수출력

root

[root@server1 LABs]# echo Y | yum install tree  ==> 입력한 명령어에 넘겨서 변수 입력 


# 명령어 연결자 (다중명령어)

 1.  | (바, 파이프)  -> 앞의 명령어 결과를 뒤의 명령어 입력으로 넘김(grep, echo..)

ex) ls | grep serv

2, ; (세미콜론)  - > 명령어의 끝남을 알림, 

touch txt; rm -rf LABs  두가지 명령어를 구분지어줌

3. & (엠퍼센트)  - > 명령어를 동시실행, 앞에는 백그라운드, 뒤에는 포어그라운드

!! 동시실행이다보니까 명령어 간 상호의존성이 있는 명령어는 동시 수행 불가

mkdir LABs & cd LABs ( 에러) = > 이경우는 | 를 사용 

4. &&( 더블 엠퍼센트) ==? 명령어를 순차진행, 앞에 결과가 성공하면 뒤에 명령어 진행

5, || (더블바 ) ==> 앞에 명령어가 실패해야 뒤에 명령어가 실행 ,  주로 실패 가능성이 있는 작업과 그에 대한 대비팩을 동시에 타이핑


#diff  = > 문서간 차이점 비교

diff [옵션] [대상1] [대상2]

-c : 두 파일 간 차이점 비교 출력

-d : 차이점만 출력

-u : 두 파일 변경점과 근처 내용까지 자세히 출력

-i  : 대소문자 무시

-s  : 동일하면 알림 

주로 설정 관련 파일들, 원본이랑 비교할 때 사용 (troubleshooting용)

 

# diff tcp_ln tcp_sln

 



#split ==> 나누기, 파일을 나눔 (로그, 아카이브 == linux압축파일)

split [옵션] [대상] [분할후 파일명]

ex) split txt txt1 txt2 /...

  • -a  : 파일 뒤에 붙을 문자길이를 지정 
  • - additional suffix=붙일이름  : 분할파일 뒤에 추가적으로 붙을 이름을 지정
  • -b : 분할 기준을 파일로 지정 (byte0
  • -d : 분할 파일 이름 뒤에 숫자를 붙임
  • -l : 라인 수 기준으로 파일을 분할
  • -n 숫자 : 파일을 균등분할
  • -numeric-suffixes=지정날짜 

split service_txt service_txt_

==> service _txt_aa 가 생성

 

더보기

[root@server1 LABs]# split --additional-suffix=.zip services services_

[root@server1 LABs]# ls

services         services_af.zip  services_al.zip

services_aa.zip  services_ag.zip  test1

services_ab.zip  services_ah.zip  test2

services_ac.zip  services_ai.zip  test3

services_ad.zip  services_aj.zip

services_ae.zip  services_ak.zip

[root@server1 LABs]# rm -f services_*

 

[root@server1 LABs]# split -b 10m services services_

 

 


[root@server1 LABs]# split -l 1000 -d services  services_

[root@server1 LABs]# ls

services     services_03  services_07  services_11

services_00  services_04  services_08

services_01  services_05  services_09

services_02  services_06  services_10

 


[root@server1 LABs]# split -a 6 -l 10000  --numeric-suffixes=221009 services services_

[root@server1 LABs]# ls

services  services_221009  services_221010

[root@server1 LABs]# split -l 1000 -d services  services_

 

[root@server1 LABs]# ls

services     services_03  services_07  services_11

services_00  services_04  services_08

services_01  services_05  services_09

services_02  services_06  services_10

[root@server1 LABs]# rm -f services_*

services 파일을 나누는데 나눈 파일들은  221001부터 시작값을 지정해 주고

 총 30개 파일이 나올 수 있도록 균등하게 나누어 주세요

split -a 6 -n 30 --numeric-suffixes=221001 services services_

root@server1 LABs]# split -a 6 -n 30 --numeric-suffixes=221001 services services_

[root@server1 LABs]# ls

services         services_221008  services_221016  services_221024

services_221001  services_221009  services_221017  services_221025

services_221002  services_221010  services_221018  services_221026

services_221003  services_221011  services_221019  services_221027

services_221004  services_221012  services_221020  services_221028

services_221005  services_221013  services_221021  services_221029

services_221006  services_221014  services_221022  services_221030

services_221007  services_221015  services_221023

 

#cut == 추출 

cut [옵션] [파일명]

-d : 구분자를 지정 

-f :  그 구분자를 통해 가른 각각의 필드 추출

#awk : 데이터를 조회, 가공할 수 있도록 만드는 프로그래밍 언어, 원하는 특정 열, 패턴에 맞는 값만 추가

보통은 스크립트화 시켜서 사용  

-F : 필드 구분자를 지정해서 사용  " :|//" 

-f : awk 스크립트가 있을 시 해당 스크립트 실행 

 

#필드랑 레코드

NR == 레코드 == 행 == 가로== 'NR=숫자' 

NF == 필드     ==열 == 세로 == '$숫자'

NF 1   2  3  4

NR =1 손 차 박 이

NR=2 김 조 신 추

NR=3 티 야 베 요

검색 결과

NR==1 NF==1 - > 손

NR ==1         -> 손 차 박 이

awk [옵션] '찾을 조건 {print}' [대상파일]
awk [옵션] '찾을 조건 {액션}' [대상파일]
명령어 | awk [옵션] '찾을 조건 {액션}' 

액션 = sum, print, ../

awk 'NR==4 {print $1,$2}' /var/log/secure

awk '$3>=10:00'


awk 명령어로 /var/log/secure 에서 10:10분 이후에 들어온 로그만 출력해 보세요.


[root@server1 ~]# awk '$3>="10:10" {print}' /var/log/secure


#find :찾기

find [시작위치] [조건] [옵션]

*조건 

  • -name :파일명으로 찾기
  • -type : 파일의 타입으로 찾기
  • -perm : 파일의 권한으로 찾기
  • -size : 용량으로 찾기 (+ 붙이면 이상, - 붙이면 이하)
  • -user,group : 유저 혹은 그룹을 기준으로 (소유권자)

옵션

  • -ls: ls -l 명령어로 보여줌
  • -exec :  명령조건, 후술되는 명령어를 실행 (끝에 \, 명령어가 끝났음을 명시해줘야함)
  • -ok : 명령어 실행 여부를 묻지 말고 진행 


[root@server1 ~]# find / -name *.conf -user root -size -10k

find / -type f -exec rm '{}' /; (x) 사용하면 안좋아 

find / -type f\ ( -perm -4000 -o -perm


#와일드 카드 값

* 모든 해당 위치부터 문자열과 문자열 개수 상광벗이 모든값

? : 문자 하나의 자리 차지 

[ ] : [ ]안에 있는 모든 문자중 하나

[a-z]rv ==> arv brv crv ....

{} : {}안에 있는 모든 한단어,( 아무것도 적지 않으면 모든 결과 값)

 

# 이스케이프문자

본래 의미에서 탈락시켜서 활용할 때 사용.

; => 명령어를 끊냄 | \; => ' 세미콜론

a  => 문자 a|\a => 경고

\n  : 줄가름 

\t : 탭

\v : 수직 탭

(  )

#whereis [옵션] 명령 : 명령어 관련 파일, 소스들의 위치 출력

#wc : 대상 파일이나 명령어 결과의 라인, 문자, 글자 수 출력

[root@server1 ~]# wc -l /etc/services

11176 /etc/services

[root@server1 ~]# wc -c  /etc/services

670293 /etc/services

[root@server1 ~]# wc -w /etc/services

61033 /etc/services

#vi 리눅스 문서편집기

- 모드형 편집기, 화면단위 출력 

 모드 4가지 = 입력,명령, 마지막행, 비주얼

[root@server1 ~]# pwd

/root

[root@server1 ~]# vi .bashrc

# .bashrc

-----------------------------------------

# User specific aliases and functions

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

alias vi='vim'               ==> vi 를 불러와도 vim  으로 불러온다.

 


# Source global definitions

if [ -f /etc/bashrc ]; then

        . /etc/bashrc

fi

---------------------

shift : wq enter

---------------

[root@server1 ~]# source .bashrc


 e, i a,l O,A ==> 입력모드로 전환

r == >  현재 위치 글자를 입력한 값으로 수정

dd == > 현재 행을 잘라내기

dw ==> 한단어 삭제

d < == 삭제

x ==> 한글자씩 삭제

yy ==> 복제 

~ y는 복제구나!

똑같은 기능을 두번치면 행단위로 처리

p ==> 복제 혹은 잘라내기 한 결과 값을 붙여넣기 

u ==> 직전 명령 취소

g = > 맨 앞으로 이동

G = > 맨아래로 이동

숫자G = > 해당 라인으로 이동

^==> 행의 맨 앞으로 

$ -- > 행의 맨 뒤로 

/문자열 ==> 해당 문자열 검색

숫자% ==> 해당 문서의 비율 위치로 이동

 


ctrl + a/x : 숫자를 올림 /내림

더 자세한 내용은 

2023.03.15 - [Linux] - [Linux] vi 명령어

 

[Linux] vi 명령어

모드형 편집기 => 여러 모드가 있고, 그 모드들 마다 기능이 다른 편집기 화면단위 출력 vi 편집기의 모드 1. 명령 모드 처음 vi편집기를 실행 했을 때, 만나는 모드, 방향키 및 h,j,k,i키를 이용한 이

codejinjinh.tistory.com

 

728x90
반응형

'Linux' 카테고리의 다른 글

[Linux] Linux 환경  (0) 2023.03.18
[Linux] vi 명령어  (0) 2023.03.15
[Linux] 명령어  (0) 2023.03.14

댓글