Linux入门

什么是Linux?

Linux是一种免费、开源的操作系统内核
最初由芬兰计算机科学家 李纳斯·托瓦兹 (Linus Torvalds)在1991年创建
Linux内核最初是为个人电脑设计的,如今已普及到服务器、超级计算机、移动设备等各种硬件平台
由于Linux是自由软件(自由软件定义是指用户有权利运行、复制、分发、研究、修改和改进软件)
许多人和组织都可以贡献自己的代码
因此Linux成为了一个强大而活跃的社区

image.png

Linux内核既可以作为独立操作系统使用,也可以作为其他操作系统的内核
Linux系统通常使用GNU软件(GNU是GNU’s Not Unix的缩写,是一个开源的自由软件操作系统)
而Linux系统加上GNU软件,就形成了完整的操作系统,也成为了GNU/Linux系统

Linux系统以其稳定性、安全性、性能和灵活性等特点而著称
被广泛应用于企业级服务器,科学研究和教育等领域
此外,基于Linux内核的开源操作系统(如Ubuntu、Debian、Fedora等)
在桌面操作系统市场也有一定的影响力

Linux操作系统的组成

  1. 内核(Kernel):Linux操作系统的核心部分,提供了操作系统的基本功能,如进程管理、内存管理、设备驱动程序等,它是操作系统与硬件之间的接口
  2. Shell(命令行解释器):Linux操作系统提供了多种Shell,最常用的是Bash(Bourne Again Shell),Shell提供了用户与操作系统之间的交互接口,用户可以通过Shell执行命令、脚本和程序
  3. 文件系统(File System):Linux操作系统采用一种层次化的文件系统结构,并支持多种文件系统格式,如Ext4、XFS、Btrfs等,文件系统用于组织和管理文件和目录。
  4. 库(Libraries):Linux操作系统提供了各种库文件,包括动态链接库和静态链接库,用于为应用程序提供常用的函数和工具
  5. 工具和命令(Utilities and Commands):Linux操作系统提供了丰富的命令行工具和实用程序,如文件操作命令、网络工具、文本处理工具等,这些工具和命令能够完成各种系统管理和日常操作任务
  6. 图形界面(Graphical User Interface,GUI):Linux操作系统也提供了多种图形用户界面,如GNOME、KDE、Xfce等,这些界面使用户能够通过图形方式操作和管理系统
  7. 应用软件(Applications):Linux操作系统支持安装和运行各种应用软件,包括办公套件、图形处理软件、多媒体工具、开发环境等,用户可以根据需求选择和安装适合自己的应用程序

Linux内核版本

世界上各个厂家都会基于Linux的内核版本做出属于自己公司的Linux操作系统
比如RedHat、Ubuntu、Debian、CentOS等等
由李纳斯·托瓦兹进行内核更新并上传至kernel.org,为各个公司提供更新服务
但往往在使用过程中一般都会使用最稳定,以及最符合当今潮流的版本
但由于Linux内核是开源的,各个公司也会根据自己的需求来进行内核功能的增加,修改与删减


访问命令行

一般情况下,我们可以通过在电脑上安装虚拟机、更改电脑操作系统或者使用服务器使用Linux操作系统
对于不同的方式,我们有以下的推荐:
使用桌面版Linux,一般推荐使用带有UI界面的Linux操作系统,方便操作
使用服务器版Linux,一般推荐使用命令行的Linux操作系统,方便批量化操作
但在学习的过程中,我们更多的是使用命令行的形式来加深对Linux的理解
在此之前,我们先了解一下一个很重要的工具————Shell

Shell

Shell 是一种命令行解释器和编程语言
它是在计算机操作系统中提供给用户与操作系统内核进行交互的接口
通过 Shell,用户可以输入命令和脚本,并交由操作系统解释和执行

  • Shell 可以理解和执行用户输入的命令,并且可以根据用户和程序的需要执行各种操作
  • 如文件管理、进程控制、环境变量管理等
  • Shell 还支持条件语句、循环结构和函数,使用户能够编写脚本来自动化任务和批处理操作
    下面我们使用VMWare WorkStation Pro虚拟机的RHEL9.0版本来举例子
  1. 首先我们打开虚拟机,并登陆账号,进入到主页面菜单
    image.png
  2. 随后我们点击最下方的终端来打开命令行,并如图所示
    image.png
    此时所显示的黑色框即为命令行,也就是shell,但这只是虚拟shell
    若想打开本地shell,我们需要进行以下操作
  3. 在主页面组合键CTRL+ALT+F1~F6(每个版本的虚拟机都有不同)
    image.png
    现在所展示的便是本地Shell
    一般而言,在一个Linux系统上装有三种shell:bash、sh和tmux
    他们三种大差不差,也只有一些命令集上的不同
    我们可以通过在命令行上输入这样的指令来查看存在的shell
  • cat /etc/shells
    image.png

Shell命令格式

image.png
我们在终端中可以看到一串由 [ ] 所框起来的代码,这叫做 前导符
前导符的作用一般是显性的告诉用户以下的信息:

  1. kiosk 当前操作终端的用户名
  2. foundation0 当前的主机名
  3. ~ 当前用户的工作目录
  4. $ 代表普通用户权限

对于上面的前导符,我们也可以使用以下的命令来查看
[kiosk@foundation0 ~]$ id //查看当前用户信息
[kiosk@foundation0 ~]$ hostname //查看当前主机信息
[kiosk@foundation0 ~]$ pwd //查看当前用户的工作目录

[kiosk@foundation0 ~]$ id          //查看当前用户信息  
[kiosk@foundation0 ~]$ hostname    //查看当前主机信息  
[kiosk@foundation0 ~]$ pwd         //查看当前用户的工作目录  

既然有普通用户,也有超级用户
我们可以通过使用su -输入木马把操作用户转换为root(超级用户)
image.png
可以看到,相比于上面,这里的权限符变为了#
而前导符后的则是命令的输入区域
正常来说,命令的格式一般是:命令 + 选项 + 参数
image.png
下面我们举几个例子
image.png
可以看到上面我们使用了 ls -als --all 的命令
这个命令的作用是显示当前目录下的所有文件
而对于格式而言,ls是命令,-a和–all是参数
当选项为-时,代表缩写,当选项为–时,代表全写
对于上面两个命令的作用是相同的
image.png
对于上图而言,我们在 ls -a 后面添加了 /etc
代表着输出etc文件路径下的所有文件
/etc则代表参数
但由于我们是在终端shell上进行操作,所显示出来的内容有时候让人眼花缭乱
当有需要使用之前使用过的命令时,我们可以通过键盘上下键来寻找
但当输入过的命令非常多时,这并不是一个非常好的方法
所以我们可以使用 history 命令来查看我们使用过的命令
并且可以通过 !+ 行号 来重新调用自己想要使用的历史命令

常见快捷键

快捷键存在的意义就是为了我们在shell中输入命令时提高我们的操作效率
下面介绍几个常见的快捷键
image.png
这几个快捷键是针对终端窗口使用的
下面介绍在终端shell内使用的快捷键
image.png

从命令行管理文件

我们在windows系统中一般会使用UI界面来管理各种各样的文件,方便操作
在Linux系统中同样可以,但是绝大部分情况下,我们需要通过对终端shell进行操作
所以下面我们来了解一下如何通过命令行的指令来管理Linux上的文件
在此之前,我们先来了解一下Linux的目录结构

Linux系统目录结构

由于每个不同的Linux发行版的差异,他们的系统根目录结构都会有所不同
这里只说常规的目录结构
Linux系统的文件目录结构是一种层次化的目录结构
有以下组成

  1. /:根目录,系统中所有文件和目录的起始点
  2. /bin:二进制可执行文件的存放目录,包含了系统启动和运行所需的基本命令,如ls、cp等
  3. /boot:系统启动时所需的文件,包括内核和启动加载程序
  4. /dev:设备文件目录,用于存放设备文件,如硬件设备、终端和打印机等
  5. /etc:系统配置文件存放的目录,包括系统和服务的配置文件
  6. /home:普通用户的家目录,每个用户在这个目录下有自己的文件空间
  7. /lib和/lib64:系统和应用程序所需的共享库文件
  8. /media:可移动媒体设备(如光盘、USB驱动器等)挂载的目录
  9. /mnt:临时挂载目录,用于挂载临时文件系统
  10. /opt:可选的应用程序软件包目录
  11. /proc:虚拟文件系统,包含系统和进程的相关信息
  12. /root:超级用户(root)的家目录
  13. /sbin:超级用户使用的系统管理命令目录
  14. /srv:服务相关的数据文件存放目录
  15. /tmp:临时文件目录,用于存放临时文件
  16. /usr:用户自己安装的应用程序和文件的目录,类似于Windows的Program Files
  17. /var:包含经常变化的文件,如日志文件、数据库文件等

路径的表示

对于路径而言,路径代表某一个点到某一个点的走法
路径有两种表达方式,一种是绝对路径,一种是相对路径:
绝对路径:从(/)根目录开始,显示子目录层次,最终到达指定文件夹
相对路径:非(/)根目录开始,当前工作目录的相对位置
对于路径管理,我们有以下几个命令需要掌握:

  • cd [目录位置] 切换当前工作目录
  • pwd 查看当前工作目录
  • ls 显示当前工作目录下的所有文件
    对于文件而言也存在着很多不同的类型,下面一一举例:
  1. d 文件夹
  2. b 块文件(硬盘)
  3. c 字符文件
  4. l(ell) 链接文件(快捷方式)
  5. p 管道文件
  6. — 一般文件
    我们可以通过输入 ls -l 来查看一个文件夹下面所有文件的长格式列表(完整信息)
    image.png
    在最前面所显示的字符便是文件的类型

文件管理

对于在命令行中管理文件,我们有以下几个命令需要掌握:

  • mkdir + [文件夹名] + 选项 创建新的目录
  • touch + [文件名] 新建空文件,或更新文件时间标记
  • cp + 选项 + [文件/文件夹名] + [目标文件/目录] 复制文件或目录
  • rm + 选项 + [文件或目录] 删除文件或目录
    PS:root删除文件会提供一次确认操作,普通用户不会
  • mv 移动文件或目录、改名
    查看文件指令:
  • cat + [文件名] + 选项 显示出文件的所有内容
  • more|less + [文件名] + 选项 全屏方式分页显示文件内容(前者只可下翻,后者可以上下翻动)
    PS:选项-n可以显示行数,q退出
  • head|tail 查看文件开头(结尾)的一部分内容(默认10行)
  • wc 统计文件中的个单词数量等信息

通配符

通配符是一种特殊语句,常用于模糊查找
可以用来代替一个或多个真正字符
常用通配符有以下几个:

  • * 匹配多个任意字符
  • 匹配一个任意字符
  • [abc...] 匹配指定范围内的任意一个字符
  • {a,b}{a..c} 匹配括号中的字符,或连续字符
    下面举几个例子来方便理解
    image.png
    这里我们在Test文件夹中使用 touch {a,b,c}{1,2,3}.txt 命令创建了9个文件
    他们的名字是由abc和123组合起来的
    image.png
    随后我们使用 ls a*ls *3* 分别显示了开头字符为a的所有文件和第二位字符为3的所有文件
    image.png
    这里我们使用 ls ?3*ls ?[23]* 两个命令分别显示了第二位字符为3的所有文件和第二位字符为2和3的所有文件
    image.png
    最后我们使用 rm {a,b,c}{1,2,3}.txt 来删除所有abc和123组合起来名称的文件

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

logcat日志的使用——Qt For Android

前言 最近一直用qt开发安卓app,一直无法用真机调试,可能是缺什么东西。但是如果通过Qt Creator在真机上运行,可以在电脑控制台看打印(安卓本身的日志、qDebug之类的打印),所以我是通过打印猜测问题所在&am…

在零信任架构下的API安全与滥用防护(上)

引言 在当今数字化的浪潮中,应用程序编程接口(API)的战略重要性愈发凸显。API不仅仅是现代软件和互联网服务之间沟通的桥梁,更是企业价值创造的核心。随着API的快速发展和广泛应用,安全问题随之而来,其中A…

连锁零售企业如何提高异地组网的稳定性?

随着数字化时代的到来,连锁零售企业面临着日益复杂和多样化的网络挑战。连锁零售企业是在不同地理位置拥有分支机构和零售店,可能同城或异地,需要确保各个地点之间的网络连接稳定和可靠。但由于不同地区的网络基础设施差异、网络延迟和带宽限…

【洛谷算法题】P5716-月份天数【入门2分支结构】

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5716-月份天数【入门2分支结构】🌏题目描述🌏输入格式&a…

云时空社会化商业 ERP 系统 gpy 文件上传漏洞复现

0x01 产品简介 时空云社会化商业ERP(简称时空云ERP) ,该产品采用JAVA语言和Oracle数据库, 融合用友软件的先进管理理念,汇集各医药企业特色管理需求,通过规范各个流通环节从而提高企业竞争力、降低人员成本…

Day45力扣打卡

打卡记录 无矛盾的最佳球队(线性DP) class Solution:def bestTeamScore(self, scores: List[int], ages: List[int]) -> int:n len(scores) nums sorted(zip(scores, ages))f sorted(scores)for i in range(n):for j in range(0, i):if nu…

无人机覆盖路径规划综述

摘要:覆盖路径规划包括找到覆盖某个目标区域的每个点的路线。近年来,无人机已被应用于涉及地形覆盖的多个应用领域,如监视、智能农业、摄影测量、灾害管理、民事安全和野火跟踪等。本文旨在探索和分析文献中与覆盖路径规划问题中使用的不同方…

好用的chatgpt工具用过这个比较快

chatgpthttps://www.askchat.ai?r237422 chatGPT能做什么 1. 对话和聊天:我可以与您进行对话和聊天,回答您的问题、提供信息和建议。 2. 问题回答:无论是关于事实、历史、科学、文化、地理还是其他领域的问题,我都可以尽力回答…

关于前端学习的思考-内边距、边框和外边距

从最简单的盒子开始思考 先把实际应用摆出来: margin:居中,控制边距。 padding:控制边距。 border:制作三角形。 盒子分为内容盒子,内边距盒子,边框和外边距。 如果想让块级元素居中&#…

【排序】希尔排序(C语言实现)

文章目录 前言1. 希尔排序的思想2. 希尔排序的一些小优化 前言 本章将详细介绍希尔排序的思想及实现,由于希尔排序是在插入排序的思想上进行升华,所以如果不知道插入排序或者不熟悉的可以先看看这篇文章:《简单排序》中的直接插入排序。 1. 希…

《golang设计模式》第三部分·行为型模式-09-策略模式(Strategy)

文章目录 1. 概述1.1 作用1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 1.1 作用 策略(Strategy)是用于封装一组算法中单个算法的对象,这些策略可以相互替换,使得单个算法的变化不影响使用它的客户端。 1.1 …

软件设计师——程序设计语言基础(一)

📑前言 本文主要是【程序设计语言基础】——程序设计语言基础的相关题目,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 &#…

TA-Lib学习研究笔记——Overlap Studies(二)上

TA-Lib学习研究笔记——Overlap Studies(二) 1. Overlap Studies 指标 [BBANDS, DEMA, EMA, HT_TRENDLINE, KAMA, MA, MAMA, MAVP, MIDPOINT, MIDPRICE, SAR, SAREXT, SMA, T3, TEMA, TRIMA, WMA]2.数据准备 get_data函数参数(代码&#x…

UI自动化测试的正确姿势 —— Airtest设备连接API详解第一篇

一、背景 Airtest作为一款优秀的自动化测试工具,有着强大的API功能,处理日常自动化测试过程中需要的各类操作。今天就给大家逐一介绍关于设备连接和常用API部分,结合自动化测试中的各类需求,看看如何通过使用Airtest来快速实现。…

leetcode 15. 三数之和(优质解法)

代码&#xff1a; class Solution {public static List<List<Integer>> threeSum(int[] nums) {Arrays.sort(nums);List<List<Integer>> listsnew ArrayList<>();int lengthnums.length;for(int i0;i<length-3;){int lefti1;int rightlength…

【星火大模型】api使用

讯飞星火官方首页 准备工作 注册讯飞星火账号申请开发者api试用 从一个demo开始 讯飞星火官方的程序员为我们提供了非常优秀的demo&#xff0c;基本涵盖了大多数常用语言。 demo下载链接 这里我选用Java带上下文调用示例 下载后可以看到这是一个idea项目&#xff0c;直接…

Python实现学生信息管理系统(详解版)

Python实现学生信息管理系统-详解版 个人简介实验名称&#xff1a;学生信息管理系统系统功能实验步骤详讲添加入住学生信息删除学生的住宿信息修改学生的住宿信息查询学生的住宿信息显示所有学生住宿信息显示所有请假学生的信息 运行截图展示1.主界面2.添加新的入住学生信息3.显…

Django路由分发

首先明白一点&#xff0c;Django的每一个应用下都可以有自己的templates文件夹&#xff0c;urls.py文件夹&#xff0c;static文件夹&#xff0c;基于这个特点&#xff0c;Django能够很好的做到分组开发&#xff08;每个人只写自己的app&#xff09;&#xff0c;作为老大&#x…

如何自定义spring-boot-starter

1. 创建自定义starter 1.1 生成Maven工程 mvn archetype:generate -DarchetypeGroupIdorg.apache.maven.archetypes -DarchetypeArtifactIdmaven-archetype-quickstart -DarchetypeVersion1.4交互式输入groupId、artificatId、version&#xff0c;生成Maven工程后用IDEA打开 …

element ui 表格合计项合并

如图所示&#xff1a; 代码&#xff1a; <el-table height"400px" :data"tableData " borderstyle"width: 100%"stripe show-summaryref"table"id"table"> </el-table>监听表格 watch: { //监听table这个对象…