Linux入门级别知识详解(二)
Linux
Linux的网络信息
主机名称
- 临时修改
hostname zhangsan(主机名)
- 长久修改
vi /etc/hostname 在此文件中写的内容就是主机名
DNS解析
- 域名解析服务,可以将域名转为IP地址
- DNS域名劫持
- Windows–> C:\Windows\System32\drivers\etc\hosts 此文件最后加入IP和域名即可,如``123.56.138.186 www.baidu.com`访问百度就会访问你配置的IP
- Linux下,
vi /etc/hosts
修改此文件即可
网络相关命令
ifconfig
查看当前网卡的配置信息,需要手动安装此命令yum install net-tools -y
;不下载使用ip addr
也可以。netstat
- 查看当前网卡的配置信息
- 一个机器默认有65536个端口号[0,65535]
ping
查看与目标IP的地址能否连通,如ping www.baidu.com
telnet
查看与目标IP的指定端口能否连通如telnet 192.168.31.44 22
,使用需安装yum install telnet -y
- curl
- 我们所有的资源在网络上都有唯一的定位,可以通过这唯一定位标识指定的资源
curl -X GET http://www.baidu.com
防火墙
防火墙帮助计算机网络于其内外网之前构建一道相对隔绝的保护屏障
#查看防火墙状态 systemctl status firewalld.service #临时停止firewall systemctl stop firewalld.service #禁止firewall开机启动 systemctl disable firewalld.servicefirewall-cmd --state ##查看防火墙状态,是否是running firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令 firewall-cmd --get-zones ##列出支持的zone firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的 firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no firewall-cmd --add-service=ftp ##临时开放ftp服务 firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务 firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务 firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
开启一个端口的操作
# 添加 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
加密算法
不可逆加密算法
- 可以通过数据计算加密后的结果,但是通过结果无法计算出加密数据
- 应用场景用户名或者密码加密后数据库存储(数据库大多数不会存储关键信息的明文,就像很多登录功能的忘记密码不能找回,只能重置)
对称加密算法
- 加密和解密使用相同的密钥
- 生成密钥的算法公开、计算量小、加密速度快、加密效率高、密钥较短
- 应用场景:登录信息用户名和密码加密、传输加密、指令加密
非对称加密
- 非对称加密算法需要一对密钥(两个密钥)
- 公开密钥(publickey)和私有密钥(privatekey)(简称公钥,私钥)。
- 公开密钥与私有密钥生成时是一对
- 用公钥加密只能是对应的私钥解密,同理用私钥加密只能用对应的公钥解密。
- 安全性高,加解密相对速度慢,密钥长计算量大,效率低
- 应用场景:HTTPS(ssl)证书里制作、CRS请求证书、金融通信加密、蓝牙等硬件信息加密配对传输、关键的登录信息验证。
Linux主机间的相互免密钥
可以通过ssh命令免密钥连接到其他主机
生成密钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
如果你想免秘钥登录谁,只需要把自己的公钥传递给对方主机即可,这个秘钥要放在 ~/.ssh/authorized_keys
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.58.201
如果是第一次建立连接,会有主机名与host校验,输入yes即可
在 ~/.ssh/known_hosts 文件记录了以前访问地址(ip hostname)的信息
在访问地址的时候如果没有收录到known_hosts文件中,就需要输入yes
如果以前收录到known_hosts中,直接输入密码即可
解决方案(不校验直接连接)
只有本次生效
Cannot determine realm for numeric host
永久生效修改
/etc/ssh/ssh_config
文件的配置,以后则不会再出现此问题,在其最后添加:StrictHostKeyChecking no UserKnownHostsFile /dev/null
- 相互免密钥原理图
日期与时间
时间命令
查看时区
ll /etc/localtime
查看当前系统时间
date
查看日历
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
如果需要同步本地另一台主机(假设b主机同步a主机的时间)
a主机下修改
vi /etc/ntp.conf
最后追加如下#========权限控制============ restrict default kod nomodify notrap nopeer noquery 拒绝IPV4用户 restrict -6 default kod nomodify notrap nopeer noquery 拒绝IPV6用户 restrict 210.72.145.44 授权国家授时中心服务器访问本地NTP restrict 133.100.11.8 授权133.100.11.8访问本地NTP restrict 127.0.0.1 restrict -6 ::1 restrict 192.168.88.2 mask 255.255.255.0 nomodify 本地网段授权访问 #=========源服务器=========== server cn.ntp.org.cn prefer 指定上级更新时间服务器,优先使用这个地址 #=========差异分析=========== driftfile /var/lib/ntp/drift keys /etc/ntp/keys
a主机下,开启本地NTP服务器
systemctl start ntpd.service
b主机下同步a主机时间
ntpdate 192.168.88.100(a主机ip)
用户-组-权限
用户
- 新增用户,会创建同名的组和家目录
useradd zhangsan(用户名)
- 设置密码
passwd zhangsan
- 删除用户,级联删除家目录和组
userdel -r zhangsan(用户名)
- 修改用户信息
usermod -l lisi(新名) zhangsan(旧名)
修改用户名,家目录和组名称不会被修改usermod -L zhangsan
锁定用户名usermod -U zhangsan
解锁用户名
cat /etc/shadow
展示所有用户的用户名和密码cat /etc/passwd
展示用户名,编号,组编号,家目录,命令,目录- 切换账户
su zhangsan
组
- 创建组
groupadd spring
- 删除组
groupdel spring
- 修改组名字
groupmod -n redis(新名) spring(原名)
- 查看用户对应的组
groups
groups redis
- 修改用户的组
usermod -g lucky(组名) spring(用户名)
修改主组usermod -G lucky(组名) spring(用户名)
修改附属组,可加多个附属组
权限
查看文件的权限
- d 文件类型
- rwxr-xr-x,权限列表,三组权限每组三个字母
- r:读取权限
- w:写入权限
- x:执行权限
- -:没有权限
- root(第一个):所属用户(属主)
- root(第二个):所属的组(属组)
权限的UGO模型
- 三组权限,属主的权限(u):属组的权限(g):其他的权限(o)
- 所以说修改文件的权限,可以从rw和ugo两个方面进行修改
修改文件的权限
- 修改文件所属
chown user(用户名) test.txt(文件)
chown user:zhangsan(组名) test.txt
chown -R user:zhangsan temp(文件夹)
- 修改文件的权限
- ugo+rwx
权限赋予
我们可以将管理用的权限分配给普通用户,文件位置在
/etc/sudoers
,修改这个文件需要使用命令visudo
,在第99行之后追加如下zhangsan(用户名) ALL=(root) /sbin/useradd(需要给的权限) zhangsan ALL=(root) /sbin/
使用:
su zhangsan
sudo chkconfig iptables off
管道与重定向
管道
- 将前面的命令结果作为参数传递给后面的命令
- grep 强大的文本搜索工具 如:
cat profile | grep if
重定向
- 改变数据输出的位置,方向
- 写出方式
>
覆盖>>
追加 - 写出类型
1
标准输出2
错误输出2>&1
全部输出
Linux的系统进程
进程信息
ps -ef
查看所有进程- UID 所属用户
- PID当前进程编号
- PPID当前进程编号的父进程编号
ps -ef | grep redis
查看redis的进程ps -aux 查看所有进程的所有信息
top 查看当前服务器内存使用率
后台进程
只需要在正常的命令后面添加一个
&
符号 如ping www.baidu.com >> baidu &
将ping百度的标准信息重定向到baidu这个文件中,且后台运行这个命令jobs -l
可以查看当前的后台进程,但是只有当前用户界面可以获取到nohup
可以防止后台进程被挂起
杀死进程
- kill -9 进程号
Linux软件安装
环境变量
当我们执行一个命令时,默认从当前路径开始查找,如果当前路径找不到对应的命令文件,从环境变量 P A T H 查 找 ; PATH查找; PATH查找;PATH配置文件在
/etc/profile
window 路径与路径之间用;(分号)连接; Linux路径与路径之间用:(冒号)连接
Linux每次修改完成之后,需要重新加载文件 source /etc/profile
软件的安装方式
- 压缩包安装,解压就可以使用
- 使用安装包安装(Wubdiws-exe; Linux-rpm)
- 自己下载安装包
- 使用统一的软件帮助我们安装
- 通过源码安装
RPM安装(以安装JDK为例)
RedHat Package Manager,它属于红帽的一种包管理方式(独有的)
查询软件安装包
rpm -qa
查询所有的安装包rpm -qa | grep jdk
查询指定的安装包(注意要使用安装后的名字)
安装软件
rpm -ivh jdk-7u67-linux-x64.rpm
卸载
rpm -e jdk-1.7.0_67-fcs.x86_64
手动配置JAVA的环境变量
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_67 export PATH=$JAVA_HOME/bin:$PATH
重新加载配置文件
source /etc/profile
压缩包解压安装(以安装tomcat为例)
- 上传压缩文件到linux
- 解压文件
tar -zxf apache-tomcat-7.0.61.tar.gz
- 拷贝到
/opt/bdp
目录下cp -r apache-tomcat-7.0.61 /opt/bdp
- 启动tomcat
cd /opt/bdp/apache-tomcat-7.0.61/bin/
./startup.sh
YUM安装
yum的作用
- 可以帮助我们管理rpm包(类似于maven)
- 可以帮我们安装软件
- 如果软件有其他依赖会帮我们安装依赖后在安装软件
yum命令
- search 查询命令或者软件
- info 查看包的信息
- list 查询安装的rpm包
更换yum源
- 首先安装wget
yum install wget -y
- 将系统原始配置文件失效
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- 使用Wget获取阿里yum源配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- 清空以前的yum源的缓存
yum clean all
- 获取阿里云的缓存
yum makecache
安装mysql
#----------安装Mysql依赖【perl net-tools】
yum install perl net-tools -y
#----------卸载mariadb
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
#----------安装mysql
tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm
#----------启动mysql
systemctl start mysqld
#----------查找密码并登陆Mysql
cat /var/log/mysqld.log | grep password
mysql -u root -p
#----------修改Mysql密码 8.0版本输入命令:
set global validate_password.policy=LOW;
set global validate_password.length=6;
#更改加密方式
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
#更新用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
#刷新权限
FLUSH PRIVILEGES;
#----------修改Mysql密码 5.7版本输入命令:
set global validate_password_policy=LOW;
set global validate_password_length=6;
alter user root@localhost identified by '123456';
#----------修改Mysql链接地址
use mysql;
update user set host='%' where user = 'root';
commit;
exit;
systemctl restart mysqld;
#----------使用Navicat连接Mysql测试
Linux的三剑客
普通剑客
- cut 用指定的规则来切分文本
- sort 对文本中的行进行排序
- wc 统计单词的数量
剑客1号:grep
- 可以对文本进行搜索
剑客2号:sed
- sed 是Stream Editor(字符流编辑器)的缩写,简称流编辑器
剑客3号:awk
- awk是一门语言
Linux入门级别知识详解(二)相关推荐
- C语言-入门级别函数详解
C语言-入门级别函数详解 写在开始 关于函数 1. 函数的定义形式 2.函数的声明 3. 返回语句 4.函数参数 4.1 形式参数(传值调用) 4.2 实际参数(传址调用) 4.3无参数 5.函数的调 ...
- 华为linux基础入门,Linux入门篇 —— Shell详解
Shell 详解 Shell 简介 Linux精髓在于命令行操作 Shell是一种特殊的程序 是内核与用户的一种接口 Shell命令解释器 Shell一种解释性的语言(内部命令/外部命令) 内部命令: ...
- SQL入门基础知识详解
////// 导读:科学技术的快速发展正在改变我们的社会,也在不经意间改变着未来人们的职业规划.据媒体预测,数据分析将是未来最重要的工作技能之一.或许不久的将来,一家企业中80%的岗位,都需要数据分析 ...
- Linux进程基本知识详解
目录 前言 一.描述组织进程 1.描述进程 2.task_struct 2.1概念 2.2内容分类 3.组织进程 二.查看进程 三.通过系统调用创建进程 1.fork函数 2.父子进程分流执行 四.进 ...
- linux权限drwx,linux权限基础知识详解
祥哥今天整理一下Linux系统中的权限到底是什么?什么是775?什么又是777?664又代表了什么? 1.查看权限可以使用ls -l命令ls -l 我们以root文件夹为例来说明: drwx----- ...
- linux命令--VI命令详解(二)
光标移动 h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移动一个字符 k 或 向上箭头键(↑) 光标向上移动一个字符 l 或 向右箭头键(→) 光标向右移动一个字符 ...
- Windows API-GDI入门基础知识详解(1)
什么是GDI? GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出. 在Wind ...
- Windows API-GDI入门基础知识详解 来源: PConline.com.cn
什么是GDI? GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出. 在Wind ...
- SQL与NoSQL数据库入门基础知识详解
这几年的大数据热潮带动了一激活了一大批hadoop学习爱好者.有自学hadoop的,有报名培训班学习的.所有接触过hadoop的人都知道,单独搭建hadoop里每个组建都需要运行环境.修改配置文件测试 ...
最新文章
- [BZOJ 2002][Hnoi2010]Bounce 弹飞绵羊(分块)
- shell脚本--02循环与条件
- python 写入网络视频文件很慢_用Python将数据写入LMDB非常慢
- 两张超级大表join优化
- 区块链BaaS云服务(21)腾讯CCGP ”跨链协议 AMDP“
- C++编程思想:父类函数隐藏
- 各种Java实现的常用排序算法
- ASP.NET MVC中的模型装配 封装方法 非常好用
- Serverless 架构到底要不要服务器?
- 一帮一python_[python]L1-030 一帮一 (15分)
- 一个物理CPU如何划分成多个虚拟CPU
- webpack的css样式文件加载依赖
- BZOJ 1725: [Usaco2006 Nov]Corn Fields牧场的安排
- Java 18 就要来了,新功能很多!
- ubuntu更新pip
- Java 链表元素如何从键盘输入 面试 笔试高频
- Network Mapper 嗅探工具
- 阿里根据截图查到泄露者,这样的技术是如何做到的?
- 上班族程序员怎么减肥
- GeoServer发布tif和Img格式影像(可去黑边)