'linux'에 해당되는 글 32건

  1. 2018.06.20 useful linux system info commands
  2. 2018.06.19 makefile 내장 함수
linux2018. 6. 20. 12:32

leej5@LeeJ5:~$ uname -a

Linux LeeJ5 3.13.0-137-generic #186-Ubuntu SMP Mon Dec 4 19:09:19 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux


leej5@LeeJ5:~$ lshw

WARNING: you should run this program as super-user.

leej5

    description: Computer

    width: 64 bits

    capabilities: vsyscall32

  *-core

       description: Motherboard

       physical id: 0


leej5@LeeJ5:~$ sudo lshw -short

H/W path      Device      Class          Description

====================================================

                          system         OptiPlex 5050 (07A2)

/0                        bus            0WWJRX

/0/0                      memory         64KiB BIOS

/0/9                      memory         16GiB System Memory

/0/9/0                    memory         8GiB DIMM Synchronous 2400 MHz (0.4 ns)

/0/9/1                    memory         8GiB DIMM Synchronous 2400 MHz (0.4 ns)

/0/9/2                    memory         [empty]

/0/9/3                    memory         [empty]

/0/f                      memory         256KiB L1 cache

/0/10                     memory         1MiB L2 cache

/0/11                     memory         8MiB L3 cache

/0/12                     processor      Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz

/0/100                    bridge         Intel Corporation

/0/100/1                  bridge         Sky Lake PCIe Controller (x16)

/0/100/2                  display        Intel Corporation

/0/100/14                 bus            Intel Corporation

/0/100/14.2               generic        Intel Corporation

/0/100/16                 communication  Intel Corporation

/0/100/17                 storage        SATA Controller [RAID mode]

/0/100/1f                 bridge         Intel Corporation

/0/100/1f.2               memory         Memory controller

/0/100/1f.3               multimedia     Intel Corporation

/0/100/1f.4               bus            Intel Corporation

/0/100/1f.6   eth0        network        Intel Corporation

/0/1          scsi0       storage

/0/1/0.0.0    /dev/sda    disk           1TB ST1000DM010-2EP1

/0/1/0.0.0/1              volume         498MiB Windows FAT volume

/0/1/0.0.0/2  /dev/sda2   volume         117GiB Windows NTFS volume

/0/1/0.0.0/3  /dev/sda3   volume         325GiB Windows NTFS volume

/0/1/0.0.0/4  /dev/sda4   volume         15GiB Linux swap volume

/0/1/0.0.0/5  /dev/sda5   volume         488MiB EXT4 volume

/0/1/0.0.0/6  /dev/sda6   volume         28GiB EXT4 volume

/0/1/0.0.0/7  /dev/sda7   volume         443GiB EXT4 volume

/0/2          scsi1       storage

/0/2/0.0.0    /dev/cdrom  disk           DVD+-RW GU90N


leej5@LeeJ5:~$ lscpu

Architecture:          x86_64

CPU op-mode(s):        32-bit, 64-bit

Byte Order:            Little Endian

CPU(s):                8

On-line CPU(s) list:   0-7

Thread(s) per core:    2

Core(s) per socket:    4

Socket(s):             1

NUMA node(s):          1

Vendor ID:             GenuineIntel

CPU family:            6

Model:                 158

Stepping:              9

CPU MHz:               3400.000

BogoMIPS:              7199.99

Virtualization:        VT-x

L1d cache:             32K

L1i cache:             32K

L2 cache:              256K

L3 cache:              8192K

NUMA node0 CPU(s):     0-7


출처 : https://www.tecmint.com/commands-to-collect-system-and-hardware-information-in-linux/

'linux' 카테고리의 다른 글

top 명령어 세부사항  (0) 2018.07.02
표준입출력 redirect  (0) 2018.06.25
ubuntu default /bin/sh is dash  (0) 2018.06.22
ubuntu samba 설정하기  (0) 2018.06.21
makefile 내장 함수  (0) 2018.06.19
Posted by easy16
linux2018. 6. 19. 10:17


Makefile을 쉽게 이해하기 위해 내장함수를 많이 알아 둘 필요가 있다.

간단히 몇가지만 정리하면 아래와 같다.



comma:= ,

empty:=

space:= $(empty) $(empty)

foo:= a b c

bar:= $(subst $(space),$(comma),$(foo))

# bar is now `a,b,c'.

여기서 subst 함수는 foo의 값 전체에서 각 스페이스를 콤머로 변경하고 그 결과를 이 값에 대입한다




$(patsubst pattern,replacement,text)

text 안에서 공백문자로 분리된 단어들 중 pattern와 매치되는 단어를 찾아서 그것들을 replacement로 변경한다.

(patsubst %.c,%.o,x.c.c bar.c)


$(var:suffix=replacement) == $(patsubst %suffix,%replacement,$(var))

ex)

objects = foo.o bar.o baz.o

이에 대응하는 소스 파일들의 리스트를 얻기 위해서 다음과 같이 쉽게 작성할 수 있다:

$(objects:.o=.c)


동일한 표현

$(patsubst %.o,%.c,$(objects))



$(strip string)

이 함수는 string의 앞뒤에 있는 공백문자들을 제거하고 내부에 있는 하나 이상의 공백문자들을 단일 스페이스로 교체한다. 그래서 `$(strip a b c )'의 결과는 `a b c'가 된다. 

strip 함수는 조건과 함께 사용될 때 아주 유용함.


.PHONY: all

ifneq   "$(needs_made)" ""

all: $(needs_made)

else

all:;@echo 'Nothing to make!'

endif

ifneq 지시어에서 변수 참조 `$(needs_made)' 를 함수 호출 `$(strip $(needs_made))' 로 바꿈으로써 robust하게 만들 것이다.


$(findstring find,in)

이 함수는 in에서 find를 찾는다. 있다면 그 값은 find가 된다; 그렇지 않다면 그 값은 빈 것이 된다. 이 함수를 조건에서 사용해서 주어진 문자열 안에서 특정 문자열의 존재 여부를 검사할 수 있다. 


ex)

$(findstring a,a b c)

$(findstring a,b c)

`a'와 `' (빈 문자열) 각각을 만든다. 



$(filter pattern...,text)

이 함수는 pattern 단어들 중의 임의의 것과 일치하지 않는 text 내의 공백문자로 분리된 단어들을 모두 제거하고 일치하는 단어들만을 리턴한다.

ex)

sources := foo.c bar.c baz.s ugh.h

foo: $(sources)

        cc $(filter %.c %.s,$(sources)) -o foo


$(filter-out pattern...,text)

이 함수는 text에서 pattern 단어들과 일치하는, 공백문자들로 분리된 단어들을 모두 제거하고 일치하지 않는 단어들만을 리턴한다. filter의 반대이다. 

ex)

objects=main1.o foo.o main2.o bar.o

mains=main1.o main2.o

다음은 `mains'에 있지 않는 오브젝트 파일들 모두를 담고 있는 리스트를 생성한다:

$(filter-out $(mains),$(objects))

$(dir names...)

이것은 names에 있는 각 파일 이름에서 디렉토리-파트를 추출한다. 파일 이름의 디렉토리-파트는 그 안에 있는 마지막 슬래쉬까지의 (그리고 이 마지막 슬래쉬를 포함한) 모든 것이다. 그 파일 이름이 슬래쉬가 없으면 디렉토리 파트는 문자열 `./'가 된다.

ex)

$(dir src/foo.c hacks)는 `src/ ./'라는 결과를 만든다.


$(notdir names...)

이 함수는 names에 있는 각 파일 이름의 디렉토리-부분을 제외한 모든 것을 추출한다. 파일 이름에 슬래쉬가 없으면 변화되지 않는다. 그렇지 않는 경우 마지막 슬래쉬까지 모든 것이 그것으로부터 제거된다.

ex)

$(notdir src/foo.c hacks)는 `foo.c hacks'라는 결과를 만든다.



$(suffix names...)

파일 이름이 소숫점(period)를 갖고 있다면 접미사는 마지막 소숫점부터 시작한 모든 것이다

ex)

$(suffix src/foo.c src-1.0/bar.c hacks) 는 `.c .c'라는 결과를 만든다.


$(basename names...)

이 함수는 names에 있는 각 파일 이름의 접미사를 제외한 모든 것을 추출한다. 

ex)

$(basename src/foo.c src-1.0/bar hacks) 는 `src/foo src-1.0/bar hacks' 라는 결과를 만든다.


$(addsuffix suffix,names...)

suffix의 값은 각 개별 이름의 끝에 더해지고 그들 사이에 단일 스페이스들을 추가한 더 큰 이름들이 그 결과이다.

ex)

$(addsuffix .c,foo bar)는 `foo.c bar.c'라는 결과를 만들어낸다.


$(addprefix prefix,names...)

ex)

$(addprefix src/,foo bar)는 `src/foo src/bar'라는 결과를 만든다.


$(wildcard pattern)

pattern 매개변수는 파일 이름 패턴이다. 전형적으로 와일드 카드 문자들 (쉘 파일 이름 패턴과 동일한) 을 담고 있다. wildcard 함수의 결과는 패턴과 일치하는 현존하는 파일들의 이름들을 스페이스로 분리한 리스트이다.


shell 함수(The shell Function)

ex)

contents := $(shell cat foo)

files := $(shell echo *.c)





출처:  http://korea.gnu.org/manual/4check/make-3.77/ko/make_8.html



아래의 내용은 숙지할 필요가 있다.


Make에 대해 알아야할 7가지

http://www.mimul.com/pebble/default/2014/12/26/1419569926542.html


'linux' 카테고리의 다른 글

top 명령어 세부사항  (0) 2018.07.02
표준입출력 redirect  (0) 2018.06.25
ubuntu default /bin/sh is dash  (0) 2018.06.22
ubuntu samba 설정하기  (0) 2018.06.21
useful linux system info commands  (0) 2018.06.20
Posted by easy16