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   ->   ctrl y   ->   回车
  • gcc 以.c后缀的源文件
  • ./a.out

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

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

cat指令

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

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

常用选项

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

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

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

~over~  

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

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

相关文章

RESTful

RestFul API 何为 API? API(Application Programming Interface) 翻译过来是应用程序编程接口的意思。 我们在进行后端开发的时候,主要的工作就是为前端或者其他后端服务提供 API 比如查询用户数据的 API 。 但是, …

SD卡选型参考

文档版本日期类型REV1.02023.11.25新建 SD卡对于大家来说,应该很熟悉了,都是我们在各类电子设备中经常使用的。不过大家在购买SD卡的时候都会关注哪些参数呢?可能大部分使用者,甚至包括我在内也只是会关注下容量,当然是…

某瓜数据app Sign

文章目录 声明目标加密参数定位算法还原声明 本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除! 目标 之前也有写过pc端的飞瓜数据解密:JS逆向系列之某瓜数据解密 这次看一下某瓜数据app的达…

PIL.UnidentifiedImageError: cannot identify image file ...

按照网上搜的重新安装pillow库,对我这个不适用。我的解决方法是把有问题的图片删掉。

【后端卷前端】

为啥现在对后端要求这么高?为啥不要求前端会后端呢? 可能是后端人太多了,要求后端需要会前端的框架(vue react angular ), 这不我为了适应市场的需求来系统的学习vue了: 生成一个基础的vue项目 创建vue项目 vue create projectname 创建vitevue npm init vitelatest p…

element ui 上传组件实现手动上传

首先需要给上传组件增加http-request属性&#xff0c;这个方法中可以获取到文件&#xff0c;并按照自己的方式进行上传。 <el-uploadreffileUploadaction#:http-requesthttpRequest:on-preview"handlePreview":on-remove"handleRemove":limit"1&q…

科研/比赛必备工具及系列笔记集合

科研/比赛必备工具及系列笔记集合 零、前言一、常用工具系列1.1 笔记平台使用感受系列1.2 常用开发平台系列 二、论文系列2.1 检索工具系列2.2 投稿调研系列2.3 常见国际期刊/会议2.4 常见中文核心期刊/会议 三、文献系列3.1 画图工具系列3.2 翻译工具系列3.3 英文纠正系列3.4 …

手摸手Element-ui组件化开发

前端环境准备 编码工具: VSCode 依赖管理:NPM 项目构建: Vuecli NPM的全称是Node Package Manager&#xff0c;是一个NodeJS包管理和分发工具&#xff0c;已经成为了非官方的发布Node模块&#xff08;包&#xff09;的标准。2020年3月17日&#xff0c;Github宣布收购npm&am…

「Verilog学习笔记」数据累加输出

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 在data_out准备好&#xff0c;valid_b拉高时&#xff0c;如果下游的ready_b为低&#xff0c;表示下游此时不能接收本模块的数据&#xff0c;那么&#xff0c;将会拉低ready…

ImportError: No module named python_util.util

ImportError: No module named python_util.util 从师兄那里拷贝了一个python文件&#xff0c;运行报错ImportError: No module named python_util.util&#xff0c;python小白上网搜&#xff0c;并没有搜到有价值的答案。。。经过摸索&#xff0c;最后解决。 其实这就是缺少…

肾合胶囊 | 修行人追求的“长生不老”,其实就是一个“增阳消阴”的过程!

关于生命的问题&#xff0c;在人们面前有两条路任你选择。 人的生命活动靠精气来维持&#xff0c;善于保养精气者长生&#xff0c;否则就是短寿。 长生或短寿&#xff0c;只能由你自己选择。 其实要想长生并不是很难的事情&#xff0c;长生药就在你自己身上&#xff0c;只不…

Exchange意外登录日志

最近在审计Exchange邮件系统的时候&#xff0c;发现大量用户半夜登录的日志。而且都是成功的&#xff0c;几乎没有失败的情况。其中Logon Type 8表示用户从网络登录。 Logon type 8: NetworkCleartext. A user logged on to this computer from the network. The user’s pas…

HCIA-RS基础-RIP路由协议

前言&#xff1a; RIP路由协议是一种常用的距离矢量路由协议&#xff0c;广泛应用于小规模网络中。本文将详细介绍RIP路由协议的两个版本&#xff1a;RIPv1和RIPv2&#xff0c;并介绍RIP的常用配置命令。通过学习本文&#xff0c;您将能够掌握RIP协议的基本原理、RIPv1和RIPv2的…

MIPI 打怪升级之DSI篇

MIPI 打怪升级之DSI篇 目录 1 Overview2 DSI Mode 2.1 Video 模式2.2 Command 模式3 DSI Physical Layer 3.1 数据流控3.2 双向性3.3 Video Mode Interfaces3.4 Command Mode Interfaces3.5 Clock4 多通道管理 4.1 通道数匹配4.2 线上数据分布5 DSI 协议 5.1 包格式 5.1.1 短包…

秋招如何准备?有什么建议?

秋招&#xff0c;是毕业生最好的求职渠道&#xff0c;没有之一。尽管还有春招&#xff0c;社招......都不如秋招重要&#xff0c;因为秋招的机会更多..... 如何准备秋招&#xff1f; 1、简历很重要 一个好的简历&#xff0c;就是敲门砖&#xff0c;这是你跟企业HR的第一次亲…

什么是测试系统工程师(TSE)

TSE(TestSystemEngineer)简称测试系统工程师,作为系统工程&#xff08;SE&#xff09;团队的一员&#xff0c;很多公司目前还没有这样的角色&#xff0c;导致测试部分往往处理弱势&#xff0c;第一&#xff0c;不能进行端到端开发流程的测试&#xff0c;第二,不能对产品最终的测…

Vue + Element UI 实现复制当前行数据功能及解决复制到新增页面组件值不更新的问题

文章目录 引言第一部分&#xff1a;复制当前行数据功能的实现1.1 环境准备1.2 创建表格并渲染数据1.3 解决复制的数据不更新问题 第二部分&#xff1a;拓展知识2.1 Vue的响应性原理2.2 Element UI的更多用法 结语 Vue Element UI 实现复制当前行数据功能及解决复制到新增页面组…

王者荣耀——Java

代码如下&#xff1a; sxt Background package sxt;import java.awt.*; //背景类 public class Background extends GameObject{public Background(GameFrame gameFrame) {super(gameFrame);}Image bg Toolkit.getDefaultToolkit().getImage("C:\\Users\\24465\\Desk…

软件测试 | 解决‘pip‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

基于springBoot+Vue的停车管理系统

开发环境 IDEA JDK1.8 MySQL8.0Node 系统简介 本项目为前后端分离项目&#xff0c;前端使用vue&#xff0c;后端使用SpringBoot开发&#xff0c;主要的功能有用户管理&#xff0c;停车场管理&#xff0c;充值收费&#xff0c;用户可以注册登录系统&#xff0c;自主充值和预…