본문 바로가기
공부/Linux

리눅스(3)

by 드인 2019. 8. 20.

IO Redirection

- I(Input)O(Output)

1. Output

 1) ls -l > result.txt : result.txt로 파일 목록 저장

 2) cat result.txt : result.txt에 저장된 것 보여줌

- Refirection : 출력되는 방향을 돌려서 다른 곳에서 출력

- Review:UNIX Programs : slideplayer.com/slide/5126304

- 프로세스

ex) ls -al (입력) => 출력

- [파일로 출력(실행결과)할 프로세스] > [파일]

- 프로세스 : 유닉스 계열에서 어떤 프로그램이 실행된 것

- 프로세스 출력 결과

 1) Standard Output(>(redirection)) : 1>

 2) Standard Error : 2>, 에러에 대한 redirection

 ex) rm rename2.txt 1> result.txt 2> error.log

     : 에러가 없다면(1>) result.txt로 저장하고 에러가 있다면(2>) error.log에 에러를 저장

 

2. Input

- 프로그램 : 컴퓨터나 하드디스크 또는 SDD에 저장되어있는 그 코드

- 프로세스 : 프로그램이 실행되고 있는 상태

- 유닉스 프로세스는 하나의 입력과 두개의 출력이 존재

- Standard Input (<)

- cat : 사용자가 키보드를 통해서 입력한 정보를 Standard Input으로 받음, ctrl+D로 나가기 가능

 1) cat [파일명] : Command line argument를 통해 전달한 입력 값

 2) cat < [파일명] : 파일에 있는 정보를 입력으로 받음, Standard Input를 통해 전달한 입력값

- head -n1 [파일명], head -n1 < [파일명] 

- head -n1 < [파일명] > [전달하여 출력할 파일명]

 

3. 추가적인 내용

- ls -al >> result.txt : 이전 출력 결과에 추가로 출력

- >> : Redirection한 결과를 덧댐, 추가함

- mail [메일주소] <<[문장을 끝낼 때 사용할 문자]

- ls -al > /dev/null : 실행 결과를 파일과 화면에 모두 출력하지 않음

 

 

쉘과 커널

1, SHELL VS KERNEL

- 쉘 : 사용자가 명령을 입력하면 그 명령을 컴퓨터가 이해할 수 있도록 하는 프로그램

- 커널 : 물리적인 기계(하드웨어)를 직접적으로 제어하는 운영체제에서 가장 중심이 되는 코아

- [ [ [ [ 하드웨어 ] 커널 ] 쉘 ] 어플리케이션 ]

 

2. BASH VS ZSH

- echo "출력한 문장"

- echo $0 : 쉘이라는 카테고리에 속하는 사용하고 있는 구체적인 제품 중에 한 프로그램(bash) 사용

- zsh 설치 후 echo $0 입력하면 zshell로 동작하고 있는 것을 확인할 수 있음

 => 커널에서 만들어진 결과는 zshell를 통해 화면에 출력됨

 1) zshell

 - cd + 탭키 : 숨김 디렉터리 표시 안함

 - cd /h/u/w + 탭키 : 자동으로 완성해서 /home/ubuntu/why 로 이동

 - cd why dir1 : /home/ubuntu/dir1 으로 이동

 2) bash

 - cd + 탭키 : 숨김 디렉터리(.으로 시작)를 표시

 - cd /home/ubuntu/why : /home/ubuntu/why로 이동

 

 

쉘 스크립트

1. Shell Script 소개

- 쉘 스크립트를 통해 자동화된 작업을 처리할 수 있음

- *.log : 확장자가 log인 모든 파일 가르킴

- cp [파일명].[파일 확장자] [백업할 디렉토리] : 백업할 디렉토리로 파일 백업, 백업할 디렉토리가 없다면 새로 만듦

 

2. Shell Script 사례

- bash의 위치 : ls /bin (기본 프로그램의 위치)

- bash의 스크립트 작성

 1) nano backup

 2) #!/bin/bash : bin 밑에 있는 bash라는 프로그램을 통해서 해석해야한다는 뜻

 3) if ! [ -d bak]; then   (현재 디렉토리에서 bak 라는 디렉토리가 없다면)

            mkdir bak      (bak 이라는 디렉토리를 만듦)

    fi                         (if 문 종료)

    cp *.log bak           (.log로 끝나는 모든 파일을 디렉토리로 포함함)

 4) ctrl + s 누르고 y

 5) chmod +x backup : ls -l 시 x생김(x : 실행 가능한 파일), 파일을 실행 가능하게 만듦

  - chmod : change mode, +x : x 추가

 6) rm -rf bak

 7) ./backup : 현재 디렉토리에 있는(./) backup 파일 실행

 8) log 파일 하나 삭제후 ./backup 해도 오류 안뜸

 

 

디렉토리의 구조

- 리눅스(유닉스 계열)의 디렉토리 구조

- linux directory structure

 1) / (root) : 데이터를 저장하는 최상위 디렉토리

 2) /bin (User Binaries) : 사용자들이 사용하는 명령들이 위치

  -  Binary : 실행가능한 프로그램

 3) /sbin (System Binaries) : root user나 시스템을 관리하는 목적을 가진 사용자들이 사용하는 프로그램 위치

 4) /etc (Configuration Files) : 설정(프로그램이 동작하는 방법) 파일

  - Configuration : 설정 -> 프로그램이 동작하는 방법을 바꾸고 싶을때 바꿈

  - # : 주석

 5) /var (Variable Files) : 바뀔 수 있는 특성을 가짐

 6) /tmp (Temporary Files) : 임시 파일 저장

 7) /home (Home Directories)

  - cd ~ : 현재 사용자의 home Directory로 한번에 이동

 8) /lib (System Library) : 공통으로 사용되는 라이브러리 보관

 9) /opt (Optional add-on Application)

  - whereis htop : htop 위치 알려줌

 10) /usr (User Programs)

 

 

프로세스

- 프로세스 : 실행되고 있는 프로그램

1. 컴퓨터의 구조

 1) Storage : SSD, HDD -> 프로그램 저장

  (1) 가격이 쌈

  (2) 저장 용량이 큼

  (3) 속도 느림

 2) Memory : RAM -> 프로그램 실행시 메모리에 적재

  (1) 가격이 비쌈

  (2) 저장 용량이 작음

  (3) 속도 빠름

 3) Processor : CPU -> 프로세서에 의해 처리

 4) Program : Command가 /bin, /sbin에 파일 형태로 저장되어 있는 것

 

2. 프로세스 모니터링

 1) ps

  - ps : 프로세스 리스트를 보여줌

  - ps aux : 백그라운드에서 실행되는 프로세스까지 포함하여 보여줌

  - ps aus | grep apache : apache라는 이름을 가진 프로그램을 찾음

  - PID : 포로세스 아이디, 식별자

  - sudo kill [프로세스 아이디]  : 프로그램 강제로 정지

 2) top

 3) htop

  - RES : 실제적인 메모리 사용량

  - Load average : CPU의 점유률 (1, 5, 15분간의 CPU의 점유율 평균치 표시), 코어 숫자에 따라 달라질 수 있음

 

 

 

 

 

'공부 > Linux' 카테고리의 다른 글

리눅스(6)  (0) 2019.08.25
리눅스(5)  (0) 2019.08.23
리눅스(4)  (0) 2019.08.21
리눅스(2)  (0) 2019.08.11
리눅스(1)  (0) 2019.08.07