[면접대비] 리눅스
기술면접시, 리눅스 관련 질문들을 많이 받아 기본적인 학습을 할 생각이다.
▶ 리눅스란?
✔ 유닉스 계열의 운영체제
▶ 리눅스를 왜 사용할까?
✔ 리눅스는 오픈소스 운영체제로서 소스 코드를 자유롭게 수정하고 배포할 수 있습니다. 이로 인해, 보안성과 유연성이 뛰어난 것이 특징입니다. 또한, 서버 환경에서 많이 사용됩니다.
▶ Inode란?
✔ 파일 정보가 담긴 특별한 구조체
▶ 링크와 복사의 차이?
✔ 링크는 같은 파일에 이름만 다르게 붙이는 것
✔ 복사는 완전히 독립적인 파일을 만드는 것
▶ 하드링크와 심볼릭 링크의 차이는?
✔ 하드 링크는 원본 파일의 데이터를 직접 가리키는 반면, 심볼릭 링크는 원본 파일의 위치를 가르킨다.
✔ 그래서, 하드 링크는 원본이 삭제되어도 계속 사용 가능하지만, 심볼릭 링크는 원본 링크가 없어지면 사용할 수 없다.
▶ 쉘과 커널의 차이
✔ 쉘은 사용자가 운영체제의 서비스를 사용할 수 있도록 사용자의 입력을 기반으로 프로그램을 실행해 주는 역할을 한다. 즉, 커널과 사용자 사이의 인터페이스 역할을 담당합니다.
✔ 커널은 쉘로부터 전달 받은 명령을 기계가 이해할 수 있는 언어로 변환하여 CPU, I/O, 메모리 등 다양한 리소스에 접근해주는 역할을 한다.
▶ 리눅스에서 파일 권한을 확인하고, 변경하는 방법을 설명해주세요
✔ ls -l 명령어로 파일 권한을 확인할 수 있습니다. 파일 권한 변경은 'chmod' 명령어를 사용합니다.
▶ 스크립트 작성에 대해 설명하고, 간단한 예시를 들어주세요.
✔ 스크립트는 일련의 명령어를 파일로 만들어 자동화하는 것을 말합니다. 리눅스에서 bash 쉘 스크립트가 많이 사용됩니다.
▶ grep 명령어란?
✔ grep은 파일에서 패턴을 검색하는 명령어입니다. 예를 들어, grep "error" logfile.txt 는 logfile.txt에서 "error라는 단어가 포함된 라인을 찾아줍니다.
▶ 리눅스에서 사용되는 네트워킹 명령어들에 대해 설명해주세요
✔ 'ifconfig'는 네트워크 인터페이스의 구성을 확인하거나 변경할 때 사용합니다.
✔ 'netstat'는 네트워크 연결, 라우팅 테이블, 인터페이스 상태 등을 보여줍니다.
▶ crontab을 사용하여 주기적인 작업을 스케줄링하는 방법을 설명해주세요
✔ crontab -e으로 크론탭 파일을 편집할 수 있습니다. 여기에 실행할 명령과 그 실행 시간을 지정합니다.
▶ 리눅스 VS 유닉스
- 라이센스 : 유닉스는 대부분 상업용 소프트웨어로 라이센스 비용이 발생되지만, 반면에 리죽스는 오픈소스이므로 무료로 사용 가능
- 플랫폼 호환성 : 유닉스는 주로 대형 컴퓨터나 서버에서 사용되지만, 리눅스는 개인용 컴퓨터부터 스마트폰, 슈퍼컴퓨터에 이르기 까지 다양한 플랫폼에서 사용할 수 있다.