Linux Shell 脚本攻略学习--四
来源:互联网 发布:开启式电机铭牌数据 编辑:程序博客网 时间:2024/04/26 09:23
linux中(chattr)创建不可修改文件的方法
在常见的linux扩展文件系统中(如ext2、ext3、ext4等),可以将文件设置为不可修改(immutable)。某些文件属性可帮助我们将文件设置不可修改。一旦文件被设置为不可修改,任何用户包括超级用户都不能删除该文件,除非其不可修改的属性被移除。
通过查看/etc/mtab文件,很容易找出所有挂载分区的文件系统类型。这个文件的第一列指定了分区设备路径(如/dev/sda5),第三列指定了文件系统类型(如ext3)。
接下来让我们看看如何将文件设置为不可修改吧。
可以用chattr将文件设置为不可修改。
不过chattr能够更改的扩展属性可不止这些。
不可修改属性是保护文件不被修改的安全手段之一。最有代表性的例子就是 /etc/shadow文件。该文件由当前系统中所有用户的加密密码组成。我们通过密码才能登录系统。用户通常用passwd命令修改自己的密码。执行passwd时,它实际上就修改了 /etc/shadow文件。我们可以将shadow文件设置为不可修改,这样就再没有用户能够修改密码了。
让我们来看看具体是如何实现的。
可以按照下面的方式将一个文件设置为不可修改:
chattr +i file
或者:
$ sudo chattr +i file
这样文件file就变为了不可修改。
来试试下面的这条命令:
rm file
rm: cannot remove `file`: Operation not permitted
如果需要使文件重新可写,移除其不可修改的属性即可:
chattr -i file
touch命令
touch命令改变文件的时间信息。
参数:
-a : 仅修改access time。
-c : 仅修改时间,而不建立文件。
-m : 仅修改mtime。
-r : 参照某个文件的时间记录。
-t : 后面可以接时间,格式为 [[CC]YY]MMDDhhmm[.SS] 如198408250310.20
如果不指定任何选项,则把文件最近使用时间和最近变更时间改成系统当前时间。如果不存在指定的文件,就生成一个大小为0的空文件。
参数:
-a : 仅修改access time。
-c : 仅修改时间,而不建立文件。
-m : 仅修改mtime。
-r : 参照某个文件的时间记录。
-t : 后面可以接时间,格式为 [[CC]YY]MMDDhhmm[.SS] 如198408250310.20
如果不指定任何选项,则把文件最近使用时间和最近变更时间改成系统当前时间。如果不存在指定的文件,就生成一个大小为0的空文件。
#ll file1 --无文件file1 not found#touch file1 --生成一个空文件#ll file1 --大小为0,时间为系统当前时间-rw-r--r-- 1 root sys 0 Nov 9 17:10 file1#date --过了1分钟,系统时间发生变化Wed Nov 9 17:11:01 MST 2011#touch file1 --变更文件的时间记录#ll file1 --文件的时间改为当前时间-rw-r--r-- 1 root sys 0 Nov 9 17:11 file1#touch -t 09100111 file1 --MMDDhhmm,9月10日1点11分#ll file1-rw-r--r-- 1 root sys 0 Sep 10 01:11 file1#touch file2#ll file1 file2 --新生成file2文件-rw-r--r-- 1 root sys 0 Sep 10 01:11 file1-rw-r--r-- 1 root sys 0 Nov 9 17:15 file2#touch -r file1 file2 --参照file1的时间记录,改写file2的时间信息#ll file1 file2-rw-r--r-- 1 root sys 0 Sep 10 01:11 file1-rw-r--r-- 1 root sys 0 Sep 10 01:11 file2
diff命令
hello
world v1_echo
v1_diff
v1_comm
shell is easy!
v2_echo
v1_diff
easy shell!
< hello world
< v1_echo
---
> hello world!
> v2_echo
4c4
< v1_comm
---
> easy shell!
+hello world!
+v2_echo
v1_diff
-v1_comm
+easy shell!
shell is easy!
easy shell!
.
1,2c
hello world!
v2_echo
.
或:wc [选项]... --files0-from=F
打印每行的换行符,单词,字节的数量,如果多于一个文件,则打印每个总行数。如果没有文件,或者文件位置用“-”表示,则读取标准流。 一个单词是由空白符分隔的非零长的字符序列
下面的操作可能用于选择某种类型数量的打印,通常顺序是 换行符,单词,字符,字节,最大行的长度
-c, --bytes 打印字节数
-m, --chars 打印字符数
-l, --lines 打印换行符,即总行数
--files0-from=文件 从指定文件读取以NUL 终止的名称,如果该文件被
指定为"-"则从标准输入读文件名
-L, --max-line-length 显示最长行的长度
-w, --words 显示单词计数
--help 显示此帮助信息并退出
--version 显示版本信息并退出
world v1_echo
v1_diff
v1_comm
shell is easy!
文件2: v2.txt
hello world! v2_echo
v1_diff
easy shell!
1,2c1,2
- $diff v1.txt v2.txt
< hello world
< v1_echo
---
> hello world!
> v2_echo
4c4
< v1_comm
---
> easy shell!
-v1_echo
- $diff -u v1.txt v2.txt > version.patch
+hello world!
+v2_echo
v1_diff
-v1_comm
+easy shell!
shell is easy!
- $patch –p1 v1.txt< version.patch
4c
- $diff -e v1.txt v2.txt
easy shell!
.
1,2c
hello world!
v2_echo
.
- $diff –Naur directory1 directory2
- $diff v1.txt /${dir}
- $wc –l file
- $wc –w file
- $wc –c file
用法:wc [选项]... [文件]...
- $echo –n 1234 | wc –c
或:wc [选项]... --files0-from=F
打印每行的换行符,单词,字节的数量,如果多于一个文件,则打印每个总行数。如果没有文件,或者文件位置用“-”表示,则读取标准流。 一个单词是由空白符分隔的非零长的字符序列
下面的操作可能用于选择某种类型数量的打印,通常顺序是 换行符,单词,字符,字节,最大行的长度
-c, --bytes 打印字节数
-m, --chars 打印字符数
-l, --lines 打印换行符,即总行数
--files0-from=文件 从指定文件读取以NUL 终止的名称,如果该文件被
指定为"-"则从标准输入读文件名
-L, --max-line-length 显示最长行的长度
-w, --words 显示单词计数
--help 显示此帮助信息并退出
--version 显示版本信息并退出
以上内容转载自:http://yjplxq.blog.51cto.com/4081353/957701
- Linux Shell 脚本攻略学习--四
- 《Linux Shell 脚本攻略》学习记录之四
- Linux Shell脚本攻略学习总结:一
- Linux Shell脚本攻略学习总结:二
- Linux Shell脚本攻略学习总结:三
- 《Linux Shell脚本攻略》学习(一)
- 《Linux Shell脚本攻略》学习(二)
- Linux Shell脚本攻略学习笔记
- Linux Shell 脚本攻略 学习笔记-1
- Linux shell 脚本攻略 学习笔记-2
- Linux shell 脚本攻略 学习笔记-3
- linux shell 脚本攻略 学习笔记-4
- Linux shell 脚本攻略 学习笔记-5
- Linux shell 脚本攻略 学习笔记-6
- Linux shell 脚本攻略 学习笔记-7
- Linux shell 脚本攻略 学习笔记-8
- Linux shell 脚本攻略 学习笔记-9
- 《Linux shell脚本攻略》学习笔记
- ssh实现无密码登录
- Android开发 (一) 基本组件整理
- java--序列化及其算法透析
- 人如何感知--77人在忙碌时更加愉悦
- 小白历险记
- Linux Shell 脚本攻略学习--四
- poj 1690 (Your)((Term)((Project)))
- RVDS4.0下 RVISS仿真(1)
- 没事学着别人玩博客
- make报错:"/usr/bin/ld: cannot find -lXXX"
- ViewPager空指针错误,android.support.v4.view.ViewPager.onSaveInstanceState
- Java XML StAX
- 中国版Ubuntu操作系统:“麒麟” ubuntukylin-13.04-desktop
- 完全卸载oracle11g