02、老徐教你学C语言基础篇2——C语言摩拳擦掌齐上阵(环境篇)——Linux编程软件
来源:互联网 发布:js节点 元素 编辑:程序博客网 时间:2024/05/26 19:14
具体解释:Linux与windows对硬盘的管理访问机制不一样
首先把windows分成几个分区(主分区、逻辑分区),然后在某个主分区上安装操作系统,其它分区或者设备(U盘、SD卡、光驱)以盘符的形式出现在我的电脑里,我们通过打开我的电脑访问。
Linux在一个分区安装好后(此分区我们可称之为根文件系统),最顶层有一个/作为顶层目录,以下再划分为不同目录存放不通用途的文件,其它分区或者设备(U盘、SD卡、光驱)通过/目录下的某个目录进行访问。所以你在Linux下看不到类似windows的盘符的概念,在Linux下我们看到的就是一个个文件、文件夹,我们对磁盘数据、存储系统、硬件设备的访问都被抽象成对文件或者文件夹的操作。
Linux刚出世时没有什么图形界面,所有的操作全靠命令完成;无兄弟,不Dota,还记得当年调整夜战,开黑虐人的快感么~
近几年来,Linux发展的非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux命令行的应用还是占有非常重要的席位的;
许多Linux功能在命令行界面要比图形化界面下运行的快,有些使用Linux的场合甚至没有图形化的界面
“无命令、不Linux”——让我们一起走入Linux命令的世界
a、Linux命令格式:
command [-options] [parameter1] …
说明:
command:
命令名:相应功能的英文单词或单词的缩写
[-options]:
选项:可用来对命令进行控制,也可以省略
parameter1 …:
传给命令的参数:可以是零个一个或多个
例:ls -alh /home
b、命令使用方法
--help
例:ls --help一般是Linux命令自带的帮助信息
man(manual)
有问题找男人
man是Linux提供的一个手册,包含了绝大部分的命令、函数使用说明
该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。
例:man ls ; man 3 printf
(printf既是命令又是函数,可使用 数字选定章节)
c、命令使用方法:
自动补全:
敲出命令前几个字母的同时按下tab键,系统会帮我们补全命令
历史命令:
当系统执行过一些命令后,可按上下键翻看以前的命令
history将执行过的命令列举出来
重定向:>
本应显示在终端上的内容保存到执行文件中
例:ls > test.txt; ls --help > test.txt
管道:|
一个程序的输出作为另一个程序的输入
ls | less ; ls | more
d、一些基本的命令:
ls:显示目录内容
-l:列表显示-a:显示隐藏文件
-h:配合-l以人性化的方式显示文件大小
tree:以树状形式显示目录结构
-L n(n为要查看的层数)系统默认没有此命令
安装:sudo apt-get install tree
clear:
清除终端上的显示
cd:切换目录
cd /home可进入home(指定)目录
cd .. 可进入上一层目录
cd - 可进入上一个进入的目录
cd ~ 可进入用户的家目录(~:代指家目录)
pwd:显示当前工作目录的绝对路径
mkdir:创建目录
-p 递归地在指定路径建立文件夹
touch:创建文件
touch test.c
cat:显示文本文件内容
cat test 显示test文件的内容
rm:删除文件/目录
rm file1 -rf
-r:删除文件夹时必须加此参数
-f :强制地删除文件,如果没有不出错
cp:复制文件
cp /etc/profile /home
-R:拷贝文件夹
-v:显示拷贝进度
mv:移动文件或更改文件名
mv file1 file2
mv file1 /home
–v:同cp
find:在指定路径下查找指定文件
用法:find 路径名-name 文件名
例子:find /home -name test.txt
//在根目录的home目录下查找名为test.txt的文件
grep:在指定文件中查找指定内容
用法:grep 查找信息 文件名 参数-n 显示行号
例子1:grep aaa test.c -n
//在当前文件test.c中查找aaa信息,并显示行号
例子2:grep aaa ./* -R -n
Linux下建议压缩与解压缩的命令://在当前文件夹下的所有文件查找包含aaa信息的文件
gzip格式:
压缩用法:tar zcvf 压缩包包名 文件1 文件2 ...
例子:tar zcvf bk.tar.gz *.c
解压用法:tar xvzf 压缩包包名
例子: tar zxvf bk.tar.gz
解压到指定目录:-C
例子:tar zxvf bk.tar.gz -C ./test
//将bk.tar.gz解压到当前目录下的test目录下
bz2格式:
压缩用法: tar jcvf 压缩包包名 文件1 文件2 ...
例子:tar jcvf bk.tar.bz2 *.c
解缩用法: tar jxvf 压缩包包名
例子: tar jxvf bk.tar.bz2
解压到指定目录:-C
例子:tar jxvf bk.tar.bz2 -C ./
a、安装vim(ubuntu本身带的vi不是很完整)
sudo apt-get install vim
b、安装ctags(一个函数提示插件)
sudo apt-get install ctags
c、我们自行定制的一个插件,加速C语言编写
step1:将vim_configure拷入当前用户的目录下(使用samba或共享文件夹完成)step2:打开终端,执行以下以下命令:cd vim_configure./copy_con.sh拷贝成功后,出现copy successful(如提示没有权限:请使用:chmod +x copy_con.sh增加执行权限)
vi filename:打开或新建文件,并将光标置于第一行行首文件下载请参考:
d、三大模式:
1)vi插入模式
vi创建一个不存在文件时,默认进入插入模式
vi将输入的字符作为正文内容放在正在编辑的文件中
2)vi编辑模式
vi打开一个已经存在文件时,默认进入编辑模式
在此模式下可进入插入模式、控制屏幕光标的移动、进行文本的选择、复制、粘贴、剪切、删除、查找等工作。
3)vi最后一行模式(命令模式)
在编辑模式下,按shift+:进入
跟编辑模式类似,完成存盘、另存、查找等任务
e、模式切换
1)由编辑模式切换到插入模式
i 从光标当前位置开始插入
o 在光标位置的下行插入一个空行,再进行插入
2)由编辑模式切换到命令模式
shift + :
由插入模式、命令模式切换到编辑模式
esc
3)插入模式与命令模式不能直接转换
f、编辑模式命令:
编辑模式下删除和修改文本
1) u 撤消前面多次修改。
2) [n]x 删除光标后n个字符。
3) [n]X 删除光标前n个字符。
4) [n]dd 删除从当前行开始的n行。
5) [n]yy复制从当前行开始的n行。6) p 把粘贴板上的内容插入到当前行。
7) . 执行上一次操作
8) shift +zz(按住shift按两下z键) 保存退出当前文件9)编辑模式下移动光标
[n]G:将光标定位到第n行开始处
G: 将光标定位到文件结束处
gg:将光标定位到文件开始处
10)编辑模式下的查找
/字符串:从光标开始处向文件尾查找字符串。
n:同一方向重复上一次查找命令。
N:反方向重复上一次查找命令
g、最后一行模式:
文件存储类:
:w 保存当前文件
:w file 另存当前文件为file
:wq 保存当前文件,退出
:q! 不保存文件并退出
配合搜索命令使用:
:nohls 取消高亮
h、ctags和自定义插件带来的额外命令:set hls 设置高亮
- 自动添加创建时间、名称等注释信息
- 自动添加行号
- 支持鼠标点击定位
- 支持函数列表功能(F9打开或关闭)
- 支持多文件打开功能(F5)
- 可使用ctrl+N 补全函数以及结构体成员
- 自动整理代码格式:
- 使用鼠标选中代码,按下“=”号键可自动规整代码
- 支持vim快捷键.pdf中的快捷键。
- 插件的特殊用法,参看《vim快捷键.pdf》
a、编译器的基本概念:
编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。
GNU项目中的一个子项目GCC(GNU Compiler Collection)是一个编译器套装
GCC最初用于编译C语言,随着项目的发展GCC已经成为了能够编译C、C++、Java、Ada、fortran、Object C、Object C++、Go语言的编译器大家族。gcc作为真实的编译器和链接器的入口——它会在需要的时候调用其它组件(预处理器、汇编器、链接器),并且会传一些额外的参数给编译器和连接器。
b、输入文件的类型和传给gcc的参数决定了gcc调用哪些组件。
gcc识别的文件扩展名如下:.c C语言文件.i 预处理后的C语言文件.C、.cc、.cp、.cpp、.c++、.cxx C++语言文件.ii 预处理后的C++语言文件.S 汇编文件.s 预处理后的汇编文件.o 编译后的目标文件.a 目标文件的静态链接库(链接时使用).so 目标文件的动态链接库(链接、运行时使用)
c、gcc、g++编译选项
-o file 指定生成的输出文件名为file-E 只进行预处理-S 只进行预处理和编译-c 只进行预处理、编译和汇编-Wall 生成所有级别的警告信息-w 关闭所有警告,建议不使用此选项
d、gcc常用编译应用实例:
例1:分步进行
gcc -E hello.c -o hello.i 1、预处理
gcc -S hello.i -o hello.s 2、编译
gcc -c hello.s -o hello.o 3、汇编
gcc hello.o -o hello_elf 4、链接
例2: 一步到位
gcc hello.c -o hello_elf
a、概述:GNU工具集中的调试器是gdb,该程序是一个交互式工具,工作在字符模式。除gdb外,linux下比较有名的调试器还有xxgdb, ddd, kgdb, ups。b、常用命令:1. l (list) 列出程序清单2. r (run) 运行程序3. b(breakpoint) 设置断点,格式: b [行号/函数名]4. info b 查看断点信息5. clear [行号] , 清除断点6. c (continue) 继续运行程序7. s (step) 单步运行,step into8. n (next) 单步运行,step over9. finish 跳出函数, step out10. print 变量/表达式 , 显示变量或表达式的值11. display 变量/表达式 ,每次程序停止运行是都显示变量或表达式的值12.undisplay 取消显示变量
c、例子:
- 02、老徐教你学C语言基础篇2——C语言摩拳擦掌齐上阵(环境篇)——Linux编程软件
- 02、老徐教你学C语言基础篇2——C语言摩拳擦掌齐上阵(环境篇)——理论
- 02、老徐教你学C语言基础篇2——C语言摩拳擦掌齐上阵(环境篇)——vc安装
- 02、老徐教你学C语言基础篇2——C语言摩拳擦掌齐上阵(环境篇)——简单工程的创建与使用
- 02、老徐教你学C语言基础篇2——C语言摩拳擦掌齐上阵(环境篇)——调试工具及调试技巧
- 02、老徐教你学C语言基础篇2——C语言摩拳擦掌齐上阵(环境篇)——ubuntu安装
- 04、老徐教你学C语言基础篇4——C语言之门(数据篇)
- 05、老徐教你学C语言基础篇4——C语言之门(运算篇)
- 06、老徐教你学C语言基础篇6——C语言之基(结构篇)
- 07、老徐教你学C语言基础篇7——C语言之魂(函数篇)
- 03、老徐教你学C语言基础篇3——C语言背后的故事(编译篇)
- 01、老徐教你学C语言基础篇1——C语言不得不说的秘密(历史篇)——理论
- 00、老徐教你学C语言——C语言学习之道(学习篇)——理论
- Linux下C语言编程基础 —— Makefile
- 嵌入式 Linux C语言——C语言基础
- 编程的基础——C语言
- 添物零基础到大型全栈架构师 不花钱学计算机及编程(预备篇)— C语言编程基础
- Linux —— C语言编程入门
- 搞ACM的伤不起啊!!
- [ACM] hdu 1028 Ignatius and the Princess III (母函数)
- OPENGL_变换与坐标系
- 浏览器探究——回退和前进
- 【LeetCode】Insertion Sort List
- 02、老徐教你学C语言基础篇2——C语言摩拳擦掌齐上阵(环境篇)——Linux编程软件
- 链表插入(线性表)
- 如何写出一个空心正方形新解法
- win32编程(1)
- POJ 1776 竞赛图的哈密尔顿回路
- hw 面试题
- 浏览器探究——执行网页跳转
- PSCollectionView瀑布流实现
- 解决AndroidManifest.xml file missing方案