리눅스(Linux)는 컴퓨터 운영체제의 한 종류이자 커널 자체를 의미한다. 리눅스(Linux)는 무료 오픈소스 운영체제로, 완전 무료 정책이기 때문에 그 어떠한 금액도 필요로 하지 않는다. 웹서버로 리눅스를 사용하는 가장 큰 이유이다. 서버 위에 그려지는 프로그램 또는 플랫폼 등을 이용하는 사용자에게는 보여지지 않는 부분이 되면서, 개발자 사용자 모두에게 친숙한 GUI(Grapical User Interface)가 아닌 CLI(Command-Line Interface) 방식으로 정착하게 되었다. 아무래도 서버에게 중요한 건 속도이다보니, GUI를 써봤자 무겁고 속도저하를 일으킬 요인일 뿐이라는 것이다.
리눅스는 크게 커널, 셸, 디렉토리로 3가지로 구성되어 있다.
커널(kernel)
커널은 운영체제의 핵심으로 메모리관리, 프로세스 관리, 장치 관리등 컴퓨터의 모든 자원을 초기화하고 제어하는 기능을 수행한다.
셸(shell)
사용자가 입력한 문장을 읽어 요청을 실행하며 커널이 명령어를 해석해 결과를 수행한 후 결과를 다른 프로그램이나 커널로 전송한다.
즉 사용자와 커널의 중간다리 역할을 수행한다. 리눅스는 bash셸을 기본으로 사용한다.
디렉터리
파일을 가지고 있거나 또 다른 디렉터리를 가지고 있는 그룹을 의미하며 파일 시스템에 의해 관리되고 있다.
작업 디렉터리
홈 디렉터리
절대경로(Absolute Path)
상대경로(Relative Path)
clear
cd
위는 /부터 시작하여 절대경로명을 사용해 home 디렉터리로 이동한 것이고 밑은 현재 usr/lib 디렉터리에 있음으로 이를 기준으로 상대경로명을 사용하여 home 디렉터리로 이동한 것이다. 홈 디렉터리를 나타내는 기호인 ~를 사용하여 홈 디렉터리로 이동할 수 있다.
pwd
ls
주요 옵션
ls -al(ll도 가능): 숨겨진 파일까지 모두 포함하여 모든 파일의 상세내용 확인
ls -a: 숨긴 파일 확인
ls -l 파일 : 숨겨진 파일을 제외한 파일의 상세내용 확인
ls -F : 파일의 종류 표시
(/:디렉터리, @: 심벌릭 링크(원본 파일을 대신하여 다른 이름으로 파일명을 지정한 것, 윈도의 바로가기와 비슷함)
*: 실행파일(바이너리 형태로 데이터가 저장되어 있음) 표시없음: 일반파일(각종 텍스트 차일, 실행파일, 이미지 파일 등 리눅스에서 사용하는 대부분의 파일))
ls -dl 디렉터리명 : 디렉토리 자체의 자세한 정보를 확인
ls -l 디렉터리 경로(/tmp) : 지정한 디렉터리의 내용 출력
ls --help: 사용가능한 옵션을 보여준다.
mkdir
rmdir
cat
more
less
stat 파일명
cp
파일이나 디렉터리를 복사한다.
/etc/hosts 파일을 현재 디렉터리에 text1 파일로 복사함
왼쪽에서 오른쪽으로 복사, 오른쪽이 디렉터리면 디렉터리 안에다 복사
파일을 해당 디렉터리 아래에 복사(t 디렉터리에 text1 파일 복사)
원본 파일과 다른 이름으로 복사
여러개의 파일을 지정가능하며 마지막 인자는 반드시 디렉터리여야함, 이 경우 마지막에 지정한 디렉터리로 앞서 지정한 파일들을 모두 복사됨
-r옵션을 이용하며 첫번째와 두번째 인자에 모두 디렉터리를 지정하면 원본 디렉터리 아래에 있던 모든 내용도 함께 복사됨
mv
ex)
-> mv ./drama ../sbs/action
rm
기존에 있는 파일에 새로운 파일명을 붙이는 것을 의미한다. 심벌릭 링크는 원본 파일을 가리키는 새로운 파일을 생성한다. 리눅스 파일은 파일명 + inode + 데이터 블록으로 형성되어 이는데 inode는 파일에 대한 정보를 가지 구조체로 ls -i로 확인 가능하다. 파일 이름이 다르지만 inode가 같다면 같은 파일이다.
ln
💡 심벌링 링크 특징(ln -s)
- 파일의 종류가 l(소문자L)로 표시됨
- 하드링크의 개수가 하나, 즉 원본파일에 이름을 추가하는 것이 아니다.
- 파일 이름 뒤에 원본 파일의 이름이 표시된다.(->data1)
- inode 번호가 원본 파일과 다름, 즉 원본 파일과 심벌릭 링크 파일은 별개의 파일이다.
- 원본 파일이 삭제되면 심벌릭 링크로 연결할 수 없다.
- 내용을 출력하면 원본 파일의 내용이 출력된다.
touch 파일명
grep 문자열 파일명
find