学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习
注意:如果电脑未支持虚拟化设备,请修改BIOS中Intel (R) Virtualization Technology
为Enabled
3. 选择下载的CentOS镜像文件,镜像下载地址:http://vault.centos.org/
4. 选择创建的虚拟机的保存位置
5. 配置虚拟机的处理器数量及核数,数量受实际物理处理器数量和核数限制
6. 配置虚拟机内存大小,大小受实际物理内存限制
7. 配置虚拟机网络类型,有主机模式、桥接模式和NAT模式,后续详解
8. 选择I/O控制器类型,使用推荐
9. 配置磁盘类型,选择推荐
10. 配置磁盘类型,建议选择【创建新虚拟磁盘】
11. 配置磁盘容量,根据实际情况选择,建议选择【将虚拟磁盘存储为单个文件】
12. 上述配置配置完后可以点击【虚拟机】——>【设置】查看和修改
shutdown
#立即关机
shutdown -h now
#1分钟后关机
shutdown -h 1
#立即重启
shutdown -r now
#等价于shutdown
halt
#重启
reboot
#把内存的数据同步到磁盘
sync
不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
运行级别:
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
语法:useradd [options] 用户名
useradd -d
指定目录 新的用户名xiaoming,给新创建的用户指定家目录#添加用户
useradd xiaomi
#添加用户指定家目录
useradd -d /home/xm xiaoming
语法:passwd [用户名]
#如果没有带用户名,则是给当前登录的用户修改密码
passwd xiaomi
语法:userdel [options] 用户名
#删除用户xiaoming,但是要保留家目录
userdel xiaoming
#删除用户以及用户主目录
userdel -r xiaomi
在删除用户的时候,一般会保留家目录
语法:id [用户名]
#查询当前用户信息
id
#查询xiaomi用户信息
id xiaomi
语法:su - [用户名]
su –
没有带用户名,则默认切换到root用户#切换到xiaomi用户
su - xiaomi
用户组类似于角色,系统可以对有共性的多个用户进行统一的管理
新增组语法:groupadd 用户组
添加用户到指定组语法:useradd -g 用户组 用户名
修改用户的组语法:usermod -g 用户组 用户名
删除组语法:groupdel 用户组
#新增组
groupadd xm
#添加用户到指定组名
useradd -g xm xiaomi
#修改用户的组
usermod -g root xiaomi
#删除组
groupdel xm
/etc/passwd
用户名:加密口令(保存在下面配置文件):用户id:组id::家目录:shell类型
/etc/shadow
用户名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留 [图]
/etc/group
组名:加密口令:组标识号:组内用户列表
运行级别说明:
常用运行级别是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:
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] ——> 进入到单用户模式 【这里就可以做补救工作】
设置任务调度文件:/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 | 代表每隔多久执行一次 |
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
语法:ps -aux
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务
kill语法:kill [-9] PID
通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
killall语法:killall 进程名称
语法:pstree [options]
-p:显示进程的PID
-u:显示进程的所属用户
服务(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重新设置服务自启禁用/开启,需要重启服务器方能生效。
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 |
语法:netstat [options]
netstat -nlp
一种用于互联网下载包的打包及安装工具,它包含在某些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 -ivh MySQL-client-5.6.45-1.el7.x86_64.rpm
i=install:安装
v=verbose:提示
h=hash:进度条
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
但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
yum是一个shell前端软件包管理器,基于RPM包管理器,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
#查询yum服务器是否有需要安装的软件
yum list|grep nginx
#安装指定的yum包,默认会安装最新版本的
yum install nginx