코딩하는 문과생
[리눅스] 생활코딩, 실행 본문
[백그라운드 실행]
멀티태스킹: 여러 개의 일을 하나의 화면에서 한다.
$ nano
# <html>
# </html>
# ctr + O(저장), hello.html
# ctr + z : 실행 중인 프로그램을 Background로 보낸다.
# 이 기능을 실행하면 명령어가 일시정지된다.
$ jobs
# 현재 백그라운드 작업하고 있는 프로그램 출력
$ fg
# foreground로 (+)부분을 불러온다.
$ vim
# vim에디터 실행
# ctr + z : 실행 중인 프로그램을 Background로 보낸다.
# 이 기능을 실행하면 명령어가 일시정지된다.
$ jobs
# 현재 백그라운드 작업하고 있는 프로그램 출력
$ fg %2
# 두번째 프로그램을 foreground로 불러온다.
$ kill -9 %4
# 프로그램 종료
# 백그라운드에서 프로그램 실행
$ ls -alR / > result.txt 2> error.log
# Recursive하게 '/' 아래 목록 결과를 result.txt와 error.log에 저장
$ ls -alR / > result.txt 2> error.log &
# Recursive하게 '/' 아래 목록 결과를 result.txt와 error.log에 저장
# 그러나 백그라운드에서 돌아간다.
[항상실행: daemon, service]
daemon: 항상 실행하고 있는 프로그램
- 냉장고: 언제 사용할 지 모르기에 항상 켜져있다. ex. Web Server
- TV: 필요할 때 켠다. ex. ls, rm, mkdir
우리는 만들어져있는 프로그램을 설치해보고, 그 daemon을 켜고 꺼볼것이다.
$ sudo apt-get install apache2
# 아파치 웹서버 설치
$ cd /etc/init.d/
# daemon의 목적을 가진 프로그램이 설치되는 경로
$ ls
$ sudo service apache2 start
# daemon 프로그램 시작
$ ps aux | grep apache2
$ sudo service apache2 stop
$ ps aux | grep apache2
# ***참고***
# 자동으로 실행되어야 할때
$ cd ..
# /etc
$ cd rc3.d
$ ls -l
# S02apache2(link), 바로가기 느낌
# S: 부팅시 자동실행 02: 우선순위
$ ./S02apache2
# 해당 명령어를 이용해 아파치를 실행할 수 있다.
[정기적으로 실행]
CRON: 정기적으로 명령어를 실행시켜주는 도구
ex. 정기적으로 백업, 정기적으로 데이터를 전송, 정기적으로 인터넷을 통해 시간 조정
$ crontab -e
# 하고자 하는 일을 정의할 수 있다.
# 1/* * * * *
# 1분에 한번
# ctr + Z(백그라운드 기능)
$ date > date.log
$ cat date.log
$ date >> date.log
$ fg
# 1/* * * * * date >> date.log
# ctr + x
$ crontab -l
$ cd ~
$ ls
$ tail -f date.log
# -f: 데이터가 추가되면 알아서 refresh된다.
$ crontab -e
# */1 * * * * date >> date.log 2>&1
# 2>&1: 표준에러를 표준 출력화
[쉘을 시작할 때 실행: Startup script]
$ alias l='ls -al'
# 'l'이라 입력하면 ls -al 명령 실행
$ alias ..='cd ..'
# 부모로 가능 명령
$ alias c='clear'
# 우리는 쉘을 실행할 때부터 사용하고 싶다.
# 쉘을 시작할 때 몇 가지 파일을 실행시킨다.
# bash는 시작할 때 .bashrc파일을 실행시킨다.
$ cd ~
$ nano .bashrc
# bash를 실행할 때 먼저 보는 파일 : startup script
# echo 'Hi, bash' 추가
$ bash
# Hi, bash
'개발 관련 지식 > 리눅스' 카테고리의 다른 글
[리눅스] 생활코딩, 리눅스를 서버로 활용하기 (0) | 2019.12.20 |
---|---|
[리눅스] 생활코딩, 다중 사용자 (0) | 2019.12.19 |
[리눅스] 생활코딩, 디렉토리, 파일, 프로세스 (0) | 2019.12.18 |
[리눅스] 생활코딩, CLI와 쉘 (0) | 2019.12.18 |
[리눅스] 생활코딩, 기본 명령어 (0) | 2019.12.16 |