Linux 基本操作命令以及 gcc/g++,makefile文件,gdb,git等常用工具

一.基本操作命令

ls 查看目录中的文件

cd /home 进入 ‘/ home’ 目录;cd … 返回上一级目录;cd …/… 返回上两级目录

mkdir dir1 创建一个叫做 ‘dir1’ 的目录

rmdir dir1 删除一个叫做 ‘dir1’ 的目录 (只能删除空目录)

rm -f file1 删除一个叫做 ‘file1’ 的文件’,-f 参数,忽略不存在的文件,从不给出提示。

rm -rf /mulu 目录下面文件以及子目录下文件

cp /test1/file1 /test3/file2 如将/test1目录下的file1复制到/test3目录,并将文件名改为file2

mv /test1/file1 /test3/file2 如将/test1目录下的file1移动到/test3 目录,并将文件名改为file2

mv * …/ Linux当前目录所有文件移动到上一级目录

ps -ef|grep xxx 显示进程pid

kill 使用kill命令来终结进程 先使用ps命令找到进程id,使用kill -9命令,终止进程。

netstat -anp | grep 端口号(查看端口)

top命令:相当于Windows下的资源管理器,能够动态实时的显示系统中进程的资源占用情况

free -m 查看服务器内存使用情况

软件包管理器yum

route命令查看路由表

tar –xvf file.tar 解压 tar包

unzip file.zip 解压zip

unrar e file.rar 解压rar

查看文件内容的命令:

cat 由第一行开始显示内容,并将所有内容输出 (之前公司用的比较多)

tac 从最后一行倒序显示内容,并将所有内容输出

more 根据窗口大小,一页一页的现实文件内容

less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符

head 只显示头几行

tail 只显示最后几行 (之前公司用的比较多)

nl 类似于cat -n,显示时输出行号

tailf 类似于tail -f

二.gcc/g++

1.预处理(进行宏替换)
宏定义,文件包含,条件编译,去注释等

gcc -E hello.c -o hello.i

2.编译(生成汇编)
检查代码的规范性,是否有语法错误

gcc -S hello.i -o hello.s

3.汇编(生成机器可识别代码---->二进制文件)

gcc -C hello.s -o hello.o

4.连接(生成可执行文件或库文件)

gcc hello.o -o hello

gcc -o0 没有优化
gcc -o1
gcc -o2
gcc -o3 优化级别高
优化级别越高,程序的执行顺序就和原始的执行顺序差别大,必须要关闭优化才能进行调试。

三.自动化构建工具makefile

makefile带来的好处就是**“自动化编译”**,一旦写好,只需要一个make命令,整个工程完全自动编译,提高了软件开发的效率。

make是一个命令,makefile是一个文件,两者搭配使用,完成项目自动化建设。

makefile定义了一系列的规则来指定,哪些文件需要编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。

原理
1.make会在当前目录下找名字叫makefile或者Makefile的文件。
2.如果找到,它会找到文件中第一个目标文件,并把这个文件作为最终的目标文件。

有依赖性,make会一层一层的去找文件的依赖关系,直到最终编译出第一个目标文件;在找寻过程中,如果出现错误,比如最后的依赖没找到,则make会直接退出,并报错,而对于所定义的命令的错误,或者编译不成功,make根本不理。
make只管文件的依赖性,即如果在找到依赖之后,冒号后面的文件还是不在,那么就不会工作。

makefile中几个常见的自动变量:
$<:第一个依赖文件的名称;
$^:所有不重复的依赖文件,以空格分开;
$@:目标文件的完整名称;
$?:所有时间戳比目标文件新的依赖文件,并以空格分开;
当然还有几个就不介绍啦!

四.gdb

程序的发布方式:debug和release模式
gcc/g++出来的二进制文件程序,默认是release模式

gcc test.c -g -o test

list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。
list/l 函数名:列出某个函数的源代码。

r或run:运行程序。
n 或 next:单条执行。
s或step:进入函数调用
break(b) 行号:在某一行设置断点
break 函数名:在某个函数开头设置断点

info break :查看断点信息。
finish:执行到当前函数返回,然后挺下来等待命令
print§:打印表达式的值,通过表达式可以修改变量的值或者调用函数

p 变量:打印变量值。
set var:修改变量的值

continue(或c):从当前位置开始连续而非单步执行程序
run(或r):从开始连续而非单步执行程序

delete breakpoints:删除所有断点
delete breakpoints n:删除序号为n的断点
disable breakpoints:禁用断点
enable breakpoints:启用断点

info(或i) breakpoints:参看当前设置了哪些断点
display 变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay:取消对先前设置的那些变量的跟踪
until X行号:跳至X行
breaktrace(或bt):查看各级函数调用及参数
info(i) locals:查看当前栈帧局部变量的值
quit:退出gdb

五.git

下载项目到本地

git clone[项目连接url]

将代码放到刚才下载好的目录中

git add [文件名]

提交改动到本地

git commit .//表示当前目录,提交的时候注明提交日志,描述改动的详细内容

同步到远端服务器上

git push

你可能感兴趣的:(Linux,Linux基本操作命令,gcc/g++,gdb,makefile,git)