Linux 干货:新手村全攻略,老手也不容错过

以下是一篇详细的关于Linux系统的文章,涵盖了基础概念、常用命令、系统管理、网络配置、安全措施等多个方面,旨在提供全面的Linux知识。希望这些干货能对你有所帮助。


掌握Linux:从基础到进阶

Linux是一种开源的操作系统,广泛应用于服务器、开发环境、嵌入式系统等多种场景。了解和掌握Linux操作系统不仅能提升你的技术能力,还能为你的职业发展带来更多机会。本文将深入探讨Linux系统的各个方面,帮助你从基础开始逐步掌握这一强大的操作系统。

一、Linux基础

1.1 什么是Linux?

Linux是一个类Unix操作系统的开源项目,由Linus Torvalds于1991年首次发布。与其他操作系统不同,Linux的源代码是开放的,任何人都可以自由查看、修改和分发。这种开放性使得Linux在全球范围内得到了广泛应用和支持,形成了多个发行版,如Ubuntu、CentOS、Debian等。

1.2 Linux的特点

  • 开源:Linux的源代码是公开的,任何人都可以自由查看、修改和分发。
  • 多用户:Linux支持多用户登录和操作,每个用户都有自己的权限和文件系统空间。
  • 多任务:Linux支持多任务操作,用户可以同时运行多个程序。
  • 稳定性和安全性:Linux以其高稳定性和安全性著称,广泛应用于服务器领域。
  • 丰富的软件支持:Linux支持多种编程语言和开发工具,适合开发人员使用。

二、Linux系统管理

2.1 文件系统

Linux的文件系统采用树状结构,根目录为“/”,所有文件和目录都在该树结构中。常见的目录包括:

  • /bin:存放系统二进制可执行文件,如常用命令ls、cp等。
  • /etc:存放系统配置文件。
  • /home:存放用户主目录。
  • /var:存放系统运行时需要改变的数据文件,如日志文件。
  • /usr:存放用户程序和数据。

2.2 文件操作

2.2.1 文件和目录的创建与删除
  • 创建文件:使用touch命令创建空文件。

    touch filename
  • 删除文件:使用rm命令删除文件。

    rm filename
  • 创建目录:使用mkdir命令创建目录。

    mkdir dirname
  • 删除目录:使用rmdir命令删除空目录,使用rm -r命令删除非空目录。

    rmdir dirname rm -r dirname
2.2.2 文件和目录的复制与移动
  • 复制文件:使用cp命令复制文件。

    cp sourcefile destfile
  • 复制目录:使用cp -r命令递归复制目录。

    cp -r sourcedir destdir
  • 移动文件或目录:使用mv命令移动或重命名文件或目录。

    mv sourcefile destfile mv sourcedir destdir

2.2.3 文件权限管理

Linux的文件权限分为三类:所有者、所属组和其他用户。每类用户可以有读(r)、写(w)和执行(x)权限。

  • 查看文件权限:使用ls -l命令查看文件权限。

    ls -l filename
  • 修改文件权限:使用chmod命令修改文件权限。

    chmod 755 filename

    其中,755表示所有者有读写执行权限,所属组和其他用户有读和执行权限。

  • 修改文件所有者:使用chown命令修改文件所有者。

    chown user:group filename

2.3 用户管理

2.3.1 添加和删除用户
  • 添加用户:使用useradd命令添加用户,使用passwd命令设置用户密码。

    sudo useradd username sudo passwd username
  • 删除用户:使用userdel命令删除用户。

    sudo userdel username

2.3.2 修改用户信息
  • 修改用户信息:使用usermod命令修改用户信息。

    sudo usermod -l newusername oldusername
  • 修改用户主目录

    sudo usermod -d /new/home/dir username

2.4 软件包管理

不同的Linux发行版有不同的软件包管理工具。常见的有:

  • Debian系(如Ubuntu):使用aptapt-get工具。

    sudo apt update
    sudo apt install packagename
    sudo apt remove packagename
    
  • RedHat系(如CentOS):使用yumdnf工具。

    sudo yum update
    sudo yum install packagename
    sudo yum remove packagename
    

2.5 进程管理

2.5.1 查看进程
  • 查看当前运行的进程:使用ps命令查看当前运行的进程。

    ps aux
  • 实时查看系统进程:使用tophtop命令实时查看系统进程。

    top htop

2.5.2 管理进程
  • 杀死进程:使用kill命令杀死进程。

    kill PID

    其中,PID是进程ID。

  • 强制杀死进程:使用kill -9命令强制杀死进程。

    kill -9 PID
  • 后台运行进程:使用&符号将进程放入后台运行。

    command &
  • 查看后台进程:使用jobs命令查看后台进程。

    jobs
  • 将后台进程转为前台:使用fg命令将后台进程转为前台。

    fg %jobnumber

三、Linux网络配置

3.1 网络基本概念

在Linux系统中,网络配置涉及IP地址、子网掩码、网关和DNS等。了解这些基本概念有助于理解网络配置的原理。

  • IP地址:用于标识网络中的设备。
  • 子网掩码:用于划分网络的子网。
  • 网关:用于连接不同网络的路由器。
  • DNS:用于将域名解析为IP地址的服务。

3.2 查看网络配置

  • 查看网络接口:使用ip aifconfig命令查看网络接口配置。

    ip a
    ifconfig
    
  • 查看路由表:使用ip routeroute命令查看路由表。

    ip route
    route -n
    

3.3 配置网络

3.3.1 临时配置
  • 配置IP地址:使用ip addr命令临时配置IP地址。

    sudo ip addr add 192.168.1.100/24 dev eth0
    
  • 配置默认网关:使用ip route命令配置默认网关。

    sudo ip route add default via 192.168.1.1

3.3.2 永久配置

在Debian系系统中,可以通过修改/etc/network/interfaces文件进行永久配置:

auto eth0
iface eth0 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1dns-nameservers 8.8.8.8 8.8.4.4

在RedHat系系统中,可以通过修改/etc/sysconfig/network-scripts/ifcfg-eth0文件进行永久配置:

DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4

3.4 网络工具

  • ping:用于测试网络连通性。

    ping www.baidu.com
  • traceroute:用于追踪数据包的路由路径。

    traceroute www.baidu.com
  • netstat:用于查看网络连接、路由表和接口统计信息。

    netstat -an
  • ss:用于查看网络连接。

    ss -tuln

四、Linux安全

4.1 用户权限管理

  • 最低权限原则:用户只应拥有执行其职责所需的最小权限。
  • 分配权限:使用sudo命令分配临时管理员权限,避免直接使用root用户。

4.2 防火墙配置

Linux提供多种防火墙工具,如iptablesfirewalld

4.2.1 使用iptables
  • 允许端口

    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    
  • 拒绝所有其他连接

    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    

4.2.2 使用firewalld
  • 安装和启动firewalld

    sudo yum install firewalld
    sudo systemctl start firewalld
    sudo systemctl enable firewalld
    
  • 允许端口

    sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
    sudo firewall-cmd --reload
    

4.3 安全更新

保持系统和软件的最新版本是确保系统安全的关键步骤。

  • Debian系:使用apt工具进行更新。

    sudo apt update
    sudo apt upgrade
    
  • RedHat系:使用yumdnf工具进行更新。

    sudo yum update

4.4 SSH配置

SSH是远程管理Linux系统的重要工具。

  • 禁用root登录:编辑/etc/ssh/sshd_config文件,设置PermitRootLogin no

    sudo nano /etc/ssh/sshd_config
    PermitRootLogin no
    
  • 修改默认端口:编辑/etc/ssh/sshd_config文件,修改Port参数。

    Port 2222
    
  • 重启SSH服务

    sudo systemctl restart sshd
    

4.5 日志管理

  • 查看日志:系统日志通常存储在/var/log目录下,可以使用lesscattail命令查看。

    tail -f /var/log/syslog
    tail -f /var/log/messages
    
  • 日志轮转:使用logrotate工具管理日志文件,避免日志文件过大。

    配置文件路径:/etc/logrotate.conf/etc/logrotate.d/

五、进阶主题

5.1 Shell脚本

Shell脚本是Linux系统管理中强大的工具,可以用于自动化任务和批量处理。

  • 编写简单的Shell脚本

    #!/bin/bash
    echo "Hello, World!"
    
  • 赋予脚本执行权限

    chmod +x script.sh
  • 运行脚本

    ./script.sh

5.2 系统监控

  • 监控工具:Linux提供了多种系统监控工具,如tophtopvmstatiostat等。

    top htop vmstat iostat
  • 日志监控:可以使用tail命令实时监控日志文件。

    tail -f /var/log/syslog

5.3 高级网络配置

  • 配置静态路由

    sudo ip route add 192.168.2.0/24 via 192.168.1.1
  • 配置防火墙规则

    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -P INPUT DROP
    
  • 设置NAT

    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
    

5.4 文件系统管理

  • 挂载和卸载文件系统

    sudo mount /dev/sdb1 /mnt
    sudo umount /mnt
    
  • 检查和修复文件系统

    sudo fsck /dev/sdb1
  • 创建和管理LVM

    sudo pvcreate /dev/sdb1
    sudo vgcreate myvg /dev/sdb1
    sudo lvcreate -L 10G -n mylv myvg
    sudo mkfs.ext4 /dev/myvg/mylv
    sudo mount /dev/myvg/mylv /mnt
    

5.5 备份和恢复

  • 使用tar命令进行备份

    tar -cvzf backup.tar.gz /path/to/directory
  • 使用rsync命令进行同步

    rsync -avz /source/directory /destination/directory
  • 使用dd命令进行磁盘克隆

    sudo dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync

总结

本文从基础概念入手,详细介绍了Linux系统的文件系统、用户管理、软件包管理、进程管理、网络配置、安全措施等多个方面的内容。通过这些知识和实践操作,你可以逐步掌握Linux操作系统,为进一步深入学习和使用打下坚实基础。无论是作为开发环境、服务器还是嵌入式系统,Linux都将是你不可或缺的技术伙伴。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/866654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Harbor:打造docker私有镜像库

part 1. Harbor概览 harbor:我们的使命是成为 Kubernetes 值得信赖的云原生存储库 为什么要使用Harbor? Harbor是VMware公司开源的企业级容器镜像仓库管理平台,它提供了比基本Docker Registry更丰富的功能,特别适合企业环境使用。提供了镜像存储、签名…

【TS】TypeScript 联合类型详解:解锁更灵活的类型系统

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 TypeScript 联合类型详解:解锁更灵活的类型系统一、联合类型的定义二…

【深海王国】小学生都能玩的语音模块?ASRPRO打造你的第一个智能语音助手(6)

Hi~ (o^^o)♪, 各位深海王国的同志们,早上下午晚上凌晨好呀~ 辛勤工作的你今天也辛苦啦(/≧ω) 今天大都督继续为大家带来系列——小学生都能玩的语音模块,帮你一周内快速学会语音模块的使用方式,打造一个可用于智能家居、物联网领域的语音助…

基于SpringBoot的就业信息管理系统

你好,我是计算机学姐码农小野!如果你对就业信息管理系统感兴趣或有相关需求,欢迎私信联系我。 开发语言: Java 数据库: MySQL 技术: SpringBootMySql 工具: MyEclipse、Tomcat 系统展示…

电脑游戏录屏,3款实用软件推荐给你

在电竞游戏热潮席卷全球的今天,电脑游戏录屏早已不再是简单的画面捕捉,它成为了记录电竞风采、打造专属游戏记忆的重要手段。通过游戏录屏,我们可以定格游戏中的精彩瞬间,重温那些令人热血沸腾的电竞时刻。那么,在进行…

Prometheus + Grafana 监控系统搭建使用指南-mysqld_exporter 安装与配置

使用mysqld_exporter 实现Prometheus 监控Mysql 系列文章目录 Prometheus 的安装部署Grafana的安装部署Linux服务器接入Prometheus监控-Node Exporter 安装指南Prometheus 接入SpringBoot微服务监控Mysql 接入 Prometheus RocketMQ 接入Prometheus 监控ElasticSearch 接入 Pr…

Node.js实现一个文章生成器

前言 本文将从零开始,讲解如何使用Node.js来实现一个文章生成器 node里面有很多优秀的模块,现在我们就借助node的fs模块来操控文本,来实现我们想要的效果 效果展示 体验 fs 首先我们先创建一个json文件 里面放一些内容 接下来我们书写代码…

抖音本地生活服务商入驻要求中暗含哪些信息?入局要点都在里面了!

随着抖音外卖的正式开放,许多创业者对于做抖音本地生活服务商的意向愈发强烈,抖音本地生活服务商入驻要求及相关话题更是在多个创业者群内被翻来覆去地讨论,且多次刷屏。 而就抖音目前在本地生活市场的布局来看,其主要的重心还是…

Renderless 思想正在影响前端开发

本文由前端小伙伴方长_beezen 原创。欢迎大家踊跃投稿。 原文链接:https://juejin.cn/post/7385752495535472655 前言 截止到 2024 年,跨端应用开发所需要考虑的兼容性,已经涵盖了框架、平台和设备类型等多个方面,例如&#xff1…

开发在线教育项目-在线课程视频网站开发

用了哪些技术 后端技术 springboot3 security权限框架(后台)mybatisPlus框架jwt生成tokeneasyexcel导入导出递归查询拦截器校验tokenredis的zset做排行榜功能redis的list做最新课程的功能redis做为缓存技术redis作为计数器,实时记录浏览量&…

搞定Loki+Promtail轻量级日志系统

Promtail 是 Loki 的日志收集客户端,它的主要功能是从各种来源收集日志并将其发送到 Loki 进行存储和查询。Promtail 的设计使其能够高效地收集和处理日志数据。 promtail-config.yaml(配置): Promtail 读取配置文件(例如 promta…

初阶数据结构二叉树练习系列(1)

这个系列的文章将带大家一起刷题,并且总结思路 温馨提示:本篇文章里的练习题仅适合刚学完二叉树的小白使用 相同的树 思路 情况分析:第一种情况:两棵树都为空 → 返回true 第二种情况&am…

C++ 引用——引用的基本语法

引用的基本使用 作用:给变量起别名 语法:数据类型 &别名 原名 示例: 运行结果:

如何利用Kimi解读Kimi的KVCache技术细节

最近Kimi公布了一篇Mooncake: Kimis KVCache-centric Architecture for LLM Serving的文章,详细介绍了Kimi背后的推理架构,因此笔者想到用Kimi解读Kimi,梳理相关技术要点如下,供大家参考: 文章 "Mooncake: A KVCa…

JVM原理(三):JVM对象回收判定机制与回收算法

如何判断一个对象是否存活(即是否还分配在堆中),那看他是否还在用。 1. 引用计数算法 这是一种判断方式,相应的方法就是:如果一个对象被引用,那将被引用的对象中的一个计数器加一,引用失效就减一。在任何时刻引用计数…

STM32自己从零开始实操07:电机电路原理图

一、LC滤波电路 其实以下的滤波都可以叫低通滤波器。 1.1倒 “L” 型 LC 滤波电路 1.1.1定性分析 1.1.2仿真实验 电感:通低频阻高频的。仿真中高频信号通过电感,因为电感会阻止电流发生变化,故说阻止高频信号 电容:隔直通交。…

免费分享:中国三级及以上河流(附下载方法)

河流分级法的分级方法是从源头最小河流开始,称为一级河流;两条一级河流汇合成二级河流;以此类推,三级河流等等;最后是干流。本文将介绍中国三级及以上河流数据。 数据简介 1:100万中国三级及以上河流矢量数据是涵盖了全国范围内三级及以上级别河流的详细地理信息和空间分布。这…

App Store迎来了重磅更新,ASO冲榜优化或将成为不可或缺的一部分

近日App Store搜索页面迎来了重磅更新,苹果应用商店中搜索页面原有的热搜关键词消失了取而代之的是直接将排行榜放在了搜索顶部,分别是APP排行和游戏排行两部分。如下图: 很多人应该都是参考排行榜来下载APP的,这次更新之后用户在…

基于工业互联网的智能制造:未来制造业的新引擎

随着科技的飞速发展,工业互联网通过提供强大的数据支撑和通信基础,成为智能制造的重要基石。智能制造的引入,不仅显著提升了制造业的生产效率、降低了成本,而且提高了产品质量,满足了市场的多样化、个性化需求。 智能制…

解决问题:使用PageHelper.startPage和PageInfo实现分页,但是得到的total和传入的页面大小pageSize一样

我们需要的是total得到的数值是数据库里所有数据的条数。 1、包别引错 <!--PageHelper开始--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.6</…