1 计算机介绍
- 硬件系统 -> 看得见,摸得着
- 鼠标键盘,cpu,内存,显卡,硬盘...
- 软件系统 -> 看得见,摸不着
- 系统软件
- 操作系统 -> 管理和控制硬件和软件的计算机程序 承上启下(硬件和软件要交互,通过操作系统)
- windows系统 -> 开源免费,个人使用最多
- mac/unix系统-> 闭源收费
- linux系统 -> 开源免费安全稳定,公司服务器使用最多
- 安卓系统
- 鸿蒙系统
- 编程程序(py程序,java程序,...)
- 驱动程序
- 应用软件
- qq, 微信, typora...
2 linux系统介绍
- 林纳斯·托瓦兹 在1991年 开发了 linux内核(开源免费)
- linux系统组成
- linux内核
- 系统库
- 系统程序
- linux内核和linux发行版
- linux内核 -> 开源免费,林纳斯开发
- linux发行版 -> linux系统
- redhat系统
- Ubuntu系统 -> 桌面版
- centos -> 免费
- deepin -> 国内做的最好的
3 linux目录
- linux目录是一个树型结构(都是从根目录开始的)
- linux没有盘符一说,不像windows有c盘,d盘,它只有一个根目录 `/`
- `etc目录`: 存放系统配置文件
- `home目录`: 普通用户的家目录, 存放在home下的对应用户名的目录中
- `root目录`: 超级管理员的家目录
- `bin/sbin目录`:存放用户命令的目录
4 linux常用命令
命令格式:
command -options parameter
命令名 选项(可有可无) 参数(可有可无)
# 例如:
ls --help # 查看命令帮助文档
4.1 ls命令
- `ls(list)`:查看指定目录下的文件和子目录信息
- `-a`: ls -a 查看全部的文件和子目录,隐藏文件和子目录
- `-l`: ls -l / ll 以列表形式查看文件和子目录具体信息
- `-h`: ls -lh 和-l一起使用, 人性化方式展示文件大小,单位换算
4.2 路径
- 绝对路径
- windows系统: 从盘符开始的路径 `D:\aa\bb\cc`
- linux/mac系统: 从根目录开始的路径 `/root/bin/ls`
- 相对路径(以当前所在的目录作为参考目录,搞清楚现在在哪个目录下)
- `./aa/bb` 或 `aa/bb` : 在当前目录下查找aa目录
- `../aa/bb`: 当前目录的上一级目录中查找aa目录
- `../../`: 上一级目录的上一级目录
4.3 cd命令
- `cd`: change directory 切换工作目录
- `pwd`: 查看当前所在的目录,返回当前目录的绝对路径
- `cd -`: 返回上一次所在的目录
- `cd ~` : 切换到当前用户的家目录
- `cd 相对路径/绝对路径`
4.4 mkdir命令
- `mkdir`: make directory 创建目录/文件夹
mkdir aaa # 在当前目录下创建一个aaa目录
mkdir /root/bbb # 在root目录下创建一个bbb目录,root目录已经存在
mkdir -p aaa/bbb/ccc # 在当前目录下创建一个层级目录 aaa下创建bbb,bbb下创建ccc
4.5 touch命令
- `touch`: 创建文件
touch a.txt # 在当前目录下创建a.txt文件
touch /root/aaa/a.txt # 在root下的aaa目录下创建a.txt
touch a.txt b.txt # 在当前目录下创建a.txt和b.txt文件
4.6 rm命令
- `rm`: remove删除文件或目录
- `-f`: 强制删除文件或目录,不进行提示
- `-r`: 递归删除目录
rm a.txt # 删除当前目录下的a.txt文件,提示是否删除,y删除,n不删除
rm -f a.txt # 不提示是否删除
rm -r aaa # 删除当前目录下的aaa子目录,提示信息
rm -rf aaa # 不提示,直接删除
4.7 mv命令
- `mv`: move 对文件或目录进行移动或者重名操作
- `mv 原路径 目标路径`
- 移动: 目标路径存在,并且是一个目录
- 重命名: 目标路径不存在
mv a.txt b.txt # 重命名
mv a.txt aaa # 将a.txt移动到aaa目录下
mv aaa bbb # bbb存在,将aaa移动到bbb下
mv aaa bbb # bbb不存在,对aaa重命名为bbb
4.8 cat和more命令
- 显示文件的内容
- `cat/more 文件名`
- cat:一次性显示全部内容
- more:人性化显示文件内容
- 一行一行查看, enter 回车键
- 下一页, space 空格键
- 上一页, b
- 退出, q(quit)
cat a.txt
more a.txt
cat /root/aaa/a.txt
4.9 cp命令
- `cp`: copy 复制文件或目录
- `cp 源路径 目标路径`
- `-r`: 复制目录
cp a.txt b.txt # 将a.txt复制为b.txt
cp a.txt aaa/b.txt # 将a.txt复制为b.txt并移动到aaa目录下
cp aaa bbb -r # 将aaa目录复制为bbb目录
cp aaa bbb/ccc -r # 将aaa目录复制为ccc目录并移动到bbb目录下
4.10 ps命令
- 查看系统中当前运行的进程
ps # 查看当前窗口运行的进程
ps -ef # 查看后台所有的进程
4.11 kill命令
- 结束某个正在运行的程序(进程)
kill -9 进程编号(pid)
4.12 ifconfig
- 查看linux系统计算机的ip地址
- 查看windos系统计算机的ip地址 -> ipconfig
- ipv4:点分十进制(0-9 192.168.88.100)
- ipv6:冒分十六进制(0-9a-f fe80::5a2f:24bf:8718:828a)
- 本机之间的软件交换可以使用 `127.0.0.1` 或 `localhost`
4.13 其他命令
- clear: 清屏
- reboot: 重启
- which ls: 查看ls命令所在的绝对位置
- hostname: 查看本机的主机名
4.14 grep和|管道命令
- `grep 查找内容 文件`: 在文件中查找想要的内容
- `左边命令|右边命令`: 管道, 上一个命令的输出结果是下一个命令的输入信息
grep hello a.txt # 在a.txt文件中查找hello内容
ps -ef | grep mysql # 在所有运行的进程中查找mysql内容
4.15 用户命令
useradd 用户名 # 添加用户
passwd 用户名 # 给用户设置密码
su 用户名 # 切换用户
userdel -r 用户名 # 删除用户名以及对应的/home下的用户名目录
userdel 用户名 # 只是删除用户名,保留/home下的用户名目录
4.16 tar命令
- `tar`: 对文件或目录进行打包或解包操作
- `-c`: 打包
- `-x`: 解包
- `-v`: 显示运行过程中的信息
- `-f`: 指定文件名
- `-z`: gzip压缩包(压缩或解压)
- **注意点**: c 和 x是不能同时使用
# 打包
tar -cvf test.bar aaa # 将aaa目录打包成test.bar
tar -cvf test.bar a.txt b.txt # 将a.txt和b.txt打包成test.bar
# 打包并压缩
tar -czvf test.bar.gz aaa # 将aaa目录打包并压缩成test.bar.gz
# 解包
tar -xvf test.bar # 将test.bar解压到当前目录下
tar -xvf test.bar -C /root/test # 将test.bar解压到root下的test目录下
# 解包gz格式的压缩包
tar -xzvf test.bar.gz # 将test.bar.gz解压到当前目录下
tar -xzvf test.bar.gz -C # 将test.bar.gz解压到root下的test目录下
4.17 chmod命令
- `chmod`: 修改文件或目录的权限
- `r(4)`: 读权限
- `w(2)`:写权限
- `x(1)`:可执行权限(.py,.sql,.sh)
- 用户分类
- 属主用户: u (当前的用户)
- 属组用户: g (和当前用户为同一组的其他用户)
- 其他用户: o (不是当前用户,也不是当前用户同一组的用户)
chmod 777 a.txt
chmod u+x,g+r a.txt # 给文件的不同用户追加其他权限
chmod u=wr,o=rx a.txt # 给文件的不同用户添加权限,覆盖原有的权限
chmod 777 aaa # 给aaa目录添加权限
chmod 777 aaa -R # 给aaa目录以及子目录和子文件添加权限
5 vim编辑器
- 在linux系统中,编辑文件的程序
- 只能使用键盘进行编辑操作,不能使用鼠标
- 三种通用模式
- 命令模式
- 插入模式
- 底行模式
vi 文件名 # 文件存在就是打开,不存在就是创建
vim 文件名
vim 文件名 +n # 打开文件,并定位到第n行