Linux
第一章 初始Linux
第01节 主流的操作系统
1.桌面操作系统
1.windows 系统
2.Macos
3.linux
嵌入式操作系统
linux
服务器操作系统
linux
windows Server
移动设备操作系统UNix
linux(Andorid ,华为鸿蒙)
ios
第02节Linux的特点
基础特点
1.基本思想(一切都是文件,每个软件都有确定的用途)
2.完全免费
3.完全兼容posix1.0 标准
4.良好的界面
5.支持多种平台
三大优点
1.源代码完全开源
2.具有非常强大的网络功能
3.工具链完整(简单操作,就可以配置出合适开发环境,简化开发过程,移值性强)
操作系统对比
1.Windows 更合适于 家庭和个人使用
2.linux 更适合于企业服务器使用(源代码开源,安全性高)
第03节LInux的发行版本
使用较多的linux
Ubuntu 乌邦图:图形界面的linux
CentOS :主流,免费,更新方便
第二章 虚拟机
第01节 常见的虚拟机
Vmware 的介绍
1. 一台电脑使用 两种以上的操作系统
2. 完全隔离并且保护不同操作系统环境和资料
3. 不同操作系统之间可以互动操作
4. 拥有复原功能
5. 能够设置并且随时修改操作系统的操作环境
场景的虚拟机
1. VMware workstation
2. VirtualBox
第02节 安装过程中问题
问题描述
虚拟机不支持,安装失败。不支持虚拟机化
解决方案
1. 进入到电脑的 BIOS 系统(根据电脑的不同,启动过程当中的可能是 按下 F2 或者是 . 或者是 F10 等)
2. 找到 Security 其中的倒数第三项 Virtualization 虚拟化。
3. 设置 虚拟化的选项 Virtualization Technology 当中的值设置为 Enabled
4. 设置完毕之后, 重启计算机。
第03节 CentOS的下载和安装
操作步骤
1. 打开 虚拟机
2. 创建新的虚拟机 --> "典型" --> "稍后安装操作系统" --> Linux 版本 CentOS 7 64位
3. 编辑虚拟机的名称 和 虚拟机的位置
4. 磁盘大小默认为 20GB, 选择 将磁盘的碎片拆分成为多个文件。
5. 自定义硬件。 --> 新CD/DVD(IDE) 使用ISO映像文件 --> 找到之前的镜像文件。
第三章 系统与设置命令
第01节Linux账号管理
创建用户
useradd (选项) 用户名
用户口令
passwd (选项) 用户名
修改用户
usermod (选项) 用户名
删除用户
userdel (选项) 用户名
第02节LInux用户组
创建用户组
groupadd (选项) 用户组名
修改用户组
groupmod (选项) 用户组名
查询用户所属组
groups 用户名
删除用户组
groupdel 用户组名
第03节linux管理用户组内成员
语法
gpasswd (可选项) 组名
说明:gpasswd是linux下的管理工具,用于将一个用户添加到组当中删除
选项
-a ;添加用户到组
-d :从组删除用户
_A:指定管理员
-M :指定组成员和-A的用途差不多
-r:删除密码
-R ;限制用户登入组,只有组中成员才可以newgrp加入该组
第04节系统管理相关的命令
日期管理
date [参数选项]
参数选项
-d<字符串> :显示字符串所指的日期与时间,字符串前后必须加上双引号
-s<字符串> :根据字符串来设置日期与时间,字符串前后必须加上双引号,备注:注意权限的问题
-u ;显示GMT
--help ;在线帮助
--version :显示版本信息
显示用户
logname [--help] [--version] 显示登录账号的信息
参数选项
--help ; 在线帮助
---version : 显示版本信息
切换用户
su [-fmp] [-c command] [-s shell] [--help][--version][-] [uesr][apg]
实例
su -c ls root 切换到root当中之后,执行ls命令,然后再切换回来
id命令
id [-g] [--help] [--version] [用户名称] 查看当前用户的详细信息(用户id,群组id,所属组)
参数选项
-g 或 --group 显示用户,所属群组的id
-G 或 --groups 显示用户,所属群组的id
-n 或 --name 显示用户,所属群组或者附加群组的名称
-r 或 --real 显示用户,显示实际id
-u 或 --user 显示用户,显示用户的id
-help 显示帮助
-version 显示版本信息
sudo命令
sudo [参数选项] 提高普通用户的操作权限
参数选项
-v 显示版本编号
-h 会显示版本编号和指令的使用方式说明
-l 显示出自己的权限
-v 超出N分钟没有使用,要求再次输入密码(默认5分钟)
-k 下一次执行sudo时间密码
-s 执行环境变量中的SHELL所指定的shell或者/etc/passwd里所指定的shell
-H 将变量变数中的HOME指定为要变身份的使用者HOME目录
sudo command 要以系统管理身份(或以-u更改为其他人)执行的指令
top命令
top 实时显示所有的进程信息
top -c 实现显示所有的进程信息(显示完整命令)
top -p pid 实时显示指定进程的信息
结束监控的快捷键: q
ps命令
ps 显示当前正在运行的进程信息
ps -A 显示系统当中所有的进程信息
ps -ef 显示系统当中所有的进程信息(完整信息)
ps -u 用户名 显示指定用户的进程信息
kill命令
kill 进程PID 杀死指定进程
kill -9 进程PID 彻底杀死指定进程
kill -9 $(ps -ef|grep 用户名) 杀死指定用户的所有进程
kill -u 用户名 杀死指定用户所有进程
关机命令
shutdown 不同的版本有所差异
shutdown - h now 立马关机
shutdown +1 "警告信息" 等待一分钟,之后关机,并且出现警告信息
shutdown -r +1 "警告信息" 等待一分钟,之后重启,并且出现警告信息
shutdown -c 取消当前的关机操作
重启命令
reboot 立马重启
who命令
who 显示当前登录系统的用户
who -H 显示明细(标题)信息
timedatectl命令
timedatectl status 显示系统的当前时间和日期
timedatectl list-timezones 查看所有可用的时区
timedatectl set-timezones "ASia/ShangHai" 设置本地时区
timedatectl set-ntp false 禁止时间同步
timedatectl set-time "2019-03-11 20:45:00" 设置时间
timedatectl set-ntp true 启用时间同步
clear命令
clear 清除当前的屏幕,实际上是之前的内容,顶出屏幕外
ping命令
ping 网址/IP地址
ping - c 次数 网址/IP地址
netstat命令
netstat -a 显示详细的连接状况
netstat -i 显示网卡列表
lsbik命令
lsbik 列出硬盘的使用情况
lsbik -f 显示系统信息
df命令
df 显示整个硬盘的使用情况
df 文件夹 显示文件夹的使用情况
df --total 显示所有的信息
df -h 将结果变成KB,MB,GB形式展示,利用阅读
mount命令
mkdir 文件夹 创建文件夹(也是创建一个挂载点)
mount -t auto /dev/cdrom 文件夹 开始挂载
umount 文件夹 卸载
yum命令
yum -y install tree 安装tree
tree 执行tree,展示当前的目录结构
yum remove tree 移除tree
yum list tom* 找出以tom开头的软件名称
yum源
yum install -y wget 安装下载工具wget
wget -0 Centos-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 下载阿里云的Centos-7.rppo文件
yum clean all 清除之前的缓存,并且重新加载yum
yum makecache 建立一个缓存文件
yum search tomcat 查找软件,验证阿里云的yum源是否可以正常使用
第四章 目录管理命令
第01节 根目录
Linux系统中没有盘符,只有/
第02节 查看目录的操作
ls
1. 语法:
ls
ls -l
ls -al
2. 说明:
ls 显示不隐藏的文件与文件夹
ls -l 显示不隐藏的文件与文件夹的详细信息
ls -al 显示所有文件与文件夹的详细信息
pwd
1. 语法:
pwd -P
2. 说明:
查看当前所在目录
cd
1. 语法:
cd [相对路径或绝对路径]
2. 说明:
切换目录,关于路径,可以是相对路径也可以是绝对路径。 绝对路径,根目录/
3. 退出操作:
cd .. 退出一级
cd / 退回到根目录
第03节 创建目录和删除目录
mkdir (make directory 创建 文件夹)
1. 语法:
mkdir 文件夹名称
mkdir -p 外层文件夹/里层文件夹
2. 说明:
mkdir 可以创建文件夹, 如果加上 -p 参数,则可以创建多级文件夹
rmdir (remove directory 删除 目录 文件夹)
1. 语法:
rmdir 文件夹名称
rmdir -p 外层文件夹/里层文件夹
2. 说明:
rmdir 可以删除文件夹, 如果加上 -p 参数,则可以删除多级文件夹
rm (remove 删除)
1. 语法:
rm 文件的名称
rm -r 文件夹的名称
2. 说明:
rm可以删除文件,也可以删除文件夹,删除文件夹的过程当中,需要加上参数 -r
第04节 复制和移动
cp (copy 复制)
1. 语法:
cp 原始文件 目标文件夹
cp -r 原始文件夹/* 目标文件夹
2. 说明:
cp aaa/a.txt ccc 将aaa文件夹当中的a.txt 文件拷贝到 ccc 文件夹当中
cp -r aaa/* ccc 将aaa文件夹中所有的内容拷贝到 ccc 文件夹当中
mv (move 移动)
1. 语法:
mv 原始文件名称 目标文件名称
mv 原始文件名称 目标目录名称
mv 原始目录名称 目标目录名称
2. 说明:
mv 原始文件名称 目标文件名称 含义: 修改文件的名称,同一个目录当中
mv 原始文件名称 目标目录名称 含义: 将原始文件,剪切移动到目标目录当中
mv 原始目录名称 目标目录名称 含义: 目标目录存在,就是移动。 目标目录不存在,就是改名
第五章 文件管理命令
第01节 权限的介
第02节 修改属组属主
chgrp 属组(ch : change 改变 grp: group 多个用户)
1. 语法:
chgrp 用户组名称 目录名称
chgrp -v 用户组名称 目录名称
2. 说明:
chgrp root aaa 将aaa的属组,修改成为 root
chgrp -v root aaa 将aaa的属组,修改成为 root 有提示信息
chown 属主(ch : change 改变 own: 自己的 单独的用户)
1. 语法:
chown 用户名称 目录名称
chown 用户名称:用户组名称 目录名称
chown -R 用户名称:用户组名称 目录名称
2. 说明:
chown root aaa 将aaa的属主,修改成为 root 用户
chown root:root bbb 将bbb的属主,修改成为 root 组当中的 root用户
chown -R root:root ccc 将ccc目录下面所有的文件或者目录, 统一修改成为 root组当中的 root用户
第03节 修改用户权限
chmod 修改权限(ch : change 改变 mod: modify 修饰符 )
用法1:数字权限
权限 | 英文翻译 | 缩写 | 数字序号 |
---|---|---|---|
读 | read | r | 4 |
写 | write | w | 2 |
执行 | execute | x | 1 |
无权限 | - | 0 |
1. 语法:
chmod 第一个数字第二个数字第三个数字 文件或者目录
chmod -R 第一个数字第二个数字第三个数字 文件或者目录
2. 说明:
chmod 761 aaa 修改目录aaa的权限。 用户权限有 读写执行、组权限有读写、其他用户有 执行 7=4+2+1 6=4+2 1=1
chmod -R 777 bbb 修改目录bbb以及下面的子文件或文件夹的权限。 用户权限、组权限、其他用户权限 都是 读写执行。 7=4+2+1
用法2: 符号权限
简写格式 | 英文全称 | 中文含义 |
---|---|---|
u | user | 属主权限(用户自己) |
g | group | 属组权限(用户组) |
o | others | 其他权限(其他的用户,陌生人) |
a | all | 全部身份(包含有 用户自己、用户组、其他用户、陌生人) |
1. 语法:
chmod u=读写执行,g=读写执行,o=读写执行 目录或者文件
chmod -R u=读写执行,g=读写执行,o=读写执行 目录或者文件
2. 说明:
chmod u=rwx,g=rw,o=r aaa 修改aaa目录的权限, 属主权限是读写执行,属组权限是读写,其他用户读
chmod -R a=rwx bbb 修改bbb目录以及下面的子目录或者文件权限, 属主、属组、其他用户,都有 读写执行
第04节 创建文件
touch
1. 语法:
touch 文件名称
stat 文件名称
2. 说明:
touch a.txt 不存在则创建,存在则修改时间属性
touch a{1..10}.txt 批量创建多个文件,分别是 a1.txt a2.txt a3.txt .... a10.txt
stat a.txt 查看 a.txt 文件的详细信息, 类似于 windows 当中查看文件的属性
vim编辑器
模式 | 说明 | 代码 |
---|---|---|
阅读模式 | 只能看,不能往里面输入数据 | vim 文件名称 |
编辑模式 | 可以输入数据 | I |
末行模式 | 保存数据到文件当中 | :wq |
第05节 文件查看
cat (主要用于查看小文件)
1. 语法:
cat 文件的名称
cat -n 文件的名称
2. 说明:
cat aa.txt 查看文件的内容
cat -n aa.txt 查看文件的内容,有行号的显示
less (可以查看 大文件)
1. 语法:
less 文件的名称
less -N 文件的名称
2. 说明:
less aa.txt 查看文件的内容
less -N aa.txt 查看文件的内容, 有行号的显示
3. 备注:
可以通过 上下键 翻动屏幕。 如果想要退出 按 q 键
tail (显示文件的后面几行) 另外还有一个 head
与 tail
相反的,都可以展示数据,tail
展示末尾,head
展示开头
1. 语法:
tail 文件名称
tail -数字 文件名称
tail -f 文件名称
tail -n+数字 文件名称
tail -c 数字 文件名称
2. 说明:
tail aaa.txt 显示 aaa.txt 文件的后面 10 行数据
tail -5 aaa.txt 显示 aaa.txt 文件的后面 5 行数据
tail -f aaa.txt 动态的显示 aaa.txt 文件的后10行数据,实时刷新,如果想要退出 按 Ctrl + C
tail -n+7 aaa.txt 显示 aaa.txt 文件当中 从第7行开始到文件结束的数据
tail -c 45 aaa.txt 显示 aaa.txt 文件当中 末尾的 45个字符数 (c:char)
grep (筛选文件 或者 筛选进程 当中的信息)
1. 语法:
grep 关键字 文件名称
grep -n 关键字 文件名称
grep -i 关键字 文件名称
grep -v 关键字 文件名称
grep -c 关键字 文件名称
2. 说明:
grep hello aaa.txt 把 aaa.txt 当中的 所有的 hello 所在的行数据展示出来
grep -n hello aaa.txt 把 aaa.txt 当中的 所有的 hello 所在的行数据展示出来, 前面加上了 行号的显示
grep -i hello aaa.txt 把 aaa.txt 当中的 所有的 hello 忽略大小写,例如 HEllo 也可以展示出来
grep -v hello aaa.txt 把 aaa.txt 当中的 不包含有 hello 所在的行数据展示出来
grep -c hello aaa.txt 把 aaa.txt 当中的 hello 的个数展示出来
第06节 vim 的异常处理
VIM定位行
为什么会存在 VIM 定位行?
通过给出的异常的信息, 可以快速的 定位光标在所在行
语法:
vim 文件名称 +行数
说明:
vim hello.txt +4 表示直接打开文件,光标定位到 hello.txt 文件的第4行
场景
在我们 编辑文件的过程当中, 出现了 异常情况(还没有正常的保存退出,就直接关闭) 会产生一个 后缀叫做 .swp 的文件。 (swp 叫做交换文件)
下次再去启动 vim 的时候,就会弹出异常的信息。
解决
1. 解决方案: 直接删除 .swp 文件即可。 说明一下: .swp 他是一个隐藏文件,前面有个点
2. 操作指令: rm -r -f .文件名称.swp
第07节 输入数据到文件
echo
1. 语法:
echo 字符串
echo 字符串>文件名
echo 字符串>>文件名
cat 不存在的目录 &>> 文件名称
2. 说明:
echo "hello" 直接在 终端显示 字符串
echo "hello" > aa.txt 将"hello"字符串写入到文件aa.txt 当中, 同时清空掉之前的内容。
echo "hello" >> aa.txt 将"hello"字符串写入到文件aa.txt 的最后, 不会清空之前的内容。
cat xx.txt &>> bb.txt 将不存在的目录信息, 写入到 bb.txt 文件当中
第08节 软连接
基础语法
1. 语法:
ln -s 目标文件的路径 快捷方式的路径
2. 说明:
ln -s aaa/bbb/ccc/hello.txt kuaijie
采用相对路径,创建了软连接,软连接的名称叫做 kuaijie
第09节 find 查找命令
基础语法
1. 语法:
find 文件目录 查找的类型 指定的内容
2. 说明:
find . -name "*.png" 在当前的目录文件夹下面,查找后缀名称是 .png 的文件
find / -ctime -2 在根目录当中,查找 2天当中使用过的文件列表
第六章 其他命令
第01节 压缩和解压缩
gzip 压缩文件变成 gz 格式
1. 语法:
gzip 文件名称
gzip *
gzip -dv 文件名称
2. 说明:
gzip aa.txt 压缩文件 aa.txt 压缩之后,文件 aa.txt 将会消失, 同时产生一个文件 名称叫做 aa.txt.gz
gzip * 压缩当前文件夹下面所有的文件和目录
gzip -dv bb.txt.gz 解压文件 bb.txt.gz 解压之后,文件 bb.txt.gz 将会消失, 同时产生一个文件 名称叫做 bb.txt 并且给出了解压信息
gunzip 解压缩 gz 格式的文件
1. 语法:
gunzip 压缩文件的名称
2. 说明:
gunzip aa.txt.gz 解压文件 aa.txt.gz 解压之后,文件 aa.txt.gz 会消失。 同时出现文件 aa.txt
tar
1. 语法:
tar -zcvf 压缩文件名称 文件名称或者文件夹名称
tar -ztvf 压缩文件名称
tar -zxvf 压缩文件名称
2. 说明:
tar -zcvf bbb.gz aaa 压缩目录文件夹 aaa 压缩之后, 压缩文件的名称叫做 bbb.gz
tar -ztvf bbb.gz 查看压缩文件 bbb.gz 当中存在文件或者目录文件夹
tar -zxvf bbb.gz 解压压缩文件 bbb.gz 解压之后, 目录名称叫做 bbb
zip
1. 语法:
zip -q -r 压缩之后文件的名称 需要压缩的文件夹
2. 说明:
zip -q -r aaa.zip bbb 将bbb文件夹,压缩成为 aaa.zip 文件
unzip
1. 语法:
unzip -l 压缩文件的名称
unzip -d 压缩文件的名称
2. 说明:
unzip -l aaa.zip 查看压缩文件里面的文件信息
unzip -d aaa.zip 解压文件 aaa.zip
3. 备注:
需要注意一点, unzip 只能解压 "zip" 扩展名称的压缩文件
第02节 网络管理
ifconfig
1. 语法:
ifconfig
ifconfig 网卡名称 down
ifconfig 网卡名称 up
ifconfig 网卡名称 ip地址
ifconfig 网卡名称 ip地址 netmask 子网掩码
2. 说明:
ifconfig 显示激活的网卡信息
ifconfig ens37 down 关闭网卡 ens37
ifconfig ens37 up 启动网卡 ens37
ifconfig ens37 192.168.33.66 配置网卡 ens37 的IP地址
ifconfig ens37 192.168.33.66 netmask 255.255.255.0 配置网卡 ens37 的IP地址 和 子网掩码
ping
1. 语法:
ping ip地址或者网址
ping -c 数字 ip地址或者网址
2. 说明:
ping 127.0.0.1 检测是否与 ip地址为 127.0.0.1 的主机网络是通畅的
ping -c 5 www.baidu.com 检测是否与 网址为 www.baidu.com 的主机网络是通畅的, 备注只会收发 5次
netstat
1. 语法:
netstat -a
netstat -i
2. 说明:
netstat -a 显示详细的连接情况,类似于 windows 电脑管理里面,每个程序连接网络的情况。
netstat -i 显示网卡列表信息, 类似于 windows 控制面板当中,更改网络适配器
第06节 yum 软件管理
yum
1. 语法:
yum -y install 软件的名称
yum remove 软件的名称
yum list 软件名称关键字
2. 说明:
yum -y install tree 安装软件,软件的名称叫做 tree 如果中途有选择项,一律选择 y 也就是 yes
yum remove tree 卸载软件 tree
yum list tom* 从 yum 当中,找到 以 tom开头的软件信息,展示在列表当中
3. 备注:
yum 相当于是一个 软件的仓库, 包含了一系列的功能。 查找、安装、下载、卸载、更新
更改yum源
1. 为什么需要更改 yum 源?
yum 源, 默认的 yum 源,来自于 国外的 CentOS 网址, 下载软件的速度会比较慢。
在这种情况下,我们会选择修改 yum 源,采用国内的 yum 源, 相比之下, 下载软件网速会提高很多。
2. 如何修改 yum 源 ? 操作步骤如下:
第一步: 安装下载工具 wget 使用的指令: yum install -y wget
第二步: 进入到yum源的目录当中 使用指令: cd /etc/yum.repos.d/
第三步: 修改文件的名称 使用的指令: mv CentOS-Base.repo CentOS-Base.repo.bak
第四步: 下载阿里云配置文件 使用的指令: wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
第五步: 清理缓存,重新加载 yum 使用的指令: yum clean all
第六步: 建立缓存文件 使用指令: yum makecache
第七步: 验证是否更换成功 使用指令: yum search tomcat
第七章 安装JDK
第01节 概述说明
安装JDK的步骤
(1) 卸载
(2) 下载并且安装
(3) 配置环境变量
第02节 卸载JDK
查看JDK的信息
指令
java -version
效果图
查看安装之后的 JDK信息
指令
rpm -qa | grep java
删除操作 删除掉不是 .noarch 结尾的文件(注意此处根据电脑的不同,文件的名称略有不同)
删除的指令:
rpm -e --nodeps 文件的名称
拷贝下面的指令,进行执行 注意:需要管理员权限
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
rpm -e --nodeps java-11-openjdk-headless-11.0.ea.28-7.el7.x86_64
rpm -e --nodeps java-11-openjdk-11.0.ea.28-7.el7.x86_64
检验是否删除成功
java -version
第03节 下载并且安装
拷贝压缩包到用户目录
指令
mv jdk-8u161-linux-x64.tar.gz /home/chenhaochuan
创建文件夹
指令
mkdir /usr/java
复制压缩包
指令
cp jdk-8u161-linux-x64.tar.gz /usr/java
安装JDK文件
指令
cd /usr/java
tar -zxvf jdk-8u161-linux-x64.tar.gz
验证是否安装成功
指令
ls -l
第04节 配置环境变量
管理员权限,进入vim编辑器
vim /etc/profile
配置环境变量
注意文件夹的名称,名称必须匹配 JAVA_HOME=/usr/java/jdk1.8.0_161
#java environment
export JAVA_HOME=/usr/java/jdk1.8.0_161
export
CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
完成配置
source /etc/profile
a-11-openjdk-11.0.ea.28-7.el7.x86_64
**检验是否删除成功**
```java
java -version
第03节 下载并且安装
拷贝压缩包到用户目录
指令
mv jdk-8u161-linux-x64.tar.gz /home/chenhaochuan
创建文件夹
指令
mkdir /usr/java
效果图
[外链图片转存中…(img-XWt2tAka-1619522358525)]
复制压缩包
指令
cp jdk-8u161-linux-x64.tar.gz /usr/java
安装JDK文件
指令
cd /usr/java
tar -zxvf jdk-11.0.11_linux-aarch64_bin.tar.gz
或者
tar -xzf jdk-11.0.11_linux-aarch64_bin.tar.gz
验证是否安装成功
指令
ls -l
第04节 配置环境变量
管理员权限,进入vim编辑器
vim /etc/profile
配置环境变量
注意文件夹的名称,名称必须匹配 JAVA_HOME=/usr/java/jdk1.8.0_161
#java environment
export JAVA_HOME=/usr/java/jdk1.8.0_161
export
CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
完成配置
source /etc/profile