2/9 정리

잼우·2022년 2월 9일
1

리눅스

목록 보기
1/3

*공부한 내용을 토대로 혼자서 정리하는 글입니다.
틀린 부분이나 보충할 부분 지적 언제든 환영합니다 :)


리눅스란?

리눅스(Linux)는 리누스 토발즈(Linus Tovalds)가 만든 오픈 소스 운영체제
1991년 대학생이었던 리누스 토발즈가 취미로 만들었다고 알려진 리눅스는 현재 가장 큰 사용자 기반을 가지고 있고, 공용 인터넷 서버에서 가장 많이 사용되며, 상위 500대 초고속 슈퍼컴퓨터에서 유일하게 사용되는 운영체제
즉, 사양이 낮은 컴퓨터에서도 우수한 성능과 기량을 발휘 할 수 있고, 뛰어난 성능이 필요한 경우에도 사용할 수 있는 운영체제라고 볼 수 있음


리눅스 기본 명령어

* pwd(print working directory) : 현재 위치 확인하기

입력 Code : pwd

터미널의 프롬프트에 pwd를 입력하고 Enter(엔터 키)를 누르면 현재 위치를 확인할 수 있음

* mkdir(make directories) : 새로운 폴더 생성하기

입력 Code : mkdir Jam

터미널의 프롬프트에 mkdir을 입력하고 만들고자 하는 폴더의 이름("Jam")을 입력하고 Enter(엔터 키)를 누르면 폴더를 생성함

명령어와 폴더의 이름은 Space(스페이스 키)로 구분함

* ls(list) : 특정 폴더에 포함된 파일이나 폴더 확인하기

입력 Code : ls

명령어 ls를 입력하면, 명령어 mkdir을 이용해 생성한 폴더 "Jam"를 확인할 수 있음

  • 명령어 ls에는 ls -als -l이 있음

ls -a : 숨어있는 폴더나 파일을 포함한 모든 항목을 터미널에 출력

ls -l : 폴더나 파일의 포맷을 전부 표현하라는 의미

* 명령어를 이용해 폴더를 GUI의 탐색기로 실행하기

입력 Code : nautilus .

명령어 mkdir을 통해 생성한 "Jam" 폴더를 확인할 수 있음

* cd(change directory) : 폴더에 진입하기

입력 Code : cd Jam

cd Jam 입력 후 pwd를 통해 "Jam" 폴더에 진입했음을 알 수 있음

* touch : 파일 생성하기

입력 Code : touch jjam.txt

"Jam" 폴더 안에 "jjam.txt" 파일을 생성함

* GUI로 파일에 텍스트 입력하기

GUI 탐색기를 통해 "Jam" 폴더 내에 있는"jjam.txt" 파일을 실행 후 'Hello~' 입력 후 저장

* cat(con'cat'enate) : 파일의 내용을 터미널에 출력하기

입력 Code : cat jjam.txt

cat 을 이용하여 "jjam.txt" 파일의 내용 'Hello~'를 확인할 수 있음

* rm(remove) : 폴더나 파일 삭제하기

입력 Code : rm -rf abc & rm abc.txt

-> 옵션 r 은 폴더를 지울 때 사용하고, 옵션 f 는 질문을 받지 않고 지울 때 사용
-> 따라서 파일을 지울때는 rm, 폴더를 지울때는 rm -rf 를 사용하면 됨

* mv(move) : 폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 옮기기

입력 Code : mv abc.txt abc/

폴더나 파일을 이동할 때 사용

  • mv의 또 다른 기능

-> 파일 또는 폴더의 이름을 바꿀 수 있음

* cp(copy) : 폴더나 파일을 복사하기

입력 Code : cp cp.txt pc.txt & cp -rf cp1 cp2

-> 명령어 cp 를 그냥 사용하면 명령어 rm 으로 폴더를 삭제할 때 처럼 메시지가 출력됨
-> 따라서 파일을 복사할 때는 cp, 폴더를 복사할 때는 cp -rf 를 사용하면 됨


텍스트 에디터 nano

  • CLI에서 환경에서 가장 사용하기 쉬운 에디터

AWS(Amazon Web Service)와 같은 원격 서버 환경에서 원격으로 텍스트 파일을 편집해야 하는 경우 사용

입력 Code : nano

nano 또는 nano + 파일 이름 을 입력하여 nano 에디터를 실행할 수 있음

-> 나노 실행 화면

  • 나노 기능

1 ) 파일 열기

- ^R , Ctrl + R 을 눌러 열기 가능
- but , 애초에 파일이름을 입력 ( nano 파일이름 ) 해 여는 것을 추천함

2 ) 파일 편집 후 종료

- ^X , Ctrl + X 를 눌러 파일의 변경사항이 존재하면, 종료시에 저장여부를 확인
- Ctrl + X 를 누르면 수정한 버퍼 내용을 저장하시겠습니까? 라는 문구가 뜸
- Y 또는 N 를 눌러 저장 여부를 결정할 수 있음

3 ) 파일 저장

- ^O , Ctrl + O 을 눌러 저장 가능


주요 디렉토리 기능

위치: /
이름: 루트
설명: 최상위(루트) 디렉토리디렉토리들의 절대 경로를 표기할 때 이 디렉토리로 부터 시작함

이름: /bin
설명: 이진파일(실행파일)
기본적인 명령어가 저장된 디렉토리
리눅스에서 자주 사용하는 mv, cp, rm등과 같은 명령어들이 이 디렉토리에 존재함

위치: /boot
이름: 부트
설명: 리눅스의 부팅에 필요한 정보를 가진 파일들이 있는 디렉토리

위치: /dev
이름: 디바이스
설명: 시스템 디바이스(장치)파일을 저장하고 있는 디렉토리
/dev/sda (하드디스크 장치파일), /dev/cdrom(CD-ROM)장치파일 등과 같은 장치 파일들이 여기에 위치해있다. 예를들어 마우스, 키보드등의 디바이스와 관련된 파일들.
즉, 물리적 장치가 파일화되어 저장

위치: /etc
이름:
설명: 설정 파일을 두는 디렉토리

위치: /home
이름:
설명: 사용자들의 홈디렉토리가 있는 곳
사용자를 추가하면 사용자의 id와 동일한 디렉토리가 이곳에 자동으로 생성

위치: /lib
이름: 라이브러리
설명: 커널이 필요로 하는 각종 라이브러리 파일, 커널 모듈파일 등이 존재하는 디렉토리

위치: /media
이름: 미디어
설명: DVD, CD-ROM, USB 등의 외부 장치들의 마운트 포인트(연결)로 사용하는 디렉토리

위치: /mnt
이름: 마운트
설명: /media와 비슷한 기능을 한다.
다만 차이점은, Media는 OS에서 자동으로 마운팅해주는 포인트로 주로 사용되며 Mnt는 사용자가 직접 마운트하는 경로로 사용된다.
예를들어 컴퓨터에 USB꽂아 OS에 자동으로 마운팅된다면 주로 Media 폴더 내에,
외부에 있는 디스크등을 직접 명령어를 통해 마운트한다면 Mnt 디렉토리에 위치하게 된다.

위치: /opt
이름: 옵트
설명: 추가 응용프로그램 패키지 설치 장소
패키지 매니저가 자체적으로 설치/삭제를 수행함

위치: /proc
이름: 프로세스
설명: '가상파일시스템' 이라고 하는 곳으로 현재 메모리에 존재하는 작업들이 파일 형태로 존재하는 곳
프로세스 정보 등 커널 관련 정보가 저장

위치: /root
이름: 루트
설명: 관리자계정 root 사용자의 홈디렉토리 (/ 디렉토리와 다르다. 이건 사용자의 디렉토리)

위치: /sbin
이름: 시스템 바이너리
설명: 시스템 이진파일(실행파일)ifconfig, ethtool, halt, e2fsck와 같은 시스템 명령어들을 저장하고 있는 디렉토리

위치: /usr
이름: 유저
설명: 일반 사용자들이 사용하는 디렉토리

위치: /var
이름:
설명: 기타 모든 다용도로 사용될 수 있는 파일들이 저장되며 로그파일, 데이터베이스 캐싱파일, 웹서버 이미지 파일 등이 위치하는 디렉토리

위치: /sys
이름: 시스템
설명: 디바이스를 관리하기 위한 가상 파일 시스템 디렉토리이다.

위치: /run
이름:
설명: Run-time variable data를 관리한다. 부팅한 후의 시스템 정보를 관리하는 디렉토리이다.

위치: /tmp
이름: 템프
설명: 임시파일을 저장하기 위한 디렉토리이다.
재부팅 시에 삭제되며, 정기적으로 10일 정도 간격으로 삭제된다.

위치: /lost_found
이름: 로스트
설명: 휴지통 같은 개념이라 보면된다.

출처: https://lifegoesonme.tistory.com/457

https://jinwoo1990.github.io/dev-wiki/linux-directory/

https://medium.com/harrythegreat/%EB%A6%AC%EB%88%85%EC%8A%A4-%EA%B8%B0%EC%B4%88-%EB%A3%A8%ED%8A%B8%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B5%AC%EC%A1%B0-b3e4871af4b3


profile
DevOps 새내기

0개의 댓글