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的一些常用小知识点

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

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

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

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

比如:

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

Linux中按ctrl+c会显示

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

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

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

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

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

bash 复制代码
比如: which ls


alias可以创建指令的别名

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

bash 复制代码
alias la = 'ls -a'

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

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

Linux下一切皆文件

Linux的基本指令

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

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

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

bash 复制代码
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)

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

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

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

cd -:返回最近访问目录

关于绝对路径和相对路径

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

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

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

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

绝对路径:

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

相对路径:

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

--自己位置发生了变化,相对路径可能就得改改了

应该用哪种:

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

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

bash 复制代码
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 [选项] 当前位置的子文件或子目录名 (删多个也行)

bash 复制代码
eg: rm text.i text.o

适用对象:所有使用者

功能:删除文件或目录

c 复制代码
回答n就不删,y就删了

常用选项:

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

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

-r 删除目录及其下所有文件
注意:Linux没有回收站,删了就是真删了

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

tree指令

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

bash 复制代码
yum  install -y tree

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

eg:

man指令

man 语法: man [选项] 命令

bash 复制代码
eg: man ls   就是查询ls怎么用

常用选项:

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

-num 只在第num章节找

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


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

echo指令和cat指令

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

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

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

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

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

-b 对非空输出行编号

-n 对输出的所有行编号

-s 不输出多行空行

cp指令

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

功能: 复制文件或目录

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

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

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

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

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

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

mv指令

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

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

bash 复制代码
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 日


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

bash 复制代码
date +%s

时间戳转换成时间

bash 复制代码
date -d@时间戳

cal指令

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

常用选项:

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

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

-y 显示当前年份的日历

find指令

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

选项: -name

bash 复制代码
eg: find ~ -name *.c  

find which whereis的区别

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

bash 复制代码
比如: which ls

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

bash 复制代码
eg: whereis string.h

find:找符合条件的有哪些

grep指令

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

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

bash 复制代码
eg: grep world text.txt

常用选项:

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

-n :顺便输出行号

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

bc指令

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

uname指令

uname -r输出Linux 内核版本号

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

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

plaintext 复制代码
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 递归处理,将指定目录下的所有文件和子目录一并处理(不然就是把那个空目录搞进去)

bash 复制代码
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.没有这个文件的话,顺便还创建了出来

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

c++ 复制代码
但是eg: cat out.txt 跟cat < out.txt没啥区别

作业部分

cpp 复制代码
 linux查看cpu占用的命令是什么?(A)
A.top//查看cpu资源使用状态
B.netstat//查看网络连接状态
C.free//查看内存资源状态
D.df//查看磁盘分区资源状态
cpp 复制代码
linux 2.6.* 内核默认支持的文件系统有哪些?(ABCD)[多选]
A.ext3
B.ext2
C.ext4
D.xfs
E.ufs
cpp 复制代码
 以下哪个命令输出Linux内核的版本信息:(A)
A.uname -r//查看linux内核版本信息
B.vmstat//报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息
C.sar//主要帮助我们掌握系统资源的使用情况,特别是内存和CPU的使用情况
D.stat//用于显示文件的状态信息
cpp 复制代码
在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
相关推荐
pc07932 分钟前
带网络接口的打印机和USB接口打印机的共享区别
运维·服务器·网络
上弦月-编程3 分钟前
【C语言】函数栈帧的创建与销毁(底层原理)
c语言·开发语言
MATLAB代码顾问4 分钟前
混合粒子群-模拟退火算法(HPSO-SA)求解作业车间调度问题——附MATLAB代码
算法·matlab·模拟退火算法
Felven9 分钟前
C. Prefix Min and Suffix Max
算法
加农炮手Jinx9 分钟前
LeetCode 26. Remove Duplicates from Sorted Array 题解
算法·leetcode·力扣
加农炮手Jinx9 分钟前
LeetCode 88. Merge Sorted Array 题解
算法·leetcode·力扣
Hhy_11079 分钟前
【从零开始学习数据结构 ④】:栈 ——后进先出的艺术
c语言·数据结构·学习·visual studio
格林威10 分钟前
线阵工业相机:如何计算线阵相机的行频(Line Rate)?公式+实例
开发语言·人工智能·数码相机·算法·计算机视觉·工业相机·线阵相机
yueyue54312 分钟前
透过现象看本质:以fast_lio架构的整套算法的局部避障改为TEB算法为例深度探讨——如何成为一个合格的算法架构师?
算法·架构
梨花爱跨境12 分钟前
红人视频×A10算法:亚马逊转化率与流量闭环实战
算法