-
i-当前光标前面插入字符 a-当前光标后面插入字符 esc-返回命令模式 :wq-保存退出 shift+a-跳到末尾插入字符 shift+i-行首 o-当前行下面开一行插入字符 shift+o-上一行 光标一到某个位置按x删除 命令模式下按两次d删除整行查看全部
-
gcc file1.c file2.c ... -o main.out thus the source code in those files would be compiled out into main.out查看全部
-
选项设置 all:列出所有选项设置情况 term:设置终端类型 ignorance:在搜索中忽略大小写 list:显示制表位(ctrl+i)和行尾标志($) number:显示行号 report:显示由面向行的命令修改过的数目 terse:显示简短的警告信息 warn:在转到别的文件时若没保存当前文件则显示no write信息 nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符 nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始 mesg:允许vi显示其他用户用write写到自己终端上的信息查看全部
-
Ctrl+u: 向文件首翻半屏 Ctrl+d: 向文件尾翻半屏 Ctrl+f: 向文件尾翻一屏 Ctrl+b: 向文件首翻一屏 nz: 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 退出vi 在指令模式下键入:q,:q!,:wq或:x(注意:号),就会退出vi。 :wq和:x是存盘退出,而:q是直接退出,如果文件已有新的变化,vi会提示你保存文件而:q命令也会失效,这时你可以用:w命令保存文件后再用:q 退出,或用:wq或:x命令退出,如果你不想保存改变后的文件,你就需要用:q!命令,这个命令将不保存文件而直接退出vi。 /pattern: 从光标开始处向文件尾搜索pattern ?pattern: 从光标开始处向文件首搜索pattern n: 在同一方向重复上一次搜索命令 N: 在反方向上重复上一次搜索命令 :s/p1/p2/g: 将当前行中所有p1均用p2替代 :n1,n2s/p1/p2/g: 将第n1至n2行中所有p1均用p2替代 :g/p1/s//p2/g: 将文件中所有p1均用p2替换 :n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下 :n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下 :n1,n2 d :将n1行到n2行之间的内容删除 :w :保存当前文件 :e filename:打开文件filename进行编辑 :x:保存当前文件并退出 :q:退出vi :q!:不保存文件并退出vi :!command:执行shell命令command :n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入 :r!command:将命令command的输出结果放到当前行 "?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字 "?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字 "?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字 "?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母也可以是一个数字 ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。查看全部
-
进入 vi 的命令 vi filename: 打开或新建文件,并将光标置于第一行首 vi +n filename: 打开文件,并将光标置于第n行首 vi + filename: 打开文件,并将光标置于最后一行首 vi +/pattern filename: 打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename: 在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename: 打开多个文件,依次进行编辑 插入 (insert) i:从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。 I:从光标所在列的第一个非空白字元前面开始插入资料。 开始 (open) o :在光标所在列下新增一列并进入输入模式。 O: 在光标所在列上方新增一列并进入输入模式。 r :修改光标所在字元,r 後接著要修正的字符。 R:进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。 s:删除光标所在字元,并进入输入模式。 S:删除光标所在的列,并进入输入模式。 删除命令 ndw或ndW: 删除光标处开始及其后的n-1个字 do: 删至行首 d$: 删至行尾 dd :删除光标所在的列。 ndd: 删除当前行及其后n-1行 x或X: 删除一个字符,x删除光标后的,而X删除光标前的 Ctrl+u: 删除输入方式下所输入的文本 ncw或nCW: 修改指定数目的字 nCC: 修改指定数目的行 移动光标类命令 h: 光标左移一个字符 l: 光标右移一个字符 space: 光标右移一个字符 Backspace: 光标左移一个字符 k或Ctrl+p: 光标上移一行 j或Ctrl+n: 光标下移一行 Enter: 光标下移一行 w或W : 光标右移一个字至字首 b或B : 光标左移一个字至字首 e或E : 光标右移一个字至字尾 ): 光标移至句尾 (: 光标移至句首 }: 光标移至段落开头 {: 光标移至段落结尾 nG: 光标移至第n行首 n+: 光标下移n行 n-: 光标上移n行 n$: 光标移至第n行尾 H: 光标移至屏幕顶行 M: 光标移至屏幕中间行 L: 光标移至屏幕最后行 $: 光标移至当前行尾查看全部
-
main函数中的return查看全部
-
c language characterristic查看全部
-
重定向查看全部
-
管道 ps -e grep ssh查看全部
-
stdin,stdout,stderr查看全部
-
cd ~ //进入家目录 pwd //显示当前路径 ls 显示文件 touch abcd //创建文件 ls -l rm abcd //删除文件 mkdir workspace ls -l cd workspace //进入文件夹 pwd //显示文件完整路径 mkdir les1 cd les1 pwd touch a.c vi a.c rm a.c ls vi a.c //vi一个不存在的文件,会自动创建 输入i进入插入模式,可以进行编写代码,esc返回命令模式,:wq保存并退出 i进入插入模式,i表示在当前的光标前面插入一个字符,a也进入插入模式,在当前光标的后面插入一个字符,查看全部
-
分开编译: gcc -c max.c -o max.o ls ls -l 将hello.c中的#include"max.c"注释掉 gcc max.o hello.c ./a.out 拷贝文件 cp max.c min.c vi min.c gcc -c min.c -o min.o 删除文件 rm a.out 一起生成 gcc max.o min.o hello.c 查看 ls 把一部分不常改动的函数提前编译好,做成静态库,经常修改的部分,每次研一的时候只编译这部分,可以节省大量时间。 正常情况下的未编译的.c文件是可以查看源码的 cat hello.c 但是若提前编译成静态库,就无法查看 max.o min.o,这时候需要给函数加头文件max.h,min.h,int max(int a,int b)这样就可以看到函数的返回值,函数的参数要求等,在主函数中也需要添加头文件#include"max.h" #include"min.h"查看全部
-
cd ~ 进入家目录 ./当前目录下的其他目录 mkdir创建文件夹 touch 创建文件 ls目录列表 ls -l文件属性 cd 进入文件夹 vi 编写 gcc 编译 int main+return 0 多进:4个空格或tab 驼峰状 变量名不能和函数名重复 :wq保存退出 多个源文件分而治之: :sp max.c新建一个文件 ctrl+w+跳转到下面 :set nu打开行号 函数占用n行,则用n+dd复制 ctrl+w+跳转到上面 p粘贴 :wqa 保存所有并退出 gcc hello.c max.c -o main 同时编译多个文件,-o表示输出命名 在主函数文件中加上包含文件 #include "max.c",这样只需要编译主函数文件 gcc hello.c查看全部
-
【编写使用管道的程序】 我们在文件夹下,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,然后进行输入,输入完成我们便得到了对应的平均工资。 以上就是通过管道,将两个小程序连接起来得到更复杂的程序的过程。查看全部
举报
0/150
提交
取消