+ - 0:00:00
Notes for current slide
Notes for next slide

Linux Command

1 / 13

Kernel & Shell

  • Kernel(커널)
    • 커널은 리눅스 운영체제의 핵심으로 하드웨어를 관리하고 응용 프로그램의 실행 환경을 제공
  • Shell(쉘)
    • 사용자가 리눅스 운영체제를 사용하기 위한 인터페이스로 명령을 입력하고 명령의 결과를 확인함
    • 대표적인 쉘 프로그램으로 Bash가 있음
  • 만일 사용자가 ls(파일 목록 보기) 명령을 실행하면
    • 쉘에서 ls라고 사용자가 입력하면 쉘이 ls라는 프로그램을 찾아서 커널에게 실행(exec)을 요청(시스템 콜)
    • 커널은 exec요청에 따라 ls프로그램을 실행
    • ls가 실행되면 ls는 필요에 따라 여러 요청(시스템 콜)을 커널에게 하게 됨
2 / 13

File & Process

  • 리눅스에서는 모든 것을 파일로 추상화하여 접근 함
    • 실제로 파일이 아닌데, 파일 처럼 open/read/write/close 할 수 있음
    • 디렉토리, 하드웨어 디바이스 등
  • 프로세스
    • 프로세스는 프로그램이 실행되어 커널에 의해 관리되고 있는 것을 말함
    • 프로그램 하나가 여러 번 실행되어 여러 프로세스가 생길 수 있음
3 / 13

파일 & 디렉토리 탐색 명령

  • ls: 파일 목록 보기
  • cd: 디렉토리 변경
  • mkdir: 디렉토리 생성
  • rmdir: 디렉토리 삭제
  • pwd: 현재 디렉토리 보기
  • 특별한 디렉토리
    • . 현재 디렉토리를 의미
    • .. 상위(부모) 디렉토리를 의미
    • ~ 홈 디렉토리를 의미
jyheo@JYHEO-LAPTOP:~$ ls
android-lecture doc test.py
jyheo@JYHEO-LAPTOP:~$ mkdir temp
jyheo@JYHEO-LAPTOP:~$ cd temp
jyheo@JYHEO-LAPTOP:~/temp$ ls -al
total 4
drwxrwxrwx 0 jyheo jyheo 512 Sep 7 13:58 .
drwxr-xr-x 0 jyheo jyheo 512 Sep 7 13:58 ..
jyheo@JYHEO-LAPTOP:~/temp$ cd ..
jyheo@JYHEO-LAPTOP:~$ ls -al ~/temp
total 4
drwxrwxrwx 0 jyheo jyheo 512 Sep 7 13:58 .
drwxr-xr-x 0 jyheo jyheo 512 Sep 7 13:58 ..
jyheo@JYHEO-LAPTOP:~$ rmdir temp
jyheo@JYHEO-LAPTOP:~$ ls -a
. android-lecture .bash_logout doc .python_history test.py
.. .bash_history .bashrc .profile .sudo_as_admin_successful .viminfo
jyheo@JYHEO-LAPTOP:~$ pwd
/home/jyheo
4 / 13

파일 조작 명령

  • cp: 파일 복사
  • mv: 파일 이동 또는 이름 변경
  • rm: 파일 삭제
  • cat: 파일 내용 출력
  • less: 파일 내용을 한 페이지씩 출력
  • head: 파일의 앞 10줄만 출력
  • tail: 파일의 뒤 10줄만 출력
  • grep: 파일에 특정 문자열(패턴)을 찾아서 보여줌
  • wc: 파일의 줄 수, 단어 수, 글자 수 통계
jyheo@JYHEO-LAPTOP:~$ ls
android-lecture doc test.py
jyheo@JYHEO-LAPTOP:~$ cp ./doc/raspberry/lecture-notes/linux-command.md .
jyheo@JYHEO-LAPTOP:~$ ls
android-lecture doc linux-command.md test.py
jyheo@JYHEO-LAPTOP:~$ mv linux-command.md lixcmd.md
jyheo@JYHEO-LAPTOP:~$ ls
android-lecture doc lixcmd.md test.py
jyheo@JYHEO-LAPTOP:~$ cat lixcmd.md
jyheo@JYHEO-LAPTOP:~$ less lixcmd.md
jyheo@JYHEO-LAPTOP:~$ head lixcmd.md
jyheo@JYHEO-LAPTOP:~$ tail lixcmd.md
jyheo@JYHEO-LAPTOP:~$ grep "파일" lixcmd.md
만일 사용자가 ls(파일 목록 보기) 명령을 실행하면
리눅스에서는 모든 것을 파일로 추상화하여 접근 함
- 실제로 파일이 아닌데, 파일 처럼 open/read/write/close 할 수 있음
ls: 파일 목록 보기
jyheo@JYHEO-LAPTOP:~$ wc lixcmd.md
109 352 2701 lixcmd.md
jyheo@JYHEO-LAPTOP:~$ rm lixcmd.md
5 / 13

와일드카드(* , ?)

  • 와일드카드 * 는 모든 경우
    • ab* 라고 하면 ab로 시작하는 모든 파일을 의미, abc, abcde, abd 등
  • 와일드카드 ? 는 한 글자에 대해서만 모든 경우
    • ab? 라고 하면 abc는 맞지만, abcd는 아님
jyheo@JYHEO-LAPTOP:~/temp$ touch ab abc abcd abcde abd
jyheo@JYHEO-LAPTOP:~/temp$ ls ab*
ab abc abcd abcde abd
jyheo@JYHEO-LAPTOP:~/temp$ ls ab?
abc abd
jyheo@JYHEO-LAPTOP:~/temp$ ls ?bc
abc
jyheo@JYHEO-LAPTOP:~/temp$ ls *d
abcd abd
jyheo@JYHEO-LAPTOP:~/temp$ rm *
jyheo@JYHEO-LAPTOP:~/temp$ ls
jyheo@JYHEO-LAPTOP:~/temp$
6 / 13

Redirection & Pipe

  • Stanard In/Out(표준 입출력)
    • 프로그램이 printf()와 같은 함수로 출력을 하면 일반적으로 표준 출력으로 표시됨
    • 보통은 터미널 화면이 표준 출력으로 사용됨
    • 표준 입력은 scanf()와 같은 함수로 입력을 받을 때 사용하는 것으로 보통은 키보드 입력이 사용됨
  • Redirection은 표준 입출력을 쉘에서 파일로 쉽게 변경해주도록 함
  • program > file : program 표준 출력을 file로 저장(기존 file내용 삭제)
  • program < file : program 표준 입력을 file의 내용으로 사용
  • program >> file : program 표준 출력을 file에 추가하여 저장
  • program1 | program2 : 파이프, program1의 표준 출력을 program2의 표준 입력으로 사용함
7 / 13

Redirection & Pipe

jyheo@JYHEO-LAPTOP:~$ ls -al > lsout
jyheo@JYHEO-LAPTOP:~$ cat lsout
jyheo@JYHEO-LAPTOP:~$ ls >> lsout
jyheo@JYHEO-LAPTOP:~$ cat lsout
jyheo@JYHEO-LAPTOP:~$ ls -al | wc
14 123 805
jyheo@JYHEO-LAPTOP:~$ wc < lsout
18 127 839
jyheo@JYHEO-LAPTOP:~$ wc lsout
18 127 839 lsout
8 / 13

Process 관련 명령

  • ps: 프로세스 목록을 보여줌
  • kill: 프로세스에 시그널을 보냄
    • 시그널: 프로세스에게 어떤 신호을 보내는 방법
    • kill 프로그램으로 보낼 만한 시그널로는 SIGTERM, SIGKILL, SIGUSR 정도
jyheo@JYHEO-LAPTOP:~$ ps
PID TTY TIME CMD
112 tty2 00:00:02 bash
330 tty2 00:00:00 ps
jyheo@JYHEO-LAPTOP:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 12:30 ? 00:00:00 /init
jyheo 2 1 0 12:30 tty1 00:00:01 /bin/bash
jyheo 112 1 0 13:57 tty2 00:00:02 /bin/bash
jyheo 331 112 0 14:35 tty2 00:00:00 ps -ef
jyheo@JYHEO-LAPTOP:~$ kill -SIGKILL 112
9 / 13

파일 텍스트 정렬/편집

  • sort: 입력 파일을 정렬하여 출력함
  • find: 특정 조건의 파일을 찾음
  • sed: 스트림 에디터, 파일의 내용을 편집하는 명령어들을 입력으로 주어 파일을 편집함
    • 예를 들어 어떤 파일에서 ABC라는 문자열을 DEF로 바꾼다.
    • 파일의 특정 위치에 다른 파일을 끼워 넣는다.
  • nano: 간단한 편집기, 명령어가 표시되므로 쉽게 사용 가능
  • vi: 전통적인 오래된 편집기, 명령 모드와 편집 모드로 나뉘어져 있음
10 / 13

파일 텍스트 정렬/편집

jyheo@JYHEO-LAPTOP:~$ cat fruits
banana
apple
kiwi
jyheo@JYHEO-LAPTOP:~$ sort fruits
apple
banana
kiwi
jyheo@JYHEO-LAPTOP:~/doc$ find -name "*.md" -print
./android/android-lecture/labs/actionbar-navigation-lab.md
./android/android-lecture/labs/activity-intent-lab.md
./android/android-lecture/labs/adapter-view-lab.md
./android/android-lecture/labs/android-intro-lab.md
... 생략
11 / 13

Help

  • whatis: 프로그램의 용도를 알려줌
  • man: 프로그램의 자세한 사용 매뉴얼
  • apropos: 특정 기능을 하는 프로그램을 찾아줌
jyheo@JYHEO-LAPTOP:~/doc$ whatis cp
cp (1) - copy files and directories
jyheo@JYHEO-LAPTOP:~/doc$ man cp
jyheo@JYHEO-LAPTOP:~/doc$ apropos rename
file-rename (1p) - renames multiple files
File::Rename (3pm) - Perl extension for renaming multiple files
git-mv (1) - Move or rename a file, a directory, or a symlink
lvrename (8) - rename a logical volume
mv (1) - move (rename) files
prename (1) - renames multiple files
rename (1) - renames multiple files
rename.ul (1) - rename files
vgimportclone (8) - import and rename duplicated volume group (e.g. a hardware snapshot)
vgrename (8) - rename a volume group
12 / 13

Kernel & Shell

  • Kernel(커널)
    • 커널은 리눅스 운영체제의 핵심으로 하드웨어를 관리하고 응용 프로그램의 실행 환경을 제공
  • Shell(쉘)
    • 사용자가 리눅스 운영체제를 사용하기 위한 인터페이스로 명령을 입력하고 명령의 결과를 확인함
    • 대표적인 쉘 프로그램으로 Bash가 있음
  • 만일 사용자가 ls(파일 목록 보기) 명령을 실행하면
    • 쉘에서 ls라고 사용자가 입력하면 쉘이 ls라는 프로그램을 찾아서 커널에게 실행(exec)을 요청(시스템 콜)
    • 커널은 exec요청에 따라 ls프로그램을 실행
    • ls가 실행되면 ls는 필요에 따라 여러 요청(시스템 콜)을 커널에게 하게 됨
2 / 13
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow