Linux cent os学习

如果需要其他相关学习资料可加QQ群1031811955
cd 命令来切换目录
.表示当前目录
… 表示当前目录的上一级目录(父目录)

  • 表示用 cd 命令切换目录前所在的目录
    ~ 表示用户主目录的绝对路径名

ls命令
ls:显示文件或目录信息
ls -al 列出所有文件的权限与属性
ls -lh
.config 前面有点的文件为隐藏文件
-a 显示所有文件
-l 详细信息显示
-d 查看目录属性
-h显示文件大小
-lh
ls -l -i 目录名 可以显示inode编号

mkdir创建文目录
mkdir:当前目录下创建一个空目录
mkdir -p /tmp/file1/file2 创建文件目录树
rmdir:删除空目录
touch:生成一个空文件或更改文件的时间

复制文件夹和移动文件夹 cp,mv,rm
一、文件复制命令cp
命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)
cp [option] source1 source2 source3 … directory
参数说明:
-a:是指archive的意思,也说是指复制所有的目录
-d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身
-f:强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
-i:若目标文件(destination)已存在,在覆盖时会先询问是否真的操作
-l:建立硬连接(hard link)的连接文件,而非复制文件本身
-p:与文件的属性一起复制,而非使用默认属性
-r:递归复制,用于目录的复制操作
-s:复制成符号连接文件(symbolic link),即“快捷方式”文件
-u:若目标文件比源文件旧,更新目标文件
如将/test1目录下的file1复制到/test3目录,并将文件名改为file2,可输入以下命令:
cp /test1/file1 /test3/file2
二、文件移动命令mv
命令格式:mv [-fiv] source destination
参数说明:
-f:force,强制直接移动而不询问
-i:若目标文件(destination)已经存在,就会询问是否覆盖
-u:若目标文件已经存在,且源文件比较新,才会更新

如将/test1目录下的file1复制到/test3 目录,并将文件名改为file2,可输入以下命令:
mv /test1/file1 /test3/file2
三、文件删除命令rm
命令格式:rm [fir] 文件或目录
参数说明:
-f:强制删除
-i:交互模式,在删除前询问用户是否操作
-r:递归删除,常用在目录的删除

如删除/test目录下的file1文件,可以输入以下命令:
rm -i /test/file1
复制:
CP命令
格式: CP [选项] 源文件或目录 目的文件或目录
选项说明:-b 同名,备分原来的文件
-f 强制覆盖同名文件
-r 按递归方式保留原目录结构复制文件

cp -Rf /home/user1/* /root/temp/
将 /home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身。
即格式为:cp -Rf 原路径/ 目的路径/
移动:
mv ./WorkReport/web.xml ./WorkReport/WEB-INF/
注:移动/WorkReport/web.xml文件到/WorkReport/WEB-INF/

mv /data/new /data/old/
注:移动/data/new 到/data/old/文件夹下
注意点:移动文件夹的话就不要再加 / 了
如果是移动文件夹下的所有文件的话就可以文件夹后面跟上 /*
cp:复制文件或目录
cp 原 目
-r 复制目录
-p 保留文件属性

mv:移动文件或目录、文件或目录改名

clear:清屏

rm:删除文件或目录
rm -rf 文件名
-r 删除目录
-f 强制执行

ln:建立链接文件
find:查找文件
file/stat:查看文件类型或文件属性信息

umask:文件默认权限查看
umask -s
charp:修改文件所属用户组
chown:修改文件拥有者
chomd:修改文件的权限

shell快捷键
ctrl+a 调到命令的开头
ctrl+e 调到命令的末尾
ctrl+u 将光标处到命令行开头的内容清除
ctrl+k 将光标处到命令行结尾的内容清除
ctrl+r 在历史记录列表中搜索某一命令
ctrl+l 清屏
history //显示历史命令
![number] //直接执行曾今执行过的命令
上/下 箭头

查看文件和目录
查看当前所在的路径:pwd
命令格式:命令 -选项 –参数(目录)
查看当前路径下的文件:ls
d:只看当前目录的信息
l:看详细信息
a:显示所有 任何一个文件前面加上“.”,表示隐藏文件
h:显示文件大小

查看文件 cat
cat/less/more //查看文件
nl //显示的时候,顺便出现行号
tac //从最后一行开始显示
head //显示文件前10行 -n:设置行数
tail //显示文件尾10行 -n:设置行数
wc //显示文件的行数,数字,字节

cat:查看文本文件内容
cat /etc/group
more:可以分页看
less:不仅可以分页,还可以方便地搜索,回翻等操作
tail -10: 查看文件的尾部的10行
head -20:查看文件的头部20行
echo:把内容重定向到指定的文件中 ,有则打开,无则创建

查看文件-cat
cat
A \整合命令-vET
b \列出行号,但是空白行不标志行号
E \将结尾的断行字符($)显示出来
n \列出行号,空白行也会标志行号
T \将tab按键以^I显示
v \列出一些看不来的特殊字符

查看文件-nl
nl
-b
ba //无论是否有空行,都列出行号
bt //如果有空行,则不列出行号(默认)
-n
nln //行号在屏幕最左方
nrn //行号在屏幕最右方,前面不加0
nrz //行号在屏幕最右方,前面加0
-w //缩进多少位

查看文件-more
more(一页一页翻动)
空格:向下翻一页
回车:向下翻一行
/字符串:所搜
:f:立刻显示文件名和行数
b:翻到第一页
q:离开

查看文件-less
less(一页一页翻动)
空格:向下翻动一页
pagedown:向下翻动一页
pageup:向上翻动一页
n:重复前一个搜索
N:反方向重复前一个搜索
q:退出
head,tail:显示文件头或尾几行
-n:指定显示几行。默认是10行
日志文件:/var/log/messages。我们只需要看尾部的最新的几行即可
wc:显示文件的行数,数字,字节
-c:只显示字节
-w:只显示字数。一个字被定义为由空白、空格或换行字符分隔的字符串。
-l:只显示行

Vim编辑器
i键插入
esc退出
u撤销
x删除
v选择文本
y复制
yy复制当前行
dd删除光标所在行
p粘贴
:w保存
:wq保存退出
:q!强退

文件处理
创建硬链接
link oldfile newfile
ln oldfile newfile
创建软连接
ln –s oldfile newfile

linux文件目录
/bin:系统单用户可执行文件
/sbin:超级管理员系统命令
/boot:系统启动目录
/dev:设备文件目录
/etc:系统配置文件
/media:媒体设备文件
/mnt:挂载文件目录
/src:服务文件目录
/tmp:程序暂时存放文件目录
/home:家目录
/root:系统管理员目录
/opt:第三方软件
/proc:虚拟化内存软件目录
/run:进程文件
/srv:压缩过的文件
/sys:系统文件
/usr:安装的软件
/var:可变数据,日志文件
/usr/bin:普通用户可以使用的命令
/usr/sbin:超级用户可以使用的命令
/usr/lib:32位库文件
/usr/lib64:64位库文件

用户的基本操作
添加一个用户:useradd(管理员)
用法:useradd 用户名
设置用户的登入密码:passwd (管理员)
用法:passwd 用户名
查看当前登入的用户:whoami
切换用户:su
用法1:su 用户名 用法2:su 回车(切换到root)
特点:管理员切换普通用户不需要密码,普通用户之间切换需要密码
管理员登入(#),普通用户登入($)

Linux文件处理
ls -l
d:表示目录
-:表示文件
l:连接文件
b:设备文件,提供存储的接口设备
c:设备文件,提供串行的接口设备一键盘,

Linux文件权限
权限:
文件的属性:
d:表示目录
-:表示文件
l:连接文件
b:设备文件,提供存储的接口设备
c:设备文件,提供串行的接口设备–键盘,鼠标
rwx,读、写、执行,没有权限就是-
第一个组rwx:文件所有者的权限
第二个组rwx:文件所属组的权限
第三个组rwx:文件其他人的权限
r:具有读取目录结构列表的权限,可以查看目录下有哪些文件
w:该权限对于目录来说是很大的,
1、可以在该目录下新建新的文件和目录
2、可以删除已经存在的文件和目录
3、将已经存在的文件和目录重命名
4、移动该目录内的文件和目录的位置
x:是否可以进入该目录
文件权限
u 所有者 g 所有组 o 其他人
r 读 w 写 x 执行

Linux文件权限-例子
假设test1, test2, test3 同属于testgroup 这个群组,如果有下面的两个文件,请说明两个文件的拥有者与其相关的权限为何?
-rw-r–r-- 1 root root 238 Jun 18 17:22 test.txt
-rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 lewis.txt
文件test.txt 的拥有者为root,所属群组为root。至于权限方面则只有root 这个账号可以存取此文件,其他人则仅能读此文件;
假设test1, test2, test3 同属于testgroup 这个群组,如果有下面的两个文件,请说明两个文件的拥有者与其相关的权限为何?
-rw-r–r-- 1 root root 238 Jun 18 17:22 test.txt
-rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 lewis.txt
lewis.txt的拥有者为test1,而所属群组为testgroup。
1、test1 可以针对此档案具有可读可写可执行的权力;
2、同群组的test2, test3 两个人与test1 同样是testgroup 的群组账号,则仅可读可执行但不能写(亦即不能修改);
3、至于非testgoup 这一个群组的人则仅可以读,不能写也不能执行!
如果我的目录为底下的样式,请问testgroup 这个群组的成员与其他人(others)是否可以进入本目录?
drwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 groups/
文件拥有者test1[rwx]可以在本目录中进行任何工作;
而testgroup 这个群组[r-x]的账号,例如test2, test3 亦可以进入本目录进行工作,但是不能在本目录下进行写入的动作;
other 的权限中[r–]虽然有r ,但是由于没有x 的权限,因此others 的使用者,并不能进入此目录!

Linux文件权限 chown
chown:修改文件的拥有者,前提是要有该拥有者
chown 拥有者 文件/目录
-R 递归修改
chgrp:修改文件所属组,前提是要有该组
-R 递归修改
chmod:修改拥有者和所属组的权限
加减法:u/g/o +/-/= r/w/x
数字法:r=4,w=2,x=1
rwx=4+2+1=7
rw-=4+2=6
r–=4
r-x=4+1=5

用户和组
创建一个组-groupadd
groupadd:创建组
组的默认信息:/etc/login.defs
-g:指定gid
groupdel
groupmod
gpasswd
-a 为组添加用户 gpasswd -a 用户 组
-d 为组删除用户

默认权限-umask
umask:查看当前用户的umask权限; -S 选项
0022—拿走的权限
第一个数字表示特殊权限
022=rwxr-xr-x
默认创建文件和目录的权限,文件会拿走X权限
临时的修改:umask 0000
永久修改: /etc/bashrc(不建议)

文件的特殊权限-SUID SGID SBIT
当s出现在拥有者的x权限位置时候,表示拥有者有SUID的权限(Set UID)
当s出现在所属组的x权限位置时候,表示所属组有SGID的权限(Set GID)
当t出现在其他人的x权限位置时候,表示其他人有SBIT的权限(Sticky Bit)
SUID,临时获取文件拥有者的权限—只能针对文件
SGID,即使可以作用于目录,也可以作用于文件
作用于文件:SUID一样
作用于目录:继承父集目录—目录会不停的继承
SBIT指的是,只有文件的拥有者,才能删除,修改该目录下的文件—只能针对目录,只能在其他人的位置上进行修改
S和T都有大写和小写之分
大写说明:没有x权限
小写说明:有x权限
SUID=4 SGID=2 SBIT=1

Linux用户账户管理
账户和组名:人看的
UID和GID:Linux看的
id : 查看当前登入用户的UID和GID
当我们使用ls –l的时候,系统会根据/etc/passwd和/etc/group文件的内容,找到UID和GID对应的名称,进行显示
如果随意修改了/etc/passwd下的用户的UID会发生什么情况
/etc/passwd :记录了Linux上所有的账号
/etc/shadow:记录了账户对应的密码
/etc/group:记录了所有的组

Linux用户创建-useradd
useradd
-u:设置UID
-g:设置主要组
-G:设置要附属组
-c:设置用户说明
-d:指定用户家目录
-s:指定用户shell
-e:账号失效日期,格式为:YYYY-MM-DD
-f:指定密码是否失效,0表示立刻失效,1表示永不失效
使用了useradd后,会默认做以下几个操作
1、在/etc/passwd下建立相关的资料
2、在/etc/shadow下写入密码的相关的参数
3、在/etc/group中写入和账号名一样的组
4、在/home下创建用户的家目录
id命令
显示用户的uid和gid

Linux用户创建-passwd
passwd 用户名 //所有人都可以通过该命令来修改自己的密码
-l:锁住该账号,在/etc/shadow中放密码的位置加个!
-u:解锁
-S:显示账号的密码参数
-n:接天数,设置多久可以不修改密码
-x:接天数,设置多久内必须修改密码
-w:接天数,设置密码过期前警告天数
-i:接天数,设置密码失效天数
Linux用户创建-chage
chage 可以修改和密码有关的时间参数
-l:查看一个账户和密码有关的时间参数
-d:YYYY-MM-DD,修改最近一次更改密码的时间
-E: YYYY-MM-DD,修改账号的失效时间
-I:天数,设置密码几天后失效
-m:天数,设置密码至少保留几天
-M:天数,设置密码多久后,需要更新
-W:天数,设置密码过期前警告时间

Linux用户创建-usermod
usermod可以对用户账户的信息进行细微的修改
-c:账号说明
-d:修改家目录
-g:修改主要组
-G:修改附属组
-a:与-G一起用,增加附属组
-l:修改用户名
-u:修改UID
-L:冻结账号
-U:解冻
删除一个用户-userdel
要彻底的删除一个账号,比较麻烦
1、删除/etc/passwd;/etc/shadow文件中的内容
2、删除/etc/group;/etc/gshadow
3、删除/home/username;/var/spool/mail/username
4、删除该用户曾经来该Liunx中创建的文件
find进行搜索,先搜索,在使用userdel
-r 连同家目录和邮箱一起删除

文件权限-getfacl和setfacl
acl:针对单一使用者,设置单一文件或目录来进行rwx的权限修改
getfacl:获取单一使用者,针对单一文件或目录的权限
setfacl:配置单一使用者,对单一文件或目录的权限
-m 配置acl参数
-x 删除单个文件的acl
-b 删除acl的配置
-R 递归配置acl参数
setfacl用法
setfacl -m u:用户名:rwx 文件或者目录
setfacl -m g:组名:rwx 文件或者目录
setfacl –m m::rwx 修改mask值
getfacl 文件名
mask的定义—权限上限
1、权限的集合(特点用户,特定组,所属组的并集)
2、如果mask中没有的权限,即使getfacl设定了,也不会有

打包和压缩
打包程序:tar
c:创建文档;
t:列出存档内容;
x:提取存档;
f filename:要操作的存档的文件名;
v:详细信息
注意:
1、选项前不用加-
2、创建之前请检查有木有重名文件(覆盖且不提示)
3、要使tar可以打包选定的文件,执行tar命令的用户必须要能够读取这些文件
tar支持三种不同压缩方式:
gzip:压缩速度最快,历史最久,应用最广泛;
bzip2:压缩成的存档文件小,可用性不如gzip;
xz :最新的方式,提供最佳的压缩率。
实际环境中3种情况都可能遇到,所以要创建不一样格式的归档文件就有自己的选项。
z用于gzip压缩:filename.tar.gz
j用于bzip2压缩:filename.tar.bz2
J用于xz压缩:filename.tar.xz

tar cf filename
tar cf filename.tar /etc
tar tf filename.tar
ls

df:列出文件系统的整体磁盘使用量
-a:列出所有的文件系统

周期性计划作业–cron
cron:是一个进程。可以让linux周期性的执行某一命令。
crontab是一个命令,可以设置linux周期性的执行某一命令。
-u :设置某一个用户的周期性工作—root权限;
-e :编辑 crontab 的工作内容
-l :查阅 crontab 的工作内容
-r :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑

crontab的格式讲解
一行代表一个任务
minute hour day month week command
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

输入输出重定向

file //标准输出重定向到文件—覆盖

file //标准输出重定向到文件—追加
2> //标准错误重定向到文件—覆盖
2>> //标准错误重定向到文件—追加
2>/dev/null //标准错误重定向到回收站
&>file //标准输出和标准错误重定向到文件—覆盖

file 2>&1 //标准输出和标准错误重定向到文件—追加

输入输出重定向—举例
[root@localhost tmp]# date > abc
[root@localhost tmp]# date >> abc
[root@localhost tmp]# cat /etc/passwd > abc
[root@localhost tmp]# 1234 2> abc
[root@localhost tmp]# 1234 2> /dev/null
[root@localhost tmp]# 1234 >> abc 2>&1
配合计划任务
*/1 * * * * date >> /tmp/abc

管道符
字符:| 这就是管道符。
作用有两个:
1、承上启下:把上一个指令的输出作为下一个指令的输入来执行。
2、搭配grep 字符实现过滤功能。
[root@localhost tmp]# ls -l /etc/ | more
[root@localhost tmp]# ps -aux | grep cron
[root@localhost tmp]# ps -aux | grep cron > abc

正则表达式和通配符
常用的通配符
*:匹配任意多个字符
?:匹配任意一个字符
[…]:匹配中括号内出现的任意一个字符
[!..]:不匹配中括号内出现的任意一个字符

正则表达式
字符匹配
.:匹配任意单个字符
:匹配其前面一个字符出现任意次
?:匹配其前面的字符1次或0次
+:匹配其前面一个字符出现至少一次(在扩展正则表达式中)
位置匹配
^:锚定行首
KaTeX parse error: Undefined control sequence: \< at position 7: :锚定行尾 \̲<̲或\b:锚定词首,其后面的任意…:空白行
\ :通常用于打开或关闭后续字符的特殊含义
分组() :
(ab)
: 匹配ab这个分组出现任意次
\1:引用第一个左边以及与之对应的右边所包括的所有内容,同理还有\2,\3
特殊子字符类:
[:alnum:] :任何字母和数字
[:alpha:] :任何字母
[:cntrl:] :控制字符. 在ASCII表中对应八进制000 到 037, 和177 (‘DEL’).
[:digit:] :任何数字
[:graph:] :匹配打印字符,相当于’[:alnum:]’ +’[:punct:]’.
[:lower:] :小写字母
[:print:] :可打印字符,相当于 ‘[:alnum:]’, ‘[:punct:]’, 和space.
[:punct:] 标点符号,’! " # $ % & ’ ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ’ { | } ~’
[:space:] 空白字符,tab, newline, vertical tab, form feed, carriage return, and space.
[:upper:] 大写字母
[:xdigit:] 任何16进制的数字,相当于[0-9a-fA-F]

查找和替换
grep只能用于查找文件中的内容
sed可以查找,然后替换或者插入想要的内容
a :新增,a的后面可以接字串,而这些字串会在新的一行出现(目前的下一行);
d :删除,因为是删除啊,所以d后面通常不接任何东西的;
i : 插入,i的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的资料印出。通常 p 会与参数 sed
s :取代,可以直接进行取代的工作!

查找语句find
用法:find [路径] [命令参数] [表达式]
参数:
-name “文件名”:查找指定名称文件;
-user 用户名:查找指定用户拥有的文件;
-group 组名:查找指定组拥有的文件;
-mtime n:查找在N 天前被修改过的文件;
-atime n:查找在N 天前被访问过的文件;
-type d/f/b/l/p:查找指定类型的文件;
-empty:查找为空的文件;
-size:按容量大小查找;
-perm mode:查找指定属性的文件;
-exec command {} ;:查找指定的文件并执行指定的命令;
-newer 文件名 :查找比指定文件新的文件

分区
fdisk -l查看磁盘分区信息
fdisk -l每个字段的意思
第一个字段:设备标识或者名字
第二个字段:boot表示启动分区或者引导分区,*从当前分区启动系统
第三个字段:磁盘柱面的开始
第四个字段:磁盘柱面结束位置
第五个字段:分区的大小
第六个字段:分区标识83表示xfs或者ext4文件系统,82表示swap分区,8e表示lvm卷
第七个字段:标识信息使用的是Linux系统

fdisk常见的选项
m帮助
n创建分区类型:p主分区,e扩展分区,l逻辑分区
t转换分区格式
p显示磁盘信息
w保存并退出
q不保存退出
d删除分区

fdisk命令菜单常用参数如下所示:
d:(del)删除一个分区。
n:(new)新建一个新分区。
p:(print)打印分区表。
q:(quit)放弃不保存。
t:改变分区类型
w:(write)把分区写进分区表,保存并退出。
l:列出已挂载的磁盘
fdisk -l
fdisk /dev/sda 对sda盘分区
m获取帮助
n创建分区
p创建主分区 e扩展分区
w保存分区

df列出文件系统的整体磁盘空间使用情况
df命令语法
df [选项] [文件名]
参数:
-a:–all,显示所有的文件系统,包括虚拟文件系统,参考示例2。
-B:–block-size,指定单位大小。比如1k,1m等,参考示例3。
-h:–human-readable,以人们易读的GB、MB、KB等格式显示,参考示例4。
-H:–si,和-h参数一样,但是不是以1024,而是1000,即1k=1000,而不是1k=1024。
-i:–inodes,不用硬盘容量,而是以inode的数量来显示,参考示例5。
-k:以KB的容量显示各文件系统,相当于–block-size=1k。
-m:以KB的容量显示各文件系统,相当于–block-size=1m。
-l:–local,只显示本地文件系统。
–no-sync:在统计使用信息之前不调用sync命令(默认)。
-sync:在统计使用信息之前调用sync命令。
-P:–portability,使用POSIX格式显示,参考示例6。
-t:–type=TYPE,只显示指定类型的文件系统,参考示例7。
-T:–print-type,显示文件系统类型,参考示例8。
-x:–exclude-type=TYPE,不显示指定类型的文件系统。
–help:显示帮助信息。
–version:显示版本信息。

ls /dev/sda 显示磁盘分区信息
partprobe /dev/sda 内核重新读取新的分区表
mkfs.ext4 /dev/sda1格式化sda1硬盘

mkfs -t xfs /dev/sdb1 创建xfs文件系统
mkfs -t ext4 /dev/sdb2 格式化ext4文件系统
parted -l 查看分区文件系统类型

mount -a 的意思是将/etc/fstab的所有内容重新加载。
mount 是可以显示/etc/fstab的内容。

yum
配置yum源
rpm -qa | grep yum 检查yum是否安装
rpm -ivh yum-*.noarch.rpm 安装yum
yum -y install package-name 安装指定软件
yum remove package-name 卸载指定软件

Linux中的进程
ps 用于显示当前进程状态
常用选项
-aux:列出所有进程
-ef:列出所有进程
-l:列出和当前用户有关的进程
-u 用户:查看某一用户的进程状态
top 可以查看实时的进程状态
运行中:
R:该进程正在运行或等待运行
睡眠:
S:正在休眠但是可以被唤醒
D:正在休眠,而且不可以被唤醒,该进程被中断,可能会导致设备的异常状态
K:正在休眠,而且不可以被唤醒,该进程可以被中断。
已停止:
T:进程被停止,但是可以通过其他进程来进行恢复
T:正在被调试的进程
僵停:
Z:子进程在退出时向父进程发出信号,除PID外,所有资源全部释放
X:父进程获取了子进程的结构,子进程可以完全释放,该状态进程中是看不到的
进程优先级
1、< 高优先级
2、n 低优先级
3、s 包含子进程
4、+ 位于后台的进程组

ps –aux参数解释
1、%CPU: 占用的 CPU 使用率
2、%MEM: 占用的记忆体使用率
3、VSZ: 占用的虚拟记忆体大小
4、RSS: 占用的记忆体大小
5、TTY: 终端的次要装置号码 (minor device number of tty)
6、STAT: 该行程的状态
7、START: 行程开始时间
8、TIME: 执行的时间
9、COMMAND:所执行的指令

查看系统资源占用情况 top
top:
主要参数
d:指定更新的间隔,以秒计 算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S: 累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行 程。
n:显示更新的次数,完成后将会退出to
显示参数:
PID(Process ID):进程标示号。
USER:进程所 有者的用户名。
PR:进程的优先级别。
NI:进程的优先级别数值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的 物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负 数。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总 的CPU时间。
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
top命令使用过程中,还可以 使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
<空格>:立刻刷新。
P:根据CPU使用大小进行排 序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c: 切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐 方法。

free
1.作用
free命令用来显示内存的使用情况,使用权限是所有用 户。
2.格式
free [-b-k-m] [-o] [-s delay] [-t] [-V]
3.主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显 示内存总和列。
-o:不显示缓冲区调节列。
free 查看可用的内存和虚拟内存空间
free -m

uptime
18:59:15 up 25 min, 2 users, load average: 1.23, 1.32, 1.21
现在的时间
系统开机运转到现在经过的 时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数: -V 显示版本资讯。

vmstat
procs -----------memory---------- —swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70
1 观察磁盘活动情况
磁 盘活动情况主要从以下几个指标了解:
bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
bo:表示 每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越 大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要 进行性能调整了。
2 观察cpu活动情况
vmstat比top更能反映出cpu的使用情况:
us:用户程序使用cpu的时间比 例。这个数字越大,表示用户进程越繁忙。
sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id:cpu 空闲的时间比例。
wa:cpu等待未决的磁盘IO的时间比例。

iostat
用于统 计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量
参数:
-c 只显示CPU行
-d 显示磁盘行
-k 以千字节为单位显示磁盘输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标

avg-cpu: %user %nice %sys %iowait %idle
20.25 0.18 2.61 76.39 0.57
%iowait 等待本地I/O时CPU空闲时间的百分比
%idle 未等待本地I/O时CPU空闲时间的百分比

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
hda 9.86 284.34 84.48 685407 2036
每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节 块读取(Blk_read)和写入(Blk_wrtn)的总数量。  系统
  # uname -a # 查看内核/操作系统/CPU信息
   # head -n 1 /etc/issue # 查看操作系统版本
  # cat /proc/cpuinfo # 查看CPU信息
   # hostname # 查看计算机名
  # lspci -tv # 列出所有PCI设备
  # lsusb -tv # 列出所有USB设备
  # lsmod # 列出加载的内核模块
  # env # 查看环境变量
  资源
   # free -m # 查看内存使用量和交换区使用量
  # df -h # 查看各分区使用情况
  # du -sh # 查看指定目录的大小
  # grep MemTotal /proc/meminfo # 查看内存总量
  # grep MemFree /proc/meminfo # 查看空闲内存量
  # uptime # 查看系统运行时间、用户数、负载
  # cat /proc/loadavg # 查看系统负载
  磁盘和分区
  # mount | column -t # 查看挂接的分区状态
  # fdisk -l # 查看所有分区
  # swapon -s # 查看所有交换分区
  # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
  # dmesg | grep IDE # 查看启动时IDE设备检测状况
  网络
  # ifconfig # 查看所有网络接口的属性
  # iptables -L # 查看防火墙设置
  # route -n # 查看路由表
  # netstat -lntp # 查看所有监听端口
  # netstat -antp # 查看所有已经建立的连接
  # netstat -s # 查看网络统计信息
  进程
  # ps -ef # 查看所有进程
   # top # 实时显示进程状态
  用户

w # 查看活动用户

用 ‘top -i’ 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况…
还 有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。
top:
主要参数
d:指定更新的间隔,以秒计 算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S: 累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行 程。
n:显示更新的次数,完成后将会退出to
显示参数:
PID(Process ID):进程标示号。
USER:进程所 有者的用户名。
PR:进程的优先级别。
NI:进程的优先级别数值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的 物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负 数。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总 的CPU时间。
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
top命令使用过程中,还可以 使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
<空格>:立刻刷新。
P:根据CPU使用大小进行排 序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c: 切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐 方法。

free
1.作用
free命令用来显示内存的使用情况,使用权限是所有用 户。

2.格式
free [-b-k-m] [-o] [-s delay] [-t] [-V]

3.主要参数
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显 示内存总和列。
-o:不显示缓冲区调节列。

uptime
18:59:15 up 25 min, 2 users, load average: 1.23, 1.32, 1.21
现在的时间
系统开机运转到现在经过的 时间
连线的使用者数量
最近一分钟,五分钟和十五分钟的系统负载
参数: -V 显示版本资讯。

vmstat
procs -----------memory---------- —swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70
1 观察磁盘活动情况
磁 盘活动情况主要从以下几个指标了解:
bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。
bo:表示 每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。
wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越 大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要 进行性能调整了。
2 观察cpu活动情况
vmstat比top更能反映出cpu的使用情况:
us:用户程序使用cpu的时间比 例。这个数字越大,表示用户进程越繁忙。
sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。
id:cpu 空闲的时间比例。
wa:cpu等待未决的磁盘IO的时间比例。

iostat
用于统 计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量
参数:
-c 只显示CPU行
-d 显示磁盘行
-k 以千字节为单位显示磁盘输出
-t 在输出中包括时间戳
-x 在输出中包括扩展的磁盘指标

avg-cpu: %user %nice %sys %iowait %idle
20.25 0.18 2.61 76.39 0.57
%iowait 等待本地I/O时CPU空闲时间的百分比
%idle 未等待本地I/O时CPU空闲时间的百分比

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
hda 9.86 284.34 84.48 685407 2036
每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节 块读取(Blk_read)和写入(Blk_wrtn)的总数量。  系统
  # uname -a # 查看内核/操作系统/CPU信息
   # head -n 1 /etc/issue # 查看操作系统版本
  # cat /proc/cpuinfo # 查看CPU信息
   # hostname # 查看计算机名
  # lspci -tv # 列出所有PCI设备
  # lsusb -tv # 列出所有USB设备
  # lsmod # 列出加载的内核模块
  # env # 查看环境变量
  资源
   # free -m # 查看内存使用量和交换区使用量
  # df -h # 查看各分区使用情况
  # du -sh # 查看指定目录的大小
  # grep MemTotal /proc/meminfo # 查看内存总量
  # grep MemFree /proc/meminfo # 查看空闲内存量
  # uptime # 查看系统运行时间、用户数、负载
  # cat /proc/loadavg # 查看系统负载
  磁盘和分区
  # mount | column -t # 查看挂接的分区状态
  # fdisk -l # 查看所有分区
  # swapon -s # 查看所有交换分区
  # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
  # dmesg | grep IDE # 查看启动时IDE设备检测状况
  网络
  # ifconfig # 查看所有网络接口的属性
  # iptables -L # 查看防火墙设置
  # route -n # 查看路由表
  # netstat -lntp # 查看所有监听端口
  # netstat -antp # 查看所有已经建立的连接
  # netstat -s # 查看网络统计信息
  进程
  # ps -ef # 查看所有进程
   # top # 实时显示进程状态
  用户
  # w # 查看活动用户
  # id # 查看指定用户信息
  # last # 查看用户登录日志
  # cut -d: -f1 /etc/passwd # 查看系统所有用户
  # cut -d: -f1 /etc/group # 查看系统所有组
  # crontab -l # 查看当前用户的计划任务
  服务
  # chkconfig --list # 列出所有系统服务
   # chkconfig --list | grep on # 列出所有启动的系统服务
  程序
   # rpm -qa # 查看所有安装的软件包

linux中的会话和作业
&:在命令后面使用该符号,可以让命令在后台执行
jobs:可以查看正在后台运行的作业
sleep 10000 延迟几秒
ctrl+c:中断
ctrl+z:挂起
案例:date ; sleep 5 ; date
jobs:查看当前后台的作业状态
-l:除了列出作业号外,同时列出PID
-r:列出仅仅在后台运行的作业
-s:列出仅仅在后台暂停的作业
fg:将后台的命令调到前台来继续执行,不能放回后台了
%作业编号
bg:将后台暂停的命令继续执行
%作业编号
ps –j 显示当前作业进程信息
TGID:线程组ID号
SID:会话ID号

Linux中断进程
kill –l 显示可以传递给Linux进程的所有信号
常用:
kill -9 PID 杀死一个进程—强制
kill -15 PID 正常的方式终止一个进程
kill -2 可以control+c的操作是一样的

ps:查看当前用户在shell下所运行的进程
-a 显示所有进程
-e 在命令后显示环境变量
-u 显示用户名和启动时间
-x 显示没有控制的进程
ps -aux 列出系统正在运行的所有进程的详细信息
ps -auxf 显示系统进程树

控制服务和守护进程
systemd:是所有进程的父进程(Linux内核3.0以上版本)
systemctl:用户管理各种类型的systemd对象,这些对象称为:单元
常用的单元:.service(服务单元).socket(套接字).path(路径单元)
ssh:是一个协议 sshd:是一个进程
systemctl status sshd.service 显示中有几个关键字—红帽7
loaded:单元配置文件以处理 active(running):正在运行 active(exited):配置成功
active(waiting):运行中,但正在等待事件 inactive:不在运行 enable:开机自启动
disabled:开机不自启 static:无法启动,但可以通过某一个已经启动的单元来启动
红帽5,6
Service sshd status
Chkconfig ssh on/off 开机自动启动
start:在系统中启动一项服务
stop:等待程序需处理完毕后再stop,
restart:直接关闭程序 在开启
reload:重新加载配置文件,进程暂停,然后把配置文件加载进去后,继续执行后续操作。进程的PID不会发生改变
enable:设置开机自启
disable:关闭开机自启
status:查看某一单元的状态

分析和存储日志
在RedHat 7中,系统日志消息由两个服务负责处理。他们是systemd-journald和rsyslogd。
/var/log/messages //大多数系统日志消息记录的日志
/var/log/secure //安全和身份验证的消息和错误日志
/var/log/maillog //与邮件服务器相关的日志
/var/log/cron //与定期执行任务相关的日志文件
/var/log/boot/log //记录和系统启动有关的日志
大多数日志由四个部分组成
1、记录在日志的时间
2、发送该日志的主机
3、发送该日志消息的程序或进程
4、发送的实际消息
日志监控
tail –f /var/log/secure //显示最后10行,如果有新的内容加入,那么会继续输出

RPM 工具使用分为安装、查询、验证、更新、删除等操作。
命令格式:rpm [参数] 软件包
参数:
(1) -i 是 install 的意思, 安装软件包。
(2) -v 显示附加信息,提供更多详细信息。
(3) -V 校验,对已经安装的软件迚行校验。
(4) -h --hash 安装时输出####标记

  1. 从本地安装(安装 zsh-5.0.2-28.el7.x86_64.rpm)
    [root@xuegod63 ~]# rpm -ivh /mnt/Packages/zsh-5.0.2-28.el7.x86_64.rpm
    [root@xuegod63 ~]# cat /etc/shells #查看支持 shell 类型,发现最后多了一个/bin/zsh

Linux中的软件安装-RPM
常用选项
-i:安装软件包
-q:询问软件包,和-a一起使用
-e: 删除软件包
-U:把一个已经安装好的软件包升级
-v:验证已经安装的软件包
-h:显示安装进度条
常见组合
-ivh 安装
-Uvh 升级
-qa 查询
-e 卸载
安装telnet命令:telnet
安装VIM编辑器:vim-common 和 vim-enhanced

rpm 查询功能

  1. 用法:rpm -q(query) 常和面参数组合使用。
    (1) -a (all)查询所有已安装的软件包。
    (2) -f (file)系统文件名(查询系统文件所属哪个软件包),反向查询。
    (3) -i 显示已经安装的 rpm 软件包信息,后面直接跟包名。
    (4) -l (list)查询软件包中文件安装的位置。
    (5) -p 查询未安装软件包的相关信息,后面要跟软件的命名。
    (6) -R 查询软件包的依赖性。

例 8.3:
[root@xuegod63 mnt]# rpm -q zsh #查询挃定的包是否安装。
zsh-5.0.2-28.el7.x86_64
[root@xuegod63 mnt]# rpm -qa #查询所有已安装包。
[root@xuegod63 mnt]# rpm -qa | grep vim #查询所有已安装包中带 vim 关键字的包。
[root@xuegod63 ~]# which find #查看 find 命令的路径。
/usr/bin/find
[root@xuegod63 ~]# rpm -qf /usr/bin/find #查询文件戒命令属亍哪个安装包。
findutils-4.5.11-5.el7.x86_64
查询已经安装的 rpm 包的详细信息戒作用 rpm -qi rpm 包名。
[root@xuegod63 ~]# rpm -qi lrzsz

rpm 包卸载和升级
用法:rpm -e(erase) 包名

  1. 卸载:
    [root@xuegod63 ~]# rpm -qa zsh #查看 zsh 程序由哪个包安装。
    zsh-5.0.2-28.el7.x86_64
    [root@xuegod63 ~]# rpm -e zsh #卸载 zsh 程序。
    [root@xuegod63 ~]# rpm -qa zsh #查看是否有安装,如果没有任何输出即说明没安装。

rpm -qa 查询系统中已安装的所有软件包
rpm -qa | grep httpd 查询系统中所有包含“http”字符串的软件包

tar -cvf file.tar /etc 将/etc目录下的文件打包并压缩为file.tar

systemctl stop firewalld --临时关闭防火墙
systemctl disable firewalld --永久关闭防火墙
永久关闭:
vim /etc/selinux/config
SELINUX=disabled --将enforcing改为disabled
reboot --重启系统永久生效

mkdir -p /mnt/cdrom 创建挂载目录
mount /dev/cdrom /mnt/cdrom 挂载光盘

创建内存交换分区
gidsk /dev/vda
n
w
y
开始创建swap格式
mkswap /dev/vba6
blkid /dev/vda6 格式化
free
swapon -s
nano /etc/fstab

开启网络 ONBOOT= no改为yes
cd /etc/sysconfig/network-scripts
vi ifcfg-ens33
vi /etc/sysconfig/network-scripts/ifcfg-ens33
service network restart

mkdir /mnt/cdrom
mount -r /dev/cdrom /mnt/cdrom 创建挂载目录
cd /etc/yum.repos.d/
ll
mkdir backup
mv CentOS-* backup/
ll
touch

Linux中的软件安装-yum(仓库)
编写本地yum
vim /etc/yum.repos.d/lewis.repo
该文件中要写5行左右的内容
[rhce] //yum的名称启到标记的作用
name=rhce //对这个文件的描述
baseurl=file:///yum //软件包的位置,可以是file,ftp,http
enable=1 //1表示路径可用,0表示不可用
gpgcheck=0 //是否进行gpg检查,默认不检查,检查的 话要导入公钥和私钥

Linux中的软件安装-yum
编写本地yum
vim /etc/yum.repos.d/lewis.repo
[lewis]
name=install from cdrom
baseurl=file:///mnt/cd/
enable=1
gpgcheck=0
[root@localhost ~]# yum clean all //清楚yum源缓存
[root@localhost ~]# yum repolist //检查yum源
[root@localhost ~]# yum list //查看yum源中的文件
yum search 包名 //搜索软件包
yum install 包名 //安装软件包
yum remove包名 //删除软件包

Yum 使用
yum源即是软件仓库,三种配置方式网络yum源(需要联网),局域网yum源,本地yum源。
yum安装软件:
yum list | grep 软件名 //查看软件
yum install 软件 -y //安装
一、网络yum源
查看配置文件
ll /etc/yum.repos.d

CentOS-Base.repo:在线的yum源配置文件
CentOS-Media.repo:本地yum源配置文件
查看CentOS-Base.repo:
先备份一份:
cp CentOS-Base.repo CentOS-Base.repo.bak
查看CentOS-Base.repo
cat CentOS-Base.repo

id:[base]基础 [updates]升级时 [extras]额外的
如果原本的不可用,可以配置为阿里的yum源:
[base]
name=CentOS- r e l e a s e v e r B a s e b a s e u r l = h t t p s : / / m i r r o r s . a l i y u n . c o m / c e n t o s / 7 / o s / releasever - Base baseurl=https://mirrors.aliyun.com/centos/7/os/ basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS- r e l e a s e v e r U p d a t e s b a s e u r l = h t t p s : / / m i r r o r s . a l i y u n . c o m / c e n t o s / 7 / u p d a t e s / releasever - Updates baseurl=https://mirrors.aliyun.com/centos/7/updates/ basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS- r e l e a s e v e r E x t r a s b a s e u r l = h t t p s : / / m i r r o r s . a l i y u n . c o m / c e n t o s / 7 / e x t r a s / / releasever - Extras baseurl=https://mirrors.aliyun.com/centos/7/extras// basearch/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS- r e l e a s e v e r P l u s b a s e u r l = h t t p s : / / m i r r o r s . a l i y u n . c o m / c e n t o s / 7 / c e n t o s p l u s / / releasever - Plus baseurl=https://mirrors.aliyun.com/centos/7/centosplus// basearch/
gpgcheck=1
enabled=0
查看可用的yum源: yum repolist

1.Yum 常用操作:
[root@xuegod63 ~]# yum install -y httpd #安装软件包, -y 直接安装。
[root@xuegod63 ~]# yum -y update #升级软件包,改变软件设置和系统设置,系统版
本内核都升级。
[root@xuegod63 ~]# yum -y upgrade #升级软件包,丌改变软件设置和系统设置,系
统版本升级,内核丌改变。
[root@xuegod63 ~]# yum -y update #丌加任何包,表示整个系统迚行升级。
[root@xuegod63 ~]# yum info httpd #查询 rpm 包作用。
[root@xuegod63 ~]# yum provides /usr/bin/find #查看命令是哪个软件包安装的。
[root@xuegod63 ~]# yum -y remove 包名 #卸载包。
[root@xuegod63 ~]# yum search keyword #挄关键字搜索软件包。

linux中的网络
vm中的网络环境
1、network(NET) //虚拟机和真机之间连了一台路由器(不在同一个网段)
2、bridge(桥接) //虚拟机和真机之间连了一台交换机(在同一个网段)
3、HostOnly //虚拟机和真机没有任何关系
查看Ip地址:ifconfig和ip addr show
网卡的生产厂商:broadcom和Intel
lspci:是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具
lspci | grep Ethernet

linux中的网络–命令nmcli
nmcli : 是Linux的内置命令,无需安装
nmcli connection show : 列出当前的网卡设备
nmcli connection show‘ens33’: 查看该网卡的详细信息
如果是最小化安装的Linux,nmcli是无法补齐命令的,需要安装如下软件包: yum install bash-completion
配置Ip地址,手动或者dhcp
nmcli connection add con-name “lewis” type ethernet ifname ens37
nmcli connection add con-name “static” type ethernet ifname ens37 autoconnect no ipv4.addresses 192.168.1.1/24 gw4 192.168.1.254
nmcli connection up “lewis”
nmcli connection down “lewis”
网络类型比较多,如type后面可以跟ethernet,wifi,bluetooth等
nmcli connection add help --查看所有的网卡类型
nmcli connection modify //修改已经设置好的网络
nmcli connection modify ipv4.dns 8.8.8.8 //设置DNS
nmcli connection modify +ipv4.dns 9.9.9.9 //增加一个DNS
nmcli connection modify ipv4.addresses 192.168.1.100/24 gw4 192.168.1.254 //修改IP地址

netstat 显示网络连接、路由表和网络接口信息
该命令用于显示网络连接、路由表和网络接口信息,用户可以知道目前有哪些网络连接正在运行。一般常用的参数有:
-a: 显示所有socket,包括正在监听的。
-c: 每隔1秒钟就重新显示一遍网络信息,直到用户中断它。
-I:显示所有网络接口的信息,格式同“ifconfig-e”命令。
-n: 以IP地址代替名称,显示网络连接信息。
-r: 显示核心路由表,格式同“route-e”命令。
-t: 显示TCP协议的连接信息。
-u: 显示UDP协议的连接信息。
-v: 显示正在进行的网络协议。

linux中的网络–修改配置文件
配置文件保存的位置
vim /etc/sysconfig/network-scripts/ifcfg-[网卡名]
重要参数:
TYPE=Ethernet/bridge //接口类型
BOOTPROTO=dhcp/static/none //激活此接口后,使用什么协议
ONBOOT=yes/no //开机是否激活
DNS1=8.8.8.8 //设置主要DNS
DNS2=9.9.9.9 //设置附属DNS
IPADDR=192.168.1.100 //设置IP地址
PREFIX=24 //centOS 设置掩码
GATEWAY=192.168.1.254 //设置网关
NAME=static //管理员取的名字
DEVICE=ens37 //设备名字
文件设置完后以后,需要重启接口和服务

Linux中的网卡聚合(绑定)
teamd 可使用以下运行程序:
broadcast:传输来自所有端口的每个包;
roundrobin:以轮循方式传输来自每个端口的包;
activebackup:故障转移运行程序,监视链接更改并选择活动端口进行数据传输。(主备)
loadbalance:监控流量并使用哈希函数以尝试在为包传输选择端口时达到完美均衡。
lacp:实施802.3ad 链路聚合控制协议。

  1. 创建接口组
    nmcli con add type team con-name CNAME ifname INAME config JSON
    CNAME 是引用连接的名称;
    INAME 是接口名称;
    JSON 是指定要使用的运行程序:‘{“runner”:{“name”:“METHOD”}}’
    其中的METHOD 就是我们前面讲的5 种运行程序,其中一种。
    nmcli connection add type team con-name lewis ifname lewis config ‘{“runner”:{“name”:“activebackup”}}’
    2、确定接口组的ipv4/6 的属性
    nmcli con mod CNAME ipv4.addresses IP 地址
    nmcli con mod CNAME ipv4.method manual
    nmcli connection modify lewis ipv4.addresses 192.168.1.1/24
    nmcli connection modify lewis ipv4.method manual
    注意:
    1、必须首先分配ipv4.addresses,然后才能设置ipv4.method manual
    2、有DHCP服务器则可以不配置
    3、分配端口接口
    nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
    nmcli connection add type team-slave con-name port1 ifname eno33554984 master lewis
    nmcli connection add type team-slave con-name port2 ifname eno50332208 master lewis
    4、启动/关闭组接口和端口接口
    nmcli connection up lewis
    5、查看team 的状态。
    teamdctl lewis state

DNS-域名解析
查看本机的域名—hostname
修改本地域名
1、临时:hostname lewis.com
2、永久:
修改:/etc/hostname文件
命令:hostnamectl set-hostname lewis.com

开启ssh服务
先检查有没有安装ssh服务:rpm -qa | grep ssh
如果没有安装ssh服务就安装 : yum install openssh-server
安装好后在ssh配置文件里进行配置 : vim /etc/ssh/sshd_config

OpenSSH
OpenSSH是指使用Secure Shell这个软件,让用户可以在远程的系统上安全的运行shell。SSH就是Secure Shell的缩写。
SSH可以加密所有传输过程中的数据,而且还可以压缩数据。我们知道FTP和HTTP等协议,是无法加密传输过程中的数据的。
客户端的登入操作
ssh IP地址 //以当前客户端的登入用户名,去远程服务器
ssh 用户名@IP地址 //可以指定用户名,去远程服务器
命令:W 可以查看当前SSH远程登入的命令
有些配置我们可以修改:
#PermitRootLogin yes //root用户是否可以ssh该服务器
修改成功后,要重启sshd.service服务
拒绝某一个普通用户SSH到服务器
拒绝某一个IP地址SSH到服务器
/etc/hosts.deny /etc/hosts.permit
sshd:ip地址

SELinux-工作状态
Enforcing:强制模式
打开了SELinux,一种服务访问和他没关系的文件,都会被禁止
Permissive:允许模式
一种服务访问和他没关系的文件,都会被允许。但是会产生告警信息
Disabled:禁用模式 彻底关掉SELinux
SELiunx的配置文件:/etc/selinux/config
第一句话:工作状态
第二句话:目标策略-复杂-都是和网络有关的策略:HTTP,NTP,DHCP等
getenforce setenforce

gzip [-cdtv#] 文件名
zcat 文件名.gz
-c 将压缩文件数据输出的屏幕上,可通过数据重定向来处理。
-d 可解压的参数
-t 可以用来检验一个压缩文件的一致性,看文件有误错误。

cat /var/log/secure 显示日志文件

firewall-cmd --get-services:可以列出所有的预定义服务
/usr/lib/firewalld/services/:放了所有预定服务的配置文件

ps -axu | grep vim

[root@xuegod63 ~]# killall sshd #把 sshd 整个迚程相关的杀死。
[root@xuegod63 ~]# pkill sshd #把 sshd 整个迚程相关的杀死
[root@xuegod63 ~]# ll /etc/passwd #查看文件修改的时间。
[root@xuegod63 ~]# stat /etc/passwd #使用 stat 命令查看文件属性(其中包括文件时间属
性)。

防火墙
执行firewall-config 命令即可看到firewalld 的防火墙图形化管理工具,真的很强大,可以完成很多复杂的工作。
firewall-config 打开图形防火墙
firewall-cmd --get-services:可以列出所有的预定义服务
/usr/lib/firewalld/services/:放了所有预定服务的配置文件
firewall-cmd --list-all-zones
firewall-cmd --list-all 显示防火墙放行服务
systemctl start firewalld # 启动,
systemctl enable firewalld # 开机启动
systemctl stop firewalld # 关闭
systemctl disable firewalld # 取消开机启动

命令行设置防火墙-firewall-cmd
–get-default-zone 查询默认的区域名称;
–set-default-zone=<区域名称> 设置默认的区域,永久生效;
–get-zones 显示可用的区域;
–get-services 显示预先定义的服务;
–get-active-zones 显示当前正在使用的区域;
–add-source= 将来源于此IP 或子网的流量导向指定的区域。
–remove-source= 不再将此IP 或子网的流量导向某个指定区域
–list-all 显示当前区域的网卡配置参数,资源,端口以及服务等信息;
–list-all-zones 显示所有区域的网卡配置参数,资源,端口以及服务等信息;
–add-service=<服务名> 设置默认区域允许该服务的流量。
–add-port=<端口号/协议> 允许默认区域允许该端口的流量。
–remove-service=<服务名> 设置默认区域不再允许该服务的流量。
–remove-port=<端口号/协议> 允许默认区域不再允许该端口
–reload 让“永久生效”的配置规则立即生效,覆盖当前的。
–query-service=<服务名>查询服务是否被允许
–permanent 配置永久生效
命令行设置防火墙-富规则
防火墙中的规则:标准规则,直接规则(不用),富规则。
firewalld 富规则为管理员提供了一种表达性语言,通过这种语言可表达firewalld 的基本语法中未涵盖的自定义的防火墙规则。比如允许某个域访问,同时拒绝某个域访问。
–add-rich-rule=’RULE’:向指定域中添加RULE;
–remove-rich-rule=’RULE’:从指定域中移除RULE
–query-rich-rule=’RULE’:查询RULE 是否已添加到指定域 若存在返回0,不存在返回1;
–list-rich-rule:输出指定域的所有富规则。
拒绝来自dmz 区域中IP 地址为192.168.0.11 的所有流量
firewall-cmd --permanent --zone=dmz --add-richrule=’rule family=ipv4 source address=192.168.0.11/32reject’
允许来自172.16.0.0/16 网段访问
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.160.0/16 accept’
拒绝192.168.0.100 主机访问本地的samba 服务。
firewall-cmd --permanent --add-rich-rule=’rule family=ipv4 source address=192.168.0.100/24 service name=samba reject’

CentOS7 DHCP 服务搭建
yum install -y dhcp 安装DHCP服务
/etc/dhcp/dhcp6.conf DHCP的配置文件
/usr/sbin/dhcp DHCP进程启动文件
vim /etc/dhcp/dhcp6.conf
vim /usr/share/doc/dhcp*/dhcpd6.conf.example
/etc/dhcp/dhcpd.conf DHCP的配置文件
/usr/sbin/dhcpd DHCP进程启动文件
配置DHCP的配置文件: /etc/dhcp/dhcpd.conf
yum -y install dhcp* //安装DHCP,注意要带上* 在Ser上操作。
vim /etc/sysconfig/network-scripts/ifcfg-ens33-1 //在Ser上配置网络IP地址,一般都是ens33

DHCP客户端设置
ifconfig或者ip addr show来查看IP地址
查看DNS和域名:cat /etc/resolv.conf
查看网关:route
查看客户端的详细信息:cat /var/lib/dhclient/dhclient.leases
释放IP地址:dhclient –r
拿去IP地址:dhclient

NFS-网络文件系统
/etc/exports:NFS 配置文件
/var/lib/nfs/*tab:NFS 服务器日志放置路径,
其中
Etab:记录共享出来的目录完整权限设置值;
Xtab:记录曾经连接到此 NFS 主机的相关客户端数据。
/etc/exports 文件配置
一行代表一个共享
/share-lewis 192.168.1.1/32(ro)
IP可以写网段,主机和域名(hosts文件中找到)

NFS-网络文件系统-服务和防火墙
systemctl start nfs
systemctl start rpcbind
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload

FTP服务
查看是否已经安装vsftpd
方法一:[root@localhost ~]# rpm -q vsftpd
方法二:[root@localhost ~]# vsftpd -v
yum安装vsftpd: [root@localhost ~]# yum -y install vsftpd
安装完成后,查看位置
[root@localhost ~]# whereis vsftpd
vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
直接启动VSFTP服务
[root@localhost ~]# systemctl start vsftpd.service
[root@localhost ~]#
查看是否启动成功
[root@localhost ~]# netstat -npal|grep vsftpd
设置关闭SELinux对ftp的限制
[root@localhost ~]# getsebool -a | grep ftp
添加防火墙白名单 [root@localhost ~]# setsebool -P ftpd_full_access on
将ftp加入防火墙白名单
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
查看防火墙状态:firewall-cmd --list-all
二、配置修改
1.修改配置文件
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim vsftpd.conf

一、安装vsftpd组件
yum -y install vsftpd
二、添加一个ftp用户
useradd ftp-userliu
登录后默认的路径为 /home/ftp-userliu.
三、给ftp用户添加密码
passwd ftp-userliu
四、删除ftp用户
userdel ftp-userliu
五、防火墙开启21端口
ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件
vim /etc/sysconfig/iptables
然后增加一个21端口
然后重启iptables服务:
service iptables restart
六、修改selinux
查看selinux:
getsebool -a | grep ftp
发现红线的两行都关闭了,access是用于访问ftp,home_dir是用于访问ftp存放的文件夹
打开两个选项:
setsebool allow_ftpd_full_access on
setsebool ftp_home_dir on
上面的两行选项命令时暂时性的,重启之后又会改为off,永久性的操作:
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
但是加了-P在我的Centos上会出现Boolean allow_ftpd_full_access is not defined的错误,暂时网上没有找到解决方案
如果这样还不行,应该是ftp客户端工具开启了passive模式(被动模式),如提示Entering Passive mode,就代表是passive模式,默认是不行的,因为ftp passive模式被iptables挡住了
改为主动模式:
七、关闭匿名访问
vim /etc/vsftpd/vsftpd.conf
把红线中的 YES 改为 NO
八、开启被动模式
vim /etc/vsftpd/vsftpd.conf
在后面加上
pasv_min_port=30000
pasv_max_port=30999
表示端口范围为30000~30999,这个可以随意改。
改完重启一下vsftpd
service vsftpd restart
由于指定这段端口范围,iptables也要相应的开启这个范围
然后重启iptables,搞定
九、设置开机启动vsftpd ftp服务
chkconfig vsftpd on

软件安装
yum install -y vsftpd.x86_64
systemctl start vsftpd
systemctl enable vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

Apache服务器
安装Apache软件
yum install -y httpd*

Apache 主配置文件介绍
/etc/httpd -apache 主目录
/etc/httpd/conf/httpd.conf -apache 主配置文件
/etc/httpd/conf.d -apache 附加模块配置文件
/etc/httpd/modules -apache 模块文件路径链接
/etc/httpd/bin/ -apache 二进制命令
/etc/httpd/logs -apache 默认日志文件位置

配置Web站点
[root@server ~]# cat /etc/httpd/conf.d/test.conf
<Virtualhost *:80>
ServerName server0.example.com
DocumentRoot /var/www/html

[root@server ~]# cat /var/www/html/index.html

这是一个网页主体

配置Web站点
[root@server ~]# systemctl restart httpd.service
[root@server ~]# firewall-cmd --permanent --add-service=http

配置SAMBA服务器
安装Samba
yum install -y samba
启动Samba服务器
systemctl restart smb nmb
systemctl enable smb nmb
查看配置文件:/etc/samba/smb.conf

SAMBA的配置文件
主要由两个部分组成Global Setting和Share Definitions
Global Setting是基于全局的设置,针对所有共享资源
Share Definitions是针对共享目录的个别设置

Global Setting
workgroup = MYGROUP //定义工作组名,组名一定要大些
server string = Samba Server Version %v //显示SAMBA的版本
netbios name = MYSERVER //定义netbios名
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
监听的网卡,可以写网卡名,也可以写网卡对应的IP地址
hosts allow = 127. 192.168.12. 192.168.13.
允许连接SAMBA的的客户端IP地址,可以用IP,也可以用网段表示

Logging Options
log file = /var/log/samba/log.%m //日志存储的位置
%m是一宏,server会给每台访问过他的客户端,单独建立一个日志文件
Max log size =50 //设置日志文件的大小,默认是50KB,0表示无线大小。

Standalone Server Options
security = user //设置用户访问samba server的验证方式,一共四种
share:用户访问Samba server 不需要提供用户名和口令,安全性能较低。
user:Samba server 共享目录只能被授权的用户访问,Samba server负责账号的建立并且检查正确性(一般用这个)。
server:依靠其他的windows或samba server来验证账号和密码,是一种代理验证。
domain:域安全级别,使用主域控制器PDC来完成认证。
passdb backend
1、smbpasswd:使用SMB自己的工具smbpasswd来给用户设置samba密码,客户端用这个密码来访问Samba资源,smbpasswd文件默认保存在/etc/samba目录下,可能需要手动建立。
2、tdbsam:使用一个数据库文件来建立用户数据库,数据库文件叫passdb.tbd,默认在/etc/samba下。用smbpasswd –a来建立samba用户
3、ldapsam:基于LDAP的账户管理方式来验证用户。
可以自己添加
deadtime = 10 客户端在10分钟内没有打开任何Samba资源,服务器将自动关闭,在大量的并发访问环境中,可以提高服务器性能。
display charset = UTF8 设置字符集为UTF8
max connections = 0 设置最大连接数,0表示无限制

Share Definitions
comment //任意字符串,对共享的描述
path = /var/spool/samba //共享目录路径
browseable = yes/no //指定该共享是否可以浏览
writable = yes/no //指定该路径是否可写
available = yes/no //该共享资源是否可用
valid users = 用户1,用户2 //允许访问该共享资源的用户
invalid users = 用户1,用户2 //禁止访问该共享资源的用户
write list =用户1,用户2 //可以在共享目录下写入文件的用户
public = yes/no //指定guest是否可以共享文件

创建访问账户
创建smb用户,需要smbpasswd命令的支持,这个命令是需要smb-client软件包的支持的。
smbpasswd [参数] 用户名称
-a 添加账户并设置密码
-x 删除账户
-d 禁用账户
-e 启用账户
pdbedit –L //查看有哪些smb账户
useradd -s /sbin/nologin lewis
smbpasswd -a lewis
systemctl restart smb nmb
firewall-cmd --list-all
firewall-cmd --permanent --add-service=samba

发布了6 篇原创文章 · 获赞 0 · 访问量 164

猜你喜欢

转载自blog.csdn.net/qw123456789e/article/details/103359700