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都将是你不可或缺的技术伙伴。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码伐木匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值