Linux命令记载
注:斯蒂芬.库里 Curry
一.文件类型
(-rw-r--r-)文件类型 (-二进制文件 d目录 l软连接文件)
(rw- r-- r--)u所有者 g所属组 o其他人
r读 w写 x执行
二.目录处理命令:
1. 目录处理命令:ls
命令英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
语法 : ls 选项[-lah] 文件或目录
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性
-h 更人性化显示文件大小单位(KB,MB,GB)
-i 查看序列号
-t 按时间显示
-S 由大到小排序
-r 由小到大排序
2.排序:sort
语法:sort 文件或目录
默认按字母排序
选项:
-M:按月份排序
-n:从小到大
-r:反序,从大到小
-t:指定一个用来区分键位置字符
-k:后面跟数字,指定按第几列进行排序
3.目录处理命令:cd [切换目录]
命令英文原意:change directory
命令所在位置:shell内置命令
执行权限:所有用户
语法:cd [目录]
cd ~ 返回当前登录用户的目录
cd – 返回前一个目录位置
cd .. 返回上一级目录
4.目录处理命令:pwd [显示当前目录]
命令英文原意:print working directory
命令所有路径:/bin/pwd
执行权限:所有用户
挂载命令:mount
命令位置:/bin/mount
执行用户:所有用户
语法:mount 【-t文件系统】 设备文件名 挂载点
挂载点:/dev/sr0 /dev/cdrom
卸载光盘:umount
语法:umount /dev/sr0
断开连接:eject
md5sum:命令工具检测MD5校验和
5.查看文件的详细信息stat [目录或文件]
注:atime访问时间
mtime修改时间
ctime改变时间
三.文件处理命令:
1. 文件处理命令rmdir [删除空目录]
命令英文愿意:remove empty directories
命令所在位置:/bin/rmdir
执行权限:所有用户
2.文件处理命令:mkdir //创建目录文件夹
命令英文愿意:make directories
文件路径:/bin/mkdir
执行权限:所有用户
语法:mkdir -p 目录
-p 递归创建 //嵌套创建
例:mkdir -p /tmp/Japan/boduo
3.文件处理命令:cp [复制文件或目录]
命令英文原意:copy
命令所在位置:/bin/cp
执行权限:所有用户
语法:cp -rp 【源文件或目录】 【目标目录】
-r:复制目录
-p:保留文件属性
-f:强制复制
install 可以用于复制指定权限
格式:install -m 权限 源文件 目标文件
4. 文件处理命令:mv 【剪切文件 改名】
命令英文原意:move
命令所有路径:/bin/mv
执行权限:所有用户
语法 mv 【源文件或目录】 【目标目录】
5.文件处理命令:rm 【删除文件或目录】
命令英文原意:remove
命令所在位置:bin/rm
执行权限:所有用户
语法:rm -rf 【文件或目录】
-r 删除目录
-f 强制执行
6.文件处理命令:touch 创建空文件
执行权限:所有用户
语法: touch 文件名
touch “I Love” 【使用空格做名称】
7.文件处理命令:cat
命令存放路径:/bin/cat
执行权限:所有用户
语法:cat 文件位置
-n 显示行号
8.文件处理命令:tac 【倒序查看文件】
注:与cat查看相反查看顺序为倒着
9.文件处理命令:more 【分页显示文件内容】
文件存放位置:/bin/more
执行权限:所有用户
语法:more 【文件名】
【空格】或f 翻页
【Enter】 换行
【q或Q】 退出
10.文件处理命令:less 【分页查看文件】
文件所有位置:/usr/bin/less
执行权限:所有用用户
语法 less 文件名
/ 查找文件内容 查找字符反白
n 当页没有查找下一个
11.文件处理命令:head 【查看文件前几行】
语法:head -n 10 文件路径 【查看前十行的内容】
-n :指定行数
12.文件处理命令:tail 【查看文件后几行】
语法:tail -n 10 文件路径 【查看后十行的内容】
-n :指定行数
-f : 动态显示文件
13.文件处理命令:ln 【生成链接文件】
命令英文原意:link
命令存放位置:/bin/ln
执行权限:所有用户
语法:ln -s 【源文件】 【目标文件】
-s 创建软链接
硬链接特征:
1.同步更新【cp -p】
2.不能跨分区
3.不能针对目录使用
4.硬链接被删除另一个位置的硬链接可以使用
软连接相反
14.文件处理命令 wc 【查看文件行数,字节,单词个数】
语法 wc 文件路径
-c:统计内容的字节数
-l:统计内容中的行数
-w:统计单词个数
四.权限管理命令:
1. 权限管理命令:chmod 【改变文件或目录】
命令英文原意:change the permissions mode of a file
命令所在位置:/bin/chmod
执行权限:所有用户
语法: chmod [{ugoa}{+-=}{rwx}] [文件或目录]
【mode = 421】【文件或目录】
-R 递归修改
代表字符 | 权限 | 对文件的含义 | 对目录的含义 |
r | 读权限 | 可以查看文件的内容 | 可以列出目录中的内容 |
w | 写权限 | 可以修改文件内容 | 可以在目录中创建,删除文件 |
x | 执行权限 | 可以执行文件 | 可以进入目录 |
警告
UID_MIN 500 #最小和最大UID范围
GID_MAX 6000
ENCRYPT_METPHOD SHA512 #加密模式
五.文件搜索命令:
1.文件搜索命令:find 【搜索文件或目录】
语法: find /etc -name init
-iname 不区分大小写
-size :文件大小
+n 大于 -n 小于 n等于
-user 文件属主
-group 根据所属组查找
时间搜索:
-amin:访问时间access
-cmin:文件属性change
-mmin:文件内容modify
判断:
-a 两个条件同时满足
-o两个条件满足任意一个即可
find /etc -name “init” -exec ls -l {} \;
-exec/-ok 命令 {} \; 对搜索结果执行操作
执行命令
-type 根据文件类型查找
f文件 d目录 l软连接文件
-inum 根据i节点查找
-perm 根据权限查找
例:find /bin/ -perm 755 #等于0755权限的文件或文件
find /bin/ -perm -644 #至少有644权限的文件或目录
2.文件搜索命令:locate 【在文件资料中查找文件】
命令所在位置:/usr/bin/locate
执行权限:所有用户
语法:locate 文件名
3.文件搜索命令:which 【搜索命令所在目录以及别名信息】
命令所在位置:/usr/bin/which
执行权限:所有用户
语法:which 命令
4.文件搜索命令:whereis 【搜索命令所在目录及帮助文件路径】
命令所在路径:/usr/bin/whereis
执行用户:所有用户
语法: whereis 【命令名称】
5.文件搜索命令:grep 【在文件中搜索字符串匹配的行并输出】
命令所在路径:/bin/grep
执行权限:所有用户
语法:grep –iv 【指定字串】 【文件】
-I :不区分大小写
-v : 排除执行字符
六.帮助命令:
1.帮助命令:man 【获取帮助信息】
命令英文原意:manual
命令所在路径:/usr/bin/man
执行权限:所有用户
语法:man 【命令或配置文件】
2.uptime:查看Linux系统运行多长时间
七:用户管理命令:
- 用户管理命令:useradd 【添加新用户】
命令所在位置:/usr/sbin/useradd
执行权限:root
语法:useradd 用户名
2.用户管理命令:passwd 【设置用户密码】
命令所在位置:/usr/bin/passwd
执行权限:所用用户
语法:passwd 用户名
3.用户管理命令:who 【查看登录用户信息】
命令所在位置:/usr/bin/who
执行权限:所有用户
语法:who
返回值:tty 本地终端 pts远程终端
4.用户管理命令:w 【查看登录用户详细信息】
命令所在位置:/usr/bin/w
执行权限:所有用户
语法: w
八.文件压缩命令:
1.压缩解压命令:gzip 【压缩文件】
命令英文原意:gnu zip
命令所在位置:/bin/gzip
执行权限:所有用户
语法:gzip 【文件】
压缩格式:.gz
2.压缩解压命令:gunzip 【压缩.gz文件】
命令所在位置:/bin/gunzip
执行权限:所有用户
语法:gunzip 【压缩文件】
3.压缩解压命令:tar 【打包目录】
命令所在位置: /bin/tar
执行权限:所有用户
语法:tar 选项【-zcf】【压缩后文件名】【目录】
-c 打包
-v 显示详细信息
-f:指定文件名
-z:打包同时压缩
-x:解包
-v:显示详细信息
-C:指定解压位置
4.压缩解压命令:zip 【压缩文件或目录】
命令所在路径:/usr/bin/zip
执行权限:所有用户
语法:
zip 选项【-r】 【压缩后文件名】 【文件或目录】
-r 压缩目录
压缩后文件格式:.zip
5.压缩解压命令:unzip 【解压.zip的压缩文件】
命令所在路径:/usr/bin/unzip
执行权限:所有用户
语法:unzip 【压缩文件】
6.压缩解压命令:bzip2 【压缩文件】
命令所在路径:/usr/bin/bzip2
执行权限:所有用户
语法:bzip2 选项【-k】 【文件】
-k 产生压缩文件后保留源文件
压缩后文件格式:.bz2
7.压缩解压命令:bunzip2 【解压缩】
命令所有路径:/usr/bin/bunzip2
执行权限:所有用户
语法:bunzip 选项 【-k】 【压缩文件】
-k 解压缩后保留源文件
九.网络命令:
1.网络命令:write 【给用户发信息】 Ctrl+D保存结束
指令所在位置:/usr/bin/write
执行权限:所有用户
语法:write <用户名>
2.网络命令:wall 【发广播信息】
命令英文原意:write all
指令所在路径:/usr/bin/wall
执行权限:所有用户
语法:wall
- 网络命令:ping 【测试网络连通性】
命令所在路径:/bin/ping
执行权限:所有用户
语法:ping 选项 IP地址
-c 指定发送次数
3.网络命令:ifconfig 【查看和设置网卡信息】
命令英文原意:interface configure
命令所在路径:/sbin/ifconfig
执行权限:root
语法:ifconfig 网卡名称 ip地址
4.网络命令:mail 【查看发送电子邮箱】
命令所在路径:/bin/mail
执行权限:所有用户
语法:mail 【用户名】
mail #查看当前用户的电子邮箱
5.网络命令:last 【列出目前与过去登入系统的用户信息】
命令所在路径:/usr/bin/last
执行权限:所有用户
语法:last
6.网络命令:lastlog 【检查某特定用户上次登录的时间】
命令所在位置:/usr/bin/lastlog
执行权限:所有用户
语法:lastlog
7.网络命令:traceroute 【显示数据包到主机间的路径】
命令所在路径:/bin/traceroute
执行权限:所有用户
语法:traceroute
8.网络命令:netstat 【显示网络相关信息】
命令所在位置:/bin/netstat
执行权限:所有用户
语法:netstat 【选项】
选项:
-t:TCP协议
-u:UDP协议
-l:监听
-r:路由
-n:显示IP地址和端口号
netstat -tlun :查看本机监听的端口
netstat -an :查看本机所有的网络连接
netstat -rn :查看本机路由表
9.网络命令:setup 【配置网络】
命令所在位置:/usr/bin/setup
执行权限:root
语法:setup
10.网络命令:route 【查看路由表条目】
语法:route [-n#显示为数字格式]
11.网络命令:nslookup 【域名解析】
语法:nslookup 目标主机地址 【DNS服务器地址】
十.关机重启命令
1.命令:shutdown [选项] 时间
-c :取消前一个关机命令
-h :关机
-r :重启
其他关机命令:
halt
poweroff
init 0
2.命令:reboot init6 重启
3.命令:logout 退出登录
IP地址配置
配置文件:vim /etc/sysconfig/network-scripts/ifcfg-eth0
选项:ONBOOT=no 【网卡关闭】
系统运行级别:
0:关机
1:单用户
2:不完整多用户,不含NFS服务
3:完整多用户
4:未分配
5:图形界面
6:重启
cat /etc/inittab #修改系统默认运行级别
id:3:initdefault
runlevel:查询系统运行级别、
十一.vim编辑器
1.导入命令快捷键:r:!命令
2.定义快捷键:map 快捷键 触发命令
示范:map Ctrl+v+p I#<esc>
map ^B 0x
3.连续行注释:
:n1,n2s/^/#/g
:n1,n2s/^#//g
4.替换:ab mymail samlee@lampbrother.net
输入mymail会自动改为邮箱地址
默认快捷键位置:.vimrc /home/username/vimrc
5.以左右方式打开两个文档
vim -o /etc/passwd /etc/hosts
注:ctrl+ww 在两个文档之间进行切换。大写O左右分屏,小写的o上下分屏
6.比较两个文件内容
格式:diff 比较第一个文件 比较第二个文件
diff /etc/passwd /etc/233.txt
vimdiff /etc/passwd /etc/233.txt
十二.RPM软件包
- rpm软件包:扩展名:.rpm
RPM包默认安装路径
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置
- 语法:-q[子选项] [软件名]
选项:
-qa:查看系统中已安装的所有RPM软件包列表
-qi:查看指定软件的详细信息
-ql:查询指定软件包所安装的目录,文件列表
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
-q:查看软件包是否被安装
-qR:查询软件包的依赖包
4.查询文件或目录属于那个RPM软件
语法:rpm -qf 文件或目录名
5.查询未安装的RPM包文件
语法:rpm -qp【子选项】 RPM包文件
选项:
-qp:查看未安装信息的详细信息
-qpi:通过.rpm包文件查看该软件的详细信息
-qpl:查看.rpm安装包内所包含的目录,文件列表
-qpc:查看.rpm安装包内包含的配置文件列表
-qpd:查看.rpm安装包内包含的文档文件列表
-qRp:查看未安装包的依赖性
6.安装或升级RPM软件
格式:rpm 【选项】 RPM包文件
选项:
-i:安装一个新的rpm软件包
-U:升级某一个rpm软件,若原本未装,则进行安装
-F:更新某一个rpm软件,软原本未装,则放弃安装
7.卸载指定的RPM软件
格式:rpm -e 软件名
8.辅助选项
--force:强制安装所指定的rpm软件包
--nodeps:安装,升级或卸载软件时,忽略依赖关系
--h:以“#”号显示安装的进度
--v:显示安装过程中的详细信息
9.重建RPM数据库
--rebuilddb
--initdb
10.导入验证公钥
--import 公钥路径
11.完整性效验:
md5sum效验工具
RPM包效验:
rpm -V 已安装的包名
选项:
-V:效验指定RPM包中的文件(verify)
rpm -Vf RPM包的绝对路径
rpm -V 包的名称
rpm -Vf 查看系统中所有RPM包的文件是否被改过
出现下面的字符代表测试的失败:
5:MD5校验和是否改变
S:文件长度,大小是否改变
L:符号链接,文件路径是否改变
T:文件修改是否改变
注:计算MD5效验和,并与官方提供的值相比较,判断时候一致
12.编译安装过程
make 编译
make clean 清除当前二进制文件(重新配置)
make install 编译安装
13.RPM包依赖包
模块依赖查询网站:
14.恢复安装包的子选项
语法:rpm2cpio [包位置] | cpio -idv ./bin/子选项
十三.网络yum:
1.yum网络存放位置:vi /etc/yum.repos.d/CentOS-Base.repo
选项:
【base】:容器名称,一定要放在【】中
name:容器说明
mirrorlist:镜像站点,可以注释掉
baseurl:我们的yum源服务器地址
enabled:容器是否生效1生效0不生效
gpgcheck:如果是1指RPM的数字证书生效,如果是0则不生效
gpgkey:数字证书的公钥文件保存位置
2.常用yum命令:
查询:yum list #查询所有可用软件包列表
yum search 关键字 【搜索服务器上所有和关键字相关的包】
安装:yum -y install 包名 【安装软件包】
install 安装
-y 自动安装回答yes
升级:yum –y update 包名
update 安装
-y 自动回答yes
卸载:yum –y remove 包名
remove 卸载
-y 自动回答yes
仅下载不安装:yum install --downloadonly --downloaddir=存放位置 软件包名
--downloadonly:仅下载不安装
--downloaddir:存放位置
本地安装rpm:yum -y localinstall 软件包
清除缓存:
yum clean packages #清除缓存目录下的软件包
yum clean headers #清除缓存目录下的headers
yum clean oldheaders #清除旧的缓存headers
yum clean all #清除所有缓存
查询命令属于哪个包的:yum provides 软件包名或命令
3.yum软件组管理命令
命令:
yum grouplist #列出所有可用的软件组列表
yum groupinstall #软件组名 #安装指定软件组,组名可以由grouplist查询出来
yum groupremove 软件组名 #卸载指定软件组
- 光盘yum源搭建步骤
- 挂载光盘
- 让网络yum源文件失效
- 修改光盘yum文件
- baseurl=file://mnt/cdrom #地址为你自己的光盘挂载地址
- 注释两个不存在的地址
十四.用户管理
用户管理命令:useradd 【创建用户】
语法:useradd 【选项】 用户名
-u:指定UID标记号
-d:指定宿主目录
-e:指定账号失效时间
-g:指定用户的基本组名
-G:指定用户的附加组名
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录shell
用户管理命令:passwd 【管理账号密码】
语法:passwd 【选项】 用户名
-d:清空用户的密码
-l:锁定用户账号
-S:查看用户账号的状态
-u:解锁用户账号
--stdin:使用管道符之前的字符串作用户密码
语法:echo ‘123’ | passwd –stdin 用户名
修改用户账号属性:usermod
语法:usermod 【选项】 用户名
选项:
-l:更改用户账号的登录名称
-L:锁定用户
-U:解锁用户账户
其他与usreadd含义相同
删除用户账号:userdel
语法:userdel 【-r】 用户名
-r:先用户的宿主目录一并删除
组账号文件:
/etc/group:保存账号基本信息
/etc/gshadow:保存组账号的密码信息
添加组账号:groupadd
语法:group 【-g GID】 组账号名
添加删除组成员:gpasswd
语法:gpasswd 【选项】 组账号名
-a:向组内添加一个用户
-d:从组中删除一个用户成员
-M:定义组成员列表,以逗号分割
删除组账号:groupdel
语法:groupdel 组账号名
查询账号信息
查询用户身份标识:id 用户名
查询用户所属组:groups 用户名
查询用户账号的详细信息:finger 用户名
查询以登录到主机的用户的信息:users,w,who
修改用户密码状态chage
语法:chage 【选项】用户名
选项:
-l:列出用户的详细密码状态
-d日期:修改密码最后一次更改日期
-m 天数:两次密码修改间隔
-M 天数:密码有有效期
-W天数:密码过期前警告天数
-I 天数:密码过后宽限天数
-E 日期:账号失效时间
切换用户身份su
语法:su 【选项】 用户名
选项:
-:选项只使用‘-‘代表连带用户的环境变量一起切换
-c:仅执行一次命令,而不切换用户身份
例子:su -root -c “useradd user1” #执行添加用户命令
十五.磁盘和文件系统:
主分区:最多四个
扩展分区:做多一个
逻辑分区:IDE硬盘最多59个逻辑分区
SCSI硬盘最多支持11个逻辑分区
检测查看硬盘:fdisk -l 磁盘设备
在交互式的操作环境中管理磁盘分区:fdisk 【磁盘设备】
交互常用指令:
m:查看操作指令的帮助信息
p:列表查看分区信息
n:新建分区
d:删除分区
t:变更分区类型
w:保存分区设置并退出
q:放弃分区并退出
创建文件系统:mkfs -t 文件系统类型 分区设备
创建XFS文件系统:mkfs -t xfs 分区设备
创建FAT32文件系统:mkfs -t vfat -F 32 分区设备
选项:-F 指定FAT的版本
创建交换文件系统:mkswap 分区设备
swapon:启动交换分区
swapoff:停用交换分区
重新读取分区表信息:partprobe
LVM:逻辑卷管理 #动态调整磁盘容量
图形界面管理工具:system-config-lvm
LVM机制:PV VG LV
功能:
scan扫描
create建立
display显示
remove删除
extend扩展
reduce减少
主要命令:
pvcreate 设备名1 设备名2
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名
ext4格式增减
lvresize -L +200G /dev/Vgtest/Lvtest #增加200G容量
e2fsck -f /dev/Vgtest/Lvtest #强制检测文件系统
resize2fs /dev/Vgtest/Lvtest #刷新
减:
umount /dev/bdqn #如果要减少容量需要先挂载光盘
e2fsck -f /dev/Vgtest/Lvtest #对lv强制执行文件系统检测
resize2fs /dev/Vgtest/Lgtest #使用resize2fs对lv逻辑卷的逻辑边界空间大小调整为缩减后的大小
lvreduce -L 7G /dev/Vgtest/Lgtest #使用lvreduce对lv逻辑卷的物理边界进行缩减
磁盘配额:
作用范围:针对指定的文件系统
限制对象:用户,组
限制类型:磁盘容量,文件数量
限制方法:软限制(soft) 硬限制(hard)
启动磁盘配置支持:usrquota,grpquota
ext4文件系统磁盘配额
- 生成配置文件 quotacheck -ug /dir
- 开启配额功能 quotaon /dir 关闭配额功能:quotaoff /dir
- 编辑用户配额 edquota -u 用户 /dir
XFS格式配额格式:
xfs_quota -x -c ‘limit -u bsoft=N bhard=N isoft=N ihard=N 用户名’ 挂载点
选项:
-u:用户
-g:组
-x:专家
-c:limit命令创建配额
bsoft:磁盘容量软限制
bhard:磁盘容量硬限制
isoft:文件数量软限制
ihard:文件数量硬限制
查看配额使用情况:
格式:xfs_qouta -x -c ‘report 选项’ 挂载点
选项:-a -i -b -u -g
查看磁盘使用情况:df 【选项】 【文件】
-hT:显示MB大小和文件类型
挂载,卸载文件系统:
挂载文件系统mount
格式:
mount 【-l】 #查询系统已经挂载的设备
mount 【-a】 #依据配置文件/etc/fstab的内容自动挂载
mount 【-t 文件系统】存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录 #指定系统文件挂载到指定目录
卸载已挂载的文件系统:umount 文件位置或挂载点目录
设置自动文件系统的自动挂载:/etc/fstab
格式:
设备名
文件系统挂载点
文件系统类型
挂载参数:例:defaults,rw,ro,noexec,表示默认参数
文件是否需要dump备份:一般为1时表示需要,设为0时将被dump忽略
启动时进行磁盘的检测的顺序:0表示不进行检查,1表示优先检查,2表示其次检查,根分区应设为1,其他分区设为2.
显示磁盘状态命令:dumpe2fs
语法:dumpe2fs 分区设备文件名
dump备份命令
格式:dump [选项] 备份之后的文件名 源文件或目录
选项:
-level:就是我们说的0-9是个备份级别
-f 文件名:指定备份之后的文件名
-u:备份成功之后,把备份时间记录在/etc/dumpdates文件
-v:显示备份过程中更多的输出信息
-j:调用bzlib库压缩备份文件,其实就是把备份文件压缩为.bz2格式
-W:显示允许被dump的分区的备份等级及备份时间
restore还原命令
格式:restore [模式选项] [选项]
选项:
-C:比较备份数据和实际数据的变化
-i:进入交互式模式,手工选择需要恢复的文件
-t:查看模式,用于查看备份文件中拥有那些数据
-r:还原模式,用于数据还原
-f:指定备份文件的文件名
十六.权限管理-ACL权限
- 查看分区ACL权限是否开启
- 语法:dumpe2fs -h /dev/sda3
:查询指定分区详细文件系统信息的命令
选项:-h:显示超级块中信息,而不显示磁盘块组的详细信息
- 临时开启分区ACL权限
- mount -o remount,acl /
:重新挂载跟分区,并挂载加入acl权限
永久挂载:/dev/fstab 添加内容
管理ACL命令:
- 查看ACL命令:getfacle 文件名 #查看acl权限
- 设定ACL权限的命令:
语法:setfacl 选项 文件名
选项:
-m:设定ACL权限
格式:setfacl -m u:user:rwx project/
u用户g组 m mask权限:用户名:权限 目录
-x:删除指定的ACL权限
格式:setfacl -x u:user project/
用户名
-b:删除所有的ACL权限
格式:setfacl -b 文件名
-d:设定默认ACL权限
#为父目录设定ACL权限,子文件也会继承权限
格式:setfacl -m d:u:用户名:权限 目录名
-k:删除默认ACL权限
-R:递归设定ACL权限
#所有子文件和子目录也会拥有ACL权限
格式:setfacl -m u:用户名:权限 -R 目录名
十七.权限管理-文件特殊权限
- SetUID #身份升级
配置前提:
- 拥有x执行权限
- 只可以对二进制执行命令文件使用
设定SetUID:
chomod 4755 文件名
chomod u+s 文件名
- SetGID
配置针对执行文件前提:
与配置SetUID相似
- 当用户去访问配置了SetGiD的文件后自动跳转好root组进行使用
可以对目录配置
- 普通用户必须对目录拥有r和x权限
- 此目录中的有效组变成此目录的属组
- 其他用户先建立了文件属组会变成这个目录的属主
设定SetGID:
chomod 2755 文件名
chomod g+s 文件名
- Sticky BIT
SBIT粘着位作用:
1.只对目录有效
2.普通用户对该目录拥有w和x权限
3.普通用户自己创建的只有自己可以删除,其他普通用户没有权限
设定Sticky BIT:
chmod 1755 /目录位置
chmod o+t /目录位置
- 文件系统属性chattr
格式:chattr [+-=] [选项] 文件或目录名
+:增加权限
-:删除权限
=:等于某权限
选项:
i:对文件设置I属性,不允许对文件进行删除,改名也不能添加和修改数据
对目录只能修改文件和数据,不能建立和删除
a:对文件只能增加数据
对目录只允许在目录下建立和修改不可以删除
- sudo权限
sudo的操作对象是系统命令
#root把本来只能超级用户执行的命令赋予普通用户执行
sudo使用
visudo #实际修改的是/etc/sudoers文件
语法:
root ALL=(ALL) ALL
用户名 被管理主机的地址=(可使用的身份)授权命令
#%wheel ALL=(ALL) ALL
#%组名 被管理主机的地址=(可使用的身份)授权命令(绝对路径)
十八.进程和计划任务管理
- 查看进程信息:
- ps :查看静态的进程统计信息
选项:
-A:显示所有程序。与-e具有同样的效果
-a: 显示所有终端机下执行的程序,除了阶段作业领导者之外。(跟终端无 关的程序)
a: 显示现行终端机下的所有程序,包括其他用户的程序。
-u: -u:此选项的效果和指定"-U"选项相同。
u:以用户为主的格式来显示程序状况。
x:显示所有程序,不以终端机来区分,通常与a这个参数一起使用。
-l或l(小写L):采用详细的格式来显示程序状况。
-j或j:采用工作控制的格式显示程序状况。(jobs format)
-f:显示UID,PPIP,C与STIME栏位。
-
- top:查看动态的进程排名信息
选项:
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i:设置间隔时间;
-u:指定用户名;
-p:指定进程;
-n:循环显示的次数。
-
- pgrep:根据特定条件查询进程PID信息
- 选项:
- -l:显示进程名
- -U:指定用户
- -t:指定终端
- 选项:
- pgrep:根据特定条件查询进程PID信息
d)pstree:以树形结构列出进程信息
选项:
-a:显示完整信息
-u:列出对应用户名
-p:列出对应PID
后台启动:在命令行尾加入&符号
ctrl+Z:调入到后台并停止执行
jobs:查看处于后台的任务列表
选项:
-l:显示进程号;
-p:仅任务对应的显示进程号;
-n:显示任务状态的变化;
-r:仅输出运行状态(running)的任务;
-s:仅输出停止状态(stoped)的任务。
fg:将后台进程恢复到前台
格式:fg number
bg:将后台进程恢复到后台
格式:bg number
离线管理:nohup
nohup [选项与参数] --->在终端前台工作
nohup [选项与参数] & --->在终端后台工作
2.终止进程的运行
ctrl+C:中断正在执行 的命令
kill:用于终止指定PID号的进程
killall:用于终止指定名称的所有进程
选项:-9:强制终止
pkill:根据特定条件终止相应的的进程
选项:
-U:根据进程所属的用户名终止相应进程
-t:根据进程所有的终止相应进程
3.计划任务管理:
1.一次性计划任务:at [HH:MM] [yyyy-mm-dd]
ctrl+D:提交任务
atq:查看未执行的任务列表
atrm:删除任务
格式:atrm 【ID号】
2.batch
注:batch不同于at的地方仅在与其所生成的任务计划是在系统空闲时执行的,所有batch命令后不用指定时间。
其余和at命令相同
4.lsof [进程号,端口]
选项:
-p:执行进程号
-i:指定端口
例:lsof -p 42352 #一般用于查看木马进程,在读那些文件
lsof -i :22 #用于查看端口,或查看黑客开启的后面端口是哪个进程在使用
- crontab命令
主要设置文件:
全局配置文件:/etc/crontab
系统默认的设置:/etc/cron.*/
用户定义的设置:/var/spool/cron/用户名
管理crontab计划任务
编辑计划任务:
crontab -e [-u 用户名]
查看计划任务:
crontab -l [-u 用户名]
删除计划任务:
crontab -r [-u 用户名]
选项:
-u:管理员可为其他用户创建任务
-e:打开编辑页面定义任务
-l:列出已经定义的所有任务
-r:移除所有任务
格式:
分钟 小时 日期 月份 星期 命令
时间数值的特殊表示方法
*:表示该范围的任意时间
,:使用间隔的多个不连续时间点
-:表示一个连接的时间范围
/:指定间隔的时间频率
十九.分析和排查系统故障
- 日志消息的级别
- 0 EMERG:紧急
- 1 ALERT:警告
- 2 CRLT:严重
- 3 ERR:错误
- 4 WARNING:提醒
- 5 NOTICE:注意
- 6 INFO:信息
- 7 DEBUG:调式
1.日志的功能
用于记录系统、程序运行中发生的各种事件
通过阅读日志,有助于诊断和解决系统故障
2.日志文件的分类
内核及系统日志
由系统服务rsyslog统一进行管理,日志格式基本相似
用户日志
记录系统用户登录及退出系统的相关信息
程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
3.日志保存位置
默认位于:/var/log 目录下
4.主要日志文件介绍
内核及系统日志
/var/log/messages
计划任务日志
/var/log/cron
系统引导日志
/var/log/dmesg
邮件系统日志
/var/log/maillog
用户登录日志
/var/log/lastlog:最近的用户登录事件
/var/log/wtmp:用户成功登录、注销及系统开、关机事件,对应命令 last
/var/log/btmp: 用户失败登录,错误验证尝试事件,对应命令 lastb
/var/run/utmp:当前登录的每个用户的详细信息,对应查看命令 users who w
/var/log/secure:与用户验证相关的安全性事件
5.日志配置文件
/etc/rsyslog.conf
*.info #任何服务info级别及以上日志
mail.none #例外,不记录
6.日志级别
0 EMERG(紧急/疼痛):会导致主机系统不可用的情况
1 ALERT(警告):必须马上采取措施解决的问题
2 CRIT(严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WARNING(提醒):可能会影响系统功能的事件
5 NOTICE(注意):不会影响系统但值得注意
6 INFO(信息):一般信息
7 DEBUG(调试):程序或系统调试信息等
7.日志一般格式
Jun 3 13:26:35 localhost vmusr[2439]: [critical] [GLib-GObject]
时间标签 主机 子系统名 日志级别和信息
8.程序日志
由相应的应用程序独立进行管理
Web服务:/var/log/httpd/
access_log、error_log
代理服务:/var/log/squid/
access.log、cache.log、
9.分析工具
文本查看、grep过滤检索、Webmin管理套件中查看
awk、sed等文本过滤、格式化编辑工具
Webalizer、Awstats等专用日志分析工具
10.日志管理策略
及时作好备份和归档
延长日志保存期限
控制日志访问权限:日志中可能会包含各类敏感信息,如账户、口令等
集中管理日志:
将服务器的日志文件发到统一的日志文件服务器(ELK)
便于日志信息的统一收集、整理和分析
杜绝日志信息的意外丢失、恶意篡改或删除
11.MBR故障修复
Mbr扇区
引导程序GRUB 446
分区表 64
结束标志 2
故障原因:
病毒、木马等造成的破坏
不正确的分区操作、磁盘读写误操作
故障现象:
找不到引导程序,启动中断
无法加载操作系统,开机后黑屏
解决思路:
应提前作好备份文件
以 CentOS 7安装光盘引导进入急救模式
从备份文件中恢复
Mbr扇区故障模拟:
1.添加新硬盘: 分区 fdisk /dev/sdb 格式化 mkfs.xfs /dev/sdb1 挂载到 mount /dev/sdb1 /bak
2.备份mbr扇区:dd if=/dev/sda of=/bak/mbr.bak bs=512 count=1
3.模拟故障:dd if=/dev/zero of=/dev/sda bs=512 count=1
4.重启:观察现象
排除故障
1)挂系统盘,进入急救模式 3--2-1
2)重新挂载:mount /dev/sdb1 /aa
3)恢复:dd if=/aa/mbr.bak of=/dev/sda bs=512 count=1
4)exit
12.修复 GRUB 引导故障
故障原因:
MBR 中的 GRUB 引导程序遭到破坏
grub.conf 文件丢失、引导配置有误
故障现象:
系统引导停滞,显示“grub>” 提示符
解决思路:
尝试手动输入引导命令
进入急救模式,重写或者从备份中恢复 grub.conf
向 MBR 扇区中重建 grub 程序
模拟grub引导故障
1.cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
2.Rm -f /boot/grub/grub.cfg
3.Reboot
解决grub引导故障
插入系统盘,光盘启动
进入急救模式
chroot /mnt/sysimage
cp /boot/grub/grub.cfg.bak /boot/grub/grub.cfg
13.修复文件系统
故障原因
非正常关机、突然断电、设备读写失误等
文件系统的超级块(super-block)信息被破坏
故障现象
无法向分区中读取或写入数据
启动后提示“Give root password for maintenance”
解决思路
根据提示输入 root 口令,进入修复状态
使用xfs_repair命令进行修复
模拟故障:
破坏: 创建分区、格式化,先不要挂载
dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
修复:xfs_repair /dev/sdb1
14.硬盘i节点耗尽
故障原因
磁盘空间已被大量的数据占满,空间耗尽
虽然还有可用空间,但文件数i节点耗尽
故障现象
无法写入新的文件,提示“… : 设备上没有空间”
部分程序无法运行,甚至系统无法启动
解决思路
清理磁盘空间,删除无用、冗余的文件
转移或删除占用大量 i 节点的琐碎文件
进入急救模式进行修复
为用户设置磁盘配额
模拟故障:
添加一块硬盘
划分一个100M的分区,格式化,挂载到/data目录下
df -i /data (查看i节点的数量)
vim killnode.sh
#!/bin/bash
i=1
while [ $i -le 前面查到的i节点数 ]
do
touch /data/file$i
let i++
done
sh killnode.sh &
15.磁盘坏道
故障原因
磁盘设备中存在坏道(逻辑的或物理的)
故障现象
读取磁盘中的数据时,磁盘设备发出异常声响。
访问磁盘中的某个文件时,反复读取且出错,提示文件损坏
对于新建立的分区无法完成格式化
系统使用该磁盘时频繁死机
解决思路
检测硬盘中是否存在坏道
修复硬盘,或更换新的硬盘
badblocks -sv /dev/sdb
make方法
make clean #清除上一次make命令生成的文件
make distclean #清除上一次make以及configure命令生成的文件
make -j 4 #使用4进程同时编译,提升编译速度
XFS增量备份
语法:xfsdump -f 备份目标位置 备份目录(挂载目录或磁盘分区)
提示:编写标签,第一次为会话标签,第二次为设备标签
免交互备份:
语法:xfsdump -f 存放位置 备份目录 -L 会话标签 -M 设备标签
xfsdump -f /opt/dump_sda1 /dev/sda1 -L dump_sda1 -M sda1_is
指定只备份分区中某个目录
参数:-s 文件路径 只能指定的问价进行备份,-s指定时,路径写的是相对路径(-s可以是文件或目录)
格式:xfsdump -f /opt/233_dump -s 233.txt /dev/sdb1 -L dump_233 -M sdb1
查看备份记录
xfsdump -I
文件系统恢复
语法:xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件的路径
恢复单个文件
语法:xfsrestore -f 恢复文件路径 -s 恢复文件 恢复目录
增量备份
先备份完整备份
语法:xfsdump -l 1 -f 备份保存位置 备份文件
-l <level> 做一个等级为1的备份
恢复增量备份
语法:xfsrestore -f 恢复文件 恢复目标位置
注:按顺序恢复增量备份,恢复数据会不完整
windows文本文件上传到Linux上出现乱码
解决:
格式:iconv -f gb2312 -t utf8 乱码文件 -o 转换为的名称
在Linux上编写的shell脚本到windowx上出现没有换行
解决:
工具:dos2unix unix2dos等工具
格式: dos2unix Linux上的shell文件
使用远程xshell命令上传文件和下传文件
注:需要rz工具下载,只可以用于远程工具连接
rz本地上传文件 sz下传文件
系统监控
proc文件系统
和整个Linux系统相关的参数如下:
/proc/cmdline:加载kernal时的相关指令与参数
/proc/cpuinfo:CPU相关的信息,包括频率,类型与运算能力
/proc/devices:记录了系统各个主要设备的主设备号码
/proc/filesystems:记录系统加载的文件系统
/proc/loadavg:平均负载值top看到的
/proc/meminfo:内存信息,free命令查看的
/proc/modules:系统已经加载的模块
/proc/mounts:系统已经挂载的数据
/proc/partitons:系统的分区文件
/proc/version:系统的核心版本uname -a看到的内容
常用的系统监视命令:
- uptime
显示顺序:现在的时间,系统运行时间,目前多少登录用户,系统在过去一分钟,5分钟,15分钟内的平均负载。
[root@localhost 1]# uptime
07:32:01 up 15 min, 1 user, load average: 0.00, 0.01, 0.02
- free
显示当前系统未使用和已经使用的内存数目。
[root@localhost 1]# free -h
total used free shared buff/cache available
Mem: 976M 79M 761M 7.0M 135M 745M
Swap: 2.0G 0B 2.0G
- vmstat
显示虚拟内存状态,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。
[root@localhost 1]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 779916 896 138060 0 0 93 5 44 111 0 0 100 0 0
- mpstat
最大特点:可以查看CPU中每个计算机核心的统计数据。
注:需要安装sysstat
- iostat
用于监视系统输入输出设备和CPU的使用情况。能查看到系统IO情况信息,从而确定IO性能是否存在瓶颈。
- sar
sar是目前Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况,系统调用的使用情况,磁盘I/O,CPU效率,内存使用情况,进程活动及IPC有关的活动等。
sar命令常用格式:sar [options] [-A] [-o file] t [n] 其中:
t为采样间隔,n为采样次数,默认值是1;
-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
options 为命令行选项,sar命令常用选项如下:
-A:所有报告的总和
-u:输出CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出内存和交换空间的统计信息
-b:显示I/O和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息
更多推荐
所有评论(0)