Ubuntu Linux 2

준동이·2023년 6월 15일
0
post-thumbnail

시스템 사양 / 버전 확인 명령어



버전

lsb_release -a
어느 리눅스에서 작업하고 있는지.



시스템 버전



사용자 관련 파일

사용자 만든다는 개념

사용자에게 임시 공간을 주고 설정파일에 기록을 하면 사용자가 만들어지는 것


뒤의 경로는 로그인 했을때 어느 디렉토리에 접근했는지 / 로그인 디렉토리를 정하는것은 정해줄 수 있다. 하드디스크나 원격으로 가능



암호확인 - /etc/shadow

/etc/shadow

루트 사용자인 것 확인. 나는 master로 사용하고있어서 함부로 접근할 수 없다.
tail 하면 허가 거부가 난다



관리자 권한을 이용하여 보기 - sudo

암호는 나의 암호 적어줌
1번 : 로그인 ID
2번 : 암호가 암호화 된 것
3번 : 계정의 제약조건



/etc/group 파일

그룹 확인



암호 비교

sudo는 사용자의 생성이나 어떤 관리자 권한, 그래서 sudo를 사용

adduser로 tester3 생성 후 비밀번호 같게 설정 하고 암호 비교해보기
암호는 다 같지만 암호화 된 패턴들은 다 다르다. / mariadb는 똑같음



접근 하기

경로는 갈 수 있지만 직접적인 조회는 하지 못한다. 나는 지금 master이지만 보고싶은건 tester3이기때문.



다른 사용자에 접근하기

master에서
		tester3로접근하려면
        		1.재로그인
                2.임시로 권한을 얻어내기
                		su를 사용
                        su 사용자아이디
                        			현재 상태(위치)에서 잠시 사용자아이디(권한)를 빌리는 것
                        su - 사용자아이디
                        			재로그인 -> 사용자의 홈디렉토리로 이동
                



su 사용

su를 사용하여 master에서 tester3로 잠시 사용자 아이디를 빌렸음.

~(틸러) : 홈 디렉터리 라는 것. 그래서 tester3로 바뀌면서 홈 디렉터리가 바뀐다.



ls하면 허가 거부가 나오는 이유는 master로 돼있어서(/home/master) 그렇다
권한이 공통적으로 있는 상태에서 사용해야함.



exit으로 빠져나옴. / 임시적으로 저 파일과 내 파일이 공통적으로 있어서 관리하기 위해서 사용



잠시 tester3의 권한을 빌려서 작업 가능



사용자를 빌려서 사용하다보면 헷갈려서 내 상태가 무엇이였는지 모를 수 있는 문제가 생길 수 있으니 주의 !!



exit로 나올 수 있음.



su - 사용자아이디 : 재로그인

아까와는 다르게 사용자는 바뀌었지만 홈 디렉토리는 바뀌지않았다.
pwd로 확인한 결과 완전히 디렉토리가 바뀜 / 재로그인처럼 빠져나갔다가 접속한 느낌



exit 하면 로그아웃



skel - 홈 디렉터리에 복사할 기본 환경 파일의 위치

새로운 사용자를 만들었을 때 접근을 했더니 파일이 있는데, 파일이 있다는 것은 사용자 생성시 파일들이 자동으로 만들어진다는 것 인데 어떻게 만들어진 것일까 ?

이 파일들이



아까 만든 tester3사용자에 복사가 되는 것.



sudo su(잠시 루트로 로그인하겠다) 하고 touch readme.txt로 파일을 생성하였음.



그리고 tester4 사용자 생성 후 ls로 확인하면 readme.txt가 들어있는 것을 볼 수 있다.
디폴트로 세팅해서 더 넣어준것



사용자 지우기 - userdel : 관리자권한으로 사용(sudo)

tester4를 지웠지만 실제 디렉토리는 지워지지않았음.
원래는 디렉토리와 설정파일이 지워지는 것이 맞는데,
디렉토리는 일종의 자료라서 시스템쪽에서 분리를 해놨음
그래서 자료라서 나중에 시스템(관리자)가 지우고 설정을 지워주는것.
하지만 그럼 권한이 이상해짐.
그래서 숫자값으로 바뀐 껏



여기에서는 tester4 지워진 것 확인



전부다 지우기 - sudo userdel -r 이름(권장 X)

tester3을 다 지워줬지만, 이 방법은 권장하지는 않는다.



sudo rm -r 이름

tester4 강제로 지워줌



파일 접근 권한

파일 접근 권한 보호

1번 : 허가권
2번 : 소유자, 소유그룹
=> 1,2번으로 파일 접근 권한 보호함.



숙지





접근 권한의 변경 명령 - chmod







권한 보기

편리하게 cmd창 두 개 띄웠음.

위 cmd를 cmd1 밑의 cmd를 cmd2라고 지칭하겠음 !
cmd2에서 tester1로 접속



cmd1에서 mkdir dir1로 하면 허가 거부가 나는 이유는 디렉토리 권한이 root권한이여서 안됨
그래서 sudo로 해주었음.
ls로 확인 하였을 때 root라는 사용자가 755 권한으로 dir1을 만들었다는 것.



cmd2에서 dir1을 볼 수 있음.
외부에게 r 권한이 있어서 볼 수 있는 것.



cmd1에서 r 권한 빼기 / 750 으로 마지막 부분을 0으로 해서 권한 빼줬음.



그리고 cmd2에서 다시 실행하면 권한 없다고 뜬다. / cmd1에서 권한을 빼줬기 때문.



cmd1에서 754로 읽기 권한 생성하고 cmd2에서 확인하면 확인 가능



cmd2에서 파일 생성이나 dir1로 이동도 불가능.



실행권한 주기 755
755권한을 줘서 cmd2에서 cd dir1 변경 가능 / 하지만 여전히 파일 생성은 불가능.



757로 전 권한 다 줬음
전 권한을 다 줘서 dir1에 빛이 들어옴. 파일 생성도 가능.



cmd1에서 dir1에 757권한 주고 test.txt파일 생성 후 그 파일에게 660 권한을 주었음.



cmd2에서 dir1으로 들어간 cat test.txt 하면 허가거부됨.
왜냐하면 read권한이 없기때문.



하지만 cmd1에서 664로 권한을 준다면, 내용은 없지만 읽은 것 확인



cmd2에서 수정하려고 vi를 키면 보인다.
거기서 수정하고 :wq로 저장하고 나오려고하면 readonly로 돼있어서 안된다.
write 옵션이 없어서 그렇다.



cmd1에서 cmd2에 수정 할 수 있는 권한 주기 그럼 vi에서 작성 하고 :wq로 빠져나올 수 있음



실행

스크립트 작성

cmd1에서 vi test.txt



cmd1에서 667(x모드 추가)권한을 주기 전에는 cmd2에서 허가 거부가 떳지만 권한을 받고 난 후에는 출력해줌.



기호로 표현



주는 형식



권한주기 / dir2 생성 후 o+w로 x 권한 넣어주기 / sudo를 쓰는 이유는 현재 master인데 dir2는 root이기때문 / x 권한 빼기는 o-x 하면 된다.



기본 접근 권한 설정

기본 접근 권한



who - 내가 누구인지



디렉토리의 기본 권한은 775 / 파일은 665



초기 권한값

초기권한
		디렉토리 : 777
        파일 : 666 ( 실행권한이 빠진 상태 )
root
		디렉토리 : 755
        파일 : 644
일반사용자
		디렉토리 : 775
        파일 : 664



umask - 기본 권한 설정



사용자 정보 관리 명령



소유자 내용 바꾸기 - chown

소유자를 바꾸는 것은 root 권한이라서 sudo 사용 / 소유자와 소유그룹 바꿔줌
master로 바꿔줘서 master가 관리 가능



프로그램 설치

프로그램이 실행된 상태를 같이 파악해야한다.

프로그램이 실행되는 상태를 -> 프로세스 <- 스레드 (프로세스 안에) 
						프로세스
                        		부모 - 자식
                                - 데몬 프로세스
                                			서비스(시스템에서 실행되는 것 : 데몬)
                                - 고아 프로세스
                                			부모가 종료된 프로세스
                                - 좀비 프로세스
                                			프로세스가 종료되었는데 상태가 남아있음.
                                            
                        ps : 프로세스 상태 볼 수 있음.



ps - 프로세스 상태 보기

PID : 프로세스의 고유 ID값 / 모든 프로세스는 독립적으로 관리해야해서 PID값이 있음
TTY : 터미널 / 어느 터미널에서 실행 되고 있는지.
TIME : 시간
CMD : 명령어 / 터미널 빠져나오기 명령어 sh



실행 확인

vi를 실행했다가 나오면 vi 실행된 것을 볼 수 있음.



exit 하고 보면 다시 없어져있음.



조금 더 자세히 보기 ps a



ctrl + Alt +F3 후 tester3으로 로그인 후 위의 tty3 확인



돌아가서 확인해보면 tty3 돌아가고 있는 것 확인 가능



ctrl + Alt +F3 후 vi 키고 - ps a



다시 돌아가서 확인하면 vi1 실행되고 있는 것 보임 - ps a



사용자 확인

사용자까지 동시에 보이기 - ps au / 실행되고 있는 것들을 끄면 꺼진거 확인 가능( 없어짐 )



전체적인 프로세스 보기 - aux ( x 추가 )

무수히 많은 정보들이 나옴 / | more로 끊어서 보기도 한다.



검색해서 찾기 - | grep 검색어



유닉스 명령어 - "-"가 붙은 것

이런식으로 원하는 것 보기 가능 / master로 가져온 것만



프로세스 제어

프로세스 죽이기

-9 하면 죽여라 라는 것

그럼 죽었음 뜸



pstree 프로세스 종속 확인



top - 실시간 프로세스 상황을 볼 수 있음 (중요)

프로세스가 진행되고 있는 상태를 실시간으로 계속 바뀌면서 알려준다.



프로세스 데이터 가져오기

탭 간격은
:set tabstop=숫자 하면 숫자만큼 간격정해짐

컴파일 해주면

이렇게 gedit이 뜬다.



vi 말고 nano로 해보기

명령모드와 입력모드를 구분하지않아서 편할 수 있음.

파일 복사해주었음.



nano ProcessBuilderEx02.java

ps -a를 실행한 결과를 BufferedReader로 읽어서 한줄 씩 출력시키라는 것.



새창 켜서 확인해보기

컴파일 후 확인해보았음.
실행 하면 ps -a 한 결과가 출력이 된다.



foreground process / background process

foreground process - 전면 : 전면부에 돌아가는 것

background process - 후면 : 동시작업 가능
=> 데몬


sleep (잠시 멈춰있는 명령어)



sleep

뒤의 옵션만큼 잠깐 멈춤.

이렇게하면 10초동안 아무 것도 못한다.

10초 후에 풀림



backgroun 처리

sleep을 20 &로 특수기호 & 로 후면처리 하게 걸어줬고, ps로 확인하였을때 sleep이 걸려있는 것을 확인할 수 있음.
끝나고 ps로 확인하였을때 완료된 것 확인.



foreground 처리

gedit 하고 켜진 텍스트창에서는 작업이 가능하지만 cmd창에서는 작성을 해도 작업이 되지 않는다.



창을 닫고나서 실행이 됨.



&를 이용하여 백그라운드 실행을 시켜주어 텍스트 파일과 ls명령어의 동시 실행에 문제없게해줌 없으면 텍스트만 작동함



sleep 잠시 멈추기

ctrl + z



jobs로 확인 후 bg(background) 1번을 백그라운드로 쓰라는 것. 그래서 jobs가 돌아감



fg(foreground) 1도 가능



프로그램을 제공하는 형태

리눅스는 기본적으로 오픈소스라는 개념때문에 여러가지 인스톨할 수 있는 방법들이 있다.


프로그램 제공

1. 압축파일 형태
		1. 소스(일반적으로 C / C++로 만듦) - 소스 자체를 준다
        		소스파일 - 컴파일 - 설치 - 실행 하는 과정
        2. 실행파일 압축
        		압축해제 - 실행
                
2. 인스톨 파일 - 패키지 관리 도구
		* 배포판 마다 특성
        데비안(우분투 계열) - dpkg(Debian Package) : 확장자는 .deb
        레드헷 - RPM : 확장자는 .rpm
        
        * 다운로드
        		원격 다운로드(maven)
                데비안 - apt / apt-get
                레드헷 - yum
                
                
압축파일
		Tar(Tape Archiver : 묶음) + Gzip(압축) => tar.gz
        
        tar		xvf
        		cvf
                tvf
                uvf
                
                



tar 해보기

dir에 test.txt 폴더들 생성

tar cvf test.tar 으로 파일들을 test.tar에 넣어주고 ls로 확인해보면 test.tar 생성되어있음.

tar tvf test.tar 으로 test.tar에 들어있는 것 확인

test4.txt파일 생성하여 tar uvf(update) test.tar test4.txt 해서 파일 추가해줌
그리고 들어간 것 확인



압축 시키기 - gzip



압축 풀기



gzip 풀기



ls하면 gz 하나 남은거 볼 수 있음



풀기



txt 파일 삭제 후 ls 해주면 gz만 뜬다.



eclipse

브라우저에서 eclipse 다운로드

파이어 폭스 -> www.eclipse.org -> 오른쪽 상단 Download 클릭 -> GetEclipase IDE 2323-06에서 Download Packages 클릭 -> Eclipse IDE for Enterprise Java and Web Developers 에서 Linux X86_64다운로드

cmd에서 풀고 실행

현재 위치로 옮기고 ls로 확인

풀기

eclipse로 경로 바꾸고 ./eclipse로 실행 -> 그럼 정상적으로 이클립스 실행이 된다.



프로젝트 PPT

PPT나 pdf로

1. 주제(목표) : 어떤 것에 대한 사이트를 만들고싶어 !
2. 벤치마킹
		기획(컨텐츠) 벤치마킹 - 넣고싶은 내용
        				   - OpenAPI
        기능 벤치마킹	       - 개발하고 싶은 기능
        디자인 벤치마킹	   - 따라하고 싶은 디자인
        => 스크린 캡처로 제공
        
3. 간단한 메뉴 구성
			: 사이트 맵
            : 회원가입
            : 게시판
            : 공지사항
profile
개발자 꿈나무

0개의 댓글