首页 > 系统服务 > 详细

第三周linux学习

时间:2015-09-27 09:53:28      阅读:627      评论:0      收藏:0      [点我收藏+]

学习过程:

一门专业课程背后的三种知识:

  • 元知识:这门课程思考问题框架是什么?遇到老问题,它会怎样分析?遇到新问题,它会怎样分析?
  • 硬知识:这门课程的主要知识点是什么?适合用思维导图组织吗?
  • 软知识:这门课程的哪些知识点需要哪些实践环节来强化理解和记忆?

 

Linux中命令格式为:

 

command [options] [arguments] //中括号代表是可选的,即有些命令不需要选项也不需要参数

 

选项是调整命令执行行为的开关,选项不同决定了命令的显示结果不同。

参数是指命令的作用对象。

 

如ls命令,lsls .显示是当前目录的内容,这里“.”就是参数,表示当前目录,是缺省的可以省略。我们可以用ls -a .显示当前目录中的所有内容,包括隐藏文件和目录。其中“-a” 就是选项,改变了显示的内容

 

2 man命令

 

 man是manul的缩写

通过man man来查看man的帮助

 技术分享

 

帮助文档包含:

 1 Executable programs or shell commands(用户命令帮助) 

2 System calls (系统调用帮助)  

3 Library calls (库函数调用帮助)  

4 Special files (usually found in /dev)  

5 File formats and conventions eg /etc/passwd(配置文件帮助)  

6 Games  

7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)  

8 System administration commands (usually only for root)  

9 Kernel routines [Non standard]  

 

解释:

 

1是普通的Linux命令  
2是系统调用,操作系统的提供的服务接口 
3是库函数,  C语言中的函数
5是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义  
6是给游戏留的,由各个游戏自己定义  
7是附件还有一些变量,比如向environ这种全局变量在这里就有说明  
8是系统管理用的命令,这些命令只能由root使用,如ifconfig

 

比如printf是C语言的库函数,也是一个Linux命令,大家尝试一下man printf,man 1 printf,man 3 printf,体会一下区别。

技术分享

技术分享     技术分享

 

知道printf 命令也好,printf函数也好,查找帮助文档都很容易。

man -k 选项---学习命令,编程搜索引擎

可以通过“man -k sort”来搜索,因为是找C库函数,我们关注带3的,qsort好像是个好选项,如下图:

 

技术分享

 

结合后面学习的grep 命令和管道,可以多关键字查找:

 

man -k key1 | grep key2 | grep key3 | ...

 

如下图,可以更好的找到qsort:

 

3 cheat 命令

 

man 虽然很重要,但有些命令看了帮助还不会用,初学者需要例子,cheat就是这个身边的小抄。 cheat 命令不是Linux自带的

 

cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。

  

4 其他和查找相关核心命令 

  • find查找一个文件在系统中的什么位置,locate是神速版本的find(Windows下有个Everything工具和locate类似).
  • grep 可以对文件全文检索,支持正则表达式。
  • whereis,which告诉你使用的命令工具装在什么地方。

 

上面的命令包括man -k有一个共同特点就是基于“搜索”,

用 “man find”, “cheat find”

 

实验二 Linux下C语言编程基础

一、实验目的

1. 熟悉Linux系统下的开发环境

2. 熟悉vi的基本操作

3. 熟悉gcc编译器的基本原理

4. 熟练使用gcc编译器的常用选项

5 .熟练使用gdb调试技术

6. 熟悉makefile基本原理及语法规范

7. 掌握静态库和动态库的生成

二、实验步骤

1. 快捷键

Ubuntu中:

2. vim

VIM是一个非常好的文本编辑器,跟文本打交道

 

VIMTUTOR是个实践教程,通过实践30分钟让你对VIM编辑器入门,只要在命令行中输入vimtutor

 

 

技术分享

技术分享

  • 大写“K”可以用来查找函数的帮助信息:查看 man page,命令模式下,将光标放在函数名上,按"K"可以直接察看 man page。
  • 几个设置

:set nu 显示行号

:set ai 自动缩行

:set ts=4 设置一个 TAB 键等于几个空格

  • 移动光标

[[ 转到上一个位于第一列的"{"

]] 转到下一个位于第一列的"{"

{ 转到上一个空行

} 转到下一个空行

gd 转到当前光标所指的局部变量的定

  • 3. gcc

    GNU CC(简称为gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译。

GCC编译代码的过程如下:

技术分享

把编译过程分成四步,以编译hello.c生成可执行文件hello为例,如下图:

技术分享

  • 预处理:gcc –E hello.c –o hello.i;gcc –E调用cpp
  • 编 译:gcc –S hello.i –o hello.s;gcc –S调用ccl
  • 汇 编:gcc –c hello.s –o hello.o;gcc -c 调用as
  • 链 接:gcc hello.o –o hello ;gcc -o 调用ld

前三步,GCC的参数连起来是“ESc”,相应输入的文件的后缀是“iso”,

4. gdb

建议使用CGDB,比GDB好用,熟悉VC的调试方式,可以使用DDD。 注意使用GCC编译时要加“-g”参数。 参考gdb参考卡GDB最基本的命令有:

  • gdb programm(启动GDB)
  • b 设断点(要会设4种断点:行断点、函数断点、条件断点、临时断点)
  • run 开始运行程序
  • bt 打印函数调用堆栈
  • p 查看变量值
  • c 从当前断点继续运行到下一个断点
  • n 单步运行
  • s 单步运行
  • quit 退出GDB

问题:GDB的n(next)命令让GDB执行下一行,然后暂停。 s(step)命令的作用与此类似,只是在函数调用时step命令会进入函数,那么实际使用中应该优先选用哪个?为什么?

其他几个我认为应该掌握的调试命令有:

  • display 跟踪变量值的改变
  • until 跳出循环
  • finish 跳出函数
  • help 帮助

5. make与makefile

三、练习

1.练习vimtutuor至少一遍;

 

2.使用vim 输入以下代码,联系使用“K”查找帮助文档:

 技术分享

3.练习gcc编译运行代码;

4.练习gdb调试代码;

5.把上述代码中除了main函数外的代码制作成一个静态库math.a和一个共享库math.so;

6.编写makefile,让代码编译,上述静态库和共享库的使用自动化。

 

遇到的问题及解决:

 

快捷键Ubuntu中:是什么意思?

 

第三周linux学习

原文:http://www.cnblogs.com/zhengwei0712/p/4841824.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!