1)服务器:本质就是计算机
硬件:性能优越
软件:操作系统
2)桌面:
dos→windows
unix→mac linux
3)服务端:
windows
linux
OS,管理硬件和软件资源的程序
1)开源免费的的类unix操作系统,主要用于服务器端
开源:开放源代码(可以看到底层代码)
mysql:GPL(开源软件许可证)
2)支持多用户、多任务、支持多线程和多CPU
3)linux兼容unix常用的工具、应用程序和网络协议
1973年,unix产生(闭源、收费)
1983年,理查德·斯托曼发起自由软件运动(GNU计划)
GPL:GNU 通用公共许可证,可以自由“使用、复制、修改、发布”
1990年,整个GNU计划已经产生很多自由软件,GCC(编译器)bash(命令行界面)等
1991年10月5日,linux(内核)在GPL许可证下正式发布
linux内核:linus,http://www.kernel.org
1992年linux内核和GUN软件正式结合,形成了GUN/Linux操作系统,简称linux操作系统
分时操作系统
多数网络协议支持(http,ftp,sftp,smtp,ssh等)、方便的远程管理
强大的内存管理和文件系统管理(一切皆文件)
安全性和稳定性
内核:主要提供系统服务(不能被直接调用)
shell:壳,接口/界面
命令行shell——linux:sh,bash
Windows:cmd
图形化shell——linux:gnome,kde
内核:硬件和软件进行交互的平台,主要提供系统服务(不能被直接调用):内存,io,文件系统,进程管理
发行版:内核+外围基础软件(商业公司/社区)
REDHAT:RHEL ENTOS
DEBIAN:DEBIAN UBANTU
虚拟机:利用虚拟化技术来模拟完整的计算机系统
vmware,virtualbox(oracle)
略
文件系统确定数据存储的方式
windows:NTFS
linux:centos6 ext4 / centos7 xfs
目录树:目录+普通文件
linux操作系统没有文件扩展名称,添加后缀只是为了方便管理
[root@hadoop01 Decstop]#
【当前用户@主机名称 当前位置】 #:管理员 $:普通用户
命令格式:
命令关键字 [选项] [参数]
选项格式:
短格式 -单词简写 ls -a
长格式 --单词全拼 ls --all
组合 ls -a -l => ls -al
man
使用q退出
- 基本格式:cd 目录(绝对路径/相对路径)
- cd directory切换到当前目录下的子目录
- cd .. 返回上一级目录
- cd ../.. 返回上两级目录
- cd ~/cd:返回当前用户的家目录
- cd -:返回到上次的目录
ls [选项] [目录] 展示指定目录的内容
ls:展示当前目录内容
-l:查看文件详细情况(可查看文件类型) 别名:ll
-a:显示所有文件(包含隐藏文件)
-A:显示所有文件(.和..不展示)
-h:友好易读的方式展示,必须和-l一起使用 ll -h
-R:递归展示所有文件
du 文件
-a:展示文件大小
-p级联创建
cp 源文件 目标文件
-i 覆盖时提示
-f 强制覆盖
-r 递归复制
mv 源文件 目标文件
-i 覆盖时提示
-f 强制覆盖
-r 递归复制
-u 目标文件不存在,源文件比目标文件要新的时候才移动
rm 目标文件
-i 删除时提示
-f 强制删除
-r 递归删除整个目录树
-rf 递归强制删除
-p级联删除
-n 编号
-n 编号
-n number 指定查看行数
-n number 指定查看行数
-f 显示最新追加内容
-e: 识别字符串中的特殊符号,但是后面的内容需要加上双引号或者单引号 \n \t
-n: 不换行输出
echo ${PATH}:输出变量
>: 重定向
>覆盖
>>追加——标准输出,等于>>1
ln 文件 链接文件
硬链接:
软连接: -s 更加类似于windows的快捷方式
alias la='ls -a -l':设置别名
unalias la:取消别名
文本编辑器,类unix操作系统自带文本编辑器,vim是增强版本(不一定自带)
#####如何使用
格式:vi 文件
命令模式
插入模式
底行模式: w:保存 q:退出 !:强制退出
1.1.1光标命令
w(W):单词首字母向后移动(大写忽略符号)
b(B):单词首字母向前移动(大写忽略符号)
e(E):单个字符
1.1.2操作命令
1.2.1查找和替换
1.2.2替换格式
:开始行,结束行 s/旧字符串/新字符串/g
ifconfig:操作网络接口(centos6,centos7:ip addr)
ifconfig:查看网络接口信息(ip地址,mac地址,子网掩码...)
-a:查看所有的,包含停用的
ifconfig 网络接口名称 up/down:启动/禁用网络接口
ping:查看网络的连接状态
host:通过域名查找ip
netstat:查看进程端口的占用情况
netsat -nltp:不显示别名/正在监听/tcp协议/显示程序信息
宿主机和虚拟机之间进行通讯三种模式:
a、桥接模式:桥接模式就是将主机网卡与虚拟机的虚拟网卡利用虚拟网桥进行通讯
b、NAT模式:
①虚拟交换机和虚拟网卡(vmnet8)连接实现虚拟机连接宿主机;
②虚拟交换机和虚拟网卡利用NAT设备连接internet实现网络的访问
c、仅主机模式
修改NAT模式
配置一个静态IP,地址为192.168.2.101
重启网络服务 service network restart
hostname:查看主机名称
hostname [名称]:修改主机名(临时的)
vim /etc/sysconfig/network (修改后重启)
Linux:vim /etc/hosts
service 服务名称(进程名称)start/stop/restart/status
service --status-all 查看所有服务状态
###控制网络“出入”行为
防火墙的基本操作(开启、关闭)
service iptables start/stop
chkconfig iptables on/off(开机自启/开机关闭)
###开放端口,关闭端口
#删除规则
iptables -D INPUT -p tcp -dport 22 -j DROP
#加入一条input规则开放80端口
iptables -I INPUT -p -tcp --dport 80 -j ACCEPT
vim /etc/inittab
0:关机
1:单用户
2:多用户无网络
3:全功能多用户(命令行)
4:未使用
5:带有图形界面模式
6:重启
5.1什么是用户和组
用户是权限的集合
组:用户组、组织和管理用户
5.2用户的分类
管理员用户:root(uid 0)
系统用户:保证系统运行用户,没有密码(uid——1~499)
普通用户:自定义用户,用户权利受限(uid:500~60000)
5.3查看用户
/etc/passwd
root:用户名
x:密码占位符
0:用户组id
0:组id
root:说明信息
/root:家目录
/bin/bash:shell类型
5.4操作用户
添加用户:useradd 用户(默认分配组,说明信息无)
修改用户:usermod
-c:设置说明信息
-G:指定组
usermod -c 说明信息 用户名
usermod -G 组名 用户名
删除用户:userdel
userdel -r 用户名
passwd 用户:修改密码
5.5组的分类
系统组:存放系统用户
普通组:存放普通用户
私有组:创建用户时会创建同名组,此时该组只有一个用户就是私有组,如果向该组添加其他用户就会变为普通组
5.6查看组
cat /etc/group cat /etc/gshadow
5.7组操作
创建组:groupadd
修改组:groupmod
-n:修改名称
删除组:groupdel
添加和删除用户:
gpasswd -a hadoop spark:添加用户到组
gpasswd -d hadoop spark:从组中删除用户
1.修改权限文件 vim /etc/sudoer
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
2.操作
sudo useradd aa
文件权限
drwxr-xr-x:文件类型和权限
链接数(普通文件:链接数1 文件夹:链接数是子目录个数)
文件类型和权限
d:文件类型(-:普通文件 d:目录 l:链接文件 b:二进制 c:字符设备文件)
rwx r-x r-x文件权限
u g o
header | 文件 | 文件夹 |
---|---|---|
r | 可读取内容 | 可以ls |
w | 可修改文件的内容 | 可以在其中创建或者删除子节点 |
x | 能否运行这个文件 | 能否cd进入这个目录 |
软件已经针对具体平台编译打包发布,只要解压,修改配置即可
put –r 包(ftp协议)
查看:rpm -qa | grep jdk
卸载:rpm -e --nodeps 包
export JAVA_HOME=/opt/ jdk1.8.0_73
export PATH=${JAVA_HOME}/bin:${PATH}
source /etc/profile 执行/加载配置文件
java –version
查询:rpm -q 程序包
rpm -qa | grep -i(不区分大小写) 程序
-l:查询安装位置
卸载:rpm -e 程序名称
--force:强制卸载
--nodeps:不考虑依赖
安装:rpm -ivh 程序名称(显示进程和过程)
1.上传包到linux平台
2.解包
3.查看旧的版本进行卸载
4.进行安装(server,client)
安装服务:
rpm -ivh MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm
初始密码:/root/.mysql_secret
查看是否安装成功: rpm -qa | grep -i mysql
5.启动服务
service mysql start
6.连接
mysql -uroot -p
7.设置密码
set password=password('root');
8.设置远程
第一种
将host中的localhost改为%
执行flush privileges;
第二种,使用命令授权
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
(*是指数据库.表;用户@远程绑定的ip;by后面设置的是远程访问的密码)
flush privileges;
9.无法正常启动
ps -aux | grep mysql
kill-9 pid 杀死进程
然后重新启动
完全卸载mysql——rpm方式安装的mysql
a)查看系统中是否以rpm包安装的mysql:
[root@localhost opt]# rpm -qa | grep -i mysql
MySQL-server-5.6.17-1.el6.i686
MySQL-client-5.6.17-1.el6.i686
b)卸载mysql
[root@localhost local]# rpm -e MySQL-server-5.6.17-1.el6.i686
[root@localhost local]# rpm -e MySQL-client-5.6.17-1.el6.i686
c)删除mysql服务
[root@localhost local]# chkconfig --list | grep -i mysql
[root@localhost local]# chkconfig --del mysql
d)删除分散mysql文件夹
[root@localhost local]# whereis mysql 或者 find / -name mysql
mysql: /usr/lib/mysql /usr/share/mysql
清空相关mysql的所有目录以及文件
rm -rf /usr/lib/mysql
rm -rf /usr/share/mysql
rm -rf /usr/my.cnf
yum install -y 程序名
yum install -y nc
yum remove -y 程序名
yum源:本质就是http服务器+rpm软件包+索引文件
yum源目录: /etc/yum.repos.d/
有个yum源(服务器),希望能从自己的yum源下载软件包
搭建yum服务器
web服务器(httpd)
ios镜像挂载文件
ln -s /mnt/cdrom/ /var/www/html/cdrom
在/etc/yum.repos.d/配置repo文件
[Local]
name=Local
baseurl=http://192.168.2.130/cdrom
gpgcheck=0
enabled=1
检测:
yum repolist:查看yum
yum list: 查看当前能够安装的程序列表
程序:静态(数据结构+算法+文档)
进程:程序的运行状态,是动态的(一个程序可能有多个进程)
线程:进程中执行任务的最小单元
进程在运行工过程中可能会产生新的进程,进程之间就会产生父子关系。产生进程的进程被称为父进程,被产生的进程称为子进程。
就绪状态:除了CPU之外其他资源已具备
运行状态:获取到CPU的时间片
阻塞状态:io阻塞操作
ps:查看进程的运行状态(CPU、资源、pid、当前状态)
ps -aux:查看所有用户的进程
pstree:查看进程树(能够查看进程继承关系)
-p:能够查看pid
top:查看进程状态(定期更新状态)
jps:查看jvm进程(jdk中的)
kill pid:杀死进程
kill -9 pid:强制杀死进程
pkill pname:杀死进程
pidof pname:根据名称来获取pid
ctrl+c:终止进程(只终止前端进程)
ctrl+z:挂起进程
fg:切换为前台进程
bg:切换为后台进程
jobs:查看任务
at:服务名称atd,指定时刻或者延迟指定时间执行一次任务
crontab:服务名称crond,间隔固定时间周期执行。分时日月周
-u:指定用户
-e:编辑某个用户的crontab文件内容。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:删除计划任务,从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。
基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时0~23(0表示0点) 7-9表示:8点到10点之间
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
/var/spool/cron/
保留虚拟机的状态(备份)
创建链接克隆,占用的空间会较少
vim /etc/udev/rules.d/70-persistent-net.rules
删除eth0,修改eth1位eth0,并将eth1的macid拷贝出来,以备配置网卡的时候使用
00:0c:29:8a:45:4a
00:0c:29:fa:5c:95
vim /etc/sysconfig/network-scripts/ifcfg-eth0
删除uuid
修改mac地址
修改ip地址
vim /etc/sysconfig/network
vim /etc/hosts
安全外壳协议,主要目标实现计算机之间加密安全访问
ssh包含两个部分:
ssh服务端:sshd的守护进程,占22端口
ssh客户端:ssh程序,scp(远程拷贝),slogin(远程登录),sftp(远程数据传输)等
2.1基于口令认证(用户名和密码)
2.2基于秘钥认证
3.免密登录的实现
3.1.创建秘钥对(公钥和私钥)
ssh-keygen
3.2发送公钥到授权池
ssh-copy-id hadoop01
grep是一种强大的文本搜索工具,他能使用正则表达式搜索文本,并把匹配的行统计出来
grep 字符串 文件
grep a a.txt
cat a.txt | grep a
-c:统计符合条件的字符串出现的总行数。
-i:忽略字符大小写。
-v:显示没有”搜索字符串”内容的那一行。