Linux——入门常用基础指令

news2025/4/22 7:50:14

文章目录

  • Linux入门常用基础指令
    • 使用工具介绍
    • 基础指令
      • clear指令
      • pwd指令
      • ls指令
      • cd指令
        • Linux系统下的文件路径及文件存储结构
          • 文件结构
          • 家目录
          • 绝对路径和相对路径
          • tree工具
      • stat指令
      • which指令
      • alias指令
      • touch指令
      • mkdir指令
      • cat指令
      • rm指令
      • man指令
      • cp指令
      • 通配符 *

Linux入门常用基础指令

使用工具介绍

Linux是一个开源的操作系统,市面上有很多种版本。我们可以根据自己的需求进行选择。当然在学习的初期我是选择了Centos 7.6进行学习。

我们大部分人的电脑装的都是Windows系统,Linux是另外一个操作系统。

我们可以选择将系统重装为Linux,但是这个代价太大了。
还可以选择使用虚拟机,但是当前知识储备有限,使用虚拟机难度较大。
还可以选择使用云服务器,并且使用Xshell软件进行登录云服务器。这个代价并不是很大,所以我选择了这个。

需要注意的是:
XShell 下的复制粘贴
复制: ctrl + insert (有些电脑需要 insert 配合 fn 来按)
粘贴: shift + insert
ctrl + c / ctrl + v 是不行的。

在Xshell下,需要使用ssh [ip]的方式进行登录。

这些不是本篇文章的重点,本篇文章重点是对一些重要指令进行讲解。

基础指令

clear指令

这个很好理解,就是清屏。即使是在windows中的cmd里面也是有这个操作的。使用这个操作后会将当前窗口下的内容进行清空。

使用这个很简单,直接在当前行输入clear即可:
在这里插入图片描述
按下回车键,内容会自动清空。

pwd指令

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

在这里插入图片描述
我们可以理解为在Linux系统下,就是在文件之间切来切去,pwd指令就可以显示我们当前处于哪个目录下。就和我们在windows系统下找到我们当前在哪个目录一样,只不过我们的电脑使用了图形化界面:
在这里插入图片描述
就相当于这个操作一样,是很好理解的。

只不过在windows下,路径分隔符是 \ ,而Linux是 / 。所以我们在c/c++程序中写windows中文件的路径时,经常会把 \ 写成 \\ ,这是因为 \ 在c/c++程序中是转义字符的开头。为了防止编译器认为是转义字符,需要将转义字符转化为非转义字符。所以多加一个 \

在这里需要谨记一点:目录 == 文件夹

ls指令

语法: ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

所以,ls指令是对文件进行操作的。我们得了解一些文件的基本知识:

学习文件,就得直到文件 = 内容 + 属性。
内容很好理解,内容就是写在里面的东西。属性呢?
我们得知道,文件名也是属性的一部分,当然属性还包括像状态,修改时间,文件类型等。
哪怕是空文件,也是需要占据磁盘空间的。即使没有内容也会有属性。属性也是数据,也需要磁盘空间分配一些内存进行存储。

这节课是入门指令,所以只需要了解一些比较常用的指令即可。

1.直接输入ls
在这里插入图片描述
不输入查看的目录/文件就默认查看当前目录下的目录/文件的名字。这里蓝色字体的是目录(Xshell默认),黑色的这个很明显是普通文件。

我们也可以查看一下某个目录里面的文件名:
在这里插入图片描述
当然是可以一次性查看多个的。这里发现pos1目录是什么也没有的。

2.ll指令和ls -l指令
我们先来看ll指令:
在这里插入图片描述
再来看ls -l:
在这里插入图片描述
其实二者是一样的。当前我们先透露一下:ll其实是ls -l取得别名,可以认为是c/c++中的typedef操作,所以ll操作和ls -l操作一样。

这个-l是选项,是列出文件的详细信息。因为当前没有输入指定目录,所以默认列出当前用户所处目录下的文件的详细信息。

我们发现,目录的详细信息中,开头是字母d,意为directory(目录)。而helloworld.txt这个普通文件的开头是一个-,直接记住这是普通文件的标识即可。

3.ls -a选项
在这里插入图片描述
发现出现了很多以.开头的文件。还有我们自己创建的文件。开头还有.

.表示的是当前目录,表示的是上一级目录。

-a这个选项是显示指定目录的所有文件(包括隐藏文件)。这些以.开头的文件其实就是隐藏文件

3.ls -d选项
将目录像文件⼀样显示,而不是显示其下的⽂件。 如:ls ‒d 指定目录:
在这里插入图片描述
是不显示其下文件的。

5.综合使用
对于这些命令的选项或者指定的操作目录,是可以输入多个的选项或目录的:
在这里插入图片描述
输入ls -ald就是将当前目录以文件形式显现出来,并且有详细信息。
输入ls -al就是将当前目录下所有文件显示,包括隐藏文件,并且列出详细信息。

也能对多个目录/文件一同操作:
在这里插入图片描述
只不过-a选项对helloworld.cpp这个文件不起作用罢了。

对于ls指令的入门操作就大概是这么一些。具体的还需要下去自行练习。

cd指令

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

注意:cd只能操作目录!

Linux系统下的文件路径及文件存储结构

对于文件路径其实上面已经简单的提到过,使用pwd指令就可以查看当前用户所处的目录:
在这里插入图片描述
我们当前是处在root这个目录下。

使用ls -a指令可以显示出所有的隐藏文件和显示文件,我们会发现开头总是一个点和两个点,这分别代表当前目录和上级目录。我们尝试进入一直上级目录:
在这里插入图片描述
经过多次尝试后,发现显示的是一样的,我们查看一下当前路径:

在这里插入图片描述
我们当前所处目录竟然是个 \ 。其实这个就是Linux系统下文件结构的根目录

文件结构

这里给出结论,Linux系统的文件存储结构是一个多叉树,根节点就是根目录 \
在这里插入图片描述
除了第一个 \ 以外,其他的 \ 都是用作路径分隔符。

如文件rc3.d这个文件,我们可以知道它的路径为:/etc/rc.d/rc3.d,当然这是它的绝对路径。

其实在windows系统下也是这样一个结构,很多人会觉得c盘、d盘等磁盘才是一个根目录。实则并不是,根目录其实就是我们这个用户。然后里面有各类盘。其实磁盘也是目录。

家目录

当我们使用指令cd ~的时候,会回到家目录下。我们当前是root超级用户,所以输入该指令回到的就是路径/root下。这个家目录其实很好理解,就是登录系统后所处的位置。

系统是可以开多个用户的,每个用户在登陆的时候都是有一个指定位置,是不会重复的。只不过我们使用windows图形化界面导致这个概念被弱化了而已。

如果我们在Linux系统下开了多个用户,选择的其中一个用户(假设叫user1),那我们的家目录就是在user1默认登陆时所处的目录下。

绝对路径和相对路径

其实这个早在c语言概念——文件部分就已经讲解过,这里再次简单复习一下即可。

绝对路径就是计算机在内存中存储的文件的路径,在Linux下即从根目录 \ 向下索引寻找,直到指定文件的路径。我们很容易发现,绝对路径是唯一的。因为从根目录到指定文件有且只有一条向下的通路能够找到指定文件。

至于相对路径,就是一个文件/目录相对于另一个文件/目录的位置,即不是从根目录开始寻找的。那这样子相对路径就不是唯一的,可能会绕一大圈找到某个文件。

比如:
我想从pub目录找到rc.d目录,我们可以这样找:
cd ../../etc/rc.d,当然我们也可以绕到根目录再往下找,再绕远一点也可以。这病是不是唯一的。计算机中存储的都是绝对路径。我们平常生活中可能会用相对路径更多一些。

tree工具

当然会有很多人问,使用相对路径那就得直到当前所有目录文件是如何放置的。总不能每一层都使用ls命令查看吧。这个时候就需要在Xshell软件上安装一个工具了:

我使用的是Centos 7.6,在命令行直接输入命令:yum install -y tree,安装这个工具,当出现complete字样时,就代表安装成功。

使用方式:tree 目录
在这里插入图片描述
如图所示,这样子就能显示以指定目录为根节点下的文件树状图。这就很方便了。
注意:也是只能对目录展开树状图,如果是普通文件会报错。

很多人会在根目录/下进行树状图展开,发现一直在展开停不下来,别担心,使用键 ctrl + c就可以强制停止。

stat指令

使用:stat 文件名
功能:查看指定文件的状态

在这里插入图片描述
我们可以看到这些文件的状态,包括修改时间等。

具体需要注意的就是AccessModifyChange时间:

时间戳简称触发条件查看命令(stat
Accessatime读取文件内容或执行stat -c %x 文件名
Modifymtime修改文件内容stat -c %y 文件名
Changectime修改内容或元数据(权限、所有者等)stat -c %z 文件名

简单来说就是:
Access时间是用户最后一次访问、读取、执行该文件的时间。
Modify是最后一次修改文件内写的内容的时间。
ChangeModify不是完全一样,记录的是最后一次修改元数据的时间。(权限、所有者等)。这些是后话,当前先记住区别即可。

which指令

用法:which 命令
功能:搜索系统指定的命令

我们尝试一下:
在这里插入图片描述
我们发现这些命令都是存储在目录bin当中的。这说明这些指令都是二进制文件。

其实可以类比我们在windows系统的的.exe文件,就是可执行的二进制文件。那我们岂不是可以直接使用二进制文件的路径来代替命令?尝试一下:
在这里插入图片描述
我们发现确实是可以的,所以从今往后需要对指令祛魅了,这些指令本质就是二进制文件。

alias指令

用法:alias 别名=‘原命令’
功能:给一个功能取别名

在前面我们说了,ll的用法等同于ls -l,ll只是ls -l的一个别名,我们来验证一下:
在这里插入图片描述
我们发现这里是使用alias指令对ls -l命令重命名了。

我们也是可以自己进行重命名的:
在这里插入图片描述
我们通过给ls重命名位zhangsan,发现zhangsan和ls达到的功能时一致的。这个指令是临时的,一旦断开连接就没了。

如果想要永久存在是需要进行一些配置的,这些以后再说。

touch指令

语法: touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建⼀个不存在的文件。

不添加选项就是直接创建一个空文件。如touch hello.txt就是在当前目录下创建文件hello.txt,这个创建的文件是空的。

常用选项:
• -a : change only the access time
• -c : change only the modification time

在这里插入图片描述
很明显,Access时间被改变了。但是Change时间也被改变了,具体原因还是很复杂。当前是入门阶段,只需要了解会使用,看到不陌生就可以。

mkdir指令

语法: mkdir [选项] dirname…
功能:在当前目录下创建⼀个名为 “dirname”的目录

既然有对文件操作的指令,自然也有对目录操作的指令。mkdir即位make directory的简写,很明显是创建出一个目录。

常用选项:
• -p/--parents: 可以是⼀个路径名称。此时若路径中的某些⽬录尚不存在。
加上此选项后,系统将⾃动建⽴好那些尚不存在的⽬录,即⼀次可以建⽴多个⽬录。

即正常来讲,mkdir只能在当前路径下建立一个目录,但是我们想一次性完成多个目录的建立,就需要加上这个选项:

在这里插入图片描述
我们通过-p选项,一次性地将多个嵌套的目录构建了。

cat指令

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

常⽤选项:
• -b 对⾮空输出⾏编号
• -n 对输出的所有⾏编号
• -s 不输出多⾏空⾏

这些选项了解一下就可以当前,以后再说。

但是在此之前我们得直到如何往文件内写内容。这需要安装一下Linux自带地记事本nano,不同系统的可以到ai模型中询问如何安装。

直接使用指令nano 文件名就可以进入到记事本界面:
在这里插入图片描述
可以在内部对文件进行编辑。退出就按下ctrl + x,并输入y和回车确认。然后就编辑完成了。

我们使用cat指令对其查看:
在这里插入图片描述
对于其他选项下来可以自行尝试。

rm指令

使用:rm [选项] [文件/目录]
功能:删除指定文件或者目录

如果不加入选项是无法删除目录的,只能删除普通文件。对于目录的删除是有专门的指令rmdir的,但是我们可以只使用rm指令就完成操作。

先来看常用选项:

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

如果要删除目录,就需要加入选项-r,这个是recursion的意思,即递归。为什么呢?在学习树这个概念的时候我们就知道,树这个结构式天然的递归结构。而Linux系统下的文件存储形式就是多叉树,那也是递归形式。所以要删除目录是需要加入选项-r的。

如果我们不加入选项-f是会一一询问是否删除该目录/文件的。只需要我们输入y或者n即可。如果想一次性删完并且不询问,那就需要加入该选项。

选项-i意为删除前需要逐一询问内部文件/目录是否删除。

切记:当前如果处于根目录/下的话,需要谨慎使用删除指令。因为根目录也是可以被删除的。一旦删除就需要重新装系统了。

man指令

Linux的命令有很多参数,我们不可能全记住,可以通过查看联机⼿册获取帮助
语法: man [选项] 命令

这个也是需要下载的,所以对应不同的系统需要搜索一下如何安装到本地机器上。

常⽤选项
• -k 根据关键字搜索联机帮助
• num 只在第num章节查找
• -a 将所有章节的都显⽰出来,⽐如 man printf 它缺省从第⼀章开始搜索,找到就停⽌,⽤a选
项,当按下q退出,他会继续往后⾯搜索,直到所有章节都搜索完毕

num选项其实是数字:

解释⼀下:man⼿册分为9章(不同系统可能会有差别)1 是普通的命令
• 2 是系统调⽤,如open,write之类的(通过这个,⾄少可以很⽅便的查到调⽤这个函数,需要加什么
头⽂件)3 是库函数,如printf,fread4是特殊⽂件,也就是/dev下的各种设备⽂件
• 4 略
• 5 是指⽂件的格式,⽐如passwd, 就会说明这个⽂件中各个字段的含义
• 6 是给游戏留的,由各个游戏⾃⼰定义
• 7 是附件还有⼀些变量,⽐如像environ这种全局变量在这⾥就有说明
• 8 是系统管理⽤的命令,这些命令只能由root使⽤,如ifconfig
• 9

man指令还可以这样使用:man man,就可以查询手册的目录:
在这里插入图片描述

cp指令

语法: cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录

常⽤选项
• -f 或 --force 强⾏复制⽂件或⽬录, 不论⽬的⽂件或⽬录是否已经存在
• -i 或 --interactive 覆盖⽂件之前先询问⽤⼾
• -r 递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符
号链接,则⼀律视为普通⽂件处理

这些选项其实在rm指令那里就已经见识过了,这里也是一样的。

我们稍微演示一下:
在这里插入图片描述
如果是复制文件,就不需要加上-r选项,因为不是复制目录。使用cp指令复制文件的时候,如果最后跟的是同类型文件且不同名字,那就会在当前目录下生成一个。如果后面指定的是目录,就会复制到目录里面。

在这里插入图片描述
如果复制重名是会报错的。

对于目录,就需要加入递归选项进行操作:
在这里插入图片描述
当然也可以指定复制的路径:
在这里插入图片描述
对于自己复制到自己里面:
在这里插入图片描述
虽然提示是说无法将自己这个目录复制到自己目录内,但是仔细查看一下发现还是复制进去了。但是一般不建议这么使用。

根本原因就是复制的时候系统在做检查,如果检测到错误了就会停止,但是已经复制好的是不会回滚的,所以就会保留在那。

当然本篇文章只是讲解入门的一些指令,了解一下即可。

通配符 *

最后一个内容严格来说并不是指令。

我们现在有这样一个场景:
在这里插入图片描述
我们想要把pos1~pos5的目录全部删除 正常来说,我们需要使用指令rm -rf将目录依次删除,或者可以一次性删除多个,只需要我们多输入几个目录就好。

但是这样特别麻烦,也没有什么办法解决一下呢?

这就需要使用通配符*了,通配符的功能就是根据输入的部分内容作为开头,加上通配符,然后系统去找符合这些内容开头的文件。

所以我们可以这样子做:
在这里插入图片描述
很明显,全部给删除了。当然以p po 开头也是可以的,因为pos1~pos5开头就是这些。

如果想要一次性的将全部内容删除,也可以直接输入通配符:
在这里插入图片描述
只有通配符的时候,所有文件和目录都满足这个开头。所以可以全删

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

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

相关文章

【技术追踪】Differential Transformer(ICLR-2025)

Differential Transformer:大语言模型新架构, 提出了 differential attention mechanism,Transformer 又多了一个小 trick~ 论文:Differential Transformer 代码:https://github.com/microsoft/unilm/tree/master/Diff…

【Linux网络】应用层自定义协议与序列化

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12891150.html 目录 应用层 再谈 "协议" 网络版计算器 序列化 和 反序列化 重新理解…

Vue接口平台学习十——接口用例页面2

效果图及简单说明 左边选择用例,右侧就显示该用例的详细信息。 使用el-collapse折叠组件,将请求到的用例详情数据展示到页面中。 所有数据内容,绑定到caseData中 // 页面绑定的用例编辑数据 const caseData reactive({title: "",…

目标检测中的损失函数(二) | BIoU RIoU α-IoU

BIoU来自发表在2018年CVPR上的文章:《Improving Object Localization With Fitness NMS and Bounded IoU Loss》 论文针对现有目标检测方法只关注“足够好”的定位,而非“最优”的框,提出了一种考虑定位质量的NMS策略和BIoU loss。 这里不赘…

Linux 入门十一:Linux 网络编程

一、概述 1. 网络编程基础 网络编程是通过网络应用编程接口(API)编写程序,实现不同主机上进程间的信息交互。它解决的核心问题是:如何让不同主机上的程序进行通信。 2. 网络模型:从 OSI 到 TCP/IP OSI 七层模型&…

沐渥氮气柜控制板温湿度氧含量氮气流量四显智控系统

氮气柜控制板通常用于实时监控和调节柜内环境参数,确保存储物品如电子元件、精密仪器、化学品等,处于低氧、干燥的稳定状态。以下是沐渥氮气柜控制板核心参数的详细介绍及控制逻辑: 一、控制板核心参数显示模块 1)‌温度显示‌&am…

[c语言日寄]免费文档生成器——Doxygen在c语言程序中的使用

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…

QtCreator的设计器、预览功能能看到程序图标,编译运行后图标消失

重新更换虚拟机(Vmware Kylin),重新编译和配置了很多第三方库后,将代码跑到新的这个虚拟机环境中,但是出现程序图标不可见,占位也消失,后来继续检查ui文件,ui文件图标也异常&#x…

面试常用基础算法

目录 快速排序归并排序堆排序 n n n皇后问题最大和子数组爬楼梯中心扩展法求最长回文子序列分割回文串动态规划求最长回文子序列最长回文子串单调栈双指针算法修改 分割回文串滑动窗口栈 快速排序 #include <iostream> #include <algorithm>using namespace std;…

悬空引用和之道、之禅-《分析模式》漫谈57

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 “Analysis Patterns”的第5章“对象引用”原文&#xff1a; Unless you can catch all such references, there is the risk of a dangling reference, which often has painful con…

【初阶数据结构】树——二叉树(上)

文章目录 目录 前言 一、树 1.树的概念与结构 2.树相关术语 3.树的表示 二、二叉树 1.概念与结构 2.特殊的二叉树 3.二叉树存储结构 总结 前言 本篇带大家学习一种非线性数据结构——树&#xff0c;简单认识树和二叉数以及了解二叉树的存储结构。 一、树 1.树的概念与结构 树…

ECharts散点图-散点图14,附视频讲解与代码下载

引言&#xff1a; ECharts散点图是一种常见的数据可视化图表类型&#xff0c;它通过在二维坐标系或其它坐标系中绘制散乱的点来展示数据之间的关系。本文将详细介绍如何使用ECharts库实现一个散点图&#xff0c;包括图表效果预览、视频讲解及代码下载&#xff0c;让你轻松掌握…

GAIA-2:用于自动驾驶的可控多视图生成世界模型

25年3月来自英国创业公司 Wayze 的论文“GAIA-2: A Controllable Multi-View Generative World Model for Autonomous Driving”。&#xff08;注&#xff1a;23年9月其发布GAIA-1&#xff09; 生成模型为模拟复杂环境提供一种可扩展且灵活的范例&#xff0c;但目前的方法不足…

浅谈AI致幻

文章目录 当前形势下存在的AI幻觉&#xff08;AI致幻&#xff09;什么是AI幻觉AI幻觉的类型为什么AI会产生幻觉AI幻觉的危害与影响当前应对AI幻觉的技术与方法行业与学术界的最新进展未来挑战与展望结论 当前形势下存在的AI幻觉&#xff08;AI致幻&#xff09; 什么是AI幻觉 …

车载软件架构 --- 二级boot设计说明需求规范

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 周末洗了一个澡,换了一身衣服,出了门却不知道去哪儿,不知道去找谁,漫无目的走着,大概这就是成年人最深的孤独吧! 旧人不知我近况,新人不知我过…

Java高效合并Excel报表实战:GcExcel让数据处理更简单

前言&#xff1a;为什么需要自动化合并Excel&#xff1f; 在日常办公场景中&#xff0c;Excel报表合并是数据分析的基础操作。根据2023年企业办公效率报告显示&#xff1a; 财务人员平均每周花费6.2小时在Excel合并操作上人工合并的错误率高达15%90%的中大型企业已采用自动化…

第十四届蓝桥杯 2023 C/C++组 平方差

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 核心思路&#xff1a; 第一种思路&#xff1a; 第二种思路&#xff1a; 坑点&#xff1a; 代码&#xff1a; 数学找规律 O(n) 50分代码详解&#xff1a; O(1)满分代码详解&#x…

I/O复用函数的使用——select

I/O复用函数的使用——select 目录 一、概念 二、select接口 2.1 基础概念 2.2 使用 select 函数的标准输入读取代码 2.3 基于 select 模型的多客户端 TCP 服务器实现 一、概念 i/o复用使得程序能同时监听多个文件描述符&#xff0c;可以提高程序性能。 之前为了让服务器能…

图像预处理-图像轮廓特征查找

其实就是外接轮廓&#xff0c;有了轮廓点就可以找到最上、最下、最左、最右的四个坐标&#xff08;因为有xmin,xmax,ymin,ymax&#xff09;。就可以绘制出矩形。 一.外接矩形 cv.boundingRect(轮廓点) - 返回x,y,w,h&#xff0c;传入一个轮廓的轮廓点&#xff0c;若有多个轮廓需…

全同态加密医疗数据分析集python实现

目录 摘要一、前言二、全同态加密与医疗数据分析概述2.1 全同态加密(FHE)简介2.2 医疗数据分析需求三、数据生成与预处理四、系统架构与流程4.1 系统架构图五、核心数学公式六、异步任务调度与(可选)GPU 加速七、PyQt6 GUI 设计八、完整代码实现九、自查测试与总结十、展望…