23.06.14 : linux 다양한 기능, vi, nano ...

이준영·2023년 6월 14일
0
실행(서비스)을 위한 환경

platform
	Unix
    	Linux 패키지
        		데비안     - ubuntu
                					환경 구성 (환경 구성 위해 명령어 습득)
                                    	tomcat
                                        mariadb
                                  
                
                슬랙웨어
                레드햇
                
                
    MS
    	windows 10 / 11
        windows server
        
   
    MAC
    
    

🌼 ubuntu 로그인 / 다양한 기능

root
최상위 관리자( ubuntu에서는 최상위 관리자가 가려져 있고 직접 로그인하지 않음 )
암호 관리 잘해야 함

인스톨시 설정한 사용자 - root 권한 대체 (Master)

Gui - X-window
			Gnome
        	KDE

🌻 Cui(터미널,console) 환경에서 작업하기 ( ctrl + alt + f3 )

( shell에 명령을 주는 프로그램을 터미널이라고 함, 명령어를 어떻게 주냐에 따라 셸을 바꿀 수 있다.)

ctrl + alt + f2 누르면 원래 화면(X-window)으로 돌아 감.

이후 ctrl + alt + f4,f5,f6... 누를 때마다 새로운 터미널 창(console) 생김(f6까지)
(한글 먹지 않음, 쓰려면 복잡한 과정 거쳐야 한다)


저렇게 들어가면 한글 작동하는 터미널 사용 가능 함

이 터미널의 정보



🌻 리눅스의 기본 브라우저 : firefox

web에서 랜선 들어오면 vm이 공유기 역할을 하여 리눅스 네트워크가 돌아감

window에서도 vm로 인하여 연결이 가능하다!

이 컴퓨터가 살아있다라고 해석(리눅스 아이피임)


ubuntu 네트워크 설정(아이피 확인 등)




🌼 리눅스 터미널 명령어

프롬포트에서 다양한 명령어를 사용할 수 있다.

🌻 날짜 : date

오타시 오류문구도 나옴


도움말을 보고 싶으면 --help 사용, date에 대한 다양한 도움말이 나온다.


도움말을 참조하여 다양하게 date 사용 가능


man date라고 치면 더욱 자세한 도움말이 나온다.

enter : 한 자씩 읽어가게 내려감
space : 한 장씩 내려감
q : 종료



🌻 청소 : clear

화면 청소



🌻 종료 : exit

터미널 종료




🌼 명령어를 통하여 디렉토리 / 파일 다루기

ms window : 드라이브(가장 상위 개념) : hdd / usb / cd-rom

리눅스 : 드라이브 개념이 없고 directory 개념
		/ = root directory(최상위)


서브 디렉토리


root



🌻 pwd : 현재 작업 위치, home 디렉토리

home 디렉토리 : master클릭하면 바탕화면의 구성요소들 나옴



🌻 ls : 경로 정보 얻기

ls : 현재 디렉토리 내부에 파일 / 디렉토리 대한 정보를 줌

ls 디렉토리/파일 : 디렉토리 / 파일에 대한 정보를 줌 
			절대경로 : / 부터 시작
            상대경로 : . / ..
            ~ : 홈(로그인) 디렉토리
            
ls -l : 자세히 보기
ls -a : 히든 파일 보여줌
ls -al : 합성어(히든 파일 보이면서 자세히 보기)

ls


ls / : (root에 대한 정보 주는 것)


절대, 상대 경로


ls -l

잘라서 자세히 보기

drwx----- 4 master master 4096 ~~~

d : directory / file 구분

- : 지금 생각 x

4 : 링크 개수? (지금 생각 x)

ls -a : 히든 파일을 보여줌


ls -al ( a,l 합친 것) : 히든파일까지 보여주면서 자세히 보여 줌

d 없는 건 파일


윈도우에서 사용하는 방법도 사용 가능하긴 하다. (dir / vdir)




🌻 tab 2번 : 찾기, 자동완성 (대소문자 구분)

리눅스는 파일명, 디렉토리 대소문자 구분( 윈도우와 차이점 )

ex> l

l로 시작하는 것들이 많으면 제시어를 줌


~~로 시작하는 것이 하나면 자동완성 됨, 예시는 lo로 시작하는 것이 하나라 local로 자동완성 된 모습




🌻 cd : change directory - 작업 공간 변경

pwd가 바뀐다고 생각

작업 공간 / 로 바뀐 모습 (윈도우 cmd와 비슷함)


~ : home 디렉토리 (내가 로그인 한 디렉토리, 그냥 cd만 쳐도 되긴 한다.)


cd - : 내가 왔던 곳으로 돌아감 ( 예시는 ~에서 /home/master/ )

상대 경로도 사용 가능하나, 디렉토리와 그 경로들을 좀 알아야 수월하게 사용 가능하다.




🌼 directory 생성 / 삭제

디렉토리 / 파일 관련된 기본 명령어 - cui 기반

🌻 생성

mkdir dir1 : dir1을 생성하겠다는 뜻


이렇게 다량으로 만들 수도 있음


-p를 붙여서 폴더 안에 폴더안 생성 가능


-R : 반복적으로 수행해서 보여주는 것(위의 폴더 안 폴더 안 ... 보는 행위를 반복적으로 보여 줌)


🌻 삭제

rmdir (remove directory)

사용시 디렉토리 삭제되고 마찬가지로 동시에 지우기도 가능


-p 이용하여 폴더 안 폴더 ... 지우기



🌼 파일 / 디렉토리에 대한 정보

🌻 file ~~ : ~~의 정보(형식)를 줌



🌻 touch : 파일 생성

리눅스는 확장자 그렇게 의미 없음

파일과 디렉토리의 구분이 힘들어서 ls -l로 확인해주기(d가 있냐 없냐에 따라 디렉토리/파일 갈림)


🌻 cp : 복사

같은 디렉토리에서 복사


다른 디렉토리에 복사도 가능



🌻 mv : 이동

같은 디렉토리에서 사용하면 rename(이름 변경)


다른 디렉토리에서 사용하면 move(이동)



🌻 rm : 삭제

rm -r : 디렉토리가 파일이 있어도 지워짐, 사용 주의!!(rmdir : 파일이 있으면 디렉토리가 지워지지 않는다)

rm -fr : 강제로 지워버림, 사용 주의!!




🌼 viewer : 파일 내용 보기

cat
	head
    tail

먼저 파일 하나 복사( etc에 있는 passwd 파일 현재 디렉토리에 복사한 것)


cat 사용하여 파일 내용 보기(워드 개념은 아님)


-n으로 줄번호 추가


🌻 문서 만들기, 일부분만 내용 확인

cat > test.txt -> 간단한 텍스트 입력 후 저장 가능, 입력 후 ctrl+d 누르면 저장
후에 cat test.txt 사용하면 해당 입력한 내용 읽기 가능하다.


🌻 head : 처음에서 몇 줄(10줄)만 보기 가능


-n 3 : 3줄만 보기(db의 limit와 유사)



🌻 tail : 끝에서 몇 줄만 보기


마찬가지로 3줄만 보기


🌻 more

전체 긴 문서를 장(화면) 단위로 끊어서 보여줌

enter누르면 한 줄씩 / space 누르면 한 장씩 넘겨주고 카운트(%)로 알려준다. (종료는 q)




🌼 파일 링크 (바로가기)

심벌릭 링크: 원본 파일을 가리키는 새로운 파일을 생성(바로가기 파일 만드는 것)

ln(link) -s(심벌릭 링크) 바로가기 대상 바로가기 이름


-l로 확인하면 pass 확인 가능( 연결 역할을 함 )


(passwd 가 보여짐)


자바 jdk 설치


설치 후 버전 확인


파일 보면 바로가기가 있고 바로가기를 보면 바로가기가 하나 더 있음(맨 마지막이 본 내용)



🌻 응용 : cat 이용하여 public 클래스 구조 안에 HelloWorld 출력하는 구문 쓰기



🌼 grep : 파일 검색 / 위치 찾기

🌻 grep : 파일 내용 검색

root를 찾아서 보여줌 (-n 붙이면 라인 번호까지 알려준다)


찾아서 root.txt에 넣어줘 라는 뜻


파일 내용 검색( 더 찾아보기)



🌻 find : 파일 지정 위치 찾기

/usr 에서 이름이 ls인 파일을 찾는 것 (가끔가다 나오는 허가 거부는 root 전용 파일)




🌻 whereis : 명령의 위치 찾기

첫번째는 파일 위치, 두번째는 메뉴얼 뜻함


-b 붙이면 바이너리 파일만 찾아 줌




자바와 다르게 파이썬은 디폴트로 들어가있다. (종료는 exit() 입력 )


파이썬도 심벌릭 링크되어 있다.



🌼 문서 편집기(워드 x)

	GUI - gedit
    	- visiual Studio code
    
    Cui - vi, emacs, nano

shift + space로 한 영 변환 가능 (먼저 키보드 형식 한글로 바꿔주기)




🌼 vi

리눅스에 포함된 기본 에디터


터미널 창에 vi 치면 vi 실행 (종료버튼은 :q)


vi 업그레이드 설치


전에 만든 HelloWorld.java 편집

  1. vi 파일이름 입력하면 아래 창 뜸

  1. 기능 사용해보기
i : 끼워넣기 ( vi 안에서 입력할 수 있게 해주는 기능 )

wq : 저장하고 종료

:q! : 저장하지 않고 나가기

:q : 그냥 종료

i외 입력기능 참고

ex> /dir1/passwd m자 기준으로

i -> m 앞에 써짐


a-> m 뒤에 써짐


o -> 한 줄 건너뛰어서 써짐


I ->



🌻 응용 : vi 로 입력 후 저장(JFrame 써보기)

vi로 특정 파일 이름 만들고 실행


vi에서 i입력 후 작성하고 wq(저장하고 종료) 누르고 나가기


java 실행구문 써서 실행




🌼 커서 이동

참고1

참고2 : $ / ^ 잘 쓰임

참고3



🌻 특정 행 이동

특정 행 이동 위해서는 행 번호를 알야아 한다.

:set nu(set number) : 행 번호 추가

:set nonu(set nonumber) : 행 번호 삭제

50G - 50행으로 이동

:50 - 50행으로 이동

:$ - 마지막행으로 이동



🌼 vi에서 복사 / 삭제 기능

x : 한 자 지움

u : 살리는 것 (ctrl + z)

숫자 + x = 숫자만큼 지움(화면엔 안보임)

dw : 단어 지움, 특수문자는 따로 하나만 지워짐

dd : 잘라내기 (숫자 + dd = 숫자만큼 잘라내기 지움), p로 붙인다( 대문자 P : 윗 줄에 복사, 소문자 p : 아랫줄에 복사)

yy - p : 복사 (숫자 + yy p 하면 숫자만큼 줄 복사)



🌻 그 밖의 특정 행 지정하여 복사, 잘라내기, 붙이기



🌼 문서에서 검색하기

/~ : ~ 찾아준다 (아래방향으로 검색)

?~~~ : (위로 검색)

🌻 치환

:s/bin/xin -> bin을 xin 치환 (검색한 것 중에서 제일 처음인 것)

1번째에 bin이 있어서 1번째를 bin -> xin 치환


:%s/bin/xin/g -> 전체적으로 bin을 xin로 치환

마지막행까지 바꾼 모습



🌻 이외 치환 키




🌼 외부파일 불러서 붙이기

:r ~~~ : 외부파일 선택된 행에 붙임

:r HelloWorld.java로 붙인 모습



:w - 중간 저장 / :w 파일명 : 다른 파일명으로 저장

:w test.txt -> test.txt에 현재 파일 저장한다는 뜻




🌼 중간에 명령 처리하기

:! ls = 잠시 빠져나감 / esc 누르면 다시 돌아 감

esc누를 시 돌아간다.


:sh -> 완전히 빠져나감 / exit 치면 다시 돌아 감

누르면 돌아간다.




🌼 vi 처음부터 번호 뜨게 하기

vi .exrc 실행하고 안에 set nu 적기( home 디렉터리에서 사용해야 함!)


vi HelloWorld.java 들어가면 처음부터 번호가 있음




🌼 nano

vi와 비슷한 에디터

ctrl + ~로 기능 사용 가능

🌼 sudo

root -> /root
master -> /home/master

그 외 새로운 사용자 만들고 싶을 때 - root에 의해 만들 수 있는데,

								master가 root의 권한을 빌려서 사용하는 명령어 : sudo

sudo adduser 사용자id --> 새로운 사용자 생성 가능

  1. 사용자는 반드시 그룹을 같이 만들어야 한다.

  2. 비밀번호 경고 무시하고 치면 됨 (8자보다 작을 경우)


로그아웃 하고 로그인 화면 가면 사용자 추가된 것 확인


pwd로 현재 위치 확인


tail /etc/passwd로 사용자 정보 확인( tester1 추가된 것도 확인 )


암호는 tail /etc/shadow 에서 확인 -> 관리자 권한이라 sudo를 써서 확인 (암호는 암호화 되어있음)


사용자 정보 확인


사용자 그룹에 대한 정보


암호 바꾸기 passwd <-



응용 : 주민등록 번호 검사기

profile
끄적끄적

0개의 댓글