Linux
2021-11-11 23:13:01 2 举报
AI智能生成
计算机硬件软件体系、基础命令、Linux的文件系统、Linux的网络信息、日期和时间、用户-组-权限、管道与重定向、Linux的系统进程、Linux的软件安装、Linux 的三剑客
作者其他创作
大纲/内容
计算机处理的数据和指令一律用二进制数表示
顺序执行程序
计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成
冯 诺依曼体系结构
输入设备
输出设备
随机存储器
RAM
只读存储器
ROM
存储器
运算器
处理器
CPU
计算机硬件组成
IP地址IPADDR
子网掩码NETMASK
默认网关GATEWAY
域名服务器DNS
网络连接概念
host-onboy(主机模式)
bridged(桥接模式)
NAT(网络地址转换模式)
网络连接模式
概念
查看自己虚拟网卡地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
重启网卡重新加载配置文件
修改网络配置信息
网络
配置常见参数
无网络
VMNet1
真实网络和虚拟机网络是隔离
host-onboy主机模式
分支主题
虚拟机和真实主机共享同一个网络
bridged桥接模式
VMNet8
给虚拟机构建一个单独的子网络
NAT模式网络地址转换
图例
虚拟网络的四种连接方式
计算机硬件软件体系
Linux命令与参数之间必须用空格隔开
Linux命令是区分大小写的
-bash: abcd: command not found
命令敲错了
命令未安装
如果输入错误的命令
注意
whereis 查询命令文件的位置
file 查看文件的类型
who 查看当前在线的用户
whoami 我是谁
pwd 我在哪
uname -a 查看内核信息
echo 类似于sout syso ,打印语句
clear 清屏
history 历史
常用的命令
如果文件的开始是.说明当前文件时一个隐藏文件
.指向当前目录
..指向当前目录的上级目录
.点
$PATH Linux 的环境变量
说明这是一个变量
$
通配符
*星号
当前用户的家目录
每个用户的家目录是不同的
root用户家目录在系统根目录下
其他用户的家目录在/home/用户名为家目录
~
Linux的命令与参数用空格隔开
空格
整个Linux的文件根目录
/
如果是单词 一般加--
如果是字母或者缩写 一般加-
命令的参数
特殊字符
基础命令
操作系统如何管理文件,内部定义了一些规则或者定义
什么是文件系统
将整个文档加载到内存中,并进行一次性显示
cat
同cat,但为逆向显示
tac
分页查看文档内容
more less
head -5 num.txt
从文章开始读取n行
head
tail -5 num.txt
从文章末尾读取n行
利用管道只读取第N行
管道的作用就相当于把前面的结果以参数的方式传递给后面的命令
head -3 num.txt | tail -1
inode 当前文件在文件系统的唯一标识,类似于ID
它会监听指定inode 的文件数据变化,但是当文件被删除后,即使再创建同名文件,inode也会发生变化,于是监听失败
-f 监控的是inode
它会监听指定名字的文件,如果文件被删除后,重新创建,他也会重新监听新文件的数据变化,监听不受影响
-F 监控的是文件名
-f 与 -F 的区别
tail -f num.txt
读取新增数据
tail
查找指定的文件
find /etc -name num.txt
find 要查找的范围 -name 名字
find
查看文件内容
改变当前工作目录
cd
显示出指定目录下所有的文件
-普通文件
d文件夹
l软连接
文件的类型
-rw-r--r-- 1 root root 441 Oct 26 12:03 num.txt
ls ll
创建文件目录
mkdir -p a/b/c/d/e/f 会自动创建文件父目录
mkdir
rmdir lucky/1ls/
删除空文件夹
可以安全的删除文件目录
rmdir
拷贝文件或者文件目录
cp num.txt /opt
cp 源文件 目标文件
cp -r lucky /opt
拷贝文件下的所有内容
拷贝文件夹
cp
mv a1 /opt
移动文件或文件夹
mv a abcd
修改文件名
mv
rm num.txt
rm -r abcd
删除文件
rm -rf abcd 谨慎使用,从删库到跑路
删除文件夹
rm
如果没有就创建一个文件
如果该文件已经存在,修改文件的三个时间,将三个时间改为当前时间
touch
查看文件的状态
access 访问时间
modify 修改文件内容时间
文件大小,文件所有者,文件权限
对于文件的描述信息
change 修改文件元数据信息时间
时间
stat
创建文件的链接
软链接是建立了另一个新的独立的文件,它指向源文件,因为源文件没了,所以它就不能正常指向了
软连接和原始文件不是同一个文件
原始文件删除后,软连接同样失效
ln -s lucky/ si
实例
有点类似Windows的快捷方式
例如
软(符号)连接
In lucky hi
在删除源文件的时候,系统则将链接数减1,当链接数为0的时候,inode就会被系统回收,文件的内容才会被删除
硬链接和原始文件使用文件系统中的同一个文件
如果你害怕一个文件被别人误删,你可以使用硬链接保护这个文件
使用场景
图例‘
硬链接
In
常用命令
Linux的文件操作
警告信息
:recover 覆盖修改
异常退出后,目录会出现一个.开头的隐藏文件,删掉就不会报错
解决方法
1. 编辑中异常退出,再进入的警告界面
Linux中Ctrl+S为锁屏
问题原因
Ctrl+Q解锁
2. 编辑后习惯性,Ctrl+S保存,无法操作
新手常见错误
vi num.txt
正常打开
vi +8 num.txt
打开文件,并将光标置于第8行
vi + num.txt
n下一个,N上一个
打开最后一行
vi +/if num.txt
打开指定搜索单词的位置
打开文件
任何的按键都是快捷键
编辑模式(默认)
内容正常输入,按下什么是什么
输入模式
我们可以直接在Vi中输入特定的命令
末行模式
三种模式
切换方式
三种模式切换
yw 复制一个单词
3yw 复制三个单词
复制单词
yy 复制一行
3yy 复制三行
复制行
复制
p 粘贴
6p 粘贴六次
粘贴
dd 删除一行
3dd 删除三行
删除行
dw 删除一个单词
3dw 删除三个单词
删除单词
删除
u 回退到前面的操作
点“.” 回退u执行的操作
撤销
G最后一行
gg 跳转到第一行
例如:9gg
数字gg 跳转到第数字行
页面跳转
I行首
A行尾
行首位跳转
w 下个单词
数字w
单词跳转
跳转
x 剪切
3x 剪切三个字符
剪切
r 替换,然后输入一个字符替换
3r 替换三个
替换
hjkl 方向键
方向键
ZZ
保存并退出
ctrl+s 锁屏 ctrl+q 解锁
其它
编辑模式
set nu 设置行号
set nonu 取消行号
行号
w
保存
q
退出
wq 保存退出
强制退出不保存
q! 强制
搜索指定的字符串
/usr n向下查找,N逆向查找
/pattern
:s/11/222/
s/被替换内容/替换后内容/
替换第一个
:s/e/11/g
s/被替换内容/替换后内容/g全局
替换所有
替换指定行
:g/op/s//222/g
g/被替换内容/s//替换后内容/g全局
替换全文
替换字符串
三种模式常用命令
VI和VIM编辑器
yum -y install lrzsz
需要手动安装
将文件从Windows传到Linux
rz
将文件从Linux传到Windows
sz
lrzsz
一款软件,常用的文件传输方式
xftp
Window--Linux
scp 源数据地址(source) 目标数据地址(target)
scp apache-tomcat-7.0.61.tar.gz root@192.168.31.44:/opt
scp root@192.168.31.44:/opt/apache-tomcat-7.0.61.tar.gz ./
-r 级联传输
scp -r apache-tomcat-7.0.61 root@192.168.31.44:/opt
Linux--Linux
计算机间的数据传输
tar -zx(解压)v(过程)f(文件)lucky.tar.gz -C /opt(解压后目录)
-C 指定解压缩的文件目录
解压缩
tar -zc(压缩)f(文件)tomcat.tar.gz(压缩后的名字) apache-tomcat-7.0.61(源文件)
压缩
tar
yum -y install zip unzip
安装
zip -r tomcat.zip apache-tomcat-7.0.61
unzip tomcat.zip
zip和unzip
文件压缩
df -h
分区信息
du -h --max-depth=1 apache-tomcat-7.0.61
指定文件目录大小
一个特殊分区,以硬盘代替内存
当内存使用满的时候,可以将一部分数据写出到swap分区
swap
swap分区
Linux的文件系统
exit退出登录再查看
hostname bdp
临时修改
vi /etc/hostname
永久修改
主机名称
域名解析服务
可以将域名转化为IP地址
window --> C:\\Windows\\System32\\drivers\\etc\\hosts
123.56.138.186 www.baidu.com
123.56.138.186 www.taodao.com
DNS域名劫持
vi /etc/hosts
192.168.31.101 bd1601192.168.31.102 bd1602
虚拟机配置hosts文件(主机IP绑定主机名)
修改主机域名
DNS解析
查看当前网卡的配置信息
这个命令属于net-tools中的一个命令(手动安装)
如果没有ifconfig,可以使用ip addr 临时代替
ifconfig
查看当前网络的状态信息
这是一个逻辑的概念,将来我们需要使用程序监听指定的端口,等待别人的访问
netstat -anp
netstat -r 核心路由表 == route
netstat
查看与目标IP地址是否能够连通
ping
查看与目标IP的指定端口是否能够连通
yum install telnet -y
telnet 192.168.31.44 22
telnet
restful 我们所有的资源都在网络上有唯一的定位
那么我们可以通过这个唯一定位标识指定的资源
http://localhost:8080/lucky/user.action/666
curl -X GET http://www.baidu.com
curl
网络相关命令
防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术
在centOS7+中 使用firewalld代替以前的 iptables ;
firewall-cmd -zone=public --add-port=80/tcp --permanent
添加
firewall-cmd --reload
重新载入
firewall-cmd --zone=public --query-port=80/tcp
查看
firewall-cmd --zone=public --remove-port=80/tcp --permanent
开启一个端口的正确操作
防火墙
可以通过数据计算加密后的结果,但是通过结果无法计算出加密数据
Hash算法常用在不可还原的密码存储、信息完整性校验
文档、音视频文件、软件安装包等新老摘要对比是否一样(接收到的文件是否被修改)
用户名或者密码加密后数据库存储(数据库大多数不会存储相关信息的明文,就像很多登录功能的忘记密码不能找回,只能重置)
应用场景
123456
e10adc3949ba59abbe56e057f20f883e
md5(md5(123456))-----md5(654321)
案例
不可逆加密算法
加密和解密使用相同的密钥
特点
DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
代表性算法
生成密钥的算法公开,计算量校,加密速度快,加密效率高,密钥较短
优点
双方公共的密钥,有一方密钥被窃取,双方都受影响
如果每个都生成不同密钥,则密钥数量巨大,密钥管理有压力
缺点
登录信息用户和密码、传输加密、指令加密
原文:今晚八点学校小树林见
密钥: love
7gjM6FhIc89ACoel+jJ3VM26XGAdSlaHTj5NYg4VkKA=
图文
对称加密算法
公开密钥(publickey)和私有密钥(privatekey)(简称公钥,私钥)。
公开密钥与私有密钥生成时是一对
用公钥加密只能是对应的私钥解密,同理用私钥加密只能是对应公钥解密
非对称加密算法需要一对密钥(两个密钥):
RSA、ECC、Diffie-Hellman、El Gamal、DSA(数字签名用)
安全性高(几乎很难破解)
加解密相对速度慢、密钥长,计算量大、效率低
HTTPS(ssl)证书里制作、CRS请求证书、金融通信加密、蓝牙等硬件信息加密配对传输、关键的登录信息验证。
http://tool.chacuo.net/cryptrsaprikey
在线加密网址
非对称加密算法
加密算法分类
可以通过ssh命令免密钥连接到其他主机
说明
相互面秘钥工作流程
在 ~/.ssh/known_hosts 文件记录了以前访问地址(ip hostname)的信息
在访问地址的时候如果没有收集到know_hosts文件中,就需要输入yes
如果以前收录到known_hosts中,直接输入密码即可
如果是第一次建立连接,需要输入yes
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
生成密钥
如果你想免密登录谁,只需要把自己的公钥传递给对方主机即可
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.58.201
这个密钥要放在 ~/.ssh/authorized_keys
需要输入密码
流程描述
生成密钥对
传递公钥给目标主机
主要代码
主机间的相互免密钥
遇到问题
Cannot determine realm for numeric host 无法确定数字主机的域
错误原因
ssh -v -o GSSAPIAuthentication=no root@192.168.88.201
本次
修改/etc/ssh/ssh_config文件的配置,以后则不会再出现此问题
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
最后面添加:
所有
解决办法
主机名与Host校验
Linux的网络信息
/etc/localtime -> ../usr/share/zoneinfo/America/Los_Angeles
ll /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
查看时区
查看当前系统时间
date
cal 2020
cal查看日历
date -s 11:11:11
date -s 2019-11-11
date -s '2019-11-11 11:11:11'
修改时间
时间命令
yum install ntp -y
首先安装时间同步的服务
ntpdate cn.ntp.org.cn
自动同步网络时间中心
vi /etc/ntp.conf
配置内容
systemctl start ntpd.service
开启本地NTP服务器
NTP服务器
ntpdate 192.168.88.100
同步时间
自动同步网络时间中心本地NTP服务
日期自动同步
日期和时间
useradd luckboy
会创建同名的组和家目录(/home下)
新增用户
passwd luckyboy
设置密码
userdel -r luckyboy
级联删除家目录和组
删除用户
修改用户名
家目录和组名称是不会被修改的
usermod -l 新名 旧名
锁定用户名
usermod -L luckyss
解锁用户名
usermod -U luckyss
修改用户信息
用户名和密码
cat /etc/shadow
用户名,编号,组编号,家目录,命令,目录
6.5系统0~499 普通 500+
7.6系统0-999 普通 1000+
cat /etc/passwd
常用文件
su luckyboy
切换用户
用户
groupadd lucky
创建组
groupdel lucky
删除组
groupmod -n bdp lucky
修改组名字
groups
当我们创建用户的时候,会默认创建一个同名的主组
groups bdpboy
查看用户对应的组
usermod -g lucky bdpboy(主组)
usermod -G lucky bdpls(附属组)
修改用户的组
组
drw-r-xr-x 9 n1 m1
r:读取权限
w:写入权限
x:执行权限
-:没有权限
三组权限,每组3个字母
root:所属用户(属主)
root:所属的组(属组)
查看文件权力
三组权限
属主的权限:属组的权限:其他的权限
所以说:将来修改文件的权限,可以从rwx和ugo两个方面进行修改
权限的UGO模型
所属用户
chown n1 /var/lucky1
chown n1:m1 /var/lucky2
chown -R n1:m1 bdp
修改文件夹时,让子目录迭代修改
当用户的组被修改之后,需要重新登录才能获取新组的权限
chgrp m2 lucky3
修改文件所属
chmod o+w lucky4
chmod ug+rw lucky4
chmod ugo-rw lucky4
chmod 664 lucky4 ->(rw- rw-r--)
权限rwx分别对应数组 4 2 1
修改文件的rwx
修理文件的权限
权限
修改权限
图解
我们可以将管理用户的权限分配给普通用户
作用
vim /etc/sudoers
配置文件位置
visudo
修改 Line 99
相当于从root继承useradd权限
n1 All=(root) /sbin/useradd
从root继承sbin下所有执行权限
n1 All=(root) /sbin/*
但是修改这个文件需要使用命令
su n1
sudo chkconfig iptables off
如何使用
权限赋予
用户-组-权限
将前面命令的结果作为参数传递给后面的命令
强大的文本搜索工具
cat profile | grep if
is / | grep ^t
grep
管道
改变数据输出的位置,方向
标准输出
ls / 1> lucky
ls / > lucky
错误输出
ls abcd 2>lucky
0 in 1 out 2 err
ls / 1>> lucky
> 替换, >> 追加
ls /etc /abc >lucky 2>&1
2>&1 顺序不能乱
ls /etc /abc >> lucky 2>&1
结合使用
ls /etc /abc >> /dev/null 2>&1
信息黑洞
重定向
find / -name "*.log" -mtime -30 -size 1k -delete
-name 根据文件或者正则表达式进行匹配
-mtime :文件最后一次修改时间。
k —— 千字节
-1k:小于1KB
-size:根据文件大小进行匹配
-delete:删除匹配文件
参数
方法一
find / -size +3M -mtime -30 -name "*.log" | xarg rm -rf
方法二
1、查找根路径下*.log结尾的大于1KB的最近一个月的文件,并将这些文件删除
netstat -anp | grep 80 kill -9 xxxxx
2、查找80端口被占用的进程号,并杀死该进程
练习
管道与重定向
UID PID PPID C STIME TTY TIME CMD
UID 所属用户
PID 当前进程编号
PPID 当前进程编号的父进程编号
ps -ef
ps -ef | grep redis
所有信息
ps -aux
ps -aux --sort -pcpu
当前服务器内存使用率
top
子主题 6
进程信息
ping www.baidu.com << baidu &
只需要在命令的后面添加一个 & 符号
实现
可以查看当前的后台进程
但是只有当前用户界面可以获取到
jobs -l
nohup ping www.baidu.com >> baidu 2>&1 &
nohup 可以防止后台进程被挂起
后台进程
kill -9 进程号
杀死进程
Linux的系统进程
当我们执行一个命令的时候,默认从当前路径开始查找
如果当前路径找不到对应的命令文件,从环境变量$PATH查找
$PATH的配置文件在 /etc/profile
window 路径与路径之间用 ; (分号)连接
Linux路径与路径之间用 : (冒号) 连接
source /etc/profile
Linux每次修改完成之后,需要重新加载配置文件
环境变量
解压就可以使用
使用安装包安装(window-exe Linux-rpm)
通过源码安装
RPM安装
压缩包解压安装
YUM安装
安装方式
软件的安装方式
rpm -ivh jdk-7u67-linux-x64.rpm
通过RPM命令安装软件
rpm -qa | grep jdk
查询软件
rpm -e jdk-1.7.0_67-fcs.x86_64
卸载
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67 export PATH=$JAVA_HOME/bin:$PATH
重新加载配置文件
需要手动配置java的环境变量
tar -zxf apache-tomcat-7.0.61.tar.gz
-C 解压至指定目录
解压文件
mkdir -p /opt/lucky
cp -r apache-tomcat-7.0.61 /opt/bdp
拷贝到/opt/bdp目录下
cd /opt/bdp/apache-tomcat-7.0.61/bin/
./startup.sh
启动tomcat
可以帮我们管理RPM包
可以帮我们安装软件
如果软件有其他依赖,会帮我们安装依赖在安装软件
类似于Maven
yum的作用
search 查询命令或者软件
查看包的信息
info
查询安装的rpm包,或者只查询某一周
list /list jdk
yum的命令
yum install wget -y
1、首先安装wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、将系统原始配置文件失效
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
Centos-6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
Centos-7
3、使用wget获取阿里yum源配置文件
yum clean all
4、清空以前yum源的缓存
yum makecache
5、获取阿里云的缓存
更换yum源
https://downloads.mysql.com/archives/community/
Mysql的下载地址
yum install perl net-tools -y
1、安装Mysql依赖【perl net-tools】
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
2、卸载mariadb
tar -xvf mysql-8.0.25-1.el7.x86_64.rpm-bundle.tar
解压
rpm -ivh
顺序不能乱:commom、libs、client、server
3、安装mysql
systemctl start mysqld
4、启动mysql
cat /var/log/mysqld.log | grep password
查找密码
mysql -u root -p
登录
5、查找密码并登录Mysql
set global validate_password_policy = LOW;
set global validate_password_length = 6 ;
alter user root@localhost identified by '123456' ;
5.7版本
mysql> set global validate_password.policy=LOW;
mysql> set global validate_password.length=6;
修改密码格式
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
更改加密方式
mysql> FLUSH PRIVILEGES;
刷新权限
8.0版本
6、修改密码
mysql> use mysql;
1、使用数据库
mysql> update user set host='%' where user = 'root';
2、更新
mysql> commit;
3、提交
mysql> exit;
4、退出
7、修改Mysql连接地址
systemctl restart mysqld;
8、重启mysql
检测是否成功
9、使用Navicat连接Mysql
安装流程
(1)防火墙没有释放3306端口
Navicat连接mysql 可能会遇到的问题
安装MySQL数据库
Linux的软件安装
用指定的规则来切分文本
-d:指定字段分隔符。以':'分隔,进行切割
-f:提取指定字段,1,2,3取三段
cut
对文本中的行进行排序
sort lucky
对每一行的数据进行切分,按照第二列进行排序
-t<分隔字符>:指定排序时所用的栏位分隔字符;
sort -t' ' -k2 lucky
逆序
-r:以相反的顺序来排序;
sort -t' ' -k2 -r lucky
按照数值大小进项排序,如果有字母,字母在前
-n:依照数值的大小排序;
sort -t' ' -k2 -n lucky
sort
统计单词的数量
wc lucky
4 15 79 lucky
输出
-l line
-w word 以空格来分割单词
-c char
wc
普通剑客
可以对文本进行搜索
从文档中查询指定的数据
grep adm passwd
grep bdp passwd lucky
同时搜索多个文件
grep -n bdp passwd
显示匹配的行号
grep -nvi root passwd --color=auto
显示不匹配的忽略大小写
grep -E "[1-9]+" passwd --color=auto
使用正则表达式匹配
剑客1号:grep
sed时Stream Editor (字符流编辑器)的缩写,简称流编辑器
Sed软件从文件或管道中读取一行,处理一行,输出一行;再读取一行,再处理一行,再输出一行...
一次一行的设计使得sed软件性能很高
vi命令打开文件是一次性将文件加载到内存
https://www.cnblogs.com/chensiqiqi/p/6382080.html
了解即可
10 第十行
m~n-->从m行开始,依次累加n
/bdp/ -->匹配到bdp的行
行的选择模式
sed '2a luckyisgood' passwd
打印到控制台
sed '2i luckyisgood' passwd
直接修改到文件
sed -i '2a luckyisgood' passwd
增
删
sed '3~1c hehehe' passwd
整行替换
字符替换
改
操作
剑客2号:sed
它不是一个剑客,它是一门语言
https://www.cnblogs.com/chensiqiqi/p/6481647.html
awk -F ":" 'NR>=2&&NR<=6' /etc/passwd
模式与动作
剑客3号:awk
Linux 的三剑客
Linux
0 条评论
下一页