【Linux】管道文件 打包压缩 文本编辑器nano 进度条

news2024/12/30 3:08:01

目录

什么是管道文件?  

打包和压缩

文本编辑器

nano的安装

nano的使用

退出nano编辑,ctrl+x

普通用户无法sudo,该怎么解决

Linux小程序-进度条 

 预备知识

        1.回车换行

        2.缓冲区

准备工作

 代码实现

        1.processBar.h代码编写

        2.main.c代码编写

        3. processBar.c代码编写

结果展示  


什么是管道文件?  

当我们需要从提取的数据信息再进行提取时,我们就需要一个临时文件来存储第一次提取的数据信息,以供第二次进行提取,如下:

 在不创建临时文件的前提下,我们使用管道文件,代码如下:

head -1020 log.txt  |  tail -20

上述代码中," | "是一种符号 ,后面会被"系统"解释称为 管道文件,管道文件不会真的在磁盘中存在,属于内存级的文件。

管道:与现实生活中的管道一样,有一个入口和一个出口,数据从管道的入口进入,另一方从管道的出口拿取数据。

管道也可以实现连续提取数据,如下:

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

通常支持上述的流水线工作。

打包和压缩

为什么?

  • 能被打包和压缩的,一定是一个整体,由多个文件 -> 一个文件,好处是不容易造成文件缺失
  • 打包压缩,体积变小 --如果未打包压缩,下载时间变长,存储空间变大

安装zip/unzip

yum install -y zip unzip

打包和压缩的方案有很多

tar czf xxx  ----打包压缩

tar tzf  xxx.tgz  ----预览

tar  xzf xxx.tgz   ----解压解包

tar  ->  打包后缀

.gz  ->  压缩后缀

xxx.tar.gz  --->  xxx.tgz

文本编辑器

Linux下的记事本 nano

nano的安装

nano --version  //判断是否已经安装了nano,如以下情况是已经安装了

//安装指令

yum install -y nano

nano的使用

nano text.c  //进入文件开始编写

退出nano编辑,ctrl+x

普通用户无法sudo,该怎么解决

把用户添加进用户信任列表里 ,即白名单里,而Linux所谓的白名单就在

/etc/sudoers 

普通用户是无法修改配置文件的,需要在管理员身份root下

vim  /etc/sudoers 

进入配置文件后,找到如下位置

 在这里添加需要执行sudo命令的用户,下图所示是用户名

Linux小程序-进度条 

 预备知识

        1.回车换行

                回车换行是两个动作;

                回车是将光标移至当前行的最左侧,

                换行是将当前光标位置移至下一行的相同位置。

        2.缓冲区

                由c语言维护的一段内存 

                1.stdout:标准输出 

                2.stdin  :标准输入

                3.stderr:标准错误

                linux系统中,一般是缓冲区满或者程序运行结束后进行刷新,这样达不到我们想要的效果,于是我们用fflush清空缓冲区,强制刷新。

准备工作

        1.创建三个文件

        2.在processBar.h 和 main.c 中写入以下内容

        3.创建makefile文件,将上述processBar.c和main.c两个文件一次编译形成可执行文件 

         

 代码实现

        1.processBar.h代码编写

  1 #pragma once //防止头文件重复包含
  2 #include<stdio.h>
  3 #define BODY '-'  //设置进度条的身体样式
  4 #define RIGHT '>' //设置进度条的头部样式
  5 #define NUM 102    
  6 #define TOP 100    //设置倒计时时长
  7 void processbar(int speed);  //声明进度条函数

        2.main.c代码编写

  1 #include "processBar.h" 
  2 int main()
  3 {
  4     processbar(50000);  //调用倒计时函数                                                                               
  5     return 0;
  6 }   

        3. processBar.c代码编写

#include "processBar.h"
#include <string.h>
#include <unistd.h>
//设置进度条的颜色
#define YELLOW "\033[1;33m"
#define NONE "\033[m"
//设置进度条旁边的转动圈
char  *lable="|/-\\";
void processbar(int speed)
{
    char bar[NUM];
    memset(bar,'\0',sizeof(bar));
    int cnt=0;
    int len=strlen(lable);
    while(cnt<=TOP)
    {
        printf("["YELLOW"%-100s"NONE"]""[%d%%][%c]\r",bar,cnt,lable[cnt%len]);                        
        fflush(stdout); //强制刷新
        bar[cnt++]=BODY;
        if(cnt<100) bar[cnt]=RIGHT;
        usleep(speed); // sleep(1) 这边采用毫秒为单位快一点
   }
   printf("\n");
}

结果展示  

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

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

相关文章

优秀的电机驱动MCU:MM32SPIN360C

DC-DC电源布局注意点&#xff1a; 电源模块布局布线可提前下载芯片的datasheet&#xff08;数据表&#xff09;&#xff0c;按照推荐的布局和布线进行设计。 1) 芯片电源接近原则&#xff1a; 对于为芯片提供电压的开关电源&#xff0c;应确保它尽量靠近芯片放置。这样可以避…

一周学会Django5 Python Web开发-项目配置settings.py文件-资源文件配置

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计17条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

开关电源电路主要元器件基础知识详解

在学习电子电路过程中&#xff0c;电源我们无法绕开的一个重要部分&#xff0c;很多时候&#xff0c;故障就出现在电源部分&#xff0c;特别是开关电源。开关电源电路主要是由熔断器、热敏电阻器、互感滤波器、桥式整流电路、滤波电容器、开关振荡集成电路、开关变压器、光耦合…

使用 RAG 创建 LLM 应用程序

如果您考虑为您的文件或网站制作一个能够回应您的个性化机器人&#xff0c;那么您来对地方了。我可以帮助您使用Langchain和RAG策略来创建这样一个机器人。 了解ChatGPT的局限性和LLMs ChatGPT和其他大型语言模型&#xff08;LLMs&#xff09;经过广泛训练&#xff0c;以理解…

七天入门大模型 :大模型量化及低成本部署最佳实践

七天入门大模型已完成了5篇&#xff0c;喜欢记得收藏、关注、点赞。 七天入门大模型 &#xff1a;LLM大模型基础知识最全汇总七天入门大模型 &#xff1a;提示词工程 Prompt Engineering&#xff0c;最全的总结来了&#xff01;七天入门大模型 &#xff1a;LLM和多模态模型高效…

OpenAI发布Sora,另一个层次的黑科技

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

清除Django的管理员admin站点中“Recent Actions“最近活动面板上的所有信息

清除Django的管理员admin站点中"Recent Actions"最近活动面板上的所有信息 本文主要介绍了如何清除Django的管理员admin站点中"Recent Actions"最近活动面板上的所有信息 操作步骤如下 进入Django项目目录中运行代python manage.py shell进入Django shell…

贪心第一天,别太贪了

今天是贪心第一天&#xff0c;做376. 摆动序列时脑子都要干烧了&#xff0c;贪心的题还是很有意思的&#xff0c;对于理论知识&#xff0c;我觉得做题的时候就想这两个问题吧&#xff1a; 如何找到局部最优解呢&#xff1f;用这个局部最优解模拟示例后能通过吗&#xff1f; 455…

Transformer面试十问

1 Scaled Dot-Product Attention中为什么要除以 d k \sqrt{d_k} dk​ ​? 1. 从纯数学上考虑&#xff1a;对于输入均值为0,方差为1的分布&#xff0c;点乘后结果其方差为dk&#xff0c;所以需要缩放一下。下图为原论文注释。 2. 从神经网络上考虑&#xff1a;防止在计算点积…

【Linux】程序地址空间 -- 详解 Linux 2.6 内核进程调度队列 -- 了解

一、程序地址空间回顾 在学习 C/C 时&#xff0c;我们知道内存会被分为几个区域&#xff1a;栈区、堆区、全局/静态区、代码区、字符常量区等。但这仅仅是在语言层面上的理解&#xff0c;是远远不够的。 如下空间布局图&#xff0c;请问这是物理内存吗&#xff1f; 不是&…

C语言scanf函数详解..

1.前言 前面说过了printf函数 他是将二进制表示的整数、浮点数、字符、字符串根据转换规范转换成字符或者字符串 并且打印到了控制台上 那么既然有了输出函数 那么肯定也有输入函数咯 的确如此 他就是scanf函数 他是将字符或者字符串根据转换规范转换成二进制表示的整数、浮点…

Conda管理Python不同版本教程

Conda管理Python不同版本教程 目录 0.前提 1.conda常用命令 2.conda管理python库 不太推荐 pyenv管理Python不同版本教程&#xff08;本人另一篇博客&#xff0c;姊妹篇&#xff09; 0.前提 ①anaconda、miniconda在win上推荐前者&#xff0c;在linux上推荐后者&#xff0…

随机过程及应用学习笔记(一)概率论(概要)

概率是随机的基础&#xff0c;在【概率论&#xff08;概要&#xff09;】这个部分中仅记录学习随机过程及应用的基本定义和结果。 前言 首先&#xff0c;概率论研究的基础是概率空间。概率空间由一个样本空间和一个概率测度组成&#xff0c;样本空间包含了所有可能的结果&…

LCR 127. 跳跃训练【简单】

LCR 127. 跳跃训练 题目描述&#xff1a; 今天的有氧运动训练内容是在一个长条形的平台上跳跃。平台有 num 个小格子&#xff0c;每次可以选择跳 一个格子 或者 两个格子。请返回在训练过程中&#xff0c;学员们共有多少种不同的跳跃方式。 结果可能过大&#xff0c;因此结果…

Transformer——Attention 注意力机制

注意力机制 Transformer的注意力机制借鉴了人类的注意力机制。人类通过眼睛的视觉单元去扫描图像&#xff0c;其中的重点区域会被大脑的神经元处理从而获得更多的信息&#xff0c;这是人类长期精华所获得的一种能力。 以论文中的例子来看&#xff0c;红色区域表示我们人脑视觉…

linux内核模块find_module()函数详解--02

亲爱的粉丝朋友们大家好&#xff0c;为了更好的服务大家&#xff0c;提升分析问题和解决问题的能力&#xff0c;先针对Linux内核里面的API函数进行详细分析&#xff0c;并利用案例进行说明&#xff0c;加强对内核API函数的认识。 第一&#xff1a;函数原型 //头文件包含 #incl…

晨曦记账本,微信账单全解析,轻松掌握收支明细与总花销!

在这个数字化时代&#xff0c;微信已不仅仅是一个简单的社交工具&#xff0c;更是我们日常生活中不可或缺的支付与收款平台。从购买早餐、支付水电费到线上购物&#xff0c;微信支付已经渗透到我们生活的方方面面。然而&#xff0c;你是否曾经对自己的微信消费产生过疑惑&#…

线程的状态与切换

文章目录 线程的状态与切换一、线程的状态1、操作系统层面&#xff08;5种&#xff09;2、Java_API层面&#xff08;6种&#xff09; 二、让出时间片 - yield三、线程插队 - join1、源码分析2、应用1 - 等待线程结果3、应用2 - 控制执行顺序 四、计时等待 - sleep五、等待唤醒 …

2024春节联欢晚会刘谦魔术分析

春晚已经越来越拉胯了&#xff0c;看着节目单没一个能打的&#xff0c;本来想说&#xff1a;办不起&#xff0c;就别办呗。 没想到第二天刘谦的魔术以一种很奇特的姿势火起来了&#xff0c;干脆蹭个热度&#xff0c;分析下魔术的原理。 魔术1 这个不算什么新奇的节目&#xf…

老师的“神秘武器”——教育战线的宝藏工具

每次考试成绩发布&#xff0c;是不是总让你头疼不已&#xff1f;面对一摞摞试卷&#xff0c;一个个需要手动输入的成绩&#xff0c;你是否也感到力不从心&#xff1f;别急&#xff0c;今天我就为大家揭秘老师们的“神秘武器”——那些在教育战线上&#xff0c;让老师们事半功倍…