学习工具、网站、方法
分享代码的平台:GitHub、码云(每个大的项目)
总结知识点平台:CSDN、博客园(写博客至少每周一篇)
笔试面试题:牛客网【专项练习、剑指office】、力扣【算法】(刷题)、PAT考试
问答网站:思否、知乎、抖音、今日头条
思维导图:总结归纳知识点 (xmind)
makedown: typora
文本编辑器:VS code
视频播放器:potplayer(倍速)
开发环境:
virtualBox 虚拟工具 免费开源
Ubuntu 20.04 LTS(长期支持有效)
vim 代码编辑器
gcc 编译器
linux系统介绍(UNIX)
BCPL语言-> newB-> C语言-> UNIX-> Minix-> Linux
Linux管理硬盘的能力强大,所以我们看到的只有一个分区
/ 根目录,所有文件都存储在它的下面
~ 用户主目录
. 当前目录
.. 上一级目录
/bin 存储系统命令*
/dev 存储设备文件(一切皆文件)
/media 多媒体目录(U盘、光驱、挂的目录)
/proc 记录了程序运行期间资源的使用情况
/sbin 存储超级用户才能使用的系统命令
/tmp 存储一些临时文件
/boot 存储系统启动相关文件
/etc 存储的各种软件的配置文件
/lib 存储一些普通的库文件(静态库.a、共享库.so)*
/mnt 存储与其他系统进行映射的目录文件
/root 超级用户的目录(需要权限)
/srv 存储一些系统启动后需要提取的数据文件
/usr 存储头文件*
/home 存储用户主目录*
/opt 存储安装的应用软件
/run 存储一些临时文件
/sys 存储系统相关的文件
注意:目录结构是倒树结构,目录的切换只能上下,不能左右
相对路径和绝对路径:
绝对路径: 从跟目录开始描述一个位置 /user/include
相对路径: 从当前位置(工作路径)描述另一个位置 ../include
Linux的系统命令:
常用命令:
ls 显示当前目录下有哪些文件
-a 显示当前目录下所有文件,以.开头的都是隐藏文件
-l 显示文件的详细信息
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 dirname 创建目录
-p 可以创建多层目录
rmdir dirname 删除目录(只能删除空目录)
rm -rf 删除非空目录
cp -rf src dest 复制目录
mv src dest 移动目录
网络相关的命令:
网络相关的系统命令:
ifconfig 查看网络配置信息
windows 中查看是ipconfig
sudo ifconfig etch0 10.0.2.xxx netmask 255.255.255.xxx 修改ip地址、子网掩码
sudo ifconfig eth0 down 禁用网卡
sudo ifconfig eth0 up 启用网卡
ping ip地址 测试网络连通性
可以测试ip,亦可以测试网址
ping 127.0.0.1本机地址,可以用来测试网卡是否正常
windows 只测试4次,-t或/t 连续测试,ctrl+c结束
网络相关的非系统命令:
ftp ip地址 输入用户名和密码 采用的是明码传输,不够安全,有可能被窃听,一般在公司内部使用
telnet ip地址 然后输入用户名和密码 采用的是明码传输,不够安全,有可能被窃听,一般在公司内部使用
用于远程登录一台服务器进行使用
ssh 用户名@ip地址,然后输入密码 采用加密方式传输,因此比较安全
exit 退出
其他相关命令:
tar 压缩、解压文件
-zcvf 包名 要压缩的目录 创建压缩包
tar -zcvf dir.tar.gz dir1
-zxvf 包名 解压压缩包
chmod 修改文件权限
chmod mmm 文件名 m=r(4)+w(2)+x(1) [mmm:自己、同组、其他] 注意:目录必须拥有执行权限才能进入访问
chmod +/-rwx 文件名 所有用户权限一起增减
find 位置 条件 查询文件
find / -name stdio.h
grep "关键词" 文件名 过滤内容
grep "printf" /usr/include/stdio.h
重启系统:sudo reboot
关机: sudo init 0
安装软件: sudo apt-get install 软件名
更新软件源:sudo apt-get update
更新系统:sudo apt-get upgrade
man key 查询帮助手册
分章节管理内容:
1、系统命令
2、系统函数
3、C标准库函数
Ubuntu使用小技巧:
crtl+l 清理屏幕
tab 自动补全文件名、目录名
crtl+alt+t 快速打开终端
crtl+shift+t 终端下新建标签页
ctrl+tab+方向键 切换工作区
alt+tab 切换程序
重定向、管道、通配符:
重定向: 把命令的执行结果写入文件中
cmd > filename(ls > filename) 如果文件不存在则创建,如果文件存在则清空再写入
cmd >> filename 如果文件不存在则创建,如果文件存在则追加写入
gedit ls_ret.txt
管道: 类似一根管子把两个命令连接起来,一个目录的执行结果作为另一个命令的数据源
cmd1 | cmd2
find / | grep " stdio" 查询所有文件名中包含stdio的文件
通配符: 可以进行模糊执行命令
? 可以替代任意的一个字符
* 可以替代任意的多个字符
终端的配置文件:
打开 gedit ~/.bashrc 文件,在文件末尾添加
# 精简命令提示符
PS1="\u@\w$ "
#新建目录并进入
mk()
{
mkdir $1 && cd $1
}
保存退出,source ~/.bashrc 重新加载配置文件,使修改生效
打字练习软件:typespeed
sudo apt-get install typespeed
注意:终端窗口至少 80*24
vim文本编辑器:(不是系统命令)
可以在终端下采用纯键盘操作的一文本编辑器,号称”编辑器之神“,可以升级(二次开发)、可以扩展(安装插件)
基本用法:
进入vim:vim filename.c 如果文件不存在则创建,文件存在则打开
输入 i:进入编辑模式,编写代码
保存退出:按Esc键退出编辑模式,输入ZZ保存并退出
三大模式:
正常模式:一般用于阅读文件,或者使用快捷键快速地修改文件
编辑模式:一般用于编辑文件,输入内容
行底模式:一般用于对vim进行配置,或者执行一些高级操作
模式切换:
正常 输入 i ->插入
插入 Esc ->正常
正常 输入 : ->行底
行底 Esc ->正常
正常模式的常用操作:
光标移动:
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^ 从光标处删除到行首
dG 从光标处删除到文件末尾
dgg 从光标处删除到文件的开头
dd 删除当前一行
ndd 删除n行(往下)
u 撤回
复制代码:
yy 复制当前一行代码
nyy 复制n行
p(小) 粘贴当前光标的下一行
P(大) 粘贴当前光标的上一行
移动代码:
删除的内容会存储在缓冲区,可以使用p\P进行粘贴,从而达到移动代码的效果
替换代码:
r 替换一个字符
cw 替换一个单词
R 进入替换模式 ins键
撤销操作:
u(小) 撤销上次操作
U(大) 撤销该行的操作
ctrl+r 取消撤销操作
进入插入模式的方法:
i 在当前光标前进入插入模式
I 光标跳转到行首,进入插入模式
a 在当前光标后进入插入模式
A 光标跳转到行尾,进入插入模式
o(小) 光标在当前行下面插入一行空白行,进入插入模式
O(大) 光标在当前行上面插入一行空白行,进入插入模式
插入模式下的操作:
ctrl+p 自动补全,变量、函数名
ctrl+c 相当于Esc键
ctrl+j/m 相当于回车键
自定义功能:
ctrl+z 保存退出
(gcc hello.c ./a.out)
ctrl+x 保存编译运行
ctrl+p 导入头文件、main
行底模式下的操作:
w 写入
q 退出
q! 强制退出
wq 保存退出
x(小) 保存退出
X(大) 加密,注意wq保存退出才生效,ZZ只保存内容不保存属性
set key=空格 去掉密码
!cmd 执行系统命令 例如:!ls
/key 查询,n向下查询,N向上查询
%s/old/new 全部替换,注意如果同一行有多个old,只会修改第一个
set nu 设置行号
set nonu 取消行号
>n 光标处n行代码向右缩进一次
<n 光标处n行代码向左缩进一次
注意:在行底模式下的对vim的配置的设置都只是临时的,如果想长期有效需要把设置语句写入到vim的配置文件中(vim ~/.vimrc)
对于vim的学习:
1、适可而止
2、需要一段时间适应,大概两周
3、Ubuntu自带的vim教程文档 vimtutor