linux指令之文件的创建、查询、修改
mkdir(make directory)
- 功能:创建目录
- 案例:
- mkdir test
- 点评:将创建一个目录名为test的目录
rmdir(remove directory)
- 功能:删除目录
- 案例:
- rmdir test
- 点评:将删除目录test
mv

- 功能:移动目录
- 范例一:
- mv mvtest test
- 点评:将目录mvtest 移动到目录test下面
- 范例二:
- mv mvtest mvtest2
- 点评:更名的效果
- 范例三:
- mv test test2 mvtest
- 点评:将目录test test2 一并移动到mvtest下面

查看文档的指令有哪些?以及各自的特点?

- cat 由第一行开始显示档案内容
- tac 由最后一行开始显示,内容颠倒过来了
- nl 显示的时候,顺道输出行号
- more 一页一页的显示档案内容(Enter向下翻一行,空格向下翻一页,q离开more模式)
- less 与more类似,但是比more更好,可以往前翻页(可以通过PageUp PageDown来进行翻页,空格向下翻一页,q离开)
- head 只看头几行(head -n 跟数字可以指定显示多少行)
- tail 只看尾几行 (tail -n 跟数字可以指定显示多少行)
- od 以二进制的方式读取档案内容

如何新建文档?
用touch指令来实现
touch指令不仅可以新建文档,还可以修改文档日期
案例:

- ll是ls -l 的别名,其实是一个意思
- touch -d "2 days ago" testtouch
- 功能:将文件testtouch日期修改提前两天,其中-d表示天数
- touch testtouch
- 功能:创建文件testtouch
- touch -t 1307030202 testtouch
- 功能:将文件testtouch的日期修改为2013年7月3日2点2分,-t是一种时间格式

umask的使用?
umask对于档案的预设管理很有关系。
比如umask的值为0022
那么新建文件和文件夹的权限为
我们新建一个文件和文件夹来看看
- root@ubuntu:~/tmp# touch test1
- root@ubuntu:~/tmp# mkdir test2
- -rw-r--r-- 1 root root 0 2013-06-05 16:15 test1
- drwxr-xr-x 2 root root 4096 2013-06-05 16:15 test2
果然如想象的一样
那么我们重新设置一下umask为0002看看
umask 0002

- root@ubuntu:~/tmp# rm test1
- root@ubuntu:~/tmp# rmdir test2
- root@ubuntu:~/tmp# touch test1
- root@ubuntu:~/tmp# mkdir test2
- -rw-rw-r-- 1 root root 0 2013-06-05 16:22 test1
- drwxrwxr-x 2 root root 4096 2013-06-05 16:20 test2/

这时候,只去除了一个w
如何设置文档的隐藏属性?

- 答:用chattr
- + 增加一个特殊参数
- - 移除一个特殊参数
- = 仅有后面接的参数
- A 设定了A这个属性,这个档案或目录的存取时间atime(access)将不可被修改。
- S 将数据写入磁盘当中避免数据流失
- a 设置a之后,这个档案只能增加数据,不能删除数据
- c 设置这个属性之后,将会自动压缩文档
- i 可以让一个档案不能被删除、改名、设定连结也无法写入或新增资料。
- 等等..
- 比较常用的是a和i

案例:
- root@ubuntu:~/tmp# touch attrtest
- root@ubuntu:~/tmp# chattr +i attrtest
- root@ubuntu:~/tmp# rm attrtest
- rm: cannot remove `attrtest': Operation not permitted
如何查看隐藏属性?
答:通过lsattr指令
案例:
- root@ubuntu:~/tmp# lsattr attrtest
- -----a-----------e- attrtest
- root@ubuntu:~/tmp# chattr -a attrtest
- root@ubuntu:~/tmp# lsattr attrtest
- -----------------e- attrtest
如何修改文档权限?
答:通过执行chmod来修改
案例:

- root@ubuntu:~/tmp# touch attrtest
- root@ubuntu:~/tmp# chmod 777 attrtest
- root@ubuntu:~/tmp# ll
- total 16
- drwxrwxr-x 4 jiqing9006 jiqing9006 4096 2013-06-05 17:03 ./
- drwxr-xr-x 26 jiqing9006 jiqing9006 4096 2013-06-05 15:21 ../
- -rwxrwxrwx 1 root root 0 2013-06-05 17:03 attrtest*
- drwxrwxr-x 5 jiqing9006 jiqing9006 4096 2013-06-04 15:24 mvtest/
- -rw-rw-r-- 1 root root 0 2013-06-05 16:22 test1
- drwxrwxr-x 2 root root 4096 2013-06-05 16:20 test2/
- -rw-r--r-- 1 root root 0 2013-07-03 02:02 testtouch

如何搜索文档?
答:通常先使用whereis或者locate来检查,如果真的找不到,才以find来搜索。whereis和locate是利用数据库来搜索数据,所以相当的快,而且没有实际的搜索硬盘,比较省时间。
而find速度慢,也操作硬盘了。
案例:
which搜寻执行档
- root@ubuntu:~/tmp# which passwd
/usr/bin/passwd
root@ubuntu:~/tmp# which passwd -a
/usr/bin/passwd
whereis搜寻特定档案
- root@ubuntu:~/tmp# whereis passwd
- passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1ssl.gz /usr/share/man/man1/passwd.1.gz
-b只找binary档案
-m只找manual下面的档案
-s只找source
- root@ubuntu:~/tmp# whereis -b passwd
- passwd: /usr/bin/passwd /etc/passwd
- root@ubuntu:~/tmp# whereis -m passwd
- passwd: /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1ssl.gz /usr/share/man/man1/passwd.1.gz
tips:
基本上 Linux 每天会针对 Linux 主机上所有档案的所在进行搜寻数据库的更新, 更新的程序就是
updatedb。当然,也可以直接使用 /usr/bin/updatedb 来更新数据库档案呢!
locate
- root@ubuntu:~/tmp# locate passwd
- /etc/passwd
- ../var/lib/dpkg/info/passwd.postinst
- /var/lib/dpkg/info/passwd.preinst
find 查询硬盘了

- root@ubuntu:~/tmp# find /home/jiqing9006 -mtime 0
- /home/jiqing9006
- /home/jiqing9006/file
- /home/jiqing9006/.viminfo
- /home/jiqing9006/tmp
- /home/jiqing9006/tmp/test2
- /home/jiqing9006/tmp/mvtest/demo
- ../home/jiqing9006/.cache/zeitgeist/daemon.log.2013-06-04
- /home/jiqing9006/.cache/zeitgeist/daemon.log
- find: `/home/jiqing9006/.gvfs': Permission denied

上述指令表示查询24小时内更改的文件,0表示从当前到24小时前。
find / -mtime 3 表示三天前的24小时内。

- 找出档名为 passwd 这个档案
- [root@linux ~]# find / -name passwd
- # 利用这个 -name 可以搜寻档名啊!
- 找出系统中,大于 1MB 的档案
- [root@linux ~]# find / -size +1000k
- # 虽然在 man page 提到可以使用 M 与 G 分别代表 MB 与 GB,
- # 不过,俺却试不出来这个功能~所以,目前应该是仅支持到 c 与 k 吧!

小结:
什么是绝对路径与相对路径?
- 绝对路径的写法为由 / 开始写,至于相对路径则不由 / 开始写!此外,相对路径为相对于目前
- 工作目录的路径!
如何更改一个目录的名称?例如由 /home/test 变为 /home/test2
- mv /home/test /home/test2
PATH 这个环境变量的意义?
- 这个是用来指定执行档执行的时候,档案搜寻的目录路径。
umask 有什么用处与优点?
- umask 可以拿掉一些属性,因此,适当的定义 umask 有助于系统的安全, 因为他可以用来建立
- 预设的目录或档案的权限。
- 当一个使用者的 umask 分别为 033 与 044 他所建立的档案与目录的权限为何?
- 在 umask 为 033 时,则预设是拿掉 group 与 other 的 w(2)x(1) 权限,因此权限就成为『档
- 案 -rw-r--r-- , 目录 drwxr--r-- 』而当 umask 044 时,则拿掉 r 的属性,因此就成为『档
- 案 -rw--w--w-,目录 drwx-wx-wx』
什么是 SUID ?
- 当一个指令具有 SUID 的功能时,则当其它人使用这个指令时,该程序将具有指令拥有者的权限。
当我要查询 /usr/bin/passwd 这个档案的一些属性时,可以使用什么指令来查询?
- ls -al, file, lsattr
尝试用 find 找出目前 linux 系统中,所有具有 SUID 的档案有哪些?
- find / -type f -perm -4000 -print
linux指令之文件的创建、查询、修改的更多相关文章
- Linux如何查看文件的创建、修改时间?
Linux如何查看文件的创建.修改时间? 利用stat指令查看文件信息 三种时间的介绍 ATime --文件的最近访问时间 只要读取时间,ATime就会更新 MTime --文件的内容最近修改的时间 ...
- Linux下的文件夹创建命令使用实践
[文章摘要] 本文以实际的C源程序为样例,介绍了Linux下的文件夹创建命令(mkdir)的用法.为相关开发工作的开展提供了故意的參考. [关键词] C语言 Linux 文件夹创建 makefi ...
- 用 C# 轻松读取、改变文件的创建、修改、访问时间
创建时间是文件存入到电脑中的时间,而修改时间则是改变起内容的最后时间 // 读取文件的创建.修改.访问时间FileInfo fi = new FileInfo("C://test.txt&q ...
- C# 轻松读取、改变文件的创建、修改、访问时间 z
// 读取文件的创建.修改.访问时间FileInfo fi = new FileInfo("C://test.txt");Console.WriteLine(fi.Creation ...
- 【linux】如何查看文件的创建、修改时间
本篇博文旨在介绍Linux下查看文件时间的方法:并介绍如何使用touch指令来进行文件时间的创建以及修改 如何查看文件的时间信息利用stat指令查看文件信息 三种时间的介绍ATime ——文件的最近访 ...
- Linux如何查找文件的创建时间
Linux的文件能否找到文件的创建时间取决于文件系统类型,在ext4之前的早期文件系统中(ext.ext2.ext3),文件的元数据不会记录文件的创建时间,它只会记录访问时间.修改时间.更改时间(状态 ...
- Linux下查看文件编码及批量修改编码
查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式.如果你只是想查看其它编码格式的文件或者想解决用Vi ...
- python脚本获取文件的创建于修改日期并计算时间差
由于在计算一个算法的运行时间的时候,需要将文件的创建日期与修改日期读取到,然后计算两者之差,在网上搜索了相关的程序之后,自己又修改了一下,把代码贴在这里,供以后查阅使用,也希望可以帮到其他人. # - ...
- linux中的文件编码及编码修改
查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式. 如果你只是想查看其它编码格式的文件或者想 ...
随机推荐
- JavaWeb 学习0010-今日问题 2016-12-3
2016-12-3 1. 今天要做的第一个问题就是,怎么把网页变得好看点: addStudent/listStudent页面都有改动 其中 list页面还有了<c:if 的语句这是还没练习过得知 ...
- 深入理解Java虚拟机(一)、Java内存区域与内存溢出异常
Java虚拟机所管理的内存包括以下几个运行时数据区: 程序计数器(PCR): 1.是一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器 2.为线程私有 3.执行Java方法有PCR,执行 ...
- 史上最强防火墙iptables
#1.清空所有的防火墙规则 iptables -F iptables -X iptables -Z iptables -t NAT -F iptables -t NAT -X iptables -t ...
- 炫酷CSS
<!DOCTYPE html><!--To change this license header, choose License Headers in Project Propert ...
- hibernate(1)
1. 环境配置 1.1 hiberante环境配置 hibernate可实现面向对象的数据存储.hibernate的官网:http://hibernate.org/ 官网上选择hibernate OR ...
- 由React学习到Yeoman安装以及遇到的问题
离职闲下来之后想着学一些新知识,本来是想从react入手,结果延伸出去的内容就像一棵树的树枝,不断增加. 学习计划是从这里开始的(6周学习计划,攻克javascript难关 https://zhuan ...
- 深入研究C语言 第四篇
这里更多探究的是指针的机制. 用debug对下面程序进行分析,记录每一条C语句运行后,相关内存单元的值. 程序a.c 注意理解指针机制 我们编写如下代码: 编译加载进debug查看: 我们先看其反汇编 ...
- java反射案例
Java反射经典实例 2007-08-29 17:55:25 分类: Java Java提供了一套机制来动态执行方法和构造方法,以及数组操作等,这套机制就叫——反射.反射机制是如今很多流行框架的实现 ...
- C# 通过身份证查询出生日期
private int GetAgeBycode(string b_car_code) { string birthday = ""; //处理18位的身份证号码从号码中得到生日和 ...
- C++回顾map的用法
map<T, T>是C++的STL中存储key-value键值对数据结构的最基础的模板类,相对于multimap可以重复的key值,map的key是非重复的. C++的reference这 ...