Linux基础笔记
Linux 系统安装和配置
前期准备
需要下载的软件:
VMware-workstation-full-10.0.0-1295980
注册机破解:vm10keygen
远程登录管理工具:
SecureCRT Putty xshell
远程文件传输工具:
winscp
UTF-8编码
设置了主机server001地址:
192.168.0.102
设置虚拟机IP地址
cd /etc/sysconfig/network-scripts/
ls
vi ifcfg-eth1
4个主分区 硬盘比较大我们就扩展分区 主分区+扩展分区=4
扩展分区只能一个,包括逻辑分区,逻辑分区可以格式化,写入数据,但扩展分区不能写数据,只能包含逻辑分区
格式化,我们说的格式化都是高级格式化,windows格式化(FAT16 32 NTFS)
linux格式化文件系统(ext2 ext3 ext4)
centos6.2默认的分区格式是ext4
Linux基本信息
硬盘:
/dev/hda IDE接口的硬盘
/dev/hda1 代表 IDE的第一个硬盘第一个分区
/dev/hdb IDE的第二个硬盘
/dev/sda SCSI接口和SATA
/dev/sda1 代表的是SCSI或SATA的第一个硬盘第一个分区
IDE硬盘分秒传输速度130M/秒
SCSI传输速度200M/秒
SATA传输速度500M/秒 第三代
USB | /dev/usb |
---|---|
打印机 | dev/1p[0-2] 针式打印机 |
USB打印机 | /dev/usb/1p |
软盘 | /dev/fd[0-1] |
鼠标 | /dev/mouse |
查看网卡信息
cat /etc/sysconfig/network-scripts/ifcfg-eht0
修改网卡信息
vi /etc/sysconfig/network-scripts/ifcfg-eth0
保存信息
:wq
重启网卡
/etc/init.d/network restart
查看ip配置
ifconfig
查看端口ssh
netstat -ntlp
linux
退出系统命令
1.输入exit或logout
2.组合键ctrl+D
修改密码
1.重启,进入导航页面,按E
2.输入1,然后按b(boot引导)
3.输入reboot重启
常见故障修复
硬盘扇区错乱
- 按ctrl+D进入单用户模式
- 输入fsck –y/dev/hda6(fsck为文件系统检测修复命令,“-y”设定检测到错误自动修复,devhda6位发生错误的硬盘分区,请依据具体情况更改此参数),系统修复完成后,用命令“reboot”重新启动即可
救援模式(单用户模式无法进入或出现GRUB命令行也不能解决的引导问题,就需要Linux救援模式来进行故障排除)
1.设置CMOS/BIOS为光盘引导,在“boot:”提示符后输入“linux rescue”回车进入救援模式
2.选择简体中文语言,键盘设置“us”
3.系统将试图查找根分区,出现挂载提示,选择“continue”
linux网络基础
OSI****七层网络参考模型
应用层-表示层-会话层-传输层-网络层-数据链路层-物理层
TCP/IP参考模型(LINUX)
应用层-传输层-网络层-网络接口层
应用层(http、ftp、pop3)
传输层(tcp协议、udp协议)
网络层(ip协议)
网络接口层(bit流、网卡)
IP地址:用的是IPv4 32bit
ip地址=网络号+主机号
MTU最大传输单元
RFC(TCP/IP协议的标准文档)
公有IP地址(通过它直接访问因特网)
私有IP地址(非注册IP地址,专供组织机构内部使用)
内部私有IP地址:
A类:10.0.0.0---10.255.255.255
B类:172.16.0.0---172.31.255.255
C类:192.168.0.0---192.168.255.255
子网掩码(标明子网是如何划分的,即地址的哪一部分是包含子网的网络号,哪一部分是网络中的主机号)
系统默认情况下,掩码包含两个域:网络域和主机域,分别对应网络号和主机号
广播地址(用户可以将消息一次性传递到自己所在网络的全体成员中)
设置规则:主机部分被设置为255(二进制权威1),网络部分保持不变。
例如:IP地址为192.68.56.6,其中“192.68.56”表示网络地址,占用了前24位,后8位是主机地址。将后8位全部设置为1就可以得到其广播地址为“192.68.56.255”
loopback(回环地址) 127.0.0.1
HWaddr MAC地址,全球唯一
网关地址(让不同网段之间可以通过网关进行通信)
主机IP设置正确后可以和同网段的其他主机进行通信,但还不能与不同网段的外网进行通信。为了能够和外部网络通信,需要正确设置网关地址。网关通常是提供外部网络连接的路由器,一般至少有两个网络接口:一个连接局域网,另一个提供外网连接。对于需要连接外部网络的主机,需要正确设置本地局域网内的至少一个网关的IP地址,任何不同网段主机间进行的通信都将通过网关进行(一个是van口,另一个是LAN口,从LAN口向van口转换,再向互联网上的机器进行通信)
域名服务器地址(DNS)
仅仅正确设置IP地址和网关地址,只能保证用户通过IP地址和其他主机进行通信。为了能够使用更为简易的主机域名进行通信,需要指定至少一个DNS服务器的IP地址。所有的域名解析任务都会通过指定的DNS服务器来完成。
DHCP服务器
网络中每台计算拥有唯一IP地址,主机IP分为静态地址和动态地址两类。静态地址一般手工设定,动态地址由用户指定的DHCP服务器负责自动分配。用户每次接入网络时,由DHCP服务器从其地址池中动态选择一个没被使用的IP地址分配给用户临时使用。当用户退出网络时(关机或断开网络连接),所使用的IP地址会被释放,由DHCP服务器重新分配。
IP协议 是TCP/IP的一个协议的核心,TCP UDP ICMP
TCP协议是一个可靠的协议
UDP是不可靠的协议
路由表
子网的寻址 IP地址=网络号+主机号
网络管理常用名命令
ARP协议(地址解析的一个协议)
arp –a
配置以太网连接
1.添加网络配置
在虚拟机设置里添加网络适配器
2.修改网络配置
cat /etc/udev/rules.d/70-persistent-cd.rules
reboot
网卡信息保存地址
vi /etc/udev/rules.d/70-persistent-net.rules
添加的一个新的以太网卡
vi /etc/sysconfig/network-scripts/ifcfg-eth1
3.使用配置文件
cd /etc/sysconfig/network-scripts/
ls
将给出的文件或目录拷贝到另一文件或目录中
cp ifcfg-eth0 ifcfg-eth1
修改网卡配置信息
vi ifcfg-eth1
名称,地址,不需mac,ipv6等信息
将网卡转换至桥接模式
/etc/init.d/network restart
网络管理常用命令
Hostname命令
显示和更改系统的主机名
cat /etc/sysconfig/network
ping命令使用ICMP协议,主要用于测试网络的连通性
1.ping命令的一般格式
2.指定发送分组的数量
3.指定发送分组的大小
nslookup命令主要用于测试DNS服务器是否正常工作,除此之外,还可以对域名和IP地址进行查询
ifconfig命令类似于windows下的ipconfig,用于获取和修改网络接口配置信息
1.ifconfig命令的一般格式
2.显示已激活的网络接口信息
3.显示所有网络接口信息
4.显示指定的网络接口信息
5.关闭与激活指定的网络接口
6.设定指定网络接口的IP地址
ifup命令用于启动指定的非活动网卡,与“ifconfig up”命令相似
ifdown命令用于关闭指定的活动网卡,与“ifconfig down”命令相似
route命令用于现实和动态修改系统当前的路由表。
- route命令的一般格式
- 显示当前路由信息
- 添加和删除路由信息
- 添加和删除默认网关
ping命令
nslookup命令
arp命令可以实现从IP地址到以太网MAC地质之间的转换
netstat命令主要用于显示网络的连接状态、查询路由表、对网络接口进行统计
netstat –a
traceroute命令用于检测到达目的地的路由状况。
traceroute在每个ttl值发送3个分组,如果有一个发出的分组没有接收到响应,traceroute就显示1个“*”,如果有响应则显示路由的名字和地址。traceroute以毫秒为单位计算分组的往返时间。
traceroute 192.168.0.102
利用常用命令分析局域网连通故障(物理故障和逻辑故障)
- 计算机操作系统
- 网络通信协议
- 网卡安装设置
- 网络传输介质
- 网络交换机设备
- 计算机病毒
- 人为操作
当网络不通时,联合使用ping、netstat、nslookup以及traceroute命令可以进行故障的分析和诊断。
- 首先使用ping、命令测试回环地址、本机IP、地址和网关地址
- 再使用netstat、nslookup、traceroute命令检查路由、DNS设置
OPENSSH安装配置和远程连接
openssh配置文件查看
rpm –qa |grep openssh
mount /dev/cdrom /mnt
cd /mnt/
ls
cd Packages
ls
ls openssh*
查看openssh版本信息
ssh –V
启动和停止opnssh守护进程—sshd
Centos6.2在系统启动时,默认启动openssh守护进程
netstat –ntlp
/etc/init.d/sshd start
/etc/init.d/sshd stop
exit
需要进入虚拟机,进行sshd的开启命令
/etc/init.d/sshd start
配置openssh服务器
openssh的守护进程默认使用/etc/ssh/sshd_config配置文件
默认配置文件足以启动sshd守护进程并允许ssh客户端连接到服务器。除此之外,在/etc/ssh目录中还有一些系统级配置文件。
vi /etc/ssh/sshd_config
端口号改成58999
配置openssh客户端
openssh默认的客户端配置文件为/etc/ssh/ssh_config
cd .ssh/
ls
echo >authorized_keys
然后输入密码确认连接
exit
cd
ls –la
cd .ssh/
ls
清除两项文件
rm –rf id_dsa id_dsa.pub known_hosts
获取ssh公钥
ssh-keygen
连续三下空格
获取到
id_rsa这个是私钥
id_rsa.pub这个是公钥
获取到所需的公钥
cat id_rsa.pub
然后复制到另外一台虚拟机上
vi authorized_keys
随后就可以进行无密登录
ssh root@192.168.0.110
再将一台机器的公钥复制到另一台虚拟机上后,这台机器就可以进行无密登录另一台虚拟机
复制一份文件到另一台机器上
touch abc
scp abc root@192.168.0.110:/root/
scp(secure copy,即安全复制)是一个远程文件的安全复制程序。由于scp底层基于ssh,当ssh启动时,scp也会默认启动。
进行上传文件命令
rz
但是
好像是缺少了安装rz/sz
https://blog.csdn.net/dbljy2015/article/details/53908256
sz abc
sftp与ftp类似,是一个交互式的文件传输程序,由于底层采用了ssh,因此可以在加密通道上完成文件传输。
下载安装xftp4
选择22端口。协议选择SFTP
遇到个问题,一直无法切换到.ssh,在老师的帮助下解决,用了如下方法:
今天在设置Linux免登录的时候,按照Hadoop官方说明的ssh设置,然后通过ssh localhost测试,可是总是提示要输入密码。
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
命令1:$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
这个命令会产生一个公钥(/.ssh/id_rsa.pub)和密钥(/.ssh/id_rsa),
-t dsa:表示使用密钥的加密类型,可以为'rsa'和'dsa'
-P '':表示不需要密码登录
-f ~/.ssh/id_dsa:表示密钥存放的路径为${USER}/.ssh/id_dsa
命令2:$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
将本机的公钥添加进authorized_keys中,这样允许本机通过ssh的形式免密码登录
注意使用>>,而不是>,因为如果其它主机(如A)也采用免登陆的形式登录,也可以把主机A的公钥添加到authorized_keys文件中。这样主机A就可以免登陆ssh到本机了。
开始也找不出什么原因,后来用root用户跟踪/var/log/message日志,发现每次ssh localhost的时候,有以下日志出现
Aug 20 14:47:40 vm-360-149-11 sshd[11072]: Authentication refused: bad ownership or modes for file /home/linzm/.ssh/authorized_keys
于是更改authorized_keys的权限为600
chmod 600 authorized_keys
问题解决,配置成功。
ssh localhost再也不需要输入密码了。
Vi文本编辑器
vi文本编辑器(三种命令模式,关系,常用命令)
一、命令模式
通过输入命令来执行功能。控制屏幕光标移动。字符,字或行的删除。移动复制某区段及进入插入模式,或者进入到末行模式
高级命令模式vim(是vi的升级版本,带有高亮,和vi具有兼容)vim 文件名
yum install vim-emhanced
进入命令模式
vi 文件名
退出命令模式
(:wq)(:q!)(ESC键)
二、插入模式
在进入vi命令模式时,按下I(i)、A(a)、O(o)之一,即可进入插入模式
插入命令
命令 | 作用 |
---|---|
a | 在光标所在字符后插入 |
A | 在光标所在行尾插入 |
I | 在光标所在字符前插入 |
I | 在光标所在行行首插入 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
定位命令
命令 | 作用 |
---|---|
:set nu | 设置显示行号 |
:set nonu | 取消行号 |
gg G | 到第一行 到最后一行 |
nG | 到第n行 |
:n | 到第n行 |
$ | 移至行尾 |
0 | 移至行首 |
三、底行模式(编辑模式)
编辑环境,如寻找字符串、列出行号……等。一般末行模式也算入命令行模式
四、三种命令之间的关系
命令模式可以进入插入模式(通过i a o),插入模式也可以进入命令模式(ESC键)。
命令模式可以进入底行模式,底行模式也可以进入命令模式(命令行以回车结束运行)。
五、光标的移动及换页(在命令模式下)
定位命令两种方式 方向键定 命令状态
上下左右光标键
h光标左移一格
i在光标前插入正文
j光标下移一行
k光标上移一行
l光标右移一格
m字母 用字母标记当前行,以后可用‘字母使光标移动到当前行’
n重复上次/或?命令
ctrl + B 返回前一页,前面加数字表示重复次数,每次换页时保留上一页的两行
ctrl + F 前进一页,前面加数字表示重复次数,每次换页时保留上一页的两行
ctrl + R 刷新屏幕
ctrl + d 下移半屏
ctrl + u 上移半屏
按u撤销删除
$(移至行尾) 0(移至行首)
回车键
H(移至屏幕的上端)
M(移至屏幕的中央)
L(移至屏幕的下端)
六、删除字符和行(在命令模式下)
删除命令
命令 | 作用 |
---|---|
X | 删除光标所在处字符 |
nx | 删除光标所在处后n个字符 |
dd | 删除光标所在行,ndd删除n行 |
dG | 删除光标所在行到文件末尾内容 |
D | 删除光标所在处到行尾内容 |
:n1,n2d | 删除指定范围的行 |
dw删除一个字
dd删除一行
x删除当前字符
nx删除光标所在处后n个字符
dG删除光标所在行到文件末尾内容
重复某个命令.
删除多行ndd 删除5行 5dd
七、新建/插入(在命令模式下)
vi filename:打开或新建文件,并将光标置于第一行首
一定要有加号
vi + n filename:打开文件,并将光标置于第n行首
vi + filename:打开文件,并将光标置于最后一行首
vi –r filename:在上次正用vi编辑时发生系统崩溃,恢复filename
插入文本类命令
i:在光标前
I:在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
八、复制和粘贴(在命令模式下)
复制和剪贴命令
命令 | 作用 |
---|---|
yy | 复制当前行 |
nyy | 复制当前行以下n行 |
dd | 剪切当前行 |
ndd | 剪切当前行以下n行 |
p、P | 粘贴在当前光标所在行下或行上上一次复制的内容 |
九、查找和替换(在底行模式下)
替换和取消命令
命令 | 作用 |
---|---|
r | 取代光标所在处字符 |
R | 从光标所在处开始替换字符,按ESC结束 |
u | 取消上一步操作 |
搜索和搜索替换命令
命令 | 作用 |
---|---|
/string | 搜索指定字符串 搜索时忽略大小写:set ic |
n | 搜索指定字符串的下一个出现位置 |
:%s/old/new/g | 全文替换指定字符串 |
:n1,n2s/old/new/g | 在一定范围内替换指定字符串 |
保存和退出命令
命令 | 作用 |
---|---|
:w | 保存修改 |
:w new_filename | 另存为指定文件 |
:wq | 保存修改并退出 |
ZZ | 快捷键,保存修改并退出 |
:q! | 不保存修改退出 |
:wq! | 保存修改并退出(文件所有者及root可使用) |
查找和替换命令
:!while date | 查找命令所在的位置 |
---|---|
ab | 定义将一个名字输入后替换成ab设置的内容 |
!ab abc 123 | 将输入的abc替换成123 |
用户和用户组的管理
(普通用户,超级用户,系统用户)
一、普通用户的管理
用户分为三种
- 超级用户(root,uid 0)
- 普通用户(uid 500-60000)
- 系统用户(uid 1-499)
使用useradd命令添加用户
新创建用户默认信息,默认信息包括用户账户文件所存储的用户详细信息。useradd命令格式如下:
useradd option username
系统每一个用户除了有其用户名外,还有对应的用户口令(其实就是密码的意思)。因此,新增用户同时,还需要用passwd命令为每一位新用户设置口令,之后还可以随时用passwd命令改变自己的口令。格式如下:
passwd username
添加新用户abc2
useradd abc2
设置用户abc2密码
passwd abc2
查看useradd帮助文档(相关调用语句)
man useradd
指定用户的主目录(需建立在不存在的路径下)
useradd –d /opt/abc3 abc3
usermod命令是用来修改使用者账号用户信息,具体修改的修改信息和useradd命令所添加的信息一致,usermod命令格式如下:
usermod option username
userdel命令是用来删除系统中的用户信息,userdel命令格式如下:
userdel option username
用户信息配置文件/etc/passwd
/etc/passwd文件是linux安全的关键文件之一,该文件用于用户登录时校验用户登录名,加密的口令数据项,用户id(uid)默认的用户组id(gid)用户信息,用户主目录以及登陆后使用的shell
/etc/passwd文件的每一行保存一个用户的资料,而用户数据按域以冒号:分隔,格式如下:
username:password:uid:gid:userinfo:home:shell
域的含义:
字段 | 含义 |
---|---|
username | 登录名 |
password | 加密的用户口令 |
uid | 用户ID |
gid | 用户组ID |
info | 用户信息 |
home | 分配给用户的主目录 |
shell | 用户登陆后将执行的shell |
清空屏幕
clear
用户密码文件:/etc/shadow
linux使用不可逆的加密算法(如MD5 SHA1等)来加密口令
和/etc/passwd类似,/etc/shadow文件中每条记录用冒号分隔,形成9个域,格式如下所示:
username:password:lastchg:min:max:warn:inactive:expire:flag
3.其中各个域含义如表所示:
字段 | 含义 |
---|---|
username | 用户名 |
password | 密码 |
lastchg | 用户最后一次修改密码时间 |
min | 两次修改密码之间的最小天数 |
max | 密码保持有效的最多天数 |
warn | 从系统开始警告到密码失效的天数 |
inactive | 账号闲置时间 |
expire | 密码失效的绝对天数 |
flag | 一般不使用 |
新用户配置文件目录
/etc/skel
skel是skeleton的缩写,每当你新建一个用户的时候(通过useradd命令),/etc/skel目录下的文件,都会原封不动的复制到新建用户的家目录下
登录信息文件
/etc/motd
/etc/motd即messageoftoday(布告栏信息),每次用户登录时,/etc/motd文件的内容会显示在用户的终端
验证用户账号文件命令pwck
pwck命令是用来验证系统认证文件/etc/passwd和/etc/shadow的内容和格式的完整性
pwck(选项)(参数)
选项
-q:仅报告错误信息
-s:以用户ID排序文件“/etc/passwd”和“/etc/shadow”
-r:只读方式运行指令
参数
(/etc/passwd)密码文件:指定密码文件的途径
(/etc/shadow)影子文件:指定影子文件的路径
pwck /etc/passwd
二、根用户的管理
Linux根用户(root)概述
所有linux系统中,系统都是通过UID来区分用户权限级别,而UID为0的用户被系统约定为是具有超级权限。我们可以通过/etc/passwd来查找UID为0的用户是root,而且只有root对应的UID为****0。root用户是无可替代的而且无限制权限。root用户在系统中就是超级用户。
超级用户权限:
\1. 对任何文件、目录或进程进行操作
\2. 对于涉及系统全局的系统管理
\3. 超级权限的不可替代性
查看进程
ps -ef
关闭进程
kill -9 pid
切换用户
su abc3
然后输入密码
返回原本用户
su –
然后输入原本用户的密码,返回
su – abc3
su命令就是切换用户的工具
su的用法
su[OPTION选项参数][用户]
-l,-login登录并改变到所切换的用户环境
-c,-command=COMMAND执行一个命令,然后退出所切换到的用户环境
sudo(是受限制的su)是授权许可使用的su
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或全部的root命令的一个工具,如halt,reboot,su等等。这样做不仅减少root用户的你的登陆和管理实践,同样也提高了安全性
普通用户运行
yum install wget
权限不够
夺取授权
sudo yuminstall wget
配置文件/etc/sudoers
三、用户组的管理
用户组描述:
Linux用户组是具有相同特征用户的逻辑集合
,将用户分组是linux系统中对用户进行管理及控制权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。用户和组的关系有:
- 每一个用户都至少属于一个用户组(一对一)
- 每个用户可以属于多个用户组(一对多)
- 同一用户组的用户享有该组的权限(多对一)
- 多个用户可以存在多个组中(多对多)
查看用户组配置文件
cat /etc/group
groupadd命令创建用户组
groupadd命令可以以指定名称来建立新的用户,group命令格式如下:
groupadd option groupname
groupmod命令修改用户组属性
groupmod命令可以修改用户组主属性,格式如下:
groupmod option groupname
groupmod –n newgroupname oldgroupname
groupdel命令删除用户组
groupdel命令可以用来删除系统中存在的组,使用该命令时必须确认待删除的用户组存在,格式如下:
groupdel groupname
初始组不可删除
组信息文件/etc/group
/etc/group文件对用户组的许可权限并不是必要的,这是因为系统用来自于/etc/passwd文件的UID GID来决定文件存取权限
用户组可以像用户一样拥有口令
如:haldaemon❌68:haldaemon
第一字段:组名
第二字段:组密码标志
第三字段:GID
第四字段:组中附加用户
组密码文件/etc/gshadow
如:haldaemon:!::haldaemon
第一字段:组名
第二字段:组密码
第三字段:组管理员用户名
第四字段:组中附加用户
无密码时,组密码是!
如果要使某个用户无法登陆,第二个域第一位加个!
也可以改变用户路径改成sbin/nologin
组密码
可以把这个组其他成员删除
也可以加入其他成员进入组中
四、用户和用户组的图形化管理
五、用户和用户组管理常见问题
一、对/etc/shadow文件的编辑导致用户密码丢失
当用户尝试修改密码时,如果其他人正在编辑/etc/shadow文件,将可能导致修改的密码失效
解决:
我们可以使用vi /etc/shadow命令来编辑时,自动对该文件加锁,编辑结束自动结束,从而保证了数据的一致性。
二、/etc/nologin文件引起普通用户无法登录
1./etc/nologin文件给系统管理员提供了一种在Linux系统维护期间禁止用户登录的方法。这种机制也被应用到系统的关机、重启环节中。通常系统在关闭时将自动创建/etc/nologin文件,禁止所有用户登录,然后处理相关程序的退出,停止工作,并在即将关闭系统前删除/etc/nologin文件。
2.如果系统在还未正常删除/etc/nologin文件前引出线突然断电停机等情况,就会出现因nologin文件未删除而引起的普通用户无法登录的现象。
解决:
根用户登录系统并删除nologin文件,问题即可解决。
三、账户到期或密码失效导致用户无法登录
1.通过chage命令查看账户密码的有效期
chage[选项] 用户名
-l:列出用户的以及密码有效期限
-m:修改密码的最大天数
-d:指定密码最后修改日期
Linux磁盘管理
常用的磁盘管理工具
fdisk磁盘分区工具
查看磁盘分区
fdisk –l
/dev/sda 第一块硬盘
Linux文件系统 ext3 ext4 centos redhat
ReiserFs(suse默认的文件系统)
格式化
fdisk /dev/sdb
m
n
p
1
20G
W
Linux磁盘分区后,就要建立Linux文件系统。类似于Windows下的格式化硬盘。在磁盘分区上建立文件系统会冲掉分区上的数据,而且不可恢复,因此在建立文件系统之前要确认分区上的数据不再使用。
建立文件系统的命令是mkfs
cat /etc/fstab
mkfs [参数] 文件系统
mkfs命令常用的参数选项:
-t 指定要创建文件系统的类型
-c 建立文件系统前首先检查坏块
-V 输出建立文件系统详细信息
mkfs –t ext4 –V –c /dev/sdb1
fsck命令主要用于检查文件系统的正确性。并对Linux磁盘进行修复。
fsck[参数选项] 文件系统
fsck 命令常用的参数选项:
-t:给定文件系统类型,若在/etc/fstab中已有定义或kernel本身已支持的不需添加此项。
-s:一个一个地执行fsck命令进行检查
-A:对/etc/fstab中所有列出来的分区进行检查
-C:显示完整的检查进度
-d:列出fsck的debug结果
-P:在同时有-A选项时,多个fsck的检查一起执行
-a:如果检查中发现错误,则自动修复。
-r:如果检查有错误,询问是否修复
fsck –a /dev/sdb1
dd命令可用于将指定的输入文件拷贝到指定的输出文件上。并且在复制过程中可以进行格式转换。dd命令与cp命令的区别在于:dd命令可以再没有创建文件系统的软盘上进行,拷贝到软盘的数据实际上是镜像文件。类似于DOS中的diskcopy命令的作用。
dd命令格式为:
dd[<if=输入文件名/设备名>][][bs=块字节大小][count=块数]
du命令可用于显示磁盘空间的使用情况。该命令逐级显示指定目录的每一级子目录占用文件系统数据块的情况。
du命令的参数选项:
-s:对每个name参数只给出占用的数据块总数
-a:递归显示指定目录中各文件及子目录中各文件占用的数据块数
-b以字节为单位列出磁盘空间使用情况
-k:以1024字节为单位列出磁盘空间使用情况
-c:在统计后加上一个总计(系统默认设置)
-l:计算所有文件大小,对硬链接文件重复计算
-x:跳过在不同文件系统上的目录,不予统计
du -sh *
df命令
df是来自于coreutils软件包,系统安装时,就自带的;我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置
df –h
挂载与卸载命令
mount和umount
mount挂上文件系统
umount卸载文件操作系统
mount命令指示操作系统使文件系统在指定位置(安装点)可用。而且可以用mount命令构建由目录和安装文件(filemounts)组成的其他文件树。mount命令通过在Directory参数指定的目录上使用Device/Node:Directory参数来安装表示为设备的文件系统。mount命令完成后,指定的目录变为新安装文件系统的跟目录。
df –Th
fdisk –l
mkdir /backup
mount /dev/sdb1 /backup
/etc/fstab(自动挂载分区)
是用来存放文件系统的静态信息的文件
挂载光盘
mount /dev/cdrom /mnt/cdrom
卸载光盘
umount /dev/cdrom
dd 用于整个磁盘备份 类似于diskcopy
dd if=/dev/sdb of=/dev/sda 把本地/dev/sdb盘备份到/dev/sda
磁盘配额管理
/dev/sdb1 /backup ext4 defaults 0 0
/etc/fstab 它有6个区域 文件系统 挂载点 挂载类型 填写设置选项 dump
pass 代表的是如何指定使用fsck来检查硬盘,如果是1代表执行完整备份
uuid是全局唯一标识符
一、 查看系统是否支持quota
grep CONFIG——QUOTA //boot/config-2.6.32-220.el6.x86_64
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
#CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
二、修改/etc/fstab文件,让需要进行配额的分区激活配额功能
vi /etc/fstab
/dev/sdb1 /backup ext4 grpquota,suid,dev,usrquota,extc 0 0
在位置部分的default后填写usrquota,grpquota,如果配置外加的新设备需要填写grpquota,suid,dev,usrquota,exec参数
三、使用quotacheck对设置了配置配额的目录进行初始化
quotacheck-avug
四、启动QUOTA
quotaon -av
五、编辑用户磁盘限额
edquota –u[username]
六、设定宽限时间
edquota -t
磁盘常见问题
一、 错误:设备上无剩余空间
当你的Linux系统磁盘写满了时你会在屏幕上看到这样的信息
No space left on device
查看硬盘空间
df –h
二、文件系统是只读模式吗?
当你尝试新建或保存一个文件时,你可能最终得到诸如以下的错误:
-bash:file:Read-only file system
mount /dev/cdrom /mnt/cdrom
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
修复磁盘写满的问题:
1、 用gzip,bzip或tar命令来压缩未压缩的日志和其他文件
gzip /tpusers/tap/4.log
bzip /ftpusers/tap/large.file
2、 在类Linux系统中用rm命令删除不想要的文件
rm –rf /ftpusers/tap/4.log
3、 用rsync命令移动文件至其它系统或外置硬盘
rsync --move-source-files –azv /ftpusers/tmpf.mov/mnt/usbdisk
rsync –remove-source-files –azv/ftpusers/tmp/f.mov
server2:/path/to/dest/dir/v
4、 在类Linux系统中找出醉斩磁盘空间的目录或文件
du –a /ftpusers/tmp |sort –n –r | head –n 10
du –cks * |sort –rn | head
5、 清空指定文件。这招对日志文件很有效
truncate –s o /ftpusers/ftp.upload.log
### bash/sh
/ftpusers/ftp.upload.log
##perl##
perl –e’trunce “filename”,LENGTH’
七、 在Linux和Linux中找出并删除显示着但已经被删除的大文件:
##基于Linux/Linux/OSX/BSD等系统##
lsof –np | grep’(deleted)’
##只基于Linux##
find /proc/#/fd-ls |grep ‘(deleted)
清空它:
##基于Linux/Linux/OSD/BSD等所有系统##
‘/path/to/the/deleted/file.name’
##只基于Linux##
‘/proc/PID-KERH/fd/FD-HERH’
检查在系统中识别文件及其属性的索引节点
df –i
df –I /ftpusers/
然后会输出部分内容
php 的session文件很小,很容易占满磁盘空间。需注意,还有一个就是系统发给root的邮件,sendmail postfix产生的小文件占满inode
LCTT译注:如果一个分区存储了太多的小文件,会出现inode用完而存储扇区还有空闲的情况,这种情况下要么清除小文件或在不需要独立访问的情况下将他们打包成一个大文件;要么将数据保存好之后重新分区,并设置分区的-t news属性,增加inode分配。
我的硬盘驱动器宕了吗?
日志文件中的输入/输出错误(例如:/var/log/messages)说明硬盘除了一些问题并且可能已经失效,你可以用smartctl命令来查看硬盘的错误,这是一个在类Linux系统下控制和监控硬盘状态的一个命令。语法如下:
smartctl –a /dev/DEVICE
#在Linux服务器下检查/dev/sda
smartctl –a /dev/sda
有时候系统突然断电,系统启动的时候,需要输入fsck修复系统盘。
Linux文件和目录管理
一、概念
1.Linux文件系统是指操作系统中与管理文件有关的软件和数据
2.Linux的文件系统和Windows中的文件系统有很大的区别,在Windows下,目录结构属于分区;在Linux下,分区属于目录结构。
3.在Linux中把每一个分区和某一个目录对应,以后在对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理和软件目录管理手段的统一。这个把分区和目录对应的过程叫做挂载(Mount),而这个挂载在文件树中的位置就是挂载点。
4.WIndwos下的主流文件系统是FAT32、NTFS;
5.Linux下的主流文件系统是:EXT3、EXT4;
一级目录:
cd /
ls
ll
二级目录:
cd boot/
ls
ll
Linux系统主要目录及其内容 | |
---|---|
目录 | 内容 |
/bin | 构建最小系统所需要的命令(最常用的命令) |
/boot | 内核与启动文件 |
/dev | 各种设备文件 |
/etc | 系统软件的启动和配置文件 |
/home | 用户的主目录 |
/lib | C编辑器的库 |
/media | 可移动介质的安装点 |
/opt | 可选的应用软件包 |
/proc | 进程的映像 |
/root | 超级用户的主目录 |
/sbin | 和系统操作相关的命令 |
/tmp | 临时文件存放点 |
/user | 非系统的程序和命令 |
/var | 系统专用的数据和配置文件 |
Linux文件系统建立文件和目录
1.建立目录mkdir
mkdir命令可以一次建立一个或几个目录
2.建立一个空文件:touch
touch命令建立空文件,还可以更新一个文件的建立日期和时间
Linux文件系统移动、复制和删除文件
1.移动和重命名mv
2.复制文件和目录cp
3.删除目录和文件rmdir和rm
二、Linux文件的类型
Linux中文件的类型 | |
---|---|
文件类型 | 符号 |
普通文件 | - |
目录 | d |
字符设备文件 | c |
块设备文件 | b |
本地域套接口 | s |
有名管道 | p |
符号链接 | l |
查看进程
ps –ef
查看文件类型
ls -l
建立连接ln
符号链接(也成为“软链接”)需要使用-s参数的ln命令来创建。
硬链接:硬链接指通过索引节点来进行连接。在Linux得文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,成为索引节点(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。
硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
硬连接的2个限制:
1、不允许给目录创建硬连接
2、只有在同一文件系统中的文件之间才能创建链接。即不同硬盘分区上的两个文件之间不能够建立硬连接。
建立链接文件--创建文件链接
创建文件夹
mkdir test1
创建文件
touch abc1
ls
ln –s abc1 /root/abc1
cd ..
ls –l
rm –rf abc1
ll
ln –s /root/test1/
abc1 hello
这里的.表示当前路径,整句表示是从原路径/root/test1/abc1链接到.即连接到当前路径
ln –s /root/test1/abc1 .
ll
echo aaaaa>abc
echo aaaaa>abc1
cat abc1
aaaaa
cd ..
ls
ll
rm –rf abc1
ls
ll
cd test1/
ls
cat abc1
cd ..
ln –s /root/test1/abc1 /root/abc1
ll
创建目录链接
cd test1/
ll
mkdir user-1
ll
ln –s /root/test1/user-1 /root/user-1
cd ..
ls –l
cd user-1/
ls
touch abc
ls
cd ..
cd test1/user-1/
ls
cd
ls
rm –rf user-1
cd test1
ls
ln hello hard_hello
ll
cat hello
dddddddd
cat hard_hello
dddddddd
echo abc >>hello
cat hard_hello
dddddddddd
abc
相对路径和绝对路径
相对路径:以某一个目录作为参照点,到达目标文件或者目录的路径
绝对路径:就是从根开始,依次向下直到文件或者目录的路径
cd ..
pwd
cd test1/user-1/
pwd
cd /root/test1/user-1
ls
三、文件和目录的权限
1.权限设置只针对用户
Linux为3种人准备了权限—文件所有者(属主),文件属组用户和其他人(不包括root)。
文件名前有.为隐藏文件
2.需要设置哪些权限
可以给某些用户对文件和目录享有3种权限:读取(r),写入(w),执行(x)
touch a.sh
vi a.sh
#!/bin/bash
ls –l
chmod u+x a.sh
./a.sh
3.查看文件和目录属性
使用带选项的-l的ls命令可以查看一个文件属性,包括权限
ls- l
drwxr-xr-x
d表示目录
rwx表示属组
r-x表示组
r-x表示其它
4.改变文件所有权chown和chgrp(一般通过root权限修改)
- chown命令用于改变文件所有权
- chgrp命令用于设置文件的属组
将test1的权限由root转向user1
chown user1:root test1
将test1的属组由root转向user1
chgrp user1 test1
5.改变文件权限chmod
chmod用于改变一个文件的权限,这个命令使用“用户组+/-权限”的表述方式来增加和删除相应的权限。具体来说,用户组包括了文件属主(u),文件属组(g),其它人(o)和所有人(a),而权限则包括了读取(r),写入(w)和执行(x)
读取用数组表示4
写入用数字表示2
执行用数字表示1
删除写入权限
chmod u-w test1
增加写入权限
chmod u+w test1
也可以采用数字叠加赋值:
赋予对于test1的所有权限
chmod 555 test1
只有读的权限
chmod 774 test1
四、IO重定向及管道操作
新地址:172.23.62.72
所以需要重新设置虚拟机地址以进行局域网通信
设置了新的虚拟机server001通信地址eth0的地址为172.23.62.1
1.输出重定向
程序在默认情况下输出结果的地方被称为标准输出(stdout),通常来说,标准输出一般是指显示屏。
ls >abc1
cat abc1
追加,重定向
ls >>abc1
cat abc1
不追加
ls >abc1
查看日期
date
追加日期
date >abc1
cat abc1
uname –r >>abc1
cat abc1
2.输入重定向
和标准输出类似,程序默认情况下接受输入的地方称为标准输入(stdin),通常来说标准输入指向的是键盘。
显示输入
cat
dddd
按ctrl+d结束输入
touch days
cat >days
vi days
Monday
Tuesday
输出文件内容
cat >days
cat <<BOF
hello
bye
eof
EOF
按ctrl+d结束输入,并会输出刚才输入的一切
3.双重输出重定向
使用>和2>可以将一次操作正确、错误输入,被单读的送到不同地方:
find / -perm -2 2>error >abc
使用&将所有输入都送到同一个地方
find / -perm +6000 >abc1
rm –rf abc1
abc1里都是正确的
find / -perm -2 2>error >abc1
rm –rf abc2
错误的,正确的都在abc2里
find / -perm +6000 >abc2
\3. 管道
管道将“重定向”再向前推进了一步,通过一根竖线“|”,将一条命令的输出作为另一条命令的输入。允许多重管道。
ls –l |grep log
ls –l |grep log
将一条命令ls –l的输出连接到另一条命令grep log的输入
输出第一个域
ls –l |grep log |awk –F “ ” ‘{print $1}’
五、打开文件和目录
文件和目录管理常用命令 | |
---|---|
命令名 | 作用 |
文件和目录操作中常用适配符(?和*) | ?代表一个字符,*代表所有字符 |
ls | 列出一切于目录的文件 |
cd | 切换目录 |
cp | 复制文件 |
rm | 删除文件 |
mkdir | 建立目录 |
rmdir | 删除目录 |
mv | 移动文件 |
find | 查找文件 |
grep | 查看文件内容 |
chown | 改变文件所有权 |
chrgp | 改变文件属组的所有权 |
cat | 查看文件内容 |
more | more可以按页来查看文件的内容 (按空格键切换) |
less | less与more类似但是用less可以随意浏览文件 |
head | head用来显示的开头n行,默认head命令打印 |
touch | 创建文件,改变文件或目录时间 |
sort | sort 命令是做不同的数据类型通过排序 |
comm | comm命令是比较两个已经排序文件每行数据的顺序 |
diff | 用于比较文件的内容,特别是比较两个版本不同的文件以找到改动的地方 |
cut | cut是选取命令,取出我们想要的数据 |
locate | 用于查找文件,它比find命令的搜索速度更快 |
spilt | 按指定的行数截断文件 |
显示3个字符的文件
ls –l ???
显示所有带b字符的文件
ls –l b
显示所有文件
ls –l *
查找abc1里所有带bin路径的文件
grep bin abc1
显示文件的开头n行
head 10 install.log
对文件排序
cat install.log|sort
对abc和abc1进行排序输出
comm abc abc1
输出两个文件之间不同的地方
diff abc abc1
对于Linux内核对usb介质有着很好的连接,一般是自动挂载。
Linux终端常用命令
一、 Liinux终端窗口
\1. 在图形界面下启动终端窗口进入命令行工作方式
ctrl+alt+F3切入命令行,F1切换回来
\2. 在系统启动时进入命令行终端方式
\3. 使用远程登录方式
二、命令行自动补齐
Bash Shell提供几种对输入不完整的值自动补齐的方法。如果想对输入进行自动补全,只需输入初始的几个字母,然后按“TAB”键,系统会自动匹配所需的其余输入。当有多种匹配时,系统会给出提示,按“ESC+”组合键或按两次“TAB”键,可以列出所有可能的匹配。
cd /tmp/
cd /etc/
ls
先不按回车,按下“TAB”键,然后会自动列出所有可能
如果遇到这句(显示所有130种可能?)
Display all 130 possibilities?(y or n)^c
就按下ctrl+c
二、常用的信息显示命令
常用的命令信息显示命令 | |
---|---|
命令 | 功能 |
pwd | 查看“当前工作目录”的完整路径 |
stat | 查看文件的详细信息 |
uname | 显示当前操作系统名称参数 |
hostname | 查看本机的主机名 |
dmesg | 显示开机信息 |
free | 查看系统内存的使用情况 |
locale | 用于查找文件 |
lastb | 用于列出登入系统失败的用户相关信息 |
date | 以给定的格式显示当前时间 |
显示当前用户名称
pwd
查看关于abc1信息
stat abc1
查看内存使用情况
free -m
date +%Y%m%d
date +%Y-%m-%d
常用的命令信息显示命令 | |
---|---|
命令 | 功能 |
clock | 强制把系统时间写入CMOS |
lsmod | 查看已经加载的模块 |
set | 设置各种shell选项或者列出shell变量 |
rulevel | 系统运行级别 |
sysctl | 允许您改变正在运行中的Linux系统的接口 |
uptime | 查看Linux系统负载,登陆情况 |
ps | 为我们提供了进程的一次性的查看 |
top | 显示系统中各个进程的资源占用状况 |
pstree | pstree命令以树状图显示进程间的关系 |
history | 显示历史指令记录内容 |
mesg | 用于对方系统屏幕中显示信息 |
可更改系统指令记录显示条数
vi /etc/profile
source /etc/profile
hitory
\4. 用cat命令查看系统信息
命令 | 功能 | |
---|---|---|
cat | /etc/issue | 查看当前系统 |
cat | /proc/cpuinfo | 查看cpu信息 |
cat | /proc/interrupts | 列出当前系统使用的中断的情况 |
cat | /proc/filesystems | 查看可用的文件系统 |
cat | /proc/stat | 各个中断序号发生中断的次数 |
三、常用的系统管理命令
常用的系统管理命令 | |
---|---|
命令 | 功能 |
mkbootdisk | 创建引导软盘 |
kill | 关闭进程命令 |
killall | 杀死同一进程组内的所有进程 |
allas | 设置别名 |
unallas | 可删除别名设置 |
clear | 这个命令将会刷新屏幕 |
reboot | 重新引导系统 |
shutdown | shutdown命令不仅可以关闭系统、也可以重启Linux系统 |
& | 后台稳定运行 |
jobs | 查看当前有多少在后台运行的命令 |
fg | 将后台中的命令调至前台继续运行 |
bg | 将一个在后台暂停的命令,变成继续执行 |
exit | 退出终端 |
halt | halt –p关闭系统后关闭电源 |
sync | sync就是为了数据同步 |
mknod | mknod命令来申请设备文件 |
chattr | 用chattr命令防止系统中某个关键文件被修改(包括root都不能修改) |
echo | 显示屏上显示一段文字,一般起到一个提示的作用 |
wc | 统计指定文件中的字节数、字数、行数,并将统计信息显示输出 |
查看进程
ps –ef
关闭PID为10075的进程
kill -9 PID
kill -9 10075
vi .bashrc
source .bashrc
cat .bashrc
source .bashrc
admin
vi a.sh
chmod 775 a.sh
./a.sh &
锁定该文件
ls –l /etc/resolv.conf
chattr +i /etc/resolv.conf
然后就无法移动,删除该文件
mv /etc/resolv.conf .
rm –rf /etc/resolv.conf
解除锁定该文件
chattr –i /etc/resolv.conf
可以将该文件移动到.(即当前位置)
mv /etc/resolv.conf .
让某个文件只能往里追加数据,但不能删除数据
chattr +a /etc/resolv.conf
统计行数
ls | wc -l
四、使用mount命令挂载外设
mount通常不必指定设备类型,它会自动选择正确的类型,常用的挂载类型有:
\1. 光盘或光盘镜像
\2. ntfs文件系统
\3. smb文件网络共享
\4. nfs文件网络共享
smb挂载
mount.smbfs /192.168.1.1/somedir dir –o username=xx,password=xxxx
nfs挂载
mount 192.168.1.2:/data/export data/export
五、Linux备份与压缩的策略
1.tar打包文件
2.gzip压缩文件
3.zip压缩
备份机制根据不同情况选择不同计划
选择备份机制
\1. 制定一个备份计划
多长时间一次备份
是完整备份还是增量备份
频繁更新的web站点,每天都要做一次备份
六、打包程序tar
tar命令本身只进行打包不进行压缩,主要功能是将多个文件或目录打包在一个文件里,以便于传输和保存
基本选项:
-c:创建新的备份文件
-v:verbose模式,即显示命令执行时的信息
-f:指定压缩的文件格式
-x:对文件进行恢复
-z:指定压缩为.z格式
-t:查询包中内容
将abc、anaconda-ks、cfg打包到abc.tar.gz(压缩)
tar –czwf abc.tar.gz abc abc. anaconda-ks.cfg
mkdir user1
mv abc.tar.gz user1
cd user1/
ls
解压文件(如果打包的时候没有用到t,解压时用到t会失败)
tar –xzvf abc.tar.gz
查询包中内容
tar –czvft abc.tar.gz *
解压
tar –xzvft abc.tar.gz
七、压缩程序gzip和gunzip
gzip具有高校压缩率,但只能逐个生成压缩文件,无法将多个文件压缩并打包成一个文件,所以gzi铺、通常和tar配合使用。即先用tar将多个文件打包,然后用gzip进行压缩,通常生成“.tar.gz”或“.tgz”为后缀名的文件
gzip命令格式如下:
gzip[选项][-S suffix] 文件名
-d 解压缩
-f 对输出文件强制写覆盖并对链接文件进行压缩
-r 对目录进行递归操作
-t 检测压缩包的完整性
-S 使用自定义的压缩文件后缀名
压缩
gzip anaconda-ks.cfg
ls
解压
gunzip anaconda-ks.cfg
八、压缩程序zip与unzip
unzip的命令格式如下:
unzip【选项】 zip文件
-Z:以zininfo格式显示压缩文件内的信息
-l:以简略格式输出压缩文件的基本信息
-L:如果压缩文件是从不区分大小写的文件系统中创建
-t:通过CRC校验对zip压缩包进行检测
-x:用于排除压缩包中的特定文件
压缩文件
zip abc.zip *
ll
mkdir abc
cd abc
cd ..
mv abc.zip abc
cd abc/
ls
解压
unzip abc.zip
ls
排除特定文件(install.log.syslog)
zip install.zip * -x install.log.syslog
ls
mkdir abc
cd abc/
cd ..
mv install.zip abc/
cd abc/
ls
unzip install.zip
ls
zip –r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下的所有文件。
unzip
unzip –o –d /home/sunny/myfile.zip
把myfile.zip文件解压到/home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压到/home/sunny目录下;
其他
zip –d myfile.zip smart.txt
删除压缩文件中smart.txt文件
zip -n myfile.zip ./rpm_info.txt文件
要使用zip来压缩文件,在shell提示下键入下面的命令:
zip –r filename.zip filesdir
九、其他常用命令与压缩工具
1.压缩程序bzip2与bunzip2
rm –rf install.zip
bzip2 install.tar *
ls
ll
bunzip2 install.log.bz2
\2. dump与restore命令
dump备份文件系统 可以做增量备份
restore 恢复,还原
\3. cpio命令
cpio 压缩,解压缩
cpio –covB
cpio –icduv
4.dd命令
dd 磁盘备份
十、Linux其他相关命令
rsync是linux系统下的数据镜像备份工具-remote sync。一款快速增量备份工具Remote Sync,远程同步,支持本地复制,或者与其他SSH,rsync主机同步。
rsync参数:
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-c, -checksum打开校验开关。强制对文件传输进行校验
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, --recursive 对子目录以递归模式处理
-R, --recursive 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用-suffix选项来指定不同的备份文件前缀。
--backup-dir将备份文件(如filename)存放在目录下
--suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, --links 保留软链接
-L, --copy-links想对待常规文件一样处理软链接
--copy-unsafe-links仅仅拷贝指向SRC路径目录树以外的链接
--safe-links 忽略指向SRC路径目录树以外的链接
-H, --hard-links 保留硬链接
-p, -perms 保持文件权限
-o, ---owner保持文件属主信息
-g, --group保持文件属组信息
-D, --devices保持设备文件信息
-t, --times 保持文件时间信息
-S , --spare 对稀疏文件进行特殊处理以节省DST的空间
服务端启动
/usr/bin/rsync –daemon –config=/etc/rsyncd/rsyncd.conf
客户端同步
rsync –参数 用户名@同步服务器的IP::同步名字
同步信息
A机器:
mkdir /data/test
cd /data/test/
ls
touch abc.txt
ifconfig
B机器:
mkdir –p /data/abc
cd /data/abc/
ls
查看B机器上的rsync的Local Address(端口)
netstat -ntlp
cd /etc/
ls
查看/usr/bin/rsync –daemon –config=/etc/rsyncd.conf进程
ps –ef
cat /etc/rsyncd.conf
vi rsyncd.conf
A机器:
rsync –avzp root@172.23.62.1:test /data/test
查看防火墙
iptables –L -n
清空防火墙
iptables –F
rsync -vazrtopg root@172.23.62.1::test -exclude-from=”/root/scripts/1.txt” /data/abc --password-file=/etc/rsyncd.secrets --include “*”
scp anaconda-ks.cfg.gz root@172.23.62.1:/root/backup
cd .ssh/
rm –rf id_rsa id_rsa.pub known_hosts
ssh-keygen
cat id_rsa.pub
然后传递公钥到另一台机器上
遇到些问题,需要安装rsync,配置rsync,可以参考以下文档链接:
https://www.cnblogs.com/wenxinphp/p/5800446.html
二、scp可以在2个Linux主机间复制文件
1、从本地复制到远程
scp local_file remote_ip:remote_folder
2、从远程复制到本地
scp 本地用户名 @IP 地址:文件名1 远程用户名@IP 地址:文件名2
-rw------- (600) -- 只有属主有读写权限。
-rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) -- 只有属主有读、写、执行权限。
-rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。
-rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。
Linux系统监测与维护
一、 监测系统资源和性能
\1. 使用proc文件系统查看系统内核
proc不是一个真实的文件系统,不占用外存空间,只是以文件的方式为访问Linux内核数据提供接口。用户和应用程序可以通过查看/proc得到系统的运行信息,并可以改变内核的某些参数。由于系统的信息总是动态变化的,所以用户或应用程序读取proc文件时所获得的数据也是瞬时的。许多应用程序依靠proc来访问Linux内核信息。
cd /proc/
cat cpuinfo
\2. 监视进程
进程是操作系统的一种抽象概念,用来表示正在运行的程序。
进程属性:
PID | 进程的ID号 |
---|---|
PPID | 父进程的PID |
UID和EUID | 真实和有效的用户ID |
GID和EGID | 真实和有效的组ID |
进程优先级 |
查看当前正在运行的进程情况
ps aux
%MEM | 占用内存百分比 |
---|---|
VSZ | 进程占用虚拟内存大小 |
RSS | 内存中页的数量 |
TTY | 进程所在终端的ID号 |
STAT | 僵尸进程(z),正在进行的进程(R),睡眠的进程(S),不能被唤醒的进程(D),会话的先导进程(s) |
ps –lax
\3. top命令
即时跟踪进程信息
top
按ctrl+c退出跟踪
\4. lsof命令
查看占用文件的进程
lsof 文件名
lsof /lib64/ld-2.12.so
\5. kill命令
向进程发送信号
kill[-signal] pid
常用的信号(signal) | |||
---|---|---|---|
信号编号 | 信号名 | 描述 | 默认情况下执行的操作 |
0 | EXIT | 程序退出时收到该信号 | 终止 |
1 | HUP | 挂起 | 终止 |
2 | INT | 中断 | 终止 |
3 | QUIT | 退出 | 终止 |
9 | KILL | 杀死 | 终止 |
11 | SECV | 段错误 | 终止 |
15 | TERM | 软件终止 | 终止 |
二、查看用户使用系统资源情况
w命令:
在多用户环境下,每个用户都可以登录到系统,执行不同的程序。利用w命令可以查看当前有哪些用户已经登录,以及正在进行什么操作。
who命令:
使用who命令可以查看系统当前有哪些用户登录
last命令:
使用命令last可以查看有哪些用户登录过系统
ac命令:
不带任何选项的ac命令可以查看系统总的连接时间
\3. 管理守护进程
什么是守护进程
是一类在后台运行的特殊进程,用于执行特定的系统任务
服务器守护进程运行的方式
配置xinetd
inetd xinetd 就是为了解决守护进程空闲时间而产生的。
\4. Linux系统引导
Linux启动的步骤
\1. 加载并初始化Linux系统内核
\2. 配置硬件设备
\3. 内核创建自发进程
\4. 由用户决定是否进入手工引导模式
5.(init进程1)执行系统启动脚本
6.进入多用户模式
cd /etc/xinetd.d/
cd /etc/init.d/
ls
/etc/init.d/ss
init和运行级
服务器启动版本
三、利用自动作业程序实现系统自维护
1、任务计划:cron
cron是一个Linux下的定时执行工具,可以在无需人工干预的情况下
运行作业。由于cron是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/etc/init.d/crond start|restart|stop
启动服务
service srond start
关闭服务
service crond stop
重启服务
service crond restart
重新载入配置
service crond reload
chkconfig –list |grep crond
crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
/etc/init.d/crond restart
2.crontab命令选项:
-u:指定一个用户
-l:列出某个用户的任务计划
-r:删除某个用户的任务
-e:编辑某个用户的任务
3.几个特殊符号的含义:
“**”代表取值范围内的数字
“、”代表”每”
“-”代表从某个数字到某个数字
“,”分开几个离散的数字
cron文件语法:
分 小时 日 月 星期 命令
* * * * * *
0-59 0-23 1-31 1-12 0-6 command
crontab -e
1 * * * * ls
05 21 * * * pwd
05 7 8 * * ls
4.系统全局cron配置文件
和系统维护有关的全局任务计划一般都放在/etc/crontab中。
另一个存放系统crontab的地方是/etc/cron.d目录
at命令
用于一次性的任务
at 时间
atq命令
可以看到当前已经设置的任务
四、改变进程优先级
nice命令
可以根据用户的需要设置进程执行的优先级
NI(谦让度)低谦让度高优先级,高谦让度低优先级
nice和renice谦让度的值 -20至 +19之间
nice –n 2 程序名
renice命令
nice命令用于设置优先级并执行相应的程序。如果一个程序已经开始执行,可以使用renice命令对优先级进行调整。
renice +10 -p 进程名
五、Linux系统日志
1、常见的日志
/var/log/cron 记录crontab日志
/var/log/dmesg 记录系统开机的时候核心侦测过程所产生的相关资讯
/var/log/lastlog 可以记录系统上面所有账号最近一次系统时的相关资讯
/var/log/maillog 记录邮件往来资讯,主要记录sendmail
/var/log/messages 系统日志(重要,系统日志)
/var/log/secure 涉及到“需要输入账号密码”的,登入时要记录在此档案中
cd /var/log/
ls
cat cron
ls
cat dmesg
2、日志的服务程序有:
syslogd 主要登录系统与网络等服务的讯息
klogd 主要登录核心产生的各种资讯
logrotate 主要在进行登录档的轮替功能
cat /etc/log/logrotate.conf
日志级别:
1、info 仅是对一些基本讯息的说明
2、notice 比 info 还需要被注意到的一些资讯内容
3、warning 警示,可能有问题
4、err 重大的一些问题
5、crit 比error还要严重的错误资讯
6、alert 警告,这个比crit更严重
7、emerg 疼痛级别,几乎要当机的一个状态
日志轮替 logrotate
cat /etc/logrotate.conf
3、查看日志是否打开
ps aux |grep sylog
chkconfig --list
4、清空运行日志
随着系统运行时间越来越长,日志文件也会变得越来越大。
如果创建日志文件的服务正在运行,必须停止服务,才能正常删除日志,否则会产生不可预测的后果。但可以利用echo命令清空日志,而不必停止日志服务。
touch a.txt
echo >a.txt
5、使用日志进行故障诊断
一、使用/var/log/dmesg日志文件
二、使用/var/log/cron日志文件
三、日志分析工具Logcheck
课程总结
Vmare虚拟机的安装与配置
Linux系统的安装
Linux网络的配置
SSH安全连接
Linux文件与目录的管理
Linux用户与用户组的管理
Linux系统的检测与维护
vi编辑器
基础操作命令
系统检测与维护
1、从事运维工作 还需学习Linux系统服务管理,shell脚本 监控(初级-中级-高级运维)
2从事开发 在Linux上面安装开发环境(基本掌握 从熟悉到熟练)
3、从事架构 学习高可用 集群管理(高级运维方向,还需懂开发)