首页 > 系统相关 >Linux 干货:新手村全攻略,老手也不容错过

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

时间:2024-07-06 11:00:09浏览次数:13  
标签:文件 新手村 查看 sudo 使用 全攻略 命令 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都将是你不可或缺的技术伙伴。

标签:文件,新手村,查看,sudo,使用,全攻略,命令,Linux
From: https://blog.csdn.net/Hellc007/article/details/140210000

相关文章

  • Linux系统apt命令基础使用方法
    目录一.前言二.什么是apt命令三.apt命令基础用法四.修改apt软件包源一.前言apt命令相当强大,这篇文章只是介绍一些基础用法。二.什么是apt命令apt是一个软件包管理工具,主要是在Ubuntu和Debian系统中使用,可以用来对软件进行安装等操作,需要超级管理员(root)权限进行操作......
  • 小红书达人笔记广告投放全攻略
    ......
  • linux下mysql安装、授权、创建用户、连接navicat、连接entity
    1.linux下安装mysql:sudoapt-getupdatesudoapt-getinstallmysql-serversudosystemctlstartmysqlsudomysql_secure_installation#这一步不是必须的,甚至有害的2.授权usemysql;updateusersethost='%'whereuser='root';flushprivileges;grantall......
  • 初学者指南:如何选择嵌入式Linux和单片机(MCU)
    前言在嵌入式系统开发领域,选择合适的平台是项目成功的关键之一。对于初学者来说,如何在嵌入式Linux和单片机(MCU)之间做出选择可能是一项艰巨的任务。本文将详细解释这两种平台的特点、优缺点,以及在不同应用场景中的适用性,帮助初学者做出明智的选择。嵌入式Linux简介概述嵌入......
  • Linux系统的基础知识和常用命令
    1、什么是Linux?是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。......
  • Linux学习前置,红帽Linux系统安装
    前置:下载:VMwareWorkstationPro17,以及所需要使用的Linux版本;  安装VMwareWorkstation;安装:进入VMware后选择新建虚拟机: 选择Linux和redhat9版本; 选择使用网络地址转换 接下来选择推荐的设置就好;选择新建磁盘 虚拟机创建好后在设备一栏里单击CD/DVD(SATA)......
  • Linux基础
    目录Linux所需工具:VMWareWorkStation虚拟机的网络模式网络相关知识物理地址(Mac)地址,IP地址(IPaddress)子网掩码(NATMARSK)IP分配方式(获取IP的方式)DNS(domainnameserver)域名解析服务网关(gateway)Linux操作系统windowsmacoslinuxredhat红帽系统(收费)centos(源代码和红帽......
  • Linux Mint 22,代号为“Wilma”。
    以原文为准:LinuxMint22ReleaseNotes-LinuxMint  以下只是简单翻译,学习记录LinuxMint22是一个长期支持版本,将被支持到2029年。它带有更新的软件,并提供了许多改进和新特性,以使您的桌面体验更加舒适。**LinuxMint22"Wilma"****已知问题**1.**关机超时**  ......
  • Linux remoteproc子系统(基于STM32MP157)概览
    remoteproc(RemoteProcessorFramework)用于管理异构远程处理器设备。这些设备通常在非对称多处理(AsymmetricMultiProcessing,AMP)配置中,可能运行不同的操作系统实例,包括Linux或其他实时操作系统的变体。remoteproc框架允许不同平台或架构控制远程处理器(例如,开启电源、加载固件......
  • Linux 交叉编译(toolchain) ARM aarch64版 libc++.so 库
    前言全局说明libc++源码libc++是LLVM项目提供的一个C++标准库的实现,它是KonaKart等项目的基础。由于libc++是开源>的,因此您可以在其官方仓库中找到源代码。一、说明如果您想要阅读libc++的源代码,可以按照以下步骤进行:访问libc++的官方GitHub仓库:https://github.com/llv......