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