课堂笔记
2024-07-10 15:28:24 0 举报
AI智能生成
Linux笔记
作者其他创作
大纲/内容
[root@localhost ~]# rm a #交互式删除rm: remove regular file ‘a’? y[root@localhost ~]# rm -rf a #无交互式删除
rm 是强大的删除命令,不仅可以删除文件,也可以删除目录— 功能描述:删除文件或目录。-f:强制删除(force)-i:交互删除,在删除之前会询问用户-r:递归删除,可以删除目录(recursive)
4.1 rm命令
[root@localhost ~]# cp a a.bak[root@localhost ~]# cp file file.bak #复制目录必须要加-rcp: omitting directory ‘file’[root@localhost ~]# cp -a file file.bak[root@localhost ~]# cp -a a a.bak2 #保持原文件和目标文件的权限一致
cp 是用于复制的命令— 功能描述:复制文件和目录-a:相当于-dpr 选项的集合,这几个选项我们一一介绍-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接-i:询问,如果目标文件已经存在,则会询问是否覆盖-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)-r:递归复制,用于复制目录
4.2 cp命令
[root@localhost ~]# mv a b ##将a文件改名成b[root@localhost ~]# mv file file1 ##将file改名成file1
mv 是用来剪切的命令— 功能描述:移动文件或改名-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项) -v:显示详细信息
4.3 mv命令
四、目录和文件都能操作的命令
[root@localhost ~]# zip ana.zip anaconda-ks.cfg
[root@localhost ~]# unzip -d /tmp/ ana.zip
压缩命令就是 zip-r:压缩目录“.zip”格式的解压缩命令是 unzip-d:指定解压缩位置
5.1 “.zip”格式
“.tar” 和\".gz\"格式格式的打包和解打包都使用 tar 命令,区别只是选项不同。选项:-z:表示压缩和解压缩的格式为gz压缩文件(gzip)-x:解打包-f:指定压缩包的文件名-v:显示解打包文件过程-t:测试,就是不解打包,只是查看包中有哪些文件-C(大) 目录: 指定解打包位置
5.2 “.tar” 和 \".gz\"格式
五、 压缩和解压缩命令
Vi是一种文本编辑器vim 是一个全屏幕纯文本编辑器,是 vi 编辑器的增强版vim需要安装:yum install -y vim
6.1 Vi和Vim命令
vim 是 一个模式编辑器,击键行为是依赖于 vim的 的“模式”操作方式:默认进入命令模式,按i进入插入模式,按esc回到命令模式,按:进入命令行模式wq 保存退出 q 退出 (如果有修改,此方式退出会出错) q! 强制退出,不保存
6.2 vim 的工作模式
vi/vim 文件路径x 删除一个字符dd 删除一行xdd 删除x行yy 复制一行xyy 复制x行p 粘贴u 撤销r 替换字符向下搜索在命令模式输入 / 要搜索的文字向上搜索输入 ? 要搜的文字
6.3 基本操作
ZZ 保存退出ZQ 不保存退出
6.4.1 退出vim
Ctrl+f 向文件尾部翻一屏Ctrl+b 向文件首部翻一屏Ctrl+d 向文件尾部翻半屏Ctrl+u 向文件首部翻半屏
gg 光标跳转到文件第一行G 光标跳转到文件最后一行4gg / 4G 光标跳转到文件第几行
^ 光标跳转到行首的第一个非空白字符0 光标跳转到当前行的行首$ 光标跳转到当前行的行尾
H 光标跳转到屏幕顶端M 光标跳转到屏幕中间L 光标状态到屏幕底端zt 将光标所在当前行移到屏幕顶端zz 将光标所在当前行移到屏幕中间zb 将光标所在当前行移到屏幕底端
w 光标跳到下一个单词的词首e 光标跳到当前单词的词尾b 光标跳到当前或前一个单词的词首3w 光标跳到下三个单词的词首3e 光标跳到下三个单词的词尾3b 光标跳到前三个单词的词首
h 光标向左移动3h 光标向左移动3个字符j 光标向下移动3j 光标向下移动3个字符k 光标向上移动3k 光标向上移动3个字符l 光标向右移动3l 光标向右移动3个字符
6.4.2 光标跳转
n 是数字,如果打算从光标位置删除连续的 10 个字母,可以使用“10x”即可。删除字母并不合使用习惯,我们更习惯在编辑模式中,用“Backspace”键删除字母。
6.4.3 字符快速编辑
6.4.4 替换字符replace
6.4.5 删除命令delete
6.4.6 复制命令yank
p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面P 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
6.4.7 粘贴命令paste
6.4.8 改变模式命令change
/PATTERN 从当前光标所在处向文件尾部查找?PATTERN 从当前光标所在处向文件首部查找按n 与命令同方向查找下一个按N 与命令反方向查找下一个
6.4.9 查找字符
6.4.10 撤销更改操作
6.4 命令模式操作
6.5.1 基础命令
d #删除y #复制w file #将范围内的行另存至指定文件中r file #在指定位置插入指定文件中的所有内容
6.5.2 地址定界
6.5.3 快速复制移动内容
修饰符i 忽略大小写g 全局替换,默认情况下,每一行只替换第一次出现gc 全局替换,每次替换前询问
6.5.4 查找替换信息
6.5 命令行模式操作
扩展命令模式的配置只是对当前vim进程有效,可将配置存放在文件中持久保存配置文件
/etc/vimrc 全局配置~/.vimrc 单个用户配置
6.6.1 配置文件
6.6.2 显示行号syntax on
忽略搜索大小写:set ignorecase,简写 set ic不忽略:set noic
6.6.3 搜索字符忽略大小写
启用:set autoindent,简写 set ai禁用:set noai
6.6.4 自动缩进
6.6.5 粘贴保留格式
启用:set list禁用:set nolist
6.6.6 显示Tab键^I 和回车$显示
6.6.7 搜索高亮
启用:syntax on禁用:syntax off
6.6.8 语法高亮
启用windows格式:set fileformat=dos启用unix格式:set fileformat=unix简写 set ff=dos|unix
6.6.9 文件类型转换
6.6.10 设置光标所在行的标识线
6.6 定制vim
6.7 块选择
六、编辑文件
**注意:多个选项以及多参数和命令之间使用空白字符分隔取消和结束命令执行:Ctrl+c,Ctrl+d多个命令可以用 \";\" 符号分开一个命令可以用\\分成多行
1.1 Linux基础命令的语法格式
根文件系统(rootfs):root filesystem蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件
1.2.1 文件系统的目录结构
1.2.2 常见的文件系统目录功能
1.2.3 应用程序的组成部分
1.2 文件系统目录结构
一、Linux基础命令格式
l 符号链接文件linkd 目录文件directory-普通文件
2.1 ll 命令
| ~ | 代表用户的家目录 | - | 代表上次所在目录 | . | 代表当前目录 | .. | 代表上级目录
2.2.1 cd 命令的特殊符号
cd 是切换所在目录的命令
2.2 cd 命令
绝对路径:以跟目录为参照物,从根目录开始,一级一级进入目录相对路径:以当前目录作为参照物,进行目录查找
2.3 绝对路径和相对路径
[root@localhost ~]# pwd/root
pwd 命令是查询所在目录的命令— 功能描述:查询所在的工作目录。
2.4 pwd命令
mkdir 是创建目录的命令— 功能描述:创建空目录。-p:递归建立所需目录-v: 显示创建过程
2.5 mkdir命令
— 功能描述:删除空目录。-p:递归删除目录 -v: 显示详细过程
2.6 rmdir命令
[root@localhost ~]# yum -y install tree
查看当前目录下目录树结构常见选项: -d: 只显示目录 -L level:指定显示的层级数目 -P pattern: 只显示由指定wild-card pattern匹配到的路径
2.7 tree命令
二、目录操作命令
创建空文件或修改文件时间— 功能描述:修改文件的时间戳。
3.1 touch命令
#最后一次访问文件(读取或执行)的时间。#最后一次改变文件(内容)或目录(内容)的时间。#最后一次改变文件(属性)或者目录(属性)的时间。
stat 是查看文件详细信息的命令,而且可以看到文件的三个时间功能描述:显示文件或文件系统的详细信息。
3.2 stat命令
cat 命令用来查看文件内容功能描述:合并文件并打印输出到标准输出选项:-A: 相当于-vET 选项的整合,用于列出所有隐藏符号-E: 列出每行结尾的回车符$-n: 显示行号-T: 把 Tab 键用^I 显示出来-v: 列出特殊字符
3.3 cat命令
nl命令相当于cat -b,对文本费空行编号显示
3.4 nl命令
tac命令和cat命令输出内容相反,头输出信息
3.5 tac命令
rev命令翻译为 reverse 反转,按照文本每行内容进行反转
3.6 rev命令
more 是分屏显示文件的命令。— 功能描述:分屏显示文件内容。— 空格键:向下翻页。— b:向上翻页。— 回车键:向下滚动一行。— /字符串:搜索指定的字符串。— q:退出。
3.7 more命令
less 命令和 more 命令类似,只是 more 是分屏显示命令,而 less 是分行显示命令— 功能描述:分行显示文件内容
3.8 less命令
[root@localhost ~]# head -n 10 sshd_config #默认显示10行
head 是用来显示文件开头的命令— 功能描述:显示文件开头的内容。-n 行数:从文件头开始,显示指定行数-v:显示文件名
3.9 head命令
[root@localhost ~]# tail -n 5 sshd_config
既然有显示文件开头的命令,就会有显示文件结尾的命令— 功能描述:显示文件结尾的内容。-n 行数:从文件结尾开始,显示指定行数-f:监听文件的新增内容
3.10 tail命令
三、 文件操作命令
-f:查看命令拥有哪个级别的帮助-k:查看和命令相关的所有帮助
[root@localhost ~]# man [选项] 命令
man命令
[root@localhost ~]# info ls
info命令:info 命令的帮助信息是一套完整的资料
[root@localhost ~]# help cd
help命令:只能获取Shell内置命令
[root@localhost ~]# ls --help
--help选项
一、帮助命令
whereis命令:系统命令
which命令
一般需要安装:yum install -y mlocate速度快、消耗小 只能搜索文件名
locate命令
-name
按照文件名搜索,不区分文件名大小写
-iname
按照 inode 号搜索
-inum
[root@localhost ~]# find 搜索路径 [选项] 搜索内容选项:
按照文件名搜索
-size [+|-]大小:按照指定大小搜索文件+是大于 -是小于
按照文件大小搜索
-atime [+|-]时间:按照文件访问时间搜索
-mtime [+|-]时间:按照文件数据修改时间搜索
-ctime [+|-]时间:按照文件状态修改时间搜索
按照修改时间搜索
设定实验权限:[root@localhost test]# chmod 755 test1
按权限搜索:[root@localhost test]# find . -perm 755
按照权限搜索
-uid 用户 ID:按照用户 ID 查找所有者是指定 ID 的文件
-gid 组 ID:按照用户组 ID 查找所属组是指定 ID 的文件
-user 用户名:按照用户名查找所有者是指定用户的文件
-group 组名:按照组名查找所属组是指定用户组的文件
-nouser:查找没有所有者的文件
按照所有者和所属组搜索
-type d:查找目录
-type f:查找普通文件
-type l:查找软链接文件
按照文件类型搜索
-a:and 逻辑与
-o:or 逻辑或
-not:not 逻辑非
逻辑运算符
[root@localhost ~]# find test -maxdepth 3 -type f
向下查找最大深度限制为3的普通文件
-maxdepth 最大深度
-mindepth 最小深度
按照文件深度来查找
查找文件名为b,并执行删除:[root@localhost ~]# find . -name b -exec rm -rf {} \\;
-exec[root@localhost ~]# find 搜索路径 [选项] 搜索内容 -exec 命令2 {} \\;花括号中代表find的查找结果
[root@localhost ~]# find . -name a.bak -ok rm -rf {} \\;
“-ok”的命令 2 在处理前会先询问用户是否这样处理
其他选项
命令1 | 命令2:命令 1 的正确输出作为命令 2 的操作对象
管道符“|”命令
find命令
二、搜索命令
-i忽略大小写
-n:输出行号
-v:反向查找
--color=auto:搜索出的关键字用颜色显示
[root@localhost ~]# grep [选项] \"搜索内容\" 文件名选项:
grep命令:在文件中提取和匹配符合条件的字符串行
-f 列号:提取第几列,默认的分隔符就是制表符
-d 分隔符:按照指定分隔符分割列
-c:按字符分割
子主题
cut 【选项】文件名
cut字段提取命令
-d --delete:删除所有属于第一字符集的字符
-t --truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符
-c –C --complement:取字符集的补集
把/etc/issue中的小写字符都转换成大写字符:tr 'a-z' 'A-Z' < /etc/issue
tr 命令:转换和删除字符
-u :去重 -n :以数值来排序 -o :将结果写入原文件 -r :降序 -t :指定分割符 -k :指定列 -R: 随机排序
sort [选项] filename
sort 排序或者去重
选项与参数:-i :忽略大小写字符的不同;-c :进行计数-u :只显示不重复的行-d : 显示重复的行
uniq [选项] [filename]
uniq 去重
-r 是一个递归选项,设置了这个选项,diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件。-b 忽略空格数目的不同-u 选项以统一格式创建补丁文件,这种格式比缺省格式更紧凑些。
语法格式:diff 【选项】 源文件(夹) 目的文件(夹)
diff命令和patch命令
-b :备份文件
patch命令
wc命令
统计数据命令
三、字符处理命令
读入数据:Input
输出数据:Output
- 标准输入(STDIN) -0 默认接受来自终端窗口的输入- 标准输出(STDOUT)-1 默认输出到终端窗口- 标准错误(STDERR) -2 默认输出到终端窗口
标准输入和输出
>> 追加标准输出重定向至文件2>> 追加标准错误重定向至文件
&> 覆盖重定向&>> 追加重定向
1> 或 > 把STDOUT重定向到文件2> 把STDERR重定向到文件&> 把标准输出和错误都重定向>& 和上面功能一样,建议使用上面方式
清除大文件:cat /dev/null > /data/file.log原理是使用空文件替换原本的大文件
I/O重定向:将默认的输入,输出或错误对应的设备改变,指向新的目标
COMMAND 0 < FILECOMMAND < FILE
实现标准输入重定向的符号
从文件中导入STDIN,代替当前终端的输入设备,使用 < 来重定向标准输入
多行重定向
标准输入重定向
#如果想知道具体的网络连接数量,就可以再使用 wc 命令统计行数[root@localhost ~]# netstat -an | grep \"ESTABLISHED\" | wc -l
-a:列出所有网络状态,包括 Socket 程序-c 秒数:指定每隔几秒刷新一次网络状态-n:使用 IP 地址和端口号显示,不使用域名与服务名-p:显示 PID 和程序名-t:显示使用 TCP 协议端口的连接状况-u:显示使用 UDP 协议端口的连接状况 -l:仅显示监听状态的连接-r:显示路由表
CentOS 7 中,需要安装 ``net-snmp.x86_64,net-tools.x86_64`` 两个包才有此命令。7.9系统中已经自动安装
netstat 命令
四、IO 重定向和管道符命令
#临时生效hostname NAME
设置主机名
提示符格式说明:- \\e 控制符\\033 - \\u 当前用户 - \\h 主机名简称- \\H 主机名- \\w 当前工作目录- \\W 当前工作目录基名- \\t 24小时时间格式- \\T 12小时时间格式- ! 命令历史数- #. 开机后命令历史数
可改颜色
# 管理员 $ 普通用户
#CentOS默认提示符[root@localhost ~]##Ubuntu默认提示符root@ubuntu1804:~#
命令提示符
lscpu命令可以查看cpu信息
cat /proc/cpuinfo也可看查看到
查看 cpu
[root@centos8 ~]#free
[root@centos8 ~]#cat /proc/meminfo
查看内存大小
[root@localhost ~]# lsblk
[root@localhost ~]# cat /proc/partitions
查看硬盘和分区情况
[root@localhost ~]# top
查看系统资源占用情况
查看硬件信息
arch
查看系统架构
uname -r
查看内核版本
cat /etc/redhat-release
yum provides */lsb_release
lsb_release -a
yum install -y redhat-lsb-core
Ubuntu:cat /etc/os-release
lsb_release -is
查看 OS 版本
查看操作系统发行版本
date:日期
clock,hwclock: 显示硬件时钟
时区:/etc/localtime
日历:cal –y
日期和时间
echo Hello world # 直接输出文本
echo 'Hello world' # 使用单引号将内容括起来
echo \"Hello world\" # 使用双引号将内容括起来
echo -e \"Hello\\tworld\" # 使用 -e 选项可以识别\\t(一个tab键)等特殊字符
将单行文本追加到某个文件中:echo \"Hello world\" >> hello.txt
echo 高级用法
输出信息 echo
查看系统版本信息
五、系统相关命令
7.5### 本章目标1、掌握帮助命令使用方法2、掌握搜索命令的使用(重点:find)3、掌握字符处理命令(重点:grep、cut、tr、sort)4、掌握IO重定向和管道符(重点:> >> < << | )5、掌握系统相关命令(重点:lscpu、free、df、top、date、echo)
`/etc/passwd`文件保存Linux系统用户属性配置信息
passwd文件
`/etc/shadow`文件保存Linux系统用户的密码信息
shadow文件
`/etc/group`文件保存系统用户组的属性信息
group文件
`/etc/gshadow`文件保存Linux系统用户组密码信息
gshadow文件
**getent命令: **直接查看配置文件
**pwck命令: **用来验证系统认证文件/etc/passwd和/etc/shadow的内容和语法
**vipw / vigr 命令: ** 编辑`/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow`文件
配置文件操作
用户和组的配置文件
指定该用户的UID
useradd -u
指定宿主目录,默认为 /home/用户名
useradd -d
指定用户所属主组(必须已存在)
useradd -g
指定用户所属的附加组(必须已存在)
useradd -G
useradd -r
指定用户的登录Shell
useradd -s
查看创建用户的/etc/default/useradd的配置内容
useradd -D
通过命令修改`/etc/default/useradd`文件属性
useradd 命令默认值设定由`/etc/default/useradd`文件定义
创建用户 useradd
修改用户UID
usermod -u
修改用户主组
usermod -g
新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
usermod -G
新的默认SHELL
usermod -s SHELL
新的名字
usermod -l login_name
新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
usermod -d HOM
指明用户账号过期日期
usermod -e YYYY-MM-DD
修改用户属性 usermod
强制删除用户
userdel -f
删除用户家目录和用户邮件服务mail
userdel -r
删除用户 userdel
显示UID
id -u
显示GID
id -g
显示用户所属的私有组的ID
id -G
查看用户相关的ID信息
完全切换用户
su -c
切换用户su
删除指定用户密码
passwd -d
锁定指定用户
passwd -l
解锁指定用户
passwd -u
passwd -e
强制操作
passwd -f
指定用户的密码最大使用期限
passwd -x maxdays
指定用户的密码最短使用期限
passwd -n mindays
提前多少天开始警告更改密码
passwd -w warndays
echo 123456 | passwd --stdin user1
passwd --stdin
设置用户密码passwd chpasswd
chage -d 0
设置用户几天后可以修改密码
chage -m MIN_DAYS
设置密码后的最大天数(密码使用时长)
chage -M MAX_DAYS
设置过期警告天数
chage -W WARN_DAYS
设置密码过期后的宽限期
chage -I INACTIVE_DAYS
设置用户的有效期
chage -E EXPIRE_DATE
显示用户密码设置情况
chage -l
修改用户密码策略chage
`chfn`命令设置用户说明信息,同`usermod -c`
`chsh`指定用户的shell解释器,同`usermod -s`
yum install -y fingerfinger user1finger查看永辉最近一次登录信息
用户相关其他命令
-g 指定GID 除非-o 否则 ID 必须唯一
-r 创建系统组
创建用户组 groupadd
-n group_name 修改用户组名称
-g GID 新的GID
修改用户组 groupmod
roups`可以查看用户的所有用户组情况
查看用户的用户组 groups
删除用户组 groupdel
-a #将user添加至指定组中
-d #移除用户
-A #设置用户组的管理员用户
-r#删除用户组密码
更改用户组密码 gpasswd
newgrp [-] [group]#如果使用 - 选项,可以初始化用户环境
临时切换用户主组
-g#指定查看的用户组
-a#指定用户加入组
-d#从组中删除用户
-p#从组中清除所有成员
-l#显示组成员列表
管理用户组
用户和组管理命令
chown OWNER #只修改所有者
chown OWNER:GROUP #同时修改所有者和属组
chown :GROUP #只修改属组,冒号也可用 \".\" 替换
chown --reference=RFILE #按照指定文件的的属性,来修改目标文件属性
chown -R #递归
设置文件的所有者chown
--reference=RFILE #按照指定文件的的属性,来修改目标文件属性
-R #递归
设置文件的属组信息chgrp
文件所有者和属组属性操作
rread 读权限 4wwrite写权限 2xexecute 执行权限 1
+/-/= r/w/x
u
g
o
a
修改文件权限chmod
文件权限控制
umask默认权限
方法一:chmod u+s 文件方法二:chmod 4644 文件
重要用户对设有SUID的文件有执行权限,那么当用户执行此文件时,会以文件属主的身份去执行此文件,一旦文件执行结束,身份的切换也会随之消失
特殊权限 SUID
方法一: chmod g+s 目录方法二: chmod 2644 目录
设置了sgid的目录,会保证在这个目录下创建的文件、文件夹会自动继承父目录的属组
特殊权限 SGID
方法一: chmod o+t 目录方法二: chmod 1644 目录
在目录设置`Sticky` 权限位,只有文件的所有者或root可以删除该文件
特殊权限 Sticky
chattr -R递归处理目录下的所有文件chattr -v设置文件或目录版本chattr -V显示指令执行过程chattr +开启文件或目录的该项属性chattr -关闭文件或目录的该项属性chattr =指定文件或目录的该项属性
`chattr`设置特殊权限
-a 列出目录中的所有文件,包括隐藏文件-d 只显示目录名称-R递归地处理指定目录下的所有文件及子目录-v 显示文件或目录版本-D显示属性的名称、默认值-E显示从用户设备数据库中获得属性的当前值
`lsattr`查看特殊权限
隐藏权限模式
隐藏权限
df -T 确认文件系统
tune2fs -l /dev/sda1 查看是否支持acl权限功能
ACL权限生效顺序: 所有者,自定义用户,所属组,自定义组,其他人
ACL功能
用户:setfacl -m [u / g]:user:[rwx] 文件
组:setfacl -m g:tgroup:rx /project
设定 ACL 权限
setfacl -m
setfacl -x u:st /project
setfacl -x
setfacl -b /project
删除所有的 ACL 权限
setfacl -b
setfacl -m u:st:rx -R /project
递归设定 ACL 权限
setfacl -R
setfacl -m d:u:st:rx /project
对目录下创建新文件默认 ACL 权限
setfacl -d
删除默认 ACL 权限
setfacl -k
-a显示文件的ACL-d显示默认的ACL-c不显示注释标题-e显示所有的有效权限-E显示没有的有效权限-R递归到子目录
`getfacl`用于查看ACL权限
ACL相关操作
访问控制列表
Linux文件特殊权限
文件权限管理
7.8本章目标1、Linux 的安全模型2、用户和组相关文件3、用户和组管理命令(重点:useradd、usermod、passwd、groupadd、groups)4、理解并设置文件权限(重点:chmod、chown、权限字符和数字)5、默认权限6、特殊权限7、文件访问控制列表
1)下载源代码进行安装
2)rpm包安装
3)通过yum安装
在Linux中安装软包的方式有3种:
软件是指在计算机系统中运行的程序或指令集合,用于控制计算机的硬件操作
什么是软件?
软件包是指一组相关的软件程序、库文件、配置文件等文件的集合
什么是软件包
需要通过编译生成可执行程序
源码包
可以直接安装使用
二进制包
Linux中的软件包的分类
程序或服务给少量用户访问,或本机使用,建议RPM包,管理方便。
RPM 包
DPKG包
如果服务是给大量客户端提供访问的,建议使用源码包,效率更高。如(LAMP)
源码包就是一大堆源代码程序
一、Linux软件包管理
树形依赖(Tree dependencies)
环形依赖(Circular dependencies)
模块依赖(Module dependencies)
RPM的依赖性
-U 升级软件包,不管是否有旧版本
-F 升级软件包,但是必须要有旧版本
--force 强制安装
rpm -ivh 包全名
rpm -e 包名 --nodeps 不验证依赖性
卸载软件
rpm -q zsh //查询已经安装的软件包rpm -qa //查询所有已安装的软件包rpm -ql zsh //查询软件包安装了哪些文件rpm -qc zsh //查询软件包安装了哪些配置文件rpm -qi zsh //列出软件包的详细信息rpm -qf /etc/zlogin //查询文件由哪个包安装的
查询已安装的包
rpm -qpl zsh-5.0.2-25.el7.x86_64.rpm //查询软件包将会安装哪些文件rpm -qpc zsh-5.0.2-25.el7.x86_64.rpm //查询软件包将会安装哪些配置文件rpm -qpi zsh-5.0.2-25.el7.x86_64.rpm //列出软件包的详细信息
查看未安装软件包
RPM基本命令语法
RPM包命令管理
二、rpm包管理
yum list all # 查看仓库的所有包yum list installed yum list 软件名yum repolist # 查看仓库列表yum info
查询
安装
yum update -y
升级
卸载
yum search 包名的部分yum provides 文件绝对路径 # 查找文件是由哪个包安装的
查找软件包
进入yum源文件夹cd /etc/yum.repos.d/
curl -O http://mirrors.aliyun.com/repo/Centos-7.repo
或wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean allyum makecacheyum -y update
配置yum 源
三、RPM包YUM在线管理
apt-get install vim
安装软件包
apt-get update
更新软件包
apt-get upgrade
升级软件包
apt-get remove vim
删除软件包
apt-cache search text editor
查询软件包信息
四、dpkg软件包管理
yum update
添加 nginx 软件包的官方存储库
vi /etc/yum.repos.d/nginx.repo
输入:[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=0enabled=1
按 Esc 键退出编辑模式,输入 \":wq\" 保存并退出编辑器。
yum install nginx
systemctl start nginx
systemctl status nginx
\"Active\" 一栏显示 \"active (running)\"
五、实战:通过YUM在线安装nginx
1)下载源代码包:从软件开发者的官方网站或者其他可靠的来源下载源代码包。2)安装编译工具:在编译源代码之前,需要先安装编译工具,包括编译器、make工具和相关的开发库。具体安装方式可能因不同的Linux系统而异,可以使用系统自带的包管理工具进行安装。3)解压源代码包:将下载的源代码包解压到合适的目录中。一般来说,解压命令为tar -zxvf filename.tar.gz或者tar -jxvf filename.tar.bz2,其中filename为源代码包的文件名。4)进入源代码目录:使用cd命令进入解压后的源代码目录。5)配置源代码:在进入源代码目录后,需要运行configure脚本进行配置。configure脚本可以根据系统环境和用户选项生成Makefile文件,以便后续编译过程使用。一般来说,configure脚本的命令为./configure。6)编译源代码:运行make命令编译源代码。make命令会根据生成的Makefile文件进行编译,并生成可执行文件和相关的库文件。7)安装软件:编译完成后,可以使用make install命令将生成的可执行文件和相关的库文件安装到系统中。注意,在安装软件之前需要以root权限运行此命令。8)清理编译文件:在安装完成后,可以使用make clean命令清理编译过程中生成的临时文件和目标文件,以释放磁盘空间。
一、源码包的管理
在nginx的官方网站(https://nginx.org/)上下载最新的稳定版nginx源代码包。例如,可以使用以下命令在终端中下载nginx源代码包:
wget https://nginx.org/download/nginx-1.20.1.tar.gz
在编译nginx之前,需要先安装编译工具和依赖库
或yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
sudo apt-get updatesudo apt-get install build-essentialsudo apt-get install libpcre3 libpcre3-dev zlib1g-dev libssl-dev
解压nginx源代码包:tar -zxvf nginx-1.20.1.tar.gz
进入nginx源代码目录并配置:cd nginx-1.20.1
安装到指定的目录./configure --prefix=/usr/local/nginx
运行configure进行配置:./configure
- --with参数:指定依赖库的路径或版本号;- --without参数:禁用某些依赖库;- --enable参数:开启某些选项;- --disable参数:禁用某些选项;- --prefix参数:指定源码包的安装路径;- --mandir参数:指定源码包的man文档路径;- --bindir参数:指定源码包的可执行文件路径
编译参数
make -j 8(核心数)
make
编译nginx
sudo make install
安装nginx
/usr/local/nginx/sbin/nginx
启动nginx
可以使用浏览器访问http://localhost来验证nginx是否安装成功。
安装nginx的实战案例
1、下载MySQL的Linux版本
2、上传到usr/local目录
tar -xvf Mysql文件
3、解压
mv 解压后的MySQL目录名 mysql
4、移动到mysq目录中
cd mysqlmkdir data
5、在mysql目录中创建data目录
groupadd mysqluseradd -g mysql mysql
6、创建 mysql 用户组和 mysql 用户
chown -R mysql.mysql /usr/local/mysql/chown -R mysql.mysql data logs
7、改变 mysql 目录权限
mkdir mysql_install_dbchmod 777 ./mysql_install_db
1)创建mysql_install_db安装文件
x bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2)初始化
3)初始化成功后,要记录自己的原始密码:
8、初始化数据库
[mysqld]basedir=/usr/local/mysql datadir=/usr/local/mysql/datasocket=/usr/local/mysql/mysql.sockcharacter-set-server=utf8port=3306[mysql]socket=/usr/local/mysql/mysql.sockport=3306
添加以下内容:
vi /etc/my.cnf
9、配置MySQL
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
1)复制服务文件
chmod +x /etc/init.d/mysql
2)加执行权限
chkconfig --add mysql
3)添加到系统服务
x chkconfig --list mysql
4)检查服务
10、建立MySQL服务
vi /etc/profile
1)打开配置文件
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/libexport PATH
2)在配置文件底部添加:
source /etc/profile
3)使文件生效
解决方法:mkdir -p /var/log/mariadbtouch /var/log/mariadb/mariadb.logchown -R mysql.mysql /var/log/mariadb
可能出现的问题:找不到/var/log/mariadb/mariadb.log
11、配置全局环境变量
service mysql start
12、启动服务
mysql -u账号 -p密码输入原始密码
13、登录MySQL
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';或set password for root@localhost = password('新密码');
14、修改原始密码
安装Mysql 5.7实战案例
1、下载JDK的Linux版本
2、用SSH工具上传到usr/local目录
tar -xvf jdk文件名
3、解压jdk
export JAVA_HOME=/usr/local/jdk1.8.0_181export PATH=$JAVA_HOME/bin:$PATH
在文件末尾添加
vim /etc/profile
打开文件进行配置
4、配置环境变量
java -version
6、测试
安装jdk
1、下载Tomcat的Linux版本
tar -xvf Tomcat文件
cd /usr/local/tomcat8/bin
4、cd 进入bin目录
./startup.shnetstat -lnp | grep 8080
5、启动Tomcat
systemctl stop firewalld
6、关闭防火墙
网址:8080查看
安装Tomcat
rm -rf /usr/local/mysql
1.6 删除软件
二、安装软件实战
7.9## Linux中二进制软件包管理本节所讲:1、了解Linux中软件包类型2、掌握Linux软件包特点3、掌握RPM包命名规则4、掌握RPM包手工命令管理5、掌握RPM包YUM在线管理6、实战:通过YUM在线安装nginx## Linux的源码管理本节所讲:1、了解源码包的管理2、了解RPM包和源码包的区别3、掌握源码包的安装4、掌握脚本安装包管理
应用层决定了向用户提供应用服务时通信的活动。TCP/IP 协议族内预存了各类通用的应用服务。比如,FTP(FileTransfer Protocol,文件传输协议)和 DNS(Domain Name System,域名系统)服务就是其中两类。HTTP 协议也处于该层。
应 用 层(Application Layer)
数据的表现形式(ASCII、GB2312、jpg)、加密和压缩
表 示 层(Presentation Layer)
通信双方的会话管理,如建立会话,维持会话,删除会话等
会 话 层(Session Layer)
四层交换机
TCP:传输控制协议 可靠,传送的数据一定不丢UDP:用户数据报协议 更快,但是可能会丢失数据port:传输过程中的端口号用于区分不用的应用
传 输 层(Transport Layer)-段
路由器、三层交换机
提供逻辑地址(ip地址),选路。写入IP地址,源和目的地IP,选择经过哪些路径传输数据。
网 络 层(Network Layer)-包
网卡、以太网交换机
负责保存硬件地址(MAC地址),即在数据包中写入MAC地址,源和目的地的MAC地址,同时负责数据的检测和修正工作。
数 据 链 路 层(Data Link Layer)-帧
双绞线、集线器、中继器
网卡、网线等属于物理层
负责两台设备之间真正数据传输工作,通过比特流进行传输、物理接口、电气特性等
物 理 层(Physical Layer)
OSI模型
HTTP FTP TFTP SMTP SNMP DNS
TCP UDP
ICMP IGMP IP ARP RARP
PPP PPPOE
TCP/IP 4层模型 应用层传输层网络层网络接口层(数物)
计算机防火墙路由器交换机网卡
TCP/IP 5层模型应用层传输层网络层数据链路层物理层
TCP/IP模型
ping www.google.com
-c 请求次数
-i 回显请求的间隔时间(秒)
-s 数据包大小(字节)
-t 数据包的生存时间 (Time To Live,TTL)即数据包能经过的最大路由器数量。默认情况下,TTL为64
ping命令参数的含义
ping
-a显示所有网络连接,包括已建立的连接和正在监听的连接。
-t仅显示TCP连接。
-u仅显示UDP连接。
-n使用IP地址而不是域名显示网络连接。
-p显示与每个网络连接相关的进程信息。
-l显示正在侦听的服务socket
-s显示网络统计信息,例如传输的数据包数量和错误数量。
查看网络状态和统计信息
netstat
-a显示所有接口,包括未激活的
-s显示摘要信息
up激活接口
down关闭接口
inet addr设置或显示IPv4地址
netmask设置或显示子网掩码
hw ether设置或显示MAC地址
用于配置和显示Linux操作系统中的网络接口参数
ifconfig
yum install -y bind-utilsnslookup [options] [name | -] [server]
-query=TYPE指定查询类型,例如A记录、MX记录等
-debug输出调试信息
-timeout=N设置超时时间
-retry=N设置重试次数
-sil[ent]静默输出结果
用于查询DNS(域名系统)的命令行工具
nslookup
`-n`:使用数字形式显示路由表项;
- `-v`:显示详细信息;
`add`:添加路由表项;
`del`:删除路由表项。
用于查看和管理Linux系统的路由表,可以添加、删除和修改路由表项
route
`+trace`显示DNS域名解析过程中的详细信息
`+short`只显示查询结果的IP地址或者CNAME
`+nocmd`只显示DNS解析结果,不显示查询命令及DNS服务器的应答信息
`+noall`只显示查询结果,不显示任何信息
`只显示DNS解析结果的回答部分,不显示其他部分
`+authority`只显示DNS解析结果的权威部分,不显示其他部分
`+additional`只显示DNS解析结果的附加部分,不显示其他部分
`+noquestion`只显示DNS解析结果的各个部分,不显示查询的域名及查询类型
`+nocomments`不显示注释信息
`@<dns_server>`指定查询的DNS服务器,`<dns_server>`为DNS服务器的IP地址或域名
dig [选项] [域名] [查询类型]
用于查询DNS域名解析的命令行工具
dig
常见网络命令
7.10 网络通信原理本节所讲:1、掌握OSI七层模型概念2、掌握TCP/IP模型的概念3、掌握TCP/IP模型分层协议4、掌握对等网络和非对等网络的概念
7.4 1、介绍Linux基础命令的语法格式2、掌握目录操作命令(重点:ls、cd、pwd、mkdir)3、掌握文件操作命令(重点:touch、cat、rm、cp、mv)4、掌握文本编辑命令(重点:vi/vim)5、掌握解压缩命令(重点:tar)6、掌握输出命令echo(重点)
0 条评论
回复 删除
下一页