【Linux】深入解析:云服务器连接 XShell、Linux 目录结构和常用命令

article/2025/7/31 13:30:13

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


XShell


使用阿里云服务器连接 XShell


使用Xshell连接阿里云服务器(超详细截图版)-CSDN博客

连接成功后 xshell 页面:

image-20250528212923697


image-20250528220801266


清空页面内容,直接输入 clear 即可:

image-20250528213430256


关于 XShell 下的复制粘贴


  • 复制:Ctrl + Insert(有些同学的 Insert 需要配合 Fn 来按)
  • 粘贴:Shift + Insert
  • Ctrl + C / Ctrl + V 是不行的。
  • 可以重新设置快捷键:工具 => 选项 => 键盘和鼠标 => 编辑

认识 Linux 目录结构


Linux 是一个树形目录结构。

image-20250529110945044

几个特殊的目录:

  • / 称为根目录
  • . 称为当前目录
  • .. 称为当前目录的上级目录

绝对路径 vs 相对路径:

  • 形如:/usr/share/tomcat/logs/ 以根目录开头的,称为绝对路径。
  • 形如:./logs. 或者 .. 开头的,称为相对路径。

使用 Tab 键补全:
我们敲的所有 Linux 命令,都可以使用 Tab 键来尝试补全,加快效率。

使用 Ctrl + C 重新输入:
如果命令或者目录敲错了,可以 Ctrl + C 取消当前的命令。


Linux 常用命令


ls (查看当前文件内容)


语法:

  • ls [选项] [目录或文件]image-20250528214457431

功能:

  • 对于目录,该命令列出该目录下的所有子目录文件
  • 对于文件,将列出文件名以及其他信息

常用选项:

ls -a 列出目录下的所有文件,包括以 . 开头的隐藏文件。

image-20250528214431635


ll是一个简化的命令,等同于 ls -al

image-20250528221056854


ls -l 列出文件的详细信息。

image-20250528214707809


image-20250528215744260


-d 将目录像文件一样显示,而不是显示其下的文件。如:ls -d 指定目录

-k 以 k 字节的形式表示文件的大小。ls -alk 指定文件

-r 对目录反向排序。

-t 以时间排序。

-R 列出所有子目录下的文件。(递归)


pwd (查看当前文件路径)


功能:显示用户当前所在的目录。

举例:当前用户为 root,所以用户当前所在的目录/root

image-20250528220456190


mkdir (创建文件)


语法:mkdir [选项] dirname...

功能:在当前目录下创建一个名为 “dirname”的目录

举例:

image-20250528221554942


此时创建的 test1 目录,是 snap 的子目录:

image-20250528221705190

使用mkdir指令创建目录后,如何进入这个目录呢?我们可以使用cd指令进入该目录。


常用选项:

  • -p, --parents 可以是一个路径名称。
  • 此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录
# 递归建立多个目录
mkdir -p test/test1

image-20250529102915230


cd (进入指定文件)


功能:Linux 系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

语法:cd 目录名

功能:改变工作目录。将当前工作目录改变到指定的目录下。

举例:

image-20250528222338690


如果我们想回到上级目录 snap,就需要输入指令:

# 返回上级目录
cd ..

image-20250528223100327

上图演示的命令,从目录~ 进入子目录 ~/test1,再返回 ~/test1 的上级目录,~ 表示 /root

我们还可以再次使用pwd命令,查看当前工作目录完整路径

image-20250528224138206


我们创建多级目录:

image-20250529102915230


cd ..命令用于返回上级目录,而通过连续使用cd ../..cd ../../等类似的指令,可以一次性返回多级上级目录:

ls                      # 查看当前 /root 目录中的内容
snap  test  test1
cd test                 # 进入多级目录 /root/test
ls                      # 查看当前 /root/test 目录中的内容
test1
cd test1                # 进入目录 /root/test/test1
cd ../../               # 连续返回两次上级目录  /root

我们在 /root/test 目录下,再创建一个名字较长的文件目录:

image-20250529104623438

# 进入用户家目录
cd ~# 返回最近访问目录
cd -

tab (补全文件名)


在输入长路径时,容易输错文件名。可以输入文件名的首字母,然后按Tab键,系统会自动补全匹配的文件名。

image-20250529105026289


如果当前目录下有多个以相同首字母开头的文件或目录,就需要输入更多字符来进一步指定,再次按Tab键即可精确补全。

image-20250529110336323


touch (创建文件)


语法:touch [选项]... 文件...

功能:

  • touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

举例:

touch test.txt

image-20250529112104169


rm (删除文件)


语法:rm [-f-i-r-v] [dirName/dir]

功能:删除文件或目录

常用选项:

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

举例:

rm test.txt

image-20250529112357166


rm 还可以删除多级目录:

image-20250529113232789


# 创建多级目录
mkdir -p# 递归删除, 表示删除指定目录及其所有子目录和文件
rm -r# 强制删除, 表示不提示用户确认, 即使文件不存在也不会报错
rm -rf

image-20250529113637408


重要注意事项:

  • 千万不要运行 rm -rf /,尤其是在公司的生产服务器上。

  • 理解递归删除的过程:

    • 先手动创建如下目录结构:

      test
      ├── a
      │   ├── a1
      │   │   ├── 1.txt
      │   │   └── 2.txt
      │   └── a2
      ├── b
      │   ├── b1
      │   │   ├── 1.txt
      │   │   └── 2.txt
      │   └── b2
      └── c
      
    • 使用 rm -ri 命令删除 test,观察删除的顺序。


rz (上传文件)


执行 rz 之前,确保安装 lrzsz,通过以下命令安装 lrzsz 包:

sudo apt update
sudo apt install lrzsz   # 表示安装 rz  sz 这两个命令

此时,输入 rz -E

image-20250529120020072

注意,rzrz -E 的区别:

  1. rz
    • 默认情况下,如果目标目录中已经存在同名文件,rz 会覆盖原有文件。
  2. rz -E
    • 使用 -E 选项时,如果目标目录中已经存在同名文件,rz 不会覆盖原有文件,而是在新上传的文件名后加上 .0,再次上传则会加上 .

或者直接拖到文件到服务器:

image-20250529120959725


当通过拖动文件上传到服务器时,默认会使用rz -E,而不是rz

image-20250529121833431


因此,多次拖动同一个文件上传时,会生成该文件的副本,而不是覆盖原有文件:

image-20250529130440334


sz (下载文件)


在 Linux 服务器上安装lrzsz后,不仅可以使用rz上传文件,还可以使用sz将服务器上的文件下载到本地:

image-20250529130938531


mv (移动/重命名文件)


语法:mv [选项] 源文件或目录 目标文件或目录

功能:

如果 mv 命令中第二个参数类型的不同(是目标文件还是目标目录),mv 命令将文件重命名或将其移至一个新的目录中。

image-20250529124418233


如果目标路径不存在,mv会将源文件重命名为目标路径

image-20250529124551719


如果第二个参数是已存在的目录名时,mv命令可以接受多个源文件或目录作为参数,并将它们全部移动到目标目录中。

image-20250529125615420


常用选项:

  • -f 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i 若目标文件 (destination) 已经存在时,就会询问是否覆盖!

举例:

mv test1.txt test2.txt

cat (显示文件全部内容)


语法:cat [选项] [文件]

功能:查看目标文件的内容

常用选项:

  • -n 对输出的所有行编号

举例:

cat text.txt

image-20250529131238522


more (进度条显示文件内容)


more 是一个简单的分页查看工具,用于在终端中逐页显示文件内容。它适合查看大型文件,特别是当文件内容较多,无法一次性在屏幕上显示时。


主要功能:

  1. 逐页显示内容:

    • more 会逐页显示文件内容,每一页显示的内容取决于终端窗口的大小。
    • 当一页内容显示完毕后,用户需要按 Enter 键或 空格 键来查看下一页。
  2. 基本交互:

    • Enter 键:逐行向下滚动。
    • 空格 键:显示下一页。
    • q 键:退出 more,返回到命令行。

使用方法

more filename
  • filename:要查看的文件名。

less (滚轮显示文章内容)


less text.txt
  • text.txt:要查看的文件名;

在Linux中,less text.txt命令用于分页查看文件内容,特别是当文件内容较多,无法一次性在屏幕上显示时。

less是一个功能强大的文本查看工具,提供了比more更丰富的交互功能:

  1. 分页显示内容:

    • less会逐页显示文件内容,每一页显示的内容取决于终端窗口的大小。
    • 当一页内容显示完毕后,用户可以使用各种快捷键进行导航。
  2. 交互功能:

    • Enter键:逐行向下滚动。
    • 空格键:显示下一页。
    • b键:向上翻页。
    • /键:向下搜索指定的文本。
    • ?键:向上搜索指定的文本。
    • q键:退出less,返回到命令行。

head (显示文件前面的内容)


head 命令用于显示文章前面的行数,默认显示前十行:

 # 默认显示前十行
head test.txt     # 指定显示前二十行
head -20 test.txt

tail (显示文件后面的内容)


语法:tail [必要参数] [选择参数] [文件]

功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用于查看日志文件。

选项:

  • -f 循环读取
  • -n<行数> 显示行数

举例:

tail -10 test.txt

cp (复制文件或目录)


语法:cp [选项] 源文件或目录 目标文件或目录

功能:复制文件或目录

说明:

  • cp 指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。
  • 若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

常用选项:

  • -f--force 强行复制文件或目录,不论目的文件或目录是否已经存在
  • -i--interactive 覆盖文件之前先询问用户
  • -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
  • -R--recursive 递归处理,将指定目录下的文件及子目录一并处理

举例:

cp test1.txt test2.txt

vim (编辑文件)


vim 是一个知名的文本编辑器。使用 vim 可以进行文本编辑。vim 就相当于 Windows 的记事本,只不过功能比记事本强大一些。


(1) 创建文件 / 打开文件


vim [文件名]

image-20250529135822844

回车后,进入编辑页面;


(2) 进入插入模式


vim 打开文件后默认是普通模式,需要进入插入模式才能进行文本编辑。

普通模式下键盘的按键表示一些特殊功能的快捷键,例如按下 j 并不是输入字母 “j”,而是表示光标往下移动一行

使用 i 键可以进入插入模式(左下角提示 --INSERT--),然后就可以像记事本一样正常编辑了:

image-20250529140722939


(3) 保存


插入模式下不能保存文件,需要先回到普通模式。

  1. 按下 Esc 回到普通模式。
  2. 在普通模式下输入 :w,再按下回车,即可保存文件。
# 回到普通模式保存文件
:w

(4) 退出


在插入模式下不能退出,需要先回到普通模式。

退出时,分以下情况:

# 1. 文件未修改:输入 :q,再按下回车,即可退出。
:q# 2. 文件修改并保存:使用 :wq 同时执行保存和退出。
:wq# 3. 文件修改,但不希望保存:使用 :q! 进行强制退出。
:q!

grep (查找文件指定字符串)


语法:grep [参数]... [文件]...

功能:用于查找文件中是否包含指定字符串,并显示对应的行。

选项:

  • -n<行数> 显示的行数
  • -w 全字匹配。要求整个单词都完全相同的结果才能匹配出来,而不仅仅是单词的一部分。
  • -r 递归查找。可以搜索多级目录下的所有文件。
  • --color 高亮查找到的结果
  • --include 指定查找某些文件
  • --exclude 指定排除某些文件

举例:

grep "hello" Hello.java

ps (查看系统运行进程)


语法:ps [参数]...

功能:用于查看当前系统上运行的进程。

选项:

  • a 显示一个终端的所有进程
  • u 以用户为主的格式来显示程序状况
  • x 显示所有程序,不止是会话中的进程
  • e 显示所有进程,包括系统守护进程
  • f 显示完整格式输出

举例:

ps aux # 显示系统上所有的进程
ps aux | grep "进程名"
ps aux | grep "进程id"
# | 表示管道, 将 ps aux 的输出结果, 作为 grep 命令的输入

netstat (查看系统网络状态)


语法:netstat [参数]...

功能:查看系统上的网络状态。

选项:

  • -a 显示所有正在或不在侦听的套接字
  • -n 显示数字形式地址,而不是去解析主机、端口或用户名
  • -p 显示套接字所属进程的 PID名称

举例:

netstat -anp
netstat -anp | grep "进程名"
netstat -anp | grep "端口号"

管道


管道是一种古老的“进程间通信”方式。在 Linux 指令中可以使用 | 作为管道标记。

意思是将前一个指令标准输出的内容,作为第二个指令的标准输入内容。

举例:

ps -ef | grep "java"
ps -ef | head -10
tail -f log.txt | grep "Exception"

apt(管理软件包)


apt(Advanced Packaging Tool)是 Linux 软件包管理工具,用于在 Ubuntu、Debian 和相关 Linux 发行版上安装、更新、删除和管理 deb 软件包。

大多数 apt 命令必须以具有 sudo 权限的用户身份运行。


apt 常用命令


列出所有软件包

apt list

这个命令输出所有包的列表,内容比较多,可以使用 grep 命令过滤输出。

apt list | grep "java"

更新软件包数据库

sudo apt-get update

apt 是基于可用软件包数据库进行操作的。

如果该数据库未更新,系统将无法知晓是否有新的软件包版本可用。因此,在安装任何 Linux 系统后,首要任务是更新 apt 数据库。更新 apt 数据库的命令是:

sudo apt update

执行更新命令时,你会看到系统从各个服务器检索软件包信息的过程。如果已切换到 root 用户,执行命令时则无需再加 sudo


su 切换到 root 用户

sudo su

使用该命令可以切换到系统管理员(root)用户,执行需要管理员权限的操作。


apt install 安装软件包

sudo apt install package_name

使用该命令可以安装指定的软件包。package_name 是要安装的软件包名称。


apt remove 移除软件包

sudo apt remove package_name

该命令用于卸载指定的软件包。remove 命令会卸载软件包,但可能会保留其配置文件。

如果需要同时删除软件包及其所有配置文件,应使用以下命令:

sudo apt purge package_name

purge 命令不仅会卸载软件包,还会删除其所有配置文件,从而彻底清除该软件包的所有痕迹。


apt remove 和 apt purge 的区别


  • apt remove 删除包的二进制文件,它留下了残留的配置文件。
  • apt purge 删除与包相关的所有内容,包括配置文件。
  • 如果弄乱了程序的配置,希望从系统中完全清除它的痕迹再重新开始,可以使用 apt purge
  • 通常使用 apt remove 就足够了。

总结


  • sudo apt install package_name:安装软件包。
  • sudo apt remove package_name:卸载软件包,但保留配置文件。
  • sudo apt purge package_name:卸载软件包并删除所有配置文件。

通过上述命令,可以灵活地管理 Linux 系统中的软件包,确保系统环境的整洁和稳定。


nohup (后台运行指定程序)


nohup:后台运行程序。用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

语法格式:

nohup Command [Arg …] [&]

参数说明:

  • Command:要执行的命令。
  • Arg:一些参数,可以指定输出文件。
  • &:让命令在后台执行,终端退出后命令仍旧执行。

示例:

nohup java -jar blog.jar >/logs &

Linux 可以通过 > 把需要输出的内容写到指定文件中。这样的操作称为“重定向”


在这里插入图片描述

在这里插入图片描述


http://www.hkcw.cn/article/rcVwXDkaZC.shtml

相关文章

掌握Java Runtime类的核心用法

Runtime 类的基本概念 Java 的 Runtime 类位于 java.lang 包中&#xff0c;用于与 Java 运行时环境&#xff08;JVM&#xff09;交互。每个 Java 应用程序都有一个 Runtime 实例&#xff0c;可以通过静态方法 Runtime.getRuntime() 获取。Runtime 类提供了与系统资源交互、执行…

如何设计自动化测试框架?

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 关于测试框架的好处&#xff0c;比如快速回归提高测试效率&#xff0c;提高测试覆盖率等这里就不讨论了。这里主要讨论自动化框架包含哪些内容&#xff0c;以及如…

历年西安交通大学计算机保研上机真题

2025西安交通大学计算机保研上机真题 2024西安交通大学计算机保研上机真题 2023西安交通大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school 计算圆周率近似值 题目描述 根据公式 π / 4 1 − 1 / 3 1 / 5 − 1 / 7 … \pi / 4 1 - 1/3 1/5 - …

历年武汉大学计算机保研上机真题

2025武汉大学计算机保研上机真题 2024武汉大学计算机保研上机真题 2023武汉大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school 分段函数计算 题目描述 写程序计算如下分段函数&#xff1a; 当 x > 0 x > 0 x>0 时&#xff0c; f ( x ) …

LearnOpenGL-笔记-其十

今天我们要进入高级光照的环节了&#xff1a; Advanced Lighting 之前的学习中&#xff0c;我们的光照模型采用的是比较简单的phong光照模型&#xff0c;也就是光照强度由环境光加上漫反射光加上镜面反射组成。 用一张图足以解释&#xff1a; 就这么简单&#xff0c;针对夹…

大话软工笔记—分离原理

1. 基本概念 1.1 定义 分离原理&#xff0c;将研究对象中符合相同设计方法的同类项进行分离、归集。 1.2 作用 分离原理的主要作用是&#xff1a; &#xff08;1&#xff09;降低了需求分析与软件设计的复杂程度。 &#xff08;2&#xff09;提出了对企业构成内容按照设计…

扫地机器人苦寻新引擎,大疆们却已攻入腹地

原创 科技新知 前沿科技组 作者丨江篱 编辑丨樱木、九黎 竞争激烈的扫地机器人赛道&#xff0c;迎来了新玩家。 据近日相关报道&#xff0c;大疆扫地机器人产品已开始量产&#xff0c;预计将于6月份发布。消息称大疆研发扫地机器人已超过四年&#xff0c;即将上市的产品是扫…

【Docker管理工具】部署Docker管理面板DweebUI

【Docker管理工具】部署Docker管理面板DweebUI 一、DweebUI介绍1.1 DweebUI 简介1.2 主要特点1.3 使用场景 二、本次实践规划2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载DweebUI镜像五、…

《系统集成项目管理工程师(第三版)》高效学习方法

文章目录 一、学习周期规划(总时长:3-4个月)二、每日学习时间分配表三、重难点突破策略1. 五星必考重点(占分60%+)2. 高频易错点四、高效记忆法(附实例)1. 口诀记忆法2. 联想记忆法3. 对比记忆法五、阶段目标检测六、十大管理高频整理一、十大管理ITTO高频考点表🔥 必…

新松机械臂 2001端口服务的客户端例程

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

HarmonyOS-ArkUI固定样式弹窗(1)

固定样式弹窗指的就是ArkUI中为我们提供的一些具备界面模板性质的弹窗。样式是固定的,我们可以决定在这些模板里输入什么样的内容。常见的有,警告弹窗, 列表选择弹窗, 选择器弹窗,对话框,操作菜单。 下图是本文中要讲到的基类固定样式弹窗,其中选择器弹窗没有包含在内,…

Dify运行本地和在线模型

1、运行本地模型 1.1、下载Ollama 官网下载&#xff1a;Ollama 1.2、安装LLM大模型 Ollama官网搜索模型&#xff0c;复制命令&#xff1a; 在终端中粘贴下载&#xff0c;下载完成后可以输入对话&#xff0c;表示安装成功。 使用命令&#xff1a;ollama list 可以列出已经安装…

manus对比ChatGPT-Deep reaserch进行研究类论文数据分析!谁更胜一筹?

目录 没有账号&#xff0c;只能挑选一个案例 1、manus的效果 Step-1&#xff1a;直接看结果 Step-2&#xff1a;看看其他文件的细节 Step-3&#xff1a;看最终报告 2、Deep reaserch 3、Deep reaserch进行行业分析 总结一下&#xff1a; 大家好这里是学术Anan&#xff…

2025年大一ACM训练-尺取

2025年大一ACM训练-尺取 ​​尺取法&#xff08;Sliding Window&#xff09;&#xff1a; ​​1. 基本概念​​   尺取法&#xff08;又称滑动窗口法&#xff09;是一种​​通过维护窗口的左右边界来高效解决子区间问题​​的算法技巧&#xff0c;常用于&#xff1a;   1…

第十二章 MQTT会话

系列文章目录 第一章 总体概述 第二章 在实体机上安装ubuntu 第三章 Windows远程连接ubuntu 第四章 使用Docker安装和运行EMQX 第五章 Docker卸载EMQX 第六章 EMQX客户端MQTTX Desktop的安装与使用 第七章 EMQX客户端MQTTX CLI的安装与使用 第八章 Wireshark工具的安装与使用 …

【C++】C++入门基础

本文是小编巩固自身而作&#xff0c;如有错误&#xff0c;欢迎指出&#xff01; 1.C的第一个程序 C兼容C语⾔绝⼤多数的语法&#xff0c;所以C语⾔实现的hello world依旧可以运⾏&#xff0c;C中需要把定义⽂件 代码后缀改为.cpp&#xff0c;vs编译器看到是.cpp就会调⽤C编译…

iEKF的二维应用实例

如果熟悉 EKF 与卡尔曼的推导的话&#xff0c;iEKF 就比较容易理解&#xff0c;关于卡尔曼滤波的推导以及EKF&#xff0c;可以参考以前的文章&#xff1a; 卡尔曼滤波原理&#xff1a;https://blog.csdn.net/a_xiaoning/article/details/130564473?spm1001.2014.3001.5502 E…

[IMX] 10.串行外围设备接口 - SPI

代码链接&#xff1a;GitHub - maoxiaoxian/imx 参考资料&#xff1a; https://zhuanlan.zhihu.com/p/290620901 SPI协议详解 - bujidao1128 - 博客园 SPI总线协议及SPI时序图详解 - Ady Lee - 博客园 目录 1.SPI 简介 2.I.MX6U ECSPI 简介 2.1.控制寄存器 1 - ECSPIx_CO…

评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡

评论功能开发全解析&#xff1a;从数据库设计到多语言实现-优雅草卓伊凡 一、评论功能的核心架构设计 评论功能看似简单&#xff0c;实则涉及复杂的业务逻辑和技术考量。一个完整的评论系统需要支持&#xff1a;内容评论、回复评论、评论点赞、评论排序、敏感词过滤等功能。 …

计算机视觉入门:OpenCV与YOLO目标检测

计算机视觉入门&#xff1a;OpenCV与YOLO目标检测 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 计算机视觉入门&#xff1a;OpenCV与YOLO目标检测摘要引言技术原理对比1. OpenCV&#xff1a;传统图像处理与机器学…