Linux基本指令2

news2025/2/5 11:22:12

07.man指令(重要):

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是 man 语法: man [选项] 命令

man ls查看ls指令更多的说明。

man man:

man指令就是一个接口或者一个在线的手册。 

常用选项

-k 根据关键字搜索联机帮助

num 只在第num章节找

-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按 下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

解释一下,面手册分为8章

1 是普通的命令

2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文 件)

3 是库函数,如printf,fread

4是特殊文件,也就是/dev下的各种设备文件

5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

6 是给游戏留的,由各个游戏自己定义

7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8 是系统管理用的命令,这些命令只能由root使用,如ifconfig。

Linux当中也支持printf:

printf这些接口我们可能都会用:

07.cp指令(重要):

在Linux当中存在一条指令叫echo,这条指令可以将后面的字符串原封不动的显示出来。注意:字符串中不能有标点符号。

下面这条指令可以将字符串"hello Linux"写入lesson.txt文件当中。

echo打印时默认会把输出的结果显示出来, 当echo 带上 “ > ”号时没有在显示器上显示"hello Linux",但其实已经被写入到了lesson.txt的文件当中了。

cat指令是打印文件内容。

在指令后面带一个 > 符号,后面跟一个文件名,它的现象是1.没有在显示器显示2.而是这个数据被写入到文件中,这种行为我们把它叫做输出重定向。输出重定向代表的含义是:本来应该显示到显示器的内容,打印到文件中。

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

功能: 复制文件或目录

my_lesson.txt本来不存在,是执行上述cp lesson.txt my_lesson.txt命令行之后新建的一个文件,并且该文件的大小和内容与原文件一模一样。拷贝的文件不能与被拷贝的文件同名:

拷贝普通文件时可以在当前目录下直接进行拷贝。

如果我们不想拷贝到当前目录下,想要拷贝到上级目录下,我们该怎么写呢?

不在同一目录下的同名文件可以存在,并且不会报错。 

如果我们想拷贝一个目录该怎么拷贝呢?

目录不能直接拷贝,要带-r选项,因为目录是递归式定义的。

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存 在的目录,则会出现错误信息

常用选项: -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在

-i 或 --interactive 覆盖文件之前先询问用户

拷贝目录在root账户下不会询问,即使加了-i也不会询问。 

删除目录会提问:

加上-i选项也会提问:

删除文件会询问: 

两次创立同一个文件会询问: 

加上-i选项也会询问,但是前提是这个文件必须已经创建了:

若是之前文件不存在,即使加了-i选项也不会询问: 

若是之前文件存在,即使加了-f选项,依然会询问:

以上都是在root账户下的测试,普通用户可能会和上述结果不一样。 

-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链 接,则一律视为普通文件处理。

-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理。

-r和-R用法相同。

08mv指令(重要):

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

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

my_class.txt文件名被改成了class1.txt的文件名。

也可以将文件进行剪切,剪切和拷贝不一样,拷贝是再复制一份,剪切是移动位置。

mv class.txt ../与mv class.txt ..相同。 

 将上级目录的test.txt文件剪切到当前目录下。只有这一种写法,..test.txt这种写法就不可以。 

把当前目录的普通文件移动到上级目录中,并且上级路径没有该文件名,这种方式叫做剪切并重命名。

对于目录和文件mv指令可以直接使用,不用带-r选项就可以使用。

若当前要把一个目录dir1 mv 到上级目录test,如果上级目录中有test目录,则不是重命名,而是把dir1目录放到test目录下。

功能:

1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的 目录中。

2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。

3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

常用选项:

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖。

ctrl + c :终止因为程序或者指令异常,而导致我们无法输入的情况。

两个问题:

1.你是如何看待指令的

指令和可执行程序都是可以被执行的,指令就是可执行程序。

2.我们在执行指令之前,系统应该先做什么?

先在系统中查找对应的指令,指令一定是在系统的某一个位置存在的。

指令一般在系统当中/usr/bin下,usr是根目录,bin是在usr的目录下。

通过下图可以发现所有的指令本质上在我们的系统当中是存在的。可以得出两个结论:1.指令是在系统中特定的路径下存在的2.这些指令一定是某种可执行程序,对应的指令一定是用C/C++/Python/shell所写的可执行程序。

指令的本质就是可执行程序,和我们自己写的代码编译好的程序,没有本质区别。

所有的软件、指令、工具都是可执行程序。

 指令的本质就是文件-可执行文件,就是直接安装到了系统的某种路径下,可以让我们执行时系统自动去找。

which这条指令是查看对应的指令它的路径的。

ll等价于ls -l ,就是因为ll是ls -l的别名,--color指的是配色方案,alias指令相当于是取别名。

重命名不想用的话要这样写:

重命名是临时的,当关闭Xshell再登陆上之后,重命名就不在了。

 重命名也可以用汉字和数字代替:

09 cat

echo指令默认把字符串写到显示器的文件当中。  

把应该写到显示器文件当中的内容写到普通的磁盘文件当中,这种行为我们将它叫做重定向。

cat指令打印文件的内容。

这里的echo和cat的区别是:echo后面跟的是字符串,也就是它自己认为跟的是字符串,而cat跟的是文件名。

当我们重定向多次时,cat记录的结果只有一次。

当我们把字符串内容改变时,cat打印的东西与之前内容不一样,与现在内容一样。

向目标文件进行写入的时候,输出重定向有两个特点:1.清空文件2.写入新内容。

如果想清空文件,有一个简化的写法 “>文件名”或者是“> 文件名”:

扩展:

如果我们想保留重定向之前的内容,我们要这样写:

注意:两个大于号是挨着的,中间没有空格,这种方式叫做追加重定向。

如果cat指令后面什么都没有输入,那么它是从输入设备开始读的:
 如果我们用 < 符号,我们发现它也能读取,这个 < 符号代表本来应该从键盘文件读取,现在不用从键盘读取,从指定的文件读取,这种方式叫做输入重定向。

cat text.c与cat < text.c是有区别的,这里暂时不做讲解。 

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

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

常用选项:

-b 对非空输出行编号

-n 对输出的所有行编号

-s 不输出多行空行,也就是有多行连续的空行的时候,只输出一行空行。

一个shell脚本:cnt=1; while [ $cnt -le 10000 ];do echo "hello Linux $cnt"; let cnt++; done > text.c 

cat不适合看大文本,cat适合看小文本,大文本适合more指令看。 

10.more指令

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

功能:more命令,功能类似 cat

more指令会将显示的文本一屏占满,占满之后不再打印,按下enter键会自动向下翻,比较适合自顶向下的查看。

常用选项:

-n 对输出的所有行编号。

显示到500行就停下来,还能继续下翻,并且编号。

还可以在more的场景当中做文本搜索,如上。

q 退出more

举例:

11.less指令(重要)

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。

less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看

但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!

除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

语法: less [参数] 文件

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

按下上键往上翻,按下下键往下翻。 

less -500这个命令行没有用,但是它也可以做文本查找。

选项:

-i  忽略搜索时的大小写

-N  显示每行的行号

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

q:quit

12.head指令

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的 开头至标准输出中,而 tail 想当然尔就是看档案的结尾。 

语法: head [参数]... [文件]... 

功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。 

选项: -n<行数> 显示的行数

head指令默认提取文本的前n行,默认提取10行。

如果想提取前3行,可以这样写:

13.tail指令

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

语法: tail[必要参数][选择参数][文件] 

功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

选项:-f 循环读取

-n<行数> 显示行数

举例:(简单讲解重定向和管道)

有一个文件共有100行内容,请取出第50行内容<br>
seq 1 100 > test # 生成1到100的序列装入test

方法1 head -n50 test > tmp #将前50行装入临时文件tmp

tail -n1 tmp #得到中间行

方法2 head -n50 test | tail -n1

tail指令默认也是提取10行,但是和head不一样的是tail提取的是后面的10行。

如果想提取文件中的行数该怎么办呢,比如1000到1020行?

这样就可以了,但是这样也会创建一个文件tmp.txt。

扩展:在Linux上我们可以创建一个管道:

 这样我们就可以拿到了,而且不会创建文件。这个 | 就叫做管道文件。这个 | 在对应的指令上就是一种符号,会被系统解释成为管道文件,这个管道文件不会真的在内存里存在,这个文件是一个内存级的文件,作用是把左侧的程序输出交给管道文件,让右侧的程序从管道文件当中再读到自己的程序当中。管道的容量是固定的,它的大小在操作系统中是确定好的,一般都是4kb、8kb、16kb,不同的版本,不同的操作系统,不同的位数有差别,

云服务器对应的man手册可能是不全的,如果查的时候有些接口可能用不了,可以试着安装一下,yum install -y man-pages,这个指令就叫做安装man手册。

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

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

相关文章

Android学习19 -- 手搓App

1 前言 之前工作中&#xff0c;很多时候要搞一个简单的app去验证底层功能&#xff0c;Android studio又过于重型&#xff0c;之前用gradle&#xff0c;被版本匹配和下载外网包折腾的堪称噩梦。所以搞app都只有找应用的同事帮忙。一直想知道一些简单的app怎么能手搓一下&#x…

人工智能导论-第3章-知识点与学习笔记

参考教材3.2节的内容&#xff0c;介绍什么是自然演绎推理&#xff1b;解释“肯定后件”与“否定前件”两类错误的演绎推理是什么意义&#xff0c;给出具体例子加以阐述。参考教材3.3节的内容&#xff0c;介绍什么是文字&#xff08;literal&#xff09;&#xff1b;介绍什么是子…

DeepSeek 的含金量还在上升

大家好啊&#xff0c;我是董董灿。 最近 DeepSeek 越来越火了。 网上有很多针对 DeepSeek 的推理测评&#xff0c;除此之外&#xff0c;也有很多人从技术的角度来探讨 DeepSeek 带给行业的影响。 比如今天就看到了一篇文章&#xff0c;探讨 DeepSeek 在使用 GPU 进行模型训练…

【Linux系统】信号:信号保存 / 信号处理、内核态 / 用户态、操作系统运行原理(中断)

理解Linux系统内进程信号的整个流程可分为&#xff1a; 信号产生 信号保存 信号处理 上篇文章重点讲解了 信号的产生&#xff0c;本文会讲解信号的保存和信号处理相关的概念和操作&#xff1a; 两种信号默认处理 1、信号处理之忽略 ::signal(2, SIG_IGN); // ignore: 忽略#…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.6 广播机制核心算法:维度扩展的数学建模

2.6 广播机制核心算法&#xff1a;维度扩展的数学建模 目录/提纲 #mermaid-svg-IfELXmhcsdH1tW69 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-IfELXmhcsdH1tW69 .error-icon{fill:#552222;}#mermaid-svg-IfELXm…

硬件产品经理:需求引力模型(DGM)

目录 1、DGM 模型简介 2、理论核心&#xff1a;打破传统线性逻辑 3、三大定律 第一定律&#xff1a;暗物质需求法则 第二定律&#xff1a;引力井效应 第三定律&#xff1a;熵减增长律 4、落地工具包 工具1&#xff1a;需求密度热力图 工具3&#xff1a;摩擦力歼灭清单…

Guided Decoding (借助FSM,有限状态自动机)

VLLM对结构化输出的支持&#xff1a; vllm/docs/source/features/structured_outputs.md at main vllm-project/vllm GitHub VLLM对tool call的支持&#xff1a; vllm/docs/source/features/tool_calling.md at main vllm-project/vllm GitHub 以上指定输出格式&#xf…

ComfyUI工作流 图像反推生成人像手办人像参考(SDXL版)

文章目录 图像反推生成人像手办人像参考SD模型Node节点工作流程效果展示开发与应用图像反推生成人像手办人像参考 本工作流旨在通过利用 Stable Diffusion XL(SDXL)模型和相关辅助节点,实现高效的人像参考生成和手办设计。用户可通过加载定制的模型、LORA 调整和控制节点对…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.5 高级索引应用:图像处理中的区域提取

2.5 高级索引应用&#xff1a;图像处理中的区域提取 目录/提纲 #mermaid-svg-BI09xc20YqcpUam7 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-BI09xc20YqcpUam7 .error-icon{fill:#552222;}#mermaid-svg-BI09xc20…

响应式编程_01基本概念:前世今生

文章目录 引言响应式编程的技术优势全栈式响应式编程从传统开发模式到异步执行技术Web 请求与 I/O 模型异步调用的实现技术回调Future机制 响应式编程实现方法观察者模式发布-订阅模式数据流与响应式 响应式宣言和响应式系统 引言 大流量、高并发的访问请求的项目&#xff0c;…

LabVIEW如何有效地进行数据采集?

数据采集&#xff08;DAQ&#xff09;是许多工程项目中的核心环节&#xff0c;无论是测试、监控还是控制系统&#xff0c;准确、高效的数据采集都是至关重要的。LabVIEW作为一个图形化编程环境&#xff0c;提供了丰富的功能来实现数据采集&#xff0c;确保数据的实时性与可靠性…

vue声明周期及其作用

vue声明周期及其作用 1. 生命周期总览 2. beforeCreate 我们在new Vue()时&#xff0c;初始化一个Vue空的实例对象&#xff0c;此时对象身上只有默认的声明周期函数和事件&#xff0c;此时data,methods都未被初始化 3. created 此时&#xff0c;已经完成数据观测&#xff0…

安全策略实验

安全策略实验 1.拓扑图 2.需求分析 需求&#xff1a; 1.VLAN 2属于办公区&#xff0c;VLAN 3属于生产区 2.办公区PC在工作日时间&#xff08;周一至周五&#xff0c;早8到晚6&#xff09;可以正常访问OA server其他时间不允许 3.办公区PC可以在任意时刻访问Web Server 4.生产…

蓝桥杯C语言组:暴力破解

基于C语言的暴力破解方法详解 暴力破解是一种通过穷举所有可能的解来找到正确答案的算法思想。在C语言中&#xff0c;暴力破解通常用于解决那些问题规模较小、解的范围有限的问题。虽然暴力破解的效率通常较低&#xff0c;但它是一种简单直接的方法&#xff0c;适用于一些简单…

七. Redis 当中 Jedis 的详细刨析与使用

七. Redis 当中 Jedis 的详细刨析与使用 文章目录 七. Redis 当中 Jedis 的详细刨析与使用1. Jedis 概述2. Java程序中使用Jedis 操作 Redis 数据2.1 Java 程序使用 Jedis 连接 Redis 的注意事项2.2 Java程序通过 Jedis当中操作 Redis 的 key 键值对2.3 Java程序通过 Jedis 当中…

NLP深度学习 DAY5:Sequence-to-sequence 模型详解

Seq2Seq&#xff08;Sequence-to-Sequence&#xff09;模型是一种用于处理输入和输出均为序列任务的深度学习模型。它最初被设计用于机器翻译&#xff0c;但后来广泛应用于其他任务&#xff0c;如文本摘要、对话系统、语音识别、问答系统等。 核心思想 Seq2Seq 模型的目标是将…

04树 + 堆 + 优先队列 + 图(D1_树(D17_综合刷题练习))

目录 1. 二叉树的前序遍历&#xff08;简单&#xff09; 1.1. 题目描述 1.2. 解题思路 方法一&#xff1a;递归&#xff08;推荐使用&#xff09; 方法二&#xff1a;非递归&#xff08;扩展思路&#xff09; 2. 二叉树的中序遍历&#xff08;中等&#xff09; 2.1. 题目…

总结11..

#include <stdio.h> #include <string.h> #define MAXN 1001 #define MAXM 1000001 int n, m; char maze[MAXN][MAXN]; int block[MAXN][MAXN]; // 标记每个格子所属的连通块编号 int blockSize[MAXN * MAXN]; // 记录每个连通块的大小 int dx[] {0, 0, 1, -1};…

35.Word:公积金管理中心文员小谢【37】

目录 Word1.docx ​ Word2.docx Word2.docx ​ 注意本套题还是与上一套存在不同之处 Word1.docx 布局样式的应用设计页眉页脚位置在水平/垂直方向上均相对于外边距居中排列&#xff1a;格式→大小对话框→位置→水平/垂直 按下表所列要求将原文中的手动纯文本编号分别替换…

FinRobot:一个使用大型语言模型的金融应用开源AI代理平台

“FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models” 论文地址&#xff1a;https://arxiv.org/pdf/2405.14767 Github地址&#xff1a;https://github.com/AI4Finance-Foundation/FinRobot 摘要 在金融领域与AI社区间&a…