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~  

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2.前端--HTML标签1【2023.11.25】

1.基本语法规范 HTML 标签是由尖括号包围的关键词&#xff0c;例如 <html>。HTML 标签通常是成对出现的&#xff0c;例如 和 &#xff0c;我们称为双标签。有些特殊的标签必须是单个标签&#xff08;极少情况&#xff09;&#xff0c;例如 <br />我们称为单标签。 …

持续增长的背后,艾比森用泛微-千里聆RPA机器人为业务加速

&#xff08;艾比森全球总部&#xff09; 艾比森集团始创于2001年&#xff0c;是全球知名的至真LED显示应用与服务提供商。目前旗下设有深圳总部&#xff0c;艾比森东江智造中心&#xff0c;以及艾比森美国、德国、日本、迪拜、俄罗斯、墨西哥、巴西、中国香港等18家海内外公司…

如何打造“面向体验”的音视频能力——对话火山引擎王悦

编者按&#xff1a;随着全行业视频化的演进&#xff0c;我们置身于一个充满创新与变革的时代。在这个数字化的浪潮中&#xff0c;视频已经不再只是传递信息的媒介&#xff0c;更是重塑了我们的交互方式和体验感知。作为字节跳动的“能力溢出”&#xff0c;火山引擎正在飞速奔跑…

openpnp - 丝杠安装调整的总结

文章目录 openpnp - 丝杠安装调整的总结概述笔记发现的问题 - X轴有回差发现的问题 - 丝杠两边的轴承座中心有高差(不同轴)备注END openpnp - 丝杠安装调整的总结 概述 设备定制回来后, 丝杠没敢动(开始是小白, 也没发现丝杠的相关问题. 因为看到同学自己安装丝杠那么痛苦, 最…

P12 C++静态关键字static

目录 01 前言 02 静态变量static 03 extern关键字 04 静态函数 最后的话 01 前言 static 关键字在 C 中有两个意思&#xff0c;这个取决于上下文。 第一种情况是在类或结构体外部使用 static 关键字&#xff0c;另一种是在类或者结构体内部使用 static。 类外面的 static…

【DP】mobiusp正在创作乐曲

输入样例1&#xff1a; 5 2 1 7 7 1 3 输出样例1&#xff1a; 2 输入样例2&#xff1a; 10 3 2 5 6 4 4 5 7 3 5 6 输出样例2&#xff1a; 1 #include<iostream> #include<cstring> #include<algorithm> #include<vector> using namespace std; typede…

jpom学习

jpom学习 整理jpom 一键安装 部署会需要 mvn跟jdk环境 # 安装服务端和 jdk、maven 环境 yum install -y wget && \ wget -O install.sh https://jpom.top/docs/install.sh && \ bash install.sh Server jdkmvndocker安装 安装docker挂载方式安装 docker …

【Docker】Docker 仓库管理和Docker Dockerfile

作者简介&#xff1a; 辭七七&#xff0c;目前大二&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…

php订单发起退款(余额和微信支付)

index.html <a class="btn btn-danger btn-change btn-tuikuan btn-disabled" href="javascript:;"><i class="fa fa-tuikuan"></i> 订单退款</a>-->order.js // 为表格绑定事件Table.api.bindevent(table);//退款…

基于指数分布算法优化概率神经网络PNN的分类预测 - 附代码

基于指数分布算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于指数分布算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于指数分布优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

【docker】docker安装与优化

目录 一、安装Docker 1、关闭防火墙 2、安装依赖包 3、设置阿里云镜像源 4、安装Docker-CE社区版并设置为开机自启动 5、查看Docker信息 二、设置镜像加速 1、申请加速地址 2、实现加速操作 三、网络优化 1、如何网络优化 2、具体操作 四、docker-server端配置文件…

3.读取字符串【2023.11.25】

1.问题描述 请使用 input 函数读取一串字符串&#xff0c;然后将其输出。 2.解决思路 输入一行字符串。 将读入的变量输出。 3.代码实现 strinput("请输入一个字符串") print(str)4.运行结果

Word打印模板,打印效果更出众丨三叠云

Word打印模板 路径 表单设置 >> 打印设置 功能简介 新增「Word打印模板」(beta版)。 Word 打印模板是指&#xff0c;在 Word 文档的基础上插入表单中的字段代码&#xff0c;打印时即可根据 Word 文档的格式&#xff0c;对表单数据进行个性化打印。 Word 打印模板能…

knime 中没有column expressions,怎么下载

knime 中没有column expressions&#xff0c;怎么下载 1、打开view&#xff0c;然后找到knime hub&#xff0c;column expression 2、往里面拖动&#xff0c;就可以安装了 3、然后会出现重启&#xff0c;搜索就可以出现啦

10.打印楼梯图案和笑脸【2023.11.25】

1.问题描述 打印楼梯图案和笑脸 2.解决思路 3.代码实现 #include<stdio.h> int main(){printf("11\n");for(int i0;i<10;i){for(int j0;j<i;j){printf("FF"); }printf("\n");} return 0; }4.运行结果

springboot项目同时启动web服务和grpc服务

springboot项目同时启动web服务和grpc服务 一. 创建项目二. 引入依赖三. 测试3.1 http服务3.2 grpc服务 四. 整体代码结构 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一. 创建…

力扣二叉树--总结篇(1)

前言 七天写了二十道题&#xff0c;前面感觉不错&#xff0c;后面越来越写不出来&#xff0c;刷题的心境和效果已然发生了变化。写个阶段总结&#xff0c;及时调整。 内容 先是二叉树的遍历 前序&#xff0c;中序&#xff0c;后序&#xff0c;即对应的递归&#xff0c;迭代…

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

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

Mysql基础操作(命令行)

文章目录 Mysql基础操作&#xff08;命令行&#xff09;背景创建数据库选择数据库查看所有表查看表结构向表插入数据插入第一条插入第二条插入第三条 查询表数据修改表数据删除表数据 Mysql基础操作&#xff08;命令行&#xff09; 背景 docker安装mysql8&#xff0c;映射本地…

【Spring源码】Spring Event事件

目录 1、前言 2、什么是Spring Event&#xff1f; 3、基本使用 3.1、定义事件 3.2、发布事件 3.3、监听事件 3.3.1、继承ApplicationListener 3.3.2、使用EventListener注解 4、Spring Event是同步还是异步&#xff1f; 4.1、源码实现 4.2、如何实现异步 4.2.1、使用…