반응형
Linux에서 shell은 명령할 수 있는 인터페이스이다
시스템에서 원하는 동작을 수행하기 위한 사용자 인터페이스는 크게 2가지로 나눌 수 있다. 우리에게 익숙하고 사용자 친화적인 GUI 방식 와 전통적인 심플한 방식의 CLI가 있다.
GUI (Graphic User Interface)
우리가 눈으로 보면서 실제로 입력하고 클릭하고 하는 동작들을 수행하는 인터페이스이다.
CLI (Command Line Interface)
터미널로 정해진 명령어를 사용자 입력을 통해 받는 인터페이스이며, Linux에서 사용하는 shell 이 여기에 해당된다.
CLI 방식은 자주 사용하다 보면 익숙해지지만 처음 사용하거나 익숙해지지 않으면 불편하다.
특히 윈도우 방식과 IDE 위주로 개발했던 개발자라면 리눅스 환경과 CLI 환경에 익숙하지 않다.
하지만 적응하면 굉장히 심플하고 빠르게 시스템의 여러 유용한 기능들을 확인하고 수행할 수 있다.
자주 사용하는 명령어
자주 쓰는 명령어들에 대해 정리해 보았다. 명령어별 옵션과 사용 예시를 조사하면 무궁무진하다.
따라서 기본적인 형태에 대해 이해해 보고, 직접 사용해 보거나 디테일하게 더 검색한다면 유용할 것 같다.
명령어를 간단하게 카테고리로 나누어서 정리하였다.
디렉토리,파일 연관된 명령어
# 디렉토리 생성
mkdir [dir]
# 디렉토리 제거
rmdir [dir]
# print 와 같은 역할
echo [option] [text]
# echo로 파일 생성
echo "[text]" > [filename]
# 파일 내용 출력
cat [filename]
# 파일/디렉토리 권한 변경
# 권한은 3개의 숫자로 구성되며 777이 모든 권한
chmod [권한] [file/dir]
# 파일 생성
touch [filename]
이동 관련 명령어
# 원하는 디렉토리 위치로 이동
cd [dir]
# source를 target으로 복사
cp [source] [target]
# source를 target으로 이동
mv [source] [target]
# 파일 삭제
rm [file]
# 디렉토리 삭제 -rf는 강제 삭제
rm -r [dir]
검색 관련 명령어
# 파일 찾기
find [path] [expression]
find . -name abc.txt
find . -name *.log
# 파일 내 내용 찾기
grep [option] [pattern] [file]
grep -i "abc" log.txt
시스템 상태 관련 명령어
# 현재 디렉토리의 파일과 디렉토리 출력
ls -al
# 현재 디렉토리 출력
pwd
# 현재 프로세스 출력
ps
# 지금까지 명령어 입력 히스토리 출력
history
그 외 명령어들
# ubuntu 에서 패키지 설치에 필요한 명령어
apt install [package name]
# 네트워크 명령 전송에 필요한 명령어
curl
# 웹에서 다운로드 받을 때 명령어
wget [url]
# 파이썬 패키지 설치 명령어
pip install
# 현재 터미널 출력 초기화
clear
# 현재 터미널 종료
exit
# 명령어를 실행했을 때의 해당 tool의 디렉토리 위치 확인
which [tool]
더 자주 사용되는 것이 있을 수 있지만 내 경우 이 정도면 충분했던 것 같다.
실제로 많이 사용해보고 연습하다 보면 익숙해질 것이다.
특히 옵션들이 많지만 실제로 자주 사용하는 것은 별로 없어서 내 환경에 맞게 사용하면 될 것 같다.
'개발 > 개발 공통' 카테고리의 다른 글
[도서 리뷰] 임베디드 C를 위한 TDD (0) | 2023.01.19 |
---|---|
[도서 리뷰] 개발자로 살아남기 : 30년을 주도하는 9가지 필수 기술 (0) | 2023.01.19 |
[객체 지향] SOLID 원칙에 대해서 알아보자 (1) | 2023.01.14 |
[객체 지향] 객체 지향 프로그래밍(OOP)에 대해 알아보자 (0) | 2023.01.14 |
[도서 리뷰] 소프트웨어 장인 책을 읽은 후기 (0) | 2023.01.10 |