zoukankan      html  css  js  c++  java
  • 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  
  • 相关阅读:
    第三章 C++中的C 《C++编程思想》
    网络时间协议 网络对时程序
    不相交集类应用:迷宫生成
    第一章 对象导言 第二章 对象的创建与使用
    获取本机IP MAC地址
    详解C#制做Active控件的五个步骤
    js HTML编码转换
    Web应用Word编辑
    HTML <map>标签的使用
    Web(浏览器)打开运行WinForm应用程序
  • 原文地址:https://www.cnblogs.com/hello-2015/p/5147322.html
Copyright © 2011-2022 走看看