세마포어, 뮤텍스, critical section

Linux 2018.06.15 11:48 Posted by smileyoon

세마포어란?

공유된 자원에 여러 개의 프로세스가 동시에 접근하면 문제가 발생합니다. 공유된 자원 속 하나의 데이터는 한 번에 하나의 프로세스만 접근할 수 있도록 제한해 두어야 하는데, 이를 위하여 고안된 것이 세마포어입니다.

 

(세마포어와 뮤텍스의 차이)

세마포어(Semaphore) : 공유된 자원의 데이터를 여러 프로세스가 접근하는 것을 막는 것

뮤텍스(Mutex) : 공유된 자원의 데이터를 여러 쓰레드가 접근하는 것을 막는 것

 

** Critical section 이란 ?

OS에서 Critical Section은 아주 중요한 부분이다.

- 다중 프로그래밍 운영체제에서 여러 프로세스가 데이타를 공유하면서 수행될 때 각 프로세스에서 공유 데이타를 액세스하는 프로그램 코드 부분을 가리킨다.

공유 데이타를 여러 프로세스가 동시에 액세스하면 시간적인 차이 때문에 잘못된 결과를 만들어 낼 수 있기 때문에 한 프로세스가 위험 부분을 수행하고 있을 때, 즉 공유 데이타를 액세스하고 있을 때는 다른 프로세스들은 절대로 그 데이타를 액세스하지 못해야 한다.

출처: http://jwprogramming.tistory.com/13 [개발자를 꿈꾸는 프로그래머]


GREP에 정규식 표현 사용하기

Linux 2017.04.27 14:52 Posted by smileyoon

백업 실행된 전체 시간을 확인하기 위해 로그 파일에서 'begin backup', 'end backup' 이벤트가 기록된 시점을 찾아야 했습니다. 


요새 정규 표현식을 자주 사용하게 되는데 GREP에서도 -E 옵션을 주면 정규 표현식을 사용할 수 있습니다.


정규식 표현

(A | B) -> a or b (or 연산자)


cat trace.log | grep -E '(begin | end) backup' | grep 04/11 

--주의!!! 공백 구분합니다.


다음에는 정규식에 사용되는 특수 문자에 대해서 정리해 보도록 하겠습니다. 

Backtick(백틱) '` `' / ~밑에 있는 기호

Linux 2017.04.26 14:57 Posted by smileyoon

~밑에 `는 백틱 or 쿼테이션이라고 부르고 ` ` 백틱안에 명령어를 (윈도우의 dir, 리눅스의 ls 등) 실행한 후 출력하는 용도로 사용합니다. 



예를 들어 


ls -alt의 명령어


test = `ls -alt` 변수 선언하고

echo $test 실행하면

ls -alt 실행하는 것과 동일한 효과를 볼 수 있습니다.


쉘 실행시간 확인하기 / time

Linux 2017.04.26 14:32 Posted by smileyoon

자동화 쉘을 만들어 프롬프트상에서 바로 실행한 후 총 수행 시간을 확인하고 싶었습니다. 확인해 보니 아주 간단한 명령어 하나로 수행 시간을 확인할 수 있습니다.


그것은 바로 time 명령어


실행할 명령어 앞에 


time [명령어]


실행해 주면 아래와 같은 결과가 나옵니다.


[출력]


smileyoon$ time date


2017. 04. 26 ~~~


real 0m0.002s -- 총 수행 시간

user 0m0.000s -- 사용자 모드에서 수행 시간

sys 0m0.002s -- 커널 모드에서 수행 시간

'Linux' 카테고리의 다른 글

GREP에 정규식 표현 사용하기  (0) 2017.04.27
Backtick(백틱) '` `' / ~밑에 있는 기호  (0) 2017.04.26
쉘 실행시간 확인하기 / time  (0) 2017.04.26
프롬프트에 절대경로 표시하기 / PS1변수  (0) 2017.04.26
Shell 확인  (0) 2016.08.11
CHMOD / 권한 변경하기  (0) 2016.08.10
TAG TIME, 타임

프롬프트에 절대경로 표시하기 / PS1변수

Linux 2017.04.26 14:25 Posted by smileyoon

[전체 사용자에 적용]하려면


/etc/bashrc 에 아래 내용 동일하게 추가



[사용자별 적용]은 아래와 같이


.bash_profile에


export PS1="[\u@\h][\$PWD]\\$"


추가 후 . ./bash_profile 실행해서 바로 적용


그러면


[UserName@HostName][전체경로]$로 표시됨을 확인할 수 있습니다.

'Linux' 카테고리의 다른 글

Backtick(백틱) '` `' / ~밑에 있는 기호  (0) 2017.04.26
쉘 실행시간 확인하기 / time  (0) 2017.04.26
프롬프트에 절대경로 표시하기 / PS1변수  (0) 2017.04.26
Shell 확인  (0) 2016.08.11
CHMOD / 권한 변경하기  (0) 2016.08.10
vi 편집기 명령어  (0) 2016.08.06

Shell 확인

Linux 2016.08.11 23:18 Posted by smileyoon

리눅스는 기본 Bash Shell입니다.


내가 지금 무슨 쉘을 사용하고 있는지 확인하는 방법입니다.


1. vi를 통해 /etc/passwd 열고 계정의 맨 끝을 보면 확인 가능

2. 쉘 상태에서 echo $SHELL 실행 (SHELL은 무조건 대문자)


쉘을 변경하기 위해서는


1. /etc/passwd에서 계정마다 변경 가능

2. chsh 실행

 - 현재 설정가능한 쉘 종류 확인 명령어 chsh -l

 - logout 후 login해야 함.


끝!!

'Linux' 카테고리의 다른 글

Backtick(백틱) '` `' / ~밑에 있는 기호  (0) 2017.04.26
쉘 실행시간 확인하기 / time  (0) 2017.04.26
프롬프트에 절대경로 표시하기 / PS1변수  (0) 2017.04.26
Shell 확인  (0) 2016.08.11
CHMOD / 권한 변경하기  (0) 2016.08.10
vi 편집기 명령어  (0) 2016.08.06
TAG shell,

CHMOD / 권한 변경하기

Linux 2016.08.10 00:28 Posted by smileyoon

chmod 명령어를 통해 User, Group, Other에 권한을 줄 수 있습니다.


예제를 통해 사용방법을 읽혀 보도록 하겠습니다.


리눅의 파일을  ls -al 명령어를 실행해서 볼 경우 아래와 같이 소유자(owner)가 누구고 어떤 그룹에 속해 있고

어떠어떠한 권한을 가지고 있는지 알 수 있습니다.


-rw-rwx-wx 총 10개의 값들이 있는데

맨 앞자리를 나중에 확인하고 그 다음부터 3자리씩 끊어서 User, Group, Other권한 속성값을 볼 수 있습니다.


rw-     rwx   -wx 의 경우 User는 읽고, 쓰기 권한만, Group은 읽고, 쓰고, 실행하는 권한을, Other는 쓰고 실행하는 권한을 가지고 있습니다.


일반적으로 chmod명령어를 가지고 아래와 같이 권한을 줄 수 있습니다.


1. test파일의 User에게 쓰기 권한을 주고 싶다.

chmod u+w test

2. test파일의 그룹에 실행 권한을 제거하고 싶다.

chmod g-x test

3. user, group, other 모두에게 x 권한을 제거하고 싶다.

chmod ugo-x test


그리고 숫자를 이용해서도 권한을 부여하고 제거할 수 있습니다.


rwx r:4, W:2, X:1


4. user에게 Full 권한을 Group에는 읽고 쓰기권한만 other에게는 실행 권한만 줄 경우 

chmod 761 test


 

'Linux' 카테고리의 다른 글

Backtick(백틱) '` `' / ~밑에 있는 기호  (0) 2017.04.26
쉘 실행시간 확인하기 / time  (0) 2017.04.26
프롬프트에 절대경로 표시하기 / PS1변수  (0) 2017.04.26
Shell 확인  (0) 2016.08.11
CHMOD / 권한 변경하기  (0) 2016.08.10
vi 편집기 명령어  (0) 2016.08.06

vi 편집기 명령어

Linux 2016.08.06 22:52 Posted by smileyoon

리눅스를 다루는 일이 많아졌습니다. 

vi 편집기에서 사용할 수 있는 명령어는 아주 많지만 우선 이것만이라도 알고 있으면 

좋겠다는 생각이 들어서 정리하였습니다. 운영하면서 알게 되는 좋은 명령어는 

지속적으로 update 하도록 하겠습니다.


※ 리눅스는 대소문자를 엄격히 구분합니다.

 

Vi 편집기에서는 3가지 모드가 있습니다.

  1. 입력모드
  2. 명령모드 (vi 편집기 실행 기본으로 명령모드에서 시작)
  3. 콜론모드 (Ex모드) ESC 키를 누르고 :(콜론) 입력한 상태

 

[명령(편집)모드]

입력모드에서 다시 명령모드로 전화하려면 ESC 키를 누르시기 바랍니다.

 

yy 한줄 복사

p 붙여넣기

H 화면의 최상위로 이동

M 화면의 중간으로 이동

L 화면의 아래로 이동

u 이전으로 돌아가기 (실행취소)

Ctrl + b 화면 위로 이동

Ctrl + f  화면 아래로 이동

gg 파일의 맨 처음으로 이동

G 파일의 맨 끝으로 이동


[입력모드]

명령모드에서 입력모드로 전환하려면 i 타이핑한 실행합니다.


/ 변환 Shift+Spacebar

 

[콜론모드]

명령모드에서 콜론모드로 전환하려면 :(콜론) 명령을 실행합니다.


:wq 저장하고 종료

:q! 저장하지 않고 종료

:w 종료하지 않고 저장만 하기


-- 20160827 추가

[텍스트 컨트롤]

편집모드에서 v,V 사용해서 문자를 선택하고 y 통해 복사하고, p 이용하여 붙여넣기 있다

d 이용하면 삭제가 가능하다.

(v 문자 하나씩 선태, V 단위 선택)


Redo(다시 실행) :  Ctrl + r

Undo(이전으로 돌아가기) : u




'Linux' 카테고리의 다른 글

Backtick(백틱) '` `' / ~밑에 있는 기호  (0) 2017.04.26
쉘 실행시간 확인하기 / time  (0) 2017.04.26
프롬프트에 절대경로 표시하기 / PS1변수  (0) 2017.04.26
Shell 확인  (0) 2016.08.11
CHMOD / 권한 변경하기  (0) 2016.08.10
vi 편집기 명령어  (0) 2016.08.06