su -root 切换root用户
sudo systemctl stop firewalld关闭防火墙
vim /etc/sudoers 打开文件
chmod u+w /etc/sudoers给只读文件添加可以写入 chmod u-w /etc/sudoers取消可以写入
reboot 重启 ; systemctl start /enable 服务名 开始/开机自启 服务
yml install -y 服务名 安装 …
LINUX
1.LInux文件与目录结构
1.1 Iinux 文件
Linux 文件: linux系统中一切皆文件 —以文件的形式进行管理
1.2 linux 目录结构
目录 含义
/bin Binary的缩写,用来存二进制可执行文件,并且比较特殊的是/bin存放的是所有一般用户都能使用的可执行文件,如:cat、chmod、mv、mkdir、cd等常用指令
/sbin Super User的意思,存放一些只有root用户才有权限执行的可执行文件,如init,ip,mount等命令
/boot 主要存放开机时用到的引导文件,如linux内核文件和开机菜单与开机所有需要的配置文件
/dev device,任何设备都以文件的形式存放再这个目录中。例如硬盘、键盘、鼠标、光驱等各种设备文件。只要通过访问该目录的某个文件就相当于访问了对应的设备
/etc 配置文件、启动脚本等(etc)包含所有程序所需的配置文件以及系统的配置文件,如用户的账号密码文件,各个服务的起始文件等。也包含了用于启动/停止单个程序的启动和关闭shell脚本。一般来说,该目录下的文件属性是可以让用户查阅,但只有root管理员有权利修改
/home 系统默认的用户的家目录,每当新建一个用户系统都会在这个目录下创建以该用户名为名称的目录作为该用户的家目录。
/lib library,存放着系统开机时所需的函数库以及/bin和/sbin目录下的命令会调用的函数库
/lib64 存放相对于/lib中支持64位格式的函数库
/media 存放可移除的媒体设备、如光盘,DVD等
/mnt mount,临时挂载的设备文件,临时安装目录,系统管理员可以挂载文件系统。时系统管理员临时安装文件的系统安装点。
/opt optional,可选的软件包,即第三方文件软件。我们可以将除了系统自带软件之外的其他软件安装到这个目录。
/proc 特殊的动态目录,用以 维护系统的信息和状态,包括当前运行中进程(processes)信息。包含系统进程的相关信息,是一个虚拟的文件系统,包含有关正在运行的进程的信息,系统资源以文本信息形式存在。
/root 系统管理员root的主目录
/run 最近一次开机后所产生的各项信息,如当前的用户和正在运行中的守护进程等。
/srv service,存放一些服务启动后所需的数据
/sys system,与/proc类似也是虚拟文件系统,存放系统核心与硬件相关信息管理设备文件。不占用硬件容量。
/tmp temporary, 存放系统运行过程中使用的一些临时文件,可以被所有就用户访问,系统重启时会清空该目录。
/usr 包含绝大部分所有用户(users)都能访问的应用程序和文件包含二进制文件,库文件。文档和二级程序的源代码。
/var 经常变化的(variable)文件,诸如日志或数据库等代表变量文件。在这个目录下可以找到内容可能增长的文件
1.2.1 编辑器 vi/vim
vim:分三种模式(一般模式——快速编辑:多用于删除)(插入模式——编辑文本:多用于增)(指令模式——搜索)
一般模式 ———语法
yy | 复制光标的当前一行 |
---|---|
y 数字y | 复制当前行开始的下面 数字 行 |
y(shift+4)/y+$ | 复制当前光标到结尾 |
p | 粘贴 |
u | 撤销 |
dd | 删除 |
d 数字d | 删除多少行 |
x/X | 剪切一个字符(后)/(前) |
w/e | 切换下一个单词(头)/(尾部) |
d | 上一个词 |
yw/dw | 复制/删除 一个词 |
^/$ | 移动到行 头/行尾 |
gg/(G/L) | 移动到页 头/尾部 |
数字+G | 移动到目标行 ** set nu : 显示行号 set nonu 不显示行号 |
数字+b | 跳转到上 数字 个词 |
插入模式 :按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式。——按下 『Esc』这个按键即可退出编辑模式。
按钮 | 功能 |
---|---|
i | 当前光标前 |
a | 当前光标后 |
o | 当前光标行的下一行 |
I | 光标所在行最前 |
A | 光标所在行租后 |
O | 当前光标行的上一行 |
指令模式:输入【:/?
】3个中的任何一个按钮,就可以将光标移动到最底下的一行,可以提供【搜索】资料的动作,读取、淳朴、大量取代字符、离开vi、显示行号等动作是在此模式中达成的。
- :w 保存
- :q 退出
- :wq 保存并退出
- :q! 不保存强制退出
- /要查找的词 n查找下一个,N往上查找
- :noh 取消高亮显示
- :set nu 显示行号
- :set nonu 关闭显示行号
- 😒/old/new 替换当前行匹配到第一个old为new
- 😒/old/new/g 替换当前行匹配到所有old为new
- :%s/old/new 替换文档中每一行匹配到的第一个old为new
- :%s/old/new/g 替换文档中的所有的old为new 比较常用
2.网络配置和系统管理操作
windows查看IP:ipconfig
2.1:虚拟机网卡配置
桥接模式:虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用。这个模式下直接访问外部网络,并且对外部网络是可见的。(同一个路由器内都可见,占用局域网的ip)
**NAT模式(Network Address Translation):**虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换。虚拟机通过该共享IP可以访问外部网络,但外部网络无法访问虚拟机。
仅主机模式: 虚拟机只与主机共享一个专用网络,与外部网络无法通信。
配置静态网址:
cd /etc/sysconfig/network-scripts
vim ifcfg-** 注:ifcfg-前缀的文件的可能会有好几种情况,例如:ifcfg-eth0、ifcfg-ens33、ifcfg-ens192(可按TAB键补充)
BOOTPROTO="dhcp" 修改为 BOOTPROTO="static"
#IP地址 IPADDR=192.162.202.100
# 网关 GATEWAY=192.168.202.2
# 域名解析器 DBS1=192.168.202.2
重启网络服务 server network restart
2.2 配置主机名
# 查看主机名
hostname
vim /ect/hostname
修改里面的值
# 重启服务器
# 查看主机相关信息
hostnamectl
# 修改主机名为lys
hostnamectl set-hostname 主机名
2.3系统管理
**基本语法:**systemctl 服务名 start|status|stop|restart
systemctl list-unit-files (功能描述:查看服务开机启动状态)
systemctl disable service_name (功能描述:关掉指定服务的自动启动)
systemctl enable service_name (功能描述:开启指定服务的自动启动)
systemctl list-unit-files (查看服务是否开机自启动)
案例实操:
开启/关闭iptables(防火墙)服务的自动启动
systemctl enable firewalld.service
systemctl disable firewalld.service
**查看服务的方法:**systemctl /usr/lib/systemd/system
2.3.1:系统运行级别
Linux系统有7种运行级别(runlevel) 常用的级别3和5
-
0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
-
1:单用户工作状态,root权限,用于系统维护,禁止远程登录
-
2:多用户状态(没有NFS),不支持网络
-
3:安全的多用户状态(有NFS),登录后进入控制台命令行模式
-
4:系统未使用,保留
-
5:X11控制台,登陆后进入图形GUI模式
-
6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
CentOS7的运行级别简化为:
multi-user.target 等价于原运行级别3(多用户有网,无图形界面)
graphical.target 等价于原运行级别5(多用户有网,有图形界面)
查看当前与运行级别:
systemctl get-default
修改当前运行级别:
system set-default TARGET.target (这里的TARGET取 multi-user 或者graphical)
关机
-
sync 将数据由内存同步到硬盘中
-
halt 停机,关闭系统,但不断电
-
poweroff 关机,断电
-
reboot 重启,等同于 shutdown-r now
-
shutdown 【选项】 时间
一分钟后关机:shutdown
三分钟后关机:shutdown 3
某个时间关机:shutdown 15:00
取消关机:shutdown -c
立刻关机:shutdown now
**经验技巧:**Linux系统中为了提高磁盘的读写效率,对磁盘采取了 “预读迟写’'操作方式。当用户 保存文件时,Linux核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓 冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是, 也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导 致数据丢失。使用sync指令可以立即将缓冲区的数据写入磁盘。
3.基本交互命令
常用快捷键:
ctrl + c | 停止进程 |
---|---|
ctrl + l | 清屏,等同于clear;彻底清屏是: reset |
tab | 提示(更重要的是可以防止敲错) |
上下键 | 查找执行过的命令 |
man获取帮助信息:
基本语法:man (-f) [命令或配置文件] --作用:获取帮助信息
**判断命令类型:**type 命令
简洁化:
外部命令:命令 --help
内置命令 : help 命令
文件命令:
**pwd:**显示当前工作目录的绝对路径
参数 | 功能 |
---|---|
cd 绝对路径 | 切换路径 |
cd 相对路径 | 切换路径 |
cd ~ 或 cd | 回到自己的家目录 |
cd - | 回到上一次所在目录 |
cd … | 回到当前沐浴露的上一级目录 |
cd -P | 跳转到实际物理路径,而非快捷方式路径 |
# 创建/删除目录
mkdir/rmdir a
# 一次创建/删除多级
mkdir/rmdir a a/b a/b/c
mkdir/rmdir -p a/b/c
#创建空文件
touch 文件
#查看文件内容
cat [选项(-n)] 文件
#删除文件或目录
rm 文件或目录
#移动文件或目录或重命名
mv oldNameFile newNameFile 重命名
mv /tmp/moveFile /targerFolder 移动文件
#控制台打印
echo [-e(识别转义字符)]
> 输出重定向 >> 追加
命令结果或内容 > 文件 (展示内容写到文件--覆盖写)
命令结果或内容 >> 文件 (内容写到文件 结尾)
用户管理命令:
# useradd 用户名 添加新用户
useradd lys
# 可以在home目录看到创建的用户文件夹
cd /home
# 创建时修改主文件夹名称
useradd -d /home/dave david
# 设置密码
passwd lys
# 查看用户信息,可以验证是否存在
id lys
uid=1005(lys) gid=1005(lys) groups=1005(lys)
# 查看系统用户
less /etc/passwd
# 切换用户 su: switch user
su lys
# 在lys用户退出可回到root用户
exit
# 查看当前用户
who am i
# 删除用户
userdel lys
# 删除用户以及文件夹
userdel -r lys
# sudo设置普通用户具有root权限
vim /etc/sudoers
# 添加
lys ALL=(ALL) ALL
# 使用超级管理员权限
sudo lys
# 将用户添加入某个组
usermod -g 组名 用户名
用户组管理命令:
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规则有所不同,
如Linux下的用户属于与它同名的用户组,这个用户在和创建用户时同时创建。
用户组的管理设计用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新
# 新增组
groupadd 组名
# 修改组名
groupmod -n 新组名 旧组名
# 删除用户组
groupdel 组名
文件权限类
文件属性: Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll 或者ls -l来显示一个文件的属性以及文件所属的用户和组
-
-代表文件
-
d 代表目录
-
l 链接文档
- 第1-3位确定属主(该文件的所有者)拥有该文件的权限。User
- 第4-6位确定属组(所有者的同组用户)拥有该文件的权限。Group
- 第7-9位确定其他用户拥有该文件的权限 Other
rwx作用文件和目录的不同解释
作用到文件:
-
【r】: 代表可读(read) 可以读取,查看
-
【w】:代表可写(write) 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
-
【x】:代表可执行(execute) 可以被系统执行
作用到目录:
-
【r】: 代表可读(read) 可以读取,ls查看目录内容
-
【w】:代表可写(write) 可以修改,目录内创建+删除+重命名目录
-
【x】:代表可执行(execute) 可以进入该目录
chmod:改变权限
# 增加执行权限
chmod +x nginx.conf
# chmod [u|g|o|a] +-= {rwx} 文件或目录
chmod u+x nginx.conf
chmod u-x nginx.conf
chmod u=x nginx.conf
chmod a+x nginx.conf
chmod a=rwx nginx.conf
# r=4 w=2 x=1
# 直接用数字修改权限
chmod 777 nginx.conf
# 修改整个文件夹的所有这,所属组,其他用户都具有可读可写可执行权限
chmod -R 777 nginx.conf
chown 改变所有者:
chown [选项] [最终用户] [文件或目录]
chown lys a.txt
# 获取递归改变文件所有者和所有组
chown -R lys dir
charp 改变所有组
chgrp [最终用户组] [文件或目录]
chgrp root a.txt
搜索查找类:
**find 查找文件或目录:**find 指令将从指定目录向下递归地遍历其各个子目录
find [搜索范围] [选项]
选项 | 功能 |
---|---|
-name 查询方式 | 按照指定文件名查找模式查找文件 |
-user 用户名 | 查找属于指定用户名所有文件 |
-size 文件大小 | 按照指定文件大小查找文件,单位为 b-块 (512字节) c- 字节 w-字 2字节 k - 千字节 M -兆字节 G-吉字节 |
# 按名称查找
find -name nginx.conf
# 按路径加名称查找
find /root -name nginx.conf
# 按照后缀查找
# "*"匹配多个字段,"?"匹配单个字符
find -name "*.txt"
# 按用户查找
find -user lys
# 按大小查找 +大于 -小于
find -size +1M
find -size +1M
**grep过滤查找及"|"管道符:**管道符,|,表示将前一个命令的处理结果输出传递给后面的命令处理
grep 选项 查找内容 源文件
#-n 显示匹配行及行号
# 显示location在nginx.conf的哪几行
grep -n location nginx.conf
# 查找某文件在该目录的第一个
ls | grep -n test
进程管理类:
ps 查看当前系统进程状态:ps: process status 进程状态
- ps aux | grep XXX 查看系统中带XXX的进程
- ps -ef | grep XXX 可以查看子父今后进程之间的关系
选项 | 功能 |
---|---|
a | 列出带有终端的所有用户的进程 |
x | 列出当前用户的所有今后进程,包括没有终端的进程 |
u | 面向用户友好的显示风格 |
-e | 列出所有进程 |
-u | 列出某个用户关联的所有进程 |
-f | 显示完整格式的进程列表 |
ls /usr/lib/systemd/system
# 带d.service的为守护进程
ls /usr/lib/systemd/system | grep d.service
ps aux显示信息说明
-
USER:该进程是由哪个用户产生的
-
PID: 进程的ID号
-
%CPU: 该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
-
%MEM: 该进程占用物理内存的百分比,占用越高,进程越耗费资源;
-
VSZ: 该进程占用虚拟内存的大小,单位KB;
-
RSS: 该进程占用实际物理内存的大小,单位KB;
-
TTY: 该进程是哪个终端中运行的。对于CentOS来说,tty1是图形化终端,tty2-tty5是本地的字符界面终端。pts/0-255代表虚拟终端。
-
STAT: 进程状态。常见的状态有:
-
R:运行状态 S:睡眠状态 T: 暂停状态 Z:僵尸状态 s:包含子进程 l: 多线程 +:前台显示 <:高优先级 N:低优先级
-
START: 该进程的启动时间
-
TIME:该进程占用CPU的运算时间,注意不是系统时间
-
COMMAND:产生此进程的命令名
ps -ef 显示信息说明
-
UID: 用户ID
-
PID: 进程ID
-
PPID: 父进程ID
-
C: CPU用于计算执行优先级的因子。数字越大,表明进程是CPU密集型运算,执行优先级会降低;数字越小,表明进程是I/O密级型运算,执行优先级会提高
-
STIME:进程启动的时间
-
TIY:完成的终端名称
-
TIME: CPU时间
-
CMD: 启动进程所用的命令和参数
kill 终止进程
kill [选项] 进程号 通过进程号杀死进程
killall 进程名称 通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
kill -l 查看各个号码代表的意思
选项 | 功能 |
---|---|
-9 | 表示强迫进程立即停止 |
pstree 查看进程树:pstree [选项]
选项 | 功能 |
---|---|
-p | 显示进程PID |
-u | 显示进程的所属用户 |
to****p实施监控系统进程状态
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行 |
-i | 使top不显示任何闲置或者僵死进程。 |
-p | 通过指定进程ID来仅仅监控某个进程的状态 |
操作 | 功能 |
---|---|
P | 以CPU使用率排序,默认就是此项 |
M | 以内存的使用率排序 |
N | 以PID排序 |
q | 退出top |
u | 根据指定用户进行过滤 |
k | 直接杀死 |
netstat 显示网络状态和端口占用信息
选项 | 功能 |
---|---|
-a | 显示所有正在监听(listen)和未监听的套接字(socket) |
-n | 拒绝显示别名,能显示数字的全部转化为数字 |
-l | 仅列出在监听的服务状态 |
-p | 表示显示哪个进程在调用 |
- netstat -anp | grep 进程号 查看该进程网络信息
- netstat -nlp | grep 端口号 查看网络端口号占用情况
- netstat -atnp 查看连接
crontab 系统定时任务
选项 | 功能 |
---|---|
-e | 编辑crontab定时任务 |
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |
#进入编辑页面
crontab -e
# 小例子 每分钟往hello文件追加一个"hello world"
*/1 * * * * echo "hello world" >> /root/hello
项目 | 含义 | 范围 |
---|---|---|
第1个“*" | 一个小时当中的第几分钟 | 0-59 |
第2个“*" | 一天当中的第几个小时 | 0-23 |
第3个“*" | 一个月当中的第几天 | 1-31 |
第4个“*" | 一年当中的第几月 | 1-12 |
第5个“*" | 一周当中的星期几 | 0-7 (0和7都代表星期日) |
软件包管理
**RPM查询命令 (rpm -qa):**rpm -qa 查询所安装的所有rpm软件包
由于软件包比较多,一般都会才去过滤 rpm -qa | grep 名称
RPM 卸载命令 (rpm -e):
rpm -e 名称 卸载软件包
rpm -e --nodeps 名称 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作
**安装命令 (rpm -ivh):**rpm -ivh 包全名
选项 | 功能 |
---|---|
-i | install 安装 |
-v | –verbose 显示详细信息 |
-h | –hase,进度条 |
–nodeps | 安装前不检查依赖 |
仓库配置
YUM的常用命令:
yum [选项] [参数]
选项 | 功能 |
---|---|
-y | 对所有提问都回答“yes" |
参数 | 功能 |
---|---|
install | 安装rpm 软件包 |
update | 更新rpm软件包 |
check-update | 检查是否有可用的更新rpm软件包 |
remove | 删除指定的rpm软件包 |
list | 显示软件包信息 |
clean | 清楚yum过期的缓存 |
deplist | 显示yum软件包的所有依赖关系 |
修改网络YUM源 (默认会自己搜索最近的)
默认的系统 YUM 源,需要连接国外 apache 网站,网速比较慢,可以修改关联的网络 YUM 源为国内镜像的网站,比如网易 163,aliyun 等
(1)安装 wget, wget 用来从指定的 URL 下载文件
yum install wget
(2)在/etc/yum.repos.d/目录下,备份默认的 repos 文件
cd /etc/yum.repos.d
cp CentOS-Base.repo CentOS-Base.repo.backup
(3)下载网易 163 或者是 aliyun 的 repos 文件,任选其一
wget http://mirrors.aliyun.com/repo/Centos-7.repo # 阿里云
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo # 网易
1
2
(4)使用下载好的 repos 文件替换默认的 repos 文件 例如:用 CentOS7-Base-163.repo 替换 CentOS-Base.repo
mv CentOS7-Base-163.repo CentOS-Base.repo
1
(5)清理旧缓存数据,缓存新数据
yum clean all
yum makecache
yum makecache 就是把服务器的包信息下载到本地电脑缓存起来
(6)测试
yum list | grep firefox
yum -y install firefox
镜像的网站,比如网易 163,aliyun 等
(1)安装 wget, wget 用来从指定的 URL 下载文件
yum install wget
(2)在/etc/yum.repos.d/目录下,备份默认的 repos 文件
cd /etc/yum.repos.d
cp CentOS-Base.repo CentOS-Base.repo.backup
(3)下载网易 163 或者是 aliyun 的 repos 文件,任选其一
wget http://mirrors.aliyun.com/repo/Centos-7.repo # 阿里云
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo # 网易
1
2
(4)使用下载好的 repos 文件替换默认的 repos 文件 例如:用 CentOS7-Base-163.repo 替换 CentOS-Base.repo
mv CentOS7-Base-163.repo CentOS-Base.repo
1
(5)清理旧缓存数据,缓存新数据
yum clean all
yum makecache
yum makecache 就是把服务器的包信息下载到本地电脑缓存起来
(6)测试
yum list | grep firefox
yum -y install firefox