linux常见指令下

这篇具有很好参考价值的文章主要介绍了linux常见指令下。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接下来我们就聊聊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行显示到屏幕中去。

linux常见指令下,linux,运维,服务器

六 head

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

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

linux常见指令下,linux,运维,服务器

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

linux常见指令下,linux,运维,服务器

 我们可以对数据一步步加工,先对数据做截取尾尾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 顺便输出行号

linux常见指令下,linux,运维,服务器

十 uname -r

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

-a选项会输出所有详细信息依次是内核名称,主机号,内核版本号等,了解了解即可文章来源地址https://www.toymoban.com/news/detail-555198.html

[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

到了这里,关于linux常见指令下的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【运维】Linux 跨服务器复制文件文件夹

    如果是云服务 建议用内网ip scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来

    2024年02月08日
    浏览(74)
  • 连接云服务器及Linux常用指令学习

    1、通过系统终端连接云服务器(需要有ssh) win+R,输入cmd进入终端 输入命令:ssh ubuntu@ip号,注意:腾讯云服务器默认用户为ubuntu而阿里云默认用户为root                    2、通过XShell连接云服务器  点击连接后会弹出一个弹框需要填写用户名,腾讯云服务器填ubuntu,阿里

    2024年02月06日
    浏览(57)
  • 【Linux 服务器运维】定时任务 crontab 详解 | 文末送书

    本文思维导图概述的主要内容: 1.1 什么是 crontab Crontab 是一个在 Unix 和 Linux 操作系统上 用于定时执行任务 的工具。它允许用户创建和管理计划任务,以便在特定的时间间隔或时间点自动运行命令或脚本。Crontab 是 cron table 的缩写, cron 指的是 Unix 系统中的一个后台进程,它

    2024年02月08日
    浏览(92)
  • 常见Linux服务器框架

    LAMP环境是一个常见的Web服务器架构,其中“L”代表Linux操作系统,“A”代表Apache HTTP服务器,“M”代表MySQL数据库,“P”代表PHP编程语言。 以下是在Linux操作系统上搭建LAMP环境的详细步骤: 1.安装Apache HTTP服务器 在终端窗口中运行以下命令: 这将安装最新版本的Apache HTTP服

    2023年04月20日
    浏览(48)
  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(67)
  • Linux 配置常见服务器命令

    Linux常见配置服务器的命令整理,基于Centos 7 。 配置web nginx msyql 这里再附一份nginx详细配置文件(一般用于项目部署):

    2024年02月16日
    浏览(48)
  • Linux本地部署1Panel服务器运维管理面板并实现公网访问

    1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器,包括主机监控、文件管理、数据库管理、容器管理等 下面我们介绍在Linux 本地安装1Panel 并结合cpolar 内网穿透工具实现远程访问1Panel 管理界面 执行如下命令一键安装 1Panel: 安

    2024年02月04日
    浏览(98)
  • Linux下常见的代理服务器软件介绍

    在Linux系统中,代理服务器是我们搭建网络环境和处理网络请求的常用工具。但是,你知道Linux下常见的代理服务器软件有哪些吗?本文将为你带来对几款常见的Linux代理服务器软件的介绍,帮助你选择适合的代理服务器。 一、Squid(Squid Proxy Server) Squid是一款功能强大的开源

    2024年02月12日
    浏览(50)
  • [1Panel]开源,现代化,新一代的 Linux 服务器运维管理面板

    本期测评试用一下1Panel这款面板。1Panel是国内飞致云旗下开源产品。整个界面简洁清爽,后端使用GO开发,前端使用VUE的Element-Plus作为UI框架,整个面板的管理都是基于docker的,想法很先进。官方还提供了视频的使用教程,本期为大家按照本专栏的基本内容进行多方面的测评。

    2024年02月07日
    浏览(95)
  • Linux 服务器文件名乱码常见问题

    在 Linux 服务器中,文件名乱码是一个常见的问题,特别是当涉及到多语言字符集时。这可能导致文件名显示异常,无法正确识别和处理文件。本文将介绍一些常见的文件名乱码问题以及相应的解决方法。 字符集问题 文件名乱码的一个常见原因是字符集不匹配。当文件名包含

    2024年02月05日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包