学习工具、网站、方法:
笔试题刷题网站:牛客网、LeetCode(难度较高)、LintCode、PAT考试
代码分享网站:GitHub、Gitee
知识点总结网站:CSDN、博客园
文本编辑器:VS Code
思维导图:XMind
视频播放器:PotPlayer
markdown:Typora
开发环境:
VirtualBox 虚拟机工具 免费开源
Ubuntu 16.04 LTS(长期支持版本) Linux操作系统
vim 文本编辑器
gcc 编译器
Linux系统介绍:
BCPL(汇编语言)->new B->C语言->UNIX->Minix->Linux->gcc
Linux管理硬盘的能力非常强,所以我们只能看到一个分区
UNIX/Linux系统 一切皆文件
/ 根目录 所有的文件都在它下面
/bin 存储系统命令的文件
/media 存储外设的文件 /media/sf_xxx共享文件夹路径
/home 存储每个用户的用户主目录
/usr 存储系统头文件
/ 根目录
~ 用户主目录
.. 上一级目录
. 当前目录
注意:目录结构是倒悬树型,目录的切换只能上下,不能左右
绝对路径和相对路径:
绝对路径:以根目录开头来描述一个路径
/media/sf_Share/LED/
相对路径:以当前位置(工作目录)来描述一个路径
Linux系统命令:
常用命令:
ls 显示当前目录下有哪些文件
-a 显示所有的文件 .开头的都是隐藏文件(重命名的时候前面加.)
Ctrl+H 显示/取消显示隐藏文件
-l 以长格式显示文件的详细信息
cd 进入一个目录
建议多使用Tab补全文件名
clear 清屏 快捷键 Ctrl+L
pwd 显示当前所在的绝对路径
whoami 显示当前用户名
注意:UNIX/Linux中不是所有的功能都有专属的命令对应
文件相关命令:(文件名filename)
touch filename 创建文件
rm filename 删除文件 不经过回收站、没有提示,几乎没有找回的可能,要慎重
cat/more/less/head/tail filename 查看文件的内容
cat 把文件的所有内容显示到终端,适合查看内容较少的文件
more 从头分页显示文件的内容,空格下一页,回车下一行,Q退出
head 只显示开头前十行
tail 只显示末尾后十行
cp src dest 复制src到dest
mv src dest 把src移动到dest 同时具备重命名的功能
目录相关:
mkdir dirname 创建空目录
-p 创建多级空目录
rmdir dirname 只能删除空目录
rm -rf dirname 删除整个非空目录
cp -rf src dest 复制目录
mv src dest 移动目录
网络相关:
ifconfig 查看当前网络的配置信息
ipconfig windows下查看网络信息的命令
ping ip地址/网址 测试网络的连通性
Ctrl+C 停止测试
127.0.0.1 本机地址,ping该地址可以测试网卡是否正常工作
远程登录:
ftp ip地址 用户名 密码
远程登录一台具有FTP服务的服务器
telnet ip地址
远程登录一台具有Telnet服务的服务器
ftp、telnet都是采用明码传输,安全系数不高,一般公司内部使用
ssh 用户名@ip地址
ssh采用加密传输,更安全
其他命令:
tar 压缩文件/解压文件
-zcvf 压缩包名 要压缩的目录
-zxvf 压缩包名 解压到当前目录下
chmod 修改文件的权限
chmod mmm filename
m = r(4) + w(2) + x(1) m的范围(0,7)
644 rw- r-- r--
mmm = 自己、同组、其他
chmod +/-r/w/x filename
所有用户一起改
注意:目录必须拥有执行权限才能cd访问(进入)
find 位置 条件 查询内容
find / -name stdio.h
grep "关键词" 文件名
过滤内容
更新软件源:
sudo apt-get update
更新系统:
sudo apt-get upgrade
关闭系统:
sudo init 0
重启系统:
sudo reboot
安装软件:
sudo apt-get install 软件名
man key 帮助手册
分章节管理
1、系统命令
2、系统函数
3、标准库函数
重定向、管道、通配符:
重定向:把命令的结果写入文件中
cmd > filename 如果文件存在则清空后写入,否则新建文件后写入
cmd >> filename 如果文件存在则追加写入,否则新建文件后写入
管道:让一个命令的结果作为另一个命令的数据源
cmd1 | cmd2
find / | grep "stdio"
在所有文件中过滤出文件名中含有stdio关键字的文件
通配符:可以执行模糊命令
? 可以代表任意的一个字符
* 可以代表任意多个字符 慎重慎重再慎重(不要乱加空格)
下图为思维导图: