《深入了解 Linux 操作系统》

在计算机领域中,Linux 作为一种强大而重要的操作系统,有着广泛的应用场景,尤其在服务器端占据着举足轻重的地位。

一、Linux 简介

Linux 是一种操作系统,主要应用于服务器端。不同的厂商或个人会对 Linux 的内核进行封装,从而产生了各种不同的 Linux 发行版。简单来说,Linux 发行版由 Linux 内核、系统库和系统软件组成。

     常用的 Linux 发行版

  1. Ubuntu:在界面设计方面表现出色,对小白初学者非常友好。它提供了直观的用户界面和丰富的软件资源,让初学者能够轻松上手并快速熟悉 Linux 系统的操作。
  2. RedHat:由 IBM 公司推出,属于收费版本。RedHat 功能强大,具有高度的稳定性和可靠性,广泛应用于企业级服务器环境中。它提供了全面的技术支持和服务,确保企业的关键业务能够稳定运行。

二、虚拟机介绍

虚拟机是通过虚拟化软件模拟计算机硬件的一种技术,它可以在一台物理计算机上创建多个虚拟的计算机环境,并在这些虚拟环境中安装真实的操作系统。常见的虚拟化软件有 Vmware 和 Virtual Box。

三、环境搭建

  1. 首先安装 Vmware 软件,这是一款功能强大的虚拟化软件,它可以帮助你在一台物理计算机上创建多个虚拟机。

  2. 接着安装或挂载虚拟机到 Vmware 软件中。你可以选择使用已经准备好的虚拟机镜像文件,或者通过网络安装等方式来创建新的虚拟机。

  3. 安装 Linux 系统的远程连接工具 Finalshell。Finalshell 可以让你方便地从本地计算机连接到 Linux 虚拟机,进行远程管理和操作。

  4. 实现 Finalshell 连接 Linux 虚拟机的步骤如下:

    • step1:修饰 Vmware 软件的虚拟机网络编辑器。通过调整虚拟机网络编辑器的设置,可以确保虚拟机与本地计算机之间能够正常通信。
    • step2:修饰虚拟机的 IP 信息。为虚拟机分配一个合适的 IP 地址,以便在网络中能够被正确识别和访问。
    • step3:修改本地 VMNet8 网卡的信息。确保本地计算机的网络设置与虚拟机的网络设置相匹配,以便能够建立稳定的连接。
    • step4:配置 FinalShell,填写虚拟机的信息,实现连接。在 FinalShell 中输入虚拟机的 IP 地址、用户名和密码等信息,即可建立远程连接。
  5. 在环境搭建过程中,你可能会遇到一些问题:

    • 问题 1:昨天还好好的,今天却连不上了。
      • 情况 1:Vmware 服务没开(默认是开机自启动的)。可以通过 win + r 打开运行窗口,输入 services.msc,找到 Vmware 开头的 4 个服务,手动启动即可。
      • 情况 2:主网络服务介入,修改了你的 IP。运行以下 3 行命令可以解决问题:systemctl stop NetworkManager;systemctl disable NetworkManager;systemctl restart network;ifconfig(重新查看 IP)。
    • 问题 2:启动时,提示 BIOS 固件问题。有些有些电脑的主板默认会禁用虚拟化服务,重启电脑,手动进入 BIOS 界面,开启虚拟化服务即可。
    • 问题 3:启动蓝屏或无法启动。可以尝试以下方法:换 Vmware 的版本、重新拷贝 Linux 虚拟机、刷系统。

四、Linux 的目录结构介绍

Linux 的目录结构属于树状结构,具有以下特点:

  1. 有一个根节点,即 “/” 目录。
  2. 除根节点外,每个节点可以有一个或多个子节点。这种结构使得文件系统层次分明,易于管理和查找文件。
  3. 存在叶子节点,代表具体的文件或目录。

常用的目录有:

  1. “/root”:超级用户的家目录。
  2. “/home”:普通用户的家目录所在位置。
  3. “/etc”:存放系统配置文件的目录。
  4. “/usr/bin”:存放基础类命令的目录。
  5. “/usr/sbin”:存放管理类和系统类命令的目录。

五、Linux 的基础命令

Linux 命令格式为 command [-options] [parameter],即命令名 [- 选项] [参数]。以下是一些常见的基础命令:

  1. ls命令:用于查看目录内容。
    • ls:查看当前目录的子级,不包括隐藏内容。
    • ls /:查看根目录下的内容。
    • ls -a:查看当前目录的子级,包括隐藏内容。
    • ls -l:以行的方式查看当前目录的子级,简写形式为ll
    • ls -h:以人性化的方式展示当前目录的内容,但通常无效果。
    • ls -lh:以行的方式,人性化展示当前目录下的内容,简写形式为ll -h
    • ls -al:以行的形式,展示当前目录下所有子级(包括隐藏内容)。
    • ls -alh:以行、人性化的方式展示当前目录下所有子级(包括隐藏内容)。
  2. cd命令:用于切换目录。
    • cd 要切换到的目录的路径,路径写法有 “./”(代表当前路径)、“..”(代表上级路径)、“../..”(代表上上级路径)、“~”(代表回到家目录,root 账号的家为 /root,其它账号的家为 /home/ 账号名),直接写cd也是回家命令,“-” 代表在最近的两个目录之间做切换。
  3. pwd命令:用于查看当前所在的工作目录,即当前在 Linux 的哪个路径下。
  4. mkdir命令:用于创建文件夹,mkdir [-p] 文件夹路径
  5. 文件相关命令:
    • touch:创建文件,可同时创建多个文件,如touch 文件路径 1 文件路径 2...
    • cp:来源于 copy 单词,可以拷贝文件、文件夹,cp [-r] 数据源 目的地,其中 “-r” 表示递归,拷贝文件夹时需要使用。
    • mv:来源于 move 单词,可以剪切文件、文件夹,mv 数据源 目的地,如果是同级路径,则为改名。
    • cat:查看文件内容,一次性查看文件所有内容,如果内容较多,会翻页,只留最后一页,如cat 文件路径
    • more:查看文件内容,可以分页查看,如more 文件路径,操作方式有空格(向下翻一页)、“d”(向下翻半页)、“enter”(向下翻一行)、“b”(向上翻一页)、“q”(退出,也可以按下 ctrl + 字母 C)。
    • head:查看文件起始内容,如head -n 文件路径
    • tail:动态查看文件的最后 100 行内容,一般用于查看日志信息,如tail -100f 文件路径
    • rm:来源于 remove 单词,可以删除文件、文件夹,rm [-r -f] 要删除的文件或者文件夹路径,其中 “-r” 表示递归,“-f” 表示强制。
  6. 查找相关命令:
    • which:查找 Linux 可执行命令的路径,如which ls会输出/usr/bin/ls
    • find:根据文件名或文件大小查找指定文件,如find 要被检索的目录路径 -name '要检索的文件名'可以查找特定文件名的文件,find 要被检索的目录路径 -size +100M可以查找超过 100MB 的文件。
  7. 管道和过滤命令:
    • “|” 管道命令:把前边命令的执行结果,当做后边命令的数据源来处理,类似于流水线。
    • grep:过滤命令,从文件中筛选出符合条件的行,如grep [-n] 关键字 文件路径,其中 “-n” 表示显示行号。
  8. 重定向、输出等命令:
    • echo:可以把内容输出到控制台,类似于 python 的 print (),反引号可以执行 Linux 命令,如echo pwd输出 “pwd” 这个字符串到控制台,echo 'pwd'效果同上,这里是单引号,echo pwd把 pwd 命令的执行结果打印到控制台上。重定向有 “>”(覆盖)和 “>>”(追加),如echo 'hello world' > 1.txt把内容写到 1.txt 文件中,覆盖写入,echo 'hello world' >> 1.txt把内容写到 1.txt 文件中,追加写入。
    • tail:查看文件末尾内容,可以动态追踪,如tail [-n -f] 文件路径
  9. 文件编辑命令:
    • vivim作用相同,区别在于关键字会不会高亮。基础操作如下:
      • vim 文件路径
      • 输入字母 “i”,进入编辑模式。
      • 正常编辑。
      • esc键,退出编辑模式,回到命令模式。
      • 输入:“:wq” 保存退出;“:q!” 强制退出,不保存。
    • 进阶操作:
      • 命令模式相关操作:
        • “i”:当前位置插入。
        • “o”:向下插入一行。
        • “O”:向上插入一行。
        • “dd”:删除当前行。
        • “ndd”:连续向下删除 n 行。
        • “yy”:复制当前行。
        • “nyy”:连续向下复制 n 行。
        • “p”:粘贴。
        • “u”:撤销。
        • “ctrl + r”:反撤销。
        • “shift + z + z”:等同于 “:wq”,保存并退出。
        • “gg”:回到行首。
        • “G”:回到行尾。
        • “/ 内容”:查找内容,找到后会高亮。
      • 编辑模式相关操作:按esc回到命令模式,正常编辑。
      • 底行(底线)模式相关操作:“:q” 退出不保存;“:q!” 强制退出不保存;“:wq” 保存并退出;“:wq!” 强制退出并保存;“:set nu” 设置行号;“:set nonu” 取消行号;“: 行号” 跳转到指定行;“:nohl” 取消高亮。

六、Linux 的进阶操作

  1. 用户和用户组相关:
    • 用户相关:
      • useradd [-g] [用户组] 用户名:没有指定组,则会创建一个和用户名一样的组;指定组了,就不创建。
      • passwd 用户名:设置用户密码。
      • id 用户名:查看用户信息。
      • getent passwd:查询所有用户信息。
      • userdel -r 用户名:删除用户。
      • usermod -aG 用户组 用户名:将用户添加到用户组。
      • su 用户名:转换用户,root 转换到其它用户或其它用户之间转换。
      • sudo Linux 命令:以超级用户权限执行命令,查找/etc/sudoers文件。
    • 用户组相关:
      • groupadd 组名:创建用户组。
      • groupdel 组名:删除用户组。
      • getent group:查询所有组。
    • 细节:如果组是创建用户的时候自动生成的,则删除账号时,组也会同步删除;组内如果有其它账号,则该组无法直接被删除。
  2. 权限相关(重点):
    • 文件类型:“-” 表示文件,“d” 表示目录(文件夹),“l” 表示软连接。
    • 权限:“r” 表示只读(对应数字 4),“w” 表示只写(对应数字 2),“x” 表示可执行(对应数字 1),“-” 表示无权限(对应数字 0)。可以使用chmod [-R] 数字 文件或者目录路径修改权限,其中 “-R” 表示递归,针对于目录有效;使用chown [-R] [用户名][:][用户组] 文件或者目录路径修改属主、属组,其中 “-R” 表示递归。
  3. 常用快捷键:
    • ctr + c:取消执行。
    • ctr + d:强制登出。
    • ctr + L(等价于clear):清屏。
    • ctr + a:光标移动到行首。
    • ctr + e:光标移动到行尾。
    • ctr + ←:光标向前移动一个单词。
    • ctr + →:光标向后移动一个单词。
    • ctr + r:检索。
    • history:查看历史命令。
    • !命令前缀:根据前缀匹配最近的哪个命令。
  4. 安装软件的方式之一:
    • yum [-y] install | remove | search 软件名,细节:RPM 和 YUM 的区别在于 RPM 不能自动解决依赖,YUM 能自动解决依赖。
  5. 服务控制:
    • systemctl [ start | stop | restart | status | enable | disable] 服务名
  6. 网络、ip、进程相关:
    • wget URL 地址curl URL 地址用于下载文件。
    • ping 域名或者 IP用于测试网络连接,可扩展配置 windows 系统和 Linux 系统的域名映射。
    • netstat -anp用于查看网络状态。
    • IP 相关命令:
      • ifconfig:查看本机 IP。
      • hostname:查看主机名,即机器的名字。
      • hostnamectl set-hostname 新的主机名:修改主机名,即刻生效。
      • vim /etc/hostname:修改主机名,重启有效。
      • 配置域名映射:在 windows 系统中,配置路径为 C:\Windows\System32\drivers\etc\hosts;在 Linux 系统中,配置路径为vim /etc/hosts
      • 两个好玩儿的命令:reboot(重启)、shutdown -h now(关机)。
    • ps -ef:查看本机所有进程。
    • ps -ef | grep mysql:查看本机所有进程中与 mysql 相关的进程。
    • kill -9 进程 id:强制杀死某些进程。
  7. 上传和下载:
    • 方式 1:yum -y install lrzsz,其中 “rz” 用于上传,“sz” 用于下载。
    • 方式 2:拖拽。
  8. 环境变量:
    • env:查看 Linux 的环境变量。
    • 变量名=变量值:设置变量,等号两端没有空格。
    • ${变量名}:如果是单独用的,大括号可以省略不写,用于使用变量值。
    • vim /etc/profile,按 “i” 进入编辑模式修改,最后 “:wq” 保存退出,设置环境变量,然后sorce /etc/profile刷新配置文件。
  9. 软硬链接:
    • 软连接:类似于 windows 的快捷方式,格式为ln -s 要被连接的地址 软连接方式
    • 硬链接:相当于动态备份文件中的内容,提高容错率,格式为ln 要被连接的地址 硬连接方式,不写 “-s” 就是硬链接,写了就是软连接。
  10. 压缩和解压缩:
    • tarball(归档方式):
      • 压缩:tar -zcvf 压缩包名.tar.gz 要被压缩的文件
      • 解压缩:tar -zxvf 压缩包名.tar.gz [-C] [要解压到的路径],参数解释:“-z” 表示 gzip 协议,“-c” 表示压缩,“-x” 表示解压,“-v” 表示显示详情(过程),“-f” 表示文件。细节:如果加 “-z” 了,则后缀名一般写 *.tar.gz,不加 “-z”,后缀名一般写 *.tar。
    • zip 协议:
      • 压缩:zip [-r] 压缩包名.zip 要被压缩的文件或者目录,“-r” 表示递归。
      • 解压缩:unzip 压缩包名.zip [-d] 解压到的路径

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

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

相关文章

web基础之RCE

简介:RCE称为远程代码执行漏洞;是互联网的一种安全漏洞;攻击者可以直接向后台服务器远程注入操作系统命令;从而操控后台系统;也是CTF比较常考的一个方面 1、eval执行 (1)分析后端代码&#xf…

[数据集][目标检测]无人机识别检测数据集VOC+YOLO格式6986张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6986 标注数量(xml文件个数):6986 标注数量(txt文件个数):6986 标注…

物流管理系统小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,员工管理,部门管理,物品分类管理,物流公司管理,物流信息管理,配送信息管理 微信端账号功能包括:系统首页&a…

Mybatis 快速入门(maven)

文章目录 需求建表新建了数据库但是navicat界面没有显示 新建maven项目 注意导入依赖 总结 黑马学习笔记 需求 建表 注意:设置字符集 减少出错 drop database mybatis; create database mybatis charset utf8; use mybatis;drop table if exists tb_user;create…

如何使用MyJWT测试你的JWT是否存在安全问题

关于MyJWT MyJWT是一款针对JSON Web Token(JWT)的安全检测工具,该工具适用于渗透测试人员、CTF 玩家或开发人员,可以快速针对JWT执行安全扫描与检测。 功能介绍 1、支持将新的 jwt 复制到剪贴板; 2、用户界面&#xf…

人脸活体检测系统源码分享

人脸活体检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

Electron-vue asar 局部打包优化处理方案——绕开每次npm run build 超级慢的打包问题

背景 因为组员对于 Electron 打包过程存在比较迷糊的状态,且自己也没主动探索 Electron-vue 打包细节,导致每次打包过程都消耗 5-6 分钟的时间,在需要测试生产打包时,极其浪费时间,为此针对 Electron-vue 打包的几个环…

快手可灵AI全球升级1.5模型:引入“运动笔刷”功能 画质大幅提升

9月19日,快手公司宣布其可灵AI模型进行了全球范围内的重磅升级,推出了1.5版本。新版本在多个方面实现了显著提升,包括视频画质、动态效果、美学表现、运动合理性以及语义理解等。 新升级的1.5模型支持在高品质模式下直接输出1080p高清视频&am…

【笔记】2.1 半导体三极管(BJT,Bipolar Junction Transistor)

一、结构和符号 1. 三极管结构 常用的三极管的结构有硅平面管和锗合金管两种类型。各有PNP型和NPN型两种结构。 左图是NPN型硅平面三极管,右图是PNP型锗合金三极管。 从图中可见平面型三极管是先在一块大的金属板上注入杂质使之变成N型,然后再在中间注入杂质使之变成P型,…

Unity携程Coroutine用法

一.携程概述 官方的解释是,携程允许你可以在多个帧中执行任务。在Unity中,携程是一个可以暂停并在后续帧中从暂停处继续执行的方法。 二.携程写法 下面示例使用携程和Update打印前5帧的时间间隔,展示了携程的基础写法 using System.Colle…

[数据集][目标检测]不同颜色的安全帽检测数据集VOC+YOLO格式7574张5类别

重要说明:数据集里面有2/3是增强数据集,请仔细查看图片预览,确认符合要求在下载,分辨率均为640x640 数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件…

使用Rust直接编译单个的Solidity合约

这里写自定义目录标题 使用Rust直接编译单个的Solidity合约前言预备知识准备工作示例 使用Rust直接编译单个的Solidity合约 前言 我们知道,我们平常开发Solidity智能合约时一般使用Hardhat框架,但是如果你是一个Rustacean (这是由 “Rust” 和 “crust…

C++速通LeetCode中等第3题-盛最多水的容器

双指针法:两个指针分别指向左右边界,记录最大面积,由于面积由短板决定,两个指针中较短的短指针向内移动一格,再次记录最大面积, 直到两指针相遇,得出答案。 class Solution { public:int maxAr…

Qt与Udp

(1)绑定端口 (2)广播 用udp实现广播通信_udp广播-CSDN博客 数据的发送是面向整个子网的,任何一台在子网中的计算机都可以接收到相同的数据。 如果一台机器希望向其他N台机器发送信息,这时候可以使用UDP的广播。 --------------- 广播地址&#xff1…

微服务_入门1

文章目录 一、 认识微服务二、 微服务演变2.1、 单体架构2.2、 分布式架构2.3、 微服务2.4、 微服务方案对比 三、 注册中心3.1、 Eureka3.2、 Nacos3.2.1、服务分级存储模型3.2.2、权重配置3.2.3、环境隔离 一、 认识微服务 二、 微服务演变 随着互联网行业的发展,…

【题解】CF1983E

翻译 原题链接 分析 显然,两人得分总和等于所有球的分数之和,所以我们只需要研究一个人即可,这里我们考虑Alice。 分析哪些球会被Alice拿走。我们称前 k k k个球为 1 1 1,其他球为 0 0 0。然后把一个 0 0 0和与前一个 0 0 0之间…

U 盘显示需要格式化才能用?一针见血的修复方法在这里!速看!

在日常使用电脑的过程中,我们常常会遇到各种让人头疼的问题,其中之一就是当插入 U 盘时,突然弹出提示 “U 盘需要格式化才能使用”。这可让很多人慌了神,毕竟 U 盘里可能存储着重要的文件资料。别着急,下面就为大家介绍…

【QT】系统-上

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:QT 目录 👉🏻事件QWidget中常见的事件 👉🏻处理鼠标事件:leaveEvent和enterEvent👉&a…

API接口什么意思?电商API接口有什么作用

API接口简介: 从技术层面上来看,API是一系列函数、协议和工具,它们定义了软件组件如何交互,让开发者无需了解对方内部工作原理就可以使用对方的功能或服务。 事实上,API接口在电商行业中的应用较为广泛。 具体来看&…

Msf之Python分离免杀

Msf之Python分离免杀 ——XyLin. 成果展示: VT查杀率:8/73 (virustotal.com) 火绒和360可以过掉,但Windows Defender点开就寄掉了 提示:我用360测的时候,免杀过了,但360同时也申报了,估计要不了多久就寄…