zoukankan      html  css  js  c++  java
  • 【转】Linux基础与Linux下C语言编程基础

    原文:https://www.cnblogs.com/huyufeng/p/4841232.html

    ---------------------------------------------------------------

    Linux基础

    1 Linux命令

    如果使用GUI,Linux和Windows没有什么区别。Linux学习应用的一个特点是通过命令行进行使用。

    登录Linux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着选项(options)或参数(arguments)。即Linux中命令格式为:

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

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

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

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

    以上简要说明了选项及参数的区别,但具体Linux中哪条命令有哪些选项及参数,需要我们靠经验积累或者查看Linux的帮助了。

    2 man命令

    不论学习编程还是Linux命令,掌握帮助文档的使用都是很重要的,是举一反三的重要途径。 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
    

    其中1,2,3是我们学习的重点,区别大家练习一下就知道了,比如printf是C语言的库函数,也是一个Linux命令,大家尝试一下man printf,man 1 printf,man 3 printf,体会一下区别。

    知道printf 命令也好,printf函数也好,查找帮助文档都很容易。man有一个-k 选项用起来非常好,这个选项让你学习命令,编程时有了一个搜索引擎,可以举一反三。 我们通过一个例子来说明,比如数据结构中学过排序(sort),我不知道C语言中有没有完成这个功能的函数,可以通过“man -k sort”来搜索,因为是找C库函数,我们关注带3的,qsort好像是个好选项,如下图:

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

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

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

    3 cheat 命令

    man 虽然很重要,但有些命令看了帮助还不会用,初学者需要例子,cheat就是这个身边的小抄。 cheat 命令不是Linux自带的,大家参考这篇文章英文版)安装,实验楼课程实验系统中已经安装了。

    cheat是作弊,小抄的意思。

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

    使用cheat命令作弊是可以的。:)

    4 其他核心命令

    和查找相关的核心命令还有find,locate,grep,whereis,which,其中:

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

    上面的命令包括man -k有一个共同特点就是基于“搜索”,学好了可以举一反三,大家重点学习,掌握了他们,其他命令就可以自学了。你用 “man find”, “cheat find”试试。

    Linux下C语言编程基础

    1.练习vimtutuor至少一遍;

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

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

    4.练习gdb调试代码;

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

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

  • 相关阅读:
    LeetCode【709. 转换成小写字母】
    静态方法、变量与实例方法、变量之比较心得
    用户控件自定义 DependencyProperty 属性使用教程
    TypeLoadException: 未能从程序集“ECS.GUI.Define, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”中加载类型“ECS.GUI.Define.ArmgAimPos”,因为它在 4 偏移位置处包含一个对象字段,该字段已由一个非对象字段不正确地对齐或重叠
    ABP 框架实战系列(三)-领域层深入篇
    ABP 框架实战系列(二)- 领域层介绍篇
    ABP框架实战系列(一)-持久层介绍篇
    EF Core 基础知识
    EF Core Migration 报错:An error occurred using the connection to database '' on server '10.28.253.2'
    2020年总结:互联网思维下的工业软件开发
  • 原文地址:https://www.cnblogs.com/oxspirt/p/10297406.html
Copyright © 2011-2022 走看看