[TIL] Linux란

bbung95·2023년 1월 3일

TIL

목록 보기
6/9
post-thumbnail

1년간 회사를 다니면서 AWS와 Linux에 대해서 많이 접하고 사용해왔었습니다

하지만 정작 사용하는 Linux가 무엇인지 왜 사용하는지에 대해서 알지못했습니다.

오늘 Linux에 대해서 짧게나마 정리하고자합니다.

Linux란

Linux는 리누스 토발즈(Linus Benedict Torvalds)가 만든 Unix기반의 OS입니다.
리누스는 대학시절 Unix 기반의 OS를 자신의 집에서 사용하고자 만든 OS입니다.
실제로는 리눅스 커널을 개발하였습니다.

그 시절 많은 OS가 존재하였고 각자만의 방식을 가지고 있었습니다.
이러한것을 통일하고자하여 GNU라는 OS를 만들게 되었고 소스의 오픈을 장려하기 위해 GPL이라는 라이센스를 만들게 됩니다.

GNU는 OS를 통합할수 있는 커널이 필요하였는데 커널로 Linux를 사용하게 되었고 GNU/Linux라는 이름으로 만들어졌습니다. 많은 단체의 기여로 현재 Linux는 운영체제로서 자리매김하였고 GNU/Linux라는 말보다 Linux를 더 많이 사용하게됩니다.

Linux의 특징

Unix기반의 OS로 Unix의 shell 커멘드를 포함하고 있으며 Linux는 Bash 커멘드를 사용하고있습니다.

  • mac OS는 Unix 기반으로 터미널을 통해 Linux와 비슷한 환경으로 커멘드 사용이 가능합니다.
- 모든 것은 파일이라는 철학을 따름 
- 전역 네임스페이스 사용

패키지 관리

  • Linux에 많은 패키지중 하나인 ubuntu는 apt를 사용하여 패키지를 관리합니다
    • node : npm
    • redhat : yarm
    • ubuntu : apt
- sudo apt-get update / 업데이트
- sudo apt-get install 패키지명 / 설치
- sudo apt-get remove 패키지명 / 삭제
- sudo apt-get --purge remove 패키지명 / 설정포함 삭제

명령어

whoami

  • 현재 Linux 사용자를 알려줍니다
# whoami
ubuntu

sudo

  • Linux는 관리자 계정인 root가 존재하며 대부분 사용가 계정을 사용합니다
  • 간혹 관리자권한이 필요한 명령어를 사용해야 하는데 sudo 를 통해 관리자권한으로 실행이 가능합니다

pwd

  • 현재 디렉토리에 대한 정보를 알려줍니다
# pwd
/home/ubuntu

cd

  • 디렉토리를 이동할 수 있습니다
  • . 현재 디렉토리
  • .. 상위 디렉토리
  • ~ home 디렉토리
  • / 절대경로
# pwd
/home/ubuntu
# cd ..
# pwd
/home

# cd ~ or cd
#pwd
/home/ubuntu

ls

  • 현재 디렉토리의 파일 목록을 알려줍니다
# ls
app
  • 옵션으로 -al을 사용할 수 있으며 숨겨진 목록까지 알려줍니다
# ls -al (ll)
total 40
drwxr-x--- 5 ubuntu ubuntu 4096 Jan  3 10:30 ./
drwxr-xr-x 3 root   root   4096 Jan  3 08:45 ../
-rw------- 1 ubuntu ubuntu   14 Jan  3 08:47 .bash_history
-rw-r--r-- 1 ubuntu ubuntu  220 Jan  6  2022 .bash_logout
-rw-r--r-- 1 ubuntu ubuntu 3771 Jan  6  2022 .bashrc
drwx------ 2 ubuntu ubuntu 4096 Jan  3 08:47 .cache/
-rw------- 1 ubuntu ubuntu   20 Jan  3 09:04 .lesshst
-rw-r--r-- 1 ubuntu ubuntu  807 Jan  6  2022 .profile
drwx------ 2 ubuntu ubuntu 4096 Jan  3 08:45 .ssh/
-rw-r--r-- 1 ubuntu ubuntu    0 Jan  3 09:00 .sudo_as_admin_successful
drwxrwxr-x 4 ubuntu ubuntu 4096 Jan  3 10:30 app/

chmod

  • Linux는 모든것을 파일이라는 철학이 있으며 window와는 달리 모든 파일이 권한을 가지고 있고 파일의 권한을 변경할 수 있습니다.
-rw-r--r-- 1 ubuntu ubuntu  807 Jan  6  2022 .profile
drwx------ 2 ubuntu ubuntu 4096 Jan  3 08:45 .ssh/
-rw-r--r-- 1 ubuntu ubuntu    0 Jan  3 09:00 
  • drw-r--r-- 과 같이 파일의 앞쪽에 권한이 명시되어 있습니다.
  • 앞에서부터 소유자 (u), 그룹 (g), 기타 (o)로 되어 있고 d는 디렉토리를 의미합니다.
  • chmod 600 [file]로 숫자의 합을 통해 사용하는 방법을 많이 사용합니다.
읽기쓰기실행
표기rwx
최대421
# drwx------ 2 ubuntu ubuntu 4096 Jan  3 08:45 .ssh/
# chmod 744 .ssh
drwxr--r-- 2 ubuntu ubuntu 4096 Jan  3 08:45 .ssh/

cat

  • 파일의 내용을 확인할 수 있습니다.
# cat text.txt
text 파일입니다

mkidir

  • 디렉토리를 생성할 수 있습니다.
# mkdir bin

rm

  • 파일을 삭제할 수 있습니다.
  • 주로 사용하는 명령어 형태 : rm -rf 디렉토리명
# 옵션
- r 하위 디렉토리를 포함한 모든 파일 삭제
- f 강제로 파일이나 디렉토리 삭제
# rm text.txt
# rm -rf bin

파이프(grep)

  • | grep 명령어로 특정 파일을 찾을 수 있습니다.
# 옵션
- i 대소문자의 구별 X
- v 패턴을 포함하지 않는 라인을 출력
- n 검색 결과의 각 행 번호를 넣는다
- l 파일명만 출력한다
- c 패턴과 일치하는 라인의 개수만 출력
- r 하위 디렉토리까지 검색

ps

  • 현재 실행중인 프로세스를 확인 할 수 있습니다
# ps
PID TTY          TIME CMD
1434 pts/0    00:00:00 bash
2281 pts/0    00:00:00 ps
# 옵션
- a 모든 사용자의 프로세스 출력
- u 프로세스 소유저의 상세정보 출력
- l 프로세스 상게 정보 출력
- x 모든 프로세스를 출력 / 데몬 프로세스를 확인 (aux를 함께 사용)
- e 프로세스와 관련된 환경 변수 정보를 출략
- f 프로세스간 관계 출력
  • ps -ef , ps -aux를 많이 사용

kill

  • 현재 실행중인 프로세스를 중지 합니다.
  • 9 작업 강제 종료 옵션
# kill 5233
# kill -9 5233

lsof

  • lisf open files의 약자로, 열려진 파일들을 보는 명령어입니다
# lsof -p:8080
# 현재 포트8080으로 실행중인 프로세스를 정보를 출력합니다

백그라운드 실행

  • 프로세스는 실행 후 수행 종료까지 사용자가 다른 입력을 하지 못하는 foreground입니다
  • 다중사용자를 위해 시분할알고리즘을 지원하는며 background로 실행할 수 있습니다
  • cmd &
# java -jar application.jar &
[1] 12
# [1]은 작업 번호 (job number), 12은 pid
  • foreground process 제어하기
    • CTRL[control] + c 프로세스 작업 취소
    • fg %[job]번호 background foreground로 실행

cp

  • 파일을 똑같이 복사합니다
# cp text1.txt text2.txt
# cp -rf * newDir / 디렉토리 복사

ln

  • 하드 링크 : ln A B
    • A와 B는 동일한 파일의 주소를 가짐
    • 동일한 파일을 가진 이름을 하나 더 만든 것일 뿐
    • 전체 파일 용량을 달라지지 않습니다
  • 소프트 링크 : ln -s A B
    • windows OS의 바로가기와 동일
    • ls -al하면, 소프트 링크 확인 가능
    • 원본 삭제시 복사본은 원본을 찾을 수 없습니다

마무리

기본적인 명령어를 알아봤는데 Linux는 현재도 계속해서 업데이트가 되고 있으며 개발을 하면서 계속 사용하게될 OS입니다.

더 유용하고 많은 명령어가 존재하기에 필요할때 찾아 사용하면 좋을거 같습니다.

0개의 댓글