필수 리눅스 터미널 명령어 정리

doyoungkim·2023년 10월 24일

리눅스 관련 정리

목록 보기
1/1
post-thumbnail

1. 개요

다른 게시물에서 자세히 다루겠지만, 필자는 프랑스의 소프트웨어 양성 프로그램 '에꼴42(Ecole42)' 의 교육 인프라를 수입한 교육과정인 '42경산'의 1기를 현재 준비중이다. 한국에서는 '42서울'로 이미 여러 기수들을 거쳐 인재들을 키우는 중인데, 이번에 지방에서도 소프트웨어 인재들을 키우기 위해 국내에서 2번째로 도입하여 '42경산'을 유치했다고 한다.

'42서울'이라는 선례가 있기에, 42과정에 관해 여러 정보들을 수집할 수 있었다. 우선 '라피신 (La piscine)'이라는 1달 집중 교육 과정을 거치는데, 이때 Linux 환경에서 C, shell 등을 다루게 된다고 하여 미리 기본을 익히고자 이 게시물을 작성하게 되었다.

개발자라면 어떤 플랫폼이나 프로그램을 사용하든 터미널에서 커맨드라인이 중요한 툴박스로 쓰인다고 하는데, 이 필수적인 내용들을 간단하게 다뤄보도록 하겠다.

2. Shell 개념

shell은 운영체제 상에서 다양한 기능과 서비스를 구현하는 인터페이스를 제공한다. 텍스트로 script를 작성하여 컴퓨터에 명령하고, 이를 실행시킨다.

Unix에는 Bourne Shell, Bash, fish, zsh 등 여러 Shell 이 존재하는데, 이 중 하나만 잘 사용해도 비슷하게 익힐 수 있다. 그리고 여러 환경들 (Linux, Mac OS, Windows) 에서 사용 가능하며, 일반적으로 사용하는 windows 운영체제에서는 별도 설치없이 shell을 사용하기 위해 powershell을 사용한다.

unix shell에서는 텍스트로 모든게 이뤄져있다면, powershell은 오브젝트(객체)를 위주로 이뤄져 있어 매우 다른 터미널이다. 하지만 powershell에서 aliases 가 제공되어 unix에서 사용하는 명령어를 비슷하게 사용가능하다.

이후 42과정에서 unix에서 파생된 linux 환경에서 shell을 다룰 예정이지만, 현재 linux 환경이 준비되어 있지 않아 powershell로 다뤄보도록 하겠다. unix (linux) 환경에서의 명령어도 참고용으로 포함하여 작성하겠다.

3. 기본 명령어

1) man / clear

  • man : shell에서 man 이라는 명령어를 작성하면, 매뉴얼이 나온다. 코드에 대한 설명이 필요할 때 사용하는 명령어인데, man 뒤에 궁금한 코드를 작성하면 이에 대한 설명이 나온다. 설명과 옵션들이 나와있고, q를 누르면 manual에서 나올 수 있다.

  • clear : 터미널 창을 깔끔하게 정리할 수 있는 clear 명령어가 있다. 아래와 같이 커맨드창의 텍스트들을 모두 지워주는 기능을 한다.

2) 파일 탐색기

  • pwd : Print Working Directory의 약자로, 지금 내가 어떤 경로에 있는지 알 수 있는 명령어이다. 현재 있는 곳의 전체 경로를 표시해준다.

  • ls : list의 약자로, 현재 경로에 어떤 폴더와 파일들이 존재하는지 볼 수 있는 명령어이다. 특정 폴더 안의 내용들을 보고 싶다면 ls 뒤에 폴더명을 작성하면 된다. unix와 powershell에서 옵션은 비슷하지만 차이가 있으므로 비교하여 작성하였다.

< unix >
ls : 사용 시 폴더와 파일들의 이름을 보여준다.
ls 폴더명 : 해당 폴더 내의 폴더와 파일명들을 보여준다.
ls -l : 파일의 이름과 사이즈 등 자세한 내용을 볼 수 있다.
ls -a : 숨겨진 파일이나 디렉토리도 포함하여 볼 수 있다.
ls -la : 숨겨진 파일이나 디렉토리를 포함하여 자세한 내용을 볼 수 있다.
open . : 현재 디렉토리를 파일탐색기에서 열고 싶을 때 작성한다.

< powershell >
ls : 사용 시 폴더와 파일의 이름과 사이즈 등 자세한 내용을 볼 수 있다.
ls -name : 사용 시 폴더와 파일들의 이름을 보여준다.
ls 폴더명 : 해당 폴더 내의 폴더와 파일명들을 보여준다.
ls -force : 숨겨진 파일이나 디렉토리를 포함하여 자세한 내용을 볼 수 있다.
explorer . : 현재 디렉토리를 파일탐색기에서 열고 싶을 때 작성한다.

  • cd : change directory 의 약자로, 현재있는 경로의 위치를 변경할 때 사용한다. 현재있는 경로에 있는 폴더 이름을 cd 뒤에 작성하면 해당 폴더로 들어가게 된다. 숨겨진 파일명을 보면 . 과 .. 이 존재하는데, . 은 현재위치, ..은 상위폴더를 의미한다. 따라서 cd ..을 이용하면 상위폴더로 경로가 바뀐다.

cd 폴더명 : 현재있는 경로의 위치를 해당 폴더로 변경한다.
cd .. : 현재있는 경로의 바로 상위 경로로 이동한다.
cd ~ : 현재 설정된 사용자의 홈 디렉토리 (최상위 경로)로 이동한다.
cd - : 이전 경로로 이동한다. 왔다갔다 유용하게 사용 가능. (powershell 에서는 스크립트를 추가로 작성해야 사용가능 하다.)

  • find : 특정한 파일이나 디렉토리를 찾을 때 사용한다. unix에서는 바로 사용 가능 하지만, powershell 에서는 find의 aliases가 제공되지 않아 다르게 사용한다.

< unix >
find . -type file -name "*.txt" : 디렉토리 내에 확장자가 txt로 끝나는 파일 찾기
find . -type file -name "*.json" : 디렉토리 내에 확장자가 json로 끝나는 파일 찾기
find . -type directory -name "*2" : 디렉토리 내에 2로 끝나는 이름의 디렉토리 찾기

< powershell >
get-childitem -File -Filter "*.txt" -Recurse : 디렉토리 내에 확장자가 txt로 끝나는 파일 찾기 (recurse : 재귀적으로 검색이 되도록 설정)

  • which : 실행하고자하는 프로그램이 어디에 설치되어 있는지 실행경로를 확인할 수 있다. powershell 에서는 which의 aliases가 제공되지 않아 다르게 사용한다.

< unix >
which 파일명 : 해당 파일의 실행경로를 확인해볼 수 있다.

< powershell >
get-command 파일명 : 해당 파일의 실행경로를 확인해볼 수 있다.
gcm 파일명 : 해당 파일의 실행경로를 확인해볼 수 있다. (명령어 줄여서 사용)

3) 파일 생성 및 관리

  • touch : 원하는 파일이름을 작성하면 새로운 파일을 만들 수 있다. 파일이 존재하지 않는다면 생성하고 기존에 존재하는 파일이면 수정 날짜가 업데이트 된다. powershell에서는 aliases가 제공되지 않아 new-item 으로 사용하면 된다.

  • cat : 파일 안의 내용들을 빠르게 확인해볼 수 있다. 여러 파일 이름을 작성하면 모든 파일들의 컨텐츠를 한 번에 확인할 수 있다.

  • echo : echo 뒤 큰따옴표 안에 문자열을 작성하면, 해당 문자열을 출력시켜준다. 문자열 작성 후 '> 파일명'을 작성하여 파일에 덮어씌워 넣어줄 수 있고, '>> 파일명'을 작성하면 append 처럼 기존 문자열 뒤에 추가가 된다.

  • mkdir : make directory의 약자로, directory를 만들 수 있다. 뒤에 원하는 경로 이름을 작성하면 현재 있는 경로에서 새로운 경로가 만들어진다.

mkdir -p 파일명1/파일명2/파일명3 ... : 한번에 필요한 모든 sub directory를 만들 수 있다.

  • cp : copy의 약자로, 원하는 파일과 원하는 경로를 작성하면 파일이 경로로 복사가 된다. 경로에 파일이름을 작성하면 새로운 파일로 복사된다.

  • mv : move의 약자로, 원하는 파일과 원하는 경로를 작성하면 파일이 경로로 이동이 된다. 경로에 파일이름을 작성하면 새로운 파일로 이동된다.

  • rm : remove의 약자로, 원하는 파일이름을 작성하면 해당파일이 삭제가 된다. rm으로 directory를 그냥 삭제하려면 경고메시지가 나오는데, -r 옵션을 rm 뒤에 작성해야 directory가 제거가 가능하다. 경로 내의 또다른 경로들도 함께 삭제된다. (powershell 에서는 파일명 뒤에 -Recurse 를 작성하도록 한다.)

  • grep : Global Regular Expression Print 의 약자로, 검색하고자 하는 키워드와 특정 파일(또는 확장자)을 작성하여 찾는다.

< unix >
grep 키워드 파일(또는 확장자) : 검색하고자 하는 키워드를 특정 파일 또는 확장자에서 찾는다.
grep -n 키워드 파일(또는 확장자) : 검색하고자 하는 키워드가 몇번째 줄인지 포함하여 특정 파일 또는 확장자에서 찾는다.
grep -ni 키워드 파일(또는 확장자) : 검색하고자 하는 키워드의 대소문자 상관없이 특정 파일 또는 확장자에서 찾는다.
grep -nir 키워드 파일(또는 확장자) : 현재 프로젝트의 모든 경로 내에서 찾고 싶을때 recurse(r)를 포함하여 특정 파일 또는 확장자에서 해당 키워드를 찾는다.

< powershell >
select-string 파일(또는 확장자) -pattern 키워드 : 검색하고자 하는 키워드를 특정 파일 또는 확장자에서 찾는다.
select-string *, */* -pattern 키워드 : 현재 경로와 현재 경로 안의 모든 경로 내에서 해당 키워드를 찾는다. (recurse 옵션이 없어서 경로를 직접 구분)
select-string 파일(또는 확장자) -pattern 키워드 -CaseSensitive : 기본적으로 powershell에서는 대소문자를 구별하지 않으므로 소문자만 찾고 싶을 때 옵션을 추가하여 작성한다.

4) 환경 변수 설정 및 관리

  • 환경 변수 : 내 컴퓨터에서 특정한 키워드가 어떠한 일을 하거나 경로를 저장할 수 있도록 한다.

< unix >
export 환경변수명(대문자) = "디렉토리명" : 내 컴퓨터에 환경 변수를 설정한다. 환경 변수에 해당 경로를 저장한다.
env : 내 컴퓨터의 모든 환경변수를 확인할 수 있다.
$환경변수명 : 설정해둔 환경변수를 사용할 때 $를 붙인다.
unset 환경변수명 : 설정해둔 환경변수를 삭제한다.

< powershell >
$env:환경변수명 = "디렉토리명" : 내 컴퓨터에 환경 변수를 설정한다. 환경 변수에 해당 경로를 저장한다.
ls env: : 내 컴퓨터의 모든 환경변수를 확인할 수 있다.
$env:환경변수명 : 설정해둔 환경변수를 사용할 때 $env:를 붙인다.
$env:환경변수명 = "" : 설정해둔 환경변수를 삭제할 때 공백을 저장하면 된다.

5) vi 또는 vim 기초 사용

  • vi (또는 vim) : linux 터미널에서 이용되는 텍스트 에디터.

vim 파일명 : 새로운 파일을 만들어 vim 에디터 모드를 실행한다.

< vim 에디터 모드 진입 시 >
i : 글자를 수정하거나 삭제할 수 있게 함.
esc 누르고 :wq : 수정사항 저장하며 종료
esc 누르고 :q! : 저장하지 않고 강제 종료

(linux 서버 환경에서는 간단한 텍스트 에디팅을 vi, vim으로 하지만, powershell 에서는 vi, vim이 없으므로 따로 설치하여 사용하여야 한다.)





참고자료 : Youtube 드림코딩 (https://www.youtube.com/watch?v=EL6AQl-e3AQ)

0개의 댓글