html5 网站开发,哪里有网站监控工具,廊坊建设网站公司,广西建设厅网站首页目录
什么是管道文件#xff1f;
打包和压缩
文本编辑器
nano的安装
nano的使用
退出nano编辑#xff0c;ctrlx
普通用户无法sudo#xff0c;该怎么解决
Linux小程序-进度条 预备知识 1.回车换行 2.缓冲区
准备工作 代码实现 1.processBar.h代码编写 2.main.c代…目录
什么是管道文件
打包和压缩
文本编辑器
nano的安装
nano的使用
退出nano编辑ctrlx
普通用户无法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编辑ctrlx 普通用户无法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 #includestdio.h3 #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 cnt0;int lenstrlen(lable);while(cntTOP){printf([YELLOW%-100sNONE][%d%%][%c]\r,bar,cnt,lable[cnt%len]); fflush(stdout); //强制刷新bar[cnt]BODY;if(cnt100) bar[cnt]RIGHT;usleep(speed); // sleep(1) 这边采用毫秒为单位快一点}printf(\n);
}
结果展示