1,selinux是什么?
安全规则,让linux系统更安全的一套规则。
这个规则太严格了,一般的情况下都会关闭selinux。
自己开启防火墙,用其他手段来实现同样的安全目的
怎么关掉?
查看方法:getenforce
临时关掉:setenforce
setenforce 0
永久关闭:
vim/etc/selinux/config
grep dis /etc/selinux/config
防火墙
关闭:systemctl start firewalld.service
开启:systemctl status firewalld.service
让firewalld开机自启动 ()
systemctl enable firewalld.service
33576444 -rw-r--r-- 1 root root 354 3月 12 00:00 grep.txt
硬链接数
什么是硬链接?
就是具有相同inode 节点号的文件或硬链接。
硬链接的原理:
创建硬链接:
ln
在工作中的作用:备份,防止误删
目录硬链接:
不支持人工创建目录硬链接。
/etc/目录,可能对应一个分区
/home目录,还可能对应一个分区。
ln /etc/ /home/oldboy 这样inode可能会重复
Linux文件删除原理
静态文件:没有进程或程序正在访问
1,所有的硬链接数为0,即所有硬链接都被干掉了,包括自身
rm -f oldboy.txt oldbo_hard_link 执行完,其实文件也没有删除
A,系统定时清理没有文件名的inode
B,磁盘检查会清理
C,增加新的文件时优先占用没有文件名的inode
恢复的工具:debugfs,ext3grep等等。 亡羊补牢其实不可取的,直接违反运维的三大职责
怎么避免这样发生呢,多备份,操作前备份,异服务器和异地备份
动态文件: 有程序或进程访问的文件
删除:
a,i_link为0
b,i_count为0 i_count是进程调用文件的数量,所有进程调用都要停止取消,i_count为0
软链接:本质是快捷方式,指向原文件实体,本身和原文件是不同的文件
软连接可以对目录进行操作,经常会用到。
第二个用途:
/etc/对应的分区要满了,没法放很多文件,但是程序还想通过/etc/目录访问
此时,我们可以吧文件放入/opt/oldboy下,然后做一个到/etc/oldboy下
面试题:软连接和硬链接的区别?
通配符:
基本含义:通配符简单说就是键盘上的一些特殊的字符,可以实现默写特殊的功能
例如:可以用*代表所有,来模糊搜索系统中的文件
2,通配符使用范围是命令行中(普通命令)或脚本编程中
模糊匹配:
* 表示所有
? 匹配单个字符,有且只有一个
[abcd] 匹配里面的任意一个字符,可以不连续
! 取反
第二组 :路径位置
~用户家目录
- 上一次目录
. 当前目录
.. 上级目录
第三组:引导相关
‘’单引号 引用字符,所见即所得
“”双引号 引用字符串,解析变量,命令
`反引号 希望系统把字符串当作命令就用反引号 替代者$()
[root@zhangxiangyu-58 /]# tar zcvf /opt/etc_$(date +%F).tar.gz ./etc/
[root@zhangxiangyu-58 /]# ls /opt/
data data.tar.gz etc_2019-03-18.tar.gz oldgirl.txt rc.local.tar.gz
[root@zhangxiangyu-58 /opt]# a="oldboy"
[root@zhangxiangyu-58 /opt]# echo $a
oldboy
[root@zhangxiangyu-58 /opt]# a="echo oldboy"
[root@zhangxiangyu-58 /opt]# echo $a
echo oldboy
[root@zhangxiangyu-58 /opt]# a="`echo oldboy`"
[root@zhangxiangyu-58 /opt]# echo $a
oldboy
[root@zhangxiangyu-58 /opt]# a='`echo oldboy`'
[root@zhangxiangyu-58 /opt]# echo $a
`echo oldboy`
[root@zhangxiangyu-58 /opt]# a=`echo oldboy`
[root@zhangxiangyu-58 /opt]# echo $a
oldboy
第四组:其他字符
;两条命令的分割符
# 1.管理员提示符 2.注释符号
$ 1.普通用户提示符 2.调用变量使用
| 管道 将前面的数据流交给后面处理
\ 转义字符 让字符脱掉马甲还原本来的含义
{} 1.生成序列 2.引用变量 让变量成为整体
[root@zhangxiangyu-58 /opt]# a="oldboy"
[root@zhangxiangyu-58 /opt]# echo $a
oldboy
[root@zhangxiangyu-58 /opt]# echo "$ais a teacher"
a teacher
[root@zhangxiangyu-58 /opt]# echo "${a}is a teacher"
oldboyis a teacher
!1.取反 2.vim中强制 3. 调用最近符合字符开头的命令
&& 并且 -and 前面正确后面才输出
|| 或者 or 前面错误后面才输出
[root@zhangxiangyu-58 /opt]# pwd && echo oldboy
/opt
oldboy
[root@zhangxiangyu-58 /opt]# pwd || echo oldboy
/opt
[root@zhangxiangyu-58 /opt]# pd || echo oldboy
-bash: pd: 未找到命令
oldboy