为了账号安全,请及时绑定邮箱和手机立即绑定

Linux C语言编程基本原理与实践

难度初级
时长 2小时 0分
学习人数
综合评分9.57
346人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.4 逻辑清晰
  • sudo(管理员权限) sudo apt-get install + 软件名称 (安装程序) sudo apt-get update (更新资源) sudo apt-get install vim (安装VIM) clear (清空屏幕) cd + 目录 (进入目录) cd ~ (进入根目录) ls (查看当前目录包含的文件和文件夹) ls -l (查看当前目录包含的文件或文件夹的详细信息) touch + 文件名 (新建文件) rm + 文件名 (删除文件) mkdir + 目录名 (新建目录) pwd (查看完整目录地址) vi(vim) + 文件名 (使用VIM编辑文件) VIM命令模式: i (插入模式 或 当前光标前插入字符) Esc (返回命令行模式) :w (保存) a (当前光标后插入字符) :q (退出VIM) Shitf + a (在行尾插入字符) Shift + i (在行手插入字符) o (下一行插入字符) Shift + o (在当前行上行插入字符) x (删除单个字符) dd (删除整行字符)
    查看全部
  • 有点误导了吧,nginx比apache并发强的原因不在于使用语言,而在于他们的编程选用的模式吧。
    查看全部
    12 采集 收起 来源:重识C语言

    2015-04-19

  • ANSI C 二十世纪八十年代,C语言标准完全混乱,即各开发商用的C语言语法产生了差异。为了解决这个问题,由美国国家标准局为C语言订定了一套完整的国际标准语法,层为ANSI C,作为C语言的标准。二十世纪八十年代至今的有关程序开发工具,一般都支持符合ANSI C的语法。 C语言的特点:简单、快速、高性能、兼容性好、功能强大、易于学习 有着特点带来的应用: 1、Linux嵌入式(小工具)(C语言小巧灵活、语法简单、适合做小工具)linux/unix系统就是由各种各样的小工具集成得来的。 2、和硬件打交道的程序 a、操作系统:苹果系统,安卓系统,windoows b、ARM嵌入式、单片机、Arduino 3、有高性能要求的应用程序 著名的WEB(外部?)服务器,NGINX=apache*10 C语言编程 ~什么样的程序最有价值 ~什么样的场景最适合用C语言
    查看全部
    10 采集 收起 来源:重识C语言

    2015-03-27

  • 1、Vim 代码编辑器 2、sudo apt-get update 更新最新资源库 3、sudo 应用管理员权限 4、sudo apt-get install vim 应用管理员权限安装vim软件 5、cc-v 显示当前使用的cc编译器的版本信息 6、gcc-v 显示当前使用的gcc编译器的版本信息,gcc是完全兼容cc的一款开源、流行的编译器。 7、clear 清洁屏幕 8、cd+空格 进入某个目录 9、cd ~进入当前目录的家目录(根目录) 10、pwd 查看当前所在的位置(显示路径) 11、ls 查看当前目录中包含哪些目录(文件夹)或文件 12、ls –l以详细信息的形式查看目录(文件夹)或文件 如果此列表中一行的第一个字母为“d”,说明这是一个目录(文件夹) 如是一个“-”,说明这是一个普通类型的文件 13、touch 文件名 在当前目录中新建一个文件 14、rm 文件名 删除文件 15、mkdir 目录名 新建目录(文件夹) 16、vi(或vim) 文件名.c 用vim编辑一个vim文件 17、在vim中 在命令模式时: 按“i” 进入插入(insert)模式 在当前光标前插入 按“a” 进入插入模式 在当前光标后插入 按“shift+a”(大写A)在当前行尾插入 按“shift+i”(大写I) 在当前行首插入 按“o” 在当前光标所在行下起新建一行插入 按“shift+o”(大写O) 在当前光标所在行上起新建一行插入 按“ESC” 返回命令模式 按“x” 删除当前光标的字符 按“dd” 删除当前光标所在行所有字符 “:”+“w” 保存文件 “:”+“q” 退出vim编辑器 “:”+“q!” 不保存退出
    查看全部
  • 【标准输入流,输出流,错误流】 现在有cio.c文件: #include <stdio.h> //标准输入输出 /* stdin stdout stderr */ int main() { printf("hello world!\n"); //输出功能由标准输出流完成,printf是系统封装后的 int a; scanf("%d", &a); //标准输入流,错误流是系统出错的时候的 printf("input value is : %d\n", a); return 0; } 在我们输入a.out时,当程序执行的一瞬间,系统给程序提供了一个进程,当程序启动时,系统也提供给程序一系列的指针。linux将所有的外设(摄像头,打印机云云)也罢等等,都视为文件。当启动应用程序时候,也当文件操作,会产生三个文件(stdin,stdout,stderr,即标准输入,输出,错误流)。 默认情况下,输入流就是键盘,stdout也可以切换默认为显示器,我们可以切换为网卡或者打印机,错误流同理。我们在启动文件的时候,都会产生这三个文件。 printf函数是一个封装过的函数: printf("Please input the value a:\n"); fprintf(stdout, "please input the value a:\n"); 因为stdout默认是显示器,上两句就是等价的,printf其实就是fprintf封装后得到的。 同样,我们也有scanf和fscanf的关系(下面两句是等价的): scanf("%d", &a); fscanf(stdin, "%d", &a); 同样,我们也有错误流: if(a<0){ fprintf(stderr, "the value must > 0\n"); return 1; } return 0; 如何让程序知道出错了,我们通过返回值1和0体现,再次编译cc cio.c -o a2.out,我们运行a2.out,输入2则正常执行,当输入-1,则有我们对应的提示,即错误流就发挥作用了。 其实Linux一个很大的系统,就是由这些类似的小工具完成的,当等于0是为正确,错的话为其他值。当然,标准的输入流,输出流,以及错误流也可以重定向。
    查看全部
  • vim: 1.set nu,打开行号 2.wqa:退出并保存所有内容 3.ctrl+w+↓,切换到下面那个文档。 4.ctrl+w+↑,切换到上面一个文档。 5.sp 文件名.c(创建新文件) 6.9dd(代码占九行,剪切代码) 7.p:粘贴 c语言: 1.gcc 1.c 2.c -o 3(将1.c和2.c合在一起输出,3为新文件的文件名) 2.#include "main.c "引用了main.c里面的函数
    查看全部
  • :sp 文件名 以水平方式分割窗口,打开文件 :vsp 文件名 以竖直方式分割窗口,打开文件 ctrl+w+↓/j 切换到下面那个文档 ctrl+w+↑/k 切换到上面一个文档 ctrl+w+h 切换到左面一个文档 ctrl+w+l 切换到右面一个文档 :set nu/number 打开行号 :set nonu/nonumber 关闭行号 :wqa 把所有文件都保存退出 9dd 从当前行剪切9行 p 粘贴 在main.c文件中加上#include“max.c” 相当于将max.c文件中的代码放在main.c中
    查看全部
  • Ctrl+Alt+T:打开终端 cd ~ :进入当前用户的章目录 pwd :查看当前所在路径 ls :当前章目录包含哪些文件 ls -l :显示当前文件的类型,权限,创建时间,名字(如果前面是“d”就是文件 夹,“-”就是普通类型的文件) touch ** :创建字符型文件 rm ** :删除 mkdir ** :创建目录(文件夹) vi ** :打开(进入)文件 (vi 一个不存在的文件,进入后无法输入内容,因当前在命令模式下;按字符i,可进入INSERT插入模式,就可输入内容,按Esc返回命令模式;) 在命令模式下: :w :保存该文件 :q :退出 i :当前光标前面插入字符 Shift+i :跳到本行行首插入字符 a :当前光标后面插入字符 Shift+a :跳到本行末尾插入字符 o :在当前下一行插入字符 Shift+o :在当前上一行插入字符 x :删除当前光标所处字符 d+d :删除整行 Linux下最好用的文本编辑器: emacs, vim 安装软件前先更新一下源: sudo apt-get update 安装软件: sudo apt-get install (软件名) cc -v(gcc -v)查看编译器版本 apt-get是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。
    查看全部
  • 【编写使用管道的程序】 我们在文件夹下,c语言做的每个程序都有一个独立的功能,我们可以将多个小程序使用管道连接到一起。 我们现在写一个程序avg.c,求任意个数的平均值: #include <stdio.h> int main() { int s, n; scanf("%d,%d", &s, &n); float v = s / n; printf("v = %f\n", v); return 0; } 退出vim进行编译cc avg.c -o avg.out,我们得到avg.out,我们输入3000,3。 我们再写一个统计输入的程序input.c: #include <stdio.h> int main() { int flag = 1; int i; int count = 0; int s = 0; while(flag){ scanf("%d", &i); if(0==i) break; count++; s+=i; } printf("%d,%d\n",s,count); return 0; } 我们对这个函数进行编译cc input.c -o input.out,我们输入3000 2000 0,输出总工资5000和人数2。 我们不妨使用以上两个程序结合起来,将所有数据进行统计input.out,之后通过管道经过avg.out计算平均值,命令可以写为./input.out | ./avg.out,然后进行输入,输入完成我们便得到了对应的平均工资。 以上就是通过管道,将两个小程序连接起来得到更复杂的程序的过程。
    查看全部
  • 执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。 linux将所有设备看作文件,默认的输入设备为:键盘;默认的输出设备为:显示器。 标准输入流、输出流、错误流的使用格式: 标准输入流: scanf("%d", &a); ==fscanf(stdin, "%d", &a); 标准输出流: printf("input a:"); ==fprintf(stdout, "input a"); 标准错误流: fprintf(stderr, "a must > 0");
    查看全部
  • 【main函数中的参数】 我们使用命令cp main.c main2,c,复制并创建一个main2.c文件: #include <stdio.h> int main(int argv, char* argv[]) { print("argv is %d \n", argv); return 0; } 我们在使用命令cc main2.c -o m2.out进行编译,执行./m2.out命令,有“argv is 1” 对于ls我们可以在此命令上加参数,例如: 显示更多的文件信息:ls -l 显示隐藏的文件信息:ls -a 那么,同理,我们也可以对./m2.out这个可执行文件加参数。分别执行如下命令并观察输出: ./m2.out,输出为“argv is 1” ./m2.out -l,输出为“argv is 2” ./m2.out -l -a,输出为“argv is 3” 我们可以观察到,加不同个数的参数,argv返回对应参数的值,我们不仅要知道几个参数,我们还可以知道每个参数是什么,我们将程序进行修改,加上如下一段代码: int i; for(i=0; i<argv; i++) {//在vs或者xcode里,可以在for内声明int i,但是在c98下不能这么写,会报错,是因为版本的问题 printf("argc[%d] is %s\n", i, argc[i]); } 这时,我们再编译gcc main2.c -o m3.out,运行./m3.out -l -a asadf sdfd有如下显示: argv is 5 argc[0] is ./m2.out argc[1] is -l argc[2] is -a argc[3] is asadf argc[4] is sdfd 以上内容和linux,unix联系非常紧密,尤其是在linu嵌入式,linux小工具的开发,以及linux的网络编程,都是很重要的内容。
    查看全部
  • 【输入输出流以及错误流的重定向机制】 Linux几乎可以用于任何领域,这里我们不得不提出linux的通道,管道起到了很重要的作用,不同应用程序之间要配合使用,就需要用到管道。 我们这里先给出一个例子main.c,主要介绍输入流,输出流和错误流的重定向机制,对于管道的理解会比较容易些。 #include <stdio.h> int main() { printf("input the int value i:\n"); \\printf其实对fprintf的封装,是从标准输出流(即stdout)来输出这个过程 scanf("%d", &i); //默认输入流是键盘 printf("input the int value j:\n"); scanf("%d", &j); printf("i+j=%d\n", i+j); } 执行命令编译cc main.c,得到a.out,运行a.out,我们分别输入3和5输入到终端。我们标准输出流是1,输出入是0。我们可以使用命令./a.out 1>> a.txt,其中>>符号(不写参数就是输出流),之前默认输出流是终端,现在我们则改为输出到a.txt中,我们执行命令后,分别输入3回车后再输入5。再使用命令cat a.txt,我们可以看到我们已经输出到文件里的内容。 我们再次执行./a.out >> a.txt,我们再次输入参数,完成后我们再次使用cat来查看a.txt文件里的内容,发现之前的内容还在,新的输出内容追加到了后面。 再举一个重定向的例子,我们使用命令ls /etc >> etc.txt,我们将ls目录下的内容输入到了etc.txt文件中;但我们如若改重定向符号想覆盖掉之前的内容,可以把双箭头>>改为单箭头>,则文件中先前的内容就会被覆盖掉。
    查看全部
  • gcc -c 文件名 -o 命名.o 编译文件,生成.o文件 gcc 文件1.o 文件2.o ... 文件n.c 合并生成.out文件 cat 文件名 查看该文件 rm *.文件格式 删除目录下该格式的所有文件 如:rm *.out //删除所有.out文件 编写一个Makefile可以同时编译多个文件。 如: 1、vi Makefile 2、写入: hello.out:max.o min.o hello.c gcc max.o min.o hello.c -o hello.out max.o:max.c gcc -c max.c # 添加注释 3、执行命令make 编写 Makefile 缩进使用 tab 键(否则出错)
    查看全部
  • 【管道原理及应用】 Linux系统自带的小工具如何使用,其实这些小工具就是一个应用程序,比方说ls /查看根目录,比方我们要查找某个目录下有多少个文件名包含“ab”,我们可以写ls /etc/ | grep ab,其中这个竖线就是管道的意思,grep是从文本文档中查找指定的行(其实可用于文本搜索)。 将我们前一个程序执行输出流,通过管道得到我们需要的内容。通过管道我们就可以使用很多自动化的方法,管道的应用还有很多。 例如,ps可以查看当前的进程,我们想查看我们当前操作系统是否开启ssh进程,我们可以使用命令ps -e | grep ssh,查看所有进程中是否包含ssh服务的,若有我们便可以进行连接。
    查看全部
  • 注意在使用管道的时候要保持上一个小程序的输出格式和下一个小程序的输入格式保持一致!
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
本课程为C语言中级课程 学习本课程需要了解C语言以下基本语法:变量、常量、顺序、循环、分支、函数等。
老师告诉你能学到什么?
如何在真正的商业环境(Linux)下编写C语言程序 如何编译一个项目以及makefile如何编写 C语言真正的本领(制作小工具) 多个c语言小工具如何构成强大的软件系统

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!