1.计算机基础
美团单车
内存 - ram
读写速度快 - 运行程序 - 程序从闪存加载到[内存]中运行
掉电数据丢失
临时存储数据
闪存 - rom
读写速度慢
掉电数据不丢失 - 存储数据 - 存储信息
永久存储数据
程序运行
下载微信 - 闪存
手机 : 12 + 256
12 - 内存
256 - 闪存
操作系统中的驱动 -> 控制硬件
win + R -> cmd - command
Linux - shell终端 - 介绍 - Linux命令
Linux源码 - Linux开源 - Linux源码 - 最顶级的C语言
Linux - 模块化程度高 - 高移植性
内存管理
deepin - 深度
2.Linux基础
Linux基本概念
目录 - 文件夹
目录创建子目录和其他文件
几乎所有的计算机操作系统都是使用目录结构来组织文件
|->bin
|->boot
|->cdrom
/ -> |->sbin
...
|->etc
|->opt
|->home->tarena->workdir->fcitx->README.txt
父目录 - ..
父亲 - 儿子
主目录 - 家目录 - 创建文件/修改文件/...
/home/用户名
~ - 表示主目录
绝对路径 :
/home/tarena/workdir/fcitx/README.txt
中国/河北省/石家庄市/赵县/王庄/王二狗
第一个 / -> 根目录
后续的 / -> 目录之间的间隔
相对路径:
当前位于 /home/tarena目录下
./workdir/fcitx/README.txt
workdir/fcitx/README.txt
身处王庄
咱们村的/王二狗
3.Linux命令
clear:清屏
history:获取之前输入的命令历史记录
pwd:获取当前目录的路径
cd:目录切换命令,cd 切换到的目录路径
change directory 改变目录
例如:
cd /home/tarena 切换到/home/tarena目录下
pwd
cd .. 进入上一级目录
pwd
cd ./tarena 进入当前目录下的tarena目录里面去
pwd
cd ..
cd tarena 进入当前目录下的tarena目录里面去
pwd
cd ..
cd ~ 进入主目录 等价于 cd /home/tarena
pwd
cd / 进入根目录
pwd
cd cd后面什么也不加, 默认进入到主目录
clear 清屏
ls命令:
例如:
ls /home/tarena 查看/home/tarena目录下的内容
ls -l /home/tarena 查看/home/tarena目录里面内容的详细信息
ls /usr/include/stdio.h //查看此文件是否存在
ls -l /usr/include/stdio.h 查看此文件的详细信息
cd /home/tarena
ls //查看当前目录下的内容
ls -l //查看当前目录下内容的详细信息
ls .. //查看上一级目录的内容
ls -l .. 查看上一级目录里面内容的详细信息
cd /usr/include
ls stdio.h 查看当前目录下是否存在stdio.h文件
ls -l stdio.h 查看当前目录下stdio.h文件的详细信息
ls ~ //查看主目录里面的内容
ls -l ~ 查看主目录里面内容的详细信息
ls / 查看根目录里面的内容
ls -l / 查看根目录里面内容的详细信息
touch:
touch /home/tarena/hello.txt 在/home/tarena目录下创建空文件hello.txt
ls -l /home/tarena/hello.txt
cd /home/tarena
touch hello1.txt 在当前目录下创建空文件hello1.txt
ls -l hello1.txt
touch ~/hello2.txt 在主目录下创建空文件hello2.txt
ls -l ~/hello2.txt
注意:tarena普通用户只能访问自己的主目录/home/tarena,
可以在这个主目录下创建或者删除任何东西,其他目录不行
touch (相对/绝对/./..)路径/文件名
mkdir:make directory
mkdir /home/tarena/hello 在/home/tarena目录下创建空目录hello
ls /home/tarena/hello 查看里面的内容
cd /home/tarena/
mkdir hello1 在当前目录下创建空目录hello1
ls hello1
mkdir ~/hello2 在主目录下创建空目录hello2
ls ~/hello2
mkdir hello3/hello4/hello5 //失败了
mkdir -p hello3/hello4/hello5
ls hello3
ls hello3/hello4
ls hello3/hello4/hello5
cp:
例如:
mkdir /home/tarena/cptest/
cd /home/tarena/cptest/
touch hello.txt
mkdir hello
ls
cp hello.txt hello1.txt 拷贝hello.txt生成一个新文件hello1.txt
ls
cp -fr hello hello1 拷贝hello目录生成一个新目录hello1
ls
cp hello.txt hello 拷贝hello.txt文件到hello目录里面去
ls hello
cp -fr hello hello1 拷贝hello目录到hello1目录里面去
ls hello1
cp -fr hello1 ~/hello2 拷贝hello1目录到主目录/home/tarena目录里面去并且命名为hello2目录
ls ~
mv:
例如:
mkdir /home/tarena/mvtest
cd /home/tarena/mvtest
touch hello.txt
mkdir hello
ls
mv hello.txt hello1.txt
ls
mv hello hello1
ls
mv hello.txt hello1
ls
ls hello1
mkdir hello2
mv hello2 hello1
ls
ls hello1
mv hello1 ~/hello3
rm: 例如:把刚才创建的文件和目录统统删除
rm /home/tarena/hello.txt
cd /home/tarena/
rm -fr mvtest cptest
严重重度鄙视动不动就用sudo命令(采用管理员权限操作命令)的人!
显示文件内容命令:
例如:
cat /usr/include/stdio.h //全部无脑显示,太要命
more /usr/include/stdio.h //分屏显示,回车键往下走一行,空格键向下走一屏,q键退出
head -15 /usr/include/stdio.h 只看文件的前15行
tail -15 /usr/include/stdio.h 只看文件的后15行
touch /home/tarena/hello.txt
tail -f /home/tarena/hello.txt //此刻停止不动
然后再打开一个新的终端执行:
echo 12345 >> /home/tarena/hello.txt,然后再去之前的终端观察有何不同
echo 我要成为大神 >> /home/tarena/hello.txt,然后再去之前的终端观察有何不同
按ctrl+shift+t可以在一个终端中创建另一个子终端,切换按alt+数字(终端编号)
find:
例如:
cd /home/tarena
find . -name hello.txt 在当前目录下找一个hello.txt的文件
find /usr/include -name stdio.h 到/usr/include目录下找stdio.h文件
grep:
例如:
cd /home/tarena
touch hello.txt
echo 1234 >> hello.txt
echo abcd1234 >> hello.txt
echo printf >> hello.txt
echo printf1234 >> hello.txt
cat hello.txt
grep -Rn "1234" hello.txt 在当前目录的hello.txt文件中搜索1234
grep -Rn "printf" hello.txt
grep -Rnw "printf" hello.txt
grep -Rn "1234" * 在当前目录下的所有文件中搜索1234
grep -Rn "1234" *.txt 在当前目录下所有的以.txt结尾的文件中搜索1234
tar:制作压缩包和解压缩命令
mkdir -p /home/tarena/tartest/hello
cd /home/tarena/tartest/hello
touch hello.txt
echo 1234 >> hello.txt
cd ..
ls
hello目录
tar -jcvf hello.tar.bz2 hello 将hello目录打包制作成bz2格式的压缩包
tar -zcvf hello.tar.gz hello 将hello目录打包制作成gz格式的压缩包
ls
rm -fr hello
tar -xvf hello.tar.bz2 解压缩,会生成hello目录
cat hello/hello.txt
rm -fr hello
tar -xvf hello.tar.gz 解压缩,会生成hello新目录
cat hello/hello.txt
ls 2207.* 前面名字为2207.后面无所谓 通配符
2.vim编辑器
2.1.介绍几款常见的计算机软件编程的主流编辑器
vim(上古神器),vscode(微软,免费),eclipse(java开发)等
2.2.vim编辑器使用:通过vim命令启动
格式:vim 文件名
2.3.vim三种工作模式:可视模式,编辑模式,命令行模式
可视模式:只能看不能编辑文件
编辑模式:可以编辑文件
命令行模式:可以给vim编辑器发送控制命令
2.4.三种模式切换
可视模式---->按i键/o键/a键---->编辑模式
编辑模式---->按ESC键---------->可视模式
可视模式---->按shift加:组合键->命令行模式
命令模式---->按ESC键---------->可视模式
编辑模式---->先按ESC键进入可视模式---->在按shift加:组合键--->命令行模式
练习:执行以下命令
cd /home/tarena
mkdir stdc 后续课程所有的文件和目录都放在stdc目录下,不允许乱放
cd stdc
mkdir day03
cd day03
vim helloworld.txt 练习三种模式的切换
2.5.vim命令行模式下的命令:
w:保存文件内容
q:退出vim编辑器
wq:保存文件并且退出vim编辑器
q!:不保存文件并且强制退出vim编辑器
%s/old/new/g:将文件中所有的old单词用new单词进行替换,例如:%s/张三/李四/g 结果张三被李四替换
n1,n2s/old/new/g:将文件的第n1行到第n2中所有的old用new替换
直接输入行号:让光标直接跳转到对应的行上
2.6.vim强大的快捷键(必须在可视模式下完成)
光标移动:h(左移),j(下移),k(上移),l(右移),用这四个快捷键替换四个方向键
行选中:shift+v然后移动光标
复制:y
粘贴:p
剪切:x
删除:dd
取消:u
后悔取消:ctrl+r
跳转到文件的末尾:G
跳转到文件的开头:gg
保存并且退出vim编辑器:ZZ
自动补全:前提是先进入编辑模式,然后输入某个单词或者某句话的开头一个字母或者若干个字母
然后按ctrl+n自动补全整个单词或者整句话,提高编辑的速度!
必须要进入到Linux终端中
打开虚拟机
清屏 : clear
ctrl + L
cd - change directory - 改变目录 - 改变当前所处的目录
cd + 目录
cd /home/tarena
cd ..
cd ~
cd ../..
常用 - 回到主目录
cd /home/tarena
cd ~
cd - cd什么也不加 - 回到主目录
命令后必须有空格
ls - list - 列出来
ls + 回车 - 什么也不加 - 获取当前目录中的内容
ls + 路径 - 对应路径中文件内容
相对路径 / 绝对路径
ls /home/tarena
ls /home
ls /
ls .
ls ./workdir
ls /home/tarena/a.txt
文件不存在 - 告诉你 - 文件不存在
文件存在 - 显示出对应文件
ls选项 - 给ls赋予个不同的功能 - ls 选项
-a -> 查看all所有内容
-l -> list列出每个文件的详细信息
-h -> 以kb为单位显示文件大小
终端 -
↑ 和 ↓ 键 - 获取历史命令
history - 2000条命令
tab键 - 补全
如果可以补全, 补全
cd /h (tab键) 自动补全ome/
cd /home/(tab键) 自动补全tarena/
如果不能补全, 给提示, 自己选择
cd /home/tarena(tab键) (第一个tab: 无反应; 第二次tab: 将/home/tarena/可供选择的目录显示出来, 手动自己选择)
进入/home/tarena目录, 使用tab键进入
创建新文件 - touch
cd /home/tarena
touch a.txt //等价于 touch ./a.txt
touch /home/tarena/a.txt
mkdir - make directory - 搞一个目录 - 创建一个目录
cd /home/tarena
mkdir 2208 //等价于 mkdir ./2208
mkdir /home/tarena/2208
mkdir /home/tarena/workdir/2208
假设workdir存在
创建多级目录
希望在当前目录下创建一个a目录, 在a目录里面创建b目录, 在b目录里面创建c目录
mkdir a/b/c
mkdir a/b/c -p
-p逐级创建指定的目录