当前位置: 首页 > news >正文

Linux:入门学习知识及常见指令

文章目录

  • 入门介绍
    • 操作系统的概念
    • Linux机器的使用
    • Linux上的指令
  • 对文件知识的补充
    • 文件的定义和一些含义
    • 文件和目录的存储
    • 绝对路径和相对路径
  • ls指令
  • pwd指令
  • cd指令
  • touch指令
  • mkdir指令
  • rmdir指令
  • rm指令
  • man指令
  • cp指令
  • mv指令
  • cat指令
  • more指令
  • echo指令
    • 输出重定向
  • less指令
  • find指令
  • grep指令
  • zip/unzip指令

入门介绍

操作系统的概念

操作系统(Operating System)是软件,操作系统的存在是为了让计算机更好用,这是操作系统的根本要义

在计算机内部大致是可以这样进行划分:

在这里插入图片描述
操作系统是一款进行软硬件资源管理的软件,具体如何理解这句话?

在C语言学习中我们写的第一个程序一般都是:

printf("hello world!");

从最终效果来看,printf函数把hello world这句话打印在了显示屏上,我们可以通过显示屏看到这句话,那么实际上,从这句程序到最后打印到显示屏上是需要进行一些复杂的过程,我们编写的程序为什么最终可以访问到硬件?这当中必然离不开操作系统的能力

Linux机器的使用

这里我采用的是XShell的机器,后续的学习也都会用XShell进行学习

登录指令

进入Linux界面,输入

ssh root@xxx.xxx.xxx(ip地址)

Linux上的指令

对于用习惯Windows的我们来说,转到Linux上一大不习惯的地方就是Linux的各种指令,简单来说,你可以在Windows上用鼠标和键盘完成一系列例如进入目录寻找某个文件,复制粘贴文件…等所有操作,而这些操作都是用键盘鼠标完成的,而在Linux上的一大不同点就是把这些全部换成了指令,但我们需要知道的一点是图形化界面和命令行操作的本质都是一样的,都是对操作系统进行直接或间接的操作

我们用的指令,本质上就是可执行程序写的,指令,工具,可执行程序…的本质都是可执行程序

那么介绍完这些,就可以正式开始学习Linux了,打开来自新世界的大门


介绍linux指令中,对于我还没有完全学习的指令只写已经学习完的,没有学习的后续进行补充

对文件知识的补充

文件的定义和一些含义

ls是一个查看目录和文件的指令,那么在这之前首先要对存储的文件有一些基础的认识

新建一个文件,这个文件是否占据空间?
答案是占据!文件的名字,文件的大小,文件的修改日期…这些都会在计算机内存中占据一定的空间,因为这些都是对文件属性的描述,文件可以表示为内容加属性,而从数据的角度来讲,文件的内容和文件的属性都是数据,都是要在磁盘硬盘中留下自己的一席之地,而我们下面讲的ls指令,就是对文件的属性进行的操作

.开头的文件以及本级目录上级目录都是什么?

Linux中,以.开头的文件都是隐藏文件

在Windows图形化界面中,想要返回上一级目录只需要选择退回就可以,而在Linux指令级的界面中,就需要用到本级目录和上级目录:

.      表示的是本级目录,也叫做当前所在目录
..     表示的是上级目录,后面讲的cd指令就是去特定的目录所用的

.本级目录的作用:用来执行一个程序,假如现在有一个程序是a.out,现在我要执行它,我就应该使用下面的指令

正确的方式:
./a.out
不正确的方式:
a.out

而这个./的意义,就是要找到这个程序,再对它进行运行

文件和目录的存储

在Linux系统中,磁盘上的文件和目录被组成了一棵目录树,每个节点都是目录和文件,具体可以这样表示:

在这里插入图片描述
可以类比Windows系统的概念,在Windows系统中,C盘下有很多文件和文件夹,而文件夹中又会有很多文件和文件夹…在Linux中也是如此,root根目录下有user,dev,home等许多文件和文件夹,文件夹又可能有更多的分支,因此根目录实际上是一种多叉树的结构

为什么在Linux系统中要采用这样的结构?

在系统中一定会存在命名一样的文件,而只有通过这种方式才能找到文件的唯一标识文件的方式,因为对于任何一个节点来说,它有且只有唯一的一个父节点

绝对路径和相对路径

在描述一个文件在系统中所处的位置时,可以有两种表示方式,分别是绝对路径和相对路径,绝对路径就是指从根目录出发到这个文件一路的路程表示,而相对路径是指我相对于你所处的位置,例如,现在要表示一下上图中bin文件的路径,我现在所处的目录是在lib路径下

用绝对路径来表示就是
/root/user/bin
用相对路径来表示就是
../bin/a.txt

ls指令

基本语法:ls 项目 目录或文件
功能:对于目录来说,用该命令列出该目录下的所有子目录和文件,对于文件,列出文件名和其他信息
常用的指令

-a:列出目录下的所有文件,包括.开头的隐藏文件
-l :查看目录下的详细信息,显示文件的更多信息

ls -l和ls -a可以一起使用,既显示隐藏文件又显示更多信息
在这里插入图片描述
在这里插入图片描述

pwd指令

语法:pwd
功能:显示用户当前所在的目录

这是一个很简单的指令,就是用来看当前我们所处的是哪个目录

cd指令

语法:cd 目录名
功能:改变工作目录,将当前工作目录转到指定的目录下
例如:

cd … : 返回上级目录
cd /root/litao/linux/ : 绝对路径
cd …/user/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录

touch指令

语法:touch 选项 文件
功能:touch命令参数可以改变文档或目录的日期和时间,包括存取时间和更改时间,或者创建一个不存在的文件
常用选项:

mkdir指令

语法:mkdir 选项 dirname
功能:在当前目录下创建一个名为dirname的目录
常用选项:

-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立
好那些尚不存在的目录,即一次可以建立多个目录

rmdir指令

rmdir是一个和mkdir向对应的指令,mkdir是用来创建目录,rmdir是用来删除命令
语法:rmdir -p dirname
功能:删除空目录
常用选项

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除

rm指令

语法:rm 选项 dirname
功能:删除文件和目录
常用选项

-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件

man指令

这个指令类似于一个帮助文档,当我们遇到Linux中我们不熟悉的指令时,可以用这个帮助文档来替我们解决问题:
语法:man 选项 命令
功能:帮助我们寻找一些指令含义

cp指令

语法:cp 选项 源文件或目录 目标文件或目录
功能:复制文件或目录
说明:cp指令用于复制文件或目录,如果指定了两个以上的文件或目录,且最后一个的目的地是一个已经存在的目录,则会把它前面所有的文件或目录都复制到这个目录中,若指定了多个文件或目录,而最后一个目的地不存在,就会报错
常用选项:

-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链
接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

mv指令

mv指令是move的意思,可以用来移动文件或者给文件更改名字,这是Linux下常用的一个命令,用来备份文件或者目录
语法:mv 选项 源文件或目录 目标文件或目录
功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
    常用选项:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

cat指令

语法:cat 选项 文件
功能:查看目标文件的内容
常用选项:

-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行

more指令

语法:more 选项 文件
功能:类似于cat
常用选项:

-n 对输出的所有行编号
q 退出more

echo指令

echo后跟着内容,默认情况下会把内容打印到显示屏上,通过输出重定向的指令可以把内容打印到文件中

在这里插入图片描述

输出重定向

首先要对Linux有直观的认识,Linux下一切皆文件,不管是从显示器写入还是从键盘写入,我们都可以把这个过程看成是文件的操作,下面就引入了输出重定向的概念

那么如何理解一切皆文件的概念?这里echo是把内容输出到显示屏中,我们可以把echo写到显示屏的操作看成向一个叫做显示屏的文件中写入内容,而输出重定向就是把这段本该输出到显示器文件的内容输出到其他文件中,因此可以完成下面的操作

在这里插入图片描述
那什么又是追加重定向?它和输出重定向有什么区别呢?
这里的追加重定向和输出重定向本质上和文件的操作中关于a和w是一样的
追加重定向不会覆盖原文件,只会在原来文件的基础上增加,而输出重定向会覆盖原文件重新写入

在这里插入图片描述

less指令

这里介绍less指令的各项作用和功能

首先nano中创建一个文件,里面是hello linux
在这里插入图片描述
less工具指令是对文件或其他输出进行分页显示的工具,在Linux中功能十分强大

语法:
less 参数 文件
功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
常用选项:

-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit

find指令

Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:
-name 按照文件名查找文件

grep指令

语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行

zip/unzip指令

语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
常用选项:
-r 递 归处理,将指定目录下的所有文件和子目录一并处理


Linux指令只是入门要掌握的一些基本操作

相关文章:

Linux:入门学习知识及常见指令

文章目录 入门介绍操作系统的概念Linux机器的使用Linux上的指令 对文件知识的补充文件的定义和一些含义文件和目录的存储绝对路径和相对路径 ls指令pwd指令cd指令touch指令mkdir指令rmdir指令rm指令man指令cp指令mv指令cat指令more指令echo指令输出重定向 less指令find指令grep…...

K8s:Kubernetes 故障排除方法论

写在前面 博文内容为节译整理文中提到的工具大部分是商业软件,不是开源的,作为了解理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它…...

TCP 三次握手四次挥手浅析

大家都知道传输层中的TCP协议是面向连接的,提供可靠的连接服务,其中最出名的就是三次握手和四次挥手。 一、三次握手 三次握手的交互过程如下 喜欢钻牛角尖的我在学习三次握手的时候就想到了几个问题:为什么三次握手是三次?不是…...

【软件安装】MATLAB_R2021b for mac 安装

Mac matlab_r2021b 安装 下载链接:百度网盘 下载链接中所有文件备用。 我所使用的电脑配置: Macbook Pro M1 Pro 16512 系统 macOS 13.5 安装步骤 前置准备 无此选项者,自行百度 “mac 任何来源”。 1 下载好「MATLAB R2021b」安装文…...

电脑维护:10妙招,让你的电脑更加稳定!

你的电脑已经成为你工作、学习、娱乐的最佳工具之一,但是如果你不做好电脑维护工作,就可能面临着电脑变慢、蓝屏、崩溃等问题。在这篇文章中,我们将介绍10个电脑维护步骤,让你的电脑更加稳定! 为什么需要电脑维护&…...

大数据面试题:Kafka的单播和多播

面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 参考答案: 1、单播 一条消息只能被某一个消费者消费的模式称为单播。要实现消息单播,只要让这些消费者属于同一个消费者组即…...

python与深度学习(八):CNN和fashion_mnist二

目录 1. 说明2. fashion_mnist的CNN模型测试2.1 导入相关库2.2 加载数据和模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章训练的模型进行测…...

开发一个RISC-V上的操作系统(五)—— 协作式多任务

目录 往期文章传送门 一、什么是多任务 二、代码实现 三、测试 往期文章传送门 开发一个RISC-V上的操作系统(一)—— 环境搭建_riscv开发环境_Patarw_Li的博客-CSDN博客 开发一个RISC-V上的操作系统(二)—— 系统引导程序&a…...

Mybatis-plus集合

目录 mybatis-plus集合1、简介2、特性3、开始使用4、QueryWrapper的使用5、补充 mybatis-plus集合 1、简介 MyBatis-Plus (简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 m…...

C++ 结构体和联合体

1.结构体 结构体是一种特殊形态的类,它和类一样,可以有自己的数据成员和函数成员,可以有自己的构造函数和析构函数,可以控制访问权限,可以继承,支持包含多态,结构体定义的语法和类的定义语法几…...

使用TensorFlow训练深度学习模型实战(下)

大家好,本文接TensorFlow训练深度学习模型的上半部分继续进行讲述,下面将介绍有关定义深度学习模型、训练模型和评估模型的内容。 定义深度学习模型 数据准备完成后,下一步是使用TensorFlow搭建神经网络模型,搭建模型有两个选项…...

lucene、solr、es的区别以及应用场景

目录 1. Lucene:2. Solr:3. Elasticsearch: Lucene、Solr 和 Elasticsearch(ES) 都是基于 Lucene 引擎的搜索引擎,它们之间有相似之处,但也有一些不同之处。 Lucene 是一个低级别的搜索引擎库,它提供了一种用于创建和维护全文索引的 API&…...

Java方法的使用(重点:形参和实参的关系、方法重载、递归)

目录 一、Java方法 * 有返回类型,在方法体里就一定要返回相应类型的数据。没有返回类型(void),就不要返回!! * 方法没有声明一说。与C语言不同(C语言是自顶向下读取代码)&#…...

登录页的具体实现 (小兔鲜儿)【Vue3】

登录页 整体认识和路由配置 整体认识 登录页面的主要功能就是表单校验和登录登出业务 准备模板 <script setup></script><template><div><header class"login-header"><div class"container m-top-20"><h1 cl…...

大学如何自学嵌入式开发?

1. C语言&#xff1a;C语言是基础中的基础&#xff0c;刚开始学习不用太深入&#xff0c;一本常用的C语言的教材即可&#xff0c;注意不是当教科书看&#xff0c;而是看完一节过后&#xff0c;打开电脑把后面的习题都写出来&#xff0c;并且编译运行一遍&#xff0c;一定要动手…...

pytorch学习——线性神经网络——1线性回归

概要&#xff1a;线性神经网络是一种最简单的神经网络模型&#xff0c;它由若干个线性变换和非线性变换组成。线性变换通常表示为矩阵乘法&#xff0c;非线性变换通常是一个逐元素的非线性函数。线性神经网络通常用于解决回归和分类问题。 一.线性回归 线性回归是一种常见的机…...

00 - RAP 开发环境配置

文章目录 [1] Eclipse - ADT[2] BTP / S4HC[3] Add ABAP Env. Service[4] Conn. to BTP [1] Eclipse - ADT 关于如何安装配置&#xff0c;参见文章: Install ABAP Development Tools (ADT) and abapGit Plugin Eclipse Eclipse - ADT Eclipse - abapGit Plugin [2] BTP / S4…...

山西电力市场日前价格预测【2023-08-01】

日前价格预测 预测明日&#xff08;2023-08-01&#xff09;山西电力市场全天平均日前电价为310.15元/MWh。其中&#xff0c;最高日前电价为335.18元/MWh&#xff0c;预计出现在19: 45。最低日前电价为288.85元/MWh&#xff0c;预计出现在14: 00。 价差方向预测 1&#xff1a;实…...

QT--day5(网络聊天室、学生信息管理系统)

服务器&#xff1a; #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//给服务器指针实例化空间servernew QTcpServer(this); }Widget::~Widget() {delete ui; …...

【用IDEA基于Scala2.12.18开发Spark 3.4.1 项目】

目录 使用IDEA创建Spark项目设置sbt依赖创建Spark 项目结构新建Scala代码 使用IDEA创建Spark项目 打开IDEA后选址新建项目 选址sbt选项 配置JDK debug 解决方案 相关的依赖下载出问题多的话&#xff0c;可以关闭idea&#xff0c;重启再等等即可。 设置sbt依赖 将sbt…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用&#xff08;Math::max&#xff09; 2 函数接口…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决

问题&#xff1a; pgsql数据库通过备份数据库文件进行还原时&#xff0c;如果表中有自增序列&#xff0c;还原后可能会出现重复的序列&#xff0c;此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”&#xff0c;…...