일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자바스크립트
- staged
- node.js
- git
- docker daemon
- SpringBootApplication
- Server Off
- Linux
- JS
- Dependency Management
- git rm
- github
- hash-object
- node
- Git내부
- Git 내부
- unmodified
- maven
- commit
- git push
- 리눅스
- spring boot
- brew
- npm
- git rm --cached
- Auto-Importing
- docker
- Dependency
- Spring
- Modified
- Today
- Total
갓태희
[Linux] 리눅스 기본 지식 본문
옛날에는 검은창만 보면 바로 닫기버튼을 눌렀는데 Git을 사용하면서 터미널을 사용할 일이 많아졌는데 어느샌가 내 검은창은 형형색색의
테마와 조로의 이미지로 꾸며져있었다. 검은창은 정말 유용한 도구이니 꼭 몇가지 기본 지식을 터득한후 검은창으로 쉽고 빠르게 내 컴퓨터
에 대한 정보를 얻어가셨으면 좋겠다.
파일명 규칙
- 최대 255자 까지 가능
- 알파벳 대소문자, 숫자, 마침표(.), 밑줄(_), 하이픈(-) 사용가능
- 대문자와 소문자는 엄격히 구분한다 (A와 a는 리눅스에서는 엄연히 다른문자)
- 백슬래시(,₩)를 이용하여 메타문자(\n, \f, \r, etc..)등의 특수문자를 일반문자처럼 취급할수 있게되며 이것을 이스케이프라고 한다.
- 파일명이나 폴더명에 공백이 필요하다면 인용부호로 처리를 해줘야만 공백을 포함할 수있다.
- 리눅스에서의 인용부호는 큰따옴표("), 작은따옴표(')를 말한다.
- 숨김파일(혹은 숨김디렉토리)명은 마침표(.)로 시작한다.
자동완성 기능
탭(Tab) 키를 이용하면 타이핑을 치는 수고로움을 덜수있다. 이건진짜 알고 모르고 차이가 큽니다 예를들어 'https://github.com/godtaehee'와 같은 주소가 있으면 이걸 하나하나 내가 치는게아니라 ht까지만 치고 탭을 치면 https까지 자동완성이 됩니다. 마찬가지로 github도 git까지만치고 탭치면 알아서 자동완성을 해줍니다. 직접 타이핑 해보면 무슨 느낌인지 단번에 알수있습니다.
또 다른예로 어떤 폴더 안에 example1.txt, example2.txt라는 파일이 있는데 내가 example1.txt를 타이핑하고싶다고 가정한다면,
exam까지만 치고 탭을 하게되면 example까지만 자동완성이된다. 왜냐하면 example1과 example2 둘중에 무엇을 자동완성을 해야하는지 컴퓨터는 모르기때문이다
폴더 절대경로와 상대경로 (정말로 중요)
리눅스에서 기본 루트 디렉토리는 /(슬래쉬) 이다. 여기서부터 모든 폴더들의 경로가 시작이되는데 이렇게 / 부터 시작하는 경로를 절대경로 라고 불린다.
그럼 그에 반하는 상대경로는 말 그대로 상대적인 경로이며 .과 ..이 있는데 .은 현재 위치를 나타내고 ..은 이전디렉토리를 말한다. 보통 이전 디렉토리를 상위 디렉토리, 부모 디렉토리라고 한다.
모든 폴더는 .과 ..을 포함하고있다.
이 두 폴더는 .으로 시작하므로 숨김폴더이다 그래서 그냥 ls
명령어로는 보이지않고 숨김 폴더나 파일까지 보는 ls -a
명령어를 통해 단번에 알수있다.
리눅스 디렉토리 구조
이제부터 나오는 디렉토리로의 이동(cd) 그 폴더안의 목록보기(ls)로 꼭 한번씩 보길바란다. 글로 읽는것보다 도움이 더 잘된다. 숨김폴더 혹은 파일까지 보고싶다면 ls -a 명령어로 보길 바란다. 또한 스크린샷대로 폴더 구조나 파일이 없다고 잘못된게 아니다 각각의 컴퓨터마다 폴더를 구성하고있는 내용이 다 다른건 당연한것이다.
/
최상위 경로이다 루트 디렉토리라고도 하며 모든 디렉토리의 절대경로를 표기할때 이 디렉토리로부터 시작해야 한다.
/bin
실행가능한 많은 명령어들이 모여있다.
cd 명령어는 change directory의 약자로써 터미널에서 폴더간의 이동을 할때 사용한다.
ls 명령어는 list segment의 약자로써 현재위치한 폴더에 있는 모든 디렉토리와 파일의 목록을 보여준다
그래서 잘 보면 ls명령어가 실제로 /bin 폴더에 존재하는것을 볼수 있다.
/sbin
시스템 권한이 있는 root사용자가 사용하는 명령어들이 모여있다.
아직 써본명령어들이 없는것같다.
/usr
윈도우에 비유하자면 program files라고 하는 프로그램 설치 디렉토리에 준하는 리눅스 디렉토리이다. 리눅스의 많은 응용프로그램들이 설치가 된다.
/usr/bin
리눅스 운영체제에 설치된 많은 응용프로그램과 명령어가 존재한다.
폴더 안에 들어있는게 너무 많아서 사진은 패스하겠다. 우리가 자주보는 sudo와 su명령어가 있다.
/usr/local/bin
응용프로그램이 설치경로를 /usr이 아닌 /usr/local을 선택했을때 설치 프로그램이 위치할수 있고 명령어도 존재 가능하다 나의 맥에서 보이는 응용프로그램은 git과 python이 있었다.
/lib
기본라이브러리, 응용프로그램이 사용하는 많은 라이브러리가 존재하며 lib말고도 1~2군데가 더 존재한다. 나같은경우는 lib폴더가 없고 Library폴더가 있었다.
/usr/lib
/lib 폴더에 들어가지 않은 라이브러리 디렉토리이다.
/usr/local/lib
응용프로그램이 설치될때 함께 설치될 라이브러리 경로
/dev
장치파일이라고 불리는 많은 파일이 존재한다. 리눅스의 특수한 파일이라고 불리는데, 장치파일을 통해 리눅스에 설치되어있는 많은 하드웨어가 작동하며 응용프로그램들이 이 장치파일을 이용해 하드웨어에 접근해 사용하게 된다. 장치파일이란 말 그대로 장치를 제어하기위한 파일이며 하드웨어(프린터, 팩스, 모니터)이런것들을 제어하기위한 파일들이다. 실제로 아래 사진을 보면 파일 하나하나당 장치 하나라고 간주한다.
/etc
환경파일이라고 하는것들이 모여있는 곳이다. 윈도우에 레지스트리라는 개념이랑 비슷한데, 응용프로그램들은 각자 자신이 사용하는 환경파일을 가지고있다. 이 환경파일을 이용해 응용프로그램 내부에 설정 및 시스템 관련된 정보를 추출하고 알맞게 프로그램동작이 실행되게된다. 예를들어 웹서버를 구축해주는 톰캣의 환경파일은 실제로 아파치/톰캣을 설치했다면 존재한다. 톰캣이 실행될때 필요한 환경정보들이 담겨있는 파일이라고 보면된다.
실제로 apache2
라고 폴더가 하나있다.
/home
많은 사용자들은 자신의 /home이라는 디렉토리를 가지고 있는데 작업 디렉토리라고 불린다. 파일을 생성하거나 폴더를 생성하거나 소유권에 대한 걱정이 없이 생성과 삭제, 수정이 가능하다.
/var
시스템에 관련된 많은 정보들을 저장하고 있는 폴더이다. 시스템 로그라고 해서 시스템 내부의 동작상황을 모니터링하기위한 로그파일을 얘기한다. 그 로그파일은 /var/log에 있으며 많은 로그파일들이 여기에 위치하게된다.
/var/log/syslog (폴더가 아닌 파일이다)
우분투와 리눅스에서는 syslog라는 로그파일을 두고 있어서 시스템 부팅시 혹은 커널에 중요한 상황이 발생했을때 그 정보를 이 로그파일에 남긴다. 사용자(시스템관리자)들은 이 로그파일을 통해 시슽템 내부 상황을 본다.
나같은경우는 syslog로 존재하지않고 system.log로 존재했다.
/usr/local
프로그램이 설치되는 곳이다.
결론
사실 디렉토리 구조를 막 처음부터 여기엔 이런게 있지라고 외울필요는 없다 어차피 다 못외우기때문이고 처음부터 외울필요는 없기때문이다.
여기서 제일 중요한 내용은 절대경로와 상대경로인데 이 개념만 알아둔다면 폴더를 자유자재로 이동할수 있게될것이다.
다음글은 리눅스 파일의 접근권한에 대해서 알아보겠습니다.
'Linux' 카테고리의 다른 글
사용중인 포트 Kill하기 (0) | 2021.06.28 |
---|---|
[Linux] echo 명령어 (0) | 2021.05.26 |
[Linux] 파일의 접근권한 (0) | 2021.05.25 |