Linux的目录结构 | 命令的认识 | 相对路径 | 绝对路径 | 常用命令(一)

embedded/2024/11/12 14:56:58/

文章目录

        • 1.Linux的目录结构
        • 2.命令的认识
        • 3.相对路径和绝对路径
        • 4.常用命令(目录文件操作)
        • 5.常用命令(文本查看)

1.Linux的目录结构

在这里插入图片描述
\ :根目录
root:root用户的工作目录
home:普通用户的工作目录
bin:存放二进制文件,一些常用的命令
dev:设备(Device)文件,Linux下一切皆文件,访问外部设备和普通文件一样。
etc:存放所有的系统管理所需要的配置文件
lib:库文件
mnt:临时挂载的文件系统
media:Linux自动识别一些设备,如:U盘、光驱等
boot:开机启动引导程序
proc:存放内核运行状态的进程信息
opt:第三方软件默认按照的位置。
var:存放经常变化的文件,如系统日志
usr:用户的很多应用程序和文件,这个文件都不经常变化。

xiyan@LAPTOP-87PRR6K8:/usr/bin$ whereis cat	- 可以看到cat命令就存放在usr目录下
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz

whereis 命令主要用于查找命令、可执行文件、源代码和手册页的路径。用法:whereis [选项] <命令名>

2.命令的认识

刚开始接触Linux,可能对命令理解有点模糊,其实命令就是一个可执行程序,这个程序和你写得C语言程序(用C语言写的命令)是一模一样的,有区别的就是hello程序是你写的,而命令是别人写的。

xiyan@LAPTOP-87PRR6K8:~$ pwd
/home/xiyan
xiyan@LAPTOP-87PRR6K8:~$ vim hello.c
xiyan@LAPTOP-87PRR6K8:~$ gcc hello.c -o hello
xiyan@LAPTOP-87PRR6K8:~$ ls | grep hello
hello
hello.c
xiyan@LAPTOP-87PRR6K8:~$ ./hello
hello world

我编写了一个hello world的C程序然后编译,使用相对路径的方式运行了我的程序。其实hello就是一个命令。这里和系统的命令不同的是运行自己的程序多了./。我们来改变一些,上面whereis cat的命令的路径,我们也把hello放到/usr/bin。但是一般不要这么干。

xiyan@LAPTOP-87PRR6K8:~$ mv hello /usr/bin
mv: cannot move 'hello' to '/usr/bin/hello': Permission denied
xiyan@LAPTOP-87PRR6K8:~$ sudo mv hello /usr/bin
[sudo] password for xiyan:
xiyan@LAPTOP-87PRR6K8:~$ ls /usr/bin/hello
/usr/bin/hello
xiyan@LAPTOP-87PRR6K8:~$ hello
hello world
xiyan@LAPTOP-87PRR6K8:~$ sudo rm /usr/bin/hello	- 这里删除(其实删除移动拷贝这些命令是高危命令,别删库跑路了!)

上面我们就写了一条自己的命令hello。
上面统计将hello命令移动到/usr/bin路径下,当然也可以添加一个环境变量,系统会根据环境变量来查找了对应的命令。

xiyan@LAPTOP-87PRR6K8:~$ pwd
/home/xiyan
xiyan@LAPTOP-87PRR6K8:~$ gcc hello.c -o hello
xiyan@LAPTOP-87PRR6K8:~$ ls | grep hello
hello
hello.c
xiyan@LAPTOP-87PRR6K8:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
xiyan@LAPTOP-87PRR6K8:~$ export PATH=$PATH:/home/xiyan
xiyan@LAPTOP-87PRR6K8:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/xiyan
xiyan@LAPTOP-87PRR6K8:~$ hello
hello world
3.相对路径和绝对路径

绝对路径:以根目录为起点,精确表示一个文件的路径。
相对路径:以当前位置为起点,去表示一个文件的路径。

xiyan@LAPTOP-87PRR6K8:~$ ll
total 172
drwxr-x--- 22 xiyan xiyan  4096 Nov  8 10:30 ./
drwxr-xr-x  3 root  root   4096 Jun 15 20:14 ../

通过 ll 命令来查看,. 就表示当前路径,而 .. 表示父目录也就是上一级目录。所以在执行cd 命令的时候,就能找到对应的位置。

4.常用命令(目录文件操作)

命令的一般结构:命令 [选项] [参数(文件名或目录、命令等)]
1)man命令用来查看帮助文档

man 语法: man [选项] 命令
xiyan@LAPTOP-87PRR6K8:~$ man man - 按q退出
man手册分为8章
1、普通的命令(默认)
2、系统调用。如open、write(重要)
3、库函数(重要)
5、是指文件的格式
6、是给游戏留的,由各个游戏自己定义
7、是附件还有一些变量
8、是系统管理用的命令,这些命令只能由root使用,如ifconfig
xiyan@LAPTOP-87PRR6K8:~$ man 3 printf

2)mkdir用来创建目录

xiyan@LAPTOP-87PRR6K8:~$ man mkdir
语法: mkdir [OPTION]... DIRECTORY...
选项:-p:此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录xiyan@LAPTOP-87PRR6K8:~$ mkdir mydir
xiyan@LAPTOP-87PRR6K8:~$ cd mydir
xiyan@LAPTOP-87PRR6K8:~/mydir$ mkdir a/b/c/d
mkdir: cannot create directory ‘a/b/c/d’: No such file or directory
xiyan@LAPTOP-87PRR6K8:~/mydir$ mkdir -p a/b/c/d
xiyan@LAPTOP-87PRR6K8:~/mydir$ sudo apt install tree
xiyan@LAPTOP-87PRR6K8:~/mydir$ tree
.
└── a└── b└── c└── d

3)cd:将当前工作目录改变到指定的目录

语法:cd 目录名
xiyan@LAPTOP-87PRR6K8:~$ cd .. - 返回
xiyan@LAPTOP-87PRR6K8:~$ pwd
/home/xiyan

4)pwd查看当前路径
5)touch创建一个空文件

xiyan@LAPTOP-87PRR6K8:~$ cd mydir/
xiyan@LAPTOP-87PRR6K8:~/mydir$ pwd
/home/xiyan/mydir
xiyan@LAPTOP-87PRR6K8:~/mydir$ touch a1
xiyan@LAPTOP-87PRR6K8:~/mydir$ ls
a  a1  a2  a3  a4  a5

6)ls命令用来列出该目录下的所有子目录与文件

xiyan@LAPTOP-87PRR6K8:~/mydir$ ls
a  a1  a2  a3  a4  a5
xiyan@LAPTOP-87PRR6K8:~/mydir$ ls -al
total 12
drwxrwxr-x  3 xiyan xiyan 4096 Nov  8 13:35 .
drwxr-x--- 22 xiyan xiyan 4096 Nov  8 11:58 ..
...选项: -a:列出目录下的所有文件,包括以 . 开头的隐含文件-l:列出文件的详细信息-R:列出所有子目录下的文件(递归)-s:在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)

7)rm删除一个文件或目录

xiyan@LAPTOP-87PRR6K8:~/mydir$ rm a1
xiyan@LAPTOP-87PRR6K8:~/mydir$ rm -r a
xiyan@LAPTOP-87PRR6K8:~/mydir$ ls
a2  a3  a4  a5选项:-f:强制直接删除-r:删除目录及其下所有文件

8)cp指令复制文件或目录
C字符串函数传入参数的一个特点类似A of B 的格式,A of B表示BA。以strcpy为例,传入的参数第一个是destination,第二个是source。是将source拷贝到destination中。

char * strcpy ( char * destination, const char * source )

这里和Linux命令是相反的,例如,cp命令:前面的是原文件(source_file),后面的是目标文件(destination_directory)

cp [OPTION]... source... directory

cp命令的使用

xiyan@LAPTOP-87PRR6K8:~/mydir$ ls
a2  a3  a4  a5
xiyan@LAPTOP-87PRR6K8:~/mydir$ cp /usr/include/stdio.h ./
xiyan@LAPTOP-87PRR6K8:~/mydir$ ls
a2  a3  a4  a5  stdio.h

9)mv指令用来移动或者重命名

xiyan@LAPTOP-87PRR6K8:~/mydir$ mv a2 a2.txt
xiyan@LAPTOP-87PRR6K8:~$ cd
xiyan@LAPTOP-87PRR6K8:~$ touch hello.txt
xiyan@LAPTOP-87PRR6K8:~$ cd mydir
xiyan@LAPTOP-87PRR6K8:~/mydir$ mv /home/xiyan/hello.txt hello.c - 移动并重命名
xiyan@LAPTOP-87PRR6K8:~/mydir$ ls
a2.txt  a3  a4  a5  hello.c  stdio.h
5.常用命令(文本查看)

1)cat查看目标文件的内容

xiyan@LAPTOP-87PRR6K8:~/mydir$ pwd
/home/xiyan/mydir
xiyan@LAPTOP-87PRR6K8:~/mydir$ cat stdio.h
选项:-b 对非空输出行编号-n 对输出的所有行编号-s 不输出多行空行

2)more也是用来查看文本的内容,上面用cat命令直接把全部的内容打印到显示屏中。more分页查看文件内容。

xiyan@LAPTOP-87PRR6K8:~/mydir$ more stdio.h -也是q退出
选项:-n 对输出的所有行编号
操作:enter 回车,向下查看一行b 向上翻一页f 向下翻一页space 向下翻一页

3)less指令也是分页进行查看文本内容(重要)
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
less还可以查找功能等,它更加强大!

xiyan@LAPTOP-87PRR6K8:~/mydir$ less stdio.h

在这里插入图片描述
4)head从头查看文本内容

xiyan@LAPTOP-87PRR6K8:~/mydir$ head stdio.h
xiyan@LAPTOP-87PRR6K8:~/mydir$ head -5 stdio.h
选项:-n<行数> 显示的行数(默认十行)

5)tail从尾查看文本内容

xiyan@LAPTOP-87PRR6K8:~/mydir$ tail stdio.h

http://www.ppmy.cn/embedded/136428.html

相关文章

前端零基础学习Day-Eight

CSS字体和文本样式 CSS文字样式 字体&#xff1a;font-family 语法&#xff1a;font-family:[字体1][,字体2][,...] p{font-family:"微软雅黑","宋体","黑体";} 含空格字体名和中文&#xff0c;用英文引号括起 属性值&#xff1a;具体字体名&…

CTF-RE 从0到N: 迈向混淆代码分析的第一步!分析控制流扁平化后的代码!

Control Flow Flattening&#xff08;控制流扁平化&#xff09;是一种代码混淆技术&#xff0c;主要用于提高程序的安全性&#xff0c;防止逆向工程和代码分析。它通过改变程序的控制流结构&#xff0c;使得代码的执行路径更加复杂和难以理解。具体来说&#xff0c;这种技术会将…

分享:文本转换工具:PDF转图片,WORD转PDF,WORD转图片

前言 鉴于网上大多数在线转换工具要么需要收费&#xff0c;要么免费后但转换质量极差的情况&#xff0c;本人开发并提供了PDF转图片&#xff0c;WORD转PDF&#xff0c;WORD转图片等的文本转换工具。 地址 http://8.134.236.93/entry/login 账号 账号&#xff1a;STAR001&a…

CV图像处理小工具——语义分割json生成检测框json

语义分割json生成检测框json import json import os from os import listdir, getcwd from os.path import join import os.pathrootdir F:/dataset/# 写自己存放图片的数据地址 input_dir F:/dataset/labels_json/ output_dir F:/dataset/labels_box/ def position(pos):# …

【MATLAB代码】二维平面上的TDOA,使用加权最小二乘法,不限制锚点数量,代码可复制粘贴

本文所述的MATLAB代码实现了一个基于两步加权最小二乘法的二维目标定位算法,利用多个锚点(基站)和时间差到达(TDOA)数据来估计未知目标的位置。 订阅专栏后可以看到完整代码,复制到MATLAB空脚本上面即可直接运行。若需要单独下载,可通过下面的链接:https://download.cs…

机器学习与大数据处理有何关系

一、机器学习的定义 机器学习&#xff08;Machine Learning, ML&#xff09;是人工智能的一个分支领域&#xff0c;它专注于让计算机系统通过自动地从数据中学习并改进其性能&#xff0c;以执行特定任务&#xff0c;而无需进行显式的编程。机器学习的核心思想是使用数据来训练…

Spring Boot应用开发:从入门到精通

Spring Boot应用开发&#xff1a;从入门到精通 Spring Boot是Spring框架的一个子项目&#xff0c;旨在简化Spring应用的初始搭建和开发过程。通过自动配置和约定大于配置的原则&#xff0c;Spring Boot使开发者能够快速构建独立的、生产级别的Spring应用。本文将深入探讨Sprin…

Zabbix5 通过 Rsyslog 实现设备日志收集分析syslog及监控告警

一、概述 本文档详细描述了如何使用 Zabbix5 和 Rsyslog 实现对设备日志的收集、监控以及在满足特定条件下触发告警的完整流程&#xff0c;包括环境准备、Rsyslog 配置、Zabbix5 配置以及常见问题排查等内容。 二、环境准备 服务器环境 操作系统&#xff1a;CentOS&#xff08;…