Linux基础
-
常用windows快捷命令
计算器 : calc 画图:mspaint 查看电脑配置:dxdiag
-
计算机
- 硬件
- 主机
- 存储器:实现记忆存储(ROM、RAM、内存条、硬盘、cd\dvd、磁盘)
- 运算器:负责算术运算、逻辑运算
- 控制器:对信号进行控制
- 外接设备
- 输入设备:键盘、鼠标、麦克风、摄像头等
- 输出设备:显示器、音响、打印机
- 主机
- 软件
- 系统软件
- 操作系统
- 驱动程序
- 应用软件
- 系统软件
- 硬件
SSH原理
SSH命令
ssh 用户名@IP 密码
用户名密码验证方式
1. 客户端发起ssh请求
2. 服务器将公钥发送给客户端
3. 客户端输入用户名密码,通过服务器给的公钥进行加密,发送给服务器
4. 服务器通过自己的私钥对客户端发送的数据进行解密,然后与本地存储的用户名密码进行比对
密钥验证
1. 客户端先生成一对密钥
2. 客户端将公钥复制一份发送给服务器并重命名为authorized_keys
3. 客户端发送一个请求给服务器端,包括用户名和IP
4. 服务器端收到后,就会到authorized_keys中查找,如果有对应的用户明和IP,会随机生成一个字符串,
5. 通过公钥对字符串进行加密,发送给客户端
6. 客户端收到后,会通过私钥对消息进行解密,然后将字符串发送给服务器
7. 服务器接收到字符串后会和之前生成的字符串进行比对,若一致,则不用输入密码
Linux 常用命令
-
rm
rm -r 递归目录 -f 强制删除 -l 提示用户确认
-
mv
- 移动文件或目录,重命名文件或目录
mv [-选项] 原路径 目标路径 -f 目标文件存在时,覆盖 -l 用户确认 -v 显示移动路径
-
进程
PID 进程号 PPID 父进程号 每个进程对应唯一的一个端口号 ps:查看当前窗口正在运行的进程 -ef :系统正在运行的进程 kill:杀死进程 -9 :强制终止 动态进程通过杀死父进程,杀死该进程 eg: kill -9 66666 reboot :重启 shutdown :关机 -h now :立即关机 # 用户名密码 root 123456
-
hostname、which
hostname: 查看主机名 find:查找指定字符串是否存在(全匹配) find 目录 -name "查找的内容" which:查看命令在Linux系统所处于的具体位置或路径 which 命令名
-
grep
grep :模糊查找 -n "字符串" 文件名 -n :显示行号 |: 管道 一个命令的输出作为另一个命令的输入 cat word.txt | grep "A"
-
cat、more
cat:查看文件所有内容 more 快捷键 回车 :按行显示 空格 :按页显示 b :返回上一页 q :退出
-
find
find -name根据文件名查找指定的字符串 -size 根据文件大小查找 find / -size +4k -type 根据文件类型查找 -d 目录 -f 文件
-
echo
echo 打印内容 默认打印到控制台,常常配合重定向使用 重定向符号: > 表示覆盖写入 >> 表示追加写入
-
cp
cp 复制文件 cp 【-选项】 源路径 目标路径 -r 递归目录
-
tar
tar 解压打包 -c 打包 -x 解压 -v 对.gzip结尾的文件打包或解压 -z 显示运行中的信息 -f 指定文件 打包: tar -xcvf 111.tar.gz demo 解包: tar -zxvf 111.tar.gz
-
whoami、who
whoami :查看当前用户名信息 who :查看系统登录用户信息 -q: -u: -m: # 切换用户 su - mylinux # 添加用户 useradd node1 # 设置密码 passwd node1 # 删除用户 userdel -r node1 # 退出 exit # 用户权限 u :用户 g :用户组 o :其他用户 a :全部用户 # 操作权限 r 4 :读权限 w 2 :写权限 x 1 :执行权限 # 修改操作权限 chmod 777 文件名
-
vim 常用快捷命令
包管理器
yum
yum -y(自动下载) install 软件名 # 安装
remove # 卸载
search #搜索
yum install wget
rpm
rpm -q query
-a all
-i info
-l list
-f file
文件上传下载
1、利用SSH工具
2、安装lrzsz
1、rz:上传
2、sz:下载
systemctl控制服务
systemctl stop 停止服务
start 开启服务
# restart 重启服务
status 查看服务状态
enable 开机自启动
disable 禁用开机自启动
NetworkMananger 主网络服务
network 副网络服务
fillwalld 防火墙服务
sshd ssh服务
软连接
ln -s 被链接文件或目录 生成的链接名
不写 -s 就是硬链接
修改时区
# 自动校准时间
yum -y install ntp
# 手动校准时间
ntpdate -u ntp.aliyun.com
# 日期
date -d 字符串时间标记 +格式化字符串
-d 按照给定字符串显示日期,一般用于日期计算
%Y year
%m month
%d day
%H hour
%M 分
%S 秒
date -d "-1 month" "+%Y-%m-%d"
date -d "-31 day" "+%Y-%m-%d"
# 日历
cal 当月
cal -y 整年日历
cal 2018 18年的日历
cal 4 2030 30年4月
网络编程
三要素:
IP地址:唯一标识一台计算机设备
端口:网络数据通信的出入口
网络协议:UDP、TCP、SSH、HTTP、HTTPS等
Shell
-
解释器
- sh
- csh
- Bash
- ksh
-
查看sh
- cat /ec/shells
- echo $SHELL 输出默认
-
shell简单使用
1、创建.sh结尾的文件 2、编写内容 3、授予执行权限 4、执行文件 ./1.sh # 变量 1、用户变量:在编程中使用 2、环境变量:所有程序都能访问环境变量 3、特殊变量: sh 1.sh 参数1 参数2 $0:当前程序名称 $n:表示第n个参数 $#:命令行参数个数 $*:以"参数1 参数2 ..." 形式保存所有参数 # 定义变量 your_name="wj1wj1jwj1j" # 访问变量‘ $your_name ${your_name} # 删除变量 unset your_name # 只读变量 readonly your_name="wj1wj1jwj1j" .bashrc 用户变量位置 /etc/profile 系统变量位置 source .bashrc source /etc/profile # shell字符串 变量名=值 变量名='值' 变量名="值" ' '里面都是普通字符
Linux安装JDK
# JDK.sh
#!/bin/bash
# 解压到指定目录
cd /opt/modules
tar -xzvf jdk-8u65-linux-x64.tar.gz
# 卸载centOS自带的JDK
OLDJDK=`rpm -qa|grep java`
OLDJDK=`echo ${OLDJDK} | sed 's/\.noarch//g'`
# 循环遍历JDK字符串
for loop in ${OLDJDK}
do
rpm -e --nodeps ${loop}
done
# 添加JAVA环境变量
echo "export JAVA_HOME=/opt/modules/jdk1.8.0_65" >> /etc/profile
echo "export PATH=$JAVA_HOME/bin:$PATH" >> /etc/profile
echo "export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar" >> /etc/profile
# 使环境变量立即生效
source /etc/profile
有提示版shell脚本
#!/bin/bash
# 解压到指定目录
cd /opt/modules
tar -xzvf jdk-8u65-linux-x64.tar.gz
# 卸载centOS自带的JDK
OLDJDK=`rpm -qa|grep java`
OLDJDK=`echo ${OLDJDK} | sed 's/\.noarch//g'`
# 是否每次删除命令都提示用户
echo -n "是否每次删除都提示:(y/n)"
ISTIPS=`read istip`
if [ ${ISTIPS} == "n"]
then
# 循环遍历JDK字符串
for loop in ${OLDJDK}
do
rpm -e --nodeps ${loop}
done
else
for loop in ${OLDJDK}
do
echo -n "是否删除${loop}(y/n):"
ISDEL=`read inputstr`
if [ ${ISDEL} == "y"]
then
#删除循环出来的JDK
rpm -e --nodeps ${loop}
elif [ ${ISDEL} == "n"]
then
# 继续下一次循环
echo "您选择不删除"
continue
else
echo "您的输入不合法"
# 继续下一次循环
continue
fi
done
fi
# 添加JAVA环境变量
echo "export JAVA_HOME=/opt/modules/jdk1.8.0_65" >> /etc/profile
echo "export PATH=$JAVA_HOME/bin:$PATH" >> /etc/profile
echo "export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar" >> /etc/profile
# 使环境变量立即生效
source /etc/profile
Mysql安装(Linux)
安装前注意事项
1、MySQL安装方式
1、rpm 安装:
2、GLIBC安装:
3、源码编译安装:
2、卸载mariadb数据库
1、rpm -qa|grep mariadb
2、rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
3、yum -y install 依赖插件
4、yum -y install libaio 安装异步插件
5 rpm -ivh mysql-community-common-8.0.13-1.el7.x86_64.rpm mysql-community-client-8.0.13-1.el7.x86_64.rpm mysql-community-server-8.0.13-1.el7.x86_64.rpm mysql-community-libs-8.0.13-1.el7.x86_64.rpm
3、初始化MySQL
1、随机密码保存位置:/var/log/mysqld.log | grep password
2、删除MySQL所有文件:rm -rf /var/lib/mysql/*
3、初始化数据目录:mysqld --initialize
4、更改文件拥有者与所属组: chown mysql:mysql /var/lib/mysql -R
5、启动MySQL:systemctl start mysqld
6、开启开机自启动:systemctl enable mysqld
6、登录MySQL:mysql -uroot -p
输入1、中查出来的随机密码
7、修改密码
1、alter user user() identified by "123456";
2、set password = '123456';
3、设定用户host:update user set host = "%" where user='root';
8、远程授权:alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
远程登录:cmd:mysql -h 192.168.8.11 -P -u root -p
10、刷新:flush privileges;
# 干净卸载MySQL
见下图
4、干净卸载MySQL
1、关闭MySQL服务:systemctl stop mysqld
2、查找安装MySQL的rpm包:rpm -qa|grep mysql
3、卸载:yum remove 包名
4、查看是否卸载完全:rpm -qa|grep mysql
5、查找MySQL相关目录
1、查找:find / -name mysql
2、删除:rm -rf 查出来的路径
6、删除默认配置、日志
rm -rf /etc/my.cnf
rm -rf /var/log/mysqld.log