0.帮助文档

          man  man  ——  查看帮助文档首页

       

         注:帮助文档具体章节

                第一章  ——  可执行程序或shell命令(如ls、cd、date)

                第二章  ——  系统调用(内核提供函数,如open)

                第三掌  ——  库调用(程序库的函数,如C语言中的fopen)

                第四章  ——  特殊文件(通常位于 /dev)

                第五章  ——  文件格式和规范( 如 /etc/passwd)

                第六章  ——  游戏

                第七章  ——  杂项(包括宏包和规范,如man(7),grof(7))

                第八章  ——  系统管理命令(通常只指针root用户)

                第九章  ——  内核标准

 

1.1清空窗口

         clear

         CTRL + L

 

1.2终端翻页

       SHIFT  +  pageup  ——  向上翻页

       SHIFT  +  pagedown  ——  向下翻页

 

1.3设置行号

       :set  nu —— 设置行号

       :set  nonu —— 取消行号

 

2.vim文本编辑器(命令模式)

           vi/vim   hello.txt   ——  创建/打开hello文件(默认开始时便自动进入命令模式)(可同时打开多个文件):

                   移动操作:

                                 H ——   光标向左移动

                                 J  ——   光标向下移动

                                 K  ——   光标向上移动

                                 L  ——   光标向右移动

                                 0  ——   光标移动到行首

                                 SHIFT + 4($)  ——   光标移动到行尾

                                gg  ——   光标移动到第一行行首

                                SHIFT + g(G) ——   光标移动到最后一行行首

                                n + G  ——   光标移动到第n行行首

                    删除操作(本质是剪切操作):

                                x  ——   删除光标后的字母

                                SHIFT + x(X)  ——  删除光标前的字母

                                u  ——  恢复上一步操作

                                d + w  ——  删除光标后的一个单词

                                d + 0  ——   删除光标之前一行的全部单词

                                SHIFT + d(D)—— 删除光标之后一行的全部单词

                                 dd  —— 删除光标所在行的全部单词    

                                 n + dd —— 删除从光标开始之后n行的内容  

                    粘贴操作:

                                  p  ——  在光标下一行粘贴    

                    复制操作:

                                 n + yy  ——  复制n行   

                    可视模式:(可视模式下复制为y,删除为d,粘贴为p)

                                 v  —— 进行可视模式,字符选择,光标经过地方进行反白选择

                                 V  —— 进行可视模式,行选择,光标经过地方进行反白选择

                                 CTRL+ v  —— 进行可视模式,矩形选择,光标经过地方进行反白选择

                     查找操作:

                                /查找内容  —— 查找操作(n向下翻,N向上翻)

                               ?查找内容  —— 查找操作    

                    替换操作:

                               r + 单个字符  ——  替代单个字符    

                    缩进操作:

                               SHIFT + >(双击)  —— 向右缩进

                               SHIFT + < (双击)  —— 向左缩进      

                    帮助操作:

                                SHIFT + k  —— 查找光标所在命令的用法        

 

3.vim文本辑器(文本模式)

                   a  —— 从命令模式跳转到文本模式,从光标后开始编辑

                   SHIFT + a(A)  —— 从命令模式跳转到文本模式,从光标所在行的行尾开始编辑  

                   i  —— 从命令模式跳转到文本模式,从光标前开始编辑

                   SHIFT + i(I)  —— 从命令模式跳转到文本模式,从光标所在行的行首开始编辑 

                   o —— 从命令模式跳转到文本模式,从光标所在行下面创建新一行,新一行开始编辑

                   SHIFT + o(O)  —— 从命令模式跳转到文本模式,从光标所在行上面创建新一行,新一行开始编辑

                   s —— 从命令模式跳转到文本模式,删除光标后一个字符,开始编辑

                   SHIFT + s(S)  —— 从命令模式跳转到文本模式,删除光标所在行的单词,开始编辑

                   SHIFT + r(R) —— 一直替换光标所在字符

 

4.vim文本编辑器(末行模式)

               :+  n  ——  编辑下一个文件

               :+  N  ——  编辑上一个文件

               :+ s/xxx/yyy  —— 将光标后的xxx替换成yyy(只能替换一个

               :+ s/xxx/yyy/g  —— 将光标后的xxx替换成yyy(替换当前行所有xxx

               :+ %s/xxx/yyy  —— 将所有xxx替换成yyy(只替换每行第一个xxx

               :+ %s/xxx/yyy/g  —— 将所有xxx替换成yyy

               :+ n1 + n2 + s/xxx/yyy/g  —— 将第n1行到第n2行的xxx替换成yyy

               :/xxx  ——  查找命令xxx

               :esc(双击) —— 回到命令模式

               :+ w  —— 保存文件

               :+ wq  —— 保存并退出vim编辑器

               : +q!  —— 不保存并退出vim编辑器

 

5.vim编辑器三种模式转换

Linux学习笔记三 ——gcc编译、库

 

6.vim编辑器分屏

           sp  —— 水平分屏

           CTRL + W(双击)  ——  切换屏幕

           :+ q  ——  退出分屏

           :+ w  —— 保存内容

           :+ wqall  —— 保存所有并退出分屏

           vsp  —— 水平分屏

           vsp + 文件名  —— 分屏,并在新屏幕打开文件

 

6.gcc编译的四个阶段

Linux学习笔记三 ——gcc编译、库

 

7.gcc编译参数

               gcc  xxx.c   -o    xxx  ——  将xxx文件直接生成可执行文件     

 

              注意:.c文件中包含的头文件若不是系统文件,而是自己写的,则应该放在.c文件同级目录下,否则:

                          gcc   xxx.c   -o     xxx   -I     指定头文件或目录  ——   指定头文件目录后再编辑文件

                          gcc   xxx.c   -o     xxx   -D   宏名字   ——    编译时定义宏

 

               gcc  xxx.c   -o    xxx   -O1/2/3 ——  将程序优化后再编译文件

               gcc  xxx.c   -o    xxx   -Wall     ——  编译文件时提示警告信息;

               gcc  xxx.c   -o    xxx   -g  ——       在可执行文件里添加调试信息

 

8.静态库

    静态库名字

                   lib  +  库名  +  .a           如libmytest.a

    制作步骤

                   (1)生成对应的.o文件;

                   (2)将生成的.o文件打包( ar   rcs   +   静态库名字(libmytest.a)  +   生成的所有的.o)

                   (3)发布和使用静态库

                                   包括静态库和头文件

 

                          gcc   xxx.c   -c    xxx.o   -L     库文件或目录  ——   指定库目录或文件

                          gcc   xxx.c   -c    xxx.o   -l    库名字(去掉lib和.a)   ——   指定库名字

 

     静态库优点:

                     1.包含库的应用程序发布时,不需要提供对应库;

                     2.加载库的速度快;

    静态库缺点:

                     1.库打包到应用程序中,导致程序体积大;

                     2.库发生改变时,需要重新编译程序。

 

9.动态库

                   lib  +  库名  +  .so           如libmytest.so

    制作步骤:

                   1.生成与位置无关的代码(生成与位置无关的.o)

                          gcc -fPIC  xxx.c   -c    xxx.o     

                   2.将.o打包成共享库

                          gcc  -shared  -o 共享库名字.so   所有.o文件

                   3.使用动态库

                           1)跟静态库类似

                           2)gcc    main.c    libMytest.so     -o     main.o

       

注:若使用动态库,在执行程序报错:error   loading  shared  libraries:libMycalc.so: cannot  open  shared  object  file : No such file or directory时,可以采取以下三种措施:

                  第一种(暂时性、测试使用):

                          export  LD_LIBRARY_PATH=   +    包含动态库的目录     ——     将目录加入lib目录

                  第二种(不常用):

                          (1) 在家目录中打开.bashrc文件,然后将以下命令写入文件中的最后一行

                          #export  LD_LIBRARY_PATH=   +    包含动态库的目录(绝对路径)

                          (2)重启终端

                                                    sudo  ldconfig

                  第三种:

                         (1)需要找动态链接器的配置文件

                                                    vi        /etc/ld.so.conf

                         (2)动态库的路径写道配置文件中

                         (3)更新

                                                    sudo  ldconfig

相关文章: