linux常见指令下

news2024/11/14 7:00:58

接下来我们就聊聊linux的后面十条指令。

一:echo

作用是往显示器输出内容,和printf类型,但是该指令最核心的是与之相关的一些概念

概念1.输出重定向:

   echo不仅可以向显示打印内容,还可以向文件输出内容,本应该输出到显示器的输出到其它文件去了叫输出重定向(输出的方向重新改变),想必到这里肯定有小伙伴想问显示器是显示器,文件是文件,这两个能相提并论吗,或者说输出到显示器和输出到文件echo会不会做不同的处理。这时候用一句话即可为原因开个头,linux下一切皆文件,我们讲完输入,输出以及追加重定向再简略说。

输出重定向如下图 

[hqy@VM-24-5-centos ~]$ echo "hello linux"
hello linux
[hqy@VM-24-5-centos ~]$ tree
.
|-- a.out
|-- d1
|-- test.c
`-- test.txt

1 directory, 3 files
[hqy@VM-24-5-centos ~]$ echo "hello linux">test.c
[hqy@VM-24-5-centos ~]$ cat test.c  用cat查看,发现echo确实把语句
 hello linux                                  输出到test.c文件中去了

以及追加重定向,其实输出重定向在写入文件时是会先刷新文件才写入数据的。

[hqy@VM-24-5-centos ~]$ echo "hello linux">test.c
[hqy@VM-24-5-centos ~]$ cat test.c
hello linux
[hqy@VM-24-5-centos ~]$ echo "hello ">test.c
[hqy@VM-24-5-centos ~]$ cat test.c
hello 

要想原先数据保存下来,就得用追加重定向。如下:

[hqy@VM-24-5-centos ~]$ echo "hello linux">>test.c
[hqy@VM-24-5-centos ~]$ cat test.c
hello 
hello linux

二 cat

格式:cat+文件名

功能:查看文件内容

若不加文件,此时默认到键盘文件(标准输入端口)中读取,输出显示到显示器上展示
输入重定向也就是不从标准输入端口读取,而从其它文件中读取并显示到显示器上。

[hqy@VM-24-5-centos ~]$ echo "hello linux">test.c
[hqy@VM-24-5-centos ~]$ cat test.c    目前来看cat+文件名与输入重定向相似
                                      今后会有一点区别
hello linux
[hqy@VM-24-5-centos ~]$ cat <test.c   输入重定向
hello linux

  当我们了解了输入重定向和输出重定向,就再聊聊linux中echo输出字符到显示器和文件是否有区别,实际上没有区别,linux将一切看成文件来处理。(了解的不多,也只能合并一些资料勉强解释我的疑问)

   文件就是一种可以读和写的东西,读写是站在程序的角度,输入输出是站在内存来看的,注意:输入和写入是站在不同的角度来看的,程序的读取从内存来看是输入,写入则是输出。显示器和键盘其实都被看成文件,首先显示器文件是只能写入,不可读取的文件,我们将内存从显示器读取数据的fread函数写为空函数,所以无输入功能,为啥不提供输入功能从目前我学的一点语言知识还解释不了,键盘文件只能读取,不能写入,指的是内存对键盘的fwrite方法写为空,无法输出数据给键盘,但不意味着我们无法写入数据给键盘,不然怎么从键盘读数据呢?

   还有就是初学c时我好像听说我们scanf读取数据是从键盘中读取,只是由于显示器会回显我们输入的数据,时间久了我就忘了是从键盘读取,每次就是输入一个字符,然后显示器显示了,scanf也读到了,导致我以为我是从显示器读取的,其实是从键盘文件中读取的。

   我们在linux用的最多的就是指令,这些指令实际上就是存在系统特定位置的一个个可执行程序,指令就是文件,如下:现在想想我们我们在linux经常接触指令,它们实质上就是一个个可执行文件,当我们输入命令ls时,编译器就会去/usr/bin目录下执行该文件。在linux指令上我曾提到执行当前目录自己的可执行文件用./+可执行文件名(例如a.out),之所以ls这些可执行文件无需指定路径,我想显然编译器是知道去哪找的,这些指令的存放就是系统安排的位置,系统自己怎么可能不知道。

[root@VM-24-5-centos ~]# cd /usr/bin
[root@VM-24-5-centos bin]# ls -l /usr/bin/ls
-rwxr-xr-x 1 root root 117608 Nov 17  2020 /usr/bin/ls
[root@VM-24-5-centos bin]# ls -l /usr/bin

三 more

cat显示大文本时有缺陷,它会一股脑全打印出来。more则会先显示一屏幕,按回车下翻逐渐显示下面的内容,但是不能按上下方向键上下翻,我在测试这里的时候发现我的more没有显示行号的选项,所以这里感觉没有特别直观。

四 less

格式:less +[选项]+文件名

而less则可以按上下键上翻下翻,非常便于我们查看大文本信息。

选项:

-N显示行号

q:(quit),less的展示和more ,cat不同,结束展示要按q才能回到linux输入命令的窗口。

五 tail

语法:tail +[行数n]+文件名

功能:表示从该文件中读取末尾的n行显示到屏幕中去。

六 head

语法:head +[行数n]+文件名

功能:表示从该文件中读取开头的n行显示到屏幕中去

在说完tail和head指令我们再说一个特殊的文管道文件:|,管道文件可以临时保存我们的数据,也可以将保存的数据给下一个head和tail使用,像个管道一样连接两个指令。head和tail命令都是把截取的数据输出到屏幕上,那么我们如果用输出重定向,不就可以将读取的n行数据输出到管道文件中去吗。实际应用如下演示:

 我们可以对数据一步步加工,先对数据做截取尾尾15行,存到管道文件,管道文件会自动把数据传给下一个指令做处理,可以看到的是,下一个指令tail使用时未曾指定文件,实际上管道文件就充当了数据的提供者,这使得数据可以像在流水线上一步步被加工。

七 cal

命令格式:cal [参数] [月份][年份]

下面任意选项如果后面只有一个参数,该参数都会被认为是年份,两个参数第一个被认为月份,第二个是年份。

功能:查看日历

如下:

[hqy@VM-24-5-centos ~]$ cal 3 2023
     March 2023     
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

选项:

-1:显示当前月份的日历,不加也默认显示当前月份,也可以指定年月份显示

[hqy@VM-24-5-centos ~]$ cal -1 6 2023
      June 2023     
Su Mo Tu We Th Fr Sa
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

-3:显示前一个月,当前月,下一个月的日历,共三个月,同样可以指定年月份

[hqy@VM-24-5-centos ~]$ cal -3 7 2023
      June 2023             July 2023            August 2023    
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
             1  2  3                     1         1  2  3  4  5
 4  5  6  7  8  9 10   2  3  4  5  6  7  8   6  7  8  9 10 11 12
11 12 13 14 15 16 17   9 10 11 12 13 14 15  13 14 15 16 17 18 19
18 19 20 21 22 23 24  16 17 18 19 20 21 22  20 21 22 23 24 25 26
25 26 27 28 29 30     23 24 25 26 27 28 29  27 28 29 30 31      
                      30 31                                     
[hqy@VM-24-5-centos ~]$ cal -3 6 2023
      May 2023              June 2023             July 2023     
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6               1  2  3                     1
 7  8  9 10 11 12 13   4  5  6  7  8  9 10   2  3  4  5  6  7  8
14 15 16 17 18 19 20  11 12 13 14 15 16 17   9 10 11 12 13 14 15
21 22 23 24 25 26 27  18 19 20 21 22 23 24  16 17 18 19 20 21 22
28 29 30 31           25 26 27 28 29 30     23 24 25 26 27 28 29
                                            30 31               
[hqy@VM-24-5-centos ~]$ 

我知道这里肯定有同学和我一样会去尝试cal -3然后带个年份会咋样,个人觉得这有点像是未定义的,cal -3显示的多个月份,后面又跟着个年份,难道是想让编译器显示多个年份吗?linux对此的处理像是忽略了-3选项,而是显示了整年的日历。

-y:  显示当前年的日历,可指定年份

-j:  显示当前日期是一年中的第几天,并且当前月份是一年中的第几天都会显示出来,如果和-3选项复用,则会将三个月的日期转为一年中的天数显示,若是后面直接加年份,则会将一年的日期转为一年中的第几天来显示。

八 find

格式:find -name +文件名

find是在特定的家目录下查找文件,这个文件名可以是test.c,或者test.cpp,甚至我们可以不指定详细的文件名,而是找出所有相同后缀的文件

[hqy@VM-24-5-centos ~]$ find *.c
main.c
processbar.c
test.c
[hqy@VM-24-5-centos ~]$

九 grep

   作用:在文件搜索字符串,用单引号和双引号引起都行,会找到匹配的行打印出来,c语言是以单双引号区分字符和字符串,但是在linux下貌似没这种分别。

选项: -i 忽略字符的大小写

         -n 顺便输出行号

十 uname -r

这个指令是查看我们使用的计算机体系结构的。会显示操作系统版本等基本信息。

-a选项会输出所有详细信息依次是内核名称,主机号,内核版本号等,了解了解即可

[hqy@VM-24-5-centos ~]$ uname -r -a
Linux VM-24-5-centos 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[hqy@VM-24-5-centos ~]$ uname -r

3.10.0-1160.71.1.el7.x86_64

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

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

相关文章

在服务器上启动springboot项目

环境搭建&#xff1a;要在服务器上运行SpringBoot Web项目&#xff0c;需要先在服务器上安装JDK&#xff08;CentOS系统安装JDK参考&#xff1a;http://t.csdn.cn/0zYml&#xff09; 第一步&#xff1a;创建项目 创建一个简单的springboot项目&#xff0c;并通过测试&#xf…

Java Web Servlet (2)23.7.8

1.7 urlPattern配置 Servlet类编写好后&#xff0c;要想被访问到&#xff0c;就需要配置其访问路径&#xff08;urlPattern&#xff09; 一个Servlet,可以配置多个urlPattern package com.itheima.web;import javax.servlet.ServletRequest; import javax.servlet.ServletRes…

嵌入式基础知识-流水线

提到流水线&#xff0c;最先想到的可能是流水线车间中的产品制造过程。 工业上的流水线&#xff0c;又称装配线&#xff0c;指每一个生产单位只专注处理某一个片段的工作&#xff0c;以提高工作效率及产量。 在计算机领域中&#xff0c;也有流水线的概念&#xff0c;其核心原理…

互联网医院系统定制|互联网医院在线诊疗平台

互联网医院系统对医院有以下几个方面的帮助&#xff1a;   提升医疗服务效率&#xff1a;互联网医院系统可以为医院提供在线挂号、在线问诊、远程会诊等功能&#xff0c;减少患者排队等待时间&#xff0c;提高医疗服务效率。   扩大服务范围&#xff1a;互联网医院系统可以…

【数据结构二叉树OJ系列】6、平衡二叉树

目录 题述&#xff1a; 思路&#xff1a; 正确代码如下&#xff1a; 时间复杂度分析&#xff1a; 现让你把代码优化时间复杂度为O&#xff08;N&#xff09; 思路&#xff1a; 题述&#xff1a; 给定一个二叉树&#xff0c;判断他是否是高度平衡的二叉树。 本题中&#xf…

HttpRunner自动化之接口关联和常用断言

接口关联 第一个test接口获取token,并提取出存储到变量中&#xff0c;在第二个test接口中直接调用该变量&#xff0c;如下图 # 接口关联 - config:name: 微信接口base_url: https://api.weixin.qq.com - test:name: 获取tokenrequest:url: /cgi-bin/tokenmethod: GETparams:g…

在vue3项目中加载Cesium立体地形信息并调整初始化角度

在vue3项目中加载Cesium立体地形信息并调整初始化角度 使用vite创建vue3项目 npm create vitelatestcd到创建的项目文件夹中 npm install安装Cesium npm i cesium vite-plugin-cesium vite -D配置 &#xff08;1&#xff09;在项目的vite.config.js文件中添加&#xff1a; impo…

Java模拟cookie登陆操作

Java模拟cookie登陆操作 在使用java访问URL时&#xff0c;如果该URL需要身份验证&#xff0c;那么就不能够直接访问&#xff0c;因为没有登陆。那么&#xff0c;如何解决这个问题呢&#xff1f; 方法是使用java模拟登陆&#xff0c;登陆后记录下cookie信息&#xff0c;在下次发…

【算法集训之线性表篇】Day 07

文章目录 题目基本设计思想代码实现效果 题目 一个长度为L(L>1)的升序序列S&#xff0c;处在第[L/2]个位置的数称为S的中位数。例如&#xff0c;若序列S1{11,13,15,17,19},则S1的中位数是15&#xff0c;两个序列的中位数是含它们所有元素的升序序列的中位数&#xff0c;例如…

使用ida pro反编译并修改so库

快速搜索 图表视图 找到需要修改的行 Edit -> Patch program -> change byte… 复制指令 到这个网站Online ARM to HEX 点击可以切换为HEX to ARM 构造待修改的指令 修改好后复制HEX字符串 Edit -> Patch program -> Apply patches to input file

测试工程师的个人年终总结报告模板

目录 正文之前的思考&#xff1a; 年终总结报告 开篇语 1.  项目概述 1.1  项目情况 1.2  工作流程 1.3  个人角色 1.4  完成情况 2.  工作业绩 3.  亮点和不足 4.  未来展望 总结&#xff1a; 正文之前的思考&#xff1a; 开始编排文档之前来做一个…

FAM NHS ester,5-FAM azide,两者用于标记核苷酸的荧光试剂

一、FAM NHS ester,6-isomer&#xff0c;92557-81-8 理论分析&#xff1a; 中文名&#xff1a;羧基荧光素-活性酯&#xff0c;6-异构体&#xff0c;6-羧基荧光素琥珀酰亚胺酯,6-羧基荧光素-活性酯 英文名&#xff1a;FAM NHS ester,6-isomer&#xff0c;6-FAM-NHS&#xff0c;…

D. Survey in Class

D. Survey in Class Problem - D - Codeforces 思路&#xff1a;题目要求的是最大值与最小值的差值最大&#xff0c;那么我们能够想到&#xff0c;一定是两个人比较得到的最大的差值&#xff0c;假设a与b比较得到的最大的差值&#xff0c;因为如果提问了这两个区间都不包含的&…

单个电源模块带电感的直流压降仿真(二)

单个电源模块带电感的直流压降仿真(二) 接 单个电源模块带电感的直流压降仿真(一) 在右侧net manager disable all nets鼠标移动到需要仿真的电感前后两端的铜皮上,select net and enable net并且把GND也select和enable上

ceph用户认证

Cephx认证机制 ceph使用cephx协议对客户端进行身份认证 cephx用于对ceph保存的数据进行认证访问和授权&#xff0c;用于对访问ceph的请求进行认证和授权检测&#xff0c;于mon通信的请求都要经过ceph认证通过&#xff0c;但是也可以在mon节点关闭cephx认证&#xff0c;但是关…

微信小程序的目录结构及页面结构的说明

微信小程序的目录结构及页面结构的说明 1. 项目结构2.小程序的页面组成部分3.项目结构和页面结构文件的一些说明3.1. json文件3.2. wxml和wxss3.2.1. wxml3.2.2. wxss 3.2.3. 小程序中的.js文件 4. 微信小程序的宿主环境及运行机制4.1. 宿主环境4.2. 运行机制4.2.1. 小程序启动…

运营规模突破5万台,绿色慧联启动「望岳计划」!

狙击冲锋问鼎&#xff01;7月7日&#xff0c;绿色慧联“望岳计划”在杭州正式启动。远程新能源商用车集团副总裁兼绿色慧联总经理杨东及运营平台各职能部门、区域运营中心负责人共同参加了会议。 今年绿色慧联正面临更加多变的内外部市场环境&#xff0c;电池原材料价格下滑和整…

华为OD机试真题 Java 实现【宜居星球改造计划】【2023 Q2 200分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 大家好&#xff0c;我是哪吒。 做技术&#xff0c;我是认真的&#xff0c;立志于打造最权威的华为OD机试真题专栏&#xff0c;帮助那些与我有同样需求的人&#xff0…

eclipse安装

下载 https://www.eclipse.org/ 安装 选择web开发 启动项目&#xff0c;让选择工作地址 创建java web项目 选择一下运行时 选择好tomcat服务器finish即可 创建maven项目

Mybatis 学习笔记1:构造方法注入

Mybatis 构造方法注入 最近阅读 Mybatis 3.5.8-SNAPSHOT 版本源码&#xff0c;在调试过程中遇到如下异常&#xff1a; org.apache.ibatis.builder.BuilderException:Error in result map MyEmployee.empResultMap.Failed to find a constructor in MyEmployee by arg names […