Linux目录和命令

Linux目录结构

在这里插入图片描述

路径

  • 绝对路径:由根目录 / 写起,例如: /usr/share/doc
  • 相对路径:不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时可以写成: cd …/man 这就是相对路径的写法

常用命令

  • 身份提示符
    $ 普通用户的身份提示符
    # root用户的身份提示符
  • su root 进入root,su命令用于变更使用者身份
  • exit 退出
操作目录命令
  • ls 列出目录
    ls -a 列出全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用) ls -a
    ls -d 仅列出目录本身,而不是列出目录内的文件数据(常用) ls -d
    ls -l 长数据串列出,包含文件的属性与权限等等数据;(常用) ls -l
    ls -al ~ 将家目录下的所有文件列出来(含属性与隐藏档)
  • cd 切换目录
    cd /root/runoob/ 使用绝对路径切换到 runoob 目录
    cd ./runoob/ 使用相对路径切换到 runoob 目录
    cd ~ 回到自己的家目录,亦即是 /root 这个目录
    cd .. 去上一级目录,亦即是 /root 的上一级目录的意思;
    cd - 回到上一次目录
    cd /cd ~ 切换到用户主目录
  • pwd 显示当前目录
  • mkdir 目录名 创建一个新的目录
    mkdir -p test1/test2/test3/test4 递归创建多层目录
  • rmdir 目录名 删除一个空的目录
  • tree 以树状图列出当前目录结构
操作文件命令
  • ls te* 列出以te开头的文件
  • ls *py 列出以py结尾的文件
  • ls ?.c 表示查找 以.c 为后缀结尾的文件
  • touch 文件名 创建文件
  • echo "It is a test" 用于字符串的输出
  • cp 源文件 目标文件 复制文件或目录
    cp -i 如果复制的文件已经存在,会交互提醒
    cp -f 强制覆盖,不会有提示
    cp -r 递归复制该目录下的文件和子目录
  • grep [选项] "搜索的内容" 文件名 用于查找文件里符合条件的字符串
    grep -n 显示匹配行号
    grep -^ 以某个字符开头 grep -n "^a" ab.txt
    grep -$ 以某个字符结尾 grep -n "^m$" ab.txt
    grep -i 表示忽略大小写
  • rm 文件/目录 移除文件或目录
    rm -r 递归删除
    rm -i 互动模式,在删除前会询问使用者是否动作
    rm -f 强制删除,没有提示
  • mv 文件名 目标目录 移动文件与目录,相当于剪切
    mv -i 如果移动的文件在目标目录中已存在会提示
    mv -v 显示移动进度
    mv 可以给文件或者目录重命名,mv 旧文件名称 新文件名称
vim操作

vim四种模式

  1. 正常模式:一般用于浏览文件,和复制粘贴操作
  2. 插入模式:在正常模式下按i键进入插入模式
  3. 命令模式:在正常模式下,按下:(冒号)键,会进入命令模式.命令模式执行输入的vim指令.
  4. 可视模式:在正常模式下按v,V或+v进入可视模式

vim命令

  • :wq+回车键 保存并退出
  • ZZ 保存并退出
  • :q!+回车键 不保存退出
  • o 向下新开一行
  • O 向上重开一行
  • yy 复制光标所在行
  • p 粘贴
  • dd 删除一行
  • gg 把光标移动到文件的开头
  • M 把光标移动到中间行
  • G 光标移动到文件的末尾
  • L 把光标移动到屏幕的最后一行的行首
重定向

cat 是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;
cat主要有三大功能:

  1. cat filename 查看文件内容
  2. cat > file1 直接向file1 中写入内容, 内容来自键盘在控制台输入, 按下键盘Ctrl+D结束输入,之前输入的文件保存在file1中
    cat >> file1 直接向file1 文件追加内容,内容来自键盘输入 按下Ctrl + D 结束输入,之前输入的内容追加在 file1 后
    cat f1.txt > f2.txt 把f1.txt文件内容写入到f2.txt中,会覆盖原来的内容,文件不存在则创建它。
    cat f1.txt >> f2.txt 把f1.txt文件内容追加到f2.txt中去,不会覆盖原来的内容,文件不存在则创建它。
    只能创建新文件,不能编辑已有文件.
  3. cat file1 file2 > file3 将文件 file1 和 file2 整合到 file3 中,会覆盖原来的内容,文件不存在时,创建文件
    cat file1 file2 >> file3 将文件 file1 和 file2 追加到 file3中,不会覆盖原来的内容,文件不存在时,创建文件

linux允许将命令的执行结果重新定向到一个文件中,本应该显示桌面的内容显示到文件中.

  • command > file 将输出重定向到 file。
    command < file 将输入重定向到 file。
    command >> file 将输出以追加的方式重定向到 file。
  • ls > a.txt 将用户目录下显示的内容重定向显示到a.txt文件中
    n > file 将文件描述符为 n 的文件重定向到 file。
    n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
    n >& m 将输出文件 m 和 n 合并。
    n <& m 将输入文件 m 和 n 合并。
    << tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。
其他操作命令
  • clear 清屏

  • more 分屏

  • which 查看系统命令的位置

  • cal 查看日历

  • ps 查看进程信息
    ps -a 显示终端上的所有进程,
    ps -u 显示进程的详细状态
    ps -x 显示没有控制终端的进程
    一般我们会把 ps aux 一起使用

  • top 动态显示进程
    top命令执行后 可以按下键盘来看详细信息
    top M 根据内存进行排序
    top P 根据cpu 的占有率
    top T 根据时间
    top q 退出

  • kill [参数] pid 杀死进程
    kill -9 pid 强制杀死进程

  • ping 测试远程 网络连接
    ping www.baidu.com

  • ifconfig 查看配置和网络信息 (windows 中为 ipconfig)

  • 关机重启
    reboot 重新启动操作系统
    shutdown -r now 立刻关闭
    shutdown -h 21:30 关机指定时间
    init 0 关机
    nit 6 重启

  • df 检测磁盘占用和空余情况
    df -h 方便阅读方式显示,也就是 kb、mb 等显示文件/目录大小
    df -hT /etc 显示特定分区的信息

  • du 检测目录所占用磁盘空间
    du -h 可阅读方式显示,也就是 kb、mb 等显示文件/目录大小
    du -a 统计目录下每个文件夹下的文件大小,最后一行是总计占用空间
    du -s 统计文件和目录的总大小(只显示总计大小)
    du -s Desktop/ -h
    find 查找文件

  • find ./ -name test.sh 查找名称为test.sh的文件
    find ./ -name '*.sh' 查找当前目录下后缀为.sh的文件
    find ./ -name '[A-Z].txt' 查找当前目录下 所有以大写字母开头的文件
    find ./ -name -size 2M 查找当前目录下 等于2M的文件
    find ./ -name -size +2M 查找当前目录下 大于2M的文件
    find ./ -name -size -2M 查找当前目录下 小于2M的文件
    find ./ -name -size +4k -size -5M 查找当前目录下 大于4k 小于 5Mde 文件

  • 可以使用 [命令]--helpman [命令] 来查看各个命令的使用文档,如 :man cp

  • Tab键: 自动补全命令 或 自动补全文件或目录名

硬链接 软连接

ln 建立链接文件
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。
默认情况下,ln 命令产生硬链接。

硬连接

格式:ln 源文件 连接文件
硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件, A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。

硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录 的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接

格式:ln -s 源文件 连接文件
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

通过实验加深理解

[oracle@Linux]$ touch f1          #创建一个测试文件f1
[oracle@Linux]$ ln f1 f2          #创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3       #创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li            # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

从上面的结果中可以看出,硬连接文件 f2 与原文件 f1 的 inode 节点相同,均为 9797648,然而符号连接文件的 inode 节点不同。

[oracle@Linux]$ echo "I am f1 file" >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory

通过上面的测试可以看出:当删除原始文件 f1 后,硬连接 f2 不受影响,但是软连接 f1 文件无效

总结
依此您可以做一些相关的测试,可以得到以下全部结论:

  1. 删除软连接f3,对f1,f2无影响;
  2. 删除硬连接f2,对f1,f3也无影响;
  3. 删除原文件f1,对硬连接f2没有影响,导致软连接f3失效;
  4. 同时删除原文件f1,硬连接f2,整个文件会真正的被删除。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值