컴퓨터 지식 네트워크 - 컴퓨터 백과사전 - 리눅스를 잘 배우려면 어떻게 해야 하나요?

리눅스를 잘 배우려면 어떻게 해야 하나요?

Linux를 잘 배우는 방법에 대한 Baidu의 경험에서 얻은 인터넷 정보

현재 Linux 시스템 학습을 위한 인기 포럼이 있습니다

이야기하자 리눅스 운영체제를 배우는 방법, 51cto 네트워크 정보, 참고자료/2895551/569329 중에서

정말로 리눅스 시스템을 잘 배우고 싶다면 리눅스 커널 소스코드도 공부해야 합니다.

왜 그런 말을 하는 걸까요?

Linux에서 일부 명령을 사용하든 Linux 애플리케이션 계층을 개발하든 실제로 Linux 커널의 기능을 사용하고 있지만 실제로는 Linux의 기본 메커니즘을 이해하지 못합니다. 장기적으로 보면 실제로 실력이 크게 향상되지는 않습니다.

예:

1. Linux에서 매일 docker 명령을 사용하는 경우 docker가 이러한 격리를 어떻게 달성하는지 알고 있습니까?

2. Linux 애플리케이션을 작성할 때 진입점이 main() 함수라는 것을 알 수 있습니다. 그렇다면 질문은 왜 main()인가 하는 것입니다. 왜 hello()가 아니고, fuck()도 아니고, love()도 아닌 걸까요?

3. Linux 애플리케이션을 작성할 때 write() 함수도 사용하게 됩니다. 이 쓰기 기능은 우리 코드에서 구현되지 않았는데 누가 구현했습니까? C 라이브러리인가요? 가능합니다. 하지만 디스크에 쓰면 어떻게 될까요? C 라이브러리에서 할 수 있나요?

당연하지! 여전히 Linux 커널의 기능이 필요합니다.

4. Linux에서는 다양한 애플리케이션이 동적 링크 라이브러리를 공유할 수 있다는 것을 알고 있습니다. 어떻게 해야 할까요? 프로세스가 분리되어 있다는 뜻이 아닌가요? 동적 링크 라이브러리가 격리되지 않는 이유는 무엇입니까?

5. Linux 애플리케이션 계층이 malloc을 호출할 때 커널을 직접 호출합니까?

분명히 그렇지 않습니다! C 라이브러리에는 메모리 관리 기능이 있습니다. C 라이브러리의 메모리 관리 장치는 메모리(페이지 단위)를 커널에 도매한 다음 메모리를 애플리케이션에 소매합니다(더 작은 단위로). can Int 크기, char 크기 등입니다.)

6. Linux에서 프로세스와 스레드의 유사점과 차이점은 무엇입니까? 당신을 가르치기 위해 교과서를 사용하지 마십시오. 실제 지식은 코드에서 얻어집니다.

....

질문이 너무 많은데 궁금하지 않으신가요?

궁금하지 않다면 기술에 적합하지 않다는 것이 분명합니다. 이 기술의 길에서 멀리 가지 못할 수도 있으며, 궁금하다면 가능한 한 빨리 직업을 바꿔야 합니다. , 그런 다음 지금부터 Bar에서 Linux 커널 공부를 시작하세요.

10년 넘게 Linux에서 코드를 개발해 온 사람으로서 이 문제에 대해 몇 마디 말씀드리지 않을 수 없습니다.

어떤 기술을 배우고 싶다면 철저하게, 많은 노력이 필요하며, 특히 상대적으로 전문적인 기술이 필요하며 학습과 실습에 많은 에너지의 지속적인 장기 투자가 필요합니다. 예를 들어 Linux를 배우는 것은 매우 전문적인 기술입니다. ? 이 스킬.

어떻게 하면 그걸 잘 배울 수 있나요? 이념적 관심

먼저 Linux를 배우고 싶은 이유와 Linux를 배우는 것이 무엇을 가져올 수 있는지 이해해야 합니다. 즉, Linux를 잘 배우는 것이 자신에게 얼마나 중요한지 알아야 합니다. 어떤 일이 자신에게 얼마나 중요한지 정신적으로 깨닫게 되면, 그 일을 하는 데 많은 에너지를 쏟게 될 것입니다.

구체적인 행동

이념적 관심을 가지고 아래의 구체적인 행동이 필요합니다.

(1) 새로운 것을 배울 때 기본 지식을 배우고 기본 기술을 구축하십시오. 지식을 갖추기 위해서는 리눅스의 기본 내용, 기본 개념 등을 어느 정도 이해해야 합니다. 이렇게 하려면 먼저 리눅스를 소개하는 전문 서적을 찾아야 하며, 먼저 리눅스 관련 내용에 대한 전반적인 이해를 갖추어 혼동하지 않도록 해야 합니다. 나중에 Linux를 배울 때 가장 기본적인 직업 이름도 이해할 수 없습니다.

(2) 열심히 공부하고, 더 많이 연습하고, 더 많이 생각하십시오. Linux는 매우 실용적인 기술입니다. 기본 이론을 연구하면 응용 프로그램을 더 잘 실현할 수 있습니다. 상대적으로 완전한 기능을 갖춘 개발 보드를 찾고, 개발 보드에서 다양한 기능을 구현하고, 계속해서 연습하고, 설계한 기능이 구현되는 것을 보면 만족스러울 것입니다. 이것은 다른 것이 아닙니다.

한마디로 리눅스를 잘 배우는 것은 하루아침에 이루어지지 않는다. 시간과 지식의 축적이 필수적이다.

리눅스는 큰 개념이니 추천하자. 먼저 간단한 것부터 시작하여 관심 분야와 업무 내용을 결합하고 특정 측면을 더 깊이 파고들어 Linux 학습 및 업그레이드를 소개하는 그림을 생각해 보세요.

Linux를 처음 사용하는 경우 먼저 데스크톱 버전의 Linux 가상 머신(Ubuntu, CentOS7 등)을 설치하여 일반적으로 사용되는 명령에 익숙해질 수 있습니다. 환경에 대한 기본적인 이해가 있으면 커널 소스 코드와 일반적으로 사용되는 서버의 구성을 연구하여 이해와 응용을 심화할 수 있습니다. 아래에서는 Linux 학습 과정을 간략하게 소개합니다. 01 Linux 설치

여기에 데스크탑 버전의 Linux 가상 머신을 설치하는 것이 좋습니다(Ubuntu, CentOS7 및 기타 배포판 사용 가능). 초보자이거나 Linux에 전혀 익숙하지 않은 경우 설치가 매우 불편할 수 있습니다. 미니 버전에서는 많은 기능과 패키지를 직접 조정하고 다운로드해야 합니다. 데스크톱 첫 번째 버전을 사용해도 환경에 완전히 익숙해진 후에는 인터페이스 없는 버전을 사용할 수 있습니다.

02 Linux 시작하기

Linux 가상 머신을 설치한 후 Linux 기본 시작하기에는 많은 내용이 있습니다. MOOC, Rookie Tutorials, Bilibili 등과 같은 온라인 튜토리얼 및 자료에는 모두 고품질의 비디오와 문서가 많이 있습니다. 물론 동시에 배우고 연습할 수 있는 전문적인 Linux 책도 찾을 수 있습니다. "냐오 형제의 개인 주방"은 매우 훌륭하며, 폭넓은 적용 범위와 매우 상세한 설명이 포함되어 있습니다. 일반적인 기본 명령과 구성에 익숙해야 합니다.

03 Linux 심층 분석

Linux의 기본 사항을 숙지한 후에는 Linux에 대해 자세히 알아볼 차례입니다. 여기에서는 서버 구축, 임베디드 개발, 등 모두 매우 밝은 전망을 가지고 있습니다. 물론 메모리 관리, 프로세스 관리, 파일 시스템, 드라이버 등을 포함한 Linux 커널을 공부할 수도 있습니다. 운영에 대한 깊은 이해에 큰 도움이 된다고 할 수 있습니다. system:

결국 Linux는 올바른 학습 방법을 익히는 한 운영 체제일 뿐입니다. 오늘 우리는 Linux를 올바른 방법으로 배우는 방법을 자세히 살펴 보겠습니다. Reprinted from——Ma Ge Linux 운영 및 유지 관리

1. 명령으로 시작하고 기본부터 시작하세요

종종 어떤 친구들은 Linux를 접하게 되었을 때 웹사이트를 만들고 싶어하기도 합니다. , 그들은 Linux Base에 대해 먼저 배울 생각을 하지 않습니다. 이것은 매우 어렵습니다. Linux 데스크톱 응용 프로그램이 빠르게 발전하고 있지만 Linux에서는 명령이 여전히 강력한 활력을 갖고 있습니다. Linux는 명령줄로 구성된 운영 체제입니다. 그래픽 인터페이스가 아무리 발전하더라도 이 원칙은 변하지 않습니다. Linux 명령에는 간단한 디스크 작업, 파일 액세스, 프로덕션에 이르기까지 많은 강력한 기능이 있습니다. 복잡한 멀티미디어 이미지와 스트리밍 미디어 파일을 제공합니다.

여기서 저자는 그 중 더 중요하고 가장 자주 사용되는 명령을 시스템에서의 기능에 따라 여러 부분으로 나누었습니다. 이러한 기본 명령을 학습하면 Linux 시스템을 더 잘 이해할 수 있습니다.

설치 및 로그인 명령: login, shutdown, 정지, 재부팅, mount, umount, chsh

파일 처리 명령: file, mkdir, grep, dd, find, mv, ls, diff, cat, ln

p >

시스템 관리 관련 명령어 : df, top, free, quota, at, lp, adduser, groupadd kill, crontab, tar, unzip, gunzip, last

네트워크 운영 명령어 : ifconfig, ip , ping, netstat, telnet, ftp, Route, rlogin rcp, Finger, mail, nslookup

시스템 보안 관련 명령: passwd, su, umask, chgrp, chmod, chown, chattr, sudo, pswho

p>

2. 좋은 리눅스 책을 선택하세요

다양한 리눅스 포럼에서 우리가 흔히 접하는 문제는 초보자들이 리눅스를 설치하거나 사용하는 중에 문제에 직면하는 경우가 많습니다. 그 중 대부분은 반복적인 질문이었고, 많은 사람들은 문제의 기본 설명조차 명확하게 이해하지 못했습니다. 이는 Linux를 처음 접하는 사람들 중 많은 사람들이 기본적인 기술을 익히지 못했다는 것을 보여줍니다. Linux를 마스터하는 기본 기술을 어떻게 빠르게 향상시킬 수 있습니까? 가장 효과적인 방법은 학습자에게 매우 중요한 권위 있는 Linux 참고서를 공부하는 것입니다. 오해가 있는 참고서는 초보자를 잘못된 길로 이끌 수 있습니다. 현재 국내에는 리눅스에 관한 책이 많지만, 수준 높은 책은 많지 않다. 저자는 현재 제3판이 나온 "냐오 형제의 리눅스 개인 주방 기초"를 읽어볼 것을 강력히 권한다. 초보자들은 종이책을 사서 꼼꼼히 공부하고 공부노트를 꼼꼼히 적는 것이 가장 좋습니다. 물론, 전자책 읽기에 익숙하다면 여기에서 PDF 전자책을 다운로드할 수도 있습니다.

3. 명령줄에서 작업하는 습관을 기르세요

X-window는 명령줄에서만 실행된다는 것을 알아야 합니다. 모드. 처음에는 명령줄을 사용하여 학습하는 것이 느리지만 일단 익숙해지면 향후 학습 경로가 기하급수적으로 늘어납니다. 네트워크 관리자의 관점에서 볼 때 명령줄은 실제로 항상 유효하고 유연한 규칙입니다. 느린 모뎀 회선을 통해서도 수천 킬로미터 떨어진 원격 시스템을 작동할 수 있습니다.

4. 유닉스 사고로 리눅스를 생각하라

리눅스는 유닉스 사고를 기준으로 설계되었기 때문에 이해와 숙달은 윈도우 사고가 아닌 유닉스 사고로 이루어져야 한다. 시장에서 Windows의 성공의 상당 부분이 기술적 아이디어의 독보성에 달려 있다는 것은 부인할 수 없는 사실입니다. 그러나 이러한 혁신은 개인 사용자를 대상으로 하고, 기업 수준의 서비스 응용을 대상으로 진행되기 때문에 아직은 다소 미흡한 편입니다. 수년 동안 두 가지가 컴퓨터 운영 체제 분야를 지배해 왔습니다. 즉, 서버 분야에서는 Unix, 개인 사용자 분야에서는 Windows입니다. 사용자가 사용하는 운영 체제를 결정해야 한다는 것을 알 수 있습니다. 이유가 무엇이든, Linux를 배우고 싶다면 먼저 생각을 Windows의 "작은 강"에서 끌어내어 Unix의 바다로 옮겨야 합니다.

5. 쉘 학습

Windows에 익숙한 독자라면 Shell(중국명 쉘)에 대해 매우 생소할 것입니다. Windows에는 "쉘"(이라고 할 수 있는 경우)이 하나만 있기 때문입니다. Shell) ), 즉 Windows 자체입니다. 한 문장으로 이해하기 쉽게 설명하면 쉘은 사용자의 입력 명령과 시스템의 명령 해석 사이의 중개자라는 것입니다.

가장 직관적으로 표현하면 셸에는 자체 명령 세트가 있다는 것입니다. 이해하기 쉬운 예를 들자면, Linux의 표준 Shel은 Bash Shel이고, Solaris의 Shell은 B Shell이며, Linux의 Shell은 명령줄 형식으로 표현됩니다. 독자들은 Windows가 명령줄에서 그래픽 인터페이스로 "진화"했다는 사실을 이해하지 못할 수도 있습니다. 그렇다면 Linux가 여전히 명령줄을 사용하는 것은 한 단계 뒤떨어진 것이 아닌가요?

처음에 이런 생각이 들었습니다. 리눅스와 접촉하게 되었습니다. 그러나 나중에 밝혀진 바에 따르면 그래픽 인터페이스를 사용하면 응용 프로그램 소프트웨어에 더 적은 리소스가 할당됩니다. 고가의 서버에서는 더 낮은 하드웨어 구성으로 동일한 기능을 달성할 수 있는 것이 매우 중요합니다.

다음은 1GB의 메모리가 있는 서버의 경우 784MB의 메모리가 필요한 데이터베이스 소프트웨어를 설치하는 데 512MB가 사용된다고 가정합니다. 기억을 확장하는 것입니다. 그러나 명령줄을 사용하는 경우 시스템에는 64MB의 메모리만 필요할 수 있으며 나머지 메모리는 데이터베이스 소프트웨어에서 사용할 수 있습니다. 명령줄을 사용하면 메모리, CPU, 하드 디스크 등 많은 리소스를 절약할 수 있습니다. 따라서 명령줄을 서버로 사용하는 것은 단점보다는 장점입니다. Shell에는 장점이 너무 많기 때문에 배워야 합니다.

간단히 말해서 관심, 끈기, 방법입니다. 관심이 우선입니다

무엇이든 관심은 귀하가 하는 일의 결과에 큰 영향을 미칩니다. 매우 관심이 있는 일을 하는 것과 관심이 없지만 어떤 이유로든 해야만 하는 일을 하는 것은 결과가 매우 다른 경우가 많습니다. 그 이유는 단순히 관심 있는 일을 즐기려는 마음으로 하면 무의식적으로 더 많은 생각을 하게 되고, 더 집중하게 되고, 버티기가 더 쉬워지기 때문입니다. 관심이 없는 일을 하게 되면 어떤 부담감 때문에 해야만 하는 경우가 많으며, 마음속에 거부감이 어느 정도 느껴지고, 그 결과가 상상될 수도 있습니다.

프로그램 개발도 마찬가지다. 직장에서 우리는 둘 다 프로그래머이지만 종종 서로 다른 두 사람이 있습니다. 어떤 사람은 프로그램 개발에 정말 관심이 많습니다. 하루 동안 코드를 작성하지 않거나 코드를 읽지 않으면 요즘에는 항상 뭔가가 빠져 있다는 느낌을 받을 것입니다. 기술적인 사람들 사이에서는 사람이 위대한 신이 되는 경우가 많습니다. 반면에 다른 유형의 사람들은 작업을 완료하기 위해 코드를 완전히 읽고 작성합니다. 보통 수준의 실력을 가지고 있는 경우가 많습니다. 물론 이는 단지 기술적인 관점에서만 볼 때, 단순히 소득으로만 본다면 첫 번째 유형의 사람이 반드시 두 번째 유형의 사람보다 소득이 더 높은 것은 아닙니다.

따라서 프로그램 개발에 관심이 있는지 먼저 확인해야합니다. 관심이 없다면 당연히 계속할 필요가 없으며 직업 선택을 완전히 바꿀 수 있습니다. 그런 다음 커널 개발, 드라이버 개발, 애플리케이션 개발 등 가장 관심 있는 방향을 선택합니다. 방향을 선택한 후 얕은 것부터 깊은 것까지 단계별로 진행합니다. 인내

오늘날 우리는 인터넷의 급속한 발전과 함께 지식의 급속한 폭발과 갱신의 시대에 살고 있으며, 매일매일 온갖 종류의 새로운 것들이 끝없이 쏟아져 나오고 있습니다. , 온갖 오래된 것들도 사라집니다. 특히 컴퓨터 기술의 경우 프로그래밍 언어부터 개발 도구, 디자인 패턴부터 시스템 프레임워크까지 모든 분야에 새로운 기술이 등장하고 오래된 기술도 제거되고 폐기되고 잊혀지게 됩니다.

이는 프로그래머가 된 날부터 학습을 멈출 수 없으며 다양한 기술의 업그레이드에 직면해야 함을 의미합니다. 따라서 적응하려면 지식 구조를 계속해서 학습하고 업데이트해야 합니다. 다양한 비즈니스 요구 사항이 변경되지 않으면 제거되는 결과에 직면해야 할 수도 있습니다. 나에게 맞는 학습 방법을 찾아보세요

영화를 보는 것처럼, 같은 영화도 재미있다고 느끼는 사람도 있고 지루하다고 느끼는 사람도 있습니다. 사람마다 습관도, 성격도, 사고방식도, 배경도, 기초도 다르고, 학습 방법도 모두 다르며, 자신에게 맞는 방법이 가장 좋습니다.

시작하려면 자신이 이해할 수 있고 자신에게 적합한 책을 찾으세요. 성경이라고 할 수 있는 고전들이 많이 추천되어 있는데, 여러분이 쉽게 이해하고 소화할 수 있는지 시험해 보는 것이 좋습니다.

정말 이해할 수 없다면 단호하게 바꾸고 너무 무리하지 마세요. 처음 시작할 때 안개가 자욱한 느낌에 오랫동안 머물면 자신감이 떨어지는 경우가 많으며 점차 학습을 계속하는 데 관심이 소모됩니다. 많은 성경 수준의 책들은 일정한 기초를 다진 후에 주의 깊게 읽기에 적합한 경우가 많지만 초보자에게는 첫 번째 선택이 아닙니다.

시작한 후에는 점차 더 깊이 들어가게 됩니다. 일반적으로 학습은 실제 프로젝트를 통해 가장 잘 달성됩니다. 프로젝트를 수행하는 과정에서 배운 기술을 통합하는 동시에 자신의 지식 사각지대를 발견하여 제거할 수 있는 경우가 많습니다.

또한, 더 많은 코드를 읽고 더 많은 코드를 작성하세요. 마지막으로, 지금 가지고 있는 모든 머리카락을 소중히 여기십시오.

Linux 시리즈에는 두 가지 배포 버전이 있습니다

1) Red

RHEL, fedora, centos 등을 포함한 Hat 시스템

2).Debian, Ubuntu, Mint 등을 포함한 Debian 시스템

배우고 싶다면, 스스로 배우고 싶다면 Ubuntu를 사용하는 것이 좋습니다. 작업 중이라면 centos를 사용하여 학습하세요

1. Linux를 학습하려면 첫 번째 단계는 미러 설치를 통해 Linux 시스템을 설치하는 것입니다. 이 과정에서는 먼저 시작 프로세스에 대한 일반적인 이해를 가질 수 있습니다. 2. 설치된 시스템에서 현재 폴더의 하위 파일과 하위 디렉터리를 나열하는 등 몇 가지 기본 명령의 작동을 알아봅니다. cd /root를 사용하여 루트 디렉터리로 전환합니다. top 명령은 일부 프로세스의 CPU, 메모리 및 기타 리소스 사용량을 확인할 수 있고, ps 명령은 프로세스의 메모리 및 기타 리소스 사용량도 확인할 수 있으며, pwd는 현재 경로를 확인할 수 있습니다. 등의 명령을 능숙하게 익히십시오.

3. Linux의 몇 가지 기본 명령을 마스터한 후에는 Linux에서 DNS 서버 설치 및 구축, nginx 서버 구축, 등.

4. 고급 이 단계에서는 tcp가 연결을 닫은 후에도 고속 채널을 유지하고 Linux 시스템에서 열린 핸들의 최대 수를 확장하는 등 커널 매개변수 최적화를 시도할 수 있습니다. , 기타 커널 매개변수 최적화 sysctl -a는 현재 로드된 커널 매개변수를 볼 수 있습니다.

5. 문장 구성 방법을 배우면 에세이를 작성할 수 있습니다. 마찬가지로, Linux 명령을 배운 후에는 쉘의 기본 명령문을 배우고, awk sed를 배우고, 쉘을 사용하여 일부 특정 기능이 포함된 스크립트를 구현할 수 있습니다. 예를 들어, cat /proc/cpuinfo와 awk를 사용할 수 있습니다. CPU 관련 정보를 얻는 명령어. 통계 등

리눅스 초보자라면 아래 답변을 읽어보세요~

리눅스를 잘 배우고 싶다면 스스로에게 물어보세요. 먼저 몇 가지 질문을 드리겠습니다.

1. 컴퓨터에 관심이 있나요?

2. Linux를 배우는 이유(Linux가 당신에게 어떤 가치를 가져다 줄 수 있는지, 이 가치 포인트가 당신이 지속하는 데 도움이 될 수 있는지)

3. 일과 생활 후에 매일 무엇을 할 수 있습니까? ? 또는 대학 졸업 후 공부할 수 있는 시간은 얼마나 됩니까?(모든 기술에는 연습 시간 + 숙달 시간이 필요합니다.)

이 세 가지 질문에 대한 대답이 '예'라면 아래를 참조하세요.

p>

저는 기술적인 기초도 전혀 없이 배우기 시작한 초보자이기도 합니다.

튜토리얼을 추천합니다: Rookie Tutorial

/linux/linux-tutorial.html

Linux에 대해 어느 정도 이해할 수 있으려면 인내심과 인내심을 갖고 학습을 지속해야 합니다.

학습 과정에서 계속해서 연습하고 명령을 입력하고 직접 설치하세요. 확인하러 가세요.

上篇: HP 2540p 노트북 키보드는 어떻게 제거합니까? 下篇: Symbian 5230GBA에 게임을 설치하는 방법은 자세할수록 좋습니다! 자세한 내용일수록 더 많이 배포하겠습니다.
관련 내용