欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Linux基础

Linux基础

2025/2/2 15:38:41 来源:https://blog.csdn.net/qq_37107430/article/details/145412243  浏览:    关键词:Linux基础

一. Linux 主要目录

  • 介绍:Linux 系统的文件系统遵循类似 UNIX 的目录结构,根目录 (/) 是最顶层的目录,下面包含了不同的子目录,承载着系统和应用程序的文件。

    1. / (根目录)
      这是整个文件系统的起点,所有其他目录和文件都从这里开始。任何文件路径的最初部分都会以 / 开头。
    2. /bin
      存放基础的系统命令和工具,如 lscpmvrm 等,这些是系统启动和修复所需的基本工具。
    3. /etc
      存放系统配置文件,如用户信息、网络配置、系统服务配置等。常见的文件有 /etc/passwd/etc/fstab/etc/network/interfaces 等。
    4. /home
      用户的家目录。每个用户在此目录下有一个子目录,存储该用户的个人文件和配置。
    5. /lib
      存放系统的共享库文件,这些库文件支持大多数二进制可执行文件的运行。比如系统常用的动态链接库文件。
    6. /tmp
      临时文件存放目录。系统和应用程序在运行时会创建临时文件,通常会在系统重启时清空。
    7. /var
      存放变化数据的目录,包括日志文件、缓存文件、邮件、数据库文件等。常见子目录有 /var/log/var/tmp
    8. /usr
      存放系统级的应用程序和程序库。比如用户安装的软件包通常位于 /usr/bin/usr/lib
    9. /opt
      用于存放第三方应用程序或软件包。通常这些应用程序不属于操作系统本身,使用此目录以便区分。
    10. /dev
      存放设备文件,系统中的硬件设备都在此目录下有对应的文件。比如 /dev/sda 表示第一个硬盘,/dev/tty 表示终端。

二. Linux 常用指令

  1. ls
    列出当前目录下的文件和子目录。常用选项有 -l(显示详细信息)、-a(显示隐藏文件)等。
  2. cd
    改变当前工作目录,cd /path/to/directory 进入指定目录,cd .. 返回上一级目录。
  3. pwd
    显示当前工作目录的绝对路径。
  4. cp
    复制文件或目录,cp source destination
  5. mv
    移动或重命名文件或目录,mv source destination
  6. rm
    删除文件或目录,rm file 删除文件,rm -r directory 删除目录。
  7. mkdir
    创建新目录,mkdir directory_name
  8. rmdir
    删除空目录,rmdir directory_name
  9. chmod
    改变文件或目录的权限,chmod 755 file 将文件权限设置为可执行。
  10. ps
    查看当前运行的进程,ps aux 显示详细进程信息。
  11. top
    动态查看系统资源使用情况,如 CPU、内存等。
  12. kill
    终止一个进程,kill pid 通过进程 ID 终止进程。

三.网络配置与管理

1. 显示网络信息
  • 介绍ifconfig 是一个用于配置和显示网络接口的工具。

    • 显示网络接口信息
      通过 ifconfig 命令,你可以查看系统的所有网络接口(如 eth0, lo 等)及其状态、IP 地址、MAC 地址、网络掩码等信息。例如:

      ifconfig
      
    • 显示特定接口信息
      如果你只关心某个特定接口的信息,可以通过指定接口名来显示:

      ifconfig eth0
      
2. IP 修改
  • 介绍:如果你需要修改某个网络接口的 IP 地址,可以使用 ifconfig 命令。假设你要将 eth0 接口的 IP 地址设置为 192.168.6.66,可以使用以下命令:

    sudo ifconfig eth0 192.168.6.66
    
    • PS:这条命令会临时修改 eth0 接口的 IP 地址。需要注意的是,这种修改在系统重启后会丢失,因此如果需要永久修改 IP 地址,通常需要在 /etc/network/interfacesNetworkManager 配置文件中进行修改,具体方式取决于你使用的 Linux 发行版。
3. MAC 地址伪造
  • 介绍:MAC 地址(媒体访问控制地址)是网络接口卡的唯一硬件地址,有时你可能需要临时更改一个接口的 MAC 地址,例如进行安全测试或绕过 MAC 地址限制等。

    1. 关闭网络接口
      首先需要关闭网络接口(例如 eth0)才能修改其 MAC 地址:

      sudo ifconfig eth0 down
      
    2. 修改 MAC 地址
      使用 ifconfig 命令修改 eth0 接口的 MAC 地址。在这个例子中,我们将其改为 00:11:22:33:44:55

      sudo ifconfig eth0 hw ether 00:11:22:33:44:55
      
    3. 重新启动网络接口
      最后,重新启用 eth0 接口,使修改生效:

      sudo ifconfig eth0 up
      

4. 查看当前网络配置

  • 介绍:除了 ifconfig,你还可以使用 ip 命令查看和配置网络信息。

    • 查看所有网络接口的详细信息:

      ip addr show
      
    • 查看特定接口的详细信息:

      ip addr show eth0
      
    • 显示路由表信息:

      ip route show
      
    • 修改 IP 地址:

      sudo ip addr add 192.168.6.66/24 dev eth0
      

5. 网络诊断工具

  • ping:用来检查与远程主机的连接性:

    ping 192.168.6.1
    
  • netstat:查看网络连接和监听端口:

    netstat -tuln
    
  • traceroute:查看数据包到达目的地的路由路径:

    traceroute www.example.com
    

四. 文件指令与权限管理

Linux 中的文件系统有着严格的权限管理模型,通过对文件的权限进行控制,可以保证系统的安全性和稳定性。文件权限管理是操作系统的一项核心功能,Linux 系统通过用户、用户组以及其他用户来控制文件的读、写、执行权限。下面详细介绍 Linux 中的文件权限及其管理方法。

1. 文件类型
  • 介绍:在 Linux 文件系统中,文件类型可以通过 ls -l 命令查看文件的标识符。每个文件或目录的权限信息的第一位表示文件的类型。

    • - :普通文件。表示这是一个普通的文件。
    • d:目录文件。表示这是一个目录。
    • l:软链接文件。表示这是一个符号链接(快捷方式)文件。
    • b:块设备文件。用于表示磁盘等设备。
    • p:管道文件。用于进程间通信的管道文件。
    • c:字符设备文件。表示串口设备或终端设备。
    • s:套接字文件。通常用于进程间通信。
  • 例如:使用 ls -l 查看文件时,输出的第一个字符就是文件的类型

    -rw-r--r-- 1 user group 1234 Jan 1 12:00 file.txt  # 普通文件
    drwxr-xr-x 2 user group 4096 Jan 1 12:00 folder   # 目录
    lrwxrwxrwx 1 user group   15 Jan 1 12:00 link -> /path/to/file  # 软链接
    
2. 文件权限
  • 介绍:Linux 系统的文件权限分为三类:用户(Owner)、用户组(Group)和其他用户(Others)。每个文件或目录都可以设置三种基本权限:读取 (r)、写入 (w) 和执行 (x)。

    • r (read):读取权限,表示能够读取文件的内容。
    • w (write):写入权限,表示能够修改文件的内容。
    • x (execute):执行权限,表示能够执行文件(如脚本或程序)。

每个文件或目录的权限可以通过 chmod 命令进行修改。文件权限通常以如下格式显示:

-rwxr-xr-- 1 user group 1234 Jan 1 12:00 file.txt

其中,rwx 代表文件拥有者的权限,r-x 代表同组用户的权限,r-- 代表其他用户的权限。

3. 权限的数字表示

Linux 中的权限可以通过数字来表示,每个权限都对应一个数字值:

  • r (读权限) = 4
  • w (写权限) = 2
  • x (执行权限) = 1

数字的组合表示文件的权限。例如:

  • rwx = 4 + 2 + 1 = 7
  • rw- = 4 + 2 = 6
  • r-- = 4
  • --- = 0

因此,文件权限的三组数字就表示文件拥有者、同组用户和其他用户的权限。比如,chmod 755 file.txt 会将文件的权限设置为 rwxr-xr-x,即:

  • 文件拥有者可以读、写、执行(7)。
  • 同组用户可以读和执行(5)。
  • 其他用户可以读和执行(5)。
4. 特殊用户权限
  • 介绍:除了常规的读取、写入和执行权限,Linux 系统还提供了三种特殊的权限位,分别是 SUID、SGID 和 Sticky Bit,这些权限用来赋予用户或进程特权操作。

    • SUID (Set User ID) :如果一个文件设置了 SUID 位,则在执行该文件时,进程会临时获取该文件所有者的权限。通常用于某些需要特权的程序,比如 passwd

      • 设置 SUID 位的方法:chmod 4700 filename
      • 例如,chmod 4700 qyiao 会给文件 qyiao 设置 SUID 权限。
    • SGID (Set Group ID) :如果文件设置了 SGID 位,则执行该文件的进程会临时获得文件所属组的权限。对于目录来说,设置 SGID 位会使得目录内新创建的文件继承父目录的用户组。

      • 设置 SGID 位的方法:chmod 2700 filename
      • 例如,chmod 2700 qyiao 会给文件 qyiao 设置 SGID 权限。
    • Sticky Bit:通常用于目录,如果设置了 Sticky Bit,则只有文件的所有者或 root 用户才能删除该目录中的文件,而其他用户无法删除或修改他人的文件。这个权限常用于 /tmp 目录。

      • 设置 Sticky Bit:chmod 1700 directory_name
5. 文件夹权限
  • 介绍:在 Linux 中,文件夹(目录)权限的含义与文件权限略有不同。

    • r (读权限) :如果没有读取权限,就无法使用 ls 等命令查看目录中的文件。即使目录内有文件,用户也无法列出目录内容。
    • w (写权限) :如果没有写权限,就无法在目录中创建、删除文件或子目录。
    • x (执行权限) :如果没有执行权限,就不能进入该目录(使用 cd 命令)。执行权限允许用户访问目录内的文件及子目录。
  • 例如,给目录 mydir 设置权限:

    • rwxr-xr-x:表示拥有者可以查看、创建文件、进入该目录;同组用户可以查看和进入该目录;其他用户也可以查看和进入该目录。
    • rw-r--r--:表示只有目录拥有者可以修改文件或创建文件,其他人只能查看文件但不能修改。
6. 常见文件权限示例
  1. 普通文件

    -rwxr-xr-- 1 user group 1234 Jan 1 12:00 file.txt
    

    解释

    • 文件拥有者可以读、写、执行。
    • 同组用户可以读、执行。
    • 其他用户可以读取。
  2. 目录文件

    drwxr-xr-x 2 user group 4096 Jan 1 12:00 mydir
    

    解释

    • 文件拥有者可以查看、修改、进入目录。
    • 同组用户可以查看、进入目录。
    • 其他用户可以查看、进入目录。
  3. 软链接文件

    lrwxrwxrwx 1 user group   15 Jan 1 12:00 link -> /path/to/file
    

    解释

    • 软链接文件的权限通常是 lrwxrwxrwx,它允许所有用户访问链接指向的目标文件,但不受目标文件权限的影响。
7. 修改文件权限

通过 chmod 命令,你可以修改文件或目录的权限。可以使用符号模式或数字模式:

  • 符号模式:使用 rwx 来表示权限,+ 表示增加权限,- 表示删除权限。例如:

    chmod u+x file.txt  # 给文件拥有者增加执行权限
    chmod g-w file.txt  # 删除用户组的写权限
    chmod o=r file.txt  # 将其他用户的权限设置为只读
    
  • 数字模式:通过数字来设置权限。每个权限位由三位数字表示:

    chmod 755 file.txt  # 设置文件权限为 rwxr-xr-x
    chmod 644 file.txt  # 设置文件权限为 rw-r--r--
    

五. 进程管理

Linux 系统是多任务的,进程管理是非常重要的。进程管理的主要目标是创建、调度、终止进程,确保系统运行平稳。

  1. 查看进程
    使用 pstop 命令查看当前运行的进程。

    • ps aux 列出所有进程。
    • top 显示实时的进程信息。
  2. 启动进程
    可以直接在终端运行命令来启动一个进程,例如 vim 编辑器、firefox 浏览器等。

  3. 终止进程
    使用 kill 命令终止一个进程。可以根据进程 ID (PID) 来杀死进程。例如:

    • kill 1234 终止 PID 为 1234 的进程。
    • kill -9 1234 强制终止进程。
  4. 后台进程与前台进程
    使用 & 将进程放入后台运行,例如 command &。可以使用 jobs 查看后台进程,fg 将后台进程调回前台。

  5. 进程优先级 (nice)

    • 介绍:Linux 中每个进程都有一个 优先级,这决定了它在 CPU 调度中的优先级。进程的优先级通过 nice 值 来表示,nice 值的范围通常是从 -20 到 19。

      • 较小的 nice 值(如 -20)表示该进程拥有较高的优先级,系统会为它分配更多的 CPU 时间。
      • 较大的 nice 值(如 19)表示该进程的优先级较低,系统会优先分配 CPU 时间给其他进程。
    • 查看进程优先级ps -eo pid,comm,nice

      • PS:显示系统中所有进程的 PID、命令和 nice 值
    • nice 命令可以设置进程的优先级。nice -n 10 command 会启动一个优先级为 10 的进程。

  6. 调整进程优先级(renice)

    renice 命令用于调整已经在运行中的进程的 nice 值

    • 例如,修改 PID 为 1234 的进程的 nice 值为 10,sudo renice -n 10 -p 1234

六. 计划任务

1. Cron
  • 介绍cron 是一个基于时间表的任务调度工具,适用于需要定期执行的任务。例如,可以设定每天、每周或每月执行某个命令或脚本。它通过 cron 表crontab)来管理定期任务。

    • 编辑当前用户的 cron 表
      使用 crontab -e 命令可以编辑当前用户的 cron 表,设置定期执行的任务:

      crontab -e
      
    • cron 表的格式:
      每一行定义一个定期执行的任务,格式如下:

      * * * * * /path/to/command
      │ │ │ │ │
      │ │ │ │ └── 星期几 (0 - 7)  (0和7都表示星期天)
      │ │ │ └──── 月 (1 - 12)
      │ │ └────── 日 (1 - 31)
      │ └──────── 小时 (0 - 23)
      └────────── 分钟 (0 - 59)
      

      例如,设置每分钟执行一次命令:

      * * * * * /path/to/command
      

      其他常见的 cron 配置示例:

      • 每天凌晨 2 点执行任务:

        0 2 * * * /path/to/command
        
      • 每周一执行任务:

        0 0 * * 1 /path/to/command
        
      • 每月 1 日执行任务:

        0 0 1 * * /path/to/command
        
2. at
  • 介绍at 命令用于 一次性任务调度,即在指定的时间执行某个任务。与 cron 不同,at 适用于只需要执行一次的任务,比如在特定时间后执行某个命令或脚本。

    • 基本语法:

      at time
      

      例如,at 10:00 会在 10 点钟执行输入的命令。

    • 使用 at 执行任务:

      1. 简单示例:

        at 10:00
        

        然后你可以输入要执行的命令,例如:

        /path/to/command
        
        • PS:输入完成后,按 Ctrl + D 来提交任务。
      2. 指定具体日期和时间: 你可以指定具体的日期和时间来执行任务。例如,想要在明天的 14:30 执行某个命令:

        at 14:30 tomorrow
        

        也可以指定特定的日期:

        at 18:00 2025-02-01
        
      3. 使用相对时间: 你还可以使用相对时间来指定任务的执行时间。比如,想要任务在 5 分钟后执行:

        at now + 5 minutes
        
      4. 在指定时间执行脚本: 你可以通过 at 执行指定的脚本或命令。例如,要在今天的 15:00 执行一个脚本:

        at 15:00
        /path/to/script.sh
        
      5. 指定时间范围(如小时、天、周)at 还支持使用其他时间单位,支持分钟、小时、日、星期等单位:

        • at 2pm tomorrow:明天下午 2 点执行。
        • at 4:30pm + 1 day:在当前时间的基础上加 1 天,下午 4:30 执行任务。
    • 查看任务: 使用 atq 命令查看待执行的任务队列。atq 会列出所有待执行的 at 任务:

      atq
      
    • 删除任务: 如果想要删除一个待执行的任务,可以使用 atrm 命令,后面跟上任务的编号(通过 atq 查看)。例如,删除任务编号为 2 的任务:

      atrm 2
      
    • at 命令执行的任务日志: 默认情况下,at 命令的输出会通过电子邮件发送给当前用户。可以通过查看邮件来获取任务执行的输出。如果没有配置邮件服务,你也可以将输出重定向到文件:

      at 10:00 << EOF
      /path/to/command > /path/to/logfile 2>&1
      EOF
      

七. 环境变量

1. 查看环境变量
  • printenv:显示当前的环境变量。

    printenv
    

    若要查看特定的环境变量,可以指定变量名。例如,要查看 PATH 环境变量:

    printenv PATH
    
  • env:列出当前环境变量。与 printenv 类似,但 env 更多用于临时修改环境变量并启动新进程。

    env
    
  • echo:使用 echo 命令可以显示环境变量的值。例如,显示 HOME 环境变量的值:

    echo $HOME
    
2. 设置环境变量
  • 设置临时环境变量: 例如,添加新的路径到 PATH 环境变量中:

    export PATH=$PATH:/new/path
    

    这会将 /new/path 添加到现有的 PATH 环境变量中,使得在当前会话中,系统能够在该路径下查找可执行文件。

  • 设置新的环境变量: 如果你想创建一个新的环境变量,可以使用:

    export MY_VAR="some_value"
    

    这会将 MY_VAR 设置为 "some_value",并且在当前会话中,所有的子进程都可以访问该环境变量。

  • 查看已设置的环境变量: 使用 echo 来查看刚设置的环境变量。例如,查看 MY_VAR 的值:

    echo $MY_VAR
    
3. 临时与永久环境变量
  • 临时环境变量
    临时环境变量只在当前 shell 会话中有效。关闭终端或退出当前会话后,变量会丢失。
    例如,执行下面的命令来设置一个临时的 MY_VAR 环境变量:

    export MY_VAR="temporary_value"
    

    这时,在当前会话中,可以使用 echo $MY_VAR 查看该环境变量的值,但在终端关闭后该变量会失效。

  • 永久环境变量
    如果你希望环境变量在每次登录时都有效,需要将 export 命令添加到某个启动脚本中。

    • 对于单个用户

      • export 命令添加到用户的 ~/.bashrc 文件(对于 Bash 用户)或者 ~/.bash_profile 文件中:

        export MY_VAR="permanent_value"
        
      • 然后执行以下命令使更改生效:

        source ~/.bashrc
        
    • 对于所有用户

      • export 命令添加到 /etc/profile/etc/bash.bashrc 文件中,这样所有用户在登录时都会加载这个环境变量。

    注意:修改 ~/.bashrc/etc/profile 等文件时,要谨慎操作,避免修改系统重要的配置文件。

4. 常见环境变量
  • PATH:存储系统可执行文件的路径。Shell 会根据 PATH 环境变量的内容去查找可执行文件。

    echo $PATH
    
  • HOME:当前用户的家目录。每个用户都有一个独立的家目录,通常是 /home/username

    echo $HOME
    
  • USER:当前登录的用户名。

    echo $USER
    
  • SHELL:当前用户使用的 shell 类型,通常是 /bin/bash

    echo $SHELL
    
  • PWD:当前工作目录。可以查看当前所在的目录。

    echo $PWD
    
  • LANG:系统的语言设置。比如,默认的语言环境可能是 en_US.UTF-8

    echo $LANG
    
  • EDITOR:指定默认的文本编辑器。例如,vimnano

    echo $EDITOR
    
  • HISTSIZE:定义 shell 历史记录的最大行数,影响你可以查看的历史命令的数量。

    echo $HISTSIZE
    
5. 删除环境变量
  • 格式unset 变量名

  • 示例

    unset MY_VAR
    
6. 临时修改环境变量
  • 介绍:除了通过 export 命令临时设置环境变量,你还可以直接在命令前设置环境变量。这样设置的环境变量仅对该命令有效。

    MY_VAR="temporary_value" /path/to/command
    
    • PS:此命令只会在执行 /path/to/command 时使用 MY_VAR 环境变量,执行完毕后,MY_VAR 会消失。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com