路径


  • 绝对路径
    • 从根目录 / 写起,如 cd /usr/share/doc
  • 相对路径
    • 不从 / 写起,如在/usr文件夹时,cd share/doc

      目录相关的常用命令


命令太多,且每个命令可选的参数实在太多,懒得列举,就把我目前认为比较常用的写一下吧。 同时,这不是手册,只会记录一下命令的大概形式,想要深究的话可以Google,或者点这里 ,包含大多数命令

ls——列出目录

可选参数

  • -a列出全部文件
  • -d仅列出目录本身。而不是列出目录内的文件数据
  • -l详细信息

    pwd——显示当前路径

    唯一值得一提的,就是加上 -P 可以显示真实路径,而非连接link路径。可以拿/bin做测试

    rmdir——删除空目录

    -p 可以删除其空的父目录

    cp——复制文件或者目录

  • -a:pdr的综合(常用)

  • -d:若source为link file,则复制link属性而非文件本身
  • -f:强制
  • -i:若dest已经存在,则覆盖前会询问
  • -l:创建硬连接
  • -p:连同文件的属性一起复制,备份常用
  • -r:递归复制,复制目录常用
  • -s:复制为软连接

    rm——删除文件/目录

    值得注意的参数: -r 递归删除,常用于目录的删除, 非常危险 非常危险 非常危险

    mv——移动文件/目录,或修改名称

    文件相关常用命令


cat——显示文件内容

可选项

  • -n:列出行号
  • -v:列出看不出来的特殊字符
  • -E:将结尾断行字节 $ 显示出来
  • -T:将tab以^I显示出来
  • -A:-vET的整合

    less——一页一页翻阅文件

    less filename
    运行时的命令

  • /string:向下搜索

  • ?string:向上搜索
  • n:重复前一个搜索
  • N:反向重复前一个搜索
  • q
  • pageDown
  • pageUp

    tail/head——取出文件最后/最前几行

    tail [-n number] file

链接link相关的概念


linux链接分为两种,一种是硬链接,一种是软连接(符号链接),默认情况下, ln 命令产生硬链接

在linux中,保存在磁盘分区中的文件,都会分配给一个编号,称为 索引节点号 (Inode)

硬链接

假设fileA是fileB的硬链接,那么fileA的节点号和fileB的节点号完全相同,即一个节点号对应两个文件名,两个文件名指向同一个文件,它们之间互不影响

硬链接的作用即,允许一个文件拥有多个有效路径,防止误删。所以,有多个硬连接的文件,需要将所有硬连接都删除后,才真正删除

软连接(符号连接)

软连接类似Windows的快捷方式,在符号连接中,文件实际上是一个文本文件,其中包含的有另一个文件的位置

假设fileA是fileB的软连接,则fileA的节点号与fileB的节点号是不同的,fileA指向的数据块中,存放的是fileB的路径名,然后可以通过fileB的节点号找到相应文件。所以,若fileB被删除了,A虽然存在,但指向的位置是无效的了。

测试

  1. [oracle@Linux]$ touch f1 #创建一个测试文件f1
  2. [oracle@Linux]$ ln f1 f2 #创建f1的一个硬连接文件f2
  3. [oracle@Linux]$ ln -s f1 f3 #创建f1的一个符号连接文件f3
  4. [oracle@Linux]$ ls -li # -i参数显示文件的inode节点信息
  5. total 0
  6. 9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f1
  7. 9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f2
  8. 9797649 lrwxrwxrwx 1 oracle oinstall 2 Apr 21 08:11 f3 -> f1
  9. [oracle@Linux]$ echo "I am f1 file" >>f1
  10. [oracle@Linux]$ cat f1
  11. I am f1 file
  12. [oracle@Linux]$ cat f2
  13. I am f1 file
  14. [oracle@Linux]$ cat f3
  15. I am f1 file
  16. [oracle@Linux]$ rm -f f1
  17. [oracle@Linux]$ cat f2
  18. I am f1 file
  19. [oracle@Linux]$ cat f3
  20. cat: f3: No such file or directory