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 static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-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.mfbz.cn/a/774232.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【瑞吉外卖 | day02】登录功能完善+员工信息的增改查

文章目录 瑞吉外卖 — day021. 完善登录功能1.1 问题分析1.2 实现 2. 新增员工功能2.1 分析2.2 程序执行过程2.3 程序执行中的异常处理 3. 员工信息分页查询3.1 程序执行过程 4. 启用/禁用员工账号4.1 需求分析4.2 程序执行过程4.3 代码修复 5. 编辑员工信息5.1 需求分析5.2 程…

基于DMAIC降低气缸体水套芯磕碰伤率

在制造业的激烈竞争中,产品质量的提升一直是企业追求的目标。气缸体作为汽车发动机的核心部件,其生产过程中的质量控制尤为重要。今天,深圳天行健企业管理咨询公司就来分享一下如何运用DMAIC(定义、测量、分析、改进、控制&#x…

Logstash安装插件失败的问题

Logstash安装插件失败的问题 安装 logstash-output-jdbc 失败 报错为: Unable to download data from https://rubygems.org - Net::OpenTimeout: Failed to open TCP connection to rubygems.org:443 (execution expired) (https://rubygems.org/latest_specs.4.…

[GHCTF 2024 新生赛]UP+——入土为安的第一天

注意:这道题需要脱壳,而且需要改特征值,详细请看 [LitCTF 2024]hello_upx——入土为安的第一天-CSDN博客 脱完壳发现有256这个特殊的数,是rc4类型的题,最后有一个异或 a "9F041CEFA92386B6F56F27B96155FD42&qu…

鸿蒙应用开发之Column容器

这个容器已经使用了很多次,但是还是需要来简单地学习一下,它的主要作用是沿垂直方向布局的容器。 对于布局这种容器,需要看到显示的效果才会比较明白。 先来看下面这个界面: 先在最外面建立一个Column容器,space和方框显示等显示内容都是作为一行进行排列。现在这里设置为…

智能升级,监控无界——全新安全生产生态算法一体机上线

安全生产生态算法一体机 安全生产生态算法一体机是万物纵横推出的一款AI算法软硬一体生态产品,重点面向安全生产领域,采用BM1684强劲AI芯片,内置安全生产场景所需的多种专用AI算法,面向各场景的人员监控、规范作业、异常检测等应…

maven项目启动的时候,自动启动netty

1.写一个监听器,重开一个线程初始化,netty,一定要重开一个线程去启动,要不会阻塞的 public class StartupListener implements ServletContextListener {Overridepublic void contextInitialized(ServletContextEvent sce) {// 在Web应用启动时启动WebSocket服务器new Thread(…

2024 MWC上海:Infobip引领CPaaS新纪元

作为全球通信行业一年一度的顶级盛会,MWC上海2024于近日在上海盛大召开。Infobip以其前瞻性的CPaaS(Communication Platform as a Service,通信平台即服务)解决方案和广泛的合作伙伴网络,成为了众多参展嘉宾瞩目的焦点…

Leetcode.342 4的幂

给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 4 的幂次方需满足:存在整数 x 使得 n 4x 示例 1: 输入:n 16 输出:true示…

QT的编译过程(底层逻辑)

qmake -project 用于从源代码生成项目文件,qmake 用于从项目文件生成 Makefile,而 make 用于根据 Makefile 构建项目。 详细解释: qmake -project 这个命令用于从源代码目录生成一个初始的 Qt 项目文件(.pro 文件)。它…

通过营销本地化解锁全球市场

在一个日益互联的世界里,企业必须接触到全球各地的不同受众。营销本地化是打开这些全球市场的关键。它包括调整营销材料,使其与不同地区的文化和语言细微差别产生共鸣。以下是有效的营销本地化如何推动您的全球扩张,并用实际例子来说明每一点…

在PyTorch中使用TensorBoard

文章目录 在PyTorch中使用TensorBoard1.安装2.TensorBoard使用2.1创建SummaryWriter实例2.2利用add_scalar()记录metrics2.3关闭Writer2.4启动TensorBoard 3.本地连接服务器使用TensorBoard3.1方法一:使用SSH命令进行本地端口转发3.2方法二:启动TensorBo…

昇思25天学习打卡营第12天|ResNet50迁移学习

昇思25天学习打卡营第12天|ResNet50迁移学习 前言ResNet50迁移学习数据准备下载数据集 加载数据集数据集可视化 训练模型构建Resnet50网络固定特征进行训练训练和评估可视化模型预测 个人任务打卡(读者请忽略)个人理解与总结 前言 非常感谢华为昇思大模型…

File类常用构造方法及方法详解

File类是对文件或者目录的一系列操作。如文件和目录的创建、检查、删除、路径获取等。现介绍下常用构造方法和方法。 一、构造方法。 File类提供了多个构造方法来创建File对象,以表示文件或目录。 1. File(String pathname) 通过指定文件路径名创建File对象。 参…

Vatee万腾平台:打造未来智能生态圈

在科技日新月异的今天,我们正步入一个由智能技术驱动的全新时代。在这个时代里,万物互联、数据驱动、智能决策已成为常态,而Vatee万腾平台正以其卓越的技术实力和前瞻性的战略眼光,致力于打造未来的智能生态圈,引领我们…

三、数据库系统(考点篇)

1、三级模式一两级映像 内模式:管理如何存储物理的 数据 ,对数据的存储方式、优化、存放等。 模式:又称为概念模式, 就是我们通常使用的表这个级别 ,根据应用、需求将物理数据划分成一 张张表。 外模式:…

RFID电子锁在物流货运智能锁控管理的创新方案

物流货运锁控的现实挑战 易损性:传统锁具易受物理破坏,无法抵御恶意撬锁。 低效率:依赖人工操作,开锁速度慢,影响作业效率。 高成本:钥匙的制作、管理和丢失替换成本高昂。 监控缺陷:缺乏实…

【对顶堆 优先队列】295. 数据流的中位数

本文涉及知识点 对顶堆 优先队列 LeetCode295. 数据流的中位数 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 …

【项目实践】贪吃蛇

一、游戏效果展示二、博客目标三、使用到的知识四、Win32 API 介绍 4.1 WIn32 API4.2 控制台程序4.3 控制屏幕上的坐标COORD4.4 GetStdHandle4.5 GetConsoleCursorInfo 4.5.1 CONSOLE_CURSOR_INFO 4.6 SetConsoleCursorInfo4.7 SetConsoleCursorPosition4.8 GetAsyncKeyState 五…

跟《经济学人》学英文:2024年07月06日这期 Amazon turns 30

As Amazon turns 30, three factors will define its next decade It will have to deal with trustbusters, catch up on AI and revive its core business 它将不得不应对反垄断者,追赶人工智能并重振其核心业务 trustbuster: 美 [ˈtrəs(t)ˌbəs…