Linux初识——基本指令
我们在linux下输入各种指令,其实就相当于在windows中的相关操作,比如双击,新建文件夹等。
以下是相关基本指令基本用法
一.ls(显示当前目录下的所有文件和目录)
那如何显示当前目录(我们所在的位置)呢?用指令pwd即可。
1.2 创建一个文件夹/目录
有时候,我们点到文件夹的尽头发现内部无文件了,此时ls发现是空的,为了让其显示,我们可以尝试在此目录下新建一个文件夹,指令:mkdir 文件名
1.3 ls+选项
除此之外,ls大部分还可以后面跟一个选项,比如:ls -l即列出该目录下文件的详细信息。除此之外,还有一些其他的常用选项。
-a:显示当前目录下的所有文件
与ls不同的是,其多了.和..。但我们也能通过颜色判断其是文件夹。稍后再作解释。
1.4 选项的合并
那我们可不可以把两个选项同时使用呢?当然可以即ls -a -l;显示更多文件和文件的更详细的信息。(命令和选项,选项和选项之间必须有至少一个空格隔开,我们建议一个空格即可)
ls除了支持选项进行独立写,也支持合并写,比如ls -al即可达成上面同样的效果(顺序可以随意)
1.5 关于选项 -a
接下来,我们来解释一下刚才ls -l操作看不到的.和..
在Linux中, 以 . 开头的文件称为隐藏文件,只有用-a操作我们才能看见,包括我们自己创建的隐藏文件也是如此
、
.114就是新创建的隐藏文件/目录
1.6 -l下显示的其他信息
如图所示,显示了这两个文件的全部信息,那除了名字,剩下这堆信息又代表着什么呢?
这好比我们在windows下新建一个文本文档,虽然我什么也没写,显示的是0kb,但其也会占据此磁盘空间,这是因为其还有文件的属性,包括文件类型,创建时间等。因此我们得出。
文件=文件内容+文件属性。对文件的操作就是对内容操作或对属性操作。
在上面的红框开头,以d开头的文件我们称为目录,以-开头叫普通文件(比如源文件,文本文件等)
二. pwd(当前的工作路径,即所在目录)
我们在刚才已经演示了用法,在此就不多说了
除此之外,我们还需注意的是,在windows中连续进入几个文件加,上面会显示D:\XX\XXX\XXX.其中,\被称为路径分隔符,在Linux中,路径分割符用/表示,有了分隔符,我们就可以用文件夹(目录)+分隔符来表示一条路径,进而找到我们要找的文件。
有了这个东西,我们可以把ls再完善一下功能,如果我们想显示某一具体文件夹的信息(不一定是当前文件夹),只需 ls -l /文件夹名即可。显示指定目录下的内容。所以,ls的用法通式为:
ls [选项] [路径]。
对于一般的路径:/root/../.../....,我们把第一个/称为根目录,剩下的叫路径。
三 . cd(路径切换)
cd+路径 可切换到指定路径下。这个操作类似于windows的双击文件夹操作。
最后一步就是切换到根目录了。
有了cd操作,我们解释一下.和..到底是啥东西。
.和..叫特殊目录,.是当前目录,..是上级目录(对于112,他的上级目录就是root)cd..就是退到上一级目录,相当于windows中的回退。
3.1 ls -d
有时候,我们并不想展开某一个具体文件夹里的内容,只想看看当前路径下的文件夹,但我们用-l他总是会把文件夹展开显示,因此,需要用 -d选项,ls -d 目录即可展示当前路径下的内容而不打开目录,即只查看目录自己。
因此,我们也可以查看根目录本身而不打开根目录的内容。
注意:/里可以放普通文件,也可以放目录,/里面的目录也是如此,所以,Linux的目录结构是一颗多叉树的形状
3.2 绝对路径与相对路径
这颗多叉树的叶子节点,一定是空目录或普通文件,任何一个父节点可能有多个子节点,但任何一个子节点只有一个父节点。也就是说从根目录到目标文件,来回的路径是唯一的。这也告诉我们,可以用路径来定位一个文件的位置。这种路径称为绝对路径。
有绝对就有相对,那什么是相对路径呢?
假设我现在在112中新建一个txt文件(112中同时有一个lesson2的文件夹)
正常来说,我们想找到这个文件,就会用绝对路径表示:ls /root/112/hello.txt。但我们学过..是上级目录,因此,可用..代替:现在我们的位置是/root/112/lesson2,因为hello.txt在112中,所以我们要回退一个。即ls ../hello.txt。这个就是相对路径,相对是相对于当前路径的意思。之前的cd ..就是相对路径。在实际命令行操作的时候,经常使用相对路径,因为很方便。但绝对路径无论何时都能找到指定文件,在配置文件中使用居多。
在Linux下,任何一个目录都有.和..空目录也是如此,.相当于指向自己的指针,..相当于指向上一级路径的指针。 特殊地,根目录的.和..都指向自己。
3.3 cd - :跳转到最近的上一次路径,比如
3.4 cd ~
结果发现,无论当前在哪个路径,经过cd ~后都会回到/root,我们称为家目录
对于家目录的定义:对于root用户,首次登录所处的路径。对于普通用户,首次登录所处的路径(/home/用户名)。相当于windows的用户里叫桌面的文件夹。
所以,cd ~是回到用户自己的家目录下。root用户可以随便去普通用户的家目录下,相当于超级管理员,而普通用户只能去自己的家目录。
四 .touch指令(新建普通文件)
语法:touch 文件名
注意,在同一路径下不允许出现相同名字的文件或目录
五. mkdir(新建一个目录)
语法:mkdir 目录名 表示在当前路径下新建一个新目录,当然,也可以用相对路径在其他位置新建目录
但有时候我们想一次性新建一串目录比如:
这是不被允许的,我们只能新建一个然后cd进去继续新建,但是有一个选项可以帮助我们一次性完成,即在上图的mkdir后加-p即可。
六 rmdir和rm(删除命令)
rmdir不能删除普通文件,也不能删除非空文件,通常用来删除空目录。
rm可以删除普通文件,也可以删除非空目录,但需要加-r选项,他会把从他开始的所有子目录都删除,是一个递归的过程。但是在进行删除过程中会一直问你是否确定删除,直到递归结束,此时如果我们不想重复性地回答他,直接采用强制删除 rm -rf 目录即可。注意:不要强制删除根目录。
七 . *(通配符)
表示的是任意内容,用法为,xxx* 即代表了xxx后加任意名字的文件的所有文件比如:
file*代表着file后+任意为名字的文件的名字 ,*可以和ls rm搭配使用。如果是只写一个*,比如rm -rf * ,即强制删除当前目录下的任意名字的文件和目录 ,ls同上。(touch命令是新建普通文件的指令,语法为touch 文件名)。
八. 热键
8.1 Tab键
其功能如下:
第一个,命令补齐。比如我们在询问身份时往往会这样
但假设我们忘记了询问的命令了(如图所示,只记得是who什么什么)此时我们就可以连按两下tab,他就会显示以who开头的所有命令,如果我此时再输入一个a然后再按一下tab,发现直接显示whoami,这就是命令补齐。
第二个,路径补齐。
假设我们现在想知道上一级目录里除了lesson2还有什么,我们输入完ls ../后按下tab,就会显示112下的所有目录和文件,我们在输入new后再按下tab就会把剩余的目录补齐。(最后的什么也没显示是因为newdir下无目录和文件)
8.2 ctrl+c
在windows中是复制的快捷键,在linux中是强制终止运行,适用于我们输错了指令导致失控的情况下。
九.man指令
man相当于指令手册一样,当我们忘记了一些要用的指令时,可以用man指令查找,比如我想查关于ls 的相关指令,即man ls即可(以下是运行结果)pwd等等也可以。
除此之外,man也可以:man 数字 指令。数字相当于手册的章节,我们不输数字时默认在1号,像c语言的库函数在3号,我们要查函数就需要man 3 函数。当然,如果我们不输数字,他会从1号开始找,1号找不到找2号,直到找到为止。
十. cp指令(拷贝)
语法:cp 要拷贝的文件名/目录 拷贝成新的文件名/目录
拷贝后,文件里的内容也会拷贝,代码也会拷贝。不仅如此,也可以目录之间的拷贝,但需要加选项-r ,即递归式的拷贝。
注意:cp进行拷贝时需用相对路径或绝对路径进行拷贝
这里是把dir3中的test.txt拷贝到了dir4中
如果是拷贝目录的话,即cp -r 目录名1 目录名2,如果目录名2在当前路径存在那么就会在目录2中创建一个目录1的文件夹并把内容拷贝到其中,如果目录2名字不存在,那他就会在当前目录创建一个名为目录2的文件夹并把内容拷贝到其中。
这里我先把dir3的文件删除了,然后分别把dir4拷贝到dir3中,以及把dir4拷贝到当前目录中(di34是新的名字)。
相关文章:

Linux初识——基本指令
我们在linux下输入各种指令,其实就相当于在windows中的相关操作,比如双击,新建文件夹等。 以下是相关基本指令基本用法 一.ls(显示当前目录下的所有文件和目录) 那如何显示当前目录(我们所在的位置&…...

c/c++ 里的进程间通信 , 管道 pipe 编程举例
(1)以下是一个网上的使用 pipe 编程的范例: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <sys/wait.h>int main() {int pipefd…...

【C++笔记】红黑树(RBTree)深度剖析和AVL树的对比分析
【C笔记】红黑树(RBTree)深度剖析和AVL树的对比分析 🔥个人主页:大白的编程日记 🔥专栏:C笔记 文章目录 【C笔记】红黑树(RBTree)深度剖析和AVL树的对比分析前言一.红黑树的定义1.1 红黑树的概念1.2红黑树的规则1.3 红黑树对比A…...

Pytorch初学
创建虚拟环境 python控制台,jupyter notebook,python文件运行的差异,后续结合使用三者。 jupter主要可以对代码进行分割单独运行,主要做一些探索性工作。 数据集的常见存储模式 1、以标签命名图像。 2、单独存储图像的地址。 加载数据集…...
Golang学习笔记_20——error
Golang学习笔记_17——方法 Golang学习笔记_18——接口 Golang学习笔记_19——Stringer 文章目录 error1. 接口2. 创建3. 自定义错误4. 处理错误5. 实现Error接口 源码 error 在Go语言中,error 是一个内建的接口类型,用于表示和处理错误情况。它是Go语言…...
基于Vite+TS初始项目 | 不断更新
1 创建项目 1.1 初始化项目 # 创建项目 pnpm create vite# 使用vue-ts模板创建项目 pnpm create vite xyz-vue-app-ts --template vue-ts1.2 添加ts类型检查命令 添加 "type-check" 类型检查命令 {"name": "xyz-vue-app-ts-test","scri…...
R语言装环境Gcc报错以及scater包的安装
error: ‘timespec_get’ has not been declared in ‘::’ 80 | using ::timespec_get; 在conda 的虚拟环境中升级gcc的版本 conda install -c conda-forge gcc11 gxx11终极方法,在R的最新版本和环境下装啥都能成功!! 比如beyondcell的方法…...
关于量子神经网络的思考
其实在写这篇文章之前想了很多,主要是想法太超前,有可能颠覆未来机器智能行业甚至是影响世界。 1、计算机的历史 计算机的历史可以追溯到20世纪中叶,最早的电子计算机如ENIAC和EDVAC采用了冯诺依曼架构(John von Neumann Archit…...

注册中心如何选型?Eureka、Zookeeper、Nacos怎么选
这是小卷对分布式系统架构学习的第9篇文章,第8篇时只回答了注册中心的工作原理的内容,面试官的第二个问题还没回答,今天再来讲讲各个注册中心的原理,以及区别,最后如何进行选型 上一篇文章:如何设计一个注册…...

使用 Conda创建新的环境遇到的问题
下载速度很慢 1、更新 conda update -n base -c defaults conda2、清理缓存 conda clean --all解决方法 方法 1:关闭严格的渠道优先级 检查是否开启了严格渠道优先级: conda config --show channel_priority 如果返回 strict,说明启用了严…...

Flutter项目开发模版,开箱即用(Plus版本)
前言 当前案例 Flutter SDK版本:3.22.2 本文,是由这两篇文章 结合产出,所以非常建议大家,先看完这两篇: Flutter项目开发模版: 主要内容:MVVM设计模式及内存泄漏处理,涉及Model、…...
Spring Boot + Jasypt 实现application.yml 属性加密的快速示例
Jasypt(Java Simplified Encryption)是一个专为Java应用程序设计的开源加密库,旨在简化加密和解密流程,保护敏感数据如密码、API密钥等。 jasypt-spring-boot-starter允许开发者在Spring Boot应用中轻松地实现加密和解密功能。 本篇介绍使用 jasypt-spring-boot-starter 以…...

arcgisPro加载CGCS2000天地图后,如何转成米单位
1、导入加载的天地图影像服务,一开始是经纬度显示的。 2、右键地图,选择需要调整的投影坐标,这里选择坐标如下: 3、点击确定后,就可以调整成米单位的了。 4、切换后结果如下: 如有需要,可调整成…...

多模态论文笔记——GLIDE(DALL·E 2模型核心部件)
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍了OpenAI的DALLE 2模型中重要的组成部分,用于图像生成的GLIDE模型及其论文。 文章目录 论文背景扩散模型(Diffusion Models&…...

mybatisPlus动态sql语句 ${ew.sqlSegment}
mybatis-plus的${ew.sqlSegment},${ew.sqlSelect},${ew.customSqlSegment} ew是mapper方法里的Param(Constants.WRAPPER) Wrapper queryWrapper对象 简答介绍: ${ew.sqlSelect}:拼接select SQL主体 Select("select ${ew.…...
【工具】HTML自动识别用户正在讲话 以及停止讲话
【工具】HTML自动识别用户正在讲话 以及停止讲话 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>语…...
小程序与内嵌网页的数据通信
小程序与内嵌网页的数据通信 前言 微信小程序提供了web-view组件,允许开发者在小程序中嵌入网页。然而,由于小程序和网页运行在不同的环境中,它们之间的通信就需要依赖特定的机制来实现。然而我们日常的需求中,很多的时候都涉及…...

Android - NDK:编译可执行程序在android设备上运行
在android开发中,调试时会把C代码直接编译成可执行程序,运行在android设备上以确认其功能是否正常。 1、基于NDK编译可执行文件 2、push到 /data/local/tmp目录下 3、设置权限,执行。 ndk工程中build.gradle设置 groovy plugins {id com.a…...

快速上手:采用Let‘sEncrypt免费SSL证书配置网站Https (示例环境:Centos7.9+Nginx+Let‘sEncrypt)
1 关于Let’s Encrypt与Cerbot DNS验证 Let’s Encrypt 是一个提供 免费证书 的 认证机构。 Cerbot 是 Let’s Encrypt 提供的一个工具,用于自动化生成、验证和续订证书。 DNS验证是 Cerbot 支持的验证方式之一。相比 HTTP 验证或 TLS-ALPN 验证,DNS …...
shell技能树-扩展变量
扩展变量是指在shell脚本中用于实现条件判断和变量操作的特殊语法。 表格总结: 前三个 存在或者非空时,优先使用待测变量,否则使用默认值(或报错)。 最后一个 存在或者非空时,优先使用默认值,…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 。它的特点包括&a…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...