大数据之Linux

1 Linux安装

学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习

  1. 先安装virtual machine ,vm12
  2. 再安装Linux (CentOS )

注意:如果电脑未支持虚拟化设备,请修改BIOS中Intel (R) Virtualization TechnologyEnabled

1.1 安装CentOS

  1. 点击【文件】——>【新建虚拟机】创建虚拟机。可选择自定义和典型(虚拟机默认设置)二种。以下演示自定义方式创建虚拟机:
    大数据之Linux_第1张图片
  2. 硬件兼容性根据实际使用的VMware Workstation版本选择

大数据之Linux_第2张图片
3. 选择下载的CentOS镜像文件,镜像下载地址:http://vault.centos.org/
大数据之Linux_第3张图片
4. 选择创建的虚拟机的保存位置
大数据之Linux_第4张图片
5. 配置虚拟机的处理器数量及核数,数量受实际物理处理器数量和核数限制
大数据之Linux_第5张图片
6. 配置虚拟机内存大小,大小受实际物理内存限制
大数据之Linux_第6张图片
7. 配置虚拟机网络类型,有主机模式、桥接模式和NAT模式,后续详解
大数据之Linux_第7张图片
8. 选择I/O控制器类型,使用推荐
大数据之Linux_第8张图片
9. 配置磁盘类型,选择推荐
大数据之Linux_第9张图片
10. 配置磁盘类型,建议选择【创建新虚拟磁盘】
大数据之Linux_第10张图片
11. 配置磁盘容量,根据实际情况选择,建议选择【将虚拟磁盘存储为单个文件】
大数据之Linux_第11张图片
12. 上述配置配置完后可以点击【虚拟机】——>【设置】查看和修改
大数据之Linux_第12张图片

2 Linux实操

2.1 开机、重启和用户登录注销

2.1.1 关机&重启

shutdown
#立即关机
shutdown -h now
#1分钟后关机
shutdown -h 1
#立即重启
shutdown -r now

#等价于shutdown
halt

#重启
reboot
#把内存的数据同步到磁盘
sync

不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中

2.1.2 用户登录和注销

  1. 登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用”su - 用户名’命令来切换成系统管理员身份.
  2. 在提示符下输入 logout 即可注销用户【不同的shell 可能不同(logout exit)】

运行级别:

2.2 用户管理

Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
大数据之Linux_第13张图片

2.2.1 添加用户

语法:useradd [options] 用户名

  1. 当创建用户成功后,会自动的创建和用户同名的家目录 【/home/xiaomi】
  2. 也可以通过 useradd -d 指定目录 新的用户名xiaoming,给新创建的用户指定家目录
#添加用户
useradd xiaomi
#添加用户指定家目录
useradd -d /home/xm xiaoming

2.2.2 指定/修改密码

语法:passwd [用户名]

#如果没有带用户名,则是给当前登录的用户修改密码
passwd xiaomi

2.2.3 删除用户

语法:userdel [options] 用户名

#删除用户xiaoming,但是要保留家目录
userdel xiaoming
#删除用户以及用户主目录
userdel -r xiaomi

在删除用户的时候,一般会保留家目录

2.2.4 查询用户

语法:id [用户名]

#查询当前用户信息
id
#查询xiaomi用户信息
id xiaomi

2.2.5 切换用户

语法:su - [用户名]

  1. 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
  2. 当需要返回到原来用户时,使用exit指令
  3. 如果 su –没有带用户名,则默认切换到root用户
#切换到xiaomi用户
su - xiaomi

2.2.6 用户组

用户组类似于角色,系统可以对有共性的多个用户进行统一的管理
新增组语法:groupadd 用户组
添加用户到指定组语法:useradd -g 用户组 用户名
修改用户的组语法:usermod -g 用户组 用户名
删除组语法:groupdel 用户组

#新增组
groupadd xm
#添加用户到指定组名
useradd -g xm xiaomi
#修改用户的组
usermod -g root xiaomi
#删除组
groupdel xm

2.2.7 用户和组的相关文件

/etc/passwd
大数据之Linux_第14张图片
用户名:加密口令(保存在下面配置文件):用户id:组id::家目录:shell类型

/etc/shadow
在这里插入图片描述
用户名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留 [图]

/etc/group
大数据之Linux_第15张图片
组名:加密口令:组标识号:组内用户列表

2.3 运行级别

运行级别说明:

  • 0 :关机
  • 1 :单用户 [类似安全模式, 这个模式可以帮助找回root密码]
  • 2:多用户状态没有网络服务
  • 3:多用户状态有网络服务 [使用最多]
  • 4:保留
  • 5:图形界面
  • 6:系统重启

常用运行级别是3和5 ,要修改默认的运行级别可改文件/etc/inittab(centos6),centos7文件如下:

# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target

意思是在此文件的配置不会再生效,systemd使用targets代替runlevels
语法:systemctl [command] [unit.target]

commnad:

  • get-default :取得当前的target
  • set-default :设置指定的target为默认的运行级别
  • isolate :切换到指定的运行级别
  • unit.target :为下表中列出的运行级别
init级别 systemctl target
0 shutdown.target
1 emergency.target
2 rescure.target
3 multi-user.target
4
5 graphical.target
6
#centos6查看运行级别
runlevel
#centos6切换运行级别
init 3

#获得当前的运行级别
systemctl get-default
#设置默认的运行级别为mulit-user
systemctl set-default multi-user.target
#在不重启的情况下,切换到运行级别mulit-user下
systemctl isolate multi-user.target
#在不重启的情况下,切换到图形界面下
systemctl isolate graphical.target

找回root密码方式:

启动时 ——> 快速输入enter ——> 输入e ——> 进入到编辑界面 ——> 选择中间有kernel 项 ——> 输入e(edit) ——> 在该行的最后写入 1 [表示修改内核,临时生效] ——> 输入enter ——> 输入b [boot] ——> 进入到单用户模式 【这里就可以做补救工作】

2.4 定时任务调度

设置任务调度文件:/etc/crontab
设置个人任务调度语法:crontab [options]

options 说明
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户所有的crontab任务
*/1 * * * * ls -l /etc/ > /tmp.to.txt
参数 说明 范围
第一个“*” 一小时中第几分钟 0-59
第二个“*” 一天中第几小时 0-23
第三个“*” 一月中第几天 1-31
第四个“*” 一年中第几月 1-12
第五个“*” 一周中星期几 0-7(0和7都代表星期日)
特殊符号 说明
* 代表任何时间
, 代表不连续的多个时间点
- 代表连续的时间范围
*/n 代表每隔多久执行一次

2.7 Linux磁盘分区、挂载

2.8 网络配置

NAT:共享主机的IP地址,与主机相同网段的其他主机无法访问该虚拟机
桥接模式:直接连接物理网络,同网段的可以相互通讯,但由于ip地址有限,可能造成ip冲突
主机模式:不连接网络

服务器配置:

#配置服务器名称,每个服务器配置不同
[root@localhost ~]# vim /etc/hostname
	hadoop01
#配置网络
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens192
	TYPE=Ethernet
	PROXY_METHOD=none
	BROWSER_ONLY=no
	#静态ip配置
	BOOTPROTO=static
	DEFROUTE=yes
	IPV4_FAILURE_FATAL=no
	IPV6INIT=yes
	IPV6_AUTOCONF=yes
	IPV6_DEFROUTE=yes
	IPV6_FAILURE_FATAL=no
	IPV6_ADDR_GEN_MODE=stable-privacy
	NAME=ens192
	UUID=cec5a0f3-1ef5-4569-91dc-095e05ac3dab
	DEVICE=ens192
	#开机启动
	ONBOOT=yes
	#网关
	GATEWAY=192.168.1.1
	#静态ip地址
	IPADDR=192.168.1.241
	#子网掩码
	NETMASK=255.255.255.0

#配置DNS
[root@localhost ~]# vim /etc/resolv.conf
	# Generated by NetworkManager
	nameserver 192.1.69.1
	nameserver 192.168.1.1

2.9 进程管理

2.9.1 ps

语法:ps -aux

  • USER:用户名称
  • PID:进程号
  • %CPU:进程占用CPU的百分比
  • %MEM:进程占用物理内存的百分比
  • VSZ:进程占用的虚拟内存大小(单位:KB)
  • RSS:进程占用的物理内存大小(单位:KB)
  • TTY:终端名称,缩写 .
  • STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
  • STARTED:进程的启动时间
  • TIME:CPU时间,即进程使用CPU的总时间
  • COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

2.9.2 kill和killall

若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务
kill语法:kill [-9] PID
通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
killall语法:killall 进程名称

2.9.3 查看进程树pstree

语法:pstree [options]
-p:显示进程的PID
-u:显示进程的所属用户

2.9.4 服务管理

服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程。Centos7中的防火墙使用firewall替代了之前的iptables。systemctl是Centos7服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体
centos6语法:service 服务名 [start|stop|restart|reload|status]
centos7语法:systemctl [start|stop|restart|status|enable|disable|is-enabled|list-unit-files|--failed] 服务名

#centos6重启防火墙
service iptables restart

#centos7重启防火墙
systemctl restart firewalld
#在开机时启用防火墙服务
systemctl enable firewalld.service
#在开机时禁用防火墙服务
systemctl disable firewalld.service
#查看防火墙服务是否开机启动
systemctl is-enabled firewalld.service
#查看已启动的服务列表
systemctl list-unit-files|grep enabled
#查看启动失败的服务列表
systemctl --failed

centos6如果希望设置某个服务自启动或关闭永久生效,要使用chkconfig指令

#查看mysql各个运行级别下自启/关闭情况
chkconfig --list|grep mysql
chkconfig mysql --list

#5运行级别下开启/禁用自启
chkconfig --level 5 mysql off
chkconfig --level 5 mysql on

chkconfig重新设置服务自启禁用/开启,需要重启服务器方能生效。

2.9.5 top动态监控进程

top与ps命令很相似。它们都用来显示正在执行的进程。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程(默认每3秒变化一次)。
语法:top [options]

options 说明
-d 秒数 指定top命令每几秒更新,默认为3s
-i 不现实任何闲置或僵死的进程
-p 通过指定监控PID来仅仅监控某个进程的状态

交互操作

操作 功能
P 以CPU使用率排序,默认
M 以内存的使用率排序
N 以PID排序
u 可以输入用户名监控特定用户
k 可以输入PID终止指定进程
q 退出top

2.9.6 netstat监控网络状态

语法:netstat [options]

netstat -nlp

2.10 rpm和yum软件安装

2.10.1 rpm

一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
Linux的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了。

常用指令

#查询所有安装的rpm软件包
rpm -qa
rpm -qa|more
#查询软件包是否安装
rpm -qa|grep mysql
rpm -q mysql
#查询软件包详细信息
rpm -qi mysql
#查询软件包中的文件
rpm -ql mysql
#查询文件所属的软件包
rpm -qf /etc/passwd

安装rpm包

rpm -ivh MySQL-client-5.6.45-1.el7.x86_64.rpm

i=install:安装
v=verbose:提示
h=hash:进度条

卸载rpm包

rpm -e MySQL-client-5.6.45-1.el7.x86_64.rpm

如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息,如果要强制删除,如下

rpm -e MySQL-client-5.6.45-1.el7.x86_64.rpm --nodeps

但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行

2.10.2 yum

yum是一个shell前端软件包管理器,基于RPM包管理器,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

#查询yum服务器是否有需要安装的软件
yum list|grep nginx
#安装指定的yum包,默认会安装最新版本的
yum install nginx

你可能感兴趣的:(Linux,linux,centos)