C语言开发环境搭建
Linux开发环境:
VirtualBox 虚拟机工具 开源免费
Ubuntu 12.04 LTS 长期支持版本 稳定
vim 代码编辑器
gcc 编译器
Linux系统简介:
发展历程:BCPL -> newB -> C-> UNIX -> Minix -> Linux
Linux 管理硬盘的能力非常强,所以我们看到的只有一个分区
/ 根目录,所有的文件都储存在它下面
/bin 储存系统命令
/dev 设备文件(一切皆文件)
/media 多媒体目录、U盘、光驱、共享文件夹
/var 储存系统日志
/boot 储存于启动相关的文件
/etc 储存各种软件的配置文件
/lib 储存普通的库文件 .a静态库 .os共享库
/mnt 与其他系统进行映射的目录
/root 储存着超级用户才能使用的系统文件
/home 用户主目录,会自动生成同名的用户主目录
/opt 安装的应用软件
/run 是一个临时的文件系统
/usr 储存头文件
注意:Linux目录结构是树形,目录的切换只能上下,不能左右
绝对路径和相对路径:
绝对路径:从跟目录开始描述一个位置
相对路径:从当前位置(工作目录)开始描述一个位置
Linux系统命令:
常用命令:
ls 显示当前目录下有哪些文件
-a 显示隐藏文件,以 . 开头的都是隐藏文件,Ctrl+h
-l 显示文件的详细信息
cd 进入一个目录
. 当前目录
.. 上一级目录
~ 用户主目录 cd
clear 清理屏幕 Ctrl+l
pwd 显示当前所在位置
whoami 显示当前用户名
文件命令:
注意:不是所有的功能都有对应的命令
touch filename 创建文件(不存在则创建)
rm filename 删除文件(不经过回收站直接删除,要慎重)
cat/more/head/tail 查看文件
cat 会把文件的所有内容都显示在终端上,适合查看内容较少的文件
more 显示文件的开头,回车下一行,空格下一页,q退出查看
head 只显示文件开头10行
tail 只显示文件末尾10行
cp src dest 复制文件
mv src dest 移动文件,也具备重命名的功能
目录相关的命令:
mkdir 创建目录
-p 可以创建多级目录(递归形式)
rmdir 删除目录,只能删除空目录
rm -rf 删除非空目录 rm -rf /*删库
cp 复制目录
-rf 复制非空目录
mv 移动目录、重命名目录
网络相关的命令:
ifconfig 查看网络配置信息
Windows下查看是ipconfig
sudo ifconfig ethn 192.168.0.xxx netmask 255.255.255.xxx
sudo ifconfig ethn down 关闭网卡
sudo ifconfig ethn up 启动网卡
ping ip地址/网址 测试网络是否连通
ping 127.0.0.1 也叫做本机地址,可以用来测试网卡是否正常工作(禁用网卡,也能连通,就算正常)
Linux默认一直ping,Ctrl+c结束
Windows默认ping4次,/t连续测试,Ctrl+c结束
ftp ip地址,然后输入用户名和密码
ls 显示当前所处服务器有哪些文件
pwd 显示服务器上的工作路径
cd 切换所在服务器的工作路径
get 下载文件
put 上传文件
bye 退出
采用明码方式传输数据,不够安全,有被窃听的风险,一般公司内部使用
telent ip地址,输入用户名和密码
远程登录一台服务器进行使用
采用明码方式传输数据,不够安全,有被窃听的风险,一般公司内部使用
ssh 用户名@ip地址,然后输入密码
采用加密方式传输,因此比较安全
exit退出
其他相关命令:
tar 压缩、解压文件
-zcvf 包名 要压缩的目录,创建压缩包
-zxvf 包名 解压
chmod 修改文件权限
chmod mmm 文件名
m = r(4) + w(2) + x(1)
chmod +/- rwx 文件名 所有用户一起改
(目录必须有执行权限才能访问)
find 位置 条件 查询文件
示例:find / -name stdio.h
grep “关键字” 文件名 过滤
示例:grep "printf" stdio.h
重启系统:sudo reboot
关机:sudo init 0
更新软件源:sudo apt-get update
更新系统:sudo apt-get upgrade
man key 查询帮助手册
分章节管理内容
1、系统命令
2、系统函数
3、标准库函数
q键退出
Ubuntu系统使用的小技巧:
Ctrl+l 清屏
tab 自动补全命令或者文件名
up/down 调出命令执行记录
Ctrl+alt+t 快速打开终端
Ctrl+shift+t 新建终端标签页
Ctrl+alt+方向键 切换工作区
Alt+Tab 切换程序
重定向、管道和通配符:
重定向:把命令的执行结果写入到文件中
cmd > filename 如果文件存在则清空后写入,文件不存在则创建后写入
cmd >> filename如果文件存在则追加写入,文件不存在则创建后写入
管道:相当于一根管子连通两个命令,一个命令的执行结果当做另一个命令的数据源
示例:find / | grep "key"查询所有文件中含有key的文件
通配符:可以进行模糊执行命令
?:代表任意的一个字符
*:代表任意的多个字符
终端的配置文件:
打开终端配置文件 gedit ~/.bashrc,在末尾另起一行添加
#精简命令提示符
PS1=’\u@\w$ ’
#新建目录并进入
mk()
{
mkdir $1 && cd $1
}
保存退出,命令输入
source ~/.bashrc 重新加载配置文件,使修改生效
简单的脚本:
脚本:由系统命令组成的带执行权限的文本文件,执行脚本文件时会被命令解释器读取并执行
新建脚本文件 .sh .cnf结尾
chmod +x filename
./filename
打字软件:typespeed
sudo apt-get install typespeed
注意:窗口必须至少80*24
vim文本编辑器:
可在终端下采用纯键盘操作的一款文本编辑器,号称编辑器之神
可以升级(二次开发),可以扩展(安装插件)
基本用法:
进入vim:vim filename 文件存在则打开,不存在则创建
输入 i:进入编辑模式,编辑代码
保存退出:按Esc键退出编辑模式,输入ZZ保存退出
vim三大模式:
正常模式:一般用来阅读文件,或者使用快捷键快速地修改文件
插入模式:一般用于编辑文件,输入内容
行底模式:一般用于对vim进行配置,或者执行一些高级操作
模式切换:
正常 输入i -> 插入
插入 Esc -> 正常
正常 输入: -> 行底
行底 Esc -> 正常
正常模式下的常用操作:
光标移动1:
h左、j下、k上、l右
gg 光标跳转到第一行
G 光标跳转到最后一行
n 加回车 光标向下跳转n行
n- 光标向上跳转n行
nG 光标跳转到第n行
vim filename +n 直接进入该文件的第n行
Home 光标跳到行首
End 光标跳到行尾
PgUp 向上翻一页
PgDn 向下翻一页
删除代码:
x 删除一个字符
nx 删除n个字符
dw/de 删除一个连续的字符串,区别是删不删空格
d$ 从光标处删到行尾
d^ 从光标处删到行首
dd 删除一行
ndd 删除n行
dG 从光标处删到末尾
dgg/d1G 从光标处删到开头
复制代码:
yy 复制一行
nyy 赋值n行
p 粘贴在光标的下面
P 粘贴在光标的上面
移动代码:
删除的内容还储存在缓冲区,可以使用p\P粘贴,实现移动代码的效果
替换代码:
r 替换一个单词
cw 替换一个单词
R 进入替换模式
xp 实现调换两个字符的顺序
撤销操作:
u 撤销上一次操作
U 撤销一行的所有操作
Ctrl+r 取消撤销操作
插入模式:
i 在当前光标前进入插入模式
I 光标跳转到行首,进入插入模式
a 在当前光标后进入插入模式
A 光标跳转到行尾,进入插入模式
o 在当前行的下面插入一个空白行,进入插入模式
O 在当前行的上面插入一个空白行,进入插入模式
插入模式下操作:
Ctrl+p 自动补全
Ctrl+i 自动缩进,相当于Tab功能
Ctrl+j/m 相当于回车功能
Ctrl+c 相当于Esc功能
自定义模式:
Ctrl+z 保存退出 任何模式都能进行
Ctrl+x 保存并编译代码,然后输出结果
行底模式下操作:
w 写入
q 退出
wq 保存退出
q! 强制退出
x 保存退出
X 加密,set key= ,删除密码,注意:wq保存退出才生效
!cmd 执行系统命令
/key 查询命令,n往下查询,N往上查询
%s/old/new 全部替换
set nu 显示行号
set nonu 隐藏行号
>n n行代码向右缩进
<n n行代码向左缩进
注意:在行底模式下对vim的设置只是临时有效,如果想要长期有效,需要把这些设置语句写入到配置文件中(~/.vimrc)
对vim的配置:vim~/.vimrc