linux c语言分屏方法,Linux C语言编程基本原理与实践

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!” 不保存退出

查看全部

cp 拷贝语法:cp 源文件 新文件

在main的完整形式里面,printf("argv is %d \n",argv);可以知道有多少个参数。

#include

int main(int argv,char* argc[ ])

{

printf("argv is %d \n",argv);

int i;

for(i=0;i

printf("argc[%d] is %s\n",i,argc[i]);

}

return 0;

}

查看全部

Make工具(Makefile文件)

意义

make无论是在Linux和Unix中都是非常重要的编译

make工具可以将大型的开发项目分成若干个模块

make工具可以很清晰很快捷的整理源文件

make工具在内部也是用的gcc

操作

apt-get update +apt-get install 安装软件

打开 vi Makefile

"#"注释

文件名+‘’:‘’的话就是这个文件是有什么组成的

Makfile文件里的文件都是编译好的,顺序都是从上往下

修改后的Makefile文件如果不影响源代码的话是不重新编译的

源文件编译的时候注意缩进,最好用Tab ,不然就是八个空格的空间

查看全部

程序和操作系统之间是相互交互的

C语言main函数的完整形式int main(int argv,char* argc[ ])

{

printf(''hello word \n'');

return 0;

}

Nuix是由C语言的作者发明的,所以他们的沟通是非常的方便的

‘’&&‘’是由Linux提供的链接命令的方式

输入    ‘’echo $?‘’可以判断程序是否正确执行,如果输出的是0就是正确的,1则是错误的

return  0的意义是返回命令执行成功,否则无法用“&&”连接命令

查看全部

1. sudo apt-get install

2. sudo apt-get update

3. clear

4. pwd:显示当前路径

5. ls:显示当前路径下所有文件

6. ls -l:显示文件类型和创建时间

7. touch abc:create new file abc

8. rm abc:delete abc file

10. mkdir workspace:创建

11. vim a.c:编辑(创建或编辑)

12. gcc a.c:编译

13. ./a.out:执行

14. gcc a.c max.c -o main.out:编译两个文件,生成一个main.out文件1. i:当前光标前插入

2. a:当前光标后插入

3. SHIFT+a—行尾插入

4. SHIFT+i—行首插入

5. o—>下一行插入

6. SHIFT+o--上一行插入

7. x—>删除当前光标前的字符

8. dd—>删除当前行

9. gg=G—>auto format

10. CONTROL+W—>切换

11. 9+dd—>剪切

12.

————————————

1. :w—>save

2. :q—>exit

3. :wq—>保存并退出

4. :wqa—>保存所有文件并退出

5. :sp max.c—>分屏,创建另一个文件

查看全部

<>在系统库里查找

""在当前的目录查找

cd ~/workspace/

在vim中 可以同时打开多个文件     :sp max.c

返回命令模式  esc

跳转到下一个文件  Ctrl+W+下箭头

跳转到上一个文件  Ctrl+W+上箭头

打开行号  :set nu

剪切本行以及下面的若干行    数字+dd

粘贴  p

把打开的文件同时保存并退出   :wqa

编译两个文件  gcc max.c hello.c -o main.out

写一个输出数据名称  -o main.out

查看全部

用C语言写一些小工具然后结合起来。💪

查看全部

0

采集

收起

2021-02-20

1.“水龙头”-“管道”-“水壶”

“管道”即为起连通作用的小工具:将一个工具的输出流作为下一个工具的输入流!

2.Linux系统自带的小工具如何使用,其实这些小工具就是一个应用程序,比方说ls /查看根目录,比方我们要查找某个目录下有多少个文件名包含“ab”,我们可以写ls /etc/ | grep ab,其中这个竖线就是管道的意思,grep是从文本文档中查找指定的行(其实可用于文本搜索)。grep是个小工具,需要输入流输入。这里就是把ls/etc/目录输出当作了输入流。

将我们前一个程序执行输出流,通过管道得到我们需要的内容。通过管道我们就可以使用很多自动化的方法,管道的应用还有很多。

例如,ps可以查看当前的进程,我们想查看我们当前操作系统是否开启ssh进程,我们可以使用命令ps -e | grep ssh,查看所有进程中是否包含ssh服务的,若有我们便可以进行连接。

3.ls /:查看根目录

ls /etc/:查看根目录下etc目录(etc:linux默认的文件)

ls /etc/ | grep ab:要查找某个目录下有多少个文件名包含"ab"

grep:从文本文档中查找指定的行(其实可用于文本搜索)

ps:在linux系统下查看进程的工具。

ps -e:可以查看当前运行的的进行进程。

ps -e/ | grep ssh:要查找某个目录下有多少个文件名包含"ssh"

查看全部

linux是对IO设备抽象成文件进行操作,默认的输入就是键盘,而输出是显示器,重定向机制就是把输入流重定向到其他文件

查看全部

其实,这三个流就是把某个数据连接到或指定到这三个流,就会自动输出到指定位置。不指定位置,就输出到默认位置

执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。

查看全部

gcc -c 文件名 -o 命名.o

编译文件,生成.o文件

gcc 文件1.o 文件2.o ... 文件n.c

合并生成.out文件

cat 文件名

查看该文件

rm *.文件格式

删除目录下该格式的所有文件

如:rm *.out //删除所有.out文件

rm *.o  删除所有的.o文件

make把大型的开发项目分成若干个易于管理的模块

检查系统有没有装make    >>    make -v

若没有安装,则        >>    sudo apt-get install make

创建make文件    >>    vi makefile

make文件注释用 “#”

hello.out:max.o min.o hello.c     //max.o和min.o hello.c一起生成hello.out文件

gcc max.o min.o hello.c(8个空格或代表8个空格的tab键)

max.o:max.c

gcc -c max.c

min.o:min.c

gcc -c min.c

执行make

hello.out:max.o min.o hello.c  -o hello.out

查看全部

gcc - c max.c -o max.o

//#include

gcc max.o hello.c

编译之后生成  .o文件

拷贝文件   cp

把不常改动的函数,类和框架提前编译好生成静态库

查看源代码 cat hello.c

.o文件不可读

.h文件放声明   int max(int a,int b);

#include"max.h"  便于让没有编写max函数的人使用max函数

gcc max.o min.o hello.c  3个文件一起写,否则找不到max,min函数

查看全部

gcc -c max.c -o max.o

部分文件编译,先翻译成不可执行的机器码//#include "max.c"

在主函数文件中注释掉编译已完成的文件,不然会重复出现max()gcc max.o hello.c

完成编译

目的:节约时间(使编译可以碎片化,不然单次编译时间可能过长)

使用头文件声明函数,放入主函数文件预处理,方便查看函数返回值类型及参数类型。

查看全部

gcc -c max.c -o max.o

部分文件编译,先翻译成不可执行的机器码//#include "max.c"

在主函数文件中注释掉编译已完成的文件,不然会重复出现max()gcc max.o hello.c

完成编译

目的:节约时间(使编译可以碎片化,不然单次编译时间可能过长)

使用头文件声明函数,放入主函数文件预处理,方便查看函数返回值类型及参数类型。

查看全部

我们现在写一个程序avg.c,求任意个数的平均值:

#include

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

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",s,count);

return 0;

}

我们对这个函数进行编译cc input.c -o input.out,我们输入3000 3000 0,输出总工资6000和人数2人

我们使用以上两个程序结合起来,将所有数据进行统计input.out,之后通过管道经过avg.out计算平均值,命令可以写为./input.out | ./avg.out,然后进行输入,输入完成我们便得到了对应的平均工资。

以上就是通过管道,将两个小程序连接起来得到更复杂的程序的过程

查看全部

ls 表示查看磁盘目录结构,ls /表示查看根目录;ls /etc/表示文件配置目录;| 表示管道,grep为查询包含指定字符的行,例如ls /etc/ | grep ab,那么会输出etc中包含ab的程序,管道相当于grep的输入流;

ps -e  查看进程;ps -e | grep ssh;

查看全部

重定向机制:把输出流定向输出到某个位置,例如文件中,./a.out 1>>a.txt则输出不再显示在屏幕上,而是显示在a.txt中,但输入仍然在键盘,且输入显示在屏幕上;2代表错误流,1代表输出流,0代表输入流,不写默认为1;读取a.txt命令为cat a.txt;>为覆盖更新整个文件的重定向命令(如最新数据),>>为顺序写入文件的重定向命令,不会覆盖原本的内容(如日志文件);把某个文件作为输入流,例子命令为./a.out < input.txt  1 >t.txt 2>f.txt

默认情况下,标准输入流为键盘输入,标准输出流为终端输出,标准错误流为错误输出,重定向机制可以改变默认情况,将流输入或输出到特定文件或位置;

查看全部

linux系统将外设当成一个个文件,程序处理后输出到某个外设(文件夹),再由外设去处理;stdio.h 包括stdin、stdout、stderr三个文件,把默认键盘当做stdin文件,把默认显示器当做stdout文件;

也可以向指定的文件输出:fprintf(stdout,"please input the value a:\n")

//printf("please input the value a:\n"),向显示器输出

fscanf(stdin,"%d",&a);//scanf("%d",&a)=本质是从键盘文件stdin读入a

fprintf(stderr,"the value must>0");return1;

查看全部

【main函数中的参数】

我们使用命令cp main.c main2,c,复制并创建一个main2.c文件:

#include

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

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的网络编程,都是很重要的内容。

查看全部

main函数的完整形式:int main(int argv,char* argc[])

C语言程序在Linux运行的时候,可以跟操作系统进行交互,可以完美兼容

将两个命令一起执行:命令一 && 命令二(带命令一成功执行后进行命令2)

程序执行后判断程序是否正常执行:echo $?-----返回0为正常----所以main函数中return必须为0,才能让系统判断为正常执行

查看全部

1、Linux=unix like,unix是有发明C语言的人写的

main()函数实际的形式是main(int argv,char* argc)

2、Linux里面有一个命令连接符:命令1 &&命令2

会在命令1(执行成功)返回0之后执行命令2

截图里面 第二个main.c文件return为110,所以命令gcc main.c -o main2.out执行后返回的是110,所以 ./main2.out不会被执行

查看全部

1、rm *.o  // 移除所有.o文件;

2、make 工具可以将大型的开发项目分成若干个模块,清晰快捷整理源文件;约定写一个文件:vi  Makefile#M大写;在大项目中 如果每次编译都需要将全部小文件编译一次可能需要很久很久。make工具让我们每次输入make,只会自动处理需要修改的地方;

3、Makefile文件注释用 “#”;

hello.out:max.o min.o hello.c  //max.o和min.o hello.c一起生成a.out文件

gcc max.o min.o hello.c(行代码前8个空格或代表8个空格的tab键)

max.o:max.c

gcc -c max.c

min.o:min.c

gcc -c min.c

执行make

hello.out:max.o min.o hello.c  -o hello.out

4、gcc -c 文件名 -o 命名.o //编译文件,生成.o文件

gcc -c 文件名 -o 命名.out //编译文件,生成.out执行文件

查看全部

一、函数可以先编译成.o文件,然后再和主函数文件一起编译成可执行文件。在源代码多的时候可以提高效率。例如:1、gcc-c min.c -o min.o 2、gcc min.o hello.c

二、cat+文件名 命令可以查看源代码。

三、.o文件为机器码,可以编写一个.h文件,然后在主文件中进行预处理声明 #include".h"。 通过cat +.h文件别人就可以知道你编写的函数的类型及参数。

四、.c C语言源代码

.o编译过的二进制机器码文件

.h函数说明文件(没有源代码时,看.h就知道函数使用方法)PS:.h没有实际代码作用,仅供查看。

五、把不常改动的函数,类和框架提前编译好生成静态库(.o文件,减少主函数编译时间)

查看全部

一、函数可以先编译成.o文件,然后再和主文件一起编译成可执行文件。在源代码多的时候可以提高效率。例如:1、gcc-c min.c -o min.o 2、gcc min.o hello.c

二、cat命令可以查看源代码。

三、.o文件不能被其他人查看,可以编写一个.h文件,然后在主文件中进行预处理声明 #include".h"。 通过.h文件别人就可以知道你编写的函数的类型了。

.c C语言源代码

.o编译过的二进制机器码文件

.h函数说明文件(没有源代码时,看.h就知道函数使用方法)PS:.h没有实际代码作用,仅供查看。

gcc编译流程分为4步

预处理(Pre-Processing) -> 编译(Compling) -> 汇编(Assembling) -> 连接(Linking)

预处理:处理#include、#define、#ifdef 等宏命令

编译:把预处理完的文件编译为汇编程序.s

汇编:把汇编程序.s编译为.o二进制文件

链接:把多个二进制文件.o集合(链接)成一个可执行文件

cp A  B   ----将A文件中的内容复制到B文件

cat A -----显示A 文件中的内容

查看全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值