Linux系统编程学习 NO.3 ——基础指令的学习

news2024/12/23 9:48:12

* 通配符

  • 通匹配任意字符(包括空字符),用于匹配任意长度的字符串。包括空字符。加入你要匹配任何以.txt后缀的文件,只需要在*通配符后加上.txt后缀即可。

样例演示

ls *.后缀名
ls xxx* 找到匹配的字符串

在这里插入图片描述
在这里插入图片描述

man指令(重要)

Linux的命令有很多参数,我们不可能全记住,下面我们就会介绍Linux的联机手册以获取帮助。man手册一共分为8章:

1、普通命令
2、系统调用接口,如open、write等
3、c语言库函数,如printf,fopen等
4、特殊文件说明,这些文件是系统常用的设备文件和协议文件类型
5、文件的格式,如passwd,就会说明这个文件中各个字段的含义
6、是给游戏预留的,由各个游戏自己定义
7、是一些附件和变量,比如environ这种全局变量在这里就有说明
8、是系统管理用的命令,这些命令这能由root使用,如ifconfig等。

指令语法

man [选项] [查找目标]

常用选项

-k 根据关键字搜索联机手册
n 即只在第n页手册查找
-a 将所有章节都显示出来,比如 man printf 它默认从第一章开始搜索,直到找到为止,当按下q就会退出,它会继续往后搜索,直到所有章节都搜索完毕。

举例演示

在这里插入图片描述
在这里插入图片描述

cp指令(重要)

cp指令用于拷贝文件或目录,如同时指定两个以上的文件和目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的文件或目录拷贝到当前的目录下。若同时指定多个文件或目录,而最后的目的地并非一个已经存在的目的地,则产生错误信息。

语法

cp [选项] 源文件或目录 目标文件或目录

常用选项

-f 强行拷贝文件或目录,不论目的的文件是否已经存在。
-i 拷贝覆盖文件前询问用户。
-r 递归处理,将指定的目录下的子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。
-R recursive递归处理,将指定目录下的文件及子目录一并处理。

样例演示

echo指令和cat指令

在正式样例演示前,先介绍两个指令,以便于下面的演示。

echo指令,即将内容输出到显示器文件中,即打印到屏幕。

echo "字符串内容"

在这里插入图片描述
echo 指令可以搭配输出重定向符(>)来将字符串内容重定向写入到指定的文件中。

echo "helloc linux" > 文件名

cat指令,查看文件内容。

cat [选项] 文件名

在这里插入图片描述

cp指令案例演示

在这里插入图片描述

mv指令(重要)

mv指令是move的缩写,可以用来移动文件或更改文件名称。是Linux系统下的常用指令,常用于备份文件或目录。mv命令的本质功能就是剪切加重命名。

语法及特点

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

特点一:根据mv指令的第二个参数的不同(无论是目标目录还是目标文件),mv指令将文件重命名或者将其移动到新的目录中。如将文件移动到上级目录下,可以这样敲指令。

mv 源文件或目录 ../

特点二:当第二个参数的类型是文件时,mv指令会完成对于文件的重命名。此时,源文件只能有一个(这里的文件也可以是源目录),它讲所给的源文件或者目录重命名成给定的目标文件或目录的文件名称。

mv test.txt testmv.txt

特点三:当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv指令将各个指定的源文件均移动到目标文件中

常用选项

-f 如果目标文件已经存在,不会询问而直接覆盖。
-i 若目标文件已经存在时,就会询问是否进行覆盖。

样例演示

在这里插入图片描述
其实默认在不知名目录的情况下,mv指令默认是在当前所处的目录下对文件或目录进行剪切并重命名。

指令的本质

再此之前,已经介绍了一些的指令。那么这里我抛出一个问题,指令的本质是什么?下面我简单编写了一个简单的c语言程序,并在Linux环境下执行它。
在这里插入图片描述
而此时再敲几个已经介绍的指令。
在这里插入图片描述

为什么我们敲了指令就能够执行它呢?

当我们敲下指令时,系统会去对应的搜索目录查找是否有对应的指令。如果指令存在,则执行它。那么系统存放指令的目录在哪呢?

ls /usr/bin/

在这里插入图片描述
下面。将刚刚编写的可执行程序拷贝到系统存放指令的目录下,验证指令的本质就是可执行程序这一说法。
在这里插入图片描述

而我们将自己写好的程序拷贝到系统存放指令的目录下,使它变成指令,这一行为的本质就是安装可执行程序。当然,在试验完成后一定要删除拷贝添加的指令。不然时间久了忘记了自己胡搞了一个指令,在未来的某一天你敲了myc加热键补齐后,出来一个mycmd指令。你还隔着研究半天是哪来的指令,这就比较尴尬了。
在这里插入图片描述

指令的重命名

生活中,如果一个人的名字比较难念难写,但是他又特别的受欢迎。毫无疑问,他会获得一个专属的外号。指令也会有外号。由于ls -l这个指令常被用到,它就得到了一个别名ll。
在这里插入图片描述
下面,简单举例一下alias指令的用法
在这里插入图片描述

Linux一切皆是文件

在上面的echo指令和>输出重定向的介绍中,提到了屏幕上输出字符串信息。而在Linux中,显示器本质也是一个文件。只不过,显示器是一个只具备写入而不具备读取方法的文件。与之对应的是键盘,键盘的本质是一个具备读取而不具备写入方法的文件。

在这里插入图片描述

>> 追加重定向

在这里插入图片描述
在这里插入图片描述

<输入重定向

在这里插入图片描述
cat test.txt和cat < test.txt两者间还是有些许区别的。但是,现阶段我们先不管这些。

cat指令

用于查看目标文件的内容

语法

cat [选项][文件]

常用选项

-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行

样例演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

more指令

用于查看大文本,功能类似cat

语法

more[选项][文件]

常用选项

-n 对输出所有行编号
-q 退出more

样例演示

由于cat指令查看大文本时,效率很差。所有查大文本时,可以使用more指令进行查看。下面是一个构造10000行内容文本指令。

cnt=1; while [ $cnt -le 10000 ]; do echo "hello Linux $cnt"; let cnt++; done > test.txt

在这里插入图片描述

less指令(重要)

1、less指令也是对文件或其他输出进行分页现实的工具,应该说是Linux正统查看文件内容的工具,功能极其强大。
2、less的用法比起more更加的弹性。使用more时并没有办法向前翻,只能向后看。但使用less时可以用[pageup][pagedown]等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。
3、less里还可以有很多搜索功能,不止于向上搜索和向下搜索

语法

less [参数] 文件

选项

-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与/或?有关)
N:反向重复前一个搜索(与/或?有关)
q:退出

样例演示

在这里插入图片描述

head指令

head指令用来显示档案的开头至标准输出中。默认情况下head指令打印其对应文件的前10行内容。

语法

head -[行数][文件]

样例演示

在这里插入图片描述

tail指令

tail指令从指定点开始将文件写到标准输出中。使用tail指令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename 会把文件名里最尾部的内容显示在屏幕上,并且不断刷新是使你能看到最新的文件内容。

语法

tail [必要参数][选择参数][文件]

常用选项

-f 循环读取
-n 显示行数

管道操作样例演示

假设我们需要看1000-1020行的文件内容我们要怎么看呢?
在这里插入图片描述
当然管道操作也是可以连续使用
在这里插入图片描述
这里主要是认识一下管道就可以,后面还会深入学习。

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

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

相关文章

理论力学专题:张量分析

张量方法的引入 自然法则与坐标无关&#xff0c;坐标系的引入方便分析&#xff0c;但也掩盖了物理本质指标符号哑标和自由标 Einstein求和约定&#xff1a;凡在某一项内&#xff0c;重复一次且仅重复一次的指标&#xff0c;表示对该指标在它的取值范围内求和&#xff0c;并称这…

【C++ 入坑指南】(10)函数

文章目录 简介定义实例函数的分文件编写 简介 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数&#xff0c;即主函数 main() &#xff0c;所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定…

分享3个深度学习练手的小案例

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

0ctf_2017_babyheap-fastbin_dup_into_stack

参考&#xff1a; [1]https://uaf.io/exploitation/2017/03/19/0ctf-Quals-2017-BabyHeap2017.html [2]https://blog.csdn.net/qq_43935969/article/details/115877748 [3]https://bbs.kanxue.com/thread-223461.htm 题目下载参考[1] 说明下如何调试堆&#xff0c;在payload中…

chatgpt赋能Python-python3_7如何下载

Python3.7如何下载&#xff1f;详细步骤分享&#xff01; Python是一门当今最热门、最常用、最易学的编程语言之一&#xff0c;且拥有庞大的社区和强大的库支持。在这篇文章中&#xff0c;我们将会详细介绍如何下载Python3.7版本&#xff0c;让大家能够轻松上手Python编程。 …

代码随想录训练营Day44| 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ

目录 学习目标 学习内容 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ 学习目标 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ 学习内容 完全背包 problems/背包问题理论基础完全背包.md programmercarl/leetcode-master&#xff08;代码随想录出品&#xff09; - Git…

chatgpt赋能Python-python3_5怎么打开

Python 3.5怎么打开&#xff1f;教你几种方法 Python是目前非常流行的一种编程语言&#xff0c;几乎在所有行业都得到了广泛的应用。Python非常容易上手&#xff0c;且有强大的数据处理和科学计算能力。现在我们来说一下&#xff0c;如何在您的计算机上打开Python 3.5。 方法…

万劫不复之地-云原生可观测性的几大误区

传统监控厂商正把可观测性引入万劫不复之地 可观测性是当前讨论非常多的话题&#xff0c;这个理念由来已久&#xff0c;却在最近开始流行。 在20世纪60年代&#xff0c;该理念首次由Rudolf E. Kalman在其论文中提出&#xff0c;论文题目是《on a general theory of control s…

自然语言处理基础

以下所有内容来自《自然语言处理 基于预训练模型的方法》 1. 文本的表示 利用计算机对自然语言进行处理&#xff0c;首先要解决语言在计算机内部的存储和计算问题。使用字符串表示计算文本的语义信息的时候&#xff0c;往往使用基于规则的方法。如&#xff1a;判断一个句子编…

一文深度解读机器学习模型的评估方法

我们训练学习好的模型&#xff0c;通过客观地评估模型性能&#xff0c;才能更好实际运用决策。模型评估主要有&#xff1a;预测误差情况、拟合程度、模型稳定性等方面。还有一些场景对于模型预测速度&#xff08;吞吐量&#xff09;、计算资源耗用量、可解释性等也会有要求&…

chatgpt赋能Python-python3_8怎么降版本

Python 3.8如何降级版本 在本文中&#xff0c;我们将介绍如何将Python 3.8降级到旧的Python版本。这在一些情况下是有必要的&#xff0c;例如某些软件或库并不支持Python 3.8。Python版本降级不仅有用&#xff0c;还可以帮助您控制您的系统上的软件版本&#xff0c;以确保您的…

网络通信—路由交换协议之TCP协议

目录 一、tcp协议 二、通信消息类型 三、准备阶段&#xff08;三次握手&#xff09; 准备阶段要干什么&#xff1f; 有什么特点&#xff1f; 准备阶段的核心&#xff1f; &#xff08;1&#xff09;准备阶段的数据传输单位 &#xff08;2&#xff09;三次握手的过程 1…

Linux之基础开发工具

文章目录 前言一、yum&#xff08;软件包管理器&#xff09;1.什么是软件包&#xff1f;2.下载软件包1. 安装软件之前需要将软件的安装包下载下来2. 软件包并不在我们的本地电脑&#xff0c;那么软件包在哪里呢&#xff1f;3. 那么问题来了&#xff0c;我们的电脑如何得知要去哪…

npm 配置双因素身份验证

目录 1、关于双因素身份验证 2、NPM上的双因素身份验证 2.1 授权和写入 2.2 仅限授权 3、先决条件 4、从网站配置2FA 4.1 启用2FA 4.2 为写入禁用2FA 4.3 禁用2FA 5、从命令行配置2FA 5.1 从命令行启用2FA 5.2 从命令行发送一次性密码 5.3 从命令行删除2FA 6、配…

chatgpt赋能Python-python3_8怎么安装库

Python 3.8怎么安装库 - 一个简单易懂的指南 如果你正在学习Python编程&#xff0c;或者想要在你的项目中使用Python 3.8&#xff0c;那么你可能需要安装一些Python库。Python库是一些预定义的Python模块&#xff0c;它们可以帮助你更快速地完成你的项目。在这篇文章中&#x…

chatgpt赋能Python-python3_9_6怎么用

Python 3.9.6简介 Python 3.9.6是2021年6月28日发布的Python编程语言的最新版本&#xff0c;它提供了一些有用的新功能和改进&#xff0c;包括优化的解释器性能和可变构造体。它是一种功能强大的编程语言&#xff0c;既易于学习又易于使用&#xff0c;非常适用于开发Web应用程…

059:cesium设置条纹条带Stripe材质

第059个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置条纹条带材质,请参考源代码,了解StripeMaterialProperty的应用。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共91行)相关API参考:专栏目标…

机器学习——感知机

本章节主要介绍感知机的基础知识&#xff0c;虽然在目前的机器学习范围内&#xff0c;感知机已经不怎么使用&#xff0c;但是通过对感知机的学习可以更好的了解以后的线性模型等相关知识。 同时读者可以点击链接&#xff1a;机器学习-目录_欲游山河十万里的博客-CSDN博客 学习完…

Flutter 笔记 | Flutter 核心原理(一)架构和生命周期

Flutter 架构 简单来讲&#xff0c;Flutter 从上到下可以分为三层&#xff1a;框架层、引擎层和嵌入层&#xff0c;下面我们分别介绍&#xff1a; 1. 框架层 Flutter Framework&#xff0c;即框架层。这是一个纯 Dart实现的 SDK&#xff0c;它实现了一套基础库&#xff0c;自…

蓝牙 a2dp 知识点

1 不同的场景支持 当手机与耳机连接时&#xff0c;会协商音频编解码器、音频质量、音频延迟。&#xff08;可以决定是游戏模式还是音乐模式&#xff09; 2 音量调整 手机下发音乐数据的同时&#xff0c;还会下发音量值。耳机根据这个音量值&#xff0c;调整音乐数据到耳机实…