Back-End

Linux 명령어 모음

졸려질려 2022. 4. 6. 00:33
반응형


Mac을 구매하고, 백엔드를 공부하기 시작하면서 터미널을 쓸 일이 많아졌다. 터미널을 통해서 다양한 업무를 봐야하다보니 리눅스 명령어를 많이 알아두어야겠다는 생각을 하게 되어 터미널 명령어들을 정리 해놓고자 한다. 필자의 경험을 기반으로 하기에는 아직 초보 단계이기 때문에, 다른 글에서 BEST 50으로 선정한 명령어들을 옮기기로 한다.


# 파일 시스템 탐색

1. pwd

Print Work Directory의 약자이며, 현재 작업 중이거나 사용자가 있는 디렉터리의 경로를 보여준다.

2. ls

List Segments의 약자이며, 아마도 유닉스 세계에서 가장 널리 사용되는 명령 중 하나일 것이다. 파일과 디렉터리의 모든 정보를 제공하며 특정 디렉터리와 특정 파일의 내용도 제공한다. 그리고 다양한 옵션을 사용하여 탐색이 가능하다.

  • -a : "."으로 시작하는 숨긴 파일들을 포함하여 모든 디렉토리와 파일들을 보여준다.
  • -l : 디렉토리와 파일의 권한을 보여주는 긴 형식의 목록을 출력한다.
  • -s : 파일의 크기를 출력한다. 디렉토리는 0으로 출력된다.
  • -S : 파일들을 크기의 내림차순으로 출력한다. (제일 큰 파일이 맨 위)
  • -t : 파일과 디렉토리의 시간 내림차순으로 출력한다. (가장 최근 수정된 파일이 맨 위)

위 옵션들을 하나만 사용할 수 있는 것이 아니라, 원하는 옵션들을 조합하여 사용할 수 있다. 아마 가장 많이 사용되는 ls 옵션은 ls -la 가 아닐까 싶다. 그 외에 다양한 옵션들은 링크에서 참고.

3. cd

Change Directory의 약자이며, 인자값 없이 사용하게 된다면 홈 디렉토리(~)로 이동하는 명령을 수행한다.

cd 뒤에 상대 경로(.., ./tmp)나 절대 경로(/Users/Documents)를 붙여주면, 해당 경로로 이동하는 명령을 수행한다.

4. mkdir

Make Directory의 약자이며, 새로운 디렉토리를 생성하는 명령을 수행한다. 물론, 생성하고자 하는 위치에 대한 권한이 필요하며, 권한만 있다면 원하는 위치에서 디렉토리를 만들 수 있다.

5. rmdir

Remove Directory의 약자이며, 빈 디렉터리를 삭제할 때 사용하는 명령어이다. rmdir로 삭제하려는 디렉터리가 비어있지 않을 경우에는 삭제할 수 없다. 파일이나 디렉터리가 담긴 디렉터리를 삭제할 때는 rm -rf 명령어를 사용하면 된다.

6. lsblk

Linux 시스템에서 사용 가능한 블록 장치를 나열해주는 명령어로, 블록 장치의 트리 구조를 나타내주기 때문에 전문 사용자가 많이 사용한다. 다만, macOS 에서는 lsblk 명령어가 인식되지 않는다. 대체 명령어는 다음과 같다.

// Disk 정보
$ diskutil list 

// USB 포트 정보
$ system_profiler SPUSBDataType

7. mount

Windows와 달리 SD 카드 또는 USB를 연결할 때마다 배포판이 처음에 직접 표시되지 않을 수도 있다. mount 명령을 사용하여 기존 파일 시스템으로 마운트 해야한다.

8. df

Disk Free의 약자이며, 파일 시스템의 디스크 공간에 대한 필수 정보를 표시하는 기능이다. 시스템 관리자가 실시간 서버 또는 네트워크 지향 시스템을 모니터링하고 분석하는 데 널리 사용된다. 기본적으로 1,024Byte 블록 단위로 출력하며, 옵션(-h)을 통해서 다른 단위로도 출력이 가능하다.


# 시스템 조작

9. uname

Unix Name의 약자이며, 이름, 버전 및 기타 시스템 특정 세부 사항과 같은 시스템 정보를 얻기 위한 기본 Linux 명령어다. 이 명령으로 OS 및 커널 버전을 빠르게 확인할 수 있으며, 시스템의 명령 길이를 확인할 수 있다.

macOS의 uname 기능들은 다음과 같다.

  • uname -a : 시스템의 모든 정보를 출력
  • uname -m : 시스템 하드웨어 타입 정보
  • uname -n : 사용중인 네트워크 호스트 이름 확인
  • uname -p : 프로세서 정보 확인
  • uname -r : 커널 릴리즈 확인 (운영체제 배포 버전)
  • uname -s : 커널명 확인
  • uname -v : 커널 버전 확인

10. ps

Process Status의 약자로, 현재 시스템에서 실행 중인 프로세스를 시각화해준다. 시스템 리소스를 분석하는데 사용되는 매우 유연한 수단이며, 터미널을 통해 기본적으로 시스템 프로세스를 조작할 수도 있다. ps는 기본 및 최상의 Linux 모니터링 도구 중 하나로 간주된다. ps는 서버 관리에서 가장 중요한 명령어이다보니 옵션들을 자세히 기술 해놓으려 한다. 참고로, ps 외에 실시간으로 프로세스의 상태를 보고 싶다면 top 명령어를 쓰는 방법도 있다.

  • ps : 명령어를 입력한 순간의 프로세스 정보 출력. 현재의 Shell에 의해서 수행된 프로세서들을 조회활 수 있다.
    • ps -f : Full Listing. 프로세스 정보에 대해 상세하게 출력한다. (uid, pid, parent pid, CPU 사용량, 시작 시간 등등)
    • ps -l : Long Listing. 프로세스의 기본 정보 및 프로세스가 사용하고 있는 OS 자원(CPU, Memory)의 활용 규모, OS의 리소스 활성화 상태 등을 출력한다.
    • ps -o : Optional Listing. 프로세스의 상태값 중 출력을 원하는 컬럼값을 지정하여 출력한다
  • List에서 각 칼럼의 정보
    • UID : User ID. 일반적으로 컴퓨터의 최초 사용자를 가리키는 UID 501을 출력함. (다를 수 있다.)
    • PID : Process ID. 동일한 프로그램이지만 다른 PID를 부여 받을 수 있다.
    • PPID : Parent Process ID. 해당 프로세스를 실행시킨 부모 프로세스의 PID
    • TTY : The Controlling Terminal For the Process, 터미널 번호
    • Time : 시작 시간
    • CPU : 해당 프로세스가 사용한 CPU 시간의 양
    • CMD : 실행 중인 명령 커맨드
  • 현재 Shell 뿐만 아니라 모든 프로세스를 출력하고 싶을 때는 -e 옵션 또는 -aux 옵션을 사용한다. 리스팅 수가 너무 많을 수 있으니 "| less" 명령을 포함시키면 좋다.
    • 유닉스 옵션 : -a, -e, -u. "man ps" 명령어로 내장 매뉴얼 확인
    • BSD 옵션 : a, u, x.
      1. a : 터미널에서 실행한 프로세스의 정보 출력
      2. u : 프로세스 소유자 이름, CPU, 메모리 사용량 등 상세정보 출력
      3. x : 시스템에서 실행 중인 모든 프로세스의 정보 출력
  • 특정 유저의 프로세스 출력 : -u [UserName]

11. kill

자원 제한으로 인해 멈춘 프로세스를 중지하는 강력한 명령어다. Linux 시스템 기술을 발전시키다보면 해당 명령어의 본질과 중요성을 알게 된다. ps로 프로세스 목록을 확인하고, 멈추고자 하는 프로세스의 PID를 사용하면 된다.

$ kill [PID]

$ killall [Process Name]

12. service

시스템 전체 서비스를 호출하는 명령어다. 시스템 조작을 위한 강력한 Linux 터미널 명령, 터미널 창에서 직접 System V init 스크립트를 실행하기 위해 해당 명령어를 사용할 수 있다.

13. batch

자동화 쉘 스크립트 작성을 위한 또 다른 강력한 Linux 명령어 중 하나로 Linux 생산성을 크게 향상시킬 수 있다.

14. shutdown

Linux 명령어 shutdown은 halt, init과 함께 시스템을 종료하는 명령어 중 하나다. shutdown은 현재 접속 중인 모든 사용자에게 시스템이 종료된다는 메시지를 보낼 수 있다.


# 파일 관리

15. touch

유효한 빈 파일을 작성하기 위한 필수 Linux 명령어다. 터미널에서 이동 중에 파일을 생성하고 요구 사항에 따라 나중에 또는 실시간으로 파일을 채울 수 있다. 타임스탬프를 변경하기 위한 이동 명령이기도 하다.

현재 시간 16:38 로 바뀜.

16. cat

처음에 여러 파일을 연결하기 위해 고안된 cat 명령은 이후 다른 목적으로 사용된다. 해당 명령어는 새 파일을 작성하고 터미널에서 파일 내용을 보고 출력을 다른 명령 도구나 파일로 리디렉션하는 데 사용한다.

17. head

터미널에서 직접 파일 또는 파이프 된 데이터의 시작을 볼 수 있다. 텍스트 처리를 많이 사용하는 사용자가 가장 많이 사용하는 Linux 명령 중 하나다. 터미널에서 많은 파일을 처리할 때마다 이 명령을 사용하여 생산성을 향상 시킬 수 있다. 기본적으로 파일의 맨 위부터 10줄을 출력한다.

18. tail

파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력한다. 기본적으로 마지막 10줄을 출력한다. Linux에서 오류나 파일 로그를 실시간으로 확인할 때 매우 유용하게 사용한다.

19. cp

Copy의 약자로, 시스템에서 파일이나 디렉터리를 한 폴더에서 다른 폴더로 복사하도록 지시하는 간단한 명령어다. 해당 명령어를 사용하여 터미널에서 바로 여러 파일을 디렉터리로 복사할 수 있다.

20. mv

Move의 줄임말로, GUI에서 수행하는 절단 작업("잘라내기")을 보완한다. cp는 기존 위치에 파일이 그대로 있으면서, 지정한 다른 위치로 파일을 복사하는 개념이다. 반면에 mv는 기존 위치에 있는 파일을 없애고, 지정한 다른 위치에 파일을 옮기는 작업이다. -f 옵션을 사용하여 큰 파일을 전송할 수 있다.

21. comm

두 개의 파일을 공통 행과 구별되는 행으로 비교할 수 있다. 터미널에서 다량의 파일을 처리해야 하는 사람들에게 필수적인 명령어다.

22. less

가장 많이 사용되는 또 다른 Linux 명령어인 less 명령은 파일의 내용을 볼 때 제공하는 편리성 때문에 많이 사용된다. cat 과는 달리 less 명령을 사용하면 터미널 세션을 방해하지 않으면서 파일 내에서 양방향으로 탐색할 수 있다. 기본 탐색 키는 다음과 같다.

  • 위, 아래 방향키 : 한줄 위, 아래 이동
  • 스페이스바 : 한페이지 아래로 이동
  • /[keyword] : 파일 내에서 [keyword] 찾기
  • q : 나가기

23. ln

Link의 줄임말로, 특정 파일에 대한 심볼릭 링크를 만들기 위한 명령어 중 하나다. 작지만 유연한 명령어 ln을 사용하여 디스크 공간의 특정 파일이나 디렉터리에 대한 심벌릭 링크의 여러 인스턴스를 생성할 수 있다.

24. cmp

Compare의 약자로, 두 파일을 비교하고 그 결과를 표준 출력 스트림에 인쇄하는 명령어다. 해당 명령어는 comm과 함께 대량의 텍스트 파일을 정기적으로 처리하는 사용자들이 가장 많이 사용하는 Linux 명령어 중 하나다.

25. dd

베테랑 사용자들이 파일을 한 유형에서 다른 유형으로 복사 및 변환하기 위해 가장 많이 사용하는 Linux 명령 중 하나다. 해당 명령어에 대한 흥미로운 점은 부팅 가능한 라이브 USB 스틱을 만들 때 다른 터미널 명령 중에서 자주 사용한다는 것이다.

26. alias

터미널에서 직접 파일의 다른 문자열로 단어를 바꿀 수 있으므로 시스테 관리자가 가장 많이 사용하는 리눅스 명령어 중 하나다. 다른 기능 중에서, 쉘을 사용자 정의하고 환경 변수를 조작할 수 있는 최상의 터미널 명령 중 하나다.


# 지루할 때 탐색 할 수 있는 재미있는 명령어

27. cal

달력을 ASCII 텍스트 형식으로 표시하는 명령어.

28. fortune

터미널에 직접 입력하고 확인하시오.
macOS 에서는 기본적으로 지원하지 않는 Command이다.
brew install fortune을 통해 쉽게 설치할 수 있으니, 결과가 궁금하신 분은 GOGO

29. history

터미널 세션의 bash 기록을 출력해주는 명령어

30. yes

해당 명령어는 주어진 문자열을 Ctrl+C 키로 멈출 때까지 계속 반복해서 출력한다. 시스템 성능 테스트 같은 것을 할 때 사용할 수 있다.

31. banner

배너를 만들 수 있는 명령어.

32. rev

입력 텍스트를 가져 와서 각 문자를 반대로 하여 표준 출력에 기록하는 명령어.


# 네트워크 관리

33. wget

네트워크 관리자가 터미널에서 바로 웹에서 파일을 다운로드하는데 활용하는 명령어. 해당 명령어는 스크립트나 크론 작업에 사용될 수 있는 편리한 작은 터미널 명령 중 하나이며, 사용자에게 HTTP, HTTPS 및 FTP 인터넷 프로토콜을 사용할 수 있는 기능을 제공한다.

34. iptables

시스템 관리자가 특정 호스트 시스템에서 들어오고 나가는 인터넷 트래픽을 제어할 수 있는 터미널 유틸리티를 호출하는 명령어. sysadmins는 정기 트래픽을 정의하고, 의심스럽거나 신뢰할 수 없는 네트워크 요청을 블랙리스트에 올리는 데 가장 많이 사용하는 명렁어이다.

35. traceroute

네트워크 패킷이 한 시스템에서 다른 시스템으로 이동하는 경로를 결정하기 위해 사용하는 명령어. 여러 가지 유해한 침입자로부터 컴퓨터를 보호할 수 있는 강력한 네트워크 명령어다.

36. cURL

네트워크를 통해 파일을 전송하여 새로운 Linux 시스템 사용자도 사용할 수 있는 매우 강력한 네트워크 도구. 사용자 개입 없이 작동하도록 설계된 Linux 명령어 중 하나이며, 일반적으로 네트워크 관련 쉘 스크립트에 사용된다.


# Linux 명령어 검색 및 정규 표현식

37. find

터미널에서 파일을 검색하는데 가장 많이 사용되는 리눅스 명령어 중 하나이다. 해당 명령어를 통해 파일 권한, 소유권, 수정 날짜, 크기 등과 같은 특정 기준에 따라 파일을 검색할 수 있다.

38. which

해당 명령어는 검색하려는 모든 파일이 실행 파일일 경우 매우 유용하다. 특정 매개 변수를 취하여 $PATH 시스템 환경 변수에서 이진 파일을 매우 효과적으로 검색한다.

39. locate

특정 파일의 위치를 찾는데 사용되는 명령어. Linux 시스템에서 특정 파일의 위치를 모를 때 활용할 수 있는 가장 간단한 터미널 명령이다.

40. grep

대량의 텍스트 파일에서 패턴을 검색할 때 사용할 수 있는 가장 강력한 정규식 터미널 명령 중 하나이다. 찾고자 하는 패턴을 입력으로 받아 특정 패턴에 대해 지정된 파일을 검색한다.

41. sed

지정된 부분을 교체하여 파일 또는 스트림의 각 줄을 조작하는데 가장 많이 사용되는 명령어 중 하나이다. 많은 양의 텍스트 데이터를 다루고 이동 중에도 변경해야 하는 사용자들이 많이 사용한다.


# I/O 및 소유권

42. clear

터미널 화면을 지우는 데 사용하는 명령어.

43. echo

터미널 콘솔에 특정 텍스트를 출력할 수 있는 명령 줄 유틸리티이다. echo의 출력을 다른 터미널 명령으로 파이프 할 수도 있다.

44. sort

정렬 명령어. 사전 순 또는 역순으로 파일을 정렬해야 할 때 사용한다.

45. sudo

sudo 명령어는 Linux 명령의 성배와 같다. 권한이 없는 사용자는 낮은 수준의 권한이 필요한 파일에만 액세스하고 수정할 수 있다. 해당 명령어를 사용하면 일반 사용자 계정에서 root에 액세스할 수 있다.

46. chmod

시스템 파일 또는 객체의 액세스 권한을 변경하거나 수정하는데 사용하는 명령어이다. 해당 명령어는 사용자로부터 다양한 매개 변수 세트를 취할 수 있으며, 파일 권한 변경에 따라 다르다.

47. chown

chown 명령은 chmod 명령과 매우 유사하다. 그러나 액세스 권한을 변경하는 것이 아닌, 파일 또는 디렉터리의 소유권을 변경하는 명령어이다. chmod와 chown 명령어는 모두 root 권한이 필요하다.


# 일상적인 사용을 위한 기타 명령어

48. man

Manual의 약자로, man 명령어 다음에 다른 명령어의 이름을 같이 입력하면 그 명령어의 매뉴얼이나 설명서 페이지를 볼 수 있다. 특정 명령어의 사용 방법을 결정해야 할 때 자주 사용한다.

매뉴얼 페이지에서 나가고 싶다면 "q" 를 입력하면 된다.

49. tar

파일을 아카이브하고 추출하는데 사용하는 명령어. 파일을 압축하는데 널리 사용되는 명령어로, 매우 효율적으로 처리할 수 있다.

50. whatis

사용자가 제공한 간단한 설명으로 데이터베이스 세트를 순회하며 해당 데이터베이스 명령과 일치하는 시스템 명령을 인쇄한다.


참고 자료

https://dora-guide.com/linux-commands/

 

리눅스 명령어 모음 BEST 50 초보자 및 전문가용 - 도라가이드

리눅스 명령어 모음 입니다. 오늘날 배울 수있는 가장 유용한 리눅스 명령어들이며, 리눅스 기본 명령어와 함께 정기적으로 사용할 50가지 최고의 Linux 명령어를 간략하게 요약하여 이 안내서를

dora-guide.com

https://haloaround.tistory.com/17

 

맥 터미널 명령어 입문5: 프로세스 확인, 종료

안녕하세요 :) 컴퓨터가 먹통일 때 작업관리자에서 실행중인 응용프로그램을 확인하고 응용프로그램이 응답없음 상태인 대상을 콕 집어서 강제종료 한 적 있으시죠? 폰에서도 앱끼리 충돌이

haloaround.tistory.com

 

반응형

'Back-End' 카테고리의 다른 글

MacOS 에서 MongoDB 설치하기 (Intel, M1)  (3) 2022.04.29
pm2를 사용하여 서버를 백그라운드로 실행하기  (0) 2022.04.04
yarn 과 yarn run  (0) 2022.04.04