Linux第三节课(基本指令)

一、补充

1. *表示可执行程序,例如:

------ ls *(显示当前目录下的所有的可执行程序)

------ ls *.c(显示当前目录下的所有的可执行的C语言程序)

------ ls test*.c(显示当前目录下的以test命名开头的所有的可执行的C语言程序)

2.rm -i 被删文件 --- 删除文件之前会进行询问

二、man指令

语法  man+【接口】指令   ->  生成指导手册

一共有9种手册,常用前3个。

前3个库-分别为:

       1   Executable programs or shell commands  可执行程序或shell命令
       2   System calls (functions provided by the kernel)  系统调用(内核提供的函数)
       3   Library calls (functions within program libraries)  
库调用(C程序库中的函数)

man man 可查看man这个指令的作用(q退出)

  • 例如1、

printf在Linux中也是一条指令(与C语言中的printf无关!)

通过

man 3 printf

我们可以查看printf在C语言库中的函数的介绍。

  • 例如2、

查看fork在系统中的调用

man 2 fork 

 默认从1号还是查,如果1号没有,然后从2、3、4...依次查看

三、cp拷贝命令

1、Linux系统中的echo可以将字符串原封不动的显示出来,例如:

echo "hello Linux"

(默认在显示器中打印)

echo "hello Linux" > mytest.txt

可以将对应文本写入 到 mytest.txt 文件中

cat可以将文件中的内容打印出来。

将 > 定义为输出重定向!

输出重定向:将本来应该显示到显示器的内容,打印到文件中!

 cp +[源文件名] [目的文件名]   ---在当前目录下,将源文件名拷贝一份到目的文件名。

cp mytest.txt ../mytest.txt

拷贝一个同名文件到上级目录中!(在同一个目录中如果同名会报错!)

如果源文件是一个目录文件(内置多层目录)

cp -r lesson3 lesson3_backup

cp -f 强制复制不询问(在普通用户下)

cp - i 询问后复制(普通用户下)

若cp -fi 则依旧询问

四、mv指令(重命名+剪切)

1、重命名

mv mytest_backup.txt mytest1.txt

在当前目录下将mytest_backup.txt 重命名为mytest1.txt

2、剪切

mv mytest.txt ../

将mytest.txt移动到上级目录中

mv ../mytest.txt .

将上级目录下的mytest.txt 移动至当前目录

总结:

  • mv + 【源文件名】【目标文件名】  --- 重命名
  • mv + 【源文件名】【目录】 --- 剪切
  • mv + 【源文件名】【目录】【目标文件名】 --- 剪切 + 重命名

且所有的文件操作都可以看作是剪切 + 重命名!

如果mv + 【源文件夹】【目录】【目标文件夹】中,在目录下已经存在了目标文件夹(同名),则会将源文件名移动至目标文件夹之下。

ctrl + c 终止因为程序或者指令异常,从而导致我们无法进行指令输入!

  • 指令是什么?

指令和可执行程序都是可以被执行的! ------ 指令就是可执行程序!

  • 在执行指令之前,我们应该先做什么?

在系统中查找对应的指令!(指令一定是在系统的某一个位置存在的)

指令存放于/usr/bin下面!(一定是某种可执行程序,可能是C/C++等写的)

那么如果我们通过gcc编译.c文件生成可执行程序,将其cp到/usr/bin路径下,那么我们最终可以得到自定义的指令!--- 安装软件

五、指令which

which ll

可以查看ll指令存放的位置 

alias对指令进行重命名!

alias 108_cmd='ls -l -i -a -n';

此后alias 108_cmd的作用等同于ls -l -i -a -n

自定义的alias重命名是临时的,重启后会消失;但是ll不是;

六、Linux下一切皆文件

例如显示器、键盘、普通文件...

显示器(显示器中可以写入数据但是不能读取数据,有fwrite,没有fread());

键盘    (键盘中可以读取数据但是写入数据,有fread,没有fwrite());

普通文件 (一般普通文件都具有写入数据和读取数据的方法

凡是能被读取和写入的,即便方法为空,也都可以看作是文件!

echo 默认将字符串写入到显示器文件当中!(且字符串不一定非要按照C的标准来写,可以不加"")

输出重定向 > 的特点:(因为每次使用 > 进行输出重定向的时候,原来的旧的内容会被清空!)

  • 清空文件
  • 写入新内容

如果我们想要清空文件的内容,可以使用

>out.txt

那么源文件(out.txt)的内容会被清空(左边为空,将空值传入至out.txt)

扩展:

追加重定向>>

例如:

echo "108 good good" >> out.txt

原始内容不会被覆盖,多次调用内容会一直增加。

  • 打开文件后不清空内容
  • 在上一次文件的结尾处继续增加新内容

如果使用printf指令替代echo指令,则输出的内容不换行(echo默认自带换行)

(输出重定向和追加重定向的文件如果默认不存在,则会自动新建该文件!)

cat默认什么都不跟,则打印从键盘中获得的数据

输入重定向 < 

cat < out.txt

本来默认的如果什么都不跟,则默认打印从键盘中获得的数据

但是加上输入重定向后打印 out.txt中的文件内容

暂定!

cat < out.txt  与  cat out.txt

无区别!(只是引入输入重定向!)

七、cat指令

  1. cat + 【指定文件】  ----  会打印该文件的内容
  2. cat -n [指定文件]    ---- 每行标序号打印文件内容(包括空行)
  3. cat -b [指定文件]    ---- 每行标序号打印文件内容(不包括空行)
  4. cat -s [指定文件]    ---- 将多个空行压缩为一行输出
cat -n test.txt

八、more指令

cat指令不适合大文本;more指令适合大文本!

more打开后自动占满整个屏幕;然后按回车会向下浏览。

用法:

more [选项][文件]
  • -n 对输出的所有行编号
  • q退出more
more -500 test.txt

查看屏幕内最后一行是第五百行的包含之前的数据(到500行打满)。

九、less指令

less与more类似,但是less可以随意浏览文件,more只能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。

选项:

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

十、head指令

head + 文本 ------ 默认打印文本的前10行

常用用法:

head [数字] [文本]

打印文本的前n行;

十一、tail指令

tail + 文本 ------ 默认打印文本的后10行

常用用法:

tail [数字] [文本]

打印文本的后n行内容;

如果有一个大文本(几万行),我们需要看其中的1000~1020行(共21行),怎么使用head和tail获得呢?

方法一:

head -1020 log.txt > temp.txt
tail -20 temp.txt

创建一个临时文件temp来保存temp的前1020行,再通过tail取后21行;

方法二:(管道)

head -1020 log.txt | tail -21

(|被称为管道文件,也叫管道 ------ 内存级的,存放在内存中,没有真实存在)

(将左边程序的输出交给管道文件,然后右边的文件再从管道中把数据读取到自己的程序当中)

要对文件进行修改,先将文件加载到内存中,然后修改,修改完后再存入磁盘中;(不是直接从磁盘中修改)

(所有的文件在某段时间内都是内存级的,都需要加载到内存中用来处理)

在Linux中,wc-l是一个用于统计文本文件行数的命令。

例如:

cat log.txt | head -50 | tail -20

最后获得log.txt文本的31~50行取出来;

cat log.txt | head -50 | tail -20 | wc-l

最后显示结果为20(直接按照最后一个管道右边的程序显示行数)

(管道通常支持流水线工作:数据不断向后面加工,最终得到我们想要的数据)

拷贝多个文件时,建议先全部打包再拷贝。

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

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

相关文章

《云原生安全攻防》-- 容器攻击案例:镜像投毒与Fork炸弹

在本节课程中&#xff0c;我们将介绍两个比较有意思的容器攻击案例&#xff0c;镜像投毒与Fork炸弹。 在这个课程中&#xff0c;我们将学习以下内容&#xff1a; 镜像投毒&#xff1a;构建恶意镜像&#xff0c;诱导用户拉取镜像创建容器。 Fork炸弹&#xff1a;Fork炸弹的攻击…

【Socket 编程】基于UDP协议建立多人聊天室

思路 对于服务端来说&#xff0c;除了要接收消息之外&#xff0c;还要实现一个路由转发模块&#xff0c;该路由转发模块可以将相应发送给所有连接的客户端。而对于客户端来说&#xff0c;除了要发送消息给聊天室&#xff0c;还要能实时看到其它所有客户端的消息。 下面来看看具…

鸿蒙笔记--动画

这一节主要了解一下鸿蒙的动画&#xff0c;动画的引入主要是为了提升用户体验、增加用户反馈和互动感、引导用户操作以及缓解等待带来的不适感。 属性动画: Index.ets Entry Component struct Index {StatewidthSize: number 100StateheightSize: number 40build() {Column…

C++函数( Lambda、inline 、多载、指标)第二部

Lambda 函数 Lambda 函数是C11 新增的函数形式&#xff0c;这是种匿名函数&#xff0c;也就是不需要函数识别字&#xff0c;简单举例如下 #include <iostream>int main() {auto f [](int i) {return i * i;};std::cout << f(11) << std::endl;std::cout &l…

sql常见50道查询练习题

sql常见50道查询练习题 1. 表创建1.1 表创建1.2 数据插入 2. 简单查询例题(3题&#xff09;2.1 查询"李"姓老师的数量2.2 查询男生、女生人数2.3 查询名字中含有"风"字的学生信息 3. 日期相关例题(6题&#xff09;3.1 查询各学生的年龄3.2 查询本周过生日的…

redis的学习(二):常见数据结构及其方法

简介 redis常见的数据结构和他们的常用方法 redis的数据结构 redis是一个key-value的nosql&#xff0c;key一般是字符串&#xff0c;value有很多的类型。 j基本类型&#xff1a; stringhashlistsetsortedSet 特殊类型&#xff1a; GEOBitMapHyperLog key的结构 可以使用…

MacOS M1 安装item2 并配置Zsh

文章目录 1 下载item22 美化item22.1 配置主题2.2 设置黑色的主题&#xff1a;2.3 配置显示状态栏 status bar 3 安装 Oh my zsh3.1 设置主题3.2 设置插件3.3 安装第三方插件1 下载仓库解压2 使用 git clone 一些常用插件以及其作用 参考 1 下载item2 MacOS自带终端&#xff0…

ontap simulator配置过程

一、下载模拟器 参考《Simulate_ONTAP_9-14-1_Installation_and_Setup_Guide.pdf》P4的指导&#xff0c;登录网站进行下载。 二、传入pve&#xff0c;并解压转换 # 解压 tar -xvf vsim-netapp-DOT9.14.1-cm_nodar.ova# 解压后的文件列表&#xff0c;其中ovf文件里定义了虚拟机…

WGS84经纬度坐标 GCJ02火星坐标 BD09百度坐标互相转换

WGS84经纬度坐标 GCJ02火星坐标 BD09百度坐标互相转换 背景&#xff1a;uniapp做的微信小程序&#xff0c;使用到了相机拍照并获取位置坐标信息&#xff1b;在腾讯地图上展示坐标点位置信息&#xff1b; 由于业务需要我们的PC端用的不是腾讯地图&#xff0c;需要使用WGS84坐标或…

《0基础》学习Python——第二十三讲__网络爬虫/<6>爬取哔哩哔哩视频

一、在B站上爬取一段视频&#xff08;B站视频有音频和视频两个部分&#xff09; 1、获取URL 注意&#xff1a;很多平台都有反爬取的机制&#xff0c;B站也不例外 首先按下F12找到第一条复制URL 2、UA伪装&#xff0c;下列图片中&#xff08;注意代码书写格式&#xff09; 3、Co…

ViT(Vision Transformer)网络结构详解

本文在transformer的基础上对ViT进行讲解&#xff0c;transformer相关部分可以看我另一篇博客&#xff08;transformer中对于QKV的个人理解-CSDN博客&#xff09;。 一、网络结构概览 上图展示了Vision Transformer (ViT) 的基本架构&#xff0c;我按照运行顺序分为三个板块进…

Rancher

文章目录 Rancher1. 安装和配置2. 服务部署和管理3. 容器自动化缩容和扩容 Rancher Rancher 是一个开源的企业级容器管理平台&#xff0c;旨在简化容器化应用的部署、管理和运维。它支持多种容器编排引擎&#xff0c;如 Kubernetes、Docker Swarm 等&#xff0c;并提供了统一的…

自动驾驶系统开发与调试:车路云一体化无人驾驶挑战赛参赛体验

点击蓝字 关注我们 在过去的几年里&#xff0c;自动驾驶技术在全球范围内吸引了大量关注。其潜力不仅在于提升行车安全&#xff0c;而且还可以改变我们的出行方式和城市规划&#xff0c;提高交通运输效率。国际汽车工程师学会&#xff08;SAE&#xff09;根据不同自动驾驶程度&…

MySQL学习之事务,锁机制

事务 什么是事务&#xff1f; 事务就是逻辑上的一组操作&#xff0c;要么全做&#xff0c;要么全不做 事务经典例子&#xff1a;转账&#xff0c;转账需要两个操作&#xff0c;从一个人账户上减钱&#xff0c;在另一个账户上加钱&#xff0c;比如说小红给小明转账100元&…

JAVA在线文档

1.存在码 JDK21中文API 2.全栈行动派 JDK17中文API 3.mklab.cn JDK11中文API JDK8中文API JDK7-21英文API 4.docs.oracle.com JDK7-22英文文档

项目笔记| 基于Arduino和IR2101的无刷直流电机控制器

本文介绍如何使用 Arduino UNO 板构建无传感器无刷直流 &#xff08;BLDC&#xff09; 电机控制器或简单的 ESC&#xff08;电子速度控制器&#xff09;。 无刷直流电机有两种类型&#xff1a;有传感器和无传感器。有感无刷直流电机内置3个霍尔效应传感器&#xff0c;这些传感…

MLIR的TOY教程学习笔记

MLIR TOY Language 文章目录 MLIR TOY Language如何编译该项目ch1: MLIR 前端IR解析ch2: 定义方言和算子 (ODS)1. 定义方言2. 定义OP3. OP相关操作4. 定义OP ODS (Operation Definition Specification)1. 基本定义2. 添加文档3. 验证OP4. 新增构造函数5. 定义打印OP的格式 ch3:…

【机器学习】超参数选择:解锁机器学习模型潜力的关键

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 超参数选择&#xff1a;解锁机器学习模型潜力的关键引言什么是超参数&#xff1…

计算机的错误计算(三十八)

摘要 计算机的错误计算&#xff08;十九&#xff09;指出&#xff1a;两个等价大数相减&#xff0c;差不是正确值0&#xff0c;而是一个大数。本节用 Python的 torch库中函数进行计算验证&#xff0c;进一步说明错误的一般性。 例1. 在Windows10&#xff0c;Python 3.12.4 下…

Android APP Camerax应用(02)预览流程

说明&#xff1a;camera子系统 系列文章针对Android12.0系统&#xff0c;主要针对 camerax API框架进行解读。 1 CameraX简介 1.1 CameraX 预览流程简要解读 CameraX 是 Android 上的一个 Jetpack 支持库&#xff0c;它提供了一套统一的 API 来处理相机功能&#xff0c;无论 …