※ 요약

리눅스 명령어 finger는 사용자 계정 정보와 최근 로그인 정보, 이메일, 예약 작업 정보 등을 볼 수 있는 명령어이다. 필자는 CentOS 6.x를 사용중인데 finger 명령어가 설치되어 있지 않아 따로 설치해주었다. 필자처럼 finger가 설치 안된 독자는 아래 화면을 보고 설치 바란다.


※ 경로
/usr/bin/finger


※ 사용법

finger [옵션]... [사용자명 ...] [user@host ...]

※ 옵션

 옵션

 Long옵션

 설명

 -l

 

멀티라인 형식으로 사용자 홈 디렉토리, 집 전화번호, 로그인 셸, 메일 상태 등과 함께 -s 옵션으로 보이는 정보를 출력

 -s

 

사용자의 로그인 이름, 실제 이름, 터미널 이름, 상태, idle 시간, 로그인 시간, 사무실 위치, 사무실 전화를 출력


※ 사용예

간단한 사용예이다.



※ 요약

이번에 소개할 연산자는 텍스트 연결 연산자이다. 연결 연산자는 &(Ampersand)기호응 사용하며, &를 기준으로 좌우의 값을 하나로 연결할 때 사용한다. 글로 설명하는 것보다는 예제를 한 번 보는게 빠르다.

※ 연결 연산자 설명

 연결 연산자

 명칭

 설명

&

 Ampersand(앰퍼샌드), And

 좌측 피연산자와 우측 피연산자의 값을 하나의 값으로 연결하여 반환



※ 예제

조건식과 결과를 보면 알겠지만 셀을 참조하여 값을 연결하거나 셀과 임의의 문자열 값을 연결할 수 있는 걸 알 수 있다.



※ 요약
리눅스 명령어 users는 시스템에 로그인한 사용자를 출력하는 명령어이다. 옵션도 없는 단순한 명령어이며, 더 자세한 정보는 w명령어who 명령어를 통해 확인하는게 낫다.

※ 경로
/usr/bin/users


※ 사용법
users [옵션]

※ 옵션

 옵션

 Long옵션

 설명

 

 --help

 users 명령어 사용법 출력

 

 --version

 users 명령어 버전 정보 출력


※ 사용예

필자는 혼자 사용하는 시스템이라 root계정 밖에 로그인되어 있지 않다.



※ 요약
CrystalDiskInfo는 하드 디스크와 SSD를 위한 유틸리티로써 무료이다. 설치 버전과 포터블 버전으로 나눠져 있으며 S.M.A.R.T.를 지원하고 USB-HDD도 지원한다. 그 밖에 건강상태 확인 및 벤치마킹 등 많은 기능들이 있으므로 SSD나 HDD에 대해 자세히 알고 싶은 유저는 다운로드 받아 사용해 보기 바란다.



※ 다운로드 방법

16년 04월 19일 기준 CrystalDiskInfo의 최신 버전은 6.8.1이다. 설치 버전과 무설치(포터블) 버전이 있으니 원하는 걸 다운로드 받으면 된다.



※ 실행 화면

Shizuku Edition을 받았더니 아래처럼 오덕스러운 테마가 기본으로 있어서.. 삭제할까 고민했다.



※ 요약

수식에서 다른 셀을 참조하기 쉽도록 지원하는 세 가지 문자(콜론, 쉼표, 공백)를 참조 연산자라고 하며, 셀이나 셀 범위를 참조하는 다양한 방법을 제공한다.

※ 참조 연산자 종류 및 설명

 참조 연산자

 명칭

 설명

 :

 콜론

 연속된 데이터 범위를 참조함

 [A1] 셀부터 [A100] 셀까지 참조한다면 [A1:A100]과 같이 사용

 ,

 쉼표

 떨어진 데이터 범위를 참조함

 [A1] 셀, [D1] 셀, [F1] 셀을 참조한다면 [A1, D1, F1]과 같이 사용

 " "

 공백

 두 개의 데이터 범위의 교집합을 참조함

 [A1:C100 B5:Z5]는 두 범위가 교차되는 [B5:C5] 셀 범위를 참조


※ 콜론(:) 예제

C3 셀부터 C5까지의 합을 구하기 위해 SUM(C3:C5)을 입력하여 C3+C4+C5의 합을 C8 셀에 출력한다.



※ 쉼표(,) 예제

SUM 함수에 인자로 B2:B4과 C3:C5를 입력하여 두 범위의 합을 구하였다.


※ 공백(" ") 예제

B2:B6 범위와 B3:C5 범위 중 교차 되는 B3:B5의 합을 구하여 C8 셀에 출력하였다.



어미 동물이 새끼를 낳아 젖을 먹여 키우는 동물을 포유류라고 한다. 이들은 각기 다른 임신 기간을 가지고 있으며 새끼 수 또한 매우 다양하다. 포유류의 임신 기간은 영양 상태와 개체의 상태에 따라 조금씩 차이가 나며 짧게는 14일에서 길게는 22개월 이상인 동물들도 있다.



※ 요약
리눅스 명령어 id는 현재 사용자의 실제 id와 유효 사용자 id, 그룹 id를 출력하며 내부 bash 변수인 $UID, $EUID, $GROUPS와 짝을 이룬다. "id -un"을 치면 whoami 명령어와 같은 효과를 낸다.

※ 경로
/usr/bin/id


※ 사용법
id [옵션]... [사용자명]

※ 옵션

 옵션

 Long옵션

 설명

 -g

 --group

 사용자의 그룹 id만 출력

 -G

 --groups

 추가 그룹의 id만 출력

 -u

 --user

 사용자의 UID를 출력

 -n

 --name

 -u, -g, -G 옵션과 함께 사용하며 해당하는 id의 이름만 출력

 -r

 --real

 -u, -g, -G 옵션과 함께 사용하며 해당하는 실제 id를 출력

 

 --help

 id 명령어 사용법 출력

 

 --version

 id 명령어의 버전 정보 출력



※ 사용예

아래는 id명령어만 실행하여 현재 로그인한 root계정의 정보를 출력한 화면이다. root의 uid는 0, gid도 0이다.


echo $UID 명령으로 현재 로그인한 사용자의 uid를 확인할 수 있다.



※ 요약
std::vector의 멤버 함수인 emplace_back은 C++11부터 추가된 멤버 함수로써 push_back과 같이 vector의 요소 끝에 원소를 추가하는 함수이다. 두 함수의 가장 큰 차이점은, push_back과 같은 삽입 함수들은 삽입할 객체를 받지만 emplace_back과 같은 생성 삽입 함수는 삽입할 객체의 생성자를 위한 인자들을 받아 std::vector 내에서 직접 객체를 생성하여 삽입하므로 임시 객체의 생성과 파괴, 복사(혹은 move)를 하지 않아도 되어 성능상 더 유리하다는 것이다.
필자가 전에 작성한 push_back도 꼭 읽어보길 바란다.

※ 함수 원형

template< class... Args >

void emplace_back( Args&&... args );


emplace의 함수 원형은 하나다. push_back과 다르게 가변인자 템플릿 문법을 이용하여 가변인자를 받는다.


※ 예제

설명을 위해 아래와 같이 임시로 예제를 작성해봤다.


먼저 push_back으로 삽입을 했을때 결과이다. push_back에 삽입하기 위해 객체를 만들어 전달했고 내부적으로 또 임시객체를 만들어 아래와 같이 호출이 많아 성능상 불리하다.


emplace_back으로 삽입할 경우, 생성에 필요한 인자를 받아 내부에서 생성 삽입하므로 아래와 같이 생성자, 소멸자를 한 번씩만 호출하여 성능상 유리하다

.




※ 실제 사용예
필자가 전에 push_back으로 작성했던 코드이다. 이 코드는 CStationObj 임시 객체를 생성하고 그것을 push_back에 전달하는 걸 알 수 있으며 성능을 따져봤을때 비효율적이다.(내부적으로 CStationObj의 임시 객체가 생성되고 생성자와 소멸자도 호출되기 때문)


emplace_back은 함수 원형에서 본 거와 같이 가변 인자를 받을 수 있어서 아래와 같이 인자를 넣을 수 있으며, 받은 인자를 std::vector안에서 직접 CStationObj를 생성하므로 push_back보다 성능상 낫다.


※ 참고 사항

- push_back으로 하여도 컴파일러 내부적으로 최적화 하기 때문에 emplace_back으로 하는 것과 별차이가 없을 수 있다. 고로 개인 프로젝트가 아니라면 호환성이 더 좋은 push_back 사용이 더 나을 수도 있다.

- push_back함수로 할 수 있는 모든 것을 emplace_back으로 할 수 있다.

- push_back함수보다 emplace_back 함수가 대체로 효율적이다.(무조건적인건 아님 반대로 push_back이 더 효율적일 때도 있음)



'STL - Containers > vector' 카테고리의 다른 글

[C++ STL] std::vector - push_back  (0) 2016.02.19
[C++ STL] std::vector 주요 멤버 함수 목록  (0) 2015.11.23
[C++ STL] std::vector 개요  (3) 2015.11.10

※ 요약

개발 언어들과 마찬가지로 엑셀에도 비교 연산자가 존재한다. 비교 연산자는 주어진 조건을 비교하여 참이냐 거짓이냐에 따라 논리값(TRUE, FALSE)을 반환하며, 반환된 값에 따라 일을 구분하여 지시할 수 있다. 이번 내용은 개발을 하지 않았거나 비교 연산자를 처음 사용해보는 사용자라면 생소할 수 있겠으나 초등학교 때 배운 내용(부등호)이므로 예제를 보면 어렵지 않게 이해할 수 있을 것이다.

※ 비교 연산자 종류 및 설명

 비교 연산자

 명칭

 설명

 =

 같음/등호

 좌측 피연산자와 우측 피연산자 값이 같은지 판단

 >

 보다 큼

 좌측 피연산자 값이 우측 피연산자 값보다 큰지 판단

 >=

 크거나 같음

 좌측 피연산자 값이 우측 피연산자 값과 같거나 큰지 판단

 <

 보다 작음

 좌측 피연산자 값이 우측 피연산자 값보다 작은지 판단

 <=

 작거나 같음

 좌측 피연산자 값이 우측 피연산자 값과 같거나 작은지 판단

 <>

 같지 않음

 좌우 피연산자 값이 다른지 판단



※ 예제

324=546은 같지 않아 거짓이므로 FALSE를 반환하였고 56>34는 참이라 TRUE를 반환한 걸 알 수 있다.


위는 숫자를 이용한 비교 연산이라 자연스러운데 아래는 문자를 이용한 조건식이라 생소한데, 문자를 비교할 수 있는 이유는 문자마다 각각의 값이 있어서 비교할 수 있기 때문이다. 가령 아스키코드 기준으로 A는 97(10진수) 값을 가지며 B는 98(10진수) 값을 가진다. 고로 A>B는 97>98과 같으므로 당연히 FALSE를 리턴하는게 맞다. 문자 비교의 핵심은 문자도 고유 값을 가지고 있고, 이 값을 비교할 수 있다는 것이다. 필자가 13년도에 작성한 아스키코드표가 있는데 참고하면 좋을 것이다.



※ 요약
개발 언어들과 마찬가지로 엑셀에서도 덧셈, 뺄셈, 곱셈, 나눗셈 같은 계산을 지시하는 연산자가 존재하는데, 이를 산술 연산자라 한다. 엑셀에서는 텍스트형 숫자도 숫자로 변환하여 연산을 수행한다.

※ 산술 연산자 종류 및 설명

 산술 연산자

 명칭

 설명

 +

 플러스

 좌측 피연산자와 우측 피연산자를 더함

 -

 마이너스

 좌측 피연산자와 우측 피연산자를 뺌

 숫자 앞에 사용된 경우에는 음수를 의미

 *

 아스테리스크

 좌측 피연산자와 우측 피연산자를 곱함

 /

 슬래시

 좌측 피연산자를 우측 피연산자로 나눔

 ^

 캐럿

 좌측 피연산자를 우측 피연산자로 거듭제곱

 %

 퍼센트

 좌측 피연산자의 숫자를 백분율로 표시


※ 예제

아래는 실제 엑셀에서 작성한 결과를 캡쳐한 화면이다.




+ Recent posts