1,linux下文件颜色的含义
蓝色————>文件夹
绿色————>可执行程序
青色————>快捷方式
黄色————>表示设备
红色————>压缩包
2,linux的系统版本
RHEL7.0 ext4
RHEL6.0 FAT32、XFS
3,vim编辑模式:
三种模式: 命令模式 插入模式 末行模式
4,linux目录介绍
------------------------------------------------------------------------------------------------------
/boot 【存放内核】启动文件的目录
/etc 用来存放所有的系统管理所需要的【配置文件和子目录】
/dev 存放与【设备相关的数据】
/home 存放所有普通用户的【家目录】
/lib 系统调通用的【函数库】保存位置
/root 管理员的家目录
/tmp 存放【临时】文件
变量名·由【字母、数字、下划线】组成
-----------------------------------------------------------------------------------------------------------------------------
/bin/bash -默认解释器
cat /proc/meminfo 查看内存
/etc/hostname -配置【永久的主机名】
/etc/fstab - -开机【自动挂载】的配置文件, 内核引导时要从这里加载
/etc/passwd - -文件中每一行都记录着一个用户帐号基本信息
/etc/resolv.conf -配置永久的【DNS服务器地址】
etc/group -组基本信息存放
/root/.bashrc -设置永久【别名】
uname -r - -列出内核版本
lscpu -查看CPU
route -n -查看网关命
-------------------------------------------------------------------------------------------------------------------
ls 常用命令选项
-l 以长格式显示,显示详细属性
-h 提供易读的容量单位
-d 显示目录本是(而不是内容)的属性
-A 包括名称以 . 开头的隐藏属性
-----------------------------------------------------------------------------------------------------------------------
通配符 · 针对不确定
* : 任意多个任意字符useradd 命令
?: 单个字符
[ ] : 只能匹配0~9
{ }: 多组不同的字符串,全匹配
-------------------------------------------------------------------------------------------------------------------------
创建用户
useradd [选项]... 用户名
修改用户属性
usermod [选项]... 用户名
删除用户
userdel [-r] 用户名 # -r:连同用户家目录一并删除
命令选项
– -u 用户id、-d 家目录路径、-s 登录解释器、-G 附加组
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
/sbin/nologin :禁止用户登陆系统
使用 passwd 命令
– passwd [用户名]
[root@A ~]# passwd nsd01
更改用户 nsd01 的密码 。
非交互式设置用户密码
– echo '密码' | passwd --stdin 用户名
用户密码信息存放在 /etc/shadow 文件
用户名:密码加密字符串:上一次修改密码的时间
自1970-1-1到上一次修改密码时间经过的天数
----------------------------------------------------------------------------------------------------------------
别名的定义:简化复杂命令
查看已设置的别名
alias [别名名称]
定义新的别名
alias 别名名称= '实际执行的命令行'
取消已设置的别名
unalias [别名名称]
——————————————————————————————————————————————————————
远程管理的命令:ssh 登陆对方的用户名@对方的IP地址
ssh -X:在远程管理时,本地运行对方的图形程序
————————————————————————————————————————————
安装软件包的命令
使用rpm命令管理软件,默认不允许用户做任何选择
• RPM Package Manager,RPM包管理器
rpm -q 软件名... #查询当前系统软件是否安装
rpm -ivh 软件名-版本信息.rpm... #安装软件包
rpm -e 软件名... #卸载
[root@server0 opt]# rpm -ql vsftpd #列出安装清单
常见的错误信息:依赖关系错误
错误:依赖检测失败:
bind = 32:9.9.4-14.el7 被 bind-chroot-32:9.9.4-14.el7.x86_64 需要
-------------------------------------------------------------------------------------------------------------------------
Yum软件包仓库,自动解决依赖关系
服务:为客户端自动解决依赖关系,安装软件包
服务端:虚拟机classroom.example.com
1.众多的软件包 2.仓库清单文件(repodata)
3.构建Web服务或FTP服务传递数据
客户端:虚拟机server0.example.com
客户端配置文件:/etc/yum.repos.d/*.repo
--------错误的配置文件会影响正确的配置文件------------
rm -rf /etc/yum.repos.d/*
vim /etc/yum.repos.d/abc.repo
[rhel7] #仓库标识
name=rhel7.0 #仓库描述信息
baseurl= #指定服务端位置
enabled=1 #是否启用该文件
gpgcheck=0 #是否检测红帽签名
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Yum使用
# yum repolist #列出仓库信息
# yum -y install httpd #安装软件包
# yum -y install sssd
# yum -y install gcc
# yum -y install system-config-kickstart
# yum remove 软件名 #卸载
# yum clean all #清缓存
---------------------------------------------------------------------------------------------------------------
配置永久的IP地址、子网掩码、网关地址
网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
通过命令nmcli connection #可以修改网卡配置文件
1>查看命令识别网卡的名称
—— nmcli connection show
2>进行配置永久的IP地址、子网掩码、网关地址
nmcli connection modify 'System eth0' ipv4.method manual
修改 '识别的网卡名' ipv4.方法 手工配置
ipv4.addresses '172.25.0.110/24 172.25.0.254'
'IP地址/子网掩码 网关地址'
connection.autoconnect yes
每次开机自动激活配置
3>激活配置
nmcli connection up 'System eth0'
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
方式2:
nmtui 修改IP地址为172.25.0.120/24
1. Edit a connection(回车)#编辑连接
2. System eth0(回车) #选择网卡
3. Require IPv4 addressing for this connection
#利用IPv4进行激活
4. Automatically connect
#每次开机自动激活配置
查看网关命令:
route -n #以数字的方式显示
Gateway
172.25.0.254
----------------------------------------------------------------------------------------------------------
管理组账号
组基本信息存放在 /etc/group 文件
[root@A ~]# grep stugrp /etc/group
stugrp:x:2002:
组名:密码占位符:组的GID:组的成员列表
创建组
groupadd [-g 组ID] 组名
将用户加入组
gpasswd -a 用户名 组名
gpasswd -d 用户名 组名 #删除
grep 组 /etc/passwd #查看
删除组
groupdel 组名
创建一个用户Linux有那些文件会改变?
grep 组名 /etc/passwd
ls /home/
grep 组名 /etc/shadow
grep 组名 /etc/group
------------------------------------------------------------------------------------------------------------------------
/etc/passwd:用户基本信息存放在 /etc/passwd 文件
[root@server0 /]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
----------------------------------------------------------------------------------------------------------------------------
重定向输出:将前面命令的输出结果,写入文本文件
>:覆盖重定向
>>:追加重定向
管道 | :将前面命令的输出结果,交由面后命令处理
-------------------------------------------------------------------------------------------------------------------------------
tar备份与恢复
归档及压缩:1.零散的文件归成一个 2.占用硬盘空间变小
常见的压缩格式及命令工具:
.gz ---> gzip
.bz2 ---> bzip2
.xz ---> xz
制作归档及压缩(打包----->tar包)
格式:tar 选项 /路径/tar包名字 /路径/源文件 /路径/源文件
解包
格式:tar 选项 /路径/tar包名字 /路径/释放的位置
-c:创建归档 -C(大写):指定释放位置
-x:释放归档 -f:指定归档文件名称
-t:显示归档中的文件清单
-z、-j、-J:调用 .gz、.bz2、.xz 格式的工具进行处理
打包:
tar -zcf /路径/tar包名字 /路径/源文件
tar -jcf /路径/tar包名字 /路径/源文件
tar -Jcf /路径/tar包名字 /路径/源文件
选项顺序要求:-f必须在最后
解包:
tar -xf /路径/tar包名字 -C /路径/指定释放位置
----------------------------------------------------------------------------------------------------------------
NTP时间同步
NTP网络时间协议
• Network Time Protocol
– NTP服务器为客户机提供标准时间
– NTP客户机需要与NTP服务器保持沟通
服务端:虚拟机classroom
客户端:虚拟机Server
1.安装chrony软件包(客户端软件:专用于访问服务的软件)
[root@A ~]# yum -y install chrony
[root@A ~]# rpm -q chrony
2.修改程序主配置文件,指定服务端位置
在Linux大多数配置文件中,以#开头的行为注释行
[root@A ~]# vim /etc/chrony.conf
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
server classroom.example.com iburst
3.重起程序
[root@A ~]# systemctl restart chronyd #重起chronyd
[root@A ~]# systemctl enable chronyd #设置为开机自起
daemon:超级守护进程
4.验证:
[root@A ~]# date -s "2008-10-1 12:00"
2008年 10月 01日 星期三 12:00:00 CST
[root@A ~]# date
[root@A ~]# systemctl restart chronyd
[root@A ~]# date
[root@A ~]# date
---------------------------------------------------------------------------------------------------
cron计划任务
周期性任务
• 软件包:cronie、crontabs
• 系统服务:crond
• 日志文件:/var/log/crond 排除故障
• 配置任务格式
– 分 时 日 月 周 任务命令行(绝对路径)
23 14 * * * /bin/echo hiya
*:匹配范围内任意时间
,:分隔多个不连续的时间点
-:指定连续时间范围
/n:指定时间频率,每n
每分钟记录当前系统的时间,写入到/opt/time.txt
[root@A ~]# date >> /opt/time.txt
[root@A ~]# cat /opt/time.txt
[root@A ~]# crontab -e -u root #以root书写计划任务
[root@A ~]# crontab -l -u root
* * * * * date >> /opt/time.txt
[root@A ~]# ls /var/spool/cron/ #任务文件存放路径
[root@A ~]# cat /var/spool/cron/root #查看任务文件内容
[root@A ~]# cat /opt/time.txt #查看结果
================================================================================================
/etc/fstab 配置开机自动挂载
/dev/null 黑洞设备 专用于收集无用的信息
gt > ge >= eq =
lt < le <= ne !=
字符串对比:
== 两个字符串相等为真 != 两个字符串不相等为真
> 只收集前面命令正确的输出信息写入文本文件中
2> 只收集错误的输出信息
&> 收集正确与错误信息
>&2 变成错误输出
$0 当前所在的进程或脚本名
$$ 当前运行进程的PID号
$# 已加载的位置变量的个数
$* 所有位置变量值
$? 程序退出后的状态 , 0 表示正常其他值异常
$( ) 或 ` ` 反撇号
将命令的输出,作为另一个命令的参数,参与下一个命令的运行
识别硬盘 lsblk 分区规划 fdisk
物理卷 PV 卷组 VG 逻辑卷LV
create 创建 display 显示 blkid 文件系统类型
remove 删除 extend 扩展
df -h #显示已经挂载的设备使用情况
partprobe #刷新 新的分区表
------------------------------------------------------------------------------------------------------------
查找文本内容
grep [选项] '匹配模式' 文本文件...
• 常用命令选项
-v,取反匹配 -i,忽略大小写
• 常用的匹配模式
word 包含字符串word
^word 以字符串word开头
word$ 以字符串word结尾
显示/etc/login.defs配置文件有效信息(去除空行 去除注释行)
grep -v ^# /etc/login.defs | grep -v ^$
---------------------------------------------------------------------------------------------------------------------
查找文件 /proc/:所占用的空间不是硬盘,而是内存
• 根据预设的条件递归查找对应的文件
find [目录] [条件1] [-a|-o] [条件2] ...
– 常用条件表示:
-type 类型
(f--文本文件 d--目录 l--快捷方式)
-name "文档名称" -iname 忽略大小写
-size +|-文件大小(k、M、G)
-user 用户名
统计命令
[root@server0 ~]# wc -l /etc/passwd #统计行数
限制目录查找的深度(最大层数)
-maxdepth
# find /etc/ -maxdepth 1 -name "*.conf"
使用find命令的 -exec 操作
– find .. .. -exec 处理命令 {} \;
– 优势:以 {} 代替每一个结果,逐个处理,遇 \; 结束
# find /etc/ -name "*tab" -exec cp {} /mnt/ \;
!! var:存放经常变化的数据
------------------------------------------------------------------------------------------------------------------
Set UID
• 附加在属主的 x 位上
– 属主的权限标识会变为 s
– 适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限
[root@server0 ~]# cp /usr/bin/touch /usr/bin/xixich
[root@server0 ~]# chmod u+s /usr/bin/xixich
[root@server0 ~]# su - student
[student@server0 ~]$ /usr/bin/touch 1.txt
[student@server0 ~]$ /usr/bin/xixich 2.txt
[student@server0 ~]$ ls -l
[student@server0 ~]$ exit
---------------------------------------------------------------------------------------------------------------------------
Sticky Bit
• 附加在其他人的 x 位上
– 其他人的权限标识会变为 t
– 适用于开放 w 权限的目录,可以阻止用户滥用 w 写入
权限(禁止操作别人的文档)
[root@server0 ~]# mkdir /home/public
[root@server0 ~]# chmod ugo=rwx /home/public
[root@server0 ~]# ls -ld /home/public
[root@server0 ~]# chmod o+t /home/public
[root@server0 ~]# ls -ld /home/public
-----------------------------------------------------------------------------------------------------------------------
扇区的大小为512字节
分区规划及使用
一、识别硬盘
lsblk
二、分区规划
fdisk /dev/vd_
partprobe #刷新 新的分区表
三、格式化,赋予空间 文件系统(规则)
# mkfs.ext4 /dev/vdb1 #格式化ext4文件系统
# blkid /dev/vdb1 #查看文件系统类型
# mkfs.xfs /dev/vdb2 #格式化xfs文件系统
# blkid /dev/vdb2 #查看文件系统类型
四、挂载使用分区
mount 设备路径 挂载点
五、开机自动挂载
配置/etc/fstab
设备路径 挂载点 类型 参数 备份标记 检测顺序
/etc/fstab完成开机自动挂载
----------------------------------------------------------------------------------------------------------
LVM逻辑卷的管理
作用:1.可以整合分散的空间 2.容量大小可以扩大
– 零散空闲存储 ---->整合的虚拟磁盘 ---->虚拟的分区
物理卷 PV 卷组 VG 逻辑卷LV
将众多的物理卷( PV),组成卷组(VG),再从卷组中划分出逻辑卷(LV)
一、创建逻辑卷
格式:vgcreate 卷组的名 设备路径1 设备路径2 .......
# vgcreate systemvg /dev/vdc1 /dev/vdc2
# vgs #查看卷组信息
# pvs #查看物理卷信息
2.通过 卷组划分逻辑卷
———————
格式:lvcreate -n 逻辑卷名 -L 逻辑卷大小 卷组名
# lvcreate -n mylv -L 16G systemvg
# lvs #查看逻辑卷信息
# vgs
# ls -l /dev/systemvg/mylv
格式化 mkfs.ext4 mkfs.xfs---->blkid查看文件系统
/etc/fstab完成开机自动挂载
# mount -a #检测是否书写正确
# df -h #查看挂载情况
--------------------------------------------------------------------------------------------------------------------------------
逻辑卷的扩展
一、卷组有足够的剩余空间
1.扩展空间的大小
vgs #查看卷组
通过卷组划分逻辑卷
lvextend -L 18G /dev/systemvg/mylv
lvs #查看逻辑卷
2.扩展文件系统的大小
resize2fs:扩展ext4文件系统 ext4文件系统支持缩减
xfs_growfs:扩展xfs文件系统 xfs文件系统不支持缩减
[root@server0 ~]# df -h #查看挂载情况
[root@server0 ~]# resize2fs /dev/systemvg/mylv
[root@server0 ~]# df -h
二、卷组没有足够的剩余空间
1.扩展卷组
创建卷组
vgcreate 卷组的名 设备路径1 设备路径2 ...
2.扩展空间的大小
通过卷组划分逻辑卷
lvcreate -n 逻辑卷名 -L 逻辑卷大小 卷组名
3.扩展文件系统的大小
resize2fs:扩展ext4文件系统
[root@server0 ~]# df -h
[root@server0 ~]# resize2fs /dev/systemvg/mylv
[root@server0 ~]# df -h
------------------------------------------------------------------------------------------------------------
卷组划分空间的单位:PE 默认4M
1.查看卷组PE大小
vgdisplay systemvg
2.修改方式
卷组已经存在,修改PE的大小
# vgchange -s PE大小 卷组名
创建卷组的时候设置PE大小
# vgcreate -s PE大小 卷组名 设备路径
创建逻辑卷使用PE的个数创建
# lvcreate -l PE的个数 -n 逻辑卷 卷组名
---------------------------------------------------------------------------------------------------------
• Samba 软件项目
– 用途: 为客户机提供共享使用的文件夹
– 协议: SMB(TCP 139 用户验证)、CIFS(TCP 445 传输数据)
• 所需软件包:samba
• 系统服务:smb
• Samba用户 —— 专用来访问共享文件夹的用户
– 采用独立设置的密码
– 但需要提前建立同名的系统用户(可以不设密码)
• 使用 pdbedit 管理工具
-a 添加用户: pdbedit -a 用户名
-L 查询用户: pdbedit -L [用户名]
-x 删除用户: pdbedit -x 用户名
• 修改 /etc/samba/smb.conf
[自定共享名]
path = 文件夹绝对路径
; public = no|yes //默认no
; browseable = yes|no //默认yes
; read only = yes|no //默认yes
; write list = 用户1 .. .. //默认无
; valid users = 用户1 .. .. //默认任何用户
; hosts allow = 客户机地址 .. ..
; hosts deny = 客户机地址 .. .
###############################################
搭建Samba共享
----------------------------服务端虚拟机Server:
1.安装软件包samba
2.创建samba共享帐号
useradd -s /sbin/nologin 用户名 #添加帐号
pdbedit -a 用户名 #将用户添加为samba共享帐号
3.创建共享目录 mkdir /共享目录
4.修改配置文件/etc/samba/smb.conf
此服务器必须是 STAFF 工作组的一个成员
workgroup = STAFF
[common] #共享名
path = /common #共享实际路径
5.重起smb服务
6.SELinux布尔值(服务功能的开关 on 或 off)
– 需要加 -P 选项才能实现永久设置
[root@server0 ~]# getsebool -a | grep samba
[root@server0 ~]# setsebool samba_export_all_ro on
[root@server0 ~]# getsebool -a | grep samba
-------------------------------------------------------------------------------------
-------------------------------客户端:虚拟机Desktop0
利用mount挂载,更加科学方式进行访问
1.安装软件cifs-utils(让本机支持cifs文件系统)
2.挂载访问
# mkdir /mnt/nsd
# mount -o user=harry,pass=123 //172.25.0.11/common /mnt/nsd/
# -o 选项
# df -h #显示已经挂载的设备使用情况
# ls /mnt/nsd
3.开机自动挂载
_netdev :声明网络设备
配置完所有的网络参数后,再进行挂载该设备
[root@desktop0 ~]# vim /etc/fstab
//172.25.0.11/common /mnt/nsd cifs
defaults,user=harry,pass=123,_netdev 0 0
[root@desktop0 ~]# umount /mnt/nsd
[root@desktop0 ~]# df -h
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -h
-------------------------------------------------------------------------------------------
配置NFS共享(Linux与Linux平台之间)
搭建基本的NFS共享
1.检测软件包是否安装
rpm -q nfs-utilsnfs-utils-1.3.0-0.el7.x86_64
2.修改主配置文件 /etc/exports
– 文件夹路径 客户机地址(权限)
[root@server0 ~]# mkdir /abc #创建共享目录
[root@server0 ~]# echo 123 > /abc/a.txt
[root@server0 ~]# ls /abc/
[root@server0 ~]# vim /etc/exports
/abc *(ro)
3.重起服务nfs-server
---------------------------------------------客户端:虚拟机Desktop
[root@desktop0 ~]# vim /etc/fstab
172.25.0.11:/abc /mnt/nsd01 nfs defaults,_netdev 0 0
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -h
#################################################
配置用户环境
alias别名设置
• 影响【指定用户】的 bash 解释环境
/root/.bashrc
/home/student/.bashrc
– ~/.bashrc,每次开启 bash 终端时生效
• 影响【所有用户】的 bash 解释环境
– /etc/bashrc,每次开启 bash 终端时生效
---------------------------------------------------------------------------------------------------
环境变量: 变量名一般大写,由系统定义完成
PATH:存储命令程序的路径
[root@server0 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@server0 ~]# vim /opt/abc.sh
#!/bin/bash
echo hello world
[root@server0 ~]# chmod +x /opt/abc.sh
[root@server0 ~]# /opt/abc.sh
[root@server0 ~]# abc.sh #执行失败
[root@server0 ~]# cp /opt/abc.sh /usr/bin
[root@server0 ~]# abc.sh #执行成功
---------------------------------------------------------------------------------------------------
================================================================================================