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

目录

什么是管道文件?  

打包和压缩

文本编辑器

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");
}

结果展示  

相关推荐

  1. Linux Nano命令详解:小而强大的文本编辑器

    2024-02-22 23:28:03       46 阅读
  2. Linux文件压缩文件管理

    2024-02-22 23:28:03       13 阅读
  3. linux 系列文章目录 - 打包压缩命令之tar命令

    2024-02-22 23:28:03       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-22 23:28:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-22 23:28:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-22 23:28:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-22 23:28:03       20 阅读

热门阅读

  1. springboot接收base64文件并上传

    2024-02-22 23:28:03       25 阅读
  2. 【达梦数据库】查看pesg回滚段信息的视图和SQL

    2024-02-22 23:28:03       28 阅读
  3. 数学术语之源——插值(interpolation)

    2024-02-22 23:28:03       32 阅读
  4. C和C++编译器标识符

    2024-02-22 23:28:03       33 阅读
  5. MQL语言实现单元测试

    2024-02-22 23:28:03       24 阅读
  6. 机器学习系列-机器学习范式

    2024-02-22 23:28:03       28 阅读
  7. RK3568 speex speexdsp降噪算法移植

    2024-02-22 23:28:03       33 阅读
  8. windows 10 和 11 的3个杀招软件

    2024-02-22 23:28:03       37 阅读
  9. Luogu P6175 无向图的最小环问题 题解 Floyd

    2024-02-22 23:28:03       35 阅读
  10. 带你了解软件系统架构的演变

    2024-02-22 23:28:03       31 阅读
  11. jQuery的应用(二)

    2024-02-22 23:28:03       31 阅读
  12. KMP算法

    KMP算法

    2024-02-22 23:28:03      25 阅读
  13. 详解小程序配置服务器域名

    2024-02-22 23:28:03       30 阅读