Linux 常用指令全解析:从基础操作到系统管理(1w字精简版)----《Hello Linux!》(2)

前言

在数字化时代,Linux 作为开源操作系统的典范,已深度融入服务器运维、云计算、嵌入式开发等核心领域。其开源、稳定、高效的特性,使其成为互联网企业后端架构的基石,也是技术从业者必备的核心技能之一。然而,对于初学者而言,Linux 的命令行交互、文件系统结构与权限管理体系往往显得抽象而复杂,入门门槛较高。

本教程基于 CentOS 7 系列系统(企业级最常用版本),从操作系统的基本概念讲起,逐步深入 Linux 文件系统、用户管理、常用命令、权限控制、打包压缩等核心知识点。内容编排遵循 “理论 + 实践” 的原则:每个知识点均配有具体操作示例(如ls -l查看文件详情、useradd创建用户、sudo权限提权等),并通过对比 Windows 系统的操作逻辑帮助读者建立直观理解。教程后半部分还涵盖了grep文本搜索、tar压缩解压、重定向等进阶操作,以及 CPU / 内存资源查看等运维常用命令,形成从基础到实战的完整知识链。

无论您是计算机相关专业学生、刚接触服务器的开发者,还是希望转型运维岗位的技术人员,本教程都将为您提供系统化的学习路径。通过跟随示例逐步实践,您将掌握 Linux 命令行的核心操作,理解开源系统的设计思想,并具备独立管理 CentOS 服务器的基本能力。让我们从命令行开始,开启高效、安全的 Linux 之旅。

引申

注意:在这里插入图片描述
在这里插入图片描述

下面这个才是Linux系统的

你锁定电脑页面了,会自动退出远程的服务器-回来时要注意还是不是Linux

OS的基本概念

OS中文叫做操作系统

操作系统是一款做软硬件管理的软件

一个好的操作系统的衡量指标:稳定,快,安全

为什么要有操作系统:为了对上(应用软件)提供良好的(稳定,快速,安全)的操作/使用环境

操作系统的核心工作:

通过对下管理好软硬件资源的手段,达到对上提供良好的操作/使用环境

在这里插入图片描述

我们所有的软件行为,全部都要自上而下贯穿计算机软硬件结构(上面那个图就是)

–几乎我们所有的软件行为都和操作系统直接或间接相关

我们在计算机上的所有行为都会转换成硬件行为

设备驱动的话就是催着硬件干事

命令行和图形化界面的话,命令行会更贴近操作系统(公司一般都是纯命令行的方式)

引申:Windows在Windows PowerShell里面也能用linux的指令

Linux里的文件

文件的属性是数据–所以创建文件,里面没有内容,也是要占空间的

文件 = 文件内容+文件属性

在这里插入图片描述

开头是d:表示是一个目录(Linux通常后面还拿蓝颜色标记)

开头是-:表示文件时一个普通文件

在Linux中,文件名开头是.的文件,是隐藏文件(比如上面的. .. .ssh)

在Linux任何目录下都有两个隐藏文件 ...

..:表示当前路径的上级路径

.:表示当前路径 其存在的意义:帮用户定位到当前目录

引申:~表示当前用户的家目录

Linux中的目录

Linux中/是路径分隔符(Windows是\),但是路径开头的那个/是根目录

比如:腾讯的网站的链接就是用的/,说明腾讯内部也是用的Linux

Linux里的目录其实就是Windows里面的文件夹

同一个目录下不能存在同名文件

Linux的一些常用小知识点

|是一种符号,在这个里面会生成临时文件(这里也叫管道文件)去进行过渡

也就是连接两个命令,将左侧命令的标准输出直接作为右侧命令的标准输入

用法eg:
cat text.txt | grep world
--> 这个cat命令的输出内容会输入到管道文件里,管道文件又被grep使用

Linux中*的作用:可以实现局部性匹配

比如:

*.c--表示所有后缀为.c的文件
text.*--表示所有前缀为text.的文件
eg: ls *.c表示列出当前目录下所有.c文件

Linux中按ctrl+c会显示在这里插入图片描述

如果是指令: ls -l ^c的话-这个指令作废
如果是程序:按了这个的话,程序会中止运行

ctrl+d有键盘输入结束的意思

Tab–按一下可以自动补全命令(空格甚至都给你打好)(唯一时) 按两下时显示所有可能的结果(不唯一时才有)

ctrl+r可以用历史命令补全

(补充:history可以看历史1000条输入过的指令)-Linux会记录最新的1000条指令

which 指令 可以查指令所在的路径

比如: which ls

在这里插入图片描述

alias可以创建指令的别名

alias 别名='命令 '(命令里面没有eg:空格啥的''可以不要)

alias la = 'ls -a'

但是重命名只是临时的,Xshell重启之后就没了

特例:Linux自身搞的别名:ll是ls -l的别名    这个是一直成立的

Linux下一切皆文件

Linux的基本指令

关于指令里的选项的话 :指令和选项之间要有空格 选项带-的之间也要有空格

空格的话,建议打一个就行了,多个也没错(Linux命令行要求的空格都是这个规则)

多个选项的写法(拿-a -l举例)

ls -a -l
ls -l -a
ls -al
ls -l -a
这些都是一样的

指令是在系统中特定的路径下存在的

指令的本质就是可执行程序,直接安装到了系统的某个路径下-跟我们自己写的代码编译好的程序没有本质区别

(把其他东西拷贝到那个路径下之后也能像指令一样用–但是不建议这么搞)

碰到不会的指令的话就上网搜eg:cetnors7如何安装nano

ls指令

语法: ls [选项][目录或文件] []表示选项 目录或文件都可有可无

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。(没有选项时)

引申:文件名和选项的位置一般是可以颠倒的,但是不推荐

常见选项:

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

(ls不加任何选项的话,也是列出目录下的所有文件,但不包含隐含文件)

-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 一行只输出一个文件。

其中-l -a -F -d特别常用

pwd指令

语法: pwd

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

在这里插入图片描述

没有常用选项

cd指令

语法:cd 目录名

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

常用写法:

cd .. : 返回上级目录

cd /text1/text2/ : 绝对路径(这里表示的是:进入text1,再进入里面的text2)

cd text1/: 相对路径(这里表示的是:在当前位置进入到text1)

cd ../text/ : 表示的是:返回上级目录,进入这个目录下的text

cd \~(跟cd一个效果):进入用户家目录

(家目录其实就是最初那一级eg:/root,普通用户的话是/home/.... 刚登陆就会在家目录这里)

cd -:返回最近访问目录

关于绝对路径和相对路径

定义一个文件,通常用路径来进行定位–因为路径有唯一性

为什么路径有唯一性:Linux的整个目录结构是一个多叉树,其的任何节点都只有一个父节点

引申:Linux的整个目录结构是一个多叉树,它的叶子节点一定是空目录或非目录文件

(空目录其实就相当于空的文件夹)       路上节点一定是非空目录

绝对路径:

从/开始定位到指定位置,具有唯一性的路径,叫做绝对路径

相对路径:

以当前所处的位置作为起始参考位置,来进行特定文件的定位,叫做相对路径

–自己位置发生了变化,相对路径可能就得改改了
应该用哪种:

一般常用相对路径 绝对路径一般在一些固定场景和配置文件时用

注意:路径直接写eg: text(那就是当前位置的目录的text–也就是相对路径)

引申:

eg: newdir假如是个目录
路径写成 ../newdir/和../newdir是一样的(前者更强调它是个目录而已)

touch指令

语法:touch [选项] 文件

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

常用选项:

-a 或–time=atime或–time=access或–time=use只更改存取时间。

-c 或–no-create 不建立任何文档。

-d 使用指定的日期时间,而非现在的时间。

-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m 或–time=mtime或–time=modify 只更改变动时间。

-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t 使用指定的日期时间,而非现在的时间。

mkdir指令

语法:mkdir [选项] name

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

常用选项:

-p, --parents 可以是一个路径名称(绝对相对都可以)。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录

在这里插入图片描述

rmdir指令和rm指令

rmdir指令

语法:rmdir [-p][目录名]

适用对象:具有当前目录操作权限的所有使用者

功能:删除空目录

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

rm指令

语法:rm [选项] 当前位置的子文件或子目录名 (删多个也行)

eg: rm text.i text.o

适用对象:所有使用者

功能:删除文件或目录

在这里插入图片描述

回答n就不删,y就删了

常用选项:

-f 即使文件属性为只读(即写保护),亦直接删除

-i 删除前逐一询问确认(超级用户没写这个也会问,普通用户则要写这个才会问)

-r 删除目录及其下所有文件

注意:Linux没有回收站,删了就是真删了

不要乱删东西(正在运行的删不了),删到操作系统就只能重装了

tree指令

安装tree(安装tree需要root账号进行操作)

在这里插入图片描述

yum  install -y tree

使用tree:可以以树形结构展示目录和文件的层级关系

eg:在这里插入图片描述

man指令

man 语法: man [选项] 命令

eg: man ls   就是查询ls怎么用

常用选项:

-k 根据关键字搜索联机帮助

-num 只在第num章节找

-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕

在这里插入图片描述

没有任何选项的话,那几章只会从上到下显示这个命令最先具有的那一章

echo指令和cat指令

echo就是输出 cat就是输入(或者说cat是读出,ehco是写入)

注意:echo输完,光标会自动换行 – printf则不会

在这里插入图片描述

eg:
echo "1"就是输出到屏幕上
echo "1">text.txt就是输出到text.txt里面
(这个>叫做输出重定向)
cat text.txt就是把text.txt的东西输入到屏幕上

引申:echo后面系统认为是字符串(跟C++要""区分)
比如: echo out.txt ->打印out.txt到屏幕上
关于这个>向目标文件写入时,是会清空文件本来内容再写的

cat的常用选项:(\n那种的才算空行 ,下面的" "那种的不算!)

-b 对非空输出行编号

-n 对输出的所有行编号

-s 不输出多行空行

在这里插入图片描述

cp指令

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

功能: 复制文件或目录

说明:源文件或目录必须要是存在的

常用选项:

-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在

-i 或 --interactive 覆盖文件之前先询问用户

-r递归处理,将指定目录下的文件与子目录一并处理(复制过去的东西名字跟原来是一样的)。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理

-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

对root账户的话,有些选项可能用了,但是不起作用--其他指令的选项也会这样

mv指令

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

功能:剪切和重命名(根据下面的来一起理解)

eg:
mv text.txt ..   这就是把text,txt剪切到上一级去
mv text.txt ../text2  如果text2是已经存在的目录,就是把text.txt搞到text2里面去
             如果text2是已经存在的普通文件,就是把text2整个替换成text.txt
                      不存在,就是把text.txt剪切到上一级,并且重命名成text2

more指令

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

功能:more命令,功能类似 cat(cat看小文件可以,大文件用more好些)

(more是一屏以屏显示,按空格会显示下一屏内容,回车键下翻一行–不能往上翻)

常用选项:

-n 对输出的所有行编号

q 退出more(ctrl+c退出不了)

/字符串:向下搜索“字符串”的功能

less指令

语法: less [选项] 文件

功能:可以上翻也可以下翻(相较于more)

常用选项:

-i 忽略搜索时的大小写

-N 显示每行的行号

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

q:退出less(ctrl+c退出不了)

head指令

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

功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

常用选项: -n 行数(或- 行数) 显示前 行数 行

tail指令

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

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

常用选项:

-f 循环读取

-n 行数(或- 行数) 显示后 行数 行

引申:想只获取中间的话可以eg:head -1020 out.txt | tail -21(这种操作叫管道)

就是要的前1020行的后21行

比如上面:out.txt中提取1020行其实需要生成文件才能提取后21行

引申:管道文件是内存级的,不存在磁盘里

一般的文件是存在磁盘里,需要访问时放在内存里,搞完再放回磁盘

date指令

date 用法:date [OPTION]… [+FORMAT]

常用选项:(之间可以穿插任何字符进去)

%H 小时 %M 分钟 %S 秒 %Y 年 %m 月 %d 日

在这里插入图片描述

当前时间转换成时间戳(时间戳是啥要知道)

date +%s

时间戳转换成时间

date -d@时间戳

在这里插入图片描述

cal指令

命令格式: cal [选项][月份][年份]

常用选项:

-3 显示系统前一个月,当前月,下一个月的月历

-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)

-y 显示当前年份的日历

find指令

find 起始目录 选项 [查找条件]

选项: -name

eg: find ~ -name *.c  

find which whereis的区别

which只能找指令,可以找到指令在哪

比如: which ls

whereis:在系统特定路径下找,可以找到可执行程序,手册,安装包,压缩包之类的东西的位置

eg: whereis string.h

find:找符合条件的有哪些

grep指令

语法: grep [选项] 搜寻字符串 文件

功能: 在文件中搜索字符串,将找到的行打印出来

eg: grep world text.txt

常用选项:

-i :忽略大小写的不同,所以大小写视为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行

bc指令

其实就是输入之后就变成计算器了

在这里插入图片描述

uname指令

uname -r输出Linux 内核版本号

uname -a输出所有信息->从左到右依次为:

内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

在这里插入图片描述

Linux  VM-4-3-centos  3.10.0-1160.119.1.el7.x86_64  #1 SMP Tue Jun 4 14:43:51 UTC 2024  x86_64  x86_64  x86_64  GNU/Linux
|      |               |                            |                                      |        |        |        |
|      |               |                            |                                      |        |        |        +-- 操作系统名称(GNU/Linux)
|      |               |                            |                                      |        |        +-- 硬件平台类型(x86_64)
|      |               |                            |                                      |        +-- 处理器类型(x86_64)
|      |               |                            |                                      +-- 硬件名(x86_64,这里和硬件平台类型复用)
|      |               |                            +-- 内核版本(带发行版信息的完整版本)
|      |               +-- 内核版本号(纯版本号:3.10.0-1160.119.1.el7.x86_64)
|      +-- 主机名(VM-4-3-centos)
+-- 内核名称(Linux)

引申: x86_64其实就是x64 x86其实就是32位的

引申: free [-k或-m或-g]可以查内存

df -h可以查磁盘

lscpu可以查cpu

shutdown指令(现实中用不到)

用来关机–但是服务器一般都不关机!–自己关机,其他同事也就关机了

–Linux系统的环境下自己不要养成关机的习惯!

shutdown [选项]

常用选项:

-h :将系统的服务停掉后,立即关机。

-r :在将系统的服务停掉之后就重新启动

-t 秒数 :-t 后面加秒数-几秒后关机

打包和压缩

作用:1.不容易造成文件缺失 2.下载时间变短,存储占据空间变小

常见的就是.zip.tgz,没见过的那些的压缩解压方法以后上网搜过来用就行了

zip和unzip指令

zip语法: zip [选项] xxx.zip 目录或文件(要被压缩的东西,可以写多个)

选项: -r 递归处理,将指定目录下的所有文件和子目录一并处理(不然就是把那个空目录搞进去)

eg: zip -r text.zip  text.txt text1

unzip语法: unzip 压缩包文件名 [-d 目标目录],默认解压到当前目录下

tar指令

tar czf xxx.tgz 被压缩的文件或目录–打包压缩

tar tzf xxx.tgz–预览

tar xzf xxx.tgz [-C 目录名]–解压解包(后面那个是指定解压到哪)

(.tgz.tar.gzip等价)

三大重定向

>:输出重定向

>>:追加重定向(不可以写为eg> >)

>会清空文件再写入新内容 >>直接在原来基础上写入

>的妙用:>out.txt1.这样可以清空里面的内容 2.没有这个文件的话,顺便还创建了出来

<:输入重定向–可以指定从哪读

但是eg: cat out.txt 跟cat < out.txt没啥区别

作业部分

 linux查看cpu占用的命令是什么?(A)
A.top//查看cpu资源使用状态
B.netstat//查看网络连接状态
C.free//查看内存资源状态
D.df//查看磁盘分区资源状态
linux 2.6.* 内核默认支持的文件系统有哪些?(ABCD)[多选]
A.ext3
B.ext2
C.ext4
D.xfs
E.ufs
 以下哪个命令输出Linux内核的版本信息:(A)
A.uname -r//查看linux内核版本信息
B.vmstat//报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息
C.sar//主要帮助我们掌握系统资源的使用情况,特别是内存和CPU的使用情况
D.stat//用于显示文件的状态信息
在Linux系统中, 为找到文件try_grep含有以a字母为行开头的内容, 可以使用命令?(D)
A.grep -E #$ try_grep
B.grep -E #a try_grep
C.grep -E ^$ try_grep
D.grep -E ^a try_grep
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值