이 기사에는 Linux 개요, 디스크, 디렉터리, 파일, 보안, 구문 수준, 실제 전투, 파일 관리 명령, 문서 편집 명령, 디스크 관리 명령, 네트워크 통신 명령, 시스템을 다루는 총 30,000단어 이상의 내용이 포함되어 있습니다. 관리 명령, 백업 압축 명령 해체 및 기타 측면Linux
지식 포인트.
이 문서의 디렉토리:
Linux는 <code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-를 기반으로 하며 무료로 사용하고 자유롭게 배포되는 Unix 계열 운영 체제입니다. 왼쪽: 2px;배경 색상: rgba(27, 31, 35, 0.05); 글꼴 계열: 'Operator Mono', Consolas, Monaco, Menlo, monospace; 단어 나누기: break-all; 색상: rgb(239, 112, 96);">POSIX
및 Unix
의 다중 사용자, 다중 작업, 다중 스레딩 및 다중CPU
의 운영 체제입니다. 주요 Unix 소프트웨어 도구, 응용 프로그램 및 네트워크 프로토콜을 실행할 수 있습니다. 32비트 및 64비트 하드웨어를 지원합니다. Linux
는 Unix
는 네트워크를 핵심으로 설계되었으며 다목적 컴퓨터입니다. 안정적인 성능을 갖춘 사용자 네트워크 운영 체제. Linux
是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX
和Unix
的多用户、多任务、支持多线程和多CPU
的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux
继承了Unix
以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
PS
:没学过 Linux
地址 https://pan.baidu.com/s/1O_Gj9qnyuGm2xHcX5ouS0g 密码:ptge
Linux 운영 체제는 크로스 플랫폼 성능이 뛰어나고 다양한 하드웨어 플랫폼에서 실행될 수 있습니다. Unix 운영 체제는 크로스 플랫폼 성능이 약하며 대부분 하드웨어와 함께 사용해야 합니다.
명령줄 작업 외에도 Linux에는 양식 관리 시스템도 있습니다. Unix는 명령줄 아래의 시스템일 뿐입니다.
Linux 운영 체제는 하드웨어 요구 사항이 낮고 설치 방법을 익히기가 더 쉽습니다. Unix는 하드웨어 요구 사항이 더 엄격하고 설치가 더 어렵습니다.
Linux는 사용자 그룹이 넓어 개인과 기업 모두 사용할 수 있습니다. Unix는 사용자 그룹이 좁고 은행, 통신 부서 등 보안 요구 사항이 높은 대기업에서 주로 사용합니다. 등 또는 Sun 등과 같은 Unix 하드웨어 제조업체에서 사용됩니다.
Unix 운영 체제에 비해 Linux 운영 체제는 컴퓨터 매니아들 사이에서 더 인기가 높습니다. 주된 이유는 Linux 운영 체제가 Unix 운영 체제의 모든 기능을 갖추고 있으며 일반 PC 컴퓨터에서 모든 Unix 기능을 구현할 수 있다는 것입니다. 무료 기능으로 대중화와 사용이 더욱 쉬워졌습니다!
리눅스 시스템의 핵심은 커널입니다. 커널은 컴퓨터 시스템의 모든 하드웨어와 소프트웨어를 제어하여 필요할 때 하드웨어를 할당하고 필요에 따라 소프트웨어를 실행합니다. Linux의 기본 구성 요소는 무엇입니까?
큰 관점에서 Linux 아키텍처는 두 부분으로 나눌 수 있습니다: 사용자 공간(사용자 공간
): 사용자 공간에는 사용자 응용 프로그램도 포함됩니다(사용자 응용 프로그램
), C 라이브러리(C 라이브러리
) . User Space
) :用户空间又包括用户的应用程序(User Applications
)、C 库(C Library
) 。
内核空间(Kernel Space
) :内核空间又包括系统调用接口(System Call Interface
)、内核(Kernel
)、平台架构相关的代码(Architecture-Dependent Kernel Code
커널 공간
) : 커널 공간에는 시스템 호출 인터페이스(시스템 호출 인터페이스 </ 코드>), 커널(<code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px; background-color: rgba(27, 31, 35, 0.05);글꼴 계열: 'Operator Mono', Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">커널
), 플랫폼 아키텍처 관련 코드(아키텍처 종속 커널 코드 </ 코드>). <p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;"></p>Linux 아키텍처는 왜 사용자 공간과 커널 공간으로 구분되나요? <ol class="list-paddingleft-2" data-tool="mdnice编辑器" style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;"><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section>최신 CPU는 다양한 작업 모드를 구현합니다. 다양한 모드에서는 CPU가 실행할 수 있는 명령과 액세스하는 레지스터가 다릅니다. </li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section>Linux는 CPU의 관점에서 커널의 보안을 보호하기 위해 시스템을 두 부분으로 나눕니다. </li></ol><p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;"></p>사용자 공간과 커널 공간은 두 가지 다른 프로그램 실행 상태입니다. 다음 두 가지 방법으로 사용자 공간에서 커널 공간으로의 전송을 완료할 수 있습니다. <p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;"></p>1) 시스템 호출 <p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;"></p>2) 하드웨어 인터럽트. <h3 data-tool="mdnice编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;font-size: 20px;"><span style="display: none;"></span><span style="display: none;">BASH와 DOS의 기본 차이점은 무엇인가요? </span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;"></p>BASH와 DOS 콘솔의 주요 차이점은 3가지 측면에 있습니다. 🎜<ol class="list-paddingleft-2" data-tool="mdnice编辑器" style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;"><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">BASH 명령은 대소문자를 구분하지만 DOS 명령은 </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"> <code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin) -왼쪽: 2px;배경색: rgba(27, 31, 35, 0.05); 글꼴 계열: 'Operator Mono', Consolas, Monaco, Menlo, monospace;단어 나누기: break-all;색상: rgb(239 , 112, 96);">BASH 아래
, / 문자
는 디렉토리 구분 기호이며 이스케이프 문자로 사용됩니다. DOS에서는
, /가 디렉터리 구분 기호인 명령 매개 변수 구분 기호 BASH
下,/ character
是目录分隔符,作为转义字符。在DOS
下,/用作命令参数分隔符,是目录分隔符BASH
没有遵循这样的惯例。1、主机加电自检,加载 BIOS 硬件信息。2、读取 MBR
的引导文件(GRUB、LILO
)。3、引导 Linux
内核。4、运行第一个进程init
Linux 부팅 프로세스? 🎜1 , 호스트는 전원 공급 시 자체 테스트를 수행하고 BIOS 하드웨어 정보를 로드합니다. 2. 읽기
MBR
의 부팅 파일(GRUB, LILO
). 3. 가이드Linux
커널. 4. 첫 번째 프로세스를 실행합니다.init
( 프로세스 번호는 항상 1입니다). 5. 해당 실행 레벨을 입력하십시오. 6. 터미널을 실행하고 사용자 이름과 비밀번호를 입력하세요. 🎜🎜🎜🎜Linux 시스템의 기본 실행 수준은 무엇입니까? 🎜🎜🎜🎜🎜종료합니다. 독립형 사용자 모드. 문자 인터페이스를 위한 다중 사용자 모드(네트워크는 지원되지 않음) 문자 인터페이스를 위한 다중 사용자 모드. 사용하도록 할당되지 않았습니다. 그래픽 인터페이스를 위한 다중 사용자 모드. 재시작. 🎜
더 중요한 것은/var/log /메시지
로그 파일입니다. /var/log/messages
日志文件。
该日志文件是许多进程日志文件的汇总,从该文件可以看出任何入侵企图或成功的入侵。另外,如果胖友的系统里有 ELK 日志集中收集,它也会被收集进去。
通常,一个桌面环境,如KDE
或Gnome
KDE< /code> 또는 <code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px; background-color: rgba(27, 31, 35, 0.05);font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">Gnome
, 작동하기에 충분 달릴 때 문제 없이. 시스템은 한 환경에서 다른 환경으로의 전환을 허용하지만 이는 사용자의 우선순위입니다. 일부 프로그램은 한 환경에서는 작동하지만 다른 환경에서는 작동하지 않으므로 어떤 환경을 사용할지 선택하는 요소로도 간주될 수 있습니다. BASH는 35, 0.05);font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">Bourne 다시 SHell의 약어입니다. Steve Bourne이 원본 31, 35, 0.05);font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96)로 작성했습니다. );">본 쉘(By/ bin/sh
로 표현) 대체. Bourne Shell 원본 버전의 모든 기능과 추가 기능을 결합하여 더욱 쉽게 사용할 수 있습니다. 그 이후로 Linux를 실행하는 대부분의 시스템에서 기본 셸로 적용되었습니다. Bourne Again SHell
的缩写。它由Steve Bourne编写,作为原始Bourne Shell
(由/ bin / sh
表示)的替代品。它结合了原始版本的Bourne Shell的所有功能,以及其他功能,使其更容易使用。从那以后,它已被改编为运行Linux的大多数系统的默认shell。
命令行界面(英语**:command-line interface**,缩写]:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。通常认为,命令行界面(CLI)没有图形用户界面(GUI)那么方便用户操作。因为,命令行界面的软件通常需要用户记忆操作的命令,但是,由于其本身的特点,命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下,使用命令行界面往往要较使用图形用户界面的操作速度要快。所以,图形用户界面的操作系统中,都保留着可选的命令行界面。
图形用户界面(Graphical User Interface
그래픽 사용자 인터페이스</ 코드>(GUI라고도 함, 그래픽 사용자 인터페이스라고도 함)는 그래픽으로 표시되는 컴퓨터 작동 사용자 인터페이스를 의미합니다. 그래픽 사용자 인터페이스(GUI)는 사용자가 마우스와 같은 입력 장치를 사용하여 화면의 아이콘이나 메뉴 옵션을 조작하여 명령을 선택하고, 파일을 호출하고, 프로그램을 시작하거나 기타 일상 작업을 수행할 수 있도록 하는 인간-컴퓨터 통신을 위한 인터페이스 표시 형식입니다. 그래픽 사용자 인터페이스는 일상적인 작업을 완료하기 위해 키보드를 통해 텍스트나 문자 명령을 입력하는 문자 인터페이스에 비해 많은 장점이 있습니다. <p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;"></p>🎜🎜오픈소스의 장점은 무엇인가요? 🎜🎜🎜🎜 오픈 소스를 사용하면 관심 있는 모든 사람에게 소프트웨어(소스 코드 포함)를 무료로 배포할 수 있습니다. 그런 다음 사람들은 기능을 추가하고 소스 코드의 오류를 디버깅하고 수정할 수도 있습니다. 그들은 심지어 더 나은 실행을 만들고 이러한 향상된 기능을 통해 소스 코드를 다시 자유롭게 재배포할 수도 있습니다. 이는 궁극적으로 지역 사회의 모든 사람에게 이익이 됩니다. 🎜🎜🎜🎜GNU 프로젝트의 중요성은 무엇인가요? 🎜🎜🎜🎜이 소위 자유 소프트웨어 운동은 프로그램을 실행할 수 있는 자유, 필요에 따라 프로그램을 배우고 수정할 수 있는 자유 등 여러 가지 이점을 제공합니다. 또한 소프트웨어 사본을 다른 사람에게 재배포할 수 있을 뿐만 아니라 소프트웨어를 자유롭게 개선하여 대중에게 공개할 수도 있습니다. 🎜<h2 data-tool="mdnice编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;border-bottom: 2px solid rgb(239, 112, 96);font-size: 1.3em;"><span style="display: none;"></span><span style="display: inline-block;background: rgb(239, 112, 96);color: rgb(255, 255, 255);padding: 3px 10px 1px;border-top-right-radius: 3px;border-top-left-radius: 3px;margin-right: 3px;">2. 디스크, 디렉토리, 파일</span><span style="display: inline-block;vertical-align: bottom;border-bottom: 36px solid #efebe9;border-right: 20px solid transparent;"> </span></h2><figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;display: flex;flex-direction: column;justify-content: center;align-items: center;"><p style="text-align: center;padding: 0px 0.5em;"><a data-itemshowtype="0" data-linktype="1" href="//m.sbmmt.com/link/00db544eb12c05386ea51a6bff8803e7" tab="innerlink" target="_blank" textvalue="你已选中了添加链接的内容"><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;margin: 0px;"><img src="https://img.php.cn/upload/article/001/273/727/bb0139d52fa8090def516b334d6908d9-4.png"/ alt="100개의 Linux 인터뷰 질문과 답변을 수집하는 것이 좋습니다" ></span></a></p></figure><h3 data-tool="mdnice编辑器" style="max-width:90%"><span style="display: none;"></span>간단한 리눅스 파일 시스템? <span style="display: none;"></span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">Linux 운영 체제에서는 네트워크 인터페이스 카드, 디스크 드라이브, 프린터, 입출력 장치, 일반 파일이나 디렉터리 등 운영 체제에서 관리하는 모든 리소스를 파일로 간주합니다. 즉, Linux 시스템에는 모든 것이 파일이라는 중요한 개념이 있습니다. 사실 이는 유닉스 철학의 발현이고, 리눅스는 유닉스에서 다시 작성되었기 때문에 이 개념이 계승되어 왔다. Unix 시스템에서는 하드웨어 장치를 포함한 모든 리소스가 파일로 간주됩니다. UNIX 시스템은 하드웨어의 각 부분을 일반적으로 장치 파일이라고 하는 파일로 처리하므로 사용자는 파일을 읽고 쓰면서 하드웨어에 액세스할 수 있습니다. Linux는 아래 그림과 같이 5가지 파일 형식을 지원합니다. </p><figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;display: flex;flex-direction: column;justify-content: center;align-items: center;"><img src="https://img.php.cn/upload/article/001/273/727/bb0139d52fa8090def516b334d6908d9-5.png"/ alt="100개의 Linux 인터뷰 질문과 답변을 수집하는 것이 좋습니다" ><figcaption style="max-width:90%">img</figcaption></figure><h3 data-tool="mdnice编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;font-size: 20px;"><span style="display: none;"></span>Linux의 디렉토리 구조는 무엇입니까? <span style="display: none;"></span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">이 질문은 일반적으로 묻지 않습니다. 실제 사용을 위해서는 더 많은 정보가 필요합니다. </p><p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">Linux 파일 시스템의 구조는 역트리처럼 명확합니다. 최상위 수준은 루트 디렉터리입니다. </p><figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;display: flex;flex-direction: column;justify-content: center;align-items: center;"><a data-itemshowtype="0" data-linktype="1" href="//m.sbmmt.com/link/1cfa81af29c6f2d8cacb44921722e753" tab="innerlink" target="_blank" textvalue="你已选中了添加链接的内容"><span class="js_jump_icon h5_image_link" data-positionback="static" style="inset: auto;margin: 0px;"><img src="https://img.php.cn/upload/article/001/273/727/bb0139d52fa8090def516b334d6908d9-6.png"/ alt="100개의 Linux 인터뷰 질문과 답변을 수집하는 것이 좋습니다" ></span></a></figure><p data-tool="mdnice编辑器" style="max-width:90%">공통 디렉터리 설명: </p><blockquote data-tool="mdnice编辑器" style="border-top: none;border-right: none;border-bottom: none;font-size: 0.9em;overflow: auto;color: rgb(106, 115, 125);padding: 10px 10px 10px 20px;margin-bottom: 20px;margin-top: 20px;border-left-color: rgb(239, 112, 96);background: rgb(255, 249, 249);"><ul class="list-paddingleft-2" style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;color: black;"><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">/bin: 바이너리 실행 파일(ls, cat, mkdir 등)을 저장합니다. 일반적으로 사용되는 명령은 여기에 있습니다. </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">/etc: 시스템 관리 및 구성 파일을 저장합니다. 모든 사용자 파일의 루트 디렉터리는 사용자 홈 디렉터리의 기초입니다. 예를 들어 사용자 user의 홈 디렉터리는 ~user로 표시될 수 있습니다. 시스템 응용 프로그램/opt: 추가 설치 선택적 응용 프로그램 패키지가 배치되는 위치입니다. 일반적인 상황에서는 여기에 tomcat 등을 설치할 수 있습니다. </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">/proc: 시스템 메모리 매핑인 가상 파일 시스템 디렉터리입니다. 이 디렉토리는 시스템 정보를 얻기 위해 직접 액세스할 수 있습니다. </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">/root: 슈퍼 사용자(시스템 관리자)(권한 클래스 o)의 홈 디렉토리 </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">/sbin: 바이너리 실행 파일을 저장합니다. 루트로 액세스할 수 있습니다. 여기에는 시스템 관리자가 사용하는 시스템 수준 관리 명령 및 프로그램이 저장됩니다. ifconfig 등. </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">/dev: 장치 파일을 저장하는 데 사용됩니다. </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">/mnt: 시스템 관리자가 임시 파일 시스템을 설치하는 데 사용되는 설치 지점입니다. 기타 파일 시스템 </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">/boot: 시스템 부팅 중에 사용되는 다양한 파일을 저장합니다. </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">**/lib **: 시스템 작동과 관련된 라이브러리 파일을 저장합니다. </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">/tmp: 다양한 임시 파일을 저장하는 데 사용됩니다. files는 공용 임시 파일 저장 지점입니다. </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">/var: 작업 중에 데이터를 변경해야 하는 파일을 저장하는 데 사용됩니다. 또한 다양한 서비스의 로그 파일(시스템 시작 로그, etc.) etc.; </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">/lost+found: 이 디렉토리는 일반적으로 비어 있으며 시스템의 비정상적인 종료로 인해 "homeless" 파일(Windows에서는 .chk라고 함)이 여기에 남아 있습니다. </section></li><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section></li><li>아이노드란 무엇인가요? <section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);"></section></li></ul>일반적으로 인터뷰에서는 inode에 대해 묻지 않습니다. 하지만 inode는 이해해야 할 중요한 개념입니다 </blockquote>). 각 섹터는 512바이트(0.5KB에 해당)를 저장합니다. 운영 체제는 하드 디스크를 읽을 때 섹터 단위로 읽지 않고 여러 섹터를 동시에 연속적으로 읽습니다. 즉, 한 번에 하나의 "블록"을 읽습니다. 여러 섹터로 구성된 이 "블록"은 파일 액세스의 가장 작은 단위입니다. "블록"의 가장 일반적인 크기는 4KB입니다. 즉, 8개의 연속 섹터가 하나의 블록을 형성합니다.파일 데이터는 "블록"에 저장되므로 파일 작성자, 파일 생성 날짜, 파일 크기 등과 같은 파일의 메타 정보를 저장할 장소도 찾아야 합니다. 파일 메타 정보를 저장하는 이 영역을 inode라고 하며 중국어로 "인덱스 노드"로 번역됩니다. 각 파일에는 파일과 관련된 일부 정보가 포함된 해당 inode가 있습니다. i-node를 통해 파일의 논리적 구조와 물리적 구조를 변환하는 Linux 파일 시스템의 작업 과정을 간략하게 설명하면? 일반적으로 면접관들은 이런 질문을 하지 않습니다. Linux는 inode 노드 테이블을 통해 파일의 논리적 구조와 물리적 구조를 변환합니다. <strong>·</strong> inode 노드는 파일 크기, 파일 소유자, 파일 액세스 권한, 파일 형식 등 중요한 정보를 포함한 파일 관련 정보가 포함된 64바이트 길이의 테이블입니다. inode 노드 테이블에서 가장 중요한 내용은 디스크 주소 테이블이다. 디스크 주소 테이블에는 13개의 블록 번호가 있으며 파일은 디스크 주소 테이블에 블록 번호가 나타나는 순서대로 해당 블록을 읽습니다. <strong>·</strong> Linux 파일 시스템은 파일을 읽어야 할 때 inode 노드와 파일 이름을 연결합니다. 파일 시스템은 현재 디렉터리 테이블에서 파일 이름에 해당하는 항목을 검색하여 해당 inode 노드 번호를 얻습니다. , inode 노드의 디스크 주소 테이블을 통해 파일의 분산된 물리적 블록이 파일의 논리적 구조에 연결됩니다. </p><h3 data-tool="mdnice编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;font-size: 20px;"><span style="display: none;"></span>하드 링크와 소프트 링크가 무엇인가요? <span style="display: none;"></span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">1) 하드 링크
Linux의 파일은 인덱스 노드(inode)로 파일을 식별하므로 하드 링크는 파일 인덱스 노드에 대한 포인터인 포인터로 간주될 수 있으며 시스템은 이에 대한 inode를 재할당하지 않습니다. 하드 링크가 추가될 때마다 파일에 대한 링크 수가 1씩 증가합니다. 단점: 1) 서로 다른 파일 시스템에 있는 파일 간에 링크를 설정할 수 없습니다. 2) 슈퍼 사용자만 디렉터리에 대한 하드 링크를 만들 수 있습니다. 2) 소프트링크
소프트 링크는 하드 링크의 단점을 극복하고 파일 시스템 제한이 없습니다. 모든 사용자는 디렉토리를 가리키는 심볼릭 링크를 만들 수 있습니다. 결과적으로 이제는 더 널리 사용되고 유연성이 향상되었으며 다양한 시스템과 네트워크에 걸쳐 파일을 연결할 수도 있습니다. </p><p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">단점: 링크 파일에는 원본 파일의 경로 정보가 포함되어 있기 때문에 원본 파일을 한 디렉터리에서 다른 디렉터리로 이동한 후 해당 링크 파일에 다시 액세스하면 시스템에서 하드링크를 찾을 수 없습니다. 원하는 대로 이동할 수 있습니다. 또한 새 인덱스 노드를 생성하고 원본 파일의 경로를 저장하기 위해 시스템이 추가 공간을 할당해야 합니다. 실제 시나리오에서는 기본적으로 소프트링크를 사용합니다. 차이점을 요약하면 다음과 같습니다. <strong>·</strong> 하드 링크는 파티션을 넘을 수 없지만 소프트웨어 링크는 파티션을 넘을 수 있습니다. <strong>·</strong> 하드 링크는 inode 노드를 가리키고, 소프트 링크는 새로운 inode 노드를 생성합니다. <strong>·</strong> 하드링크 파일을 삭제해도 원본 파일은 삭제되지 않습니다. </p><p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;"><a data-itemshowtype="0" data-linktype="2" href="//m.sbmmt.com/link/85a4413ecea7122bcc399cf0a53bba26" imgdata="null" imgurl="" linktype="text" style="font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 16px;text-align: left;white-space: normal;" tab="innerlink" target="_blank" textvalue="我已经整理了后端技术核心知识总结系列"><strong>백엔드 기술에 대한 핵심 지식 요약을 정리했습니다</strong></a></p><h3 data-tool="mdnice编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;font-size: 20px;"><span style="display: none;"></span>RAID란 무엇인가요?<span style="display: none;"></span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">RAID는 Redundant Array of Independent Disks를 의미합니다. 기본 아이디어는 여러 개를 상대적으로 저렴하게 결합하는 것입니다. 하드 디스크는 하나의 하드 디스크 어레이 그룹으로 결합되어 성능이 대용량의 값비싼 하드 디스크에 도달하거나 그 이상입니다. RAID는 일반적으로 서버 컴퓨터에서 사용되며 동일한 하드 드라이브를 사용하여 논리 섹터를 형성하므로 운영 체제는 이를 하나의 하드 드라이브로만 처리합니다. RAID는 여러 수준으로 구분되며, 각 수준은 데이터 안정성과 읽기 및 쓰기 성능에서 서로 다른 균형을 유지합니다. 실제 애플리케이션에서는 실제 필요에 따라 다양한 RAID 솔루션을 선택할 수 있습니다. 물론 많은 기업이 클라우드 서비스를 사용하기 때문에 누구나 RAID라는 개념을 접하기는 어렵습니다. 일반 클라우드 디스크와 SSD 클라우드 디스크의 개념일 가능성이 높습니다. </p><h2 data-tool="mdnice编辑器" style="margin-top: 30px;margin-bottom: 15px;font-weight: bold;border-bottom: 2px solid rgb(239, 112, 96);font-size: 1.3em;"><span style="display: none;"></span><span style="display: inline-block;background: rgb(239, 112, 96);color: rgb(255, 255, 255);padding: 3px 10px 1px;border-top-right-radius: 3px;border-top-left-radius: 3px;margin-right: 3px;">3. 보안</span><span style="display: inline-block;vertical-align: bottom;border-bottom: 36px solid #efebe9;border-right: 20px solid transparent;"> </span></h2><figure data-tool="mdnice编辑器" style="margin-top: 10px;margin-bottom: 10px;display: flex;flex-direction: column;justify-content: center;align-items: center;"><p style="text-align: center;"><img src="https://img.php.cn/upload/article/001/273/727/8015d7a7dad4550192add9d87b29cbf5-7.png"/ alt="100개의 Linux 인터뷰 질문과 답변을 수집하는 것이 좋습니다" ></p></figure><h3 data-tool="mdnice编辑器" style="max-width:90%"><span style="display: none;"></span>Linux 시스템이 환경을 초기화한 후에는 어떤 보안 작업을 수행해야 합니까? <span style="display: none;"></span></h3><p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;">1. 일반 사용자 로그인 추가, 루트 사용자 로그인 금지, SSH 포트 번호 변경. SSH 포트 수정이 반드시 절대적이지는 않습니다. 물론, 인터넷에 노출될 예정이라면 바꾸는 것이 좋습니다. 2. 서버는 키를 사용하여 로그인하며, 비밀번호 로그인은 금지되어 있습니다. 3. 방화벽을 켜고 SElinux를 끄고 비즈니스 요구에 따라 해당 방화벽 규칙을 설정합니다. 4. SSH 무차별 대입 공격을 방지하는 소프트웨어인 fall2ban을 설치합니다. 5. 회사의 사무실 네트워크 내보내기 IP만 서버에 로그인할 수 있도록 설정합니다. (회사의 실제 요구에 따라) 6. 기록 명령 레코드 수를 10으로 수정합니다. 7. 외부 네트워크 접속은 꼭 필요한 서버만 허용하고, 그 외의 서버는 모두 접속이 금지됩니다. 8. 소프트웨어 수준의 보호를 제공합니다. </p><ul class="list-paddingleft-2" data-tool="mdnice编辑器" style="margin-top: 8px;margin-bottom: 8px;padding-left: 25px;"><li><section style="margin-top: 5px;margin-bottom: 5px;line-height: 26px;color: rgb(1, 1, 1);">설정<code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px; background-color: rgba(27, 31, 35, 0.05);font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">nginx_waf
모듈이 SQL
주입. nginx_waf
模块防止 SQL
注入。www
用户启动,更改网站目录的所有者和所属组为www
CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽。DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一个或多个目标发动 DDOS
攻击。攻击,即是通过大量合法的请求占用大量网络资源,以达到瘫痪网络的目的。怎么预防 CC 攻击和DDOS
攻击?防 CC
、DDOS
攻击,这些只能是用硬件防火墙做流量清洗,将攻击流量引入黑洞。流量清洗这一块,主要是买 ISP
www
사용자가 시작하면 웹 사이트 디렉토리의 소유자 및 그룹을 www
CC 공격은 주로 페이지를 공격하는 데 사용되며, 여러 사용자가 페이지에 지속적으로 액세스하도록 시뮬레이션하여 시스템 리소스를 소진시킵니다. 중국어로 분산 서비스 거부 공격이라고도 알려진 DDOS 공격은 서버 기술을 사용하여 여러 컴퓨터를 공격 플랫폼으로 통합하여 하나 이상의 대상에 대해 실행하는 것을 의미합니다.DDOS
공격. 공격이란 네트워크를 마비시키는 목적을 달성하기 위해 다수의 합법적인 요청을 통해 대량의 네트워크 자원을 점유하는 것입니다. CC 공격을 방지하는 방법 및 0.05);font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">DDOS< /코드> 공격? 안티CC
、DDOS
공격. 이러한 공격은 하드웨어 방화벽을 사용하여 트래픽을 정리해야만 수행할 수 있습니다. 공격 트래픽으로 인해 블랙홀이 발생합니다. 교통 정리를 위해 가장 중요한 것은 ISP</ code> 서비스 제공업체의 공격 방지 서비스로 충분합니다. 일반적으로 컴퓨터실에는 여유 트래픽이 있습니다. 결국, 공격은 오래 지속되지 않습니다. </p><p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;"></p>🎜웹사이트 데이터베이스 주입이란 무엇인가요? 🎜🎜🎜🎜프로그래머의 수준과 경험이 고르지 않기 때문에 대부분의 프로그래머는 코드를 작성할 때 사용자 입력 데이터의 적법성을 판단하지 않습니다. 🎜🎜애플리케이션에 보안 위험이 있습니다. 사용자는 데이터베이스 쿼리 코드를 제출하고 프로그램에서 반환된 결과를 기반으로 알고 싶은 일부 데이터를 얻을 수 있습니다. 이것이 소위 SQL 주입입니다. 🎜<p data-tool="mdnice编辑器" style="padding-top: 8px;padding-bottom: 8px;line-height: 26px;margin-top: 1px;margin-bottom: 1px;"><code style="font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: 'Operator Mono', Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">SQL
注入,是从正常的 WWW
端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,如果管理员没查看日志的习惯,可能被入侵很长时间都不会发觉。如何过滤与预防?数据库网页端注入这种,可以考虑使用 nginx_waf
做过滤与预防。
一个 Shell 脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell 脚本)来完成这些日常工作任务。- 什么是默认登录 Shell ?在 Linux 操作系统,"/bin/bash"
是默认登录Shell
,是在创建用户时分配的。
使用 chsh 命令可以改变默认的 Shell
。示例如下所示:
## chsh <用户名> -s <新shell> ## chsh ThinkWon -s /bin/sh
-在 Shell 脚本中,如何写入注释?注释可以用来描述一个脚本可以做什么和它是如何工作的。每一行注释以 # 开头。例子如下:
#!/bin/bash ## This is a command echo “I am logged in as $USER”
在 Shell 脚本,我们可以使用两种类型的变量:系统定义变量:系统变量是由系统系统自己创建的。这些变量通常由大写字母组成,可以通过 set 命令查看。用户定义变量:用户变量由系统用户来生成和定义,变量的值可以通过命令 "echo $<变量名>" 查看。
在写一个 Shell 脚本时,如果你想要检查前一命令是否执行成功,在 if 条件中使用 $? 可以来检查前一命令的结束状态。· 如果结束状态是 0 ,说明前一个命令执行成功。例如:
root@localhost:~## ls /usr/bin/shar /usr/bin/shar root@localhost:~## echo $? 0
· 如果结束状态不是0,说明命令执行失败。例如:
root@localhost:~## ls /usr/bin/share ls: cannot access /usr/bin/share: No such file or directory root@localhost:~## echo $? 2
下面的表列出了 Bourne Shell 为命令行设置的特殊变量。
内建变量 解释 $0 命令行中的脚本名字 $1 第一个命令行参数 $2 第二个命令行参数 ….. ……. $9 第九个命令行参数 $## 命令行参数的数量 $* 所有命令行参数,以空格隔开
unset 命令用于取消变量或取消变量赋值。语法如下所示:
## unset <变量名>
if [ 条件 ] then 命令1 命令2 ….. else if [ 条件 ] then 命令1 命令2 …. else 命令1 命令2 ….. fi fi
在 if-then 中使用测试命令( -gt 等)来比较两个数字。例如:
#!/bin/bash x=10 y=20 if [ $x -gt $y ] then echo “x is greater than y” else echo “y is greater than x” fi
基础语法如下:
case 变量 in 值1) 命令1 命令2 ….. 最后命令 !! 值2) 命令1 命令2 …… 最后命令 ;; esac
基础语法如下:
for 变量 in 循环列表 do 命令1 命令2 …. 最后命令 done
Shell
脚本中 while
循环语法?· 如同for
循环,while
循环只要条件成立就重复它的命令块。· 不同于 for
循环,while
循环会不断迭代,直到它的条件不为真。
基础语法:
while [ 条件 ] do 命令… done
do-while
语句类似于 while 语句,但检查条件语句之前先执行命令(LCTT
译注:意即至少执行一次。)。下面是用do-while
语句的语法:
do { 命令 } while (条件)
break 命令一个简单的用途是退出执行中的循环。我们可以在 while 和 until 循环中使用 break 命令跳出循环。
continue 命令不同于 break 命令,它只跳出当前循环的迭代,而不是整个循环。continue
命令很多时候是很有用的,例如错误发生,但我们依然希望继续执行大循环的时候。
使用 chmod 命令来使脚本可执行。例子如下:chmod a+x myscript.sh
。
#!/bin/bash 的作用? #!/bin/bash 是 Shell 脚本的第一行,称为释伴(shebang)行。 这里 # 符号叫做 hash ,而 ! 叫做 bang。 它的意思是命令通过 /bin/bash 来执行。
使用-x
数(sh -x myscript.sh
)可以调试 Shell脚本。另一个种方法是使用 -nv
参数(sh -nv myscript.sh
)。
方法一:2>&1 (如## ls /usr/share/doc > out.txt 2>&1
) 。方法二:&> (如## ls /usr/share/doc &> out.txt
) 。
test 命令可以用来测试文件。基础用法如下表格:
Test 用法 -d 文件名 如果文件存在并且是目录,返回true -e 文件名 如果文件存在,返回true -f 文件名 如果文件存在并且是普通文件,返回true -r 文件名 如果文件存在并可读,返回true -s 文件名 如果文件存在并且不为空,返回true -w 文件名 如果文件存在并可写,返回true -x 文件名 如果文件存在并可执行,返回true
函数是拥有名字的代码块。当我们定义代码块,我们就可以在我们的脚本调用函数名字,该块就会被执行。示例如下所示:
$ diskusage () { df -h ; } 译注:下面是我给的shell函数语法,原文没有 [ function ] 函数名 [()] { 命令; [return int;] }
read 命令可以读取来自终端(使用键盘)的数据。read 命令得到用户的输入并置于你给出的变量中。例子如下:
## vi /tmp/test.sh #!/bin/bash echo ‘Please enter your name’ read name echo “My Name is $name” ## ./test.sh Please enter your name ThinkWon My Name is ThinkWon
有两种方法来执行算术运算:
1. expr
命令:## expr 5 + 2
를 사용하세요.2. 달러 기호와 대괄호를 사용하세요.
위 내용은 100개의 Linux 인터뷰 질문과 답변을 수집하는 것이 좋습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!