2023년 12월 14일 목요일

연금저축펀드 채권형 ETF

2023-12-15

Kodex CD금리액티브 ETF
운용보수(연): 0.02%
순자산 총액: 58,741억원
상장일: 2023년 6월 8일
보통위험(4), 1.88(6개월)
기초지수: KAP 양도성예금증서 (CD) 금리 지수

KODEX 단기채권
운용보수(연): 0.02%
잔존만기 1년 미만의 국고채와 통안채에 투자
KRW Cash 지수 (총수익)를 추적
전일 YTM : 3.32%, 듀레이션(년) : 0.49
배당: 2023년 6월 8일 신규 상장하여 아직 별도의 배당은 없음
4등급 (보통 위험)
시가총액: 2,253억
상장일: 2023년 6월 8일

Kodex 단기채권PLUS
총보수 (운용보수): 연 0.150% (0.120%)
잔존만기 1년 미만의 무위험등급 국고채부터 AA-이상의 우량회사채에까지 투자
KRW Cash PLUS Index(총수익)의 수익률을 추적
전일 YTM : 3.65%, 듀레이션(년) : 0.47
기초지수: KRW Cash PLUS Index Total Return
듀레이션: 채권: 0.73 년 / 펀드: 0.57 년
6등급 매우낮은위험
순자산: 12,241.2 억원 (2023.11.17 기준)
상장일: 2015.03.03

2023년 12월 4일 월요일

우분투에서 특정 패턴의 설치된 패키지의 용량을 보는 방법은?

copilot 답변

우분투에서 특정 패턴의 설치된 패키지의 용량을 확인하려면 dpkg-query 명령어를 사용할 수 있습니다. 이 명령어는 설치된 패키지의 정보를 조회하는 데 사용됩니다.

다음은 특정 패턴(예: ‘python’)이 이름에 포함된 모든 패키지의 용량을 확인하는 방법입니다:

dpkg-query -Wf '${Installed-Size}\t${Package}\n' | grep python | sort -n

이 명령어는 다음과 같이 작동합니다:

  • dpkg-query -Wf '${Installed-Size}\t${Package}\n'는 설치된 모든 패키지의 이름과 설치 크기를 탭으로 구분하여 출력합니다.
  • grep python은 출력된 패키지 중 'python’이 이름에 포함된 패키지만 선택합니다.
  • sort -n은 선택된 패키지를 설치 크기로 정렬합니다.

이 명령어를 실행하면, 'python’이 이름에 포함된 모든 패키지와 그 패키지의 설치 크기가 출력됩니다. 이때 설치 크기는 킬로바이트(KB) 단위입니다. 이 명령어를 사용하여 원하는 패턴의 패키지 용량을 확인할 수 있습니다. 이 명령어는 터미널에서 실행해야 합니다. 이때, ‘python’ 대신 확인하려는 패턴을 입력하면 됩니다. 이 명령어는 관리자 권한이 필요하지 않습니다. 이 명령어는 패키지가 설치된 용량을 보여주므로, 패키지가 설치되지 않은 경우에는 해당 패키지의 용량을 확인할 수 없습니다. 이 명령어는 패키지의 압축 해제된 크기를 보여주므로, 패키지 파일(.deb 파일)의 크기와는 다를 수 있습니다. 이 명령어는 패키지의 설치 크기만 보여주므로, 패키지가 사용하는 데이터나 설정 파일의 크기는 포함하지 않습니다. 이 명령어는 패키지의 최신 버전의 크기만 보여주므로, 이전 버전의 패키지의 크기를 확인하려면 해당 버전의 패키지를 설치해야 합니다.


2023년 8월 8일 화요일

우분투 (Ubuntu) 18.04 세팅


* disk automount 설정하기
해당 파티션 메뉴에서 '마운트 옵션 편집' 선택

* Failed to load module “canberra-gtk-module” 에러 메시지 수정하는 방법
sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
참조

* SHIFT + ARROW KEY in numeric keypad 가 선택으로 되지 않는 이슈
/etc/default/keyboard 파일에서 아래 항목을 변경하고 리부팅.
XKBOPTIONS=""
to
XKBOPTIONS="numpad:microsoft"
참조

* gksu 명령어 사리짐.

gksu는 gnome 환경에서 사용하던 sudo 명령어인데, admin://<파일 경로> 사용하면 됨.
예제> gedit admin:///etc/samba/smb.conf

* 터미널 세팅 변경
  1. 마우스 오른쪽 → Preferences (기본설정) > Shortcuts (바로가기) 에서 단축키를 변경할 수 있다.
  2. Reset and Clear : Alt+Q
  3. Switch to Previous Tab : Alt+Left
  4. Switch to Next Tab : Alt+Right
* Samba GUI configuration tool 작동하지 않는 문제 해결법

예전에는 메뉴에 연결이 있었던 것 같은데 없어진 것 같음.
아래와 같이 실행하면 됨.
앞으로는 /etc/samba 안에 설정 파일을 직접 고치는 것을 권장하는 것인가?
많이 복잡하진 않으니 직접 고치는 것도 좋을 듯.
sudo touch /etc/libuser.conf
sudo system-config-samba

** samba 설정 with command line

sudo smbpasswd -a test
: test는 smb 계정명, 저는 리눅스 계정명과 동일하게 사용함

sudo vi /etc/samba/smb.conf
: 하기 내용 추가 함.
[test]
    comment = User Account
    path = /home/test
    valid users = test
    guest ok = no
    browseable = yes
    writable = yes
    create mask = 0644
    directory mask = 0755

sudo /etc/init.d/smbd restart
: 수정한 설정 적용을 위해서 서비스 다시 시작

* vmplayer 에서 Window guest 종료 시 죽는 현상 해결
sudo apt install libaio1

vmplayer 3D 설정
VMware® Workstation 15 Player 15.0.2 build-10952284 사용중.
vmplayer 실행 시 3D 그래픽 기능을 찾지 못한다는 에러가 나옴. intel HD 630 사용.
이를 해결하기 위해서 진행 된 내용.
에러도 나지 않고 예전보다 그래픽 속도도 향상되었음.

아래 패키지 인스톨은 의미가 있는 것인지 모르겠음.
sudo apt install mesa-utils
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt install xserver-xorg-video-intel
sudo apt install mesa-vulkan-drivers
sudo apt-get dist-upgrade

아래 내용은 확실한 효과가 있었음.
vi .vmware/preferences 에 하기 라인 추가
mks.gl.allowBlacklistedDrivers = "TRUE"
  • Wayland 환경에서 vmplayer 사용시 클립보드 내용이 guest와 host 사이에 전달이 되지 않는 문제점 있음.
  • vmplayer 사용시 간혈적으로 전체 시스템이 죽는 경우(화면 freeze, 키보드 먹통) 발생
    하여 kernel 4.20.16 로 업그레이드 하여 한달 이상 사용해 본 결과 죽는 현상은 조금 줄어 들었으나 여전히 간혈적으로 죽어서 다시 원래 버전으로 복귀 하였음.
  • 위 이슈와 별도로 전체화면에서 윈도우 종료하면 마지막에 항상 segfault 발생. 커맨드 라인으로 실행하여 로그메시지로 확인. 화면 상으로는 문제가 보이지 않음.
  • kernel 업그레이드에는 ukuu 툴을 사용하였음. 설치방법
  • logs (GUI) 라는 프로그램을 사용하면 시스템 로그를 보는데 편리함.

* 3D 테스트 프로그램
https://www.howtoforge.com/tutorial/linux-gpu-benchmark/
sudo apt install glmark2
https://benchmark.unigine.com/heaven?lang=en

* 기본폴더 영문 이름으로 변경 (다시 설치 할때 아예 영문 버전으로 설치했음)
언어를 한글을 선택하여 설치하면 기본 폴더('다운로드' 등)가 한글로 세팅되어,
개인적으로는 command line을 많이 사용하는 관계로 불편한 점이 있다.
아래 2개의 명령어만으로 영문폴더명으로 변경할 수 있다.
유의사항은 기존 폴더에 추가한 파일이 있다면 삭제하고 진행하도록 하자.
추가된 파일을 삭제하지 않으면, 기존 한글 폴더 이름이 변형되면서 완전히 삭제되지 않는다.

export LANG=C
xdg-user-dirs-gtk-update

* 개발시 설치해야 하는 패키지
sudo apt install build-essential python git silversearcher-ag
sudo apt install python3-distutils // yocto 빌드에 필요
sudo apt install bison // uboot 빌드에 필요

* MINICOM 세팅
sudo apt install minicom
sudo minicom -s : 셋업메뉴로 바로 진입
-> Serial port setup -> A 누름 -> Serial Device : /dev/ttyUSB0
-> E 누름 -> 921600 8N1, Flow Control No -> Enter -> Save setup as dfl (enter)
default  값은 home 폴더에 .minirc.dfl 이름으로 저장됨

* 작업공간 변경
sudo apt-get install gnome-tweak-tool
- "기능 개선" 앱 실행
- 작업 공간 탭 선택 -> 정적 작업 공간 배치 선택
  -> 작업 공간 수 : 2 변경 -> 여러 디스플레이로 작업 공간 확장 선택
- 최상위 표시줄 선택 -> 날짜 켬

백업한 home 폴더의 .ssh 복사
git config --global user.name "name"
git config --global user.email "email"

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
sudo update-alternatives --config python
python 버전 변경, 기본으로는 2.7을 사용

** dash 대신 bash로 기본 쉘을 바꾸기
sudo dpkg-reconfigure dash
"NO", "아니오" 를 선택
ls -al /bin/sh
lrwxrwxrwx 1 root root 4 10월 20  2017 /bin/sh -> bash

* alt-tab 이 기본적으로 앱 전환인데 창 전환으로 변경하면 편함.
ubuntu 설정 -> 장치 -> 키보드 -> '전환'으로 찾기
-> 창 전환을 "Alt+Tab" 으로 변경, 앱 전환을 "Super+Tab" 으로 변경
출처

* Disable Hot Corner feature.
> gsettings set org.gnome.shell enable-hot-corners true

* apt 관련하여 에러발생한다면 /etc/apt 폴더를 살펴보자.















2023년 2월 22일 수요일

fd 사용법

리눅스 빠른 찾기 프로그램
find 보다 훨씬 빠름
사용하기 쉬운 구문
기본적으로 숨겨진 파일 및 디렉토리는 찾지 않음
.gitignore 를 참조 기능 있음
유니코드 인식

설치 방법
$ wget https://github.com/sharkdp/fd/releases/download/v7.3.0/fd-musl_7.3.0_amd64.deb
$ sudo dpkg -i fd-musl_7.3.0_amd64.deb

index 문자열을 포함한 파일을 찾고 싶다면
fd xyz

숨겨진 파일(dot(.)로 시작 하는 파일??)을 찾고 싶다면
fd -H xyz

ignore 파일 등에 의해서 무시되는 파일도 검색하고 싶다면
fd -I xyz

jpg 확장자를 가진 파일을 찾고 싶다면
fd -e jpg

php 확장자를 가지고 index 문자열을 포함한 파일을 찾고 싶다면
fd -e php xyz

일부 결과를 제외하고 싶다면
fd -e php index -E wp-content

검색 디렉토리 지정 하고 싶다면
fd jpg ./wp-content/

디렉토리(filetype)만 찾고 싶다면, 
fd -t d TV

filetype 종류
f : regular files
d : directories

찾은 파일에 대해서 추가 명령을 실행하고 싶다면
fd -e jpg -x chmod 644 {}

모든 폴더의 오브젝트 파일만 찾아서 지우고 싶다면
fd -I -e o -x rm {}

대괄호에 대한 자세한 설명
{} : ( wp-content / uploads / 01.jpg ) 전체 경로 전달.
{.} : ( wp-content / uploads / 01 ) 위와 유사 하지만 파일 확장자는 제외됨.
{/} : (01.jpg) 파일 이름만 전달.
{//} : ( wp-content / uploads ) 경로의 상위 디렉토리만 전달.
{/.} : ( 01 ) {/} 에서 확장자가 제외됨.

https://zetawiki.com/wiki/Fd-find
https://www.tecmint.com/fd-alternative-to-find-command

Linux(리눅스) fg, bg, kill, Ctrl+Z


swap 비율 설정
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=60
: default 값. 60이면 보통 메모리의 80% 이상 사용 시 부터 swap 시작됨

현재 작업 상태 보기
'jobs' 라는 명령어는 background 작업들과 상태들을 나타내 줍니다.

$ jobs
[1]   Stopped     emacs
[2]-  Stopped     vi
[3]+  Stopped     python3

Background에서 작업 실행하기
만약 시간이 오래 걸리는 작업이 있다면 background에서 실행해보시는 것은 어떠한가요?
단지 명령어 뒤에 '&' 를 붙여서 실행하시면 background에서 실행됩니다.

$ cp a.zip b.zip &

Foreground 작업을 Background로 옮기기
작업이 빨리 끝날 것이라고 예상하고 실행했지만 엉겁의 시간이 지나도 끝나지 않을 때,
현재 작업은 놔둔 상태로 다른 작업을 실행하고 싶을 때
Ctrl + Z 를 눌러서 뒤로 돌아갈 수 있습니다.

$ vi
Ctrl + Z
[4]+  Stopped     vi


이제 작업들이 멈추었습니다. Background 에서 작업을 실행하기 위해 'bg' 명령어를 사용합니다.

$ bg %1

여기서 '1' 은 작업의 ID값으로 'jobs' 명령어를 통해 앞에 나오는 숫자로 ID값을 알 수 있습니다.

Background 작업을 foreground로 옮기기
Background에서 실행되고 있는 작업을 foreground로 옮기기 위해서는 'fg' 명령어를 사용하면 됩니다.

$ fg %1

작업 끝내기
작업을 끝내거나 죽이기 위해서는 'kill' 명령어를 사용합니다.

이 명령어는 프로세스를 끝내기 위해서도 사용하는 명령어인데 전달되는 매개변수에 의해 어떤 행동을 할지 결정됩니다.

$ kill %1

이 명령어를 사용할 때 '%'를 빼먹지 않도록 주의하여야 합니다. 만일 빼먹게 되면 PID 1 인 'init'이나 PID 2 인 'kthread' 를 종료하게 되는데 컴퓨터를 재부팅 해야 할 수도 있습니다.
(매우 중요한 작업중이고 저장을 안했다면..)

Background 작업을 중지시키기

이 부분이 좀 까다로운데 바로 background 작업을 중지 시킬 수는 없습니다.
따라서 약간의 명령이 더 필요합니다.

먼저 jobID를 알아내고, 작업을 foreground로 가져오고 Ctrl + Z 를 눌러 중지시킵니다.

(^Z 는 Ctrl + Z 를 누른 것을 나타냅니다.)





1. 프로세스(Process) 관리

(1) 개요 : 리눅스는 한번에 수백개이상의 프로그램을 동시 수행할 수 있다. 이러한 하나하나의 프로그램을 프로세스라 부르며 내부적으로 번호가 붙어 관리된다. 프로세스는 크게 두 가지로 나눌 수 있는데, 사용자의 입력에 관계없이 실행되는 background process와 입력 후 수행종료까지 기다리는 foreground process가 있다.

(2) 프로세스의 종류
1) 포그라운드(Foreground) 프로세스
ㄱ. 설명: 일반적으로 쉘상태에서 명령을 내리면 해당 프로세스가 종료될 때까지 기다려야 한다. 이러한 프로세스를 포그라운드 프로세스라 한다.
ㄴ. 사용예
[posein@www posein]$ find / -name '*.txt' 2>/dev/null > list.txt
=> 이 경우 find 결과가 list.txt라는 파일에 저장할 때까지 사용자는 다른 작업을 할 수 없게 된다.

2) 백그라운드(background) 프로세스
ㄱ. 설명: 기존의 포그라운드 명령뒤에 '&'를 붙인다.
ㄴ. 사용예
[posein@www posein]$ find / -type d 2>/dev/null > list.txt &
[1] 1742
=> 여기서 [1]은 작업번호(job number)이고, 1742는 PID(Process ID)이다.

(3) 작업수행의 전환
1) background --> foreground : background로 수행될 때 'fg'라고 명령을 내리면 전환된다.
2) foreground --> background : [CTRL] + [Z] (suspend 모드)를 눌러 작업을 일단 중지시킨뒤 'bg' 라고 명령을 내린다.
(참고) 인터럽트키
[CTRL] +[C] : 작업취소
[CTRL] +[D] : 작업 정상 종료
[CTRL] +[Z] : 작업 대기

(4) 현재 작업중인 process의 확인

'jobs'라고 명령을 내리면 된다. + 기호로 표시된 작업이 먼저 실행되는 job이고 -기호가 그다음이다.

(5) process를 중지시키기 : kill명령을 이용하여 중지, 종료 등을 할 수 있다.
1) 사용법
kill %job_number
2) 사용예
ㄱ. 작업의 중지
kill %1
=> job번호가 1인 작업을 중지 시킨다.
ㄴ. 작업의 강제종료시키기
kill -9 %1 => job번호가 1인 작업을 강제 종료시킨다.
(참고) kill 명령은 job번호와 PID(process ID)모두 사용가능하다. job번호는 앞에 %를 붙여서 구분하고 PID인 경우에는 그냥 번호만 쓴다.

2. 관련명령어

(1) ps(process status)
1) 설명: 현재 프로세스들의 상태를 PID(Process ID)와 함께 보여준다. 리눅스에서는 사용자와
파일 뿐만아니라 프로세스도 번호로 관리한다.
2) 사용법
ps [option(s)]
3) option
-a : 다른 사용자에 의해서 생성된 프로세스들도 보여준다. (u,x옵션과 연계해서 사용한다.)
-u : 프로세스의 소유자에 대한 정보 등 매우 자세하게 보여준다.
-l : 프로세스의 정보를 옆으로 길게 보여준다. (우선순위값과 관련된 PRI와 NI값을 확인할 수
있다.
-x : daemon process등 터미널의 컨트롤과 관련이 없는 프로세스도 보여준다. 일반적으로 말하
는 데몬프로세스도 보여준다. 보통 ps명령을 실행하면 현재 Shell의 자식 프로세스들만
보여주는데, 이 옵션으로 다른 프로세스들도 볼 수가 있다. (BSD계열)
System V계열인 경우에는 -x대신에 -e를 사용할 수 있고, -u 대신에 -uf옵션을 사용할 수
있다.
-e : 해당 프로세스에 관련된 환경변수 정보를 함께 출력한다.
-f : 프로세스 간의 상속관계를 보여준다.(PID, PPID값이 표시된다.)
(참고2) daemon process
daemon process란 daemon(악마)처럼 앞에 나타나지 않고 사용자가 모르게 뒤에서 시스템의 관리
를 위해 움직이는 프로세스를 말한다. 보통 시스템이 부팅이 될 때 자동적으로 실행이 된다.
ftpd, inetd, lpd, nfsd 등이 있다.
4) 사용예
ㄱ. [posein@www posein]$ ps
PID TTY TIME CMD
23563 pts/0 00:00:00 bash
23594 pts/0 00:00:00 ps
ㄴ. ps -au
=> 현재 시스템상의 process들 중 터미널과 관련이 있는 모든 process들을 소유자 정보와
함께 보여준다.
ㄷ. [posein@www posein]$ ps -aux |more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 1368 548 ? S May02 0:04 init [3]
root 2 0.0 0.0 0 0 ? SW May02 0:00 [keventd]
=> 현재 시스템상에서 움직이고 있는 모든 process들을 소유자의 정보와 함께 보여준다.
ㄹ. [posein@www posein]$ ps -ef |more
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 May02 ? 00:00:04 init [3]
root 2 1 0 May02 ? 00:00:00 [keventd]
=> sysV 계열에 사용하는 옵션형태로 내용은 위와 비슷하다. 참고로 ps옵션에서 BSB계열
의 -aux와 SYSTEM V계열의 -ef옵션은 거의 유사하다. 리눅스에서는 현재 이 두계열의
옵션 모두 지원한다.
ㅁ. [posein@www posein]$ ps -aux |grep sendmail
root 743 0.0 0.4 5580 2208 ? S May09 0:04 sendmail: accepti
smmsp 753 0.0 0.3 4852 1900 ? S May09 0:00 sendmail: Queue r
=> 현재 시스템상의 프로세스중 sendmail의 프로세스를 보여준다.
ㅂ. [posein@www posein]$ ps -aux |grep posein
root 27264 0.0 0.2 2216 1152 ? S 21:39 0:00 login -- posein
posein 27265 0.0 0.2 5496 1432 pts/0 S 21:39 0:00 -bash
posein 27398 0.0 0.1 2700 732 pts/0 R 21:50 0:00 ps -aux
=> 현재 시스템상의 프로세스중 posein 이라는 사용자의 프로세스를 보여준다.

5) ps상태보기
USER : BSD 계열에서 나타나는 항목으로 프로세스 소유자의 USERNAME
UID : SYSTEM V계열에서 나타나는 항목으로 포로세스 소유자의 USERNAME
PID : 프로세스의 식별번호
%CPU : CPU사용비율의 추정치(BSD)
%MEM : 메모리 사용비율의 추정치(BSD)
VSZ : K단위 또는 페이지 단위의 가상메모리 사용량
RSS : 실제 메모리 사용량. Resident Set Size
TTY : 프로세스와 연결된 터미널
STAT : 현재 프로세스의 상태
- 값
R : 실행 중 혹은 실행될 수 있는 상태
S : sleep상태 (보통 20초이상된 상태)
I : idle(비활동상태 : BSD, 중간적상태 : sysV) (보통 20초이하의 대기상태)
T : 정지된 상태(suspend)
Z : 좀비(zombie)프로세스
D : 디스크 관련 대기상태(BSD)
P : 페이지 관련 대기상태(BSD)
X : 메모리 확보를 위한 대기 상태(sysV)
K : 사용가능한 커널 프로세스(AIX)
W : 스왑 OUT된 상태
N : nice되어진 상태
> : 우선순위가 인위적으로 높아진 상태
START : 프로세스 시작 시간 또는 날짜
TIME : 총 CPU사용시간
COMMAND : 프로세스의 실행 명령행
STIME(sysV) : 프로세스가 시작된 시간 혹은 날짜
C(sysV), CP(BSD) : 짧은 기간 동안의 CPU사용률
F : 프로세스의 플래그들
PPID : 부모 프로세스의 PID
PRI : 실제 실행 우선 순위
NI : nice 우선순위 번호
WCHAN : 프로세스를 기다리고 있는 이벤트
PLAGS : 프로세스와 관련된 숫자 값

(2) kill
1) 설명: 프로세스에 특정한 signal을 보내는 명령이다. 보통 실행중인 프로세스에 종료 신호를
보낸다. 보통 중지시킬 수 없는 프로세스를 종료시킬때 많이 사용한다.
2) 사용법
kill [option] [-시그널번호 or -시그널이름] PID
=> kill 명령 뒤에 어떤 프로세스의 PID(Process ID)를 적어주면 그 프로세스에 종료시그널을
보내게 된다. 보통의 경우 종료시킬 수 있으며, 만약에 종료되지 않으면 9를 signal_number
에 써 줌으로써 강제로 종료시킬 수 있다.
kill [option] [-시그널번호 or -시그널이름] %작업번호
3) option
-l : 시그널의 종류를 나열한다. 시그널의 종류는 시그널 번호순서대로 나열한다.
4) signal_number와 이름
1 SIGHUP(HUP) : hang up의 약자로 프로세스를 재시작시키는 시그널이다.
2 SIGINT(INT) : 인터럽트. 실행을 중지시킨다. [CTRL] + [C] 를 눌렀을 때 보내지는 시그널
이다.
3 QUIT : 실행중지.
9 SIGKILL(KILL) : 무조건 종료, 즉 강제 종료시키는 시그널이다.
15 SIGTERM(TERM) : Terminate의 약자로 가능한 정상 종료시키는 시그널로 kill 명령의 기본
시그널이다.
18 CONT : Continue. STOP등에 의해 정지된 프로세스를 다시 실행시킨다.
19 STOP : 무조건적, 즉각적 정지
20 TSTP : 실행 정지후 다시 실행을 계속하기 위하여 대기시키는 시그널이다. [CTRL] +[Z] 를
눌렀을 때 보내지는 시그널이다.

5) 참고
kill -l 이라고 써주면 signal_number에 보내줄 수 있는 시그널의 종류들을 보여주며, signal_
number에 숫자 대신에 직접 이름을 써 주어도 된다. man 을 참조하려면 man 7 signal 하면 된다.
6) 사용예
ㄱ. kill -l
=> 시그널의 종류를 나열한다.
ㄴ. kill 724
=> 724번 프로세스에 디폴트시그널인 15번 시그널을 보낸다.
같은 명령으로 'kill -15 724', 'kill -TERM 724'등이 있다.
ㄷ. kill -9 756 757 758
=> pid가 756, 757,758인 프로세스를 중단한다. 'kill -KILL PID', 'kill -SIGKILL PID'
라고 명령내려도 된다.
ㄹ. kill -HUP 10118
=> pid가 10118인 프로세스를 재시작한다. 'kill -1 10118'과 같다.
ㅁ. kill %2
=> 작업번호가 2인 프로세스를 종료시킨다.
7) 프로세스 종료시 유의점
프로세스를 종료시에는 [CTRL] +[C]나 기본시그널인 TERM 시그널(-15)로 정상적으로 종료를
시도하는 것이 좋다. 그래도 프로세스가 종료가 안되면 KILL 시그널(-9)을 사용하면 된다.

(3) killall
1) 설명: 같은 데몬의 여러 프로세스를 한번에 죽이는 경우에 사용한다. Killall은 프로세스이름
으로 프로세스를 종료시킨다.
2) 사용법
killall [option] 프로세스명
3) option
-HUP : 재시작한다.
4) 사용예
ㄱ. killall httpd
=> Apache 웹서버 데몬을 모두 종료한다.
ㄴ. killall mysqld
=> mysql 데몬을 모두 종료한다.
ㄷ. killall -HUP xinetd
=> xinetd 데몬을 다시 실행시킨다.

(4) pstree
1) 설명 : 프로세스들을 계층적인 트리구조 형태로 출력해준다.
2) 사용법
pstree [option]
3) option
-a : 각 프로세스의 명령행 인자까지 보여준다.
-h : 현재 프로세스와 그것의 조상 프로세스를 하이라이트로 강조해서 보여준다.
-n : PID 값으로 정렬해서 보여준다. 기본값은 이름으로 출력한다.
-p : PID 값을 같이 보여준다.
4) 사용예
[posein@www posein]$ pstree
init-+-apmd
|-atd
|-automount
|-bdflush
|-crond---crond---run-parts---awk
=> (결과설명)
최초로 실행되는 프로세스인 init가 왼쪽 상단에 나타나며 자식 프로세스는 오른쪽에 위치
한다. 또한 프로세스앞에 n*은 실행되고 있는 프로세스의 갯수이다.

(5) top
1) 설명: 현재시스템의 프로세스 상태를 연속적으로 화면에 보여준다.
2) 사용법
top [option]
3) option
-d 갱신시간 : 화면 갱신시간을 설정
-q : 화면을 계속 갱신한다.
-i : idle상태와 zombie 프로세스를 무시한다.
4) 사용예
[root@www root]# top
1:17am up 1 day, 13:06, 3 users, load average: 0.00, 0.00, 0.00
68 processes: 66 sleeping, 2 running, 0 zombie, 0 stopped
CPU states: 0.0% user, 0.0% system, 0.0% nice, 100.0% idle
Mem: 513064K av, 363976K used, 149088K free, 0K shrd, 161724K buff
Swap: 265032K av, 0K used, 265032K free 49916K cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
1 root 8 0 544 544 472 S 0.0 0.1 0:04 init
2 root 8 0 0 0 0 SW 0.0 0.0 0:00 keventd
3 root 9 0 0 0 0 SW 0.0 0.0 0:00 kapm-idled
4 root 9 0 0 0 0 SW 0.0 0.0 0:00 kswapd
5 root 9 0 0 0 0 SW 0.0 0.0 0:00 kreclaimd
5) top 항목설명
PID : Process ID
PPID : Parent Process ID
UID : 소유자의 User ID
USER : 소유자
PRI : Priority(우선순위)
NI : Nice Value ( -20 ~ 19 사이의 값으로 작을 수록 우선순위가 높아짐)
SIZE : 프로세스의 코드와 데이터의 크기(KB단위)
TSIZE : 프로세스의 코드 사이즈
DSIZE : 프로세스의 데이터 사이즈
SWAP : 프로세스가 swap한 메모리양
RSS : 프로세스가 사용하는 실제 메모리양
SHARE : 프로세스가 사용하는 공유 메모리의 양'
STAT : 현재 프로세스의 상태를 나타낸다.
LIB : 라이브러리 페이지의 크기
%CPU : CPU 사용 시간 퍼센트
%MEM : 메모리 사용 퍼센트
TIME : 프로세스가 시작하여 사용한 총 CPU 시간
COMMAND : 프로세스를 실행한 명령어 라인
6) top 실행 중의 명령어 옵션
SPACE : 화면을 갱신한다.
h, ? : 도움말을 출력한다.
k : kill명령을 내린다. PID값을 입력하면 종료신호를 보낸다.
i : Zombi, idle 프로세스의 출력을 on/off한다.
n 또는 # : 출력한 프로세스의 수를 지정한다.
q : top을 종료
r : Nice 값을 변경
s : 화면을 갱신하는 시간을 변경
F,f : 보여줄 항목을 추가하거나 삭제
O,o : 보여줄 항목의 순서를 바꿈
l : top의 맨 윗줄(uptime)을 on/off한다.
m : 메모리의 관련된 항목을 on/off한다.
t : 프로세스와 CPU항목을 on/off한다.
c : Command line의 옵션을 on/off한다.
M : 프로세스의 RSS값을 정렬한다.
P : %CPU 값으로 정렬(기본값)
T : Time값으로 정렬
W : 바꾼 설정을 저장

(6) jobs
1) 설명 : 백그라운드로 실행중인 프로세스나 현재중지된 프로세스의 목록을 출력해주는 명령어
이다.
2) 사용법
jobs [option]
3) option
-l : 프로세스번호를 추가해서 보여준다.
4) 사용예
ㄱ. [posein@www posein]$ jobs
[1]- Running find / -name '*.txt' 2>/dev/null >list.txt &
[2]+ Stopped vim abc.txt
=> +는 현재 실행중인 프로세스를 나타내고 -기호는 이전에 실행되었던 프로세스를 의미한
다.
ㄴ. [posein@www posein]$ jobs -l
[1]- 27832 Running find / -name '*.txt' 2>/dev/null >list.txt &
[2]+ 27833 Stopped (tty output) vim abc.txt
=> 프로세스번호도 같이 보여준다. 위 결과는 find 라는 작업이 먼저 수행되었고 그 다음
vi작업이 실행되었다. 현재 수행중인 작업은 vi 이다. 즉 이 경우에 fg라고 명령내리면
작업번호 2가 수행된다.

(7) fg
1) 설명 : 백그라운드 프로세스를 포그라운드 프로세스로 전환하는 명령이다.
2) 사용법
fg [%작업번호]
3) 사용예
ㄱ. [posein@www posein]$ fg
=> 백그라운드 작업을 포그라운드작업으로 전환한다. 만약 백그라운드작업이 여러개가
있을 경우 별도의 작업번호를 부여하지 않으면 현재 수행중인(+기호가 붙은) 작업을
전환한다.
ㄴ. [posein@www posein]$ fg %2
=> 작업번호 2번인 작업을 포그라운드작업으로 전환한다.
4) 참고 : 포그라운드로 실행중인 작업을 끝내려면 ctrl+c키를 눌러 작업을 종료시킨다.

(8) bg
1) 설명 : 포그라운드프로세스를 백그라운드 작업으로 전환하는 명령이다. 프로세스를 실행한 후
[CTRL]+[Z]키를 눌러 작업을 잠시 중지시킨 후에 bg명령어를 이용하여 작업을 백그라운
드로 보낼 수 있다.
2) 사용법
bg [%작업번호]
3) 사용예
[posein@www posein]$ find / -name '*.txt' 2>/dev/null > list.txt // 포그라운드
// [CTRL]+[Z]키를 눌러 대기시킨다.
[1]+ Stopped find / -name '*.txt' 2>/dev/null >list.txt

[posein@www posein]$ bg
[1]+ find / -name '*.txt' 2>/dev/null >list.txt &
=> 백그라운드로 전환된다.

(참고) 프로세스 우선순위
멀티태스킹(Multi-Tasking)이란 한 시스템에서 여러 개의 프로세스가 작동되는 것을 말한다.
리눅스에서 이러한 작업은 프로세스 스케줄러가 정해진 시간만큼만 CPU를 사용할 수 있도록 프로
세스를 교체시키기 때문이다. 프로세스에는 일정한 순서를 나타내는 우선순위가 있다. 이 우선순위
를 나타내는 것이 priority와 nice값이다. 이 값은 ps -l로 확인할 수 있다. PRI는 프로세스의
실제 우선순위로 리눅스가 계산하여 부여한다. 이 PRI를 부여할 때 NI값이 고려된다. NI는 PRI값에
영향을 주기 위해 프로세스 소유자나 슈퍼유저가 설정한 번호로 nice명령을 이용하여 그 값을 설정
할 수 있다.

(9) nice
1) 설명 : 프로세스의 우선순위를 변경하는 명령으로 NI값을 설정할 수 있다. NI값은 -20 ~ 19
까지 있는데 값이 작을 수록 우선순위가 높다. 일반 사용자는 NI값을 증가시킬 수밖에
없고 루트권한자는 값을 감소시켜 우선순위를 높일 수 있다. 기본값은 0이다.
2) 사용법
nice -값 프로세스명
3) 사용예
[posein@www posein]$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 501 20843 20842 0 76 0 - 566 wait4 pts/2 00:00:00 bash
000 T 501 20893 20843 0 69 0 - 685 do_sig pts/2 00:00:00 vi
000 R 501 20904 20843 0 78 0 - 752 - pts/2 00:00:00 ps
[posein@www posein]$ nice -10 bash
[posein@www posein]$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 501 20843 20842 0 73 0 - 566 wait4 pts/2 00:00:00 bash
000 T 501 20893 20843 0 69 0 - 685 do_sig pts/2 00:00:00 vi
000 S 501 20906 20843 0 77 10 - 564 wait4 pts/2 00:00:00 bash
000 R 501 20923 20906 0 79 10 - 753 - pts/2 00:00:00 ps
=> bash의 NI값을 10으로 설정한다. NI값을 변경하면 bash의 자식프로세스인
NI값도 바뀐다.
[root@www /root]# nice --10 bash
=> bash의 NI값을 -10으로 설정한다.
(참고) bash와 NI값
bash는 로그할 때의 부여받는 환경에 가까워서 NI값을 변경하면 실제적으로 우선순위의 변동보다
새로운 bash를 부여받는 쪽에 가깝다.

(10) renice
1) 설명 : 실행중인 프로세스의 우선순위를 변경할 때 사용하는 명령으로 오직 그 프로세스의
소유자와 루트권한자만이 명령을 내릴 수 있다. 이 명령도 NI값을 부여함으로서 우선
순위가 변경되며 루트권한자만이 프로세스의 우선순위를 높일 수 있다.
2) 사용법
renice [options] 값 PID
3) options
-g : 그룹 ID 지정
-u : 사용자 ID 지정
-p : 프로세스 ID 지정(초기값)
4) 사용예
ㄱ. [posein@www posein]$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 501 20843 20842 0 69 0 - 566 wait4 pts/2 00:00:00 bash
000 T 501 20893 20843 0 69 0 - 685 do_sig pts/2 00:00:00 vi
000 S 501 20906 20843 0 79 10 - 564 wait4 pts/2 00:00:00 bash
000 R 501 20937 20906 0 77 10 - 752 - pts/2 00:00:00 ps
[posein@www posein]$ renice 15 20906
20906: old priority 10, new priority 15
[posein@www posein]$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
100 S 501 20843 20842 0 69 0 - 566 wait4 pts/2 00:00:00 bash
000 T 501 20893 20843 0 69 0 - 685 do_sig pts/2 00:00:00 vi
000 S 501 20906 20843 0 77 15 - 564 wait4 pts/2 00:00:00 bash
000 R 501 20939 20906 0 79 15 - 752 - pts/2 00:00:00 ps
=> 20906작업의 NI값을 15로 바뀌면서, PRI는 적당한 값으로 자동 설정된다.
ㄴ. [root@www root]# renice 1 987 -u daemon root -p 32
=> 프로세스 ID가 987, 32 인 것과 사용자가 daemon, root인 모든 프로세스의 우선권값을
1로 바꾼다.

(11) nohup
1) 설명: 이 명령은 사용자가 로그아웃하거나 터미널창을 닫아도 해당 프로세스를 백그라운드로
작업될 수 있도록 해주는 명령이다.
2) 사용법
nohup 명령
3) 사용예
nohup tar cvf source.tar /opt/src &
4) 참고
만약 표준출력이 화면이었는데 사용자가 로그아웃하게 되면 표준출력과 표준에러를 'nohup.out'
이라는 파일에 저장한다. 현재 작업디렉토리에 쓰기작업이 불가능한 경우에는 ~/nohup.out를
생성하고 그것도 불가능하게 되면 실행이 되지 않는다. 또한 우선권을 5 만큼 증가시켜 수행하고
실행한 명령을 자동으로 백그라운드로 보내지 않으므로 직접 명령행 뒤에 '&'를 붙여 백그라운드
로 보내주어야 한다.

출처 #1#2

Windows 11 세팅

기존에 리눅스만 깔아서 사용중인 삼성컴퓨터에서 Windows 11을 설치 후 정품인증이 되지 않았다. Windows 10을 설치 하여도 여전이 정품인증이 되지 않았다. 이 컴퓨터는 윈도우를 깔아본 적이 없다. 에러코드는 0xC004F213, 윈도우 제...