Linux基础知识
1 shell
shell 是一个命令行解释器,它读取用户输入,然后执行;
2 文件和目录
文件命名一般限制在字母、数字、短线(-)、下划线(_);创建新目录时会自动创建两个文件名 ——.(点)和..(点点),分别代表指向当前目录,以及父目录,即向上跳转一级到它的上级目录】;chdir是相当于控制台的cd指令,换路径,此后文件可以 ./ 的相对路径形式打开,直接 / 表示跳转到根目录。
//读取文件夹内各个文件的名称
#include <iostream>
#include <dirent.h>
#include <stdlib.h> //包含了opendir,readdir,dirent结构体的定义和声明;
#include <unistd.h> //如果要使用chdir,需声明
int main(int argc,char* argv[])
{
DIR *dp;
struct dirent *dirp; //d_ino,文件唯一编号,d_name,文件名char[]
if(argc!=2)
{
printf("参数输入不正确!\n");
exit(EXIT_FAILURE);
}
//chdir(argv[1]); //输入文件夹
//如果使用chdir ,下面可以换成 dp = opendir("."))==NUL,表示相对路径
if((dp = opendir(argv[1]))==NULL)
{
printf("FirDirectory can't be founded!\n");
exit(EXIT_FAILURE);
}
while((dirp=readdir(dp))!=NULL)
{
printf("%s\n",dirp->d_name);
}
closedir(dp);
return 0;
}
//运行结果
$ ./learn20260716 > file.list
$ cat file.list
参数输入不正确!
在终端中,可以使用命令来打印输出内容,其中,echo:输出你直接写的文字,源头是命令行字符串; cat:读取文件里存的内容再输出,源头是磁盘文件。“>”代表写入,覆盖写,“>>”则为追加写,在文件末尾写入;两者都可以写入内容到文件中。(ps: cat是concatenate的缩写,所以,该指令也可以拼接多个文件到一个文件中cat a.txt b.txt > c.txt)
3 程序和进程
程序是一个存储在磁盘上某个目录中的可执行文件;进程是指程序的执行实例,操作系统确保每一个进程都有一个唯一数字标识符,称为进程ID,他总是一个非负整数。(get progress id);同时,对于磁盘中的每个文件,文件系统都存储了该文件所有者的用户ID和组ID(getuid(),getgid())。
printf("Current process ID %d.\n",getpid());
//运行结果
$ g++ learn20260716.cpp -o learn20260716
$ ./learn20260716
Current process ID 121.
$ ./learn20260716
Current process ID 122.
4 出错处理
当系统函数出错时,通常返回一个负值,而整型变量 errno 通常被设置为具有特定信息的值。(error number)
#include <iostream>
#include <dirent.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
int main(int argc,char* argv[])
{
fprintf(stdout,"EACCES: %s\n",strerror(EACCES));
errno = ENOENT;
perror(argv[0]);
return 0;
}
//运行结果
$ g++ learn20260716.cpp -o learn20260716
$ ./learn20260716
EACCES: Permission denied
./learn20260716: No such file or directory
EACCES:权限不足错误码,Error Access;ENOENT:文件 / 目录不存在错误码,Error No Entry。
5 时间值
当度量一个进程的执行时间时,UNIX系统为一个进程维护了3个进程时间值;
- 时钟时间:正常日历上的时间;
- 用户CPU时间:执行用户指令所需要的时间;
- 系统CPU时间:该进程内核程序所经历的时间。
6 知识点回顾
| 主题 | 相关操作 |
| 文件 |
#include <dirent.h> DIR,struct dirent类型(.d_name),opendir, readdir,closedir; #include <string.h> chdir; |
| 输出指令 | echo, cat |
| ID |
进程ID:getpid(); 用户ID:getuid(); 组ID:getgid(). |
| 错误 | #include <errno.h> errno错误整型,EACCES,ENOENT, perrno(); |
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)