리눅스(LINUX) 명령어 1

2022. 9. 28. 13:56교육(Linux)/리눅스 Basic

파일, 디렉토리 관리 - mv, rm -rf, cd, mkdir, rmdir, pwd

파일이나 디렉토리 이동 목적의 명령어(하위 디렉토리까지 이동 하기 위해 옵션"-r"사용)

> mv -r [경로&파일명] [경로&파일명]

) mv –r test /home/test

 

파일 또는 디렉토리 삭제시 사용 –f 옵션이 들어가서 사용자한테 물어보지 않고 삭제

 

>rmrf [디렉토리 또는 파일명]

) rmrf test    (test 라는 파일 또는 디렉토리 삭제 하위디렉토리 까지 삭제, 리눅스에는 휴지통이 없으니 사용시 주의)

 

사용자의 디렉토리 위치 이동시 사용

>cd [디렉토리명]   

) cd / (최상위디렉토리이동)  cd .. (상위디렉토리이동) cd [디렉토리명] (현재위치에 있는 디렉토리명 으로 이동

     cd [경로&디렉토리명] (경로&디렉토리명 위치로 이동)

 

디렉토리 만들기 삭제

>mkdir [디렉토리명]    만들기

>rmdir [디렉토리명]     삭제 rmrf [디렉토리명] 과 결과 같음

 

현재 사용자의 디렉토리 위치 출력

>pwd

 

파일, 디렉토리 관리 명령어 -   df -h, fdisk -l, du -sk*, ls, ls -al

현재 서버의 디렉토리 구조 및 용량 사용량등 표시

>df –h

 

문법

$ df [option]

 

옵션 OPTION

옵션 의미
-a 0 블록의 파일시스템을 포함하여 모든 파일시스템을 출력
-k 킬로바이트(kilobyte)단위로 보여준다
-m 메가바이트(megabyte)단위로 보여준다
-T 각 파티션에 대한 파일 시스템의 유형을 보여준다
-i 아이노드(i-nodes)의 사용량을 보여준다.
'No space left on device'라는 메세지가 떴을 때 대부분 i-nodes를 다 써버린 경우이다.

현재 서버의 디스크 구조 출력

>fdisk –l

 

현재 디렉토리및 하위 디렉토리의 용량 출력

>du –sk *

 

현재 사용자 디렉토리 위치에서 파일 및 디렉토리 출력

>ls       (현재위치에서 파일명 디렉토리면 만 출력함)

>ls –al      (현재위치에서 파일명 디렉토리명 과 함께 권한 소유자 소유그룹등 출력함

 

 

 

 

 

 

 

결과줄 앞에 drwxr-xr-x 표시는 가장 왼쪽 d 디렉토리 표시 d 자리에

- 표시로 되어있으면 파일 이라는 뜻, l 로 표기되어 있으면 링크파일

그 뒤에 3개문자 는 파일에 소유자 권한을 나타냄 rwx(읽기,쓰기,실행가능)

그 뒤에 3개 문자는 파일에 대한 소유그룹 권한 r-x(읽기,-,실행가능)

그 뒤에 3개 문자는 파일에 대한 소유자 소유그룹을 제외한 모든 사용자에

대한 권한 r-x(읽기-실행가능

 

파일, 디렉토리 관리 명령어 -   chmod, chown, rename, tail, cat

선택한 파일 또는 디렉토리의(하위 디렉토리 적용 -R 옵션) 권한 수정

>chmod 777 [파일명]          (파일명 또는 디렉토리의 권한을 rwxrwxrwx 로 변경

>chmod 744 [파일명]          (파일명 또는 디렉토리의 권한을 rwxr--r-- 로 변경

>chmod –R 777 [파일명]            (파일명 또는 디렉토리명 의 권한을 rwxrwxrwx 로 변경하며 그 하위 디렉토리 파일도 동일하게 변경)

 

선택한 파일 또는 디렉토리의(하위 디렉토리 적용 -R 옵션) 소유자 소유그룹 변경

>chown root:root [파일명]        (파일명 의 소유자 및 소유그룹을 root root 로 변경)

>chown -R root:root [파일명]     (파일명 의 소유자 및 소유그룹을 root root 로 변경하고 그 하위 디렉토리및 파일도 동일하게 변경)

 

파일명 변경시 사용

>rename [파일명] [파일명]        (mv [파일명] [파일명] 과 같은 결과가 된다)

 

문서 파일의 끝에서 부터 위로 10줄 출력

>tail [파일명]

) >tail -100 [파일명]       문서의 끝부분 부터 위로 100 줄 보여줌

     >tail –t [파일명]           문서의 끝부분 부터 위로 10줄 보여주고 대기하고 있다가 추가되는 글이 있으면 출력

                                     이벤트 로그 등의 실시간 확인에 사용

 

문서 파일 내용 출력

>cat [파일명]            grep 명령어와 같이 쓰면 원하는 내용을 쉽게 찿을 수 있다

 

grep 명령어
리눅스에서 grep 명령어는 특정 파일에서 지정한 문자열이나 정규표현식을 포함한 행을 출력해주는 명령어입니다.

특히 tail이나 ls 등 다양한 명령어와 조합하여 응용되는 경우가 많아서 이 grep명령어는 리눅스에서 능숙하게 사용할 줄 알아야 하는 기본 명령어입니다.

 

리눅스 grep 사용법

grep [옵션][패턴][파일명]

 

문자열로 찾기

# 특정 파일에서 'error' 문자열 찾기

grep 'error' 파일명

# 여러개의 파일에서 'error' 문자열 찾기

grep 'error' 파일명1 파일명2

# 현재 디렉토리내에 있는 모든 파일에서 'error' 문자열 찾기

grep 'error' *

# 특정 확장자를 가진 모든 파일에서 'error' 문자열 찾기

grep 'error' *.log

 

grep 명령어 사용법

https://coding-factory.tistory.com/802

 

[Linux] 리눅스 grep 명령어 사용법 (파일 내 특정 문자열 찾기)

리눅스 find 명령어는 로그파일이나, 텍스트 파일에서 특정 문자열을 찾을 때 사용하며 tail 명령어나 find 명령어등 다양한 명령어들과 함께 사용하여 로그 파일에서 실시간으로 특정 문자열을 찾

coding-factory.tistory.com

 

 

파일, 디렉토리 관리  명령어 - vi

문서 파일 생성 또는 수정을 위해 사용

>vi [파일명]       vi 편집기로 이동되며 편집기 내에서 의 명령어 사용하여 문서 생성 또는 수정

모드전환 단축키, 처음 편집기 로 이동되면 단축키 모드로 이동되고 단축키 모드에서 입력모드나 명령줄 모드로 이동가능

입력모드 에서는 단축키모드로만 이동 가능하고 명령줄 모드에서도 단축키 모드로만 이동가능

 

I             : 입력 모드

Esc         : 단축키 모드

:             : 명령줄 모드

 

저장, 종료하기 (명령줄 모드)
명령 모드에서 콜론:을 이용하여 다양한 작업이 가능하다. (콜론 모드)

 

:q 종료

:q! 저장하지 않고 강제로 종료

:w 저장

:wq 저장 후 종료

:wq! 강제 저장 후 종료

 

문자열 찾기 (명령줄 모드)

:/문자열 : 앞에서 부터 문자열을 찾는다.

:?문자열 : 뒤에서 부터 문자열을 찾는다.

n : 뒤로 검색

N : 앞으로 검색

시스템  관리 명령어 - hostname

hostname 확인

다음과 같이 명령하면 hostname을 출력합니다.

>hostname

또는

>cat /etc/hostname

 

hostname 변경 1 (임시변경)

다음과 같이 명령하면 hostname을 abc로 변경합니다.

서버 재기동시 변경 이전의 hostname 으로 설정됨

>hostnamectl set-hostname abc

 

hostname 변경 2 (영구변경)

텍스트 편집기로 열면 한 줄의 코드가 있는데, 그것이 hostname입니다. 그 코드를 바꾸고 저장하면 hostname이 변경됩니다.

vi /etc/hostname

시스템을 재부팅하면 변경 사항이 적용됩니다.

 

Hostname 변경 1, 변경2 같이 적용하면 서버 재기동 없이 영구적으로 hostname 설정 가능

 

시스템  관리 명령어 - top

서버의 리소스 사용율 확인시 사용하는 명령어

>top

System time, uptime and user sessions

시스템 현재 시간, OS가 살아있는 시간, 그리고 유저의 세션수가 표시되는 영역

 

Load Average

해당 영역은 CPU Load의 이동 평균를 표시합니다. 앞에서 부터 1, 5, 그리고 15분에 대한 평균값입니다. CPU LoadCPU가 수행하는 작업의 양 입니다. 리눅스에서는 실행되거나 대기중인 프로세스의 평균입니다. 싱글 코어일 경우 1.0의 값이 CPU 100%를 사용하고 있다는 의미입니다. 멀티 코어라면 해당 코어수 만큼 * N을 한 값이 CPU 100%를 사용한다는 의미가 됩니다. 만약 100%를 넘어간다면 CPU에서 처리하지 못하고 대기하고 중인 프로세스가 있다고 보시면됩니다.

 

Tasks

Tasks는 현재 프로세스들의 상태를 나태내주는 영역입니다. Total은 전체 프로세스, runningrunning 상태인 프로세스, sleeping은 대기상태인 process, stopped는 종료된 프로세스, zombies좀비상태인 프로세스의 수를 나타냅니다.

 

CPU 사용량

Tasks 아래 %Cpu(s)라는 영역이 있습니다이 영역은 CPU가 어떻게

사용되고 있는지 그 사용율을 보여주는 영역입니다. 모든 값의

총 합은 100% 이며 이를 퍼센테이지로 나누어서 보여줍니다.

각 요소는 아래와 같습니다.

us : 프로세스의 유저 영역에서의 CPU 사용률
sy : 프로세스의 커널 영역에서의 CPU 사용률
ni : 프로세스의 우선순위(priority) 설정에 사용하는 CPU 사용률
id : 사용하고 있지 않는 비율
wa : IO완료될때까지 기다리고 있는 CPU 비율
hi : 하드웨어 인터럽트에 사용되는 CPU 사용률
 
si : 소프트웨어 인터럽트에 사용되는 CPU 사용률
 
st : CPUVM에서 사용하여 대기하는 CPU 비율
 

메모리 사용량

%Cpu(s) 영역 아래에 메모리와 관련된 영역이 있습니다. 첫번째 줄은 RAM의 메모리 영역으로 Mem이라 표시되어있는 부분입니다. 그리고 아랫줄은 디스크를 메모리 처럼 이용하는 Swap 메모리 영역입니다. 일반적으로 Mem의 사용량이 거의 가득 찼을때 Swap 메모리 영역을 사용합니다. 이 영역은 디스크이기 때문에 RAM 메모리보다 속도가 많이 느린 단점을 가집니다.

total : 총 메모리 양
free : 사용가능한 메모리 양
used : 사용중인 메모리 양

buff/cache에서 buffbuffers의 약자입니다. 이 값은 커널 버퍼에서 사용되는 메모리를 뜻합니다. cacheDisk의 페이지 캐시를 말합니다. , buff/cacheIO와 관련되어 사용되는 버퍼에 사용되는 메모리를 말합니다. 이 메모리가 있으므로써 IO에 상대적으로 빠른 속도를 가질 수 있습니다. avail Memswap 메모리를 사용하지 않고 사용할 수 있는 메모리의 크기를 말합니다.

Top

Shift + p  cpu사용율 내림차순

Shift + m 메모리 사용율 내림차순

Shift + t 프로세스 돌아가고 있는 시간순

 

PID

PID는 프로세스 ID이며 프로세스를 구분하기 위한 겹치지않는 고유한 값입니다.

 

USER

해당 프로세스를 실행한 USER 이름 또는 효과를 받는 USER의 이름입니다.

 

PR & NI

PR : 커널에 의해서 스케줄링되는 우선순위입니다.

 

NI : PR에 영향을 주는 nice라는 값입니다.

 

VIRT : 프로세스가 소비하고 있는 총 메모리입니다. 프로그램이 실행중인 코드,

         heap, stack과 같은 메모리, IO buffer 메모리를 포함합니다.

 

RES : RAM에서 사용중인 메모리의 크기를 나타냅니다.

 

SHR : 다른 프로세스와의 공유메모리(Shared Memory)를 나타냅니다.

 

%MEM : RAM에서 RES가 차지하는 비율을 나타냅니다.

 

S : 프로세스의 현재 상태를 나타냅니다.

 

TIME+ : 프로세스가 사용한 토탈 CPU 시간

 

COMMAND : 해당 프로세스를 실행한 커맨드를 나타냅니다.

 

시스템  관리 명령어 - vmstat

시스템 리소스(메모리,cpu,i/0)를 모니터링 해주는 명령어

>vmstat

procs -----------------memory-----------------------------swap------ -----io----------------system----------------- ----cpu----
 r 
 b         swpd   free       buff      cache               si   so          bi    bo                in   cs                    us sy id wa
 1  0     
   0         407520  76824  314244             0    0          90    32               86  385                    3  1 93  3
 
proc : r(현재 실행중인 프로세스 수) b(슬립 상태인
프로세스수)
memory : swpd(사용중인
스왑 메모리) free(사용가능 메모리) buff(버퍼로 사용중인 메모리) cache(캐시로 사용중인 메모리)
swap : si(
스왑 인), so(스왑 아웃) 메모리 상태에 따라 부족하면 스왑 아웃으로 메모리를 확보하고 필요에따라 다시 스왑인을 하게 된다.
io : bi(초당
블럭 디바이스로 보내는 블럭 수), bo(초당 블럭 디바이스에서 받는 블럭 수) 물리 디스크에 읽고 쓰기 속력을 의미 한다.
system : in(초당 인터럽트 되는 양), cs(초당 context switch 되는 양), 인터럽트란 동시에 여러 프로세스가
진행될때 필요에 따라 프로세스 사이에 시스템에 제어권을 넘겨주기 위한 알고리즘을 의미한다.

하드웨어는 한번에 한가지 일만 처리 할수 있지만 인터럽트를 이용하게 되면 여러 프로세스가 순차적으로 시스템 제어권을 주고 받을수 있기 때문에 멀티태스킹이 가능해 진다.

문맥교환(context switch)은 인터럽트 발생시 기존에 프로세서에 대한 정보를 프로세스 블럭에 기록하고 시스템 제어권을

변경하는 작업을 의미 한다.
cpu : us(사용자 사용 시간 비율)  sy(시스템 사용 시간 비율)  id(대기 상태중인 비율)

 

시스템  관리 명령어 - ps

서버의 서비스, 데몬 기동 유무 확인 시 사용 하는 명령어

ps : ps 명령의 옵션에 따라 자세한 프로세스 정보를 확인할 수 있습니다

-e : 시스템상의 모든 프로세스에 대한 정보 출력

-l, -f :  전체 목록 출력 (PPID / NICE / PRIORITY)

uid(sysV)              : 프로세스 소유자의 username
pid                      : 프로세스 식별번호 프로세스 강제종료 시 

                          >kill -9 [pid]
TTY                     : 프로세스와 연결된 터미널 포트
TIME                    : cpu 사용 시간
COMMAND           : 프로세스의 실행 명령 행
STIME(sysV)           : 프로세스가 시작된 시각 혹은 날짜
PPID                    : 부모 프로세스의 PID

 

시스템  관리 명령어 - uptime, ntp,free, ifconfig, os버전 확인

시스템 부팅후 현재까지 의 시간 출력, 마지막 부팅 시점 확인시 사용

>uptime

 

현재 서버의 시간 정보 출력

>date

 

ntp 서비스 기동 확인

>ntpq –p  또는 psef |grep ntpq

 

현재 사용중인 메모리 상태를 보여 주는 명령어

>free -m

 

네트워크 정보 출력

>ifconfig

 

OS 버전 출력

>cat /etc/issue

 

시스템  관리 명령어 -  하드웨어 사양 및 정보 확인 명령어

>lscpu        cpu정보 출력

>lshw         하드웨어 리스트 출력

>hwinfo     하드웨어 정보 출력

>lsblk          block device 들의 정보 출력

>lspci          pci 카드 정보 출력

>df              파일시스템 사용량 출력

>free          메모리 현재상태 출력

 

장치 모듈별 h/w 정보 출력

>dimdecode –t system

>dimdecode –t memory

>dimdecode –t processor

>dimdecode –t baseboard

>dimdecode –t chassis

>dimdecode –t cache

>dimdecode –t slot