Linux基础知识
一、shell
单引号与双引号;echo -e换行转义;echo `date`,注意反引号;test -e查看是否存在文件;函数$n表示第n个参数,当n>=10时需要用{},$?表示返回值。
1、记录历史命令
!!表示上一条指令;!n表示历史第n条指令;!str表示执行历史最后一条以str开头的命令。
2、别名alias
3、通配符?与*
4、输入输出重定向
输入重定向<,输出重定向>,追加重定向>>
5、管道符
|:指把前面的命令行结果丢给后面
6、作业控制
Ctrl+z:暂停
fg:恢复;bg:到后台运行
Ctrl+c:终止
7、变量
env显示所有环境变量;set还会将用户自己设置的变量显示出来。
unset取消变量。
在/etc/profile里面添加变量声明然后运行source /etc/profile即可使系统内所有用户都可以使用此变量。
export声明变量可以使shell的子shell也可以使用该变量。
8、cat,grep,uniq,tee,&,[]的作用
二、gdb
gcc -o test test.c -g
gdb
file test
r:r
c:continue
b:break point(ex:b main;b *main;b 17)
display /i $pc:十六进制显示$pc
i r:information of register
三、汇编指令
mov des, src
为避免歧义:mov BYTE PTR [ebx], 2, mov WORD PTR [ebx], 2, movDWORD PTR [ebx], 2
[]大概就是*的意思
lea des,[src]
je <label> (jump when equal)
jne <label> (jump when not equal)
jz <label> (jump when last result was zero)
jg <label> (jump when greater than)
jge <label> (jump when greater than or equal to)
jl <label> (jump when less than)
jle <label>(jump when less than or equal to)
jcondition一般与compare结合使用。