¿Cómo puedo aprender bien Linux?
Información de Internet de la experiencia de Baidu sobre cómo aprender bien Linux
Actualmente un foro popular para aprender sistemas Linux
p>
Hablemos sobre cómo aprender el sistema operativo Linux, a partir de la información de la red 51cto, material de referencia/2895551/569329
Si realmente quieres Si aprende bien el sistema Linux, aún necesita estudiar el código fuente del kernel de Linux.
¿Por qué dices eso?
Ya sea que esté usando algunos comandos en Linux o desarrollando la capa de aplicación de Linux, en realidad está usando las funciones del kernel de Linux, pero en realidad no comprende el mecanismo subyacente de Linux. A la larga, no mejorará mucho tus habilidades.
Por ejemplo:
1. Si utiliza el comando Docker en Linux todos los días, ¿sabe cómo Docker logra este aislamiento?
2. Cuando escribes una aplicación Linux, verás que el punto de entrada es la función main(). Entonces, la pregunta es, ¿por qué main()? ¿Por qué no hola(), no joder(), no amor()?
3. Cuando escribes una aplicación Linux, también utilizarás la función write(). Esta función de escritura no está implementada en nuestro código, entonces, ¿quién la implementó? ¿Es una biblioteca C? Es posible. ¿Pero qué pasa si escribo en el disco? ¿Puede la biblioteca c hacerlo?
¡Obviamente no! Todavía necesito la funcionalidad del kernel de Linux.
4. Sabemos que en Linux, diferentes aplicaciones pueden compartir una biblioteca de enlaces dinámicos. ¿Cómo se hace esto? ¿No significa eso que los procesos están aislados? ¿Por qué la biblioteca de enlaces dinámicos no está aislada?
5. Cuando la capa de aplicación de Linux llama a malloc, ¿llama directamente al kernel?
¡Obviamente no! La biblioteca C también tiene administración de memoria. La unidad de administración de memoria en la biblioteca C venderá memoria al por mayor (en páginas) al kernel y luego la almacenará al por menor a la aplicación (con menor granularidad, puede hacerlo). Es tamaño int, tamaño char, etc.)
6. ¿Cuáles son las similitudes y diferencias entre procesos y subprocesos en Linux? No utilices los libros de texto para enseñarte. El conocimiento real se obtiene del código.
....
Hay demasiadas preguntas, ¿no tienes curiosidad?
Si no tienes curiosidad, entonces es obvio que no eres apto para la tecnología, es posible que no llegues muy lejos en este camino de la tecnología y debes cambiar de carrera lo antes posible; , luego comience a estudiar el kernel de Linux a partir de ahora Bar.
Como persona que ha estado desarrollando código en Linux durante más de diez años, no puedo evitar decir algunas palabras
Si quieres aprender cualquier habilidad a fondo, debes esforzarte mucho, especialmente algunas habilidades que son más profesionales, y debes dedicar mucha energía para aprender y practicar durante un largo período de tiempo. Por ejemplo, aprender Linux es una habilidad muy profesional, cómo aprender bien esta habilidad.
¿Cómo aprender eso bien? Atención ideológica
En primer lugar, debes comprender por qué quieres aprender Linux y qué puede aportarte aprender Linux. En otras palabras, debes conocer la importancia de aprender bien Linux para ti mismo. Cuando te des cuenta mentalmente de lo importante que es algo para ti, dedicarás tanta energía a hacerlo.
Concreto en acción
Con la atención ideológica, a continuación se necesitan acciones específicas
(1) Aprender de los conocimientos básicos y desarrollar habilidades básicas al aprender algo nuevo; conocimiento, debe comprender algunos de sus contenidos básicos, conceptos básicos, etc. De esta manera, debe encontrar un libro profesional que presente Linux. Primero, tenga una comprensión general del contenido relevante de Linux, para no confundirse. Más tarde, cuando aprendí Linux, ni siquiera puedo entender algunos de los nombres profesionales más básicos.
(2) Estudie mucho, practique más y piense más; Linux es una tecnología muy práctica. El estudio de la teoría básica es para la mejor realización de las aplicaciones, a su vez, hará la teoría. más práctico. El conocimiento está más consolidado; encuentre una placa de desarrollo con funciones relativamente completas, implemente varias funciones en la placa de desarrollo, continúe practicando y encuentre respuestas a sus preguntas. Estará feliz cuando vea las funciones que diseñó implementadas en la. tablero de desarrollo Este no es el otro.
En definitiva, aprender bien Linux no se consigue de la noche a la mañana. La acumulación de tiempo y conocimientos es fundamental.
Linux lo es. Es un gran concepto. Se recomienda comenzar con uno simple, combinar sus intereses y contenido de trabajo, profundizar en un aspecto determinado y crear una imagen para presentar el aprendizaje y la actualización de Linux.
Si es nuevo en Linux, primero puede instalar una versión de escritorio de la máquina virtual Linux (Ubuntu, CentOS7, etc.) para familiarizarse con los comandos comunes. Una comprensión básica del entorno, puede estudiar el código fuente del kernel y la construcción de servidores de uso común para profundizar su comprensión y aplicación. A continuación, presentaré brevemente el proceso de aprendizaje de Linux. Los amigos interesados pueden probarlo: 01 Instalar Linux
Se recomienda instalar aquí una versión de escritorio de la máquina virtual Linux (Ubuntu, CentOS7 y otras distribuciones son aceptables si es un principiante y no está familiarizado con Linux en absoluto, se sentirá muy incómodo al instalarlo). Versión mini. Muchas funciones y paquetes deben ser adaptados y descargados por usted mismo. Puede usar la primera versión de escritorio, no se sentirá completamente perdido. Una vez que se familiarice con el entorno, podrá usar la versión sin interfaz. , que será muy fácil de operar:
02 Introducción a Linux
Una vez instalada la máquina virtual Linux, hay muchos tutoriales y materiales en línea para comenzar con Linux. Hay muchos videos y documentos de alta calidad sobre MOOC, Tutoriales para novatos y Bilibili. Por supuesto, también puedes encontrar un libro profesional de Linux para aprender y practicar al mismo tiempo. "La cocina privada del hermano Niao". , con una amplia cobertura y explicaciones muy detalladas. Debes estar familiarizado con los comandos y configuraciones básicos comunes. Estos son la base para usar Linux:
03 Linux en profundidad
Después de ti. Si está familiarizado con los conceptos básicos de Linux, es hora de profundizar en Linux. Hay muchas cosas que puede aprender e investigar aquí. Las aplicaciones básicas de Linux, incluida la construcción de servidores, el desarrollo integrado, etc., tienen perspectivas muy brillantes. Por supuesto, también puede estudiar el kernel de Linux, incluida la administración de memoria, la administración de procesos, los sistemas de archivos, los controladores, etc. Se puede decir que es de gran beneficio para una comprensión profunda del sistema operativo:
Después de todo, Linux es solo un sistema operativo, siempre que domines los métodos de aprendizaje correctos, no será difícil. Hoy veremos más de cerca cómo aprender Linux de la manera correcta. Reimpreso de——Operación y mantenimiento de Ma Ge Linux
1. Comience con comandos y comience con lo básico
A menudo, algunos amigos solo quieren crear un sitio web cuando entran en contacto con Linux. , y nunca piensan en aprender sobre Linux Base primero. Esto es bastante difícil. Aunque las aplicaciones de escritorio de Linux se están desarrollando rápidamente, los comandos todavía tienen una gran vitalidad en Linux. Linux es un sistema operativo compuesto por líneas de comando. La esencia radica en la línea de comandos. No importa qué tan lejos se desarrolle la interfaz gráfica, este principio no cambiará. Los comandos de Linux tienen muchas funciones poderosas: desde operaciones simples de disco, acceso a archivos hasta producción. de imágenes multimedia complejas y archivos multimedia en streaming.
Aquí, el autor divide los comandos más importantes y más utilizados en varias partes según sus funciones en el sistema. Al aprender estos comandos básicos, podemos comprender mejor el sistema Linux:
Instalación e inicio de sesión. comandos: iniciar sesión, apagar, detener, reiniciar, montar, desmontar, chsh
Comandos de procesamiento de archivos: file, mkdir, grep, dd, find, mv, ls, diff, cat, ln
p >Comandos relacionados con la administración del sistema: df, top, free, cuota, at, lp, adduser, groupadd kill, crontab, tar, unzip, gunzip, last
Comandos de operación de red: ifconfig, ip, ping, netstat, telnet, ftp, route, rlogin rcp, finger, mail, nslookup
Comandos relacionados con la seguridad del sistema: passwd, su, umask, chgrp, chmod, chown, chattr, sudo, pswho
p>2. Elija un buen libro sobre Linux
En varios foros de Linux, el problema más común que vemos es a menudo que un principiante encuentra un problema durante la instalación o el uso de Linux. Comenzaron preguntas específicas. muchas de las cuales eran preguntas repetitivas, y muchas personas ni siquiera entendían claramente la descripción básica del problema. Esto muestra que muchas personas que son nuevas en Linux no dominan las habilidades básicas. ¿Cómo podemos mejorar rápidamente las habilidades básicas para dominar Linux? La forma más eficaz es estudiar libros de referencia autorizados de Linux, que son muy importantes para los estudiantes. Un libro de referencia con conceptos erróneos puede desviar a un principiante. En la actualidad, hay muchos libros nacionales sobre Linux, pero no muchos de alta calidad. El autor recomienda encarecidamente leer "Conceptos básicos de la cocina privada de Linux del hermano Niao", que ya se encuentra en su tercera edición. Lo mejor para los principiantes es comprar un libro en papel para estudiarlo detenidamente y tomar notas de estudio con atención. Por supuesto, si está acostumbrado a leer libros electrónicos, también puede descargar libros electrónicos en PDF desde aquí.
3. Desarrolla el hábito de trabajar bajo la línea de comando
Debes desarrollar el hábito de trabajar bajo la línea de comando. Debes saber que X-window solo se ejecuta en la línea de comando. modo. Aunque el aprendizaje bajo la línea de comando será lento al principio, una vez que se familiarice con ella, su ruta de aprendizaje futura aumentará exponencialmente. Desde el punto de vista de un administrador de red, la línea de comando es en realidad una regla, que siempre es válida y flexible. Puede operar sistemas remotos a miles de kilómetros de distancia, incluso a través de una línea de módem lenta.
4. Piense en Linux con el pensamiento Unix
Dado que Linux está diseñado con referencia al pensamiento Unix, comprenderlo y dominarlo debe hacerse con el pensamiento Unix, no con el pensamiento Windows. Es innegable que gran parte del éxito de Windows en el mercado reside en la singularidad de las ideas técnicas. Sin embargo, esta innovación se lleva a cabo bajo la premisa de enfrentar a usuarios individuales y enfrentar aplicaciones de servicios a nivel empresarial, pero todavía es algo inadecuada. Durante muchos años, ambos dominan el campo de los sistemas operativos informáticos: Unix en el campo de los servidores y Windows en el campo de los usuarios personales. Se puede observar que las necesidades del usuario determinan el sistema operativo utilizado. No importa cuál sea el motivo, si quieres aprender Linux, primero debes sacar tu pensamiento del "pequeño río" de Windows y ponerlo en el océano de Unix.
5. Aprendizaje de Shell
Los lectores acostumbrados a Windows deben estar muy poco familiarizados con Shell (nombre chino Shell), porque Windows solo tiene un "Shell" (si se puede decir ser Shell) ), es decir, el propio Windows. Una explicación fácil de entender en una oración es que el shell es el intermediario entre los comandos de entrada del usuario y la interpretación de los comandos por parte del sistema.
La forma más intuitiva de decirlo es que un Shell tiene su propio conjunto de comandos. Para dar un ejemplo fácil de entender, el Shel estándar de Linux es Bash Shel; el shell de Solaris es el shell B; el Shell de Linux se expresa en forma de línea de comando. Es posible que los lectores no comprendan que Windows ha "evolucionado" de la línea de comandos a la interfaz gráfica, entonces, ¿no sería un paso atrás si Linux todavía usa la línea de comandos?
Tuve esta idea cuando la primera vez. entró en contacto con Linux. Sin embargo, más tarde se descubrió que si se utiliza una interfaz gráfica, se asignan menos recursos al software de la aplicación. En servidores costosos, es muy importante poder lograr la misma función con una configuración de hardware más baja.
El siguiente es un ejemplo. Un servidor tiene 1 GB de memoria. Suponga que se utilizan 512 MB para procesar la interfaz gráfica. Si desea instalar un software de base de datos que requiere 784 MB de memoria, esta es la única forma. es ampliar la memoria. Pero si usa la línea de comando, es posible que el sistema solo necesite 64 MB de memoria y el software de base de datos puede usar la otra memoria. El uso de la línea de comando puede ahorrar muchos recursos, como memoria, CPU y disco duro. Por tanto, utilizar la línea de comandos como servidor es una ventaja más que una desventaja. Dado que Shell tiene tantas ventajas, debes aprenderlo.
En pocas palabras: interés, perseverancia y método. El interés es lo primero
Para cualquier cosa, el interés afectará en gran medida a los resultados de lo que hagas. El resultado de hacer algo que te interesa mucho y hacer algo que no te interesa pero que tienes que hacer por alguna razón suele ser muy diferente. La razón es simplemente que si haces algo que te interesa con la mentalidad de disfrutarlo, inconscientemente pensarás más en ello, te concentrarás más y será más fácil perseverar. Para las cosas que no te interesan, muchas veces tienes que hacerlas debido a algún tipo de presión. Sentirás más o menos rechazo en tu corazón, e incluso puedes sentirte torturado. Las consecuencias se pueden imaginar.
Lo mismo ocurre con el desarrollo de programas. En el trabajo ambos somos programadores, pero a menudo somos dos personas diferentes. Un tipo de persona está realmente interesada en el desarrollo de programas. Si no escribe código ni lee el código durante un día, será como estar sentado sobre alfileres y agujas. La persona a menudo se convierte en un gran dios entre la gente técnica. El otro tipo de personas, por el contrario, leen y escriben código por completo porque tienen que hacerlo para completar la tarea. Pueden hablar de los problemas cuando los resuelven y nunca echan un vistazo al código, por lo que este tipo de personas. A menudo tienen habilidades mediocres. Por supuesto, esto es sólo desde un punto de vista técnico. Si nos fijamos simplemente en los ingresos, es posible que el primer tipo de persona no tenga necesariamente unos ingresos más altos que el segundo tipo de persona.
Por lo tanto, primero debe determinar si está interesado en el desarrollo del programa. Si no está interesado, entonces, naturalmente, no necesita continuar. Puede cambiar completamente su elección de carrera. Luego elija la dirección que más le interese, como desarrollo del kernel, desarrollo de controladores, desarrollo de aplicaciones, etc. Después de seleccionar la dirección, proceda de superficial a profundo, paso a paso. Perseverancia
Hoy en día, con el rápido desarrollo de Internet, nos encontramos en una era de rápida explosión y actualización del conocimiento. Cada día, surgen todo tipo de cosas nuevas en una corriente interminable y, por supuesto. , también desaparecen todo tipo de cosas viejas. Esto es especialmente cierto para la tecnología informática, desde los lenguajes de programación hasta las herramientas de desarrollo, desde los patrones de diseño hasta los marcos de sistemas, todos los días aparecen nuevas tecnologías en todos los campos y las tecnologías antiguas también serán eliminadas, descartadas y olvidadas.
Esto significa que desde el día en que te conviertes en programador, no puedes dejar de aprender y tienes que afrontar la actualización de diversas tecnologías, por lo que debes seguir aprendiendo y actualizándote en la estructura de conocimientos para adaptarte a ella. cambios en diversas necesidades comerciales; de lo contrario, es posible que tenga que afrontar el resultado de la eliminación. Encuentre un método de aprendizaje que se adapte a sus necesidades
Al igual que ver una película, algunas personas encuentran la misma película emocionante mientras que otras la encuentran aburrida. Los hábitos, la personalidad, el pensamiento, los antecedentes y los fundamentos de cada persona son diferentes, y sus métodos de aprendizaje también son diferentes. No existe un método único para todos y el que más le convenga es el mejor.
Para comenzar, busque un libro que pueda comprender y que sea adecuado para usted. Hay muchos libros clásicos recomendados por otros que pueden llamarse Biblia. También puedes probarlos para ver si puedes entenderlos y digerirlos fácilmente.
Si realmente no puedes entenderlo, cámbialo con decisión y no seas demasiado reacio. Cuando comienzas por primera vez, si te sientes confundido durante mucho tiempo, esto a menudo afectará tu confianza y luego consumirá gradualmente tu interés en continuar aprendiendo. Muchos libros de nivel bíblico suelen ser adecuados para una lectura cuidadosa después de cierta base, pero no son la primera opción para los principiantes.
Después de empezar, poco a poco irás profundizando. En términos generales, el aprendizaje se logra mejor a través de proyectos reales. En el proceso de realización de proyectos, a menudo puede consolidar las habilidades que ha aprendido y, al mismo tiempo, descubrir sus propios puntos ciegos de conocimiento y luego eliminarlos.
Además, lea más código y escriba más código. Finalmente, aprecia cada cabello que tienes ahora.
Hay dos versiones de distribución de la serie Linux
1). Serie Red
, incluidas RHEL, fedora, centos, etc.
2 ).Sistema Debian, incluidos Debian, Ubuntu, Mint, etc.
Si quieres aprender, si quieres aprender por tu cuenta, se recomienda utilizar Ubuntu. Si está trabajando, use centos para aprender
1. Para aprender Linux, el primer paso es instalar el sistema Linux mediante una instalación espejo. En este proceso, primero puede tener una comprensión general del proceso de inicio. de Linux y tenga una idea aproximada de algunos conceptos.
2. En el sistema instalado, aprenda el funcionamiento de algunos comandos básicos, como ls. cd /root para cambiar al directorio raíz, el comando top puede verificar el uso de CPU, memoria y otros recursos de algunos procesos, el comando ps también puede verificar el uso de memoria y otros recursos del proceso, pwd puede verificar la ruta actual, etc., domine estos comandos con habilidad
3. Después de dominar algunos comandos básicos de Linux, puede realizar algunos ejercicios de instalación y construcción de servicios, como instalar y construir un servidor DNS en Linux, construir un servidor nginx, etc.
4. Avanzado En esta etapa, puede intentar optimizar los parámetros del kernel, como mantener el canal de alta velocidad después de que TCP cierre la conexión, expandir el número máximo de identificadores abiertos en el sistema Linux. y otras optimizaciones de parámetros del kernel. sysctl -a puede ver los parámetros del kernel cargados actualmente p>
5. Si aprende a formar oraciones, podrá escribir ensayos. De manera similar, después de haber aprendido los comandos de Linux, puede aprender las declaraciones básicas del shell, aprender awk sed y usar el shell para implementar scripts con algunas funciones específicas. Por ejemplo, puede usar cat /proc/cpuinfo más awk. comando para obtener información relacionada con la CPU, etc.
Si es un novato en Linux, lea la respuesta a continuación ~
Si lo desea. Para aprender bien Linux, primero hazte algunas preguntas.
1. ¿Te interesan las computadoras?
2. Por qué aprender Linux (qué valor puede aportarle y si este punto de valor puede ayudarle a persistir)
3. ¿Qué puede hacer todos los días después del trabajo y la vida? ¿O cuánto tiempo puedes dedicar a estudiar después de la universidad (cualquier habilidad requiere tiempo para practicar + tiempo para dominarla)
Si las respuestas a estas tres preguntas son sí, consulta a continuación:
p>
También soy un novato que comenzó a aprender sin ninguna base técnica
Te recomiendo un tutorial: Tutorial para novatos
/linux/linux-tutorial.html
Debes ser paciente, perseverante y persistir en el aprendizaje, para que puedas tener una cierta comprensión de Linux
Durante el proceso de aprendizaje, debes continuar practicando, escribiendo comandos y instálelo usted mismo, vaya a verificar