目录
编辑
一、Linux 系统
1.1.Linux服务器
1.2.Linux嵌入式
1.3.Linux系统上的软件开发
1.操作系统
2.Linux内核
3.man手册
1.4.shell命令
1.基本命令
2.文件查看命令
3.文件查找命令
4.压缩解压文件
5.其他命令
6.通配符
7.管道
8.重定向
1.5.虚拟机上网
1.NAT模式
2.桥接模式
1.6.配置软件源
编辑 编辑
1.7.安装sougou输入法
1.8.安装vscode
1.9.安装命令
二、Linux系统文件
三、I/O流
3.1.标注I/O流
3.2.特殊流
3.3.缓存
2.4.函数接口
1.fopen(打开文件流)
2.fclose(关闭文件流)
3.setvbuf (修改流的缓存类型)
4.fgetc、fputc
四、总结
一、Linux 系统
1.1.Linux服务器
开源、免费、运行速度快
1.2.Linux嵌入式
Linux系统可裁剪
1.3.Linux系统上的软件开发
1.操作系统
屏蔽底层不同的硬件平台
2.Linux内核
Linux操作系统的核心代码,包括对CPU管理、硬件设备管理、内存管理、文件系统管理、进程调度管理;
Shell作用:
保护内核
命令解释器
用户直接操作内核:
不安全
接口功能复杂
3.man手册
1.标准命令2.系统调用3.库函数4.设备说明5.文件格式6.娱乐7.杂项8.管理员命令
1.4.shell命令
1.基本命令
1.lsls -a ls -l 2.mkdir 3.rmdir 4.touch 5.rm -rf 6.pwd 7.cp 8.mv
2.文件查看命令
1.cat 文件名 查看文件中的内容2.grep 字符串 文件名在文件名对应的文件中查找字符串相关的行3.head -n 文件名查看文件中的前n行4.tail -n 文件名查看文件中的最后n行
3.文件查找命令
1.find 路径 -name 文件名 在路径下查找文件名对应的文件2.locate 文件名查找文件名对应的文件所在的路径 3.whereis 文件名查找已经安装的二进制文件所在路径
4.压缩解压文件
.tar.gz
.tar.bz2
压缩:tar -zcvf 文件名.tar.gz 文件名/*tar -jcvf 文件名.tar.bz2 文件名/*解压:tar -zxvf 文件名.tar.gztar -jxvf 文件名.tar.bz2
5.其他命令
du -m/k 文件名 查看文件占用的空间大小(Mb/Kb) echo
6.通配符
*:匹配任意长度任意字符的文件名?:匹配一位长度任意字符的文件名 [a-z]:匹配a-z之间的任意字符[1-9]:匹配1-9之间的任意字符
7.管道
将前面命令的输出作为后续命令的输入 ps -ef | grep bash 查看进程中与bash相关的进程
8.重定向
> 覆盖重定向>> 追加重定向
1.5.虚拟机上网
1.NAT模式
将虚拟机网络模式设置为NAT模式:
点击虚拟机,然后点击设置
找到网络设配器,切换位NAT
配置ubantu网卡位自动获取IP地址
打开网卡配置文件
sudo vim /etc/network/interfaces
将文件内容修改为如下形式
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet dhcp
重启网络服务
sudo /etc/init.d/networking restart
使用ifconfig查看IP地址
.测试与百度是否能够连通
ping www.baidu.com
2.桥接模式
需要手动配置网络IP
1.6.配置软件源
1.点击"Ubuntu Software"
2.对左上角图标右键"Software & Updates"
3.DownLoads From选择 Other中的 China ali源
4.点击close
输入以下命令sudo apt-get autoclean清除旧源 sudo apt-get update 更新新源sudo apt-get install -f 重建软件源依赖关系
1.7.安装sougou输入法
1.能够上网2.apt-get的源已经配置成功3.下载fcitx框架sudo apt-get install fcitx4.在sougou官网下载 x86版本Linux平台deb安装包软件5.将其下载后拷贝到Ubuntu系统中6.安装软件sudo dpkg -i sougoupinyin*.deb7.配置搜狗输入法8.缺少qt的库:sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2sudo apt install libgsettings-qt19.重启系统
1.8.安装vscode
1.能够上网2.apt-get的源已经配置成功3.在vscode官网下载 x86版本Linux平台deb安装包软件4.将其下载后拷贝到Ubuntu系统中5.安装软件sudo dpkg -i code*.deb6.配置vscode 可以安装C开发相关插件
1.9.安装命令
二、Linux系统文件
文件分类:1.block b 块设备文件 按块扫描设备信息的文件2.char c 字符设备文件 按字符扫描设备信息的文件 3.directory d 目录文件 保存或管理文件4. - 普通文件 保存数据信息的文件(代码、图片、音视频、压缩包等)5.link l 链接文件 指向其他文件的文件 6.socket s 套接字文件 用于进程间通信 7.pipe p 管道文件 用于进程间通信
三、I/O流
3.1.标注I/O流
stdio.h 主要操作普通文件 1.打开文件 2.读写文件 3.关闭文件
3.2.特殊流
stdin 标准输入流 行缓存stdout 标准输出流 行缓存stderr 标准错误流 不缓存gets、getchar、scanf是基于stdin实现的puts、putchar、printf是基于stdout实现的 perror是基于stderr
3.3.缓存
1.全缓存 4096 4k 缓存区满刷新与文件建立的缓存一般为全缓存刷新条件:1.缓存区存满了刷新2.fflush函数接口刷新3.关闭流时会刷新
-----------------------------------------------------------------2.行缓存 1024 1k遇到\n刷新 与终端建立的缓存都是行缓存刷新条件: 1.缓存区满刷新 2.遇到\n刷新 3.fflush函数刷新 4.关闭流时会刷新-----------------------------------------------------------------3.不缓存 0 0k立即刷新 刷新条件:1.立即刷新1.对设备的操作不允许缓存2.通信不允许缓存3.出错处理不缓存
2.4.函数接口
1.fopen(打开文件流)
FILE *fopen(const char *pathname, const char *mode);功能:打开pathname对应的文件并建立一个文件流参数:pathname:文件路径mode:打开方式r 只读 如果文件存在则只读打开如果文件不存在报错r+ 读写 如果文件存在则读写打开如果文件不存在报错w 只写 如果文件存在则清0,只写打开 如果文件不存在则创建w+ 写读 如果文件存在则清0,读写打开 如果文件不存在则创建a 追加只写 如果文件存在则追加只写打开 如果文件不存在则创建a+ 追加读写 如果文件存在则追加读写打开 如果文件不存在则创建返回值:成功返回FILE*的指针失败返回NULL并且将错误码置位
2.fclose(关闭文件流)
int fclose(FILE *stream);功能: 关闭流 参数: stream:文件流返回值:成功返回0 失败返回EOF(-1)
3.setvbuf (修改流的缓存类型)
int setvbuf(FILE *stream, char *buf, int mode, size_t size);功能:改变流的缓存类型参数:stream:文件流buf:缓存区的首地址 mode: _IOFBF 全缓存_IOLBF 行缓存_IONBF 不缓存size:缓存区大小返回值:成功返回0 失败返回非0
4.fgetc、fputc
int fgetc(FILE *stream);功能:从流中取出一个字符参数:strean:文件流指针返回值:成功返回该字符的ASCII失败或者读到文件末尾返回EOF(-1)----------------------------------------------------------------int fputc(int c, FILE *stream);功能:向流中写入一个字符 参数:c:写入的字符stream:文件流指针返回值:成功返回写入字符的ASCII码值失败返回EOF(-1)
四、总结
今天是2024年7月30日,已经过去半个月啦。今天学习了Linux系统的基本文件类型、内核、shell命名、网络配置、软件源配置以及软件安装,还有就是重要的Linux软件编程里的I/O流、函数接口。总体感觉编程难度提升了,不过继续加油!
加油!