今天我学习了linux的复制与删除指令,gcc的四大步骤(预处理,编译,汇编,链接),以及静态库函数、动态库函数,以及linux 下的if-else、for、while语句的编程,以及对于.sh文件编辑,虽然这只是初步,但更是基石。
主要的指令如下;
1.命令行下的复制粘贴与删除指令,查找行数,main函数以及main函数的替换
1.1 复制;yy(前提就是你得进入文件的命令行中),复制哪行,光标则需要移到首行的首地址,再者需要复制几行,在yy前面加上相应的数字即可。
例如#include<stdio.h>
int mian()
{
printf(“my name is jjh.\n”);
return 0;
}
从首行开始复制6行,也就需要将文件调至命令行下,光标移至#处,点击6yy,(接着需要将光标移到代码下的空白处),点击p即可成功粘贴,指令成功。如果不按括号里那么做,则会导致粘贴不完全,这我在上课初学时则就遇到了类似的问题,大家尽量别犯类似问题。
1.2 对于删除指令:dd
跟上面的yy复制指令有着类似的点,那就是我们要删谁,则需要将光标移到所需删除的行的首地址,当然了我们不是仅仅只删一行,删几行就在dd前面加数字几(前提就是我们还是在vim 的文件的命令行模式下进行操作)。
例如上面的代码,我要删除 return 0; 那么我们就将光标移到r处,输入dd即可,若是从此行往后删除3行,光标不动,输入3dd即可。
在此指令执行的期间,若要撤销,我们可以输入u即可。
1.3 显示行号
命令行下 在底行模式下输入 :set nu即可
1.4文件中查找main函数并用其他字符串替代它
命令行中 底行模式下加入:/name
对于替换main函数
在命令行中输入:%s/main/abc(某个字符串)
特殊情况1:例如 main() main main main 输入:%s/main/abc/g即可(/g可以针对多个一行的多个相同变量)
情况2 :只改变某一行的main函数 可用;s/main/abc/g
2.gcc的深层的四步(预处理、编译、汇编、链接) 对于目录下的文件操作,例如hello.c 文件
2.1预处理 gcc -E -o hello.i hello.c(生成预处理文件)
vim hello.i
2.2编译 gcc -S -o hello.s hello.i(生成编译代码)
vim hello.s
2.3汇编 gcc -c -o hello.o hello.s(生成目标文件)
vim hello.o
2.4链接 gcc -o hello hello.o(生成可执行文件)
ls
相应的目录下会出现a.out文件
之后执行./a.out ls 显示出之前.c文件的输出结果。
3.静态库函数以及动态库函数的创立
3.1 静态库函数的创立
例如你之前创立了一个add.c文件,一个test.c文件,将两个函数整理到一个库函数下。
步骤如下;
3.1.1首先就是编辑上面的两个文件.
3.1.2 gcc -E -o add.i add.c
3.1.3 gcc -s -o add.s add.i
3.1.4 gcc -c -o add.o add.s
3.1.5 ar -rcs libadd.a add.o ( 打包)
3.1.6 gcc test.c -L./ -ladd (add是库名)
那么静态库函数就可建立了,即是libadd.a。
3.2 动态库函数的建立
还是之前的hello.c
执行下面的指令行
gcc -shared fPIC -o libadd.so add.c
动态库函数就建立了
4 linux下.sh的if-else for while 语句
首先对于.sh文件的创立
开头应该加上 #!/bin/sh
值前加上$
之后新建了.sh文件
相应的代码如下
4.1 for语句
#!/bin/sh
num=2
for((i=1;i<100;i++))
do
touch"$i"
done
4.2 if-else语句
#!/bin/sh
if [ $1 -lt $2 ];then
echo “$1 is smaller.”
else
echo"$2 is bigger."
fi
4.3 while语句
i =1
while [i -lt 100]
do
echo $i
if [ $((i%num)) -eq o ];then
eceho $1
fi
done
-lt 小于 -eq等于 -gt大于
5.sh文件
对于.sh文件开头都应该加上预处理语句 #!/bin/sh
以及.sh文件不需要编译。

第一周 第二天的linux学习相关推荐

  1. python123《python语言程序设计》程序设计题第一周第二周第三周第四周第五周

    第一周学习 eval定义 eval(expression,globals=None,locals=None) -expression:该参数是一个字符串,python会使用globals字典和loca ...

  2. 第一周第一天02+第一周第二天01

    说明:我几乎完全按照下面这篇博客走了一遍,由于我的电脑配置与这个博主差不多,所以就参照起来方便:下面我只记录在按照这篇博客流程一步一步走下来时遇到的一些问题,具体流程这篇博客很不错,就不记录了. (这 ...

  3. 网易云课堂[Web安全工程师]第一部分 第二章WEB简介 学习记录

    [仍旧写在前面 个人学习笔记] 第一部分 WEB基础知识 第二章 WEB基础知识 第一节 前端开发基础--HTML课后小测验 1 HTML页面的注释符号是那种?<!-- --> 2 若要在 ...

  4. 第一周作业(马哥linux)

    1.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别. Debian Ubuntu:基于Debian开发的开源Linux操作系统,主要针对桌面和服务器 Linux Mint:基于Debi ...

  5. 工作室课题学习情况总结(第一周)

    第一周的工作室课题主要学习练习的内容是排序算法这一块的内容,其中我在做题时主要用到了写程序时的三个基本排序算法--直接插入排序.起泡排序.选择排序.下面为大家依次介绍: 一.直接插入排序(straig ...

  6. #C语言学习——第一周 求长方形周长面积

    #学C语言第一周 第二天 因为要加学校一个打比赛的牛逼社开始学C 记录几个今天的错 1.stdio 拼写 2.;英文 :中文 3.每句记得; 4.记得数据类型 还有今天的作业 问题要求:输入一个长方形 ...

  7. 我的Linux学习之路(纯小白)

    说在前面:感激赏识我的人们,谢谢你带我入门~~~~满怀感恩,出发~~~ 第一部分:学习资料(书籍和B站上的Linux视频) 目前在看的几本Linux书籍: 1.Linux就该这么学-刘遄 网址:htt ...

  8. WaWa的奇妙冒险(第一周集训自闭现场)

    第一周周记 (一)例题记录 A-Download Manager (水题) HDU - 3233 Input Output Sample Input Sample Output 理解 AC代码 B-J ...

  9. 20135320赵瀚青LINUX内核分析第一周学习笔记

    赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.概述 第一周的学习内容主 ...

最新文章

  1. Scrapy中的splash的安装应用
  2. SQL入门经典(第5版)pdf
  3. 解决点击事件让背景变红,在点击背景变正常,并且可以多选的效果
  4. mysql安装主从配置_MySQL安装与主从配置
  5. ue 抗锯齿 渲染序列失灵_最大的锯齿形序列
  6. cif是目的港交货吗_刚接手出口业务,搞不懂FOB? CIF? 为你科普→
  7. 前端:HTML5/36/HTML5简介,文档类型定义,网页字符集,页面结构标记,文章相关的标记,其它标记,音频标记,视频标记,表单中新增的属性,表单input元素type属性的值
  8. .net 中文语音朗读
  9. 到外企应聘如何准备英文简历(Tips for Resume)
  10. ext 不能修改 输入框_浏览器文本框不能输入文字解决方法
  11. 2021-01-13事件对象
  12. PNP : Work Cound Frequence
  13. JSX、JSX的介绍、JSX特点、JSX的语法、XML基本语法
  14. 关于深度优先遍历和广度优先遍历的一些深入思考
  15. Swap file “*.swp“ already exists!的解决方法
  16. iOS“远程越狱”间谍软件Pegasus技术分析
  17. Python 报错Process finished with exit code -1073740791 (0xC0000409)解决方法
  18. 仿最新BiliBili客户端(已开源)
  19. android apk对遥控器支持,Android中关于APK对遥控器支持的修改
  20. 谈谈利用统计工具做好网站数据分析

热门文章

  1. 《Netkiller Spring Cloud 手札》之 Master / Slave 主从数据库数据源配置
  2. python 运行日志logging代替方案
  3. 英语发音规则---Z字母
  4. Linux下arp用法
  5. javascript创建对象的几种方式 .
  6. bean的属性类型----ibatis类型-------oracle数据库类型
  7. 计算机网络 上海交大 ppt,上海交大计算机网络2.ppt
  8. hashmap 不释放空间_刁难问题,为什么HashMap默认容量为16加载因子为0.75
  9. man mysql_几个容易被忽略的mysql知识
  10. MySQL高级 - 锁 - InnoDB行锁 - 总结