Una introducción práctica a Linux para desarrolladores web (transferencia)

Desde la perspectiva del desarrollo web, permítanme hablar sobre los problemas encontrados al usar Linux, principalmente para la operación en sí, porque las instrucciones se pueden encontrar en Internet, y no entraré en el principio, pero trataré de ser práctico.

Cognición básica

Por qué usar Linux

Al principio, usé Linux porque la aplicación que necesitaba solo proporcionaba la versión de Linux en el tutorial, así que la implementé paso a paso, la usé de forma natural y resolví algunos problemas durante el proceso. Durante este proceso, gradualmente tuve algunas preguntas: ¿Por qué usar Linux como servidor en lugar del sistema Windows más familiar que usamos todos los días? ¿Cuál es la diferencia entre los dos en el lado del servidor?

1. Operabilidad

En este sentido, no hay duda de que Windows es mejor, con una interfaz gráfica fácil de usar, y no hay una gran diferencia de funcionamiento entre la versión de Windows Server y la versión para el público en general. La mayoría de las personas aún deberían estar más acostumbradas al estilo consistente de Microsoft.

Linux también tiene una versión de distribución con una interfaz gráfica, pero cuando se usa como servidor, pierde algunas de sus ventajas.El programa shell gráfico ocupará valiosos recursos de hardware del servidor, que generalmente no se consideran.

2. Precio costo

Hablando objetivamente, Linux es de código abierto y gratuito, mientras que Windows Server requiere una autorización paga. De hecho, en la mayoría de los casos, cuando compramos servidores en la nube, esta parte del coste ya está amortizada.

Consejos cuando Tencent Cloud elige Windows Server:

3. Estabilidad

Linux es de código abierto, su código es mantenido y actualizado por los mejores programadores del mundo, y los errores se corrigen rápidamente si se descubren. En cuanto a Windows, dado que no tengo mucha experiencia en el uso de Windows Server, no quiero hacer demasiados comentarios, pero todos tienen algo que decir en la versión para usuarios comunes. Aunque los programadores de Microsoft son muy buenos, Windows aún le enviará con frecuencia correcciones de errores y, ocasionalmente, pantalla azul y fallas.

Linux está completamente abierto a los usuarios, porque asume que los usuarios saben lo que están haciendo. Puede operar todos los archivos en el sistema operativo, pero Linux no será responsable de sus operaciones, al igual que obtenemos permisos de raíz en los teléfonos Android. Ha obtenido los permisos de operación de los archivos subyacentes y puede modificar el sistema de acuerdo con sus propias ideas, pero de esta manera, el proveedor de servicios del teléfono ya no brindará el servicio de garantía, porque ha hecho algo más allá de sus expectativas.

En el lado de Windows, no sé si todos han experimentado la situación de que se les pregunte que no tienen permiso para operar, o que les digan que no tienen permiso cuando quieren establecer permisos. También encontré el problema de que el propio software de Microsoft no tiene permiso para leer archivos y no puede reconocer las aplicaciones instaladas. Todo esto se debe al sistema de permisos más complicado de Windows.

¿Por qué poner el sistema de permisos en la sección de estabilidad, porque la estabilidad del sistema, por supuesto, se verá afectada cuando los usuarios puedan modificar libremente los permisos. En la operación de Linux, podemos configurar fácilmente 777 permisos para archivos (el permiso más alto, que se discutirá más adelante), o abrir todos los puertos del firewall, lo que sin duda aumenta el riesgo de la operación del sistema. Por lo tanto, debemos ser más cautelosos al diseñar esta parte de la operación.

Elige una distribución diferente

Estrictamente hablando, Linux es un kernel en lugar de un sistema operativo. Se convierte en un sistema operativo con la ayuda de componentes relacionados con el sistema operativo proporcionados por diferentes distribuciones. Por lo general, lo llamaremos simplemente un sistema Linux, pero de hecho, debido a la naturaleza del código abierto, habrá una gran brecha entre las diferentes ramas. Esta parte implica mucho conocimiento profesional que no entiendo, y puedes encontrar muchas explicaciones y comparaciones en Internet, por lo que no entraré en detalles aquí, lo que quiero explicar es prestar atención a los requisitos previos al buscar instrucciones y materiales, y distinguir las operaciones de diferentes sistemas.

Aquí hay una imagen del tutorial de novato:

Debido a los problemas de los proveedores de servicios en la nube, CentOS se usa mucho en China y, en general, es una versión muy fácil de usar. Esta versión está recompilada en base al código fuente gratuito de RHEL, ambos pertenecientes a Red Hat. Otros como Debian y Ubuntu también son sistemas muy utilizados, cada distribución es utilizada por la comunidad a la que pertenece, existiendo también una gran cantidad de versiones personalizadas autocompiladas.

Pero debe tenerse en cuenta que CentOS 8 detuvo el mantenimiento el 31 de diciembre de 2021 y Cent OS 7 detendrá el mantenimiento el 30 de junio de 2024. Esto puede convertirse en un peligro oculto y debe tenerse en cuenta al elegir una distribución.

Imagen de introducción al seleccionar un sistema en Tencent Cloud:

Debian es una distribución de Linux estable, conveniente y rápida. Tiene herramientas de administración de paquetes más poderosas que la mayoría de las distribuciones de Linux. Actualmente es uno de los sistemas operativos de servidor preferidos para crear sitios web.

Ubuntu es una de las distribuciones de Linux más populares. Es un software gratuito de código abierto basado en el sistema operativo Debian Linux. Su facilidad de uso y estabilidad son excelentes, y tiene recursos comunitarios muy fuertes y maduros.

CentOS es una popular distribución de Linux de código abierto que es una recopilación del código fuente de RHEL (Red Hat Enterprise Linux). (Nota: la comunidad de CentOS dejará de mantener CentOS 7 el 30 de junio de 2024. Se recomienda que elija la imagen de OpenCloudOS 8 compatible con CentOS 8 en su lugar).

Operación remota

Habiendo dicho tanto, es mejor ingresar al sistema para operar. Al usar el servidor en la nube, aunque el extremo web proporcionará una consola, la operación y las funciones no pueden satisfacer completamente nuestras necesidades diarias de desarrollo. Siempre que sea compatible con el protocolo SSH (puerto predeterminado 22), el software se puede usar para conectarse a Linux de forma remota, y también es compatible con el protocolo Telnet. Sin embargo, debido a que el protocolo Telnet en sí no es seguro, muchas distribuciones han cerrado este método de conexión.

Hay muchas opciones en términos de software, la más simple y directa es PuTTY, también puede usar SecureCRT, yo uso mucho XShell, y puede solicitar una versión gratuita para el hogar/escuela en el sitio web oficial, que puede satisfacer plenamente las necesidades diarias de desarrollo y uso .

El software de carga utiliza XFTP compatible, y otros también pueden elegir WinSCP, etc.

Estructura de directorios

El directorio de archivos predeterminado es el siguiente:

La carpeta señalada por la flecha representa un enlace suave, que puede entenderse como un acceso directo de Windows.En ftp, puede ver un signo de acceso directo en la esquina inferior izquierda del icono.

Algunas carpetas o archivos de uso común se pueden vincular al directorio externo para uso diario.

Por lo general, crearé una carpeta de "aplicación" en el directorio raíz para almacenar nuestra aplicación web.

Si un directorio o nombre de archivo comienza con un punto, significa que el directorio o archivo es un directorio o archivo oculto. lsEs decir, al buscar ( ) por defecto no se muestra el directorio o archivo. Se puede usar ls -apara ver.

instalar software

paquete de instalación

En Windows normalmente hay dos situaciones cuando queremos instalar un nuevo software, una es abrir un archivo exe o un instalador en otros formatos, y luego instalará el archivo en el directorio que le indiquemos, al mismo tiempo también agregará información en el registro o creará algunos archivos de configuración en el disco del sistema, hay muchas situaciones específicas, la otra es descomprimir un paquete comprimido y abrirlo.

Es similar en Linux. Por un lado, puede instalar archivos a través de la herramienta de administración de paquetes, que colocará automáticamente los archivos en un directorio fijo o en el directorio que especifique. Por otro lado, también puede descargar el paquete comprimido, descomprimirlo y luego usarlo de acuerdo con el uso específico del software.

Sin embargo, incluso los paquetes de instalación son diferentes en Linux. Cuando revisamos la información, veremos archivos en varios formatos, como rpm, yum y apt. Todos pueden instalar software, pero hay diferencias.

elemento de comparación rpm mmm dpkg apto
serie Departamento RedHat Departamento RedHat sistema Debian sistema Debian
la diferencia paquete de instalación herramienta de gestión de dependencias paquete de instalación herramienta de gestión de dependencias

Entre ellos, la herramienta de instalación de paquetes es una herramienta de instalación simple. Si un determinado software necesita una biblioteca dependiente, debe instalarlo manualmente antes de continuar. De manera similar a ejecutar algún software en el sistema Windows, primero debe instalar la biblioteca dependiente como .Net Framework XX, y la herramienta de administración de dependencias es similar al front-end npm. Instalará automáticamente la biblioteca dependiente, que es la llamada herramienta de instalación, actualización y desinstalación con un solo clic.

En la tabla anterior, podemos ver que las herramientas de instalación del sistema RedHat y el sistema Debian son diferentes, por lo que hice hincapié en distinguir el sistema de distribución antes de ejecutar el comando. No es factible ejecutar yum en Debian. Aunque podemos instalar yum en Debian, esto obviamente viola la intención original del diseño, porque Debian ya tiene apt. Además, se debe tener en cuenta que incluso si la biblioteca dependiente tiene la misma función, el nombre del paquete de software puede ser diferente, probablemente porque fue desarrollado por diferentes personas. Software con el misma función, como las cinco dependencias requeridas para compilar Nginx:

Ruta de instalación predeterminada del paquete RPM:

ruta de instalación significado
/etc/ Directorio de instalación del archivo de configuración
/usr/bin/ directorio de instalación del comando ejecutable
/usr/lib/ La ubicación de almacenamiento de la biblioteca de funciones utilizada por el programa
/usr/compartir/doc/ Ubicación para guardar el manual del software básico
/usr/compartir/hombre/ Dónde guardar los archivos de ayuda

Variable ambiental

Además, debe tenerse en cuenta que el archivo de instrucciones generalmente no afecta a todo el mundo, y debemos modificar las variables de entorno nosotros mismos. Si ha instalado Java en Windows, puede tener la impresión de que una vez completada la instalación, no puede usar los comandos de Java directamente en cmd, sino que solo puede ejecutarlos en el directorio correspondiente. Sin embargo, al configurar las variables de entorno y asignar los archivos de comando al global, puede usar los comandos de Java en cualquier carpeta. El script de instalación proporcionado por algunas personas lo ayudará a agregar instrucciones globales, y usted mismo debe considerar la operación específica.

He escrito el proceso de instalación de algún software de uso común antes, puede consultar los siguientes dos artículos:

Implemente el proyecto de arranque Vue+Spring con separación de front-end y back-end desde cero en Linux

Registros de procesos y comandos de implementación de front-end de Linux

proceso de demonio

Hay muchos métodos para el proceso del demonio, y todos son fáciles de encontrar. No escribí los pasos específicos, pero es muy importante para el desarrollo web, así que debo mencionarlo.

Cuando desarrollé la aplicación por primera vez, la subí al servidor (se omitieron muchos pasos en el medio) y comencé a usarla bien, pensé que todo estaba bien y apagué la herramienta remota, y luego descubrí que no se podía acceder a la aplicación. Después de enterarme, me di cuenta de que acababa de crear una tarea en primer plano, al igual que la ventana que está abierta actualmente en el sistema de Windows. Cuando cierra la ventana, el programa naturalmente dejará de ejecutarse. Sin embargo, todavía hay muchos programas que no dependen de la ventana para ejecutarse. La aplicación también se vuelve una tarea en segundo plano, hay muchas maneras, puede consultar el siguiente artículo:

Cómo iniciar un demonio de Linux

permisos

Todos decimos que el tema de los permisos es muy importante, pero cuando buscamos la información en Internet, encontramos que muchas personas no son implacables en cambiar el permiso. Aquí tomamos Nginx para crear un registro personalizado como ejemplo. La primera línea de configuración predeterminada de Nginx es la siguiente:

#user  nobody;

Significa que Nginx es iniciado por el usuario none, por lo que la máxima autoridad de Nginx es la autoridad de none.Aunque se comenta aquí, el valor predeterminado es none, que se puede encontrar en el sistema.

El archivo de registro predeterminado de Nginx es /usr/local/nginx/logs/access.logrwxrwxrwx, que se puede ver en la figura a continuación. Se puede decir simplemente que tiene permiso completo. Cualquiera puede leer, escribir o eliminar. Si queremos que Nginx escriba registros personalizados en este directorio, obtendremos un error de no permiso, porque el usuario nadie tiene permisos de lectura y escritura en este directorio  /usr/local/nginx/logs.

Encontré una solución muy común: si nadie tiene permisos de lectura y escritura, ¿qué usuario tiene permisos de lectura y escritura? La raíz debe existir, así que cambié el usuario de Nginx a raíz. Esta idea parece razonable, pero este tipo de operación de permiso no es necesaria. Mirando hacia atrás, si no hay permiso de lectura y escritura para el directorio, es suficiente establecer el permiso de lectura y escritura para el usuario correspondiente en el directorio.

Ahora volvamos a la configuración de permisos. De hecho, se puede adivinar fácilmente que rwx representa lectura (representada por r), escritura (representada por w) y ejecución (representada por x, para archivos o directorios ejecutables). Por qué hay tres, vea la figura a continuación:

En cuanto a por qué se mencionó el permiso 777 al principio, y muchos artículos le permitirán ejecutarlo  chmod 777, aquí:

  • r: significa leer, el número correspondiente es 4;
  • w: significa escribir, el número correspondiente es 2;
  • x: indica ejecución, el número correspondiente es 1

Mediante la combinación de 4, 2, 1, podemos obtener los siguientes permisos

  • 0: sin permiso, use - para indicar
  • 4: Permiso de lectura, representado por w
  • 5: Permisos de lectura y ejecución, representados por rx
  • 6: Permisos de lectura y escritura, representados por rw
  • 7: Permisos de lectura, escritura y ejecución, representados por rwx

Entonces 777 significa la máxima autoridad de la que no se debe abusar.

Aviso

Todavía hay muchos puntos dispersos que deben tenerse en cuenta que no están divididos en capítulos separados.

capitalización

Este punto es fácil de pasar por alto, pero es un dolor de cabeza después de encontrar este problema.El nombre de archivo del sistema de Windows al que estamos acostumbrados es insensible a mayúsculas y minúsculas, es decir, un archivo con un nombre tiene el mismo nombre que un archivo con un nombre.Sin embargo, es sensible a mayúsculas y minúsculas en Linux, a lo que se debe prestar  a.txt atención  A.txt .

Abrir puertos (cortafuegos)

Nuestras aplicaciones web a menudo exponen algunos puertos al acceso externo.Además de abrir los puertos requeridos en el firewall interno del sistema, también se deben abrir los puertos correspondientes en la plataforma del servidor en la nube. Además, no intente ahorrarse problemas y apague el firewall por completo.

Formato de codificación y formato de fin de línea

  • nueva línea de Linux, solo hay un carácter de nueva línea (LF) al final de cada línea  \n, y el final \n de está marcado con
  • Nueva línea de Windows, al final de cada línea hay un retorno de carro (CR)  \r y un avance de línea (LF)  \n y, \r\n dado que

Por lo tanto, puede haber caracteres redundantes cuando los archivos de ambos lados se transfieren entre sí.

sudo

En muchos artículos, habrá sudocomandos que comiencen con , su función es elevar temporalmente la autoridad del comando, para que pueda obtener la máxima autoridad, lo que puede mejorar la tasa de éxito de algunos comandos, pero si ya es usuario root, agregarlo es inútil sudo.

procesamiento de texto

Si quieres editar el texto directamente en Linux, será más complicado de lo que piensas, pero podrás entenderlo después de algunas operaciones más, si las condiciones lo permiten, editaré el archivo en ftp.

Las instrucciones de edición pueden hacer referencia a esto

Comandos de edición de archivos de Linux en detalle

Supongo que te gusta

Origin blog.csdn.net/wangonik_l/article/details/131705926
Recomendado
Clasificación