linux

Posted 苍山落暮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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




以上是关于linux的主要内容,如果未能解决你的问题,请参考以下文章

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

linux中怎么查看mysql数据库版本

-bash: /usr/bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory(代码片段

text Debian linux片段

markdown 我的linux片段为RHCSA