*공부한 내용을 토대로 혼자서 정리하는 글입니다.
틀린 부분이나 보충할 부분 지적 언제든 환영합니다 :)
- 우분투는 기본적으로 apt라는 패키지 매니저가 내장되어 있음
입력 Code :
apt
apt
입력 시 위와 같은 메세지를 출력함
- 패키지 목록 갱신 :
apt update
(관리자 권한 필요)
- 패키지를 다운로드받을 수 있는 여러 저장소의 최신 정보를 업데이트함
새로운 저장소를 추가하거나, 패키지를 설치하기 전, 최신 정보를 갱신함
- 설치된 프로그램이 새로운 버전으로 변경되지 않음
- 업그레이드 가능한 패키지 목록을 출력 :
apt list --upgradable
- 전체 패키지 업그레이드(버전 업) :
apt upgrade
(관리자 권한 필요)
- 특정 패키지만 업그레이드(버전 업) :
apt --only-upgrade install 패키지이름
(관리자 권한 필요)
- 패키지 설치 :
apt install 패키지이름
(관리자 권한 필요)
- 설치된 패키지 보기 :
apt list --installed
- 패키지 검색 :
apt search 검색어
- 패키지 정보 확인 :
apt show 패키지이름
- 패키지 삭제 :
apt remove 패키지이름
(관리자 권한 필요)
- 패키지 설치/삭제 등의 작업을 진행할 때
sudo
명령어를 이용해서 관리자 권한을 획득해야 함
1.
sudo
권한을 얻지 않았을 때'are you root?' 라는 에러문구를 확인할 수 있음
2.
sudo
권한을 얻었을 때
1 )
프로세스
: 사용자가 프로그램을 실행하면, 운영체제로부터 실행에 필요한 메모리를 할당 받아 프로그램의 코드를 실행함. 이때의 프로그램을프로세스
라고 함.- 하나의 프로그램을 여러 번 구동하면 여러 개의 프로세스가 메모리 상에서 실행됨
2 )
스레드
: 코드가 실행되는 하나의 흐름이기 때문에, 한프로세스
내에스레드
가 두 개라면 코드가 실행되는 흐름이 두 개 생긴다는 의미
3 )
멀티 스레드
: 애플리케이션 내부에서의 멀티 태스킹
- 애플리케이션 단위의 멀티 태스킹을 의미하는멀티 프로세스
와는 다름
- 포그라운드(foreground)
: 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기다려야 하는 방식
- 백그라운드(background)
: 프로세스가 실행되는 동안 뒤에서 다른 프로세스가 실행될 수 있으므로 한 터미널에서 여러 개의 프로세스를 동시에 실행하는 방식
- 명령어 뒤에
&
를 붙여서 실행하고, 다른 명령어를 추가적으로 입력할 수 있음
but, 백그라운드 방식으로 실행해도 사용자의 터미널 세션이 종료되면 실행중인 프로세스도 종료됨
따라서 작업시간이 오래 걸리는 작업인 경우nohup
명령어를 이용하여 백그라운드로 실행하면 사용자의 터미널 세션이 종료되어도 작업이 종료될 때까지 프로세스를 실행
1 )
ps
: 현재 실행 중인 프로세스의 목록을 확인할 수 있음- PID : 프로세스 번호
- TTY : 프로세스가 실행된 터미널의 종류와 번호
- TIME : 프로세스 실행 시간
- CMD : 실행되고 있는 프로그램의 이름(명령)
2 )
pstree
: 컴퓨터의 전체 프로세스를 구조화하여 확인하고 싶을 때 사용
jobs
명령으로 확인 가능함-
[ 1 ]
혹은[ 2 ]
라고 되어 있는 기호는 작업 번호를 의미함
-+
기호로 표시된 프로세스는 현재 처리되고 있는 작업을 의미하며,-
기호는 다음에 작업할 프로세스를 의미
- 다수의 프로세스가 백그라운드에서 작업하는 도중에 필요하다면,fg %작업번호
명령을 사용하여 포그라운드로 전환
kill
명령을 사용
kill -l
명령을 사용하면, 사용할 수 있는 시그널의 종류를 확인 가능
- 자주 사용하는 시그널
- SIGHUP : 재시작할 때 사용
- SIGINT : 실행 중지 시그널,
Ctrl + c
- SIGKILL : 프로세스 강제 종료
- SIGTERM : 프로세스 정상종료 (기본 명령)
- SIGCONT : 정지된 프로세스 실행
- SIGSTOP : 터미널에서 입력되는 정지 시그널
- SIGTSTP : 실행 정지 후 재실행 대기,
Ctrl+ z
1 )
표쥰 스트림
: 일반적으로 동작하는 프로그램은 실행 시, 자동으로 열리는 세 개의 스트림- 스트림(stream)이란?
하드웨어 장치별로 입력과 출력을 위한 설정 작업을 따로 하는 것이 아니라 파일을 읽고 쓰는 한 가지 작업으로 통일했고, 이 파일에 들어오고 나가는 데이터의 흐름
2 )
stdin
(Standard Input) : 표준 입력은 프로그램으로 들어가는 입력값의 데이터(보통은 문자열) 스트림모든 프로그램이 입력을 요구하지 않으며, 대표적인 예로는 비밀번호를 입력할 때 이러한 표준 입력 스트림을 사용
3 )
stdout
(Standard Output) : 표준 출력은 프로그램이 출력 데이터를 기록하는 스트림표준 입력과 마찬가지로 모든 프로그램이 출력을 요구하는 것은 아님
4 )
stderr
(Standard Error) : 표준 오류는 프로그램이 오류 메세지나 진단을 출력하기 위해 일반적으로 쓰이는 또다른 출력 스트림
1 )
리다이렉션
(Redirection) : 표준 스트림의 흐름을 바꿔 파일로 표준 입/출력을 할 수 있도록 함
<
혹은>
를 이용하여 나타냄-
>
를 사용하는 경우입력 Code :
ps aux > jam.txt
// 명령어 > 파일
-
<
를 사용하는 경우입력 Code :
head < jam.txt
// 명령어 < 파일
head
명령은 파일의 처음 부분을 설명한 라인(line)만큼 출력하는 명령, 기본값으로 10줄이 세팅됨
- 응용
입력 Code :
head < jam.txt > jjam.txt
// 명령어1 < 들어오는 파일 > 나가는 파일1 -
jam.txt
의 내용을head
명령의 입력 스트림으로 전환하여 전송
2 -head
명령은 입력 받은jam.txt
의 내용에서 처음 10줄을 출력
3 -head
명령의 출력 스트림을jjam.txt
파일에 연결
4 -head
명령의 출력 스트림은 결과를jjam.txt
파일에 저장
2 )
파이프
(pipe) : 어떤 명령의 결과를 다시 어떤 명령의 입력으로 받아야 할 때 사용되며, 프로세스1의 출력 스트림을 프로세스2의 입력 스트림으로 사용할 때 파이프 기호|
를 사용하여 아래와 같은 형식으로 작성ex ) process1
|
process2입력 Code :
ls -l | grep ssh
ls -l
명령으로 표준 출력을 하고, 출력 된 내용을ssh
이라는 인자를 전달 받는grep
명령에 표준 입력으로 전달*
grep
: 특정 문자열을 찾으려고 할 때 사용하는 명령
자주 보고 익히자