一、centOS里编写一段C语言代码
- 在filesystem中创建新的文件夹export
- mkdir export《文件夹名字》 +enter ls命令查看文件,rmdir删除
- 在export文件夹中,打开终端
- vi +文件名 进入编辑器,进入命令行模式
vi recurs.c
该命令是在export的根目录下创建了新的class类文件,名字叫做recurs,并进入编译器
- 敲一个 Esc键或 i进入insert编辑模式 , Esc退出
- 就能写c语言了
- 末行敲 :wq 保存退出vi编辑
- gcc +文件名 运行c代码
gcc recours.c -o a
刚刚创建的a,运行的结果都保存在这个名字叫a的文件中。其中-o ,o是output的缩写(输出)
./a 展示运行的结果
二、文件处理命令:
1.ls
list,列出参数的属性信息,ls【选项】【参数】
选项 | 说明 |
-l | 以详细信息的形式展示出当前目录下的文件 |
-a | 显示当前目录下的全部文件(包括隐藏文件) |
-d | 查看目录属性 |
-t | 按创建时间顺序列出文件 |
-i | 输出文件的inode编号 |
-R | 列出当前目录下的所有文件信息,并以递归地方式显示各个子目录中的文件和子目录信息 |
示例:ls -a
注:在选项和参数都缺省的情况下,ls命令默认打印当前路径下的文件名
.和..表示linux系统中两个特殊的目录,分别表示当前目录和上一级目录
ls -l file
使用“ls –l”命令查看目录信息时,会得到目录文件数量统计和一个由空格划分的7个字段的列表,该列表的每个字段所表示的信息依次为:文件类型与权限、硬链接数、所有者、所有者所属组、所占空间、时间戳、文件名。
也就是 -l 选项就是用一行的形式来展现
2.cd
change directory,切换目录,cd+参数
cd ./Public 切换到以当前目录为相对路径的Public目录中
cd .. 切换工作路径到上一级目录
cd /etc/yum 切换到绝对路径/etc/yum目录中
cd ~ 切换到当前用户的家目录
注:./是相当路径,/ 是绝对路径
3.pwd
print working directory,打印当前工作目录的绝对路径
4.touch
更新已存在文件的时间标签,若文件不存在就创建该文件,touch+参数
示例:
touch hello.c
5.mkdir
make directory, 创建目录,mkdir+【选项】+参数
选项 | 说明 |
-p | 若路径中的目录不存在,则先创建目录; |
-v | 查看文件创建过程。 |
mkdir –pv ./testmkdir/itheima
注:①第2、3行信息为使用-v选项打印的创建过程。
②因使用-p选项,所以会创建路径中不存在的目录
6.cp
copy,将一个或多个文件复制到指定的目录,cp 【选项】 文件名 目标目录
选项 | 说明 |
-R | 递归处理,将指定目录下的文件及子目录一并处理 |
-p | 拷贝的同时不修改文件属性,包括所有者、所属组、权限和时间 |
-f | 强行复制文件或目录,无论目的文件或目录是否已经存在 |
示例:
cp –R dir ./testmkdir/itheima
7.mv
move,将一个或多个文件移动到指定目录,mv 文件名 目标文件
8.rm
remove,删除文件或目录,rm 【选项】 文件夹或目录
选项 | 说明 |
-f | 强制删除文件或目录 |
-rf | 选项-r与-f结合,删除目录中所有文件和子目录,并且不一一确认 |
-i | 在删除文件或目录时对要删除的内容逐一进行确认(y/n) |
rm –rf ./testmkdir
9.rmdir
删除目录,rmdir [选项] 目录
示例:rmdir export
rmdir -p ./itheama/itcast注:图上的用意是先创建了一个目录,然后用来删除那个目录,递归的方式把这两级目录一起删掉了,然后你再去删除上一级目录,系统提示这个目录已经不存在了
rm 命令能删除文件和目录,rmdir只能删目录
三、文件搜索命令
1.which
查看某个命令所在路径,which 命令
示例:which ls
选项 | 说明 |
-name | 根据文件名查找 |
-size | 根据文件大小查找 |
-user | 根据文件所有者查找 |
2.find 和 locate
借助搜索关键字(文件名,文件大小,文件作者)查找文件或目录,
find 搜索路径 【选项】关键字
locate [选项] 搜索关键字
选项 | 说明 |
-name | 根据文件名查找 |
-size | 根据文件大小查找 |
-user | 根据文件所有者查找 |
示例:find /ect -name passward
locate与find的区别
· locate速度远胜find,开始查询之前先执行updatedb
· find搜索整个目录,locate搜索数据库/var/lib/locatedb
· 即便文件存在,数据库中没有记录,locate便搜索不到
3.grep
在文件中搜索与字符串相匹配的行并输出,grep 指定字符 文件名
grep itheima /etc/passwd
四、Linux常用工具
1.Vi编辑器是Linux系统下最基本的编辑器,工作在字符模式下,工作模式分为命令模式、插入模式和底行模式。
vi +文件名 指令就可以通过vi编辑器编辑该文件
如果想要重新进入命令模式,需要连续按两次Esc键,会在左下角弹窗‘:’符号表示进入末行模式。
:wq ====》保存并推出
:q! ====》退出不保存
2.GCC编译器是由GUN开发的编程语言编译器,现已可编译C语言、Java、OC等多种编程语言。
gcc编译过程分成四个步骤,分别是预处理,编译,汇编和链接
预处理:就是把c文件改为扩展名为i的文件,即头文件展开,去除注释,宏替换(比如,把Π改成3.1415826)可以理解为各就各位
编译:检查源代码中有无语法,词法语义错误,并生成汇编代码
汇编:将汇编代码转换成二进制指令
连接:插入启动代码(.o格式)组装目标文件,解决符号依赖和库依赖的问题,生成可执行文件
gcc 命令参数:
单文件命令:gcc hello.c
-v 查看版本号
-c 只进行到编译,生成.o文件,不进行连接过程。
-o output 将运行的结果输出到一个新的文件中(.out)
gcc hello.c -o (新文件名)
-wall 提示更多的错误信息,gcc file.c -o a -wall
3.GDB是就是Linux系统中的的Dbug系统
GDB 常用命令
start 运行代码,start 单步执行,运行程序,停在第一执行语句(main)
list 《函数名》 观看函数,查看代码,可以跟行号和函数名
help 按模块列出命令类
step 逐语句执行,遇到函数,调到函数内执行
next 逐过程执行
print 打印变量和地址,后跟变量名
set 设置变量的值,set var n=3
break 设置断点,可以根据行号和函数名
info 查看GDB内部局部变量的数值,info breakpoint(查看断点)
delete breakpoint 删除断点
quit 退出gdb
run 全速运行程序
*core文件,核心已转储
五、创建三子棋小游戏
1.首先在一个新的目录中新建一个.h 结尾的头文件
运用指令,用vi编辑器打开所创建的头文件
vi game00.h
点i键,进入insert模式。
编写如下代码(头文件中的内容只是起到定义宏,和提前声明的功能)
#define ROW 3
#define COL 3
#include <stdio.h>
#include <sedlib.h>
#include <time.h>
void IntBoard(char[ROW][COL],int row ,int col);
void DisplayBoard(char[ROW][COL],int row,int col);
void PlayMove(char[ROW][COL],int row,int col);
void ComputerMove(char[ROW][COL],int row,int col);
void IsWin(char[ROW][COL],int row,int col);
void IsFull(char[ROW][COL],int row,int col);