1.操作系统概述
1.1 操作系统的作用
一个完整的计算机=硬件+软件
- 操作系统是计算机软件的一种,作为用户和计算机硬件之间的桥梁,负责调度计算机硬件进行工作;
操作系统的调度工作包括
- 调度键盘进行文字输入;
- 调度显示器显示内容
- 调度cpu内存供其他软件运行;
- 调度网卡发送/接受信息;
1.2 常见的操作系统
pc端
- windows;
- linux;
- macOS;
移动端
- ios
- HarmonyOS
- android
2.Linux介绍
2.1 诞生
林纳斯-托瓦丝、1991;
2.2 Linux内核
Linux系统=Linux系统内核+系统级应用程序;
- 内核: 提供系统最核心的功能,如:调度CPU、内存、文件系统、网络通讯、IO等;
- 系统级应用程序: 可以理解为系统自带的出厂程序,帮助用户快速上手操作系统,如:文件管理器、任务管理器、图片查看、音乐播放;
软件分为两大类:系统软件和应用软件。系统软件是指管理、控制和维护计算机及外设,以及提供计算机与用户界面等的软件,如操作系统、各种语言的编译系统、数据库管理系统及网络软件等。应用软件是指能解决某一应用领域问题的软件,如财会软件、通信软件、计算机辅助教学(CAI)软件等。
Linux发行版类别
发行版定义: Linux 发行版是由:Linux内核、GNU 工具、附加软件和软件包管理器组成的一整套完整操作系统,其也可能包括了显示服务器和 Linux桌面环境,通常被运作于服务器或桌面操作系统来使用。
。
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包(任何人都可以封装linux)
目前市面上Linux发行版本分为:
- Linux Mint
- ubuntu
- debian GUN
- mageia
- fedora
- openSUSE
- Arch Linux
- CentOS
- PCLinuxOS
- Slackware Linux
3. Linux基础操作
3.1 虚拟机快照
通过快照可以将当前虚拟机的状态保存下来,在以后可以通过快照恢复到虚拟机保存的状态;
步骤:关机->拍摄快照(快照管理器)
3.2 Linux 目录结构
特点:
- 树形结构;
- linux没有盘符,只有一个根目录/,所有文件都在它下边;
linux描述文件路径方式:
/user/local/hello.txt
开头/表示:根目录;
后头/表示:层次关系;
3.3 命令、命令行
概念
- 命令行 :就是Linux的终端(Terminal),是我们输入命令的界面,以纯字符的形式操作系统,使用字符命令对系统发出操作指令;
- 命令 :就是Linux程序,一条命令就是一个程序。没有图形化界面,在命令行(终端提供字符反馈)。
命令的格式
command [-options] [parameter]
本体[-选项][参数]
- command:命令本身;
- options:命令的选项,控制命令的行为细节;
- parameter:命令的参数,多用于指向命令的目标;
ls -l/home/study
#以列表的形式,显示/home/study 目录下的内容
3.4 ls命令(列表命令)
ls命令的作用是列出目录下的内容,语法细节如下:
ls [-a -l -h] [linux 路径]
- -a、-h、-l都是选项,可以组合展示
- 路径是命令的可选参数
- 直接使用ls命令本体,表示以平铺形式列出当前目录的内容;
//默认是home目录下的文件
选项 | 说明 |
---|---|
-a | all的意思,表示列出全部文件 |
-l | 以列表形式展示(平铺–>竖向)展示更多内容 |
-h | 以易于阅读的形式展示列表(单位表示等) |
3.5 cd/pwd命令(目录命令)
概念:
- cd: (Change Directory)更改当前所在的工作目录;
cd [linux 路径]
- cd无需选项,只需要参数,表示要切换到哪个目录;
- cd直接执行表示回到用户的home目录;
- pwd:(Print Work Directory)查看当前的工作目录
没有参数没有选项
3.6 相对路径、绝对路径、特殊路径表示符
概念
-
相对路径 :以当前目录为起点,描述一段路径,无需从根目录开始;
-
绝对路径 :以根目录为起点,描述一段路径,路径以/为开头;
-
特殊路径符
直接cd可以回到home目录;
特殊路径符 | 说明 |
---|---|
. | 当前目录 |
… | 表示上一级 |
~ | 表示home目录 |
3.7 mkdir命令(创建目录命令)
概念:
- mkdir:(Make Directory)创建目录
mkdir [-p][parameter]
- 参数必填,表示路径,即要创建的文件的路径;
- 选项-p:表示自动创建不存在的父目录,用于连续创建多层级的目录
3.8 touch/cat/more命令(文件操作命令)
概念
- touch: 创建文件
touch [parameter]
- 没有选项,只有参数也就是路径,任何路径都可以使用
- cat: 文件内容查看,显示所有内容;
cat [parameter]
- 只有参数,没有选项,直接使用
- more: 产看文件,区别于cat,more支持翻页,可以一页一页展示(空格翻页,q退出);
more [parameter]
3.9 cp/mv/rm命令(文件操作命令)
概念:
- cp: copy 复制文件
- mv: move 移动文件
- rm: remove 删除文件
cp: copy 复制文件
cp [-r][parameter1][parameter2]
- -r选项:可选,用于复制文件夹,表示递归(repeat)
参数1:linux路径,被复制文件地址
参数2:linux路径,复制去的文件地址
mv: move 移动文件
mv [parameter1][parameter2]
- 没有选项;
参数分别:被移到地址,移动新地址;
rm: remove 删除文件
rm [-r -f] [parameter1、parameter2…]
- -r:用于删除文件夹
- -f :force强制删除不会弹出确认信息(root用户特权)
- 参数:支持同时删除n个问价
通配符:
rm命令支持通配符*,表示模糊匹配;
- *:表示通配符,匹配任意内容
- test*:匹配test开头的内容
- *test:匹配test结尾的内容
- *test * :匹配任意包含test的内容
root超级管理员用户
- 通过su -root,并输入密码,可以临时切换到root用户体验
- 通过exit命令,退出
3.10 grep、wc命令符、管道符(过滤统计命令)
- grep:过滤文件内容
- wc:统计内容数量
grep:从文件中通过关键字过滤文件;
grep [-n]关键字 文件路径
- -n:表示在结果中显示匹配行的行号;
关键字:参数,表示被过滤的关键字,建议使用“”
文件路径:过滤内容的文件路径;
wc统计内容数量
wc [-c -m -l -w] 文件路径
- -c:统计bytes数量;
- -m:统计字符数量;
- -l:统计行数量;
- -w:统计单词数量;
- 直接wc:行 单词 字符
管道符: 竖线符号|,将管道符左边命令的结果作为右边命令的输入;
3.11 which/find命令(查找命令)
概念:
- which:查找命令的程序文件;
- find:查找指定文件;
which:查找所使用的命令的程序文件;
which 要查找的命令
find:查找指定文件;
find 起始路径 -name “被查找的文件名”
find按文件大小查找文件
find 起始路径 -size +|-n[KMG]
- +、-1表示大于或小于
- n:表示大小数字
- KMG:表示大小单位
查找小于10KM文件:find / -size -10k
查找大于100MB的问价:find / -size +100M
3.12 echo/tail、重定向符
概念
- echo:输出指定内容
- tail:跟踪文件更改
- 反引号`:被``包围的内容会当作命令执行(配合echo);
- 重定向符:>,>>
echo:输出指定内容
echo 输出的内容
无需选项,只有一个参数,表示要输出的内容(相当于py中的print)
tail:跟踪文件更改,可以查看文件尾部的内容,跟踪文件的最新更改
tail [-f -num] linux路径
- -f:表示持续跟踪
- -num:查看尾部多少行,不填默认10行
- 路径:表示被跟踪的文件路径
反引号`:被‘包围的内容会当作命令执行;
重定向符:>,>>
-
:将左侧的命令结果,覆盖写到符号右侧指定文件夹中;
-
:将左侧的命令结果,追加写到符号右侧指定文件夹中;
day2
3.13 vi/vim编辑器(文本编辑)
概念
vi/vim(visual interface),是linux经典的文本编辑器,类似于文本编辑器;
vim是vi的加强版本,可以兼容vi的所有内容,并且不仅可以编辑文本.还具有shell程序编辑功能,可以用不同颜色字体来辨别语法的正确性;
三种工作模式:
- 命令模式: 在此模式下,输入命令执行不同的功能;
- 输入模式: 也称编辑模式、插入模式,对文件自由编辑;
- 底线命令模式: 以”:“开始,通常用于文件的保存和退出;
一般步骤:
1.vi/vim|vi/vim [文件路径],进入当前文档,如果文件不存在就创建一个新文件;
2.目前处于命令模式,按下键盘i(insert),进入输入模式可以对文件进行修改;
3.修改完毕 ,按下键盘”esc“,又进入命令模式,按”:“进入底线命令模式,”wq“表示保存并退出;
命令模式的命令
命令 | 描述 |
---|---|
i | 在当前光标位置进入输入模式 |
esc | 在任何情况输入esc都能回到命令模式 |
dd | 删除当前行 |
ndd | 删除当前行及以下n行 |
yy | 复制当前行 |
nyy | 复制当前行及以下n行 |
p | 粘贴 |
u | 撤销 |
ctrl+r | 反向撤销 |
gg | 光标到开始处 |
G | 光标到结尾处 |
dG | 删除光标行及以下全部行 |
dgg | 删除光标行及以上全部行 |
d$ | 从光标处开始删除到本行结束 |
d0 | 从光标处删除到本行开始 |
底线命令模式
命令 | 描述 |
---|---|
:wq | 保存并退出 |
:q | 仅退出 |
:q! | 强制退出 |
:w | 仅保存 |
:set nu | 显示行号 |
:set paste | 设置粘贴模式 |
4.Linux的用户
4.1 Linux的root用户
概念
root在linux中是超级管理员,是拥有最大的权限;
su(Switch User):切换用户 su - root
exit:回退到上一个用户
sudo:为普通用户临时授权(需要提前配置sudo认证),以root身份执行;
区别普通用户
- 可以在根目录下创建文件;
- 普通用户一旦出了home目录,在大多数地方只有只读和执行操作,无修改权限;
sudo认证的配置
1.切换到root用户,执行vi sudo命令(自动打开文件 /etc/sudoers)
2.在文件的最后添加 用户名 ALL=(ALL) NOPASSWD:ALL
3.通过wq保存
4.2用户和用户组
概念
Linux系统可以:
- 配置多个用户(针对用户权限管控);
- 配置多个用户组(针对某个用户组的权限);
- 用户可以加入多个用户组;
用户组管理(root用户执行)
用户组的创建
- groupadd
用户组的删除
- groupdel
用户的创建
- useradd[-g -d] 用户名
- -g:指定用户所在的组,不指定创建同名组;
- -d:指定所在路径,不指定默认在home目录;
用户的删除
- userdel [-r] 用户名
- -r:不使用-r,仅删除用户,home目录保留;
查看用户所在的组
- id[用户名]
修改用户所属组
usermod -aG 用户组 用户名
查看系统中的用户和用户组
查看用户
getent passwd
查看用户组
getent group
4.3 查看权限控制
通过 ls -l可以以列表形式查看内容,展示权限细节
- 表示文件和文件夹的控制信息
- 表示文件或文件夹所属用户
- 表示文件或文件夹所属用户组
4.4 chmod命令(修改权限命令)
概念
chmod [-R] 权限 文件或文件夹
通过chmod命令,修改文件、文件夹的权限信息(只有文件、文件夹的所属用户或root用户可以修改)
chmod u=rwk,g=rx,o=x hello.txt
#将文件权限修改成:rwxr-x--x
#u:user所属用户权限;
#g:group组权限;
#o:other其他用户权限;
用数字表示权限
- r:4
- w:2
- x:1
751—>rwx(7) r-x(5) --x(1)
4.5 chown命令(修改文件或文件夹的用户和用户组权限)
chown [-R] [用户][:][用户组] 文件或文件夹
- -R:对文件夹中内容全部应用;
chown root hello.txt #将文件所属用户改为root
chown :root hello.txt#将文件所属用户组改为root
5.Linux的其他操作
5.1 快捷键
操作 | 说明 |
---|---|
ctrl+c | 强制停止程序运行 |
ctrl+d | 退出当前账户(同exit) |
history | 查看历史命令 +grep 过滤查找某个历史命令 |
ctrl+r | 输入内容去匹配历史命令 |
ctrl+l | 清屏(clear) |
光标移动快捷键
操作 | 说明 |
---|---|
ctrl+a | 跳到开头 |
ctrl+e | 跳到结尾 |
ctrl+ -> | 向右跳一个单词 |
ctrl+ <- | 向左跳一个单词 |
5.2 安装软件(yum->CentOS、apt->Ubuntu)
下载软件的方法
- 下载安装包
- 系统应用商店安装
yum:RPM包软件管理器,用于自动化安装配置Linux软件;
yum [-y] [install |remove|search] 软件名称
- -y:自动确认,无需手动安装或卸载;
- install:安装;
- remove:卸载;
- search:搜索;
下载文件之前需要先下载编译器
sudo yum install gcc
如果是下载外部的压缩包
要下载lrzsz
lrzsz是一个在Linux和UNIX系统中可用的程序,用于代替ftp上传和下载。它提供了在本地文件系统和远程系统之间复制文件的功能
yum install lrzsz
解压缩文件
tar -zxvf redis-X.X.X.tar.gz
5.3 systemctl命令(控制软件命令)
概念
通过systemctl命令可以控制软件(包括内置的或第三方软件),能够被systemctl控制的软件一般称为:服务
内置服务 | 说明 |
---|---|
NetworkManager | 主网络服务 |
network | 副网络服务 |
firewalld | 防火墙服务 |
sshd | ssh服务 |
systemctl [start |stop |status |enable |disable] 服务名
- start :起动
- stop:关闭
- status:查看状态
- enable:开启开机自启
- disable:关闭开机自启
5.4 软连接(ln命令创建)
概念
软链接类似于windows中的创建(桌面)快捷方式,可以将文件或文件夹链接到其他地方;
ln -s 参数1 参数2
- -s:创建软件姐
- 参数1:被链接的文件或文件夹
- 参数2:链接去的目的地
5.5 data命令(时间命令)
概念
查看系统的时间;
data [- d] [+格式化字符串]
- -d:按照给定的字符串显示日期,用于日期计算
- 格式化字符串:通过特定的格式化字符串标记,来控制显示的日期格式;
字符串 | 日期格式 |
---|---|
%Y | 年 |
%y | 年分后两个数字 |
%m | 月 |
%d | 日 |
%H | 时 |
%M | 分 |
%S | 秒 |
%s | 自1970-01-01到现在的秒数 |
日期显示格式
日期修改
显示时区
校准时间
ntp程序校准时间
5.6 Ip地址、主机名、域名解析
Ip地址:
通过ifconfig命令查看本机ip地址;
- 127.0.0.1 代指本机
主机名
除了ip地址,可以有一个主机名
通过hostname查看当前主机名
修改主机名
域名解析
通过主机名或代替的字符去代替ip地址寻找主机
eg:baidu.com
通过映射打开网页
- 先看本机的记录(私人地址本)
window看:C:\Windows\System32\drivers\etc\hosts
Linux看:/etc/hosts - 再联网去DNS服务器(如:114.114.114.114,8.8.8.8)
自行配置
通过管理员打开记事本找到hosts
配置linux ip地址和主机名
5.7 固定IP地址
原因
当我们使用虚拟机操作系统时,其ip地址是通过DHCP动态获取的,可能会导致ip地址频繁变更
5.8 网络传输(ping wget curl)
ping命令检查网络是否连通
ping [- c num] [ip地址或主机名]
- -c:设置检查的次数
- 参数:被检查的对象
使用wget命令下载文件
wget [- b] url
- -b:设置后台下载
- url:下载链接
tail -f wget-log 可以监督后台进度
使用curl命令发起网络请求
curl [- O] url
- -O:用于下载文件,当url是下载链接时,通过此选项保存文件
- url:下载链接
5.9 端口(nmap,netstat)
端口
端口是设备与外界通讯交流的出入口,可以分为物理端口和虚拟端口两类;
- 物理端口也称接口
- 虚拟端口:是计算机内部的端口,不可见,用于操作系统和外部进行交互使用(锁定具体的程序)
nmap命令查看端口
netstat命令查看端口的占用情况
netstat -anp | grep 端口号
- -anp|grep:过滤一个指定的端口号
5.10 进程管理
概念
简单来说程序运行起来了,在系统中用一个独立的id标签去标识这个程序;
ps -ef:查看当前系统进程
- uid:进程所属用户
- pid:进程id
- ppid:进程父id
- c:进程占cpu的占用率
- stime:进程启动时间
- time:进程占用cpu的时间
- cmd:启动路径
查看指定进程信息
关闭进程
kill [-9] 进程id
- -9:强制关闭
5.11 主机状态监控(top、df、iostat、sar)
top查看cpu、内存的使用情况,每隔5秒刷新
df磁盘信息监控
df [-h]
- -h:以更人性化的单位显示
iostat查看cpu、磁盘相关信息
iostat [-x][nums][nums]
- -x:显示更多信息
- nums1:刷新间隔
- nums2:刷新几次
sar命令查看网络的相关统计
sar -n DEV num1 num2
- -n:查看网络 ,DEV标识网络接口
- num:刷新间隔 查看次数
5.12 环境变量(env、$符号、export)
概念
命令的本质就是一个个的可执行程序
eg:cd命令的本体就是:/usr/bin/cd这个文件
但是无论当前工作目录在哪,都可以执行/usr/bin/cd这个程序
env查看系统中的环境
env | grep PATH
PATH中记录系统中的默认路径,使用冒号隔开
$符号
$在Linux中取到环境变量
自行设置环境变量
- 临时设置 ,语法:export 变量名=变量值;
- 永久生效
- 针对当前用户生效,配置在当前用户的 :~/bashrc文件中;
- 针对所有用户,/etc/profile;
- 通过语法:source配置文件,进行立刻生效,或重新登陆FinalShell生效;
编写简单的脚本小程序
5.13 Linux文件上传和下载(rz、sz)
rz上传
直接rz选择文件
sz下载
5.14 缩和解压(tar、gzip;zip、unzip )
概念
Linux和MAC系统常用的两种压缩格式,后缀名分别是:
- .tar:归档文件,简单的将文件租封装到.tar文件中,并没有太多的体积减少;
- .gz:使用gzip压缩算法将文件压缩到一个文件中,可以极大的减少压缩后的体积;
tar [-c -v -x -f -z -C] 参数1 参数1 参数n
- -c:创建压缩模式
- -v:显示压缩进程
- -x:解压模式
- -f:要创建或解压的文件
- -z:gzip模式
- -C:选择解压目的地
#tar的常用组合为:
tar -cvf test.tar 1.txt 2.txt 3.txt
#将1.txt2txt 3txt压缩到test.tar文件内
tar -zcvf test.tar.gz 1.txt 2txt 3txt
#将1txt2txt3txt压缩到testtar.gz文件内使用gzip模式
#常用的tar解压组合有
tar -xvf testtar
#解压test.tar,将文件解压至当前目录
tar -xvf test.tar -C/home/itheima
#解压testtar将文件解压至指定目录(/home/itheima)
tar -zxvf test.tar.gz -C/home/itheima
#以Gzip模式解压testtar.gz,将文件解压至指定目录(/home/itheima)
可以使用zip命令压缩文件为zip压缩包
zip[-r]参数1参数2…参数N
- -r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致;
zip test.zip a.txt btxt c.txt.
#将a.txtbtxtctxt压缩到test.zip文件内
zip -r test.zip test itheima a.txt
#将testitheima两个文件夹和atxt文件压缩到test.zip文件内
使用unzip命令,可以方便的解压zip压缩包
unzip[-d]参数
- -d指定要解压去的位置同tar的-C选项 参数,被解压的zip压缩包文件
示例:
· unziptest.zip
#将test.zip解压到当前目录
· unzip test.zip-d /home/itheima
#将test.zip解压到指定文件夹内(/home/itheima)