man : 매뉴얼

sudo : 명령어 root 권한 부여

tab : 명령어 자동완성

df : 파일디스크 사용량

 

pwd : 현재 디렉토리

ls : 현재 디렉토리 내 파일

ls -a : 현재 디렉토리 내 모든 파일

ls -l : 현재 디렉토리 내 파일(자세히) - 3개의 권한(소유자, 그룹, 나머지) 표시 및 생성날짜 등을 알수있다.

 

cd : 홈디렉토리로 이동

cd ~ : 해당 디렉토리 이동

cd .. : 이전디렉토리로 이동

mkdir : 디렉토리 생성

rmdir : 디렉토리 삭제

cp A B : A를 B에 파일 카피

cp -r A B : A를 B에 디렉토리 카피

mv A B: A를 B로 이동

find : 파일찾기

where is : 전체디렉토리 찾기

which : 실행되는 파일의 디렉토리

touch 빈파일 생성

 

chmod :  권한변경

chmod u/g/o/a ± r/w/x : user혹은 group 혹은 others 에서의 해당권한 추가 혹은 삭제

umask : 해당 설정 권한으로 다음파일생성

 

stat : 파일 스탬프시간 확인

cat : 해당파일 내용보기

tac : 해당파일 내용 뒤에서부터 보기

head : 끝에 10줄보기

head : 처음 10줄 보기

grep ~ : 해당 문자열이 들어간 파일 검색

wc : 파일내의 라인 단어수 문자 개수

diff : 두 파일의 차이

 

ctrl + c : 실행중인 프로세스 종료

ctrl + z : 실행중인 프로세스 중지

jobs 현재 백그라운드 프로세스 상태

fg : 포그라운드 프로세스 전환

bg : 백그라운드 프로세스 전환

htop : cpu 상태 확인

ps : 현재 사용되고있는 프로세스

kill : 실행중인 프로세스 종료

 

 

'System Programming' 카테고리의 다른 글

Linux System Programming  (0) 2021.01.15
[Linux] 디바이스 드라이버 led 불켜기  (0) 2020.07.10
[Linux]좀비프로세스와 고아프로세스  (0) 2020.06.21
[Linux] gdb 디버깅  (0) 2020.06.16
[Linux] signal  (0) 2020.06.16

1. Linux

 

앞으로 System Programming 카테고리에서는 Linux 를 활용한 기본적인 명령어부터 기초적인 드라이버까지

알아보는 리눅스 시스템에 대해 다루어 볼 예정이다.

 

리눅스 커널 마스코트인 Tux

리눅스는 윈도우와 다른 서버 및 개발용 OS로 알고있지만 사실 커널이름이다. 

역사로 보자면 UNIX 시기부터 여러 변천이 많지만, 1991년도에 Linux Torvalds 가 처음 만든 Linux Kernel로부터 시작되었다고 보면 될것 같다. 이때가 1.0 이었고 아래와 같은 명령어를 치면 시스템의 커널 버전을 알 수 있다.

uname -a

 

 

앞으로는 UBUNTU 라는 명칭의 배포판을 이용하게 될건데, 이러한 배포판들은 Linux라는 커널과

사용자영역의 인터페이스들을 갖추어 합쳐나오는것이다. 이에는 UBUNTU 를 제외하고도 Centos, Debian, Red Hat, Fedora, SuSe등이 존재한다. 

그중 UBUNTU 를 교육용으로도 많이쓰는 이유는 우분투 재단의 지원이 풍부하고 배포판중에서도 커널의 가장 많이 담고있다고는 한다. 그외에도 FIrefox 나 Libre Office 같이 쓸만한 것들도 배포판 내에 많이 포함된다.

 


2. Terminal & Shell

Linux Terminal

 

위는 우분투에서 띄운 Terminal 이다.

사실 이 터미널이란 것은 터미널 애뮬레이터로써 소프트웨어 적으로 터미널창을 볼수 있게끔 구현한 것이다.

그리고 이 내부를 동작시키는 것을 쉘(Shell) 이라고 한다.

가령 명령어를 입력시키면 프로그램을 실행시키고 결과를 보여주는 등의 역할을 하는데 이를통해 사용자와 커널영역간의 연결고리 역할을 한다. 이러한 쉘도 여러종류가 있는데 현재 우리는 'Bash' 를 쓰고있다.

 

쉘, 커널, 사용자영역

 

 

 

 

'System Programming' 카테고리의 다른 글

Linux Terminal Basic Command  (0) 2021.01.16
[Linux] 디바이스 드라이버 led 불켜기  (0) 2020.07.10
[Linux]좀비프로세스와 고아프로세스  (0) 2020.06.21
[Linux] gdb 디버깅  (0) 2020.06.16
[Linux] signal  (0) 2020.06.16

 

 

led 불켜기

 

 

 

스위치 사용

 

인터럽트로 구현하였는데, 스위치 뭔가 잘못됐다;;;

디바이스 드라이버 어렵다ㅠ

 

'System Programming' 카테고리의 다른 글

Linux Terminal Basic Command  (0) 2021.01.16
Linux System Programming  (0) 2021.01.15
[Linux]좀비프로세스와 고아프로세스  (0) 2020.06.21
[Linux] gdb 디버깅  (0) 2020.06.16
[Linux] signal  (0) 2020.06.16

 

 

좀비 프로세스와 고아 프로세스(Zombie process and Orphan process)

이번 포스팅에서는 고아 프로세스와 좀비 프로세스에 대해서 알아 보도록 하겠습니다. 고아 프로세스와 좀비 프로세스 정의는 아래와 같습니다. 부모 프로세스가 자식 프로세스보다 먼저 종��

codetravel.tistory.com

 

'System Programming' 카테고리의 다른 글

Linux System Programming  (0) 2021.01.15
[Linux] 디바이스 드라이버 led 불켜기  (0) 2020.07.10
[Linux] gdb 디버깅  (0) 2020.06.16
[Linux] signal  (0) 2020.06.16
[Linux] 프로세스 실행 (exec)  (0) 2020.06.15

 

 

리눅스(Linux) gdb로 디버깅해보자 [1] - 시작 및 종료, 소스 출력

요즘 같이 다양한 IDE가 나오면서, 리눅스에서 기본으로 사용할 수 있는 GDB를 사용하는 사람이 그리 많지는 않으리라 생각합니다. 하지만, 임베디드 개발자나 일부 서버 관련 작업을 하는 사람들

blankspace-dev.tistory.com

 

 

리눅스(Linux) gdb로 디버깅해보자 [2] - 브레이크 포인트(break point), 디버깅 시작

지난 포스팅에 이어서, 리눅스에서 gdb로 디버깅을 해보는 두 번째 포스팅입니다. 이전 글에서는 gdb를 시작하고, 종료하는 방법과 소스를 출력하는 방법을 정리하였습니다. 관련 내용이 궁금하��

blankspace-dev.tistory.com

 

 

 

[리눅스] 시그널 (SIGNAL)1 시그널 다루기(시그널 핸들러)

시그널 의미전달에 사용되는 대표적인 방법은 메세지와 신호입니다. 메세지는 여러가지 의미를 갖을 수 있지만 복잡한 대신 , 신호는 1:1로 의미가 대응되기 때문에 간단합니다. 신호등이 가장 �

reakwon.tistory.com

 

'System Programming' 카테고리의 다른 글

[Linux]좀비프로세스와 고아프로세스  (0) 2020.06.21
[Linux] gdb 디버깅  (0) 2020.06.16
[Linux] 프로세스 실행 (exec)  (0) 2020.06.15
[Linux] 프로세스 생성(fork)  (0) 2020.06.15
[Linux]주요 명령어  (0) 2020.06.15