一、C语言简介
诞生过程:BCPL->new B->C语言->UNIX->Minix->Linux->gcc
C语言诞生于1970~1973年,在肯.汤普逊和丹尼斯.里奇的编写下完成,归属于美国贝尔实验室。
二、C语言目录
/ 根目录,整个系统所有的文件都存储在它下面
/bin 存储系统命令文件
/dev 存储设备文件
/etc 存储各种软件的配置文件
/home 存储各个用户的用户主目录
/lib 存放普通的库文件
/media 存储外部文件系统文件,例如U盘、共享文件夹
/proc 存储进程的内存情况文件
/usr 存储各种标准库头文件
特殊目录:
/ 根目录 ~ 用户主目录 .. 上一层目录 . 当前目录
注意:Linux的目录结构是倒悬树,目录的切换只能上下不能左右
绝对路径:从根目录开始描述一个位置 例:/home/ubuntu/下载
相对路径:从当前工作目录开始描述一个位置
三、Linux系统命令
1、常用的命令
ls 显示当前工作目录下有哪些文件
-a 显示隐藏文件,以 . 开头的都是隐藏文件
-l 以长格式显示文件的详细信息
cd 进入一个目录
clear 清理屏幕 等同Ubuntu中的ctrl+l
pwd 获取当前目录的绝对路径
whoami 显示当前用户名
2、文件的常用命令
touch filename 创建文件
rm filename 删除文件,不经过回收站,要慎重
cat/more/head/tail 查看文件
cat 会把文件的全部内容显示到终端,适合查看内容较少的文件
more 以分页来显示文件内容,回车下一行,空格下一页,q退出
head 只显示开头10行
tail 只显示末尾10行
cp src dest 复制src到dest
mv src dest 移动src到dest,也具备重命名的功能
3、目录相关命令
mkdir 创建目录
-p 可以一次性创建多层目录
rmdir 删除目录,只能删除空目录
rm -rf 删除非空目录
cp -r dest src 把dest目录复制到src
mv dest src 移动目录\重命名目录名
4、网络相关命令
ifconfig 查看网络配置信息 (windows下是ipconfig)
sudo ifconfig enpxxx down 禁用网卡enpxxx
sudo ifconfig enpxxx up 启用网卡enpxxx
sudo ifconfig enpxxx 192.168.xx.xx netmask 255.255.xxx.xxx 修改ip地址和子网掩码
ping ip地址/域名 测试网络是否连通
ctrl+c 停止测试
127.0.0.1 本机地址,可以用来测试网卡是否正常工作
windows默认只测试4次,加参数 /t 连续测试,Ctrl+c停止
远程登录Linux服务器:
ftp ip地址 然后输入用户名和密码
采用明码传输数据,不够安全,有被窃听的风险,一般用于公司内部使用
telent ip地址 然后输入用户名和密码
采用明码传输数据,不够安全,有被窃听的风险
ssh 用户名@ip地址 然后输入密码
采用加密方式传输数据,比较安全
exit退出登录
5、其他相关命令
chmod 修改文件权限
例:chmod mmm filename
m = r(4) + w(2) + x(1)
mmm = 自己、同组、其它
chmod +/-r/w/x filename 所有用户一起增加或删除权限
注意:目录必须拥有执行权限才能进入
find 位置 条件 查询的目标
例如:find / -name stdio.h 查找根目录下名字叫stdio.h的文件都在哪里
grep "关键字" 文件名 过滤内容
例如:grep "printf" stdio.h 过滤显示stdio.h中出现printf的语句
sudo 获取超级管理员权限执行命令
sudo reboot 重启
sudo init 0 关机
sudo apt-get upgrade 更新系统
sudo apt-get update 更新软件源
sudo apt-get install 软件名 安装软件
man key 查询帮助手册
四、vim使用技巧
Ctrl+l 快速清屏 等同于命令clear
tab 自动补全命令、文件、目录
up\down 方向键调出历史命令
Ctrl+Alt+t 快速打开终端
Ctrl+Shift+t 在当前终端新建一个标签页
Alt+Tab 快速切换程序
Ctrl+Alt+方向键 切换工作区
重定向、管道、通配符:
重定向:把命令的执行结果重新定义方向(写入文件)
cmd > filename 如果文件不存在则新建再写入,如果文件存在则清空后写入
cmd >> filename 如果文件不存在则新建再写入,如果文件存在则在末尾追加
管道:相当于用一根管子把两个命令连接在一起,用一个命令的执行结果当做另一个命令的数据源
cmd1 | cmd2 例如:find / | grep "stdio"
从根目录的所有文件中过滤名字中含有stdio关键字的文件
通配符:可以使用通配符进行模糊操作命令
? 代表任意的一个字符
* 代表任意多个的任意字符
// sudo rm -rf /* 很危险
终端配置文件:
gedit ~/.bashrc 打开终端配置文件,注意一定不要修改原来的内容,在末尾追加内容
保存关闭,终端输入 source ~/.bashrc 重新加载配置文件,使修改生效
简单的脚本文件
脚本:由系统命令组成的带有可执行权限的文本文件,执行脚本文件时里面的命令会被命令解释器shell所读取并执行
1、gedit project_create.sh 创建批量生成文件的脚本文件
2、touch xxx xxx xxx 批量生成文件的系统命令
3、保存退出,chmod +x project_create.sh 增加执行权限
4、./project_create.sh 运行脚本
5、chmod -x project_create.sh 删除执行权限
vim文本编辑器
可以在终端采用纯键盘操作的一款文本编辑器,号称编辑器之神,可以升级(二次开发),可以扩展(安装插件)
(1)基本用法:
进入vim: vim filename.c 文件存在则打开,不存在则新建后打开
输入i 进入编辑模式,编写代码
输入Esc退出编辑模式,输入ZZ保存退出
(2)vim的三大模式:
正常模式:打开文件时默认就是正常模式,一般用于阅读文件,或者使用快捷键对文件进行快速操作
编辑模式:用于编辑文件、编写代码
行底模式:用于对vim进行一些高级操作、对vim的设置
(3)模式之间的切换:
正常 输入i -> 编辑
编辑 按Esc -> 正常
正常 输入: -> 行底
行底 按Esc -> 正常
(4)正常模式的常用操作:
光标移动:j k l h
gg 光标跳转到文件开头
G 光标跳转到文件末尾
n+回车 往下跳转n行
n+减号 往上跳转n行
nG 直接跳转到第n行
vim file.c +n 打开后直接跳转到第n行
(5)删除代码:
dd 删除光标所在一行代码
ndd 删除光标下面n行代码
dG 从光标处删除到文件末尾
dgg 从光标处删除到文件开头
d$ 从光标处删除到行尾
d^ 从光标处删除到行首
x 删除一个字符
nx 删除n个字符
dw/de(空格删除/留空格) 从光标处连续删除字符直到遇到空格停止
(6)复制、粘贴代码操作:
yy 复制当前一行代码
nyy 复制当前n行代码
p 粘贴到当前光标的下一行
P 粘贴到当前光标的上一行
移动代码操作:
删除的内容依然存在粘贴板中,通过p可以实现移动代码的效果
xp 可以快速交换两个字符
(7)替换代码操作:
r 替换一个字符
cw 替换一个单词
R 进入替换模式
(8)撤销操作:
u 撤销上一步操作
Ctrl+r 取消撤销操作
(9)正常模式进入插入模式的快捷键:
i 在当前光标的前面进入插入模式
I 在当前行的行首进入插入模式
a 在当前光标的后面进入插入模式
A 在当前行的行尾进入插入模式
o 在当前行的下一行插入一行空白行并进入插入模式
O 在当前行的上一行插入一行空白行并进入插入模式
(10)插入模式的操作:
Ctrl+p 自动补全变量名、函数名... 注意:多使用
Ctrl+j/m 相当回车
Ctrl+c 相当于Esc
Ctrl+i 缩进,相当于Tab
(11)行底模式的常用操作:
:q 退出
:w 保存
:wq 保存退出
:q! 强制退出
:x 保存退出
:X 加密,输入两次密码,然后输入:wq 才生效
:set key=空格 删除密码 然后输入:wq 才生效
:!cmd 执行系统命令
:set nu 设置显示行号
:set nonu 设置取消显示行号
:/key 查询关键词key n往下找,N往上找
:%s/old/new 把所有关键字old,替换为new关键字(同一行有多个old,只换第一个)
:<n n行代码向左缩进一次
:>n n行代码向右缩进一次
注意:行底模式的所有设置都只在当前vim生效,如果想要一直有效,需要修改vim的配置文件(~/.vimrc)
(12)设置vim配置文件:
vim ~/.vimrc 或者 gedit ~/.vimrc