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

结果展示  

  • 28
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值