云计算Linux——基础操作命令(一)
前言
在当今的技术环境中,高效的工具选择对开发者和系统管理员至关重要。Linux作为一个强大的开源操作系统,以其稳定性、灵活性和丰富的命令行生态著称,尤其适用于服务器管理、开发环境搭建及自动化任务处理。与此同时,MobaXterm Personal作为一款面向Windows用户的增强型终端软件,集成了SSH客户端、X11服务器、网络工具链等功能,极大简化了远程服务器操作与图形化应用访问的流程。二者的结合,为跨平台协作提供了无缝衔接的解决方案,显著提升了开发与运维效率。本部分将简要概述其核心优势,为后续深入实践奠定基础。(以下操作命令截图来自MobaXterm Personal)
一、Linux 系统管理哲学与 Shell 核心机制
1. 图形化与命令行管理模式的对比
管理方式差异:Linux 系统主要依赖命令行进行管理,虽然部分发行版(如Ubuntu、CentOS)支持图形化界面,但在服务器运维中,命令行仍是核心工具。
操作习惯迁移:讲师强调需将Windows的操作习惯平移到Linux命令中,通过类比(如右击属性对应 `ls -l`)来降低学习曲线。
Linux通常来说,都是使用“命令”管理系统和应用程序,也有部分如上的支持图形化管理(相对来说的),所以个人认为我们需要把Windows中的操作习惯平移到Linux命令中更好掌握学习。
2.Shell 翻译官的角色与类型
核心功能定义:Shell是运行在系统中的特殊程序,充当用户与内核之间的“翻译官”,负责将用户的自然语言指令(如 `ls`)转换为内核能识别的二进制指令。
交互与登录支持:Shell 不仅支持命令交互,更是用户登录系统的必要支持程序,若 Shell 不支持,用户无法进入系统。(解释:1.让我们可以使用命令来和系统进行交互。 2.登录到系统中的这个行为也需要shell支持。)
多语言适配:针对不同开发语言(如 Java、Python、Go),系统需加载对应的 Shell 类型来解析特定的语法和规则。
3. Linux“一切皆文件”的哲学理念
资源抽象化:Linux 将所有资源(目录、文档、压缩包、磁盘等)统一抽象为文件,仅通过文件属性来区分其类型和用途。
视觉化区分:系统通过颜色编码直观区分文件类型,如白色代表普通文件,蓝色代表目录,红色代表压缩包,绿色可执行文件,其他颜色代表(浅蓝色)链接文件(类似 Windows快捷方式)。
二、Linux命令的分类、格式及使用方法
2.1 Linux命令行的格式
1 | 命令字 [选项][参数] #英文字符区分大小写三要素构成:命令行由“命令字(基本功能)”、“选项(额外功能)”和“参数(操作对象)”三部分组成,三者之间必须用空格分隔。
命令字:表示我们要执行的基本功能 (如:ls)
- 是整条命令中最关键的一部分
- 唯一确定一条命令
选项:额外的功能
- 短格式选项:使用“-”符号引导
- 长格式选项:使用“–”符号引导 (有时候java -v 有时候升级了或者换了其他应用程序 java --version才可以 总之灵活使用不要死板)
- 多个单字符选项可以组合在一起使用,例’ls -lh’
参数:我们命令执行时操作的对象
- 命令字的处理对象
- 可以是文件名、目录(路径)名或用户名等内容
- 个数可以是零到多个
如果执行命令是没有加任何参数,有2种情况:
① 这个命令本身就不需要参数。② 参数默认指当前的位置。
2.2 linux命令的分类
Linux命令分为内部命令和外部命令。
其实简单来说内部命令:系统自带的。 外部命令:额外安装的。
三、Linux常用命令
3.1 Linux命令行的辅助操作
Tab 键自动补全:输入部分路径或文件名后按 Tab 键可自动补全,若存在多个匹配项,双击 Tab 可列出所有候选。
反斜杠换行:使用反斜杠 `\` 可将长命令换行显示,便于编写脚本或文档时的格式规范。
清屏与取消命令:`clear` 或 `Ctrl+L` 用于清屏,`Ctrl+C` 用于强制终止当前正在执行的命令。
3.2 命令帮助help和man
内置帮助系统:使用 `--help` 或 `man` 命令查看命令用法,其中 `man` 手册内容详尽但多为英文。
外部资源推荐:推荐使用“菜鸟教程”,Linux命令大全官网等中文网站或程序官网(需借助翻译工具)作为辅助学习资源。
现在都可以在网站上看纯中文的为什么要看这些英文的,所以以上两个命令其实用的比较少了。
3.3 查看当前工作目录:pwd
这个命令以后学习脚本时候是很有用的。在不确定目前的工作目录时,可以经常使用pwd命令确认一下当前所在目录。尤其删除时rm -rf 时很有用的。
3.4 切换工作目录:cd
路径切换(cd):`cd` 命令用于切换目录。`cd ~` 或 `cd` 可直接返回用户家目录;`cd -` 可快速返回上一次所在的目录。
cd想当于windows中双击进入文件夹操作。
绝对路径:从跟目录开始写的路径 其他都是相对路径先这样理解
./ 等于当前目录 ../回上级目录 都是相对路径
补充一点:命令行提示符解读和家目录概念
权限标识符:提示符末尾的`#`代表当前用户为root(最高权限),`$`代表当前用户为普通用户。
家目录作用:Linux 中每个用户都有一个专属的家目录(如 `/home/username` 或 root 的 `/root`),用于存放个人数据。
路径书写规范:若目标目录不在当前目录下,必须使用绝对路径或包含上级目录的相对路径(如 `cd /user/local`),否则无法进入。
3.5 列表显示目录内容ls(常用选项、可结合通配符)
基础查看(ls):不加参数时,默认显示当前目录下的非隐藏文件和目录列表。
1 |ls [选项] [文件或目录… ]3.5.1详细信息查看(ls -l)
使用 `-l` 参数以长格式显示文件详情,包括权限、所有者、大小等。
或者缩写成ll 类似别名
补充 alias 命令别名 = 命令虽然别名便于操作,但在实际生产环境中通常不建议随意设置,以避免环境依赖问题。
注意: 在定义别名时,等号两边不能有空格,否则shell不能决定您需要做什么。仅在命令中包含空格或特殊字符时才需要引号
3.5.2隐藏文件查看(ls -a)
使用 `-a` 参数显示所有文件,包括以点(.)开头的隐藏文件。
\
3.5.3递归显示目录结构(ls -R)
ls -R`命令用于递归显示指定目录及其所有子目录下的文件列表,适用于需要查看完整目录树的场景。
3.5.4人性化单位显示
(ls -h)ls -lh 命令中的 `-h` 参数代表“友好显示”(Human-readable),会自动将文件大小转换为带单位(如 K、M、G)的格式,便于用户直观理解。
其他几个不经常使用,暂不展示。
补充:通配符系统自带模糊匹配的
单字符匹配(?):问号(?)用于匹配文件名中任意一个未知字符,必须存在且仅匹配一个字符。
多字符匹配(*):星号(*)用于匹配文件名中零个、一个或多个任意字符,常用于模糊查找或批量操作。
3.6 统计目录及文件空间占用情况du
1 | du [选项] [文件或目录… ]详细空间占用分析:du命令专用于统计目录或文件的磁盘占用情况,
3.61 du -ah
du -ah可递归显示所有文件和目录(含隐藏文件)的大小。
3.62 du -sh
du -sh仅显示指定目录的总占用空间,不展开子目录详情,适用于快速获取目录大小。
3.7 创建新目录mkdir
1 | mkdir [选项] 目录位置及名称(绝对路径、相对路径) 2 | -p:递归创建,创建一个已有的目录会报错,加-p则不会报错/当父目录不存在时递归创建目录:mkdir-p命令支持递归创建多级目录(如 a/b/c),若不加-p`选项,系统会因父目录不存在而报错。
补充:通配符的使用
3.8 创建空文件touch
1 | touch 文件…批量文件创建:`touch` 命令可同时创建多个文件,支持通过空格分隔参数实现批量操作。
①文件存在:修改文件或者目录的时间属性,包括存取时间和更改时间。
②文件不存在:创建新文件。
3.9 创建链接文件ln(软链接、硬链接)
符号链接定义:Linux 中的软链接(Symbolic Link)类似于 Windows 的快捷方式,指向源文件或目录的路径。硬链接暂时不说应有后续知识作为基础才可以兜底。
创建命令语法:使用ln -s源文件 链接文件` 创建软链接,建议使用绝对路径以确保链接有效性。
1 | ln -s 源文件或目录… 链接文件或目标位置 #创建软链接,相当于创建一个快捷方式 2 | ln #创建硬链接,相当于复制了一份副本(暂不解释)快捷方式的逻辑
3.10 复制文件或目录cp
1 | cp [选项] 源文件或目录/目标文件或目录基础复制与重命名:cp命令支持直接复制文件,若目标位置指定新文件名,则兼具重命名功能。
3.10.1 目录递归复制cp -r
复制目录时必须添加`-r`选项,否则系统会提示“略过目录”,导致复制失败。
3.10.2 覆盖策略cp -f
默认情况下,若目标位置存在同名文件,系统会进行交互式询问;使用`-f`选项可强制覆盖,但需注意某些版本下该选项可能不生效。
但是因为版本没有成功截图,所以执行cp -f 也要确定版本。
其他几个命令不常用,暂不截图。
3.11 移动文件或目录/改名mv
mv:相当于windows的剪切功能。
1 | mv [文件名] [目录名] 2 | mv [文件名] [文件名] 4 | -i:若指定目录已有同名文件,则先询问是否覆盖旧文件 5 | -f:在 mv 操作要覆盖某已有的目标文件时不给任何指示 6 | 当在同一目录下用mv就是改名,如果是跨目录使用mv的话就是移动,相当于剪切的操作剪切:先复制源文件,当粘贴后,源文件会删除。
重命名:如果mv操作的源文件和 粘贴的位置相同,它的功能会变成重命名
mv中基本用不到选项,故暂不描述。
3.12 删除文件或目录rm (高危命令)
1 | rm [选项] 要删除的文件或目录高危操作警告:rm命令极其危险,尤其是 `rm -rf`(递归强制删除),误操作可能导致系统崩溃或数据丢失。工作中使用非常危险,请注意!
系统保护机制:虽然 root 是最高权限用户,但 Linux 内核会对涉及系统核心生存的文件进行保护,阻止 root 误删关键目录(如根目录 `/`),导致命令丢失或系统不可用。(root只是用户最高权限,后面还有幕后boss更高权限不会让你删除核心。)
防护措施:强烈建议在实验环境中使用快照(Snapshot)功能,以便在误操作后快速还原系统状态。
3.13 查找命令/文件存放目录which
1 | which 命令|程序名命令查找与别名路径查询:`which` 命令用于查找命令文件的存放路径(如 `which ls`)。
别名机制:系统默认设置了别名(Alias),例如 `ls` 实际上是 `ls --color=auto`,用于自动显示颜色以区分文件类型。
3.14 echo 命令
1 | echo 文本内容 >> 指向位置 2 | echo 文本内容 > 指向位置echo基础功能是把键盘"输入"的内容,"输出"到终端屏幕中
我们可以配合2个特殊符号,来修改输出的方向/位置,并且修改输出的方式(追加/覆盖),写法如下:
echo "abc" 正常情况下会打印在屏幕终端中
echo "abc" >> index.html >> 表示修改输出方向,把内容"以追加的方式"写入到index.html的文件中
echo "abc" > index.html > 表示修改输出方向,把内容"以覆盖的方式"写入到index.html的文件中
>> :专业术语是 重定向追加
> :专业术语是 重定向覆盖
专业术语“重定向”: 把默认输出的方向进行修改
3.15 find
find匹配条件精确查看目录或文件的绝对路径(位置)
1 | find [查找范围] [查找条件表达式] 2 | #查找范围:查找文件或子目录的目录位置 3 | #查找条件表达式:查找条件类型3.15.1命令字: find /home -name "" -type "" -size 10M
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找。
如果不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
3.15.2 find工具补充
1 | -a 表示而且 (and) 两个条件必须同时满足 2 | -o 表示或者 (or) 只需满足其中任何一个条件即可3.15.3 find与exec结合
1 | find [路径] [匹配条件] -exec [命令] {} \; 2 | # 在当前目录下(包含子目录),删除所有txt文件 3 | find ./ -name "*.txt" -exec rm {} \;总结
1 | #目录操作 2 | pwd # 显示当前路径 3 | cd # 切换目录 4 | ls # 列出目录内容 5 | du # 查看磁盘使用情况 6 | 7 | # 文件管理 8 | mkdir # 创建目录 9 | touch # 创建文件 10| ln # 创建链接 11| cp # 复制文件 12| rm # 删除文件 13| mv # 移动/重命名文件 14| 15| # 查找功能 16| which # 查找命令路径 17| find # 搜索文件 18| # 系统控制 19|init 0 # 关机 20|init 6 # 重启 ———————————————— 版权声明:本文为CSDN博主「荣光波比」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_41978931/article/details/150071936