探索Linux世界:初次接触和基本指令(文件操作)
文章目录
- 1.基本介绍和准备
- 2.基本指令和Linux的基本操作
- 3.几个重要基本指令
- 3.1 `ls` - 列出文件和目录
- 3.1.1文件的知识
- 3.1.2 `.和..`文件
- 3.2`pwd` - 显示当前工作目录
- 3.2.1路径知识
- 3.3 `cd` - 切换目录
- 3.4 `touch` - 创建文件或更新时间戳
- 3.5`mkdir` - 创建新目录
- 3.6`rm` - 删除文件或目录
- 3.7`man` - 显示命令手册页面
- 3.7.1手册介绍
- 3.8`cp` - 复制文件或目录
- 3.8.1nano介绍
- 3.9`mv` - 移动或重命名文件或目录
1.基本介绍和准备
Linux是一种开源、免费的类Unix操作系统内核,其开发始于1991年,由芬兰计算机科学家Linus Torvalds主导。Linux内核是操作系统的核心部分,而完整的操作系统则包括了Linux内核以及众多的软件工具和应用程序,形成了各种不同的Linux发行版(Distribution,简称"distro")
我们最为熟知的操作系统是Windows,它有着完整的图形界面化操作,而Linux则是使用各种指令(很有程序员的感觉)
这里我学习使用的是云服务器+xshell的组合:
- 云服务器:市面上有很多,大家可按需选择。这里我使用的操作系统是CentOS 7.6(基于Linux内核的一个操作系统发行版)
- xshell:Xshell 是一款 Windows 下的强大的终端模拟器和 SSH 客户端。它主要用于远程登录和管理服务器
Linux的历史发展也是极为庞大,这里我便不在继续赘述,更多空间留给知识的介绍
2.基本指令和Linux的基本操作
-
指令
ssh root@[ip地址]
:通过 SSH(Secure Shell)协议连接到远程服务器的命令- 输入后按下回车再输入密码就好啦
-
指令
whoami
:就是Who am I? 它用于显示当前登录用户的用户名
- 指令
who
:显示当前登录到系统的用户信息。这个命令的输出包括登录用户的用户名、终端、登录时间等
- 第一列就是用户名,我这里是root
- 第二列是第二列是终端(tty 表示物理控制台,pts 表示伪终端,通常是通过SSH登录的)
- 第三列是登录时间
- 第四列可能显示IP地址或主机名,表示从哪里登录的
-
指令
clear
:除当前终端或控制台上的屏幕内容,将终端窗口滚动至顶部(人如其名,就是clear) -
复制:Ctrl + insert
粘贴:Shift + insert
终止当前命令:Ctrl + C
XShell全屏:Alt + Enter
-
利用上下键跳转之前输入的指令
3.几个重要基本指令
3.1 ls
- 列出文件和目录
用法:ls [选项] [目录]
- -a:列出目录下的所有文件,包括以
.
开头的隐含文件。隐含文件通常是系统文件或配置文件,以.
开头表示隐藏。- -d:将目录本身像文件一样显示,而不是显示其下的文件。比如
ls -d 指定目录
将只显示指定目录的信息,而不会列出目录下的文件。- -l:以长格式(详细信息)列出文件。这将显示文件的权限、所有者、所属组、文件大小、创建或修改时间等详细信息。
- -n:用数字的 UID(用户标识)和 GID(组标识)代替名称。这对于显示文件所有者和组的数字标识符而不是用户名和组名很有用。
- -R:列出所有子目录下的文件,即递归显示目录结构。
- -1:一行只输出一个文件。这个选项通常用于在命令行中以一列的形式列出文件。
- -t:以时间排序。文件和目录按照它们的修改时间进行排序,最新的文件会显示在前面。
- -s:在文件名后输出该文件的大小。这将以块为单位显示文件的大小。
- -F:在每个文件名后附上一个字符,表示文件的类型。例如,
*
表示可执行的普通文件,/
表示目录,@
表示符号链接,|
表示 FIFOs(命名管道),=
表示套接字(sockets)
如果在使用 ls
命令时不指定目录或文件名,它将默认列出当前工作目录下的文件和子目录,相当于ls .
示例:ls -l
total 4
表示当前目录下所有文件的总块数。这个总块数是当前目录下所有文件所占用磁盘空间的总和,以块(block)为单位
3.1.1文件的知识
这样的一个大小为0的文件,是不是就说明没有占用空间呢?
在Windows上创建一个文本文件,即使文件大小为0KB,实际上也会占用一些磁盘空间。这是因为文件系统会为每个文件分配一个簇(Cluster)作为存储单位,而簇的大小通常是4KB。即便文件内容为空,文件系统也需要至少一个簇来存储文件的元数据和分配信息
文件 = 文件属性 + 文件内容,我们对文件的操作要么对文件内容进行操作,要么对文件属性进行操作
- 文件属性: 包括文件的元数据,如文件名、大小、创建时间、修改时间、权限等。这些属性描述了文件的基本信息和特征。
- 文件内容: 是文件的实际数据,通常是以二进制形式存储的。这是文件的实际内容,可以是文本、图像、音频等不同类型的数据。
在进行文件操作时,我们可以执行以下两类主要操作:
- 对文件内容的操作: 包括读取、写入、追加等操作,实际上是对文件中的二进制数据进行处理。这是我们通常所说的文件读写操作。
- 对文件属性的操作: 包括修改文件名、更改权限、设置时间戳等。这类操作更多地关注文件的元数据。
3.1.2 .和..
文件
Linux和Unix系统中,隐藏文件以
.
开头,例如.example.txt
。这样的文件在默认情况下不会被ls
命令列出。如果想要显示所有文件,包括隐藏文件,可以使用ls -a
命令,其中-a
选项表示显示所有文件,包括以.
开头的隐藏文件
.
(当前目录):.
代表当前目录。在命令行或文件系统中,使用.
表示当前所在的目录。例如,如果你执行ls .
,它将列出当前目录下的文件和子目录。这对于明确指定当前工作目录是很有用的。
..
(上级目录):..
代表上一级目录。在文件系统中,使用..
表示当前目录的父目录。例如,如果你执行cd ..
,它将把当前目录切换到上一级目录。这在导航文件系统时很有用
3.2pwd
- 显示当前工作目录
语法: pwd
功能: pwd
(print working directory)命令用于显示当前工作目录的完整路径
3.2.1路径知识
- 绝对路径
绝对路径是从文件系统的根目录开始描述文件或目录的路径。在Linux中,根目录用斜杠 /
表示,而在Windows中,每个驱动器都有自己的根目录,例如 C:\
。绝对路径可以唯一地标识文件系统中的某个位置,不受当前工作目录的影响。
/home/user/documents/file.txt
- 相对路径
相对路径是相对于当前工作目录或其他已知位置的路径。相对路径不包含根目录信息,而是描述如何从当前位置导航到目标文件或目录。在相对路径中,使用 .
表示当前目录,使用 ..
表示上级目录。
../images/picture.jpg
这个示例中,..
表示上级目录,因此路径指向当前目录的上一级目录下的 images
目录中的 picture.jpg
文件
- 文件路径和目录路径
路径可以是文件路径或目录路径,具体取决于路径的最后一部分是指向文件还是目录。
- 分隔符
在Linux中,路径分隔符是正斜杠 /
,而在Windows中,路径分隔符是反斜杠 \
。大多数现代操作系统和文件系统能够接受使用正斜杠或反斜杠表示的路径。
- 绝对路径 vs. 相对路径
- 绝对路径:
- 完整指定文件或目录的位置,不依赖于当前工作目录。
- 在不同系统上通常具有更好的可移植性。
- 更适合用于脚本和程序中,确保稳定性。
- 相对路径:
- 相对于当前工作目录或其他已知位置,更简洁。
- 在文件移动或项目结构变化时可能更易维护。
- 相对路径可能会受到当前工作目录的变化而产生影响。
- 特殊目录表示法
.
表示当前目录。..
表示上级目录
3.3 cd
- 切换目录
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下(绝对和相对路径都行)
Linux的目录结构是一个多叉树
3.4 touch
- 创建文件或更新时间戳
语法:touch [选项] 文件
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
- -a 或 --time=atime 或 --time=access 或 --time=use:只更改文件的访问时间。
- -c 或 --no-create:不建立任何文档。
- -d:使用指定的日期时间,而非当前时间。
- -f:此参数将忽略不予处理,仅负责解决BSD版本
touch
指令的兼容性问题。- -m 或 --time=mtime 或 --time=modify:只更改文件的修改时间。
- -r:把指定文档或目录的日期时间,设成和参考文档或目录的日期时间相同。
- -t:使用指定的日期时间,而非当前时间
3.5mkdir
- 创建新目录
语法:mkdir [选项] dir_name
功能:在当前目录下创建一个名为 dir_name
的目录
- -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
-
创建单个目录:
mkdir new_directory
-
创建多个目录:
mkdir dir1 dir2 dir3
-
递归创建目录及其父目录:
mkdir -p parent_directory/child_directory
3.6rm
- 删除文件或目录
语法:rm [选项] [dir_name/dir]
功能:删除文件或目录
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件(
r
代表递归)
示例:
-
删除单个文件:
rm file.txt
-
删除多个文件:
rm file1.txt file2.txt
-
递归删除目录及其内容:
rm -r directory
-
强制删除,不提示:
rm -f file.txt
3.7man
- 显示命令手册页面
语法: man [选项] 命令
功能:Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助
-k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
3.7.1手册介绍
Unix/Linux 系统手册页的八个主要部分的简要说明:
- 第一章(1):普通命令
- 包含了系统中可供一般用户使用的常规命令的手册页。这包括各种常见的命令,如
ls
、cp
、mv
等。
- 第二章(2):系统调用
- 包含了系统调用的手册页,系统调用是应用程序与操作系统内核之间的接口。这些手册页通常提供有关如何使用系统调用以及调用所需的头文件信息。
- 第三章(3):库函数
- 包含了 C 库函数的手册页,这些函数由标准 C 库提供。这包括如
printf
、scanf
、malloc
等函数的详细信息。
- 第四章(4):特殊文件
- 包含有关特殊文件(通常在
/dev
目录下)的手册页。这些文件代表设备,手册页描述了如何与这些设备文件进行交互。
- 第五章(5):文件格式
- 包含有关文件格式的手册页。这包括配置文件、数据文件等,如
/etc/passwd
,其中说明了文件中各字段的含义。
- 第六章(6):游戏
- 预留给游戏使用,包含了与游戏相关的手册页。
- 第七章(7):附录和杂项
- 包含一些附加信息,如全局变量的说明,以及一些其他杂项。
- 第八章(8):系统管理命令
- 包含了仅供系统管理员(root 用户)使用的系统管理命令的手册页。这包括诸如
ifconfig
、mount
、shutdown
等命令的详细信息。每个章节都包含了对应类型的手册页,通过
man
命令可以方便地访问和阅读这些手册页,以获取有关命令、函数、文件和系统的详细信息
3.8cp
- 复制文件或目录
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
-
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,
则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存
在的目录,则会出现错误信息
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
- 我们还可以进行重命名
3.8.1nano介绍
nano
- 文本编辑器
用法:nano [选项] 文件名
常用选项:
- -c,–const:禁用控制键位。
- -r,–restricted:限制访问,避免执行危险操作。
- -w,–nowrap:禁用自动换行。
基本操作:
- Ctrl + O:保存文件。
- Ctrl + X:退出编辑器。
- Ctrl + G:获取帮助。
示例:
-
打开或创建文件进行编辑:
nano filename.txt
-
保存文件并退出:
- 按
Ctrl + O
,然后按Enter
保存文件。 - 按
Ctrl + X
退出编辑器。
- 按
nano
是一个简单易用的文本编辑器,适用于终端环境。它提供了基本的编辑功能,适合快速查看和编辑文本文件
3.9mv
- 移动或重命名文件或目录
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
-
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
-
当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
-
当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
- 移动
- 改名
这次Linux就先到这里啦,也是开始学Linux啦,关心大家支持!!!
相关文章:

探索Linux世界:初次接触和基本指令(文件操作)
文章目录 1.基本介绍和准备2.基本指令和Linux的基本操作3.几个重要基本指令3.1 ls - 列出文件和目录3.1.1文件的知识3.1.2 .和..文件 3.2pwd - 显示当前工作目录3.2.1路径知识 3.3 cd - 切换目录3.4 touch - 创建文件或更新时间戳3.5mkdir - 创建新目录3.6rm - 删除文件或目录3…...
递归函数(c++题解)
题目描述 对于一个递归函数w(a, b, c)。 如果a < 0 or b < 0 or c < 0就返回值1。 如果a > 20 or b > 20 or c > 20就返回W(20,20,20)。 如果a < b并且b < c 就返回w(a, b, c − 1) w(a, b − 1, c − 1) − w(a, b − 1, c), 其它别…...
Qt将Unicode转换成UTF8中文
解析字符串,并将里面的Unicode转换成中文 QString unicodeToUtf8(QString unicode) {QString result;for (int i 0; i < unicode.length(); i){QString flag unicode.mid(i,2); if (flag "\\u"){QString s1 unicode.mid(i 2, 4);result.append(s…...

HTTP 的 multipart 类型
上一篇文章讲到 http 的 MIME 类型 http MIME 类型 里有一个 multipart 多部分对象集合类型,这个类型 http 指南里有讲到:MIME 中的 multipart(多部分)电子邮件报文中包含多个报文,它们合在一起作为单一的复杂报文发送…...
【NR 定位】3GPP NR Positioning 5G定位标准解读(二)
目录 前言 2. UE定位方法的作用 3. 标准UE定位方法 3.1 引言 3.2 网络辅助的GNSS方法 3.3 OTDOA定位 3.4 增强小区ID方法 3.5 气压传感器定位 3.6 WLAN定位 3.7 蓝牙定位 3.8 TBS定位 3.9 运动传感器定位 3.10 NR增强小区ID方法 3.11 多RTT定位 3.12 DL-AoD定位…...

为何代理IP的稳定性不如有线IP?
代理IP与网线IP的稳定性之间存在差异的原因在于它们的工作机制和服务环境的不同。以下是代理IP不如网线IP稳定的一些主要原因: 1. 服务提供商的质量: - 动态分配:代理IP通常是动态分配的,这意味着每次请求或每隔一段时间ÿ…...

【c++】 string类的模拟实现
1.浅拷贝 浅拷贝:也称位拷贝,编译器只是将对象中的值拷贝过来。如果对象中管理资源,最后就会导致多个对象共享同一份资源,当一个对象销毁时就会将该资源释放掉,而此时另一些对象不知道该资源已经被释放,以…...

transformer--transformer模型构建和测试
前面几节进行了各种组件的学习和编码,本节将组件组成transformer,并对其进行测试 EncoderDecoder 编码器解码器构建 使用EnconderDecoder实现编码器-解码器结构 # 使用EncoderDeconder类实现编码器和解码器class EncoderDecoder(nn.Module):def __ini…...

从0到1全流程使用 segment-anything
从0到1全流程使用 segment-anything 一、安装 anaconda 一、下载 anaconda 二、以管理员身份运行安装 1、勾选 Just Me 2、统一安装路径(后续 python 等包也安装至此目录) 3、勾选 add to path 然后安装即可。 三、修改 Anaconda 默认路径及默认缓存路径 Anaconda 默认下…...

Window系统部署Splunk Enterprise并结合内网穿透实现远程访问本地服务
文章目录 前言1. 搭建Splunk Enterprise2. windows 安装 cpolar3. 创建Splunk Enterprise公网访问地址4. 远程访问Splunk Enterprise服务5. 固定远程地址 前言 本文主要介绍如何简单几步,结合cpolar内网穿透工具实现随时随地在任意浏览器,远程访问在本地…...

Windows服务器:通过nginx反向代理配置HTTPS、安装SSL证书
先看下效果: 原来的是 http,配置好后 https 也能用了,并且显示为安全链接。 首先需要 SSL证书 。 SSL 证书是跟域名绑定的,还有有效期。 windows 下双击可以查看相关信息。 下载的证书是分 Apache、IIS、Tomcat 和 Nginx 的。 我…...
LeetCode67 二进制求和
题目 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 示例 1:输入:a "11", b "1" 输出:"100" 示例 2:输入:a "1010", b "1011" 输出&…...
python | 列表,元组,字符串,集合,字典
列表: 可以容纳任意数目不同类型的元素(支持我们学过的任意数据类型)元素之间有先后顺序用中括号包裹,每个元素用逗号隔开 例如: students [林黛玉,薛宝钗,贾元春,贾探春,史湘云,妙玉,贾迎春,贾惜春,王熙凤,贾巧姐…...

稀疏图带负边的全源最短路Johnson算法
BellmanFord算法 Johnson算法解决的问题 带负权的稀疏图的全源最短路 算法流程 重新设置的每条边的权重都大于或等于0,跑完Djikstra后得到的全源最短路,记得要还原,即:f(u,v) d(u,v) - h[u] h[v] 例题...
oracle基础体系
一、 Oracle数据库服务器 数据库在各个行业都会有使用到;其实,我们平时无论是在与客户沟通或者交流中,所说的Oracle数据库是指Oracle数据库服务器(Oracle Server),它由Oracle实例(Oracle Instan…...
k8s运维问题整理
1.宕机或异常重启导致etcd启动失败 服务器非正常关机(意外掉电、强制拔电)后 etcd 数据损坏。 查看apiserver日志发现出现报错Error while dialing dial tcp 127.0.0.1:2379: connect: connection refused,2379是etcd的端口,那么a…...
设计模式(一)设计模式分类和六大设计原则
0.设计模式的分类 GoF提出的设计模式总共有23种,根据目的准则分类分为三大类: 创建型模式,共五种:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰模式…...

git的学习与使用(笔记最全)
什么是git Git是一种分布式版本控制系统,每个开发者都可以在自己的机器上拥有一个完整的仓库 特点 断网也可以工作:没网的情况下,不会影响工作。对于未提交到远程库的代码可以随时撤销。可以查看历史提交记录,以及文件内容的修改记…...

windows环境下Grafana+loki+promtail入门级部署日志系统,收集Springboot(Slf4j+logback)项目日志
🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏…...

学习python时一些笔记
1、winr 命令提示符的快捷键 输入cmd进入终端 2、在终端运行桌面上的python文件 cd desktop(桌面) cd是进入该文件夹的意思。 cd .. 回到上一级 运行python时一定要找到文件的所在地 输入python进入,exit()退出%s字符串占位符%d数字占位符%f浮点数占位符input输…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...