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

Linux的基本指令(二)

目录

前言

学前补充

touch指令

mkdir指令

rmdir指令

rm指令

通配符*

man指令

cp指令

mv指令(重要)

补充内容:

1、如何快速在Linux中写出代码

2、如何看待如此多的Linux指令

cat指令


前言

        关于Linux的基本指令我们会分三到四篇文章进行分析,同时这些文章中一些常用选项只会列举其大致作用,我们只会对它们之中相对来说更加常用的选项进行分析        

学前补充

        在上一篇文章:Linux的基本指令(一) 中我们学习了tree指令,但是当我用tree指令查看根目录”/“下的目录结构时,会出现疯狂打印的情况:

此时我们可以使用ctrl+c操作终止打印过程


touch指令

语法:touch [选项] 文件名

功能:创建文件、更改文件或目录的日期时间

常用选项
  • -a--time=atime--time=access--time=use:只更改存取时间。
  • -c--no-create:不建立任何文档。
  • -d:使用指定的日期时间,而非现在的时间。
  • -f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
  • -m--time=mtime--time=modify:只更改变动时间。
  • -r:把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
  • -t:使用指定的日期时间,而非现在的时间

常见使用方式:

        一般情况下,我们在创建文件的时候并不会用到这些选项,我们可以直接通过以下两种方式来创建文件:

1、touch 文件名

2、touch 文件名1 文件名2 ...... 文件名n

3、touch {文件名1,文件名2 ...... 文件名n}.文件后缀

如果想为当前目录下的子目录中创建文件可以写成touch 子目录名/文件名形式:


mkdir指令

语法:mkdir [选项] 目录名

功能:创建目录

常用选项

  • -p: 如果父级文件夹不存在,则递归地创建所有必需的父级文件夹。

常见使用方式:

mkdir创建目录的两种办法:

1、mkdir 目录名

2、mkdir 目录名1 目录名2 ...... 目录名n

3、mkdir {目录名1,目录名1}.任意后缀

这样写出来的test8.c和test9.c都是可以进入的目录而非文件

如果想为当前目录下的子目录中创建子目录可以写成mkdir -p 子目录名/目录名形式:

若写成mkdir 子目录名/目录名/目录名的形式会报错

  • -m: 设置所需权限模式(权限位)来控制新建立文件夹的访问权限。

rmdir指令

语法:rmdir [选项] 目录名

功能:删除空目录

常用选项

  • -p:当子目录被删除后若父目录也变为空,则连带父目录一起删除

常见使用方式:

rmdir指令只能删除空目录,若删除不为空则提示:“ Directory not empty”

有了-p的rmdir指令,可以实现当子目录被删除后若父目录也变为空,则连带父目录一起删除

rm指令

语法:rm [选项] 目录/文件名

功能:删除文件或目录

常用选项

  • -f 强制删除文件 
        root用户rm 文件名指令在删除文件时系统会询问是否真的要删除,但 rm -f 文件名指令会使系统在删除文件时直接删除不询问,在 普通用户中使用 rm 文件名指令删除文件时系统也会直接删除不询问:

  • -i 删除前逐一询问确认
  • -r 递归删除目录及其下所有文件

rm 目录名并不能删除空目录以及非空目录,必须使用rm -r 目录名指令才可以:

rm不搭配选项时,只能与文件名结合,用于删除文件,而不能与目录名结合:

        使用rm -r 目录名指令删除目录时,系统会逐层递归进入子目录中,然后从最里面的目录/文件处开始选择是否删除:

        注意必须完全执行完"descend into directory"操作后再进行remove操作,才会删除目录或文件,提前结束该操作则无效:

        在remove的某个阶段,选择y删除该文件,选择n不删除该文件,但要注意y和n的使用是否合理:

        请注意,不要去尝试做一些奇怪的操作,它们必定是无效的,比如这里你想要尝试将目录4保留,目录三删除,系统会在你选择保留目录四时直接退出递归:

是否对上面的一长串关于删除目录或文件的要求内容感到无聊甚至厌烦?我们来点痛快的

  • -rf:强制删除目录及其中的文件和子目录

同样也可以用于直接删除文件

最后想说一句,不加f是对自己负责🙄

还有就是一旦有不确定的文件,宁可备份,不可删除🤣


通配符*

功能:表示一个通配符,陪陪任意文件名

        我们创建1 2 3 4 5 6 一共6文件,如果我们想要将这六个文件一起删除,则可以用*来代表这些文件,直接执行rm -rf * 指令即可:

        此外,由*参与组成的文件名,*可以是任意长度的任意内容,同时*必须位于文件名的中间表示除了*表示的内容外只要文件的头部与尾部与该含*的文件名重复,就将这些文件视为相同文件一起删除:

因此,在根目录下执行rm -rf *是一件十分危险的事情


Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助

man指令

语法:man [选项] 命令

功能:查看辅助信息

常用选项

  • -k:根据关键字搜索联机帮助。
  • num:选择要查找的子手册
  • -a:将所有章节的都显示出来

在查看man手册时可以通过输入q退出手册,使用上下键翻看手册 

man手册又分为9个子手册:

  • 子手册1:包含用户可以直接在终端中运行的常规命令的信息。例如:ls、cd、cp 等
  • 子手册2:包含与操作系统内核进行交互时使用的系统调用接口文档。例如:open、read、write 等。
  • 子手册3:包含 C 编程语言标准库提供的各种功能函数文档。例如:printf、malloc、strcpy 等。
  • 子手册4:包含有关设备驱动程序和特殊文件(如 /dev 目录下的设备)相关信息
  • 子手册5:描述不同文件格式以及配置文件和数据文件所遵循的约定。例如:passwd 文件格式等。
  • 子手册6:可以找到有关游戏和屏幕保护程序的文档。例如:nethack、xlock 等。
  • 子手册7:包含了一些杂项主题,如标准文件、协议、宏等。例如:ascii、ip 等。
  • 子手册8:包含系统管理员使用的管理命令和守护进程相关信息。例如:mount、cron 等。
  • 子手册9:包含内核开发者使用的非标准内核例程文档。通常只在开发环境中可用。

在后面的学习中我们主要使用的就是前三个手册,尤其是第二个手册

不建议用子手册3作为查看c库函数的主要方式,因为它的版本较老,这里可以作为顺手查找

如果发现无法使用man -num 指令来查找某个指令的某个子手册:

那么是因为未安装man指令,可以通过以下指令下载man指令:

yum -y install man-pages

若还是不能使用emm,我们后续在讲解yum指令时会讲述如何解决该问题


cp指令

语法:cp [选项] 源文件名或目录名 目标文件名或目录名

功能:复制文件或目录

常用选项

  • -u,或 --update: 只复制比目标更新或不存在于目标中的文件。
  • -f 或 --force:强制覆盖已存在的目标文件。
  • -r或 --recursive:递归复制整个目录及其内容。

常见使用方式: 

1、cp -r 源目录名 目的目录名,复制子目录到另一个目录中:

2、cp 文件名 目录名/新文件名,将文件拷贝至子目录中并重命名该文件:

3、cp 文件名 ../ 将文件拷贝至上一级的目录中:

4、cp -f 源文件名 目标目录名或文件名,强制覆盖同目录下的文件或目标目录下的文件,若同目录下的目标文件不存在则直接创建新文件,若目标目录下存在若存在同名文件则直接覆盖若不存在则也创建新文件:

5、cp -rf 源文件名或目录名 目标文件名或目录名,递归复制源文件名或目录名只目标文件名或目录名中,且如果目标位置已经存在同名文件或目录,则会被强制覆盖:

总结:
  1. 适用cp命令时并不需要处于源文件或目录所在的位置,可以在任何目录下执行 cp 命令,只需提供正确的源文件路径和目标位置即可,但是我们还是推荐进入源文件或源目录所在位置再进行复制,可以减少代码量
  2. 当你需要拷贝一个目录及其内容时,可以使用 -r 或 --recursive 选项来递归地复制整个目录树。这样会将源目录下的所有文件和子目录都复制到目标位置。
  3. 当你想要强制覆盖已存在的同名文件时,可以使用 -f 或 --force 选项。它会在执行拷贝操作时忽略任何警告或确认提示,并直接覆盖已存在的文件。
  4. 如果你希望同时递归地拷贝一个目录并且在必要时强制覆盖同名文件,则可以将两个选项组合起来使用,即 -rf。这样做能够简化命令,并确保在执行过程中不会被询问确认提示。
  5. 三者中较为常用的就是-r 和 -rf指令

mv指令(重要)

语法:mv [选项] 源文件或目录 目标文件或目录

功能:备份文件或者目录

常用选项

  • -f force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
常见使用方式: 
1、mv 源文件/目录名 目标目录/文件名,在当前目录下对一个文件或者目录重命名

2、mv 源文件/目录名 目标目录名,将当前目录下的文件或目录,剪切到指定目录下:

3、mv 源文件/目录名 目标目录名/新名字,在剪切的同时重命名:


补充内容:

1、如何快速在Linux中写出代码

具体内容不再演示,大致步骤如下:

  • 下载nano指令:yum install -y nano
  • nano 以.c后缀的源文件
  • 编写源文件
  • ctrl x   ->   y   ->   回车
  • gcc 以.c后缀的源文件
  • ./a.out

2、如何看待如此多的Linux指令

  1. 指令本身并不用刻意记住,忘了就查在后续练习中使用频率高了的自然而然就可以记住
  2. 额外补充的知识才是最重要的,比如家目录,绝对相对路径等知识

cat指令

语法:cat [选项] [文件]

功能:查看目标文件的内容

常用选项

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行
常见使用方式: 
1、 cat -s 源文件名 ,将原来文件中存在的多行空行变为只显示一行空行:

2、cat -n 源文件名,显示打印文件中代码的行号:

3、tac 源文件名,逆向打印文件内容:

~over~  

相关文章:

Linux的基本指令(二)

目录 前言 学前补充 touch指令 mkdir指令 rmdir指令 rm指令 通配符* man指令 cp指令 mv指令(重要) 补充内容: 1、如何快速在Linux中写出代码 2、如何看待如此多的Linux指令 cat指令 前言 关于Linux的基本指令我们会分三到四篇文章进行分析&#xff0c…...

每日一题--寻找重复数

蝶恋花-王国维 阅尽天涯离别苦, 不道归来,零落花如许。 花底相看无一语,绿窗春与天俱莫。 待把相思灯下诉, 一缕新欢,旧恨千千缕。 最是人间留不住,朱颜辞镜花辞树。 目录 题目描述: 思路分析…...

C#,《小白学程序》第二十二课:大数的乘法(BigInteger Multiply)

1 文本格式 using System; using System.Linq; using System.Text; using System.Collections.Generic; /// <summary> /// 大数的&#xff08;加减乘除&#xff09;四则运算、阶乘运算 /// 乘法计算包括小学生算法、Karatsuba和Toom-Cook3算法 /// </summary> p…...

kafka,RabbitMQ,RocketMQ,他们之间的区别,架构,如何保证消息的不丢失,保证不重复消费,保证消息的有序性

文章目录 Kafka、RabbitMQ、RocketMQ 之间的区别是什么&#xff1f;性能数据可靠性服务可用性功能 RabbitMQ如何保证消息不丢失&#xff1f;Kafka 的架构说一下&#xff1f;Kafka 怎么保证消息是有序的&#xff1f;Kafka 怎么解决重复消费&#xff1f;Kafka 怎么保证消息不丢失…...

uni-app中vue3+setup实现下拉刷新、上拉加载更多效果

在小程序或各类app中&#xff0c;下拉刷新和上拉加载更多是极为常见和使用非常频繁的两个功能&#xff0c;通过对这两个功能的合理使用可以极大的方便用户进行操作。 合理的设计逻辑才能更容易挽留住用户&#xff0c;因为这些细节性的小功能点就变得极为重要起来。 那么在uni…...

微服务实战系列之Nginx(技巧篇)

前言 今天北京早晨竟然飘了一些“雪花”&#xff0c;定睛一看&#xff0c;似雪非雪&#xff0c;像泡沫球一样&#xff0c;原来那叫“霰”。 自然中&#xff0c;雨雪霜露雾&#xff0c;因为出场太频繁&#xff0c;认识门槛较低&#xff0c;自然不费吹灰之力&#xff0c;即可享受…...

好工具|datamap,一个好用的地图可视化Excel插件,在Excel中实现地理编码、拾取坐标

在做VRP相关研究的时候&#xff0c;需要对地图数据做很多处理&#xff0c;比如地理编码&#xff0c;根据“重庆市沙坪坝区沙正街174号”这样的一个文本地址知道他的经纬度&#xff1b;再比如绘制一些散点图&#xff0c;根据某个位置的经纬度在地图上把它标注出来。还有有的时候…...

Java——继承

继承是面向对象编程的三大特征之一&#xff0c;它让我们更加容易实现对已有类的扩展、更加容易实现对现实世界的建模。 继承有两个主要作用&#xff1a; 代码复用&#xff0c;更加容易实现类的扩展方便建模 继承的实现 继承让我们更加容易实现对类的扩展。比如我们定义了人…...

十、sdl显示yuv图片

前言 SDL中内置加载BMP的API&#xff0c;使用起来会更加简单&#xff0c;便于初学者学习使用SDL 如果需要加载JPG、PNG等其他格式的图片&#xff0c;可以使用第三方库&#xff1a;SDL_image 测试环境&#xff1a; ffmpeg的4.3.2自行编译版本windows环境qt5.12sdl2.0.22&…...

Docker Nginx容器部署vue项目

Docker Nginx容器部署vue项目 文章目录 Docker Nginx容器部署vue项目1. 前提2. 下载nginx镜像3. 编写nginx.conf配置文件4. 编写构建命令5. vue项目上传 1. 前提 Docker服务已部署 2. 下载nginx镜像 首先查看有没有nginx镜像 docker images没有的情况下再进行下载 docker …...

【深度学习】如何找到最优学习率

经过了大量炼丹的同学都知道&#xff0c;超参数是一个非常玄乎的东西&#xff0c;比如batch size&#xff0c;学习率等&#xff0c;这些东西的设定并没有什么规律和原因&#xff0c;论文中设定的超参数一般都是靠经验决定的。但是超参数往往又特别重要&#xff0c;比如学习率&a…...

详解—C++三大特性——多态

目录 一. 多态的概念 1.1 概念 二. 多态的定义及实现 2.1多态的构成条件 2.2 虚函数 2.3虚函数的重写 2.3.1虚函数重写的两个例外&#xff1a; 1. 协变(基类与派生类虚函数返回值类型不同) 2. 析构函数的重写(基类与派生类析构函数的名字不同) 2.4 C11 override 和 f…...

用idea搭建一个spring cloud微服务项目

以下是使用 IntelliJ IDEA 搭建 Spring Cloud 微服务项目的步骤&#xff1a; 创建一个新的 Maven 项目。 在 pom.xml 文件中添加以下依赖&#xff1a; <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-…...

SpringBoot——启动类的原理

优质博文&#xff1a;IT-BLOG-CN SpringBoot启动类上使用SpringBootApplication注解&#xff0c;该注解是一个组合注解&#xff0c;包含多个其它注解。和类定义SpringApplication.run要揭开SpringBoot的神秘面纱&#xff0c;我们要从这两位开始就可以了。 SpringBootApplicati…...

Rust语言入门教程(七) - 所有权系统

所有权系统是Rust敢于声称自己为一门内存安全语言的底气来源&#xff0c;也是让Rust成为一门与众不同的语言的所在之处。也正是因为这个特别的所有权系统&#xff0c;才使得编译器能够提前暴露代码中的错误&#xff0c;并给出我们必要且精准的错误提示。 所有权系统的三个规则…...

【MATLAB源码-第89期】基于matlab的灰狼优化算法(GWO)无人机三维路径规划,输出做短路径图和适应度曲线

操作环境&#xff1a; MATLAB 2022a 1、算法描述 灰狼优化算法&#xff08;Grey Wolf Optimizer, GWO&#xff09;是一种模仿灰狼捕食行为的优化算法。灰狼是群居动物&#xff0c;有着严格的社会等级结构。在灰狼群体中&#xff0c;通常有三个等级&#xff1a;首领&#xff…...

线程池的饱和策略有哪些?

线程池的饱和策略是指当线程池中的任务队列已满时&#xff0c;线程池如何处理新提交的任务。常见的饱和策略有以下几种&#xff1a; 阻塞策略 阻塞策略是指当线程池中的任务队列已满时&#xff0c;新提交的任务会等待队列中有空闲位置后再执行。这种策略可以避免过多的任务被…...

Git设置多个仓库同时推送

Git设置多个仓库同时推送 添加 在Git中&#xff0c;有时我们需要将同一份代码推送到不同的远程仓库&#xff0c;只是URL地址不同。 下面是一种优化的方法来设置多个仓库同时推送&#xff1a; # 添加一个新的远程仓库 git remote set-url --add origin2 新的仓库地址这样&am…...

前端入职环境安装

前端入职 后环境安装 &#xff0c;内函 nodenvmgit微信开发者工具vscode 的安装包 一.node安装-js运行环境 1.node下载&#xff0c;下载地址Node.js 2.配置淘宝镜像 npm config set registry https://registry.npmmirror.com/ 3.查看配置 npm config list 二.nvm安装-切…...

《金融科技行业2023年专利分析白皮书》发布——科技变革金融,专利助力行业发展

金融是国民经济的血脉&#xff0c;是国家核心竞争力的重要组成部分&#xff0c;金融高质量发展成为2023年中央金融工作的重要议题。《中国金融科技调查报告》中指出&#xff0c;我国金融服务业在科技的助力下&#xff0c;从1.0时代的“信息科技金融”、2.0时代的“互联网金融”…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动

一、前言说明 在2011版本的gb28181协议中&#xff0c;拉取视频流只要求udp方式&#xff0c;从2016开始要求新增支持tcp被动和tcp主动两种方式&#xff0c;udp理论上会丢包的&#xff0c;所以实际使用过程可能会出现画面花屏的情况&#xff0c;而tcp肯定不丢包&#xff0c;起码…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...