当前位置: 首页 > article >正文

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

文章目录

        • 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.kler.cn/a/386953.html

相关文章:

  • 【CICD】GitLab Runner 和执行器(Executor
  • 【入门篇】A+B Problem——多语言版
  • Linux入门:环境变量与进程地址空间
  • Leetcode 找出字符串中第一个匹配项的下标
  • Vue 中的定时刷新与自动更新实现
  • 【SpringBoot】18 上传文件到数据库(Thymeleaf + MySQL)
  • 健身业务自动化:SpringBoot管理系统指南
  • 【基于轻量型架构的WEB开发】课程 12.5 数据回写 Java EE企业级应用开发教程 Spring+SpringMVC+MyBatis
  • 数据结构基
  • C++(函数重载,引用,nullptr)
  • Elmo驱动器上位机软件的详细配置
  • 7天用Go从零实现分布式缓存GeeCache(学习)
  • Oracle OCP认证考试考点详解082系列11
  • 数据分析:16s差异分析DESeq2 | Corncob | MaAsLin2 | ALDEx2
  • Spring框架之模板方法模式 (Template Method Pattern)
  • 关于上采样&下采样
  • R语言实战——一些批量对地理数据进行操作的方法
  • 最新开源DCL-SLAM:一种用于机器人群体的分布式协作激光雷达 SLAM 框架
  • QT版发送邮件程序
  • qt QShortcut详解
  • Docker Compose V2 安装
  • 大数据时代的数据分析:策略、方法与实践
  • 区块链技术在数字版权管理中的应用
  • Python安装与配置
  • 多路转接之Reactor
  • 定长内存池设计