linux
1.chattr和lsattr使用
lsattr /etc/resolv.conf
chattr +i /etc/resolv.conf #不能修改,不能删除 只读
lsattr /etc/resolv.conf #查看文件属性
chattr -i +a /etc/resolv.conf #只能追加,不能删除
lsattr /etc/resolv.conf
echo aaaa >> /etc/resolv.conf #只能追加,不能删除
chattr 改变一个Linux文件系统上的文件属性。
一个通用格式是:+-=[aAcCdDeijsStTu]
+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。
2.文件访问控制列表
getfacl 文件名 //查看访问控制信息
setfacl -m u:用户名:权限 文件名 //设置用户对此文件的访问权限
setfacl -x u:用户名:权限 文件名 //取消
3.链接文件的创建
ln -s /etc/passwd /root/passwd //为文件设置软连接
ln /etc/passwd /mnt/passwd //为文件设置硬连接
4.u+s
直接在普通用户使用vim编辑器打开文件是不可以修改的,给vim设置强制位setuid之后就可以以root身份去执行
chmod u+s /usr/bin/vim
su - zhangsan
vim /etc/passwd
5.vim基础操作
1.)命令模式
yy 复制 nyy 复制n行
dd 剪切 ndd 剪切n行
p 粘贴 G 跳转至尾行
g 跳转至首行 dw/ndw 剪切至词尾/剪切后n个单词
d$ 删除至行尾
:r /etc/rc.d/rc.sysinit
:r! find / -name passwd 底行模式,执行其他命令
:set number 开启行号
:行号
: set nonumber 关闭行号
:s/old/new/g 查找替换
:2,6s/old/new/g
:%s/old/new/g 查找替换
:X 加入密码
:q 退出
:q! 强制退出
:wq 保存退出
:wq! 强制保存退出
:x 退出
6.文件查找
(1.)可执行文件的搜索
which ls
whereis ls
(2.)locate搜索
apt-get install -y locate
updatedb
locate passwd
(3.)find使用
find / -name xxx
find / -user zhangsan
find / -group zhangsan
find / -perm 644
find / -size +10k
find /etc -size -10k
find /etc -type f/c/b/l/d
(4.)移除文件
rm -rf /tmp/*
find /etc/ -type f -exec cp {} /tmp/ \; //查找执行
(5.)查看文件内容的操作
head -5 passwd
tail -5 passwd
more passwd
less passwd
(6.)统计行数
cat passwd |wc -l
wc -l passwd
(7.)grep用法
grep root /etc/passwd
grep ^root /etc/passwd
grep bash$ /etc/passwd
grep -i ROOT /etc/passwd
(8.)排序
sort passwd
(9.)去重复
uniq 1.txt
paste passwd /etc/passwd
(10.)文件的归档
date +"%Y-%m-%d %H:%M:%S"
tar czvf `date +%F`.log.tar.gz /var/log/
tar xzvf 2018-04-09.log.tar.gz -C /tmp/
(11.)paste用法
paste 指令会把每个文件以列对列的方式,一列列地加以合并。
语法:
paste [-s][-d <间隔字符>][--help][--version][文件...]
参数:
-d<间隔字符>或--delimiters=<间隔字符> 用指定的间隔字符取代跳格字符。
-s或--serial 串列进行而非平行处理。
--help 在线帮助。
--version 显示帮助信息。
[文件…] 指定操作的文件路径
使用示例
paste file testfile testfile1 #合并指定文件的内容
paste -s file #合并指定文件的多行数据,为一行数据
(12.)批量注释
在指定的行首添加注释。
使用名命令格式: :起始行号,结束行号s/^/注释符/g(注意冒号)。
取消注释:
使用名命令格式: :起始行号,结束行号s/^注释符//g(注意冒号)。
例子:
1、在 10 - 20 行添加 // 注释
:10,20s#^#//#g
2、在 10 - 20 行删除 // 注释
:10,20s#^//##g
3、在 10 - 20 行添加 # 注释
:10,20s/^/#/g
4、在 10 - 20 行删除 # 注释
:10,20s/#//g
【励志篇】:
古之成大事掌大学问者,不惟有超世之才,亦必有坚韧不拔之志。