2. Linux 基本指令(上)|ls|pwd|cd|tree|touch|mkdir|rmdir|rm

前言

计算机软硬件体系结构
层状结构
应用软件Word,Matlab
操作系统Windows,Linux
设备驱动声卡驱动
硬件CPU,内存,磁盘,显示器,键盘
操作系统概念

操作系统
是一款进行软硬件资源管理的软件

例子

比如在学校里的各种设施,如机房、实验室、体育场、宿舍、食堂…,都叫做硬件
在学校宿舍楼里的楼管,就是对一栋楼的硬件资源做管理;机房有微机老师;大门有门卫大爷;图书馆有图书管理员…
每一种硬件都有特定的驱动来管理这个硬件

在这个基础上,学校层面也有各种各样其他的管理,比如学生什么时候上下课;什么时候放假;举办的各种活动…都需要有底层的软硬件来配合
操作系统就相当于学校里的一套领导班子

为什么要进行软硬件资源管理
把软硬件资源管理好,给上层的用户提供良好的稳定的运行服务——工具
承上启下

使用XShell远程登录Linux

安装XShell

家庭/学校免费 - NetSarang Website

我们购买的云服务器,是远端云服务器,其实际地点可能在北京等地
而自己的计算机是在其他地方

XShell:远程登录软件
其中的远程登录或者输入指令,所有行为都是通过网络来进行的

![[Pasted image 20240507163541.png]]

使用命令行登录

输入

ssh root@你的云服务器公网IP
将云服务器的信息添加到列表当中

![[Pasted image 20240507164017.png]]

点击新建
![[Pasted image 20240507164211.png]]

输入常规内容,其他的都不要动,点击确定
![[Pasted image 20240507164301.png]]

这样打开会话弹窗里面,就出现了对应的机器
这样以后登录的时候,点击它,就不需要再去命令行输入指令了
![[Pasted image 20240507164424.png]]

点击连接,首次需要输入用户名
在这里插入图片描述

点击确认
接下来输入密码登录就可以了

XShell里的复制粘贴
  • 复制:ctrl + insert
  • 粘贴:shift + insert
    ctrl + c / ctrl + v 是不行的
XShell常用功能
  • 全屏/返回全屏:alt+enter

  • 可以选择配色方案
    ![[Pasted image 20240507165801.png]]

  • 可以设置字体
    ![[Pasted image 20240507165820.png]]

Linux基本指令

指令操作的理解

现在的Linux是进行纯指令操作的
Windows也是支持指令操作的,Cmd

刚开始所有的计算机是没有鼠标的,输入输出的时候一定是先有的键盘。先有的指令,然后才有的图形化界面

指令操作和图形化界面操作是没有本质区别的,只有形式上的不同
图形化界面操作比指令操作更容易使用

各种商业发行版的Linux可能为了服务好自己的用户,有一些准程序员,所以慢慢有了图形化界面——Ubuntu

系统当中只要是指令操作,大部分的作用都可以在图形化界面中找到操作的原型

简单指令学习
  1. 知道当前登录的账号是谁
whoami

![[Pasted image 20240507171942.png]]

  1. 查看当前有哪些用户正在系统当中
who

![[Pasted image 20240507172046.png]]

  1. 显示当前所处的工作目录
pwd

![[Pasted image 20240507172436.png]]

  1. 显示当前目录下的文件信息
ls

ls -l

![[Pasted image 20240507172628.png]]

  1. 清屏
clear

![[Pasted image 20240507172841.png]]

01. ls指令

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。  
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录  
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件  
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件  
-l 列出文件的详细信息。  
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)  
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表  
示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)  
-r 对目录反向排序。  
-t 以时间排序。  
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)  
-R 列出所有子目录下的文件。(递归)  
-1 一行只输出一个文件。
1. ls

可以默认显示当前所指的目录下的所有的文件名属性
![[Pasted image 20240507194534.png]]

2. ls -l

l是list的意思,就相当于显示文件的属性列表
![[Pasted image 20240507194554.png]]

补充知识

如果在Windows上新建一个空文件,这个文件要占据磁盘/固态硬盘的存储空间吗
一定要占据磁盘空间

虽然文件本身没有内容,但是文件的名字,修改时间,类型,大小,各种属性。也是数据,需要被记录下来
文件 = 文件内容 + 文件属性
全都是二进制数据,都需要被存储

我们以前,现在,未来,学习的所有的文件操作,本质是:

  1. 对文件内容做操作
  2. 对文件属性做操作
3. ls -a/ls -l -a/ls -a -l/ls -la/ls -al

显示当前目录下的隐藏文件
![[Pasted image 20240507194641.png]]

Linux当中有
隐藏文件,在Linux中隐藏文件通常以.开头

4. ll

等价于ls -l
![[Pasted image 20240507194741.png]]

02. pwd命令

用来显示当前所处的工作目录
![[Pasted image 20240507194804.png]]

pwd

p - process
w - work
d - directory
表示当前对应的工作目录

03. cd命令

用来改变工作目录,将当前工作目录改变到指定的目录下
c - change
d - directory

cd .. : 返回上级目录  

![[Pasted image 20240507194855.png]]

Linux下的目录结构的认识

.称之为当前路径
..称之为上级路径

任何一个目录里都有...

![[Pasted image 20240507195125.png]]

证明.是当前路径
![[Pasted image 20240507195546.png]]

cd ..
回退到上级路径

![[Pasted image 20240507222551.png]]

cd后可以直接跟当前目录的文件夹
![[Pasted image 20240507222625.png]]

cd后面跟绝对路径/相对路径即可

根目录

cd ..回退最后只剩下一个/
再回退,就一直是/,因为根节点的parent指针指向它自己,所以回退的时候就直接指向自己

称之为Linux的根目录,也是一个目录,也是一个文件夹
在Windows中喜欢把文件夹叫做文件夹,在Linux中,喜欢把文件夹叫做目录
整个Linux系统中,最开始的一个目录就是只有一个根目录
![[Pasted image 20240507215744.png]]

根目录是目录,因为最开始以d开头,d就是directory,目录的意思
根目录里有更多的目录
![[Pasted image 20240507215936.png]]

整体目录结构

Linux的整体目录结构是一棵多叉树的样子
![[Pasted image 20240507220042.png]]

结论

  1. 整个多叉树的叶子节点一定对应的是普通文件,或者是空目录
  2. 路上节点,非叶子节点,一定是目录(不是叶子节点,目录里面一定有其他文件)
  3. 访问一个文件的本质,需要先找到它;找到文件的本质,就是在一棵多叉树中进行节点的查找
  4. 路径的本质就是这一棵多叉树的搜索路径
  5. 几乎所有的操作系统,文件夹或者目录结构都是树状的
路径
什么叫做路径

具有唯一性的,在多叉树结构当中,标识指定文件的用一串特殊符号分割的,由多个目录构成的一段对应的字符串,称之为路径

Linux下的路径分隔符:/
两个/之间的一定是一个目录或者是文件夹
目录的最后一个可能是一个文件或者是文件夹
Windows下的路径分隔符\

为什么要有分隔符

为了区分分隔符和分隔符之间是一个文件夹,可以通过一个文件夹进入另一个文件夹

为什么要有路径

路径的本质就是这一棵多叉树的搜索路径
任何一个目录(包括根目录),可以有多棵子目录或者子文件夹;但是任何一个节点,永远只有一个父节点
所以从根目录开始逆向地推回来的时候,这条路径具有唯一性

路径分类
cd /home/litao/linux/ : 绝对路径  
cd ../day02/ : 相对路径  

绝对路径
从根目录开始,定位一个叶子文件的方式,形成的路径:绝对路径
在Linux中,无论在哪里,都可以唯一定位一个文件,放在哪里都是有效的
一般在一些配置文件中常用
手写的时候一般用得比较少

相对路径
相对于自身当前所处的目录为参考点,定位一个文件的路径:相对路径
相对路径只能与自身当前所处的目录强相关,当前路径变了,相对路径也要变化
比较适合在命令行场景中使用,打的代码比较少

04. tree命令

如何证明Linux是树状结构

tree 跟当前要显示的目录

以树状结构将当前目录及其子目录给组织起来
![[Pasted image 20240507225811.png]]

安装tree命令

如果输入tree命令,显示command not found
表示当前命令没有被安装
可以使用以下命令进行安装

yum install -y tree

![[Pasted image 20240507230649.png]]

如果没有安装yum
输入

apt-get install tree

![[Pasted image 20240507230726.png]]

显示已经是最新版本

05. cd的其他操作

cd ~
cd -

![[Pasted image 20240507232647.png]]

cd -:跳转到最近一次所处的目录
可以在两个目录之间快速跳转

cd ~
![[Pasted image 20240507233333.png]]

当用户是root的时候,执行这条指令就会进入到/root的路径下
这条路径称为当前用户的家目录
/root就是超级用户root的家目录

在Linux中有两大类用户

  1. root
  2. XXX

在centos系统中
root的家目录:/root
普通用户的家目录:/home/XXX

家目录

windows中,其实有桌面概念,但是本质桌面也是文件夹
只不过当用户登录的时候,家目录里面有桌面的文件夹,windows把这个文件夹中的所有的文件或者文件夹,以图标的形式展示在显示器上,就有了桌面

在windows中下载东西的时候,默认下载的地方,就是当前用户账号下的下载的文件夹里

在Linux中,每一个用户都有自己的家目录
root的家目录,就是/root
普通用户的家目录就是/home/XXX

默认登录的时候,默认登陆所处的路径,就是当前登录用户的家目录
未来写的代码,创建的文件,建议统一放在自己的家目录下

06. touch命令

有两个作用

1. 创建普通文件
touch t1.txt
touch t2
touch t3
touch t4 t5 t6 t7 t8

![[Pasted image 20240508080507.png]]

d开头证明是一个目录
-开头证明是一个普通文件

2. 更改文件时间
-a 或--time=atime或--time=access或--time=use只更改存取时间。  
-c 或--no-create 不建立任何文档。  
-d 使用指定的日期时间,而非现在的时间。  
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。  
-m 或--time=mtime或--time=modify 只更改变动时间。  
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。  
-t 使用指定的日期时间,而非现在的时间。

如何获取文件的时间,更详细的属性列表

stat 文件名

![[Pasted image 20240508082828.png]]

07. mkdir命令

创建一个空目录
mkdir code

在当前目录下创建一个名为“code”的目录
![[Pasted image 20240508083409.png]]

创建了code目录
code默认情况下,是空的文件夹
![[Pasted image 20240508083523.png]]

创建一条路径
mkdir dira/dirb/dirc/dire

无法创建一整串路径
只能不断cd进去,进行操作

mkdir -p dira/dirb/dirc/dird

递归建立多个目录
这样可以创建一整条路径
![[Pasted image 20240508084012.png]]

08. rmdir/rm命令

删除空目录
rmdir 目录名

可以删除空目录

-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

如果目录非空,会报错
![[Pasted image 20240508085911.png]]

删除文件或目录
rm 目录名

![[Pasted image 20240508090148.png]]

同样报错

-f 即使文件属性为只读(即写保护),亦直接删除  
-i 删除前逐一询问确认  
-r 删除目录及其下所有文件
递归删除

树状结构在定义时,就是递归定义的
如果一个目录不为空,极有可能目录里面还有目录
要删除一棵树,一定是先深度优先遍历,到叶子节点,递归返回时,再一个个删除

rm -r 目录名

递归式删除
![[Pasted image 20240508090446.png]]

强制删除

期间可能会需要进行y/n的确认,如果不想交互

rm -rf 目录名

09. 代码细节

1. ls
ls dira

![[Pasted image 20240508084759.png]]

ls dira,可以直接ls+目录,默认显示的是目录里面的内容
也可以dira/,带不带/都可以,也可以带./
不过简写成ls dira

如果不想显示这个目录里面的内容,就想显示目录本身
![[Pasted image 20240508085055.png]]

-d,写什么就显示什么
-ld,会显示更详细的信息
不进入这个目录,只把这个目录本身的属性显示出来

2. 上下键

可以通过键盘的上下箭头的两个按键,快速翻阅历史命令,不用再敲

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/608292.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Join优化规则及应用层BI系统实践

目录 一、背景 二、查询优化器概述​编辑 2.1 System R Optimizer 2.2 Volcano Optimizer 2.3 Cascade Optimizer 三、Join相关优化规则 3.1 JoinReorder 3.1.1 少量表的Reorder 3.1.2 大量表的Reorder 3.1.3 星型模型的Reorder 3.2 外连接消除 3.3 Join消除 3.4 谓…

使用ROW_NUMBER()分组遇到的坑

1、再一次清洗数据时,需要过滤重复数据,使用了ROW_NUMBER() 来分组给每组数据排序号 在获取每组的第一行数据 with records as(select cc.F_Id as Id,REPLACE(cc.F_CNKITitle,char(10),1) as F_CNKITitle,REPLACE(REPLACE(cc.F_Special,专题&#xff1…

适合大学生的鸿蒙开发板-Purple Pi OH之安装Docker

一、介绍 本文基于purple-pi-oh系列主板演示Linux 系统安装Docker,方法适用于RK3566全系列产品。本教程将指导你在基于RK3566的LInux系统上安装Docker。Docker是一个开放源代码的应用容器引擎,允许开发者打包他们的应用及依赖包到一个可移植的容器中&am…

【银角大王——Django课程——分页显示功能实现】

分页显示功能实现 添加假数据,然后演示分页功能分页——功能实现基于之前的靓号列表函数添加代码只显示10条——按照等级排序页码list表样式——bootstrap样式显示当前页面——前五页,后五页给当前页添加样式页码bug更改——出现负数,没有数据…

【neteq】tgcall的调用、neteq的创建及接收侧ReceiveStatisticsImpl统计

G:\CDN\P2P-DEV\Libraries\tg_owt\src\call\call.cc基本是按照原生webrtc的来的:G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\group\GroupInstanceCustomImpl.cpptg对neteq的使用 worker 线程创建call Call的config需要neteqfactory Call::CreateAu…

MySQL——变量的浮点数问题处理

新建链接,自带world数据库,里面自带city表格。 DQL #MySQL变量的浮点数问题处理 set dx3.14,dy3.25; select dxdy;#计算显示异常,会有很多00000的提示set resultdxdy; select result; 查询结果

为何预测预测蛋白质结构这么重要AlphaFold 3;阿里巴巴的开源语音转文字;抱抱脸开源LeRobot

✨ 1: AlphaFold 3 谷歌DeepMind和同构实验室推出AlphaFold 3 AI模型,旨在精确预测生命分子的结构和相互作用。 AlphaFold 3 是由谷歌DeepMind和Isomorphic Labs开发的一款新型AI模型,它可以以前所未有的精确度预测蛋白质、DNA、RNA、配体(…

【VTKExamples::Rendering】第一期 TestAmbientSpheres(环境照明系数)

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例TestAmbientShperes,介绍环境照明系数对Actor颜色的影响,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动…

C++:重载、重写与重定义

一、重载、重写与重定义的概念 C中,重载、重写和重定义是三个与函数和类成员相关的概念,但它们具有不同的含义和用途。 重载:是指在同一作用域内,可以有多个名称相同但参数列表(参数类型、参数个数或参数顺序&#x…

PyCharm安装教程(超详细图文教程)

一、下载和安装 1.进入PyCharm官方下载,官网下载地址: https://www.jetbrains.com/pycharm/download/ 专业版安装插件放网盘了,网盘下载即可:itcxy.xyz/229.html2.安装 1.下载后找到PyCharm安装包,然后双击双击.ex…

网工内推 | 技术支持工程师,最高15k,加班有补贴

01 星网信通 招聘岗位:售前技术支持 职责描述: 1、售前技术支持:技术交流、产品选型报价、方案制作等工作; 2、招投标支持:项目招标参数撰写、标书质疑、应标文件技术部分撰写及资质文件归纳准备、现场讲标及技术澄清…

Linux学习笔记1---Windows上运行Linux

在正点原子的教程中学习linux需要安装虚拟机或者在电脑上安装一个Ubuntu系统,但个人觉得太麻烦了,现在linux之父加入了微软,因此在Windows上也可以运行linux 了。具体方法如下: 一、 在Windows上的设置 在window的搜索框内&#…

vivado 低级别 SVF JTAG 命令、多链 SVF 操作

多链 SVF 操作 以下示例显示了如何在 SVF 链上处理操作。 每个链中连接有 2 个器件 : xcku11 和 xcku9 。配置存储器连接到链中的第 2 个器件 (xcku9) 。为访问此配置存储器 , SVF 会使用 HIR 、 HDR 、 TIR 和 TDR 命令来生成命令。为刷写此…

自动驾驶学习2-毫米波雷达

1、简介 1.1 频段 毫米波波长短、频段宽,比较容易实现窄波束,雷达分辨率高,不易受干扰。波长介于1~10mm的电磁波,频率大致范围是30GHz~300GHz 毫米波雷达是测量被测物体相对距离、相对速度、方位的高精度传感器。 车载毫米波雷达主要有24GHz、60GHz、77GHz、79GHz四个频段。 …

【JavaWeb】Servlet+JSP+EL表达式+JSTL标签库+Filter过滤器+Listener监听器

需要提前准备了哪些技术,接下来的课才能听懂? JavaSE(Java语言的标准版,Java提供的最基本的类库) Java的开发环境搭建Java的基础语法Java的面向对象数组常用类异常集合多线程IO流反射机制注解Annotation… MySQL&…

守护数字疆域:2024年网络安全报告深度解读

在这个数据如潮涌动的数字时代,每一比特信息都可能是攻防双方角力的战场。《Check Point 2024年网络安全报告》不但为我们揭示了过去一年网络安全世界的风云变幻,更以前瞻性的视角勾勒出未来的挑战与机遇。此刻,让我们携手深潜这份权威指南的…

【智能算法】人工原生动物优化算法(APO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.获取代码 1.背景 2024年,X Wang受到自然界原生动物启发,提出了人工原生动物优化算法( Artificial Protozoa Optimizer, APO)。 2.算法原理 2.1算法思想 AP…

【比邻智选】MR880A模组

🚀高性价比,5G/4G双模,稳定可靠 🌐功能丰富,5G特性一应俱全 🧩多封装兼容,适配性强,灵活升级智能设备

【C语言】内存函数的概念,使用及模拟实现

Tiny Spark get dazzling some day. 目录 1. memcpy-- 函数原型-- 函数使用-- 函数的模拟实现 2.memmove-- 函数原型-- 函数使用-- 函数的模拟实现 3. memset-- 函数原型-- 函数使用-- 函数的模拟实现 4. memcmp-- 函数原型-- 函数使用-- 函数的模拟实现 1. memcpy 使用需包含…

【go项目01_学习记录07】

学习记录 1 创建博文1.1 在main.go中添加路由1.2 构建表单 2 读取表单数据2.1 完善articlesStoreHandler() 函数2.2 修改代码,查看区别 3 表单验证3.1 数据验证3.2 出错提示 1 创建博文 1.1 在main.go中添加路由 访问http://localhost:3000/articles/create 1.2 …