一、文件和目录相关命令
pwd:显示用户在系统文件中的当前位置。
cd:切换目录。
ls:查看当前目录下文件。 ls -a:不忽略以“.”开头的文件。
ls -l:以长格式显示(文件名称,文件大小,最后一次修改时间)。 ls -R:如果文件中还有文件,会递归显示。
权限类型:读(r),写(w) , 执行(x),无权限(-)。
查看文件内容:
cat -s 多个空行合并成一个空行显示。
-b 加行号显示。
nl 加行号显示
head -n文件名 (显示前n行,默认显示前十行)
tail -n文件名 (显示后n行,默认显示后十行)
cp复制
cp -r 复制文件夹
cp -i 覆盖时交互提示
mv 移动
(例:mv test.c ../ 移动test.c文件 ;mv test2.c test_second.c 重命名; mv test3.c ../test_three.c移动并且重命名)
touch 创建文件 (touch不存在的文件是创建文件,touch存在的文件是改时间戳)
rm 删除文件
rm -i 删除文件
rm -r 删除文件夹
mkdir 创建文件夹 -p 级联创建
二、vi编辑器使用
vi有三种模式:
命令行模式 ,插入模式 ,底行模式;
命令模式:用户在进入vi编辑文件时可以进行复制、粘贴等操作。
插入模式:进行文件编辑,按esc键可以回到命令行。
底行模式:光标位于屏幕的底行。可以进行保存、查找、替换、列出行号等。
vi模式切换命令
A:光标到行尾转插入。
a :进入编辑状态,移动到光标后一位。
I:光标到行首转插入。
i :进入编辑状态,当前位。
O:向光标上方加空行。
o :进入编辑状态,插入新的行。
esc :进入命令状态。
在底行模式
:!pwd 查看正在编程的文件位置
:!date 查看时间
vi保存和退出命令
:q 退出没有修改的文件。
:q! 强制退出,且不保存修改过的部分。
:w 保存但不退出。
:x 保存文件并退出。
:w file 另存为file给出的文件名,不退出
:r file 读入file文件内容插入到光标
vi拷贝与粘贴命令
命令行模式
[N]dd:剪切
[N]yy:复制 (例:7yy 光标向下开始的七行复制)
p或P:粘贴(p粘贴在光标下方。P粘贴在光标上方。)
u :取消上一次操作。
[N]:删除从光标开始的N个字符。
vi光标命令
h 方向键←
j 方向键↓
k 方向键↑
i 方向键→
:N 光标到第N行
1G 移动光标到文件第一行
G 移动光标到文件最后一行
:set number 显示行号
:set nonumber 取消显示行号
vi的查找命令
/string 查找字符串
n 向上继续查找
N 向下继续查找
vi替换命令
:s/str1/str2/ :范围 s(替换)/旧的/新的 (范围省略表示当前行)
:,$ s/str1/str2/g ( ,表示当前行 $表示最后一行)当前行到最后一行进行替换
:1,$ s/str1/str2/g 第一行到最后一行进行替换 也就是全文替换
:% s/str1/str2/g %表示全文 g(代表附和的全部替换,如果只替换一个可以不加)
vi复制和剪切命令
y0 将光标至行首的字符拷入剪切板
y$ 将光标至行尾的字符拷入剪切板
d0 将光标至行首的字符剪切入剪切板
d$ 将光标至行尾的字符剪切入剪切板
数值数据的表示
包括十进制、二进制、十六进制和八进制
基数与各数位的权
基数是指该进位制中允许选用的基本数码的个数 。 如十进制数,基数为10,可选用0,1,2、.....9共10个数中的任何一个。
权位的大小是以基数为底,数字所在位置的序号为指数的整数次幂。
例:123=1*100+2*10+3*1
二进制
基数为2的进位制叫二进制
二进制只有0,1两种数码,计数逢2进位
十进制转二进制:用2辗转相除至结果为1将余数和最后的1从下向上倒叙写。
十六进制
基数为16的进位制叫十六进制
十六进制有0,1,2,3,4....9,a,b,c,d,e,f共16种数码,基数逢16进位(0x前缀,例:0x1010)。
八进制
基数为8的进位制叫八进制
八进制有0,1,2,3,4,5,6,7共8种数码,基数逢8进位。八进制以0开头,例:023
正数 负数
原码 00000101 10000101
第一位是符号位(0-正,1-负)
反码 00000101 11111010(原码0→1,1→0)
补码 00000101 111111011(反码加1)
5 -5
gcc编译器
gcc是GNU推出的多平台编译器,可将C、C++源程序编译连接成可执行文件,支持以下后缀:
.c c语言源代码 .h 程序所包含的头文件 .i 已经与处理过的C源代码文件
.s 汇编语言源代码文件 .o编译后的目标文件
gcc -o hello hello.c
-o 输出可执行文件
-c 只要求编译器输出目标代码(.o文件),而不必输出可执行文件
-g 用于调试
./hello 查看输出结果
程序调试
利用_FILE_,_LINE_,_FUNCTION_实现代码跟踪调试