一、学习笔记
第一章
1.Unix
Unix是20世纪70年代初出现的一个操作系统,除了作为网络操作系统之外,还可以作为单机操作系统使用。Unix作为一种开发平台和台式操作系统获得了广泛使用,主要用于工程应用和科学计算等领域。
AT&T Unix
Berkeley Unix
HP Unix
IBM Unix
Sun Unix
2.Linux
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。
Debian Linux
Ubuntu Linux
Linux Mint
基于RPM的Linux
Slackware Linux
3.Unix/Linux命令
-
Unix/Linux命令
-
ls:ls dirname:列出CWD或目录的内容。
-
cd dirname:更改目录。
-
pwd:打印CWD的绝对路径名。
-
touch filename:更改文件名时间戳(如果文件不存在,则创建文件)。
-
cat filename:显示文件内容。
-
cp src dest:复制文件。
-
mv src dest:移动或重命名文件。
-
mkdir dirname:创建目录。
-
rmdir dirname:移除(空)目录。
-
rm filename:移除或删除文件。
-
ln oldfile newfile:在文件之间创建链接。
-
find:搜索文件。
-
grep:搜索文件中包含模式的行。
-
ssh:登录到远程主机。
-
gzip filename:将文件压缩为.gz文件。
-
gunzip file.gz:解压.gz文件。
-
tar -zcvf file.tgz .:从当前目录创建tar文件。
-
tar -zxvf file.tgz .:从.tgz文件中解压文件。
-
man:显示在线手册页。
-
zip file.zip filenames:将文件压缩为.zip文件。
-
unzip file.zip:解压.zip文件。ls:ls dirname:列出CWD或目录的内容。
-
cd dirname:更改目录。
-
pwd:打印CWD的绝对路径名。
-
touch filename:更改文件名时间戳(如果文件不存在,则创建文件)。
-
cat filename:显示文件内容。
-
cp src dest:复制文件。
-
mv src dest:移动或重命名文件。
-
mkdir dirname:创建目录。
-
rmdir dirname:移除(空)目录。
-
rm filename:移除或删除文件。
-
ln oldfile newfile:在文件之间创建链接。
-
find:搜索文件。
-
grep:搜索文件中包含模式的行。
-
ssh:登录到远程主机。
-
gzip filename:将文件压缩为.gz文件。
-
gunzip file.gz:解压.gz文件。
-
tar -zcvf file.tgz .:从当前目录创建tar文件。
-
tar -zxvf file.tgz .:从.tgz文件中解压文件。
-
man:显示在线手册页。
-
zip file.zip filenames:将文件压缩为.zip文件。
-
unzip file.zip:解压.zip文件。
第二章
1. 文本编辑器
-
vim
-
命令模式:用于输入命令
- h:将光标向左移动一个字符
- l:将光标向右移动一个字符
- j:将光标向下移动一行
- k:将光标向上移动一行
-
插入模式:用于输入和编辑文本
- i:插入文本
- a:追加文本
-
末行模式:用于保存文件并退出
- :w:写入(保存)文件
- :q:退出vim
- :wq:保存并退出
- :q!:不保存更改,强制退出
-
-
WYSIWYG
- Ctrl+C:中止或退出
- Ctrl+K:删除行到缓冲区
- Ctrl+Y:从缓冲区内容中复制或粘贴
- Ctrl+S:保存已编辑文本等
-
gedit
-
emacs
2.程序开发
-
创建源文件
-
用gcc把源文件转换成二进制可执行文件
-
静态与动态链接库
-
可执行文件格式
- 二进制可执行平面文件
- a.out 可执行文件
- ELF可执行文件
-
a.out文件
- 文件头
- tsize、dsize、bsize、total_size
- 代码段
- 数据段
- 符号表
- 文件头
-
程序执行过程
- 读取a.out文件头,以确定所需的总内存大小。
- sh从总大小中分配一个内存区给执行映像。
- sh放弃放弃旧映像,开始执行新映像。
- 执行从crt0.o开始,调用main()。
-
程序终止
- 正常终止
- 异常终止
3.C语言程序与汇编代码的链接
- 用汇编代码编程
- 将C代码编译成汇编代码
- 汇编代码说明
- 用汇编语言实现函数
- 从汇编中调用C函数
4.链接库
- 动态链接库
- 静态链接库
5.makefile
-
make工具是一个程序,它按照顺序读取makefile,以自动有选择的执行编译链接。
-
一个make文件由一系列目标项、依赖项和规则组成
目标项 依赖项列表 target: file1 file2 ... fileN 规则 < tab > command1 < tab > command2 < tab > other command
-
-
当make程序读取makefile时,通过比较依赖项列表中源文件的时间戳来确定要构建哪些目标项
5.GDB调试工具
- GDB调试工具是一个交互式调试工具,可以调试用C、C++和其他几种语言编写的程序。
- GDB是一个功能强大的调试工具,使用非常简单,但应该注意,所有调试工具只能提供有限的帮助,在某些情况下用处不大,所以程序开发的最佳方法是仔细设计程序的算法,然后根据算法编写程序代码。
6.C语言结构体
- 结构体和指针
- 类型转换
- 链表
- 树和二叉树
二. 问题与解决思路
问题:代码无法在终端运行
解决方法: main前加int 代码末尾加return 0
三、截图
标签:文件,zip,笔记,filename,学习,Unix,file,Linux From: https://www.cnblogs.com/marryj/p/16656062.html