CS/OS

[Linux] 생활코딩 리눅스 강좌 (4)

창문닦이 2019. 10. 7. 23:17

[프로세스와 실행]

  • 컴퓨터의 구조

    • 프로세스 : 실행되고 있는 상태의 프로그램.
      • 사용자가 입력한 명령어(command)
      • 명령어는 /bin이나 /sbin 같은 디렉토리에 파일 형태로 저장되어 있음.
      • 스토리지에 파일이 저장되어 있고 이를 프로그램이라 . 
    • CPU : 프로세서. cpu 굉장히 빠르게 동작하므로 스토리지의 속도가 따라오지 못함.
      • 스토리지에 설치된 프로그램을 사용할 , 프로그램을 읽어서 메모리에 적재.
      • 메모리에 올라온 프로그램을 CPU 수행.
    • 스토리지과 메모리는 정보를 저장하는 공통점이 존재.
      • RAM : DDR 같은 메모리. 가격 비쌈. 저장 용량이 적음. 속도 빠름
      • SSD, HDD : 저장장치. storage. 가격 저렴. 저장 용량이 . 속도 느림
  • 프로세스 모니터링

    • ps : 프로세스 리스트를 조회하는 명령어
      • 백그라운드에서 실행되는 모든 프로그램을 조회하고 싶다면 ps aux
      • apache라는 이름을 갖는 프로세스 조회 ps aux | grep apache
      • PID 프로세스 아이디. 프로세스가 지니는 식별자. 식별자를 통해 sudo kill {pid} 강제로 종료할 있다.
    • top htop 유사한 프로세스 모니터링 유틸리티.
    • htop
      • sudo apt-get install htop  : 설치
      • 컬럼을 클릭하면 이를 기준으로 정렬되어 조회할 있음
      • MEM% : 프로세스가 물리적인 메모리를 얼마나 사용하는지
      • TIME+ : 프로세스 실행시간
      • Command : 어떤 명령어가 실행됬는지
      • RES : 실제적인 메모리 사용량
      • Load average : CPU 점유율. ( 1/5/15분의 평균치)
  • 백그라운드 실행 (ctrl + Z , &)

    • 전환작업. 현재 사용하는 프로그램을 바꾸는 작업을 리눅스/유닉스 계열에서도 사용가능하다.
    • 사용하는 프로그램을 종료하지 않고 Ctrl+Z 누르면 포그라운드 프로그램과 백그라운드 프로그램을 변경할 있다.
    • jobs 명령어를 통해 백그라운드로 실행되는 프로그램을 확인 가능.
    • fg 입력하면 백그라운드에 있는 프로그램 진행화면으로 전환된다.
    • ls -R 현재디렉토리 뿐만 아니라 하위의 모든 디렉토리를 돌면서 리스트 출력
    • 명령어 다음에 & 입력하면 백그라운드로 해당 명령어를 실행하고 다른 명령어를 입력할 있다.
  • 항상 실행

    •  데몬의 개념
      • 데몬은 항상 실행되고 있다는 특성을 지닌다.
      • 서버에 해당하는 프로그램은 데몬에 해당된다.
    • service 자동실행
      • 서버중에 대표적으로 apache 존재
      • sudo apt-get install apache2 실행 /etc/init.d/apache2 아파치가 설치된다.
      • /etc/init.d 데몬 프로그램들이 위치하는 디렉토리
      • 프로그램들을 끄고 켜는 것은 일반적인 프로그램과는 다르다.
        • 대부분 service start, service stop으로 끄고 있다.
        • sudo service apache2 start 아파치 실행
        • sudo service apache2 stop 아파치 종료
        • ps aux 통해 프로세스 실행  여부 확인
      • /etc/rc3.d/ 운영체제를 CLI 구동
      • /etc/rc5.d/ 운영체제를 GUI 구동
      • 경로로 들어가면 심볼릭링크(윈도우로 치면 바로가기)들을 확인할 있다.
      • /etc/rc3.d/ 있는 심볼링 링크 이름의 의미는
        • S 서버가 시작될 함께 시작하는 데몬프로그램.
        • K 실행되지 않는 프로그램
        • 뒤에 숫자는 우선순위를 의미한다
        • 서버가 재기동될때 자동으로 실행되는 설정을 하고 싶다면 rc3.d 심볼릭링크를 걸면 된다.
  • 정기적 실행(cron)

    • 정기적으로 명령을 실행시켜주는 .
    • 정기적 백업, 전송, 피시 시간 조정 등에 이용
    • crontab -e 에디터 실행
    • m / h / dom / mon / dow / command
    • 실행주기 / 시간 / 매월 일자 / / dow 요일
    • crontab expression 참조.
    • */1 1분에 한번
    • 10 1 1 10분에 실행
    • */1 * * * * date >> date.log
      • 1분에 한번씩 일자와 시간을 date.log append 해서 기록
    • */1 * * * * date >> date.log  2>1&
      • 스탠다드 에러는 기록안되므로 것을 1(표준 출력)으로 리다이렉트해서 함께 기록.
    • crontab --help 통해 옵션을 확인할 있다.
  • 쉘을 시작할 때 실행

    • alias 별명을 의미.
    • alias l='ls -al' 이제 l 입력해도 ls -al 명령어가 수행된다.
    • alias ..='cd ..' 상위경로로 이동하면 alias 생성한
    • alias c ='clear' c 누르면 화면이 깔끔하게 지워짐
    • echo $SHELL 실행 확인 가능
    • 쉘이 실행될 .bashrc파일을 실행한다.
      • 현재 상태. 프롬프트 정보를 변경
      • 특정 명령을 실행 명령이 어딨는 순서대로 찾는일.
      • $PATH 변경
      • 이런 경우 시작될때  설정되도록 하기 위해서 설정할 있다.

[사용자]

  • 다중 사용자. multi user

    • 다중 사용자 시스템이 되면 복잡도가 상승.
    • 여러사람이 함께 쓰고 각자 권한을 가지고 있기 때문에 어떠한 문제점이 있을지 파악하는 것이 중요.
    • id : 로그인한 아이디를 확인할 있다.
    • who : 현재 시스템에 누가 접속했는지 확인할 있다.
  • 관리자와 일반 사용자

    • super user. root user. 전지전능한 권력을 지닌 사용자
      • 일시적으로 관리자의 권한으로 명령어를 실행해야 sudo 붙여서 수행.
      • 모든 일반유저는 sudo 사용할 있지는 않음.
      • super user인지 확인하는 방법
        • $ 일반사용자. # super user
      • su 명령어 : a 사용자에서 b 사용자로 변경하고 싶을 이용. switch user
      • su - root : super user 로그인.
      • sudo passwd -u root : 패스워드 잠금을 unlock
      • sudo passwd -l root : 잠금 설정
      • 홈디렉토리
        • 일반 사용자는 home하위에 존재.  /home/username
        • root 사용자는 최상위 디렉토리 하위.  /root   
  • 사용자의 추가 (임의로 hi라는 이름의 사용자 만들기)

    • useradd -m hi
      • m 옵션 사용시 사용자를 추가하면서 디렉토리도 함께 생성.
    • sudo passwd hi
      • 비밀번호 생성.
    • sudo usermod -a  -G sudo hi
      • 사용자의 권한을 수정해서 hi 사용자를 sudo그룹에 추가하기.

'CS > OS' 카테고리의 다른 글

[OS] 운영체제 기초  (0) 2020.02.29
[Linux] 생활코딩 리눅스 강좌 (5)  (0) 2019.10.08
[Linux] 자주 사용하는 명령어 정리2  (0) 2019.10.05
[Linux] 자주 사용하는 명령어 정리1  (0) 2019.09.28
[Linux] RPM 과 YUM  (0) 2019.09.27