第一章:Linux系统安装
查看Linux系统内核信息
uname -a
Linux虚拟机安装,1G-2G内存,20G-30G硬盘存储
查看Linux系统版本信息
cat /etc/redhat-release
/etc/CentOS-release
/etc/SuSE-release
查看Linux内存信息
free -m
cat /proc/meminfo
查看CPU信息
cat /proc/cpuinfo
查看硬盘设备信息
fdisk -l
df -Th
cat /proc/partitions
VMware tools工具安装
cd /media/cdrom(进入到虚拟光驱的文件夹里,cdrom的名称为VMware Tools)
cd /run/media/username/cdrom(RHEL7)
tar xf VMwareTools-10.1.5-5055693.tar.gz -C /tmp(将安装包解压到指定目录tmp)
cd /tmp/vmware-tools-distrib(进入解压出来的文件夹里)
./vmware-install.pl(执行安装文件)可使用‘-d’选项,表示所有的交互式问答都以默认作为回执
关闭防火墙
systemctl stop firewalld(关闭运行中的防火墙)
systemctl disable firewalld(开机防火墙服务禁止自启动)
systemctl status firewalld(查看当前防火墙状态)
关机
systemctl poweroff 7
poweroff/init 0/shutdown/halt 6
重启
systemctl reboot 7
reboot/init 6
第二章:目录文件结构与管理
掌握常用目录的作用:
/bin:表示普通用户和系统用户,超级用户都可以调用的指令
/sbin:系统用户和超级用户可以调用的指令
/boot:系统启动引导相关的grub文件都在boot引导目录中
/home:普通用户账户家目录的存放目录
/root:超级用户的家目录
/dev:存放系统硬件设备
/etc:系统启动,用户权限,应用程序等配置文件的主目录
/lib:32位库文件存放目录
/lib64:64位库文件存放目录
/media:RHEL6及之前的操作系统,外接设备默认存放路径 /media/kingston
/run:RHEL7外接设备默认存放路径 /run/media/username/kingston
/mnt:建议将磁盘设备挂载到当前目录的子目录中使用
/proc:系统进程信息和系统设备信息存放目录(基于内存)
/tmp:临时文件存放目录,主要针对普通用户
/var/tmp:系统程序文件存放目录,主要针对系统用户
/usr:用户自定义配置目录
/var:业务数据存放目录
命令 选项 参数
ls -l /boot
根据文件颜色识别文件属性
蓝色 目录
黑色 普通文件
绿色 可执行文件
红色 压缩文件
紫色 图片或其他类型的文件
浅蓝色 符号链接文件
黑底黄字 设备文件
常用快捷键
Tab键:自动补齐
Ctrl+U:清空至行首
Ctrl+K:清空至行尾
Ctrl+L:清屏
Ctrl+C:取消本次命令编辑
Ctrl+A:光标移动到最前
Ctrl+E:光标移动到最后
反斜杠“\”:强制换行
Ctrl+shift+t:在已经生成的终端中打开新的终端
Ctrl+d:在终端没有字符的状态下,结束当前终端(exit)
Ctrl+shift+“+”:增大字符显示
Ctrl+“-”:缩小字符显示
Ctrl+Page UP:多终端时,向前翻页
Ctrl+Page DOWN:多终端时,向后翻页
Alt+number:根据终端位置,快速切换到数字对应的终端
Ctrl+shift+c:复制
Ctrl+shift+v:粘贴
ls 列出目录内容
-l:以长格式形式查看文件或目录的详细信息(文件类型,权限,链接数,属主属组,文件大小,时间信息,文件名及路径)
-h:以人性化方式计算文件或目录的大小
-d:查看目录本身的属性,不加时查看的是目录中的子目录及子文件
-a:查看所有文件和目录(包含隐藏和非隐藏)
-R:递归式的查询目录中的子目录及子文件
pwd 显示当前工作目录
cd 切换工作目录
cd ..:回到上一级目录(当前路径的父目录)
cd -:回到上一次工作过的目录
cd directory:切换到指定目录
相对路径:只能在某个特定的环境或目录下才能执行的操作(不以“/”开始的路径)
绝对路径:在任意位置都可调用并执行的操作(以“/”开始的路径)
touch:创建文件,更新文件时间标记
mkdir:创建目录
-p 递归式创建目录及子目录
rm:删除文件
-r:递归式删除文件或目录
-f:强制删除
shred /boot/grub2/grub.cfg
rmdir:删除空目录
mv:移动(mv 源文件路径 目标路径),为文件或目录重命名
cp:拷贝
cp 源文件 目标路径
cp时,如果目标路径没有指定,默认保存为源文件名称
如果在目标路径指定名称,则可以为复制文件重命名
同时复制多个文件时,重命名无效
复制目录可以使用“-r”选项,将目录复制到指定路径下
cat:查看文件内容
ln :建立链接(默认建立为硬链接,-s选项表示创建软连接)
硬链接:源文件的副本,对于系统来说,文件始终是同一个文件
每创建一次,文件的链接数都会加一,文件的节点数始终不变
当用户对任意硬链接文件操作时,所有文件同时发生变化
软链接(符号连接):源文件的快捷方式,此时创建的是新文件
软链接生成后,源文件链接数不会变化,文件将被分配一个新的节点数
当用户对软连接文件操作时,被链接的文件及硬链接文件会同时发生变化
硬链接有两点限制:
1.硬链接创建不可以跨文件系统
2.硬链接不可以为目录创建
“.” 当前目录
“..” 上一级目录
第三章:常用指令与vim使用
指令的分类:
内部命令和外部指令
内部指令:Shell自带的命令,比如cd、history,内部指令是不可删除的(系统默认解释器为bash)
外部命令:一些软件安装后添加的命令,比如ls、cp,外部指令可根据安装包或指令的路径删除
如何使用帮助:
常见的指令帮助使用有man和help
“man+指令”可以查看指令的帮助手册
help的使用根据内部和外部,格式有差异
内部指令:“help+内部指令”
外部指令:“外部指令 --help”
shell:终端内的指令‘翻译器’
bash:shell解释器的版本,除此之外,还有csh,tcsh,zsh等
终端:在图形化Linux配置中,给用户提供指令输入的编辑器
more:分页查看文件内容
空格向下翻页,直至文件结束,按q结束浏览
less:逐行查看文件内容
空格翻页查看,‘/+关键词’可以搜索,‘n’向下查找关键词‘N’向上查找关键词,按q结束浏览
head:查看文件头10行(默认)
head -n number file(head -number file)
tail:查看文件后10行(默认)
tail -n number file(tail -number file)
grep 过滤文件内容
-v 取反
-n 显示关键词在文件中的行数
-i 搜索时忽略被搜索词的大小写
-AX X为数字,表示搜索时同时显示关键词后X行
-BX X为数字,表示搜索时同时显示关键词前X行
du 统计目录内容大小
-s 显示汇总信息
-h 以人性化方式显示大小
wc 统计文件内容
默认显示信息,依次为行数,关键词数,文件大小
-l 统计行数
alias 命令别名建立,格式为:新指令=‘原指令 + 选项’
建立时有三种方式
1.在当前终端新建别名,只有当前终端生效,其他终端不生效,同时退出终端后失效
2.在当前用户的家目录中,找到隐藏文件bashrc(~/.bashrc),在文件中添加alias,再次登陆生效,针对的是当前用户
3.在/etc/bashrc文件中,添加alias,全局生效,所有登陆用户都可调用
alias simple=‘ls -lh’
unalias
find:实时查找
根据文件名查找
find /etc -name passwd
根据文件大小查找
find /etc -size -1k
因为find对管道支持比较弱,所以可以借助exec扩展选项
find /etc -size +1M -exec ls -lh {} \;
注:‘-’表示小于,‘+’表示大于,-exec通常需要和‘空格\;’一起使用,格式不完整,则指令不可正确执行
gzip 与 bzip2 压缩文件
压缩时,默认压缩比为6,压缩区间为1-9,9为最高压缩比
解压缩时,对应指令为gunzip,bunzip2
file 查看文件类型
dd 复制
dd if=/dev/zero of=testfile bs=1M count=100生成100M的文件
dd if=/dev/sda of=/tmp/mbr.hex bs=512 count=1
tar 目录打包备份
-c 创建打包压缩的文件
-f 将指定的文件或目录打包为文件
-v 显示压缩或解压缩的进度
-j bzip2格式的文件压缩
-z gzip格式的文件压缩
-J xz格式的文件压缩
-C 解压缩时指定解压路径,默认为当前目录
-x 解压缩文件
VIM编辑器使用
Vim编辑器的三种工作模式:
命令模式(默认模式):复制,粘贴,剪切,切换到其他模式
输入模式(编辑模式):a\i\o,针对每个字符进行编辑,删除
末行模式(扩展模式):保存,退出,保存并退出,字符替换等
光标方向移动
命令模式:
向下翻页:Page Down或Ctrl+F
向上翻页:Page Up或Ctrl+B
行内快速跳转
跳转至行首:Home键或者“^”、数字“0”
跳转到行尾:End键或“$”键
行间快速跳转
跳转到文件首行:1G或者gg
跳转到文件末行:G
#G 其中#代表数字,#G表示跳转到文件中的第#行
直接输入数字+回车
表示从当前行开始计算,跳到文件位置的累加行
操作类型
剪切(删除)
删除当前光标处单个字符:x或者Del
剪切当前行:dd
剪切从光标处开始的#行内容:#dd #表数字
删除当前光标前到行首所有内容:d^
删除当前光标到行尾所有内容:d$
复制
复制当前行:yy
复制从光标开始处的#行内容:#yy
粘贴
粘贴到当前行下:p
粘贴到当前行上:P
撤销
取消最近一次操作:u
反撤销:ctrl+r
查找
从上而下在文件中查找字符串“word”:/word
从下而上在文件中查找字符串“word”:?word
定位下一个匹配的被查找字符串:n
定位上一个匹配的被查找字符串:N
保存
保存并退出当前编辑:ZZ
shift+‘;’ :set number
输入模式:
a:在当前光标所在位置的后面输入字符
i:在当前光标所在位置的前面输入字符
o:在当前光标所在位置的下面重新开启一行输入字符
A:跳转到当前光标所在行行尾输入字符
I:跳转到当前光标所在行行首输入字符
O:在当前光标所在位置的上面重新开启一行输入字符
末行模式
显示行号
:set nu
取消显示行号
:set nonu
保存
保存修改内容:‘:w’
另存为:‘ :w /路径/文件’
未修改退出:‘:q’
放弃修改强制退出:‘:q!’
保存并退出:‘:wq’
打开新文件编辑
:e /路径/文件
读入文件内容到当前编辑
:r /路径/文件
将当前行中查找到的第一个字符“old” 替换为“new”
:s/old/new
将当前行中查找到的所有字符串“old” 替换为“new”
:s/old/new/g
在行号“#,#”范围内替换所有的字符串“old”为“new”
:#,#s/old/new/g
在整个文件范围内替换所有的字符串“old”为“new”
:%s/old/new/g
第四章:Linux软件安装
常见的安装方式有三种:源码包安装,rpm指令安装,yum安装
源码包安装:
下载源代码安装包文件
步骤1:tar包解压缩
用途:解压并释放源代码包到指定的目录/usr/src/
步骤2:./configure 配置
用途:设置安装目录、安装模块等选项(/usr/src/httpd-2.4.6/)
步骤3:make 编译
用途:生成可执行的二进制文件Makefile
步骤4:make install 安装
用途:复制二进制文件到系统,配置应用环境并使用应用软件
make uninstall/make clean
进入安装目录后,找到bin目录(/usr/local/httpd/bin)
执行./httpd,开启httpd程序
监听指令为netstat
netstat是网络信息监听指令
-l listening,获取正在监听的状态
-n 显示端口信息
-t TCP
-u UDP
-p program/PID
netstat -lntup | grep :80
打开firefox或本地用curl指令访问127.0.0.1,即可看到站点信息
需要修改主机页面,可以编辑/usr/local/httpd/htdocs/index.html
刷新firefox即可
rpm指令管理
针对已安装软件
rpm -qa:查询所有已安装软件的rpm包信息,列出包的版本
rpm -qi 软件名:列出已安装软件的详细信息
根据指令搜索包的名称
which vim(which搜索指令在系统中的路径)
rpm -qf 文件/目录/指令 查看该文件是由哪个rpm包所提供
针对未安装软件
rpm -qpl 包.rpm 选项p表示package,后面需要写包的完整路径信息
qpl表示列出这个包在安装之后生成哪些文件和目录
rpm -qpi 包.rpm 查询未安装包的详细信息
安装与卸载
rpm -ivh 包.rpm
i表示安装,v表示显示安装过程,h表示以‘#’作为进度,显示安装进度
rpm -e 包的名称
移除指定的rpm包
yum软件管理
首先,仓库源需要满足两点要求
1.仓库文件必须存放在/etc/yum.repos.d/目录中
2.仓库源文件的后缀必须以‘.repo’结尾
repo文件格式:
[base]
中括号的名称为仓库源名称,通常为字母和数字
name=my new repo cdrom
name表示对yum源的描述,方便管理当前yum
baseurl=file:///mnt/cdrom
baseurl=http://10.0.0.1/packages
baseurl表示声明yum可以管理并使用的rpm包路径,可以基于本地,也可以基于网络
enabled=1
enabled表示当前仓库是否开启,1为开启,0为关闭,此项不写默认为开启
gpgcheck=0
gpgcheck表示安装rpm包时,是否基于公私钥对匹配包的安全信息,1表示开启,0表示关闭,此项不写默认为验证
yum clean all 清空缓存信息
yum list [包的名称] 列出所有[指定]包的信息
yum info 包的名称 显示包的详细信息
yum install 包的名称 安装指定的rpm包
yum remove 包的名称 移除指定的rpm包
yum search 关键词 根据关键词,在已发现的repo源中搜索包含关键词的rpm包
yum provides 命令 根据命令,在已发现的repo源中搜索安装指令的rpm包
yum history list/info/undo/redo number
history可以列出,查看,重装,反安装对应的包,但是是以yum指令的操作顺序为依据的,所以需要加指定的数字执行
第五章:账号与权限管理
用户与组管理
useradd指令:
1.新建用户时,系统会将/etc/skel中的目录及文件拷贝到新建用户的家目录中
2.在/var/spool/mail中,新建用户名的邮箱
3.在passwd和shadow文件中,增加用户信息
userdel [-r] username
不加-r选项,只删除passwd和shadow文件中的用户信息
加-r选项,删除passwd和shadow文件中的用户信息,同时删除用户的家目录和邮箱
usermod
对已存在的账户做属性修改
-s 修改用户的登陆shell
-L 账户锁定
-U 解锁账户
passwd密码修改
root:
1.不需要知道当前的密码
2.设置新密码时,不需要遵循密码要求(1.不能少于8个字符,2.满足复杂度要求)
普通用户:
1.需要知道当前密码
2.设置新密码时,必须遵循密码要求
groupadd
增加新组,组创建时可以指定组的GID等属性
groupmod
修改组的属性,比如名称,GID等
groupdel
删除组,但是只能针对附加组,主组无法删除
用户创建时,默认的属性(比如UID,GID,是否创建家目录,创建邮箱等)都是通过/etc/login.defs文件控制的,修改此文件的属性,会影响以后创建的所有用户
如果需要对现存账户的属性做修改,可以借助chage指令,修改用户的密码策略,也可通过编辑/etc/shadow
文件修改(不推荐)
比如:chage -l username,查看用户的密码策略
chage -M 90 username,将用户的密码有效期修改为90天
文件和目录的权限为rwx
针对文件:
r表示可以读取文件
w表示可以对文件内容做修改
x表示文件可执行
针对目录:
r表示可以列出目录内容
w表示可以在目录中增删改查
x表示可以进入目录,同时可以查看目录中文件的详细信息
rwx对应的数字为421,所以文件或目录的最大权限为777
修改文件权限的指令为chmod
u表示user,属主权限位
g表示group,属组权限位
o表示other,其他用户权限位
a表示所有,等于ugo
所以设置权限时,可以使用chmod ugo(a) +/- rwx
比如:chmod u-r file/chmod a+x file等
也可使用数字代表权限,对应的三个数字即为属主、属组、其他用户
比如:chmod 640 file
文件属性
文件属性分为10个字段
第一字段为文件属性
第二至四字段为属主权限
第五至七字段为属组权限
第八至十字段为其他用户权限
文件属性中,‘-’表示文件,‘d’表示目录,‘l’表示符号链接,‘b’表示块设备,‘c’表示特殊 字符设备
修改文件的属主属组,可以使用chown和chgrp指令
chown即可单独修改属主,也可单独修改属组,也能同时修改属主属组
chgrp只能修改属组
chown 属主:属组 file/directory
chown 属主.属组 file/directory
chgrp 属组 file/directory
扩展权限控制
因为默认的属主属组只能控制一个用户和一个组,无法针对每个用户做权限控制
所以借助acl属性,完善权限控制
设置:setfacl(-m设置acl,针对用户,关键词为‘u’,针对组,关键词为‘g’,设置时,权限不能为空)
获取:getfacl
setfacl -m u:tom:rw- /file
setfacl -m u:jerry:- /file
setfacl -m g:IT:rw- /file
getfacl /file
移除权限(-x移除acl,移除权限时,无需指定权限,针对用户或组即可)
setfacl -x u:jerry /file
第六章:进程管理与计划任务
进程管理
ps:查看静态进程信息
a选项表示查看所有进程信息
u选项表示显示进程所属的用户信息
x选项表示显示默认信息以外的信息
STAT:
S:当前状态为睡眠状态
s:当前进程有多个子进程
l:当前进程可能会开启多个子进程
R:当前进程正在运行中
+:表示这个进程在前台运行
Z:表示僵尸进程
<:表示当前进程优先级高
top:动态查看进程信息(默认每3秒刷新一次,可以按q退出)
M:按M表示按照内存使用量从大到小排序
P:按P表示按照CPU使用量从大到小排序
-d
nice
renice
pgrep:表示查看指定服务的PID(进程ID值)
-u表示查看指定程序用户的进程信息
比如:pgrep -u named named
第一个named为named用户,在passwd文件中,第二个进程名称named,可以通过
ps aux | grep named获取
pstree:以树状结构显示进程的关联信息
Ctrl+z 前台进程调入后台
Ctrl+c 结束进程
jobs 查看后台进程
fg # 将后台第#个进程在前台运行(不加数字时,jobs程序上为‘+’的程序优先被调回)
bg # 将后台第#个进程在后台运行(不加数字时,jobs程序上为‘+’的程序优先被调回)
& 直接将进程放在后台运行
kill、killall 结束进程
kill后面直接写数字时,表示是ps过滤出来的进程信息
kill后面加%加数字时,表示结束jobs后台进程中的对应进程
如果默认进程结束不掉,可以使用kill -9 PID强制结束进程
killall表示同时结束多个相同程序发起的进程
killall -9 xeyes
at 一次性定制任务
设置格式
at [HH:MM] [yyyy-mm-dd]
at>ctrl+d 结束编辑
查询与删减
atq(at -l)
atrm
at –c # 查看指定计划任务内容
crontab 任务计划,可以在指定时间重复执行
查看指令写入格式,可以通过cat /etc/crontab获取(分/时/日/月/周)
用户定义的配置文件位于 /var/spool/cron/用户名
crontab -e [-u 用户名] 编辑计划任务
crontab -l [-u 用户名] 查看计划任务
crontab -r [-u 用户名] 删除计划任务
crontab -u
date 获取或修改时间
date 月日时分年
date -d '+90days'
hwclock 获取或修改BIOS时间
-r 表示读取BIOS时间
-w 表示将当前时间写入BIOS
第七章:网络配置与日志分析
查看网络接口信息
查看所有活动网络接口信息
ifconfig(ip address)
查看指定网络接口信息
ifconfig 网络接口名(ifconfig eth0)
hostname 查看主机名
直接cat在后面加新的主机名表示临时设置主机名
route 查看路由表
route -n 将默认路由条目的网段信息以地址形式显示
netstat 查看接口统计信息等
-lntup
ping 测试网络连通性,后接主机名或IP
-c 持续ping的次数,默认为持续ping
-s ping时发送的数据包数量
traceroute 测试主机到主机之间经过的网络节点
nslookup 测试DNS域名解析
可以直接加主机名或IP,也可回车后分别解析
以上指令都为临时设置,永久设置需要修改配置文件,或借助指令写入配置文件
网卡配置文件的路径为/etc/sysconfig/network-scripts中
网卡配置文件中的重要内容
DEVICE=eth0 设备名称
ONBOOT=yes|no 开机是否启用网卡
BOOTPROTO=static|none|dhcp 网卡运行模式(前两种为手动配置固定IP,DHCP为动态获取)
IPADDR= IP地址
NETMASK= 或者prefix=掩码位 子网掩码
GATEWAY= 网关
路由条目文件的路径与网卡一致,只是路由条目针对不同的网卡,名称要以route开始
比如route-eth0
10.0.0.0/8 via 192.168.1.1
需要注意的是后面要转发的IP本机必须能通讯,否则重启网卡服务会失败
RHEL7网卡信息查看
查看网卡链接
nmcli con show "static-eth0"
查看网卡物理状态
nmcli dev status
ethtool eth0
查看网卡信息
nmcli dev show eth0
ifconfig(ip addr)
网卡配置生效
systemctl restart network.service
service network restart
nmcli con reload
网卡配置
为网卡增加新的链接
nmcli con add con-name "Simple" ifname eth0 type ethernet ip4 172.25.0.1/24 gw4 172.25.0.254
为网卡设置DNS
nmcli con modify " Simple" ipv4.dns 172.25.254.254
如果需要启用新的链接,需要禁用之前的链接
nmcli con modify " Simple" connection.autoconnect yes
nmcli con modify "System eth0" connection.autoconnect no
修改IP地址
nmcli con modify " Simple" ipv4.addresses 172.25.0.100/24
增加网卡的从IP
nmcli con modify "System eth0" +ipv4.addresses 10.0.0.1/24
以上配置修改后,需重启网卡服务
修改网卡名称
1.vim /etc/default/grub
找到GRUB_CMDLINE_LINUX行,直接到最后添加,net.ifnames=0 biosdevname=0
2.grub2-mkconfig -o /boot/grub2/grub.cfg
更新配置文件
3.cd /etc/sysconfig/network-scripts/
将网卡名称修改为ifcfg-eth0
mv ifcfg-eno16777736 ifcfg-eth0
vim ifcfg-eth0 NAME=eth0
4.reboot
重启,使网卡名称恢复为eth命名
常用网络配置
主机名修改的三种方式:
3.nmtui
DNS服务器地址保存位置
/etc/resolv.conf hostname abc.example.com
1.vim /etc/hostname 主机名称配置文件
2.hostnamectl set-hostname 主机名
nameserver 8.8.8.8
主机与IP地址映射记录
/etc/hosts
ip地址 主机名