본문 바로가기
IT기술/Linux 계열

[Linux] 리눅스 핵심 구성요소 & 기본 명령어

by Travelo 2022. 7. 18.
728x90
반응형

 

 

 

 

 

리눅스(Linux) 핵심 구성요소

 

  • 커널(Kernel)
    • 운영체제(Operating System, OS) 기본 구성요소이며, 커널이 없으면 OS는 작동할 수 없습니다.
      커널을 통해 시스템 리소스 관리 및 하드웨어와의 통신, 메모리, 프로세스, 파일시스템 관리를 가능합니다.
    •  
  • 쉘(Shell)
    • 리눅스/유닉스 시스템에서 사용하는 대화형 인터페이스 입니다.
    • 사용자로부터 명령을 읽어 실행하는 프로그램의 종류이며, 사용자와 커널사이의 인터페이스 입니다.
    • 사용자가 명령어를 입력하면 해석하여 커널에 전달하는 역할을 합니다.
      sh, bash, sch, ksh, tcsh, zsh 등의 종류
  • 파일 시스템(File System)
    • 컴퓨터 내의 파일이나 자료를 저장하고 불러오기 위한 계층구조 형식의 체계를 의미합니다.
    • 파일을 더 쉽게 발견하며 접근 할 수 있도록 체계적으로 관리합니다.
    • 계층구조의 형식이란 트리 구조이며 디렉터리, 서브 디렉터리, 파일 등의 형태로 계층을 나누어 분류합니다.

 

반응형

 

 

리눅스 명령어 구조

 

리눅스는 커맨드 라인을 통해 컴퓨터 동작에 대한 액세스를 할 수 있습니다.

흔히 사용하는 Windows, MacOS 등의 마우스를 이용하여 가리키고 클릭하는 방식의 그래픽 사용자 인터페이스(Graphic User Interface, GUI) 방식이 아닌 커맨드라인을 통해 하드웨어 작업을 수행할 수 있도록 소프트웨어를 통해 요청할 수 있습니다.

다양한 운영체제에서 지원하지만 주로 소프트웨어 개발, 하드웨어 개발 및 다양한 IT 엔지니어 업무를 하는 이들이 주로 사용합니다. 

$ 명령 [옵션] [인자···]

 

  • 명령: 리눅스를 사용하기 위하여 사용자가 입력하는 명령어
  • 옵션: 명령어의 세부 기능을 선택하여 사용 (일부 명령어 옵션 생략가능)
  • 인자[parameter]: 명령으로 전달되는 값, 주로 파일명 또는 디렉터리명을 사용 (일부 명령어 인자 생략가능)

 

 

리눅스 기본 명령어

 

리눅스 기본 명령어 몇 가지를 알아 보겠습니다.

 

  • date (날짜와 시간을 출력)
root@ubuntu:~# date
Mon Jul 11 09:56:51 UTC 2022

 

  • hostname 
root@ubuntu:~# hostname
ubuntu

 

  • passwd (사용자 계정의 암호 변경)
root@ubuntu:~# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

 

  • w (현재 로그인 사용자 정보)
root@ubuntu:~# w
 09:58:15 up 44 min,  2 users,  load average: 0.04, 0.01, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
travelo  tty1     -                09:32    5:43   0.13s  0.02s -bash
travelo  pts/0    10.xxx.xxx.222   09:53    1.00s  0.05s  0.01s sshd: travelo [priv]

 

  • chmod (파일이나 디렉터리의 접근 권한 변경)
root@ubuntu:~# ls -al
total 32
drwx------  4 root root 4096 Jul 11 10:02 .
drwxr-xr-x 23 root root 4096 Jul 11 09:12 ..
drwxr-xr-x  2 root root 4096 Jul 11 10:00 aaaaa
-rw-r--r--  1 root root 3106 Apr  9  2018 .bashrc
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
drwx------  2 root root 4096 Jul 11 09:14 .ssh
-rw-r--r--  1 root root  371 Jul 11 10:02 test.yaml
-rw-------  1 root root 1405 Jul 11 10:02 .viminfo

root@ubuntu:~# chmod 777 test.yaml

root@ubuntu:~# ls -al
total 32
drwx------  4 root root 4096 Jul 11 10:02 .
drwxr-xr-x 23 root root 4096 Jul 11 09:12 ..
drwxr-xr-x  2 root root 4096 Jul 11 10:00 aaaaa
-rw-r--r--  1 root root 3106 Apr  9  2018 .bashrc
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
drwx------  2 root root 4096 Jul 11 09:14 .ssh
-rwxrwxrwx  1 root root  371 Jul 11 10:02 test.yaml
-rw-------  1 root root 1405 Jul 11 10:02 .viminfo

 

  • cat (파일의 전체 내용 출력)
root@ubuntu:~# cat test.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2 # tells deployment to run 2 pods matching the template
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

 

  • tail (파일의 마지막 내용 출력)
root@ubuntu:~# tail test.yaml
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

 

  • pwd (현재 디렉터리 확인, 절대경로)
root@ubuntu:~/aaaaa# pwd
/root/aaaaa

 

  • ls (디렉터리의 내용 출력)
root@ubuntu:~# ls
aaaaa  test.yaml

 

  • grep (특정패턴을 가지는 행을 검색)
root@ubuntu:~# grep -rn deploy
test.yaml:4:  name: nginx-deployment
test.yaml:9:  replicas: 2 # tells deployment to run 2 pods matching the template

  • find (특정경로 내 조건에 맞는 파일 검색)
root@ubuntu:~# ls
aaaaa  bbbbb  test.yaml  test.yaml_bak

root@ubuntu:~# find test.*
test.yaml
test.yaml_bak

 

  • mkdir (디렉터리 생성)
root@ubuntu:~# ls
test.yaml

root@ubuntu:~# mkdir aaaaa

root@ubuntu:~# ls
aaaaa  test.yaml

 

  • rmdir (디렉터리 삭제)
root@ubuntu:~# ls
aaaaa  bbbbb  test.yaml  test.yaml_bak

root@ubuntu:~# rmdir bbbbb/

root@ubuntu:~# ls
aaaaa  test.yaml  test.yaml_bak

 

  • cp (파일이나 디렉터리 복사)
root@ubuntu:~# ls
aaaaa  bbbbb  test.yaml

root@ubuntu:~# cp test.yaml test.yaml_bak

root@ubuntu:~# ls
aaaaa  bbbbb  test.yaml  test.yaml_bak

 

  • rm (파일이나 디렉터리 삭제)
root@ubuntu:~# ls
aaaaa  bbbbb  test.yaml  test.yaml_bak

root@ubuntu:~# rm test.yaml_bak

root@ubuntu:~# ls
aaaaa  bbbbb  test.yaml

root@ubuntu:~# rm -rf bbbbb/

root@ubuntu:~# ls
aaaaa  test.yaml

 

  • mv (파일이나 디렉터리 이동)
root@ubuntu:~# ls
aaaaa  bbbbb  test.yaml  test.yaml_bak

root@ubuntu:~# mv test.yaml_bak bbbbb/

root@ubuntu:~# cd bbbbb
root@ubuntu:~/bbbbb# ls
test.yaml_bak

root@ubuntu:~# ls
aaaaa  bbbbb  test.yaml

 

  • touch (파일을 생성하거나 갱신)
root@ubuntu:~# ls
root@ubuntu:~# touch test.yaml

root@ubuntu:~# ls
test.yaml

 

  • man (명령어 사용 방법 출력)
root@ubuntu:~# man
What manual page do you want?

root@ubuntu:~# man ifconfig



IFCONFIG(8)           Linux System Administrator's Manual          IFCONFIG(8)

NAME
       ifconfig - configure a network interface

SYNOPSIS
       ifconfig [-v] [-a] [-s] [interface]
       ifconfig [-v] interface [aftype] options | address ...

DESCRIPTION
       Ifconfig  is  used to configure the kernel-resident network interfaces.
       It is used at boot time to set up interfaces as necessary.  After that,
       it  is  usually  only  needed  when  debugging or when system tuning is
       needed.
......

 

728x90
반응형

댓글