3-Linux实操
Linux实践操作
- 开关机、重启、用户登陆注销
- 关机&重启
- 用户登陆和注销
- 用户管理
- 添加用户
- 修改用户密码
- 删除用户
- 查询用户信息
- 切换用户
- 查看当前用户
- 用户组的添加和删除
- 用户和组相关文件
- 实用指令
- 指定运行级别
- init 命令
- 帮助指令
- 文件目录类
- 时间日期类
- 搜索查找类🔍
- 压缩和解压类
开关机、重启、用户登陆注销
关机&重启
- 关机&重启之前的操作
sync把内存的数据同步到磁盘上
- 关机指令
shutdown -h now立刻关机shutdown -h 11分钟后关机halt关机
- 重启指令
shutdown -r now立刻重新启动计算机reboot重启
用户登陆和注销
注销只能在shell环境下进行使用
- 登陆
- 登陆普通用户
su - 用户名 - 登陆root用户
sudo su或者su -root
- 登陆普通用户
- 注销
- 退出当前用户
logout
- 退出当前用户
用户管理
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先想系统管理员申请一个账号,然后通过这个账号再进入系统。
添加用户
useradd 用户名
添加一个系统操作用户,当用户创建成功后,会自动在home目录下创建和用户同名的目录
useradd -d 指定目录 新的用户名
给新创建的用户指定存储路径,而不是存储在/home目录下(-d d就是directory 目录的意思)

修改用户密码
passwd 用户名
# 如果不加用户名,则默认是修改当前用户的密码

删除用户
现在的系统用户列表如下所示:

- 删除用户但要保留用户文件
userdel 用户名
- 删除用户同时删除用户文件
userdel -r 用户名
查询用户信息
id 用户名

切换用户
如果当前用户的权限不够,可以通过 su - 用户名,切换到高权限用户,比如root用户
su - 切换用户名
❗️❗️注意:
- 从权限高的用户切换到权限低的用户,不需要输入密码,如果从权限低的切换到权限高的用户,则需要输入切换的用户密码
- 当需要返回到原来的用户时,可以使用
exit/logout指令,进行退出
查看当前用户
whoami 或者 who am I

-
who am i这个指令,显示的是第一次登陆系统的用户,如果通过su指令进行了用户的切换,则仍然会是第一次登陆系统的用户。 -
whoami这个指令则会显示目前正在进行操作的用户

用户组的添加和删除
^ec4c90
用户组的作用在于:系统可以对有共性【权限】的多用户进行统一的管理

- 新增组
groupadd 组名
- 删除组
groupdel 组名
- 增加用户时直接加上组
useradd -g 用户组 用户名
❗️❗️注意: 如果在增加用户时,没有指定组,则会在创建用户时,同时创建一个名为用户名的组。

- 修改用户的组
usermod -g 用户组 用户名
用户和组相关文件
![[1-Linux目录结构#^4af414]]
-
/etc/passwd 文件
- 用户user的配置文件,记录用户的各种信息
- 每行信息的含义
- 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登陆shell【[[shell编程|shell介绍]]】

-
/etc/shadow文件
- 口令的配置文件
- 每行的含义
- 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
-
/etc/group文件
- 组的配置文件,记录Linux包含组的信息
- 每行的含义
- 组名:口令:组标识号:组内用户列表
❗️❗️注意:口令一般是不可见的,表示形式为x或为空。
实用指令
指定运行级别
| 运行级别 | 级别含义 |
|---|---|
| 0 | 关机 |
| 1 | 单用户状态(找回丢失的密码) |
| 2 | 多用户状态没有网络服务 |
| 3 | 多用户状态有网络服务 |
| 4 | 系统未使用保留给用户 |
| 5 | 图形界面 |
| 6 | 系统重启 |
init 命令
通过init命令来切换不同的运行级别
比如:init [0123456] 然后关机,再启动即可进行切换
比如 init 0 表示关机; init 6 表示系统重启
帮助指令
- man 获得帮助信息
man [命令或配置文件]- 比如:查看 ls 命令的帮助信息 :
man ls - 选项可以进行组合使用,比如组合 ls -a 和 ls -l 为: ls -al 或 ls -la 都可以

- help 指令
- 语法:
help 命令 - 获得shell内置命令的帮助信息
- 查看cd命令的帮助信息
- 语法:
文件目录类
-
pwd 指令
- 显示当前工作目录的绝对路径

-
ls指令
ls [选项] [目录或者文件]- 常用选项
- -a:显示当前目录所有的文件和目录,包括隐藏的
- -l :以列表的方式进行显示信息
-
cd 指令
- 切换到指定目录
cd [参数]- cd ~ :回到自己的家目录中
- cd … : 回到上一级目录
-
mkdir 指令
- 创建目录
mkdir [选项] 要创建的目录- 常用选项
- -p : 创建多级目录

-
rmdir 指令
- 删除空目录
rmdir [选项] 要删除的空目录- ❗️删除的是空目录,如果目录下有内容时,则无法进行删除
-
删除非空目录
rm -rf 要删除的目录- -r ( -R, --recursive):递归地删除目录及其内容
- -f ( --force ): 强制删除,忽略是否有文件和相关参数
-
touch 指令
- 创建空文件
touch 文件名
-
cp 指令
- cp指令拷贝文件到指定目录
cp [选项] source dest- source 拷贝的源文件名
- dest 拷贝到的目的位置
- 常用选项
- -r : 递归复制整个文件夹
- 注意❗️:
- 强制覆盖不提示的方法,在cp前面加上
\ - 例如:
\cp 源文件 目的位置
- 强制覆盖不提示的方法,在cp前面加上
-
rm 指令
- 移除文件或目录
rm [选项] 要删除的文件或目录- 常用选项
- -r ( -R, --recursive):递归地删除目录及其内容
- -f ( --force ): 强制删除,忽略是否有文件和相关参数
- 举例:删除非空目录
rm -rf 要删除的目录- 强制删除不提示的方法:带上
-f参数即可
-
mv 指令
- 移动文件或目录 或 重命名
- 重命名:
mv oldname newname(在同一个目录下,才可以进行重命名) - 移动文件:
mv 移动文件 目标目录(不在同一个目录下,进行文件的移动操作)
-
cat 指令
- 查看文件的内容
cat [选项] 要查看的文件- 常用选项
- -n : 显示行号
- ❗️注意:
- 为了浏览方便,一般会带上 管道命令
| 其他指令 - 例如:
cat -n /etc/profile | [其他命令]
- 为了浏览方便,一般会带上 管道命令
-
more 指令
- 基于VI编辑器的文本过滤器,可以以全屏幕的方式,按页显示文本文件的内容。
more 要查看的文件- 使用more以后,可以使用的交互指令:
-
less 指令
- 分屏查看文件内容,less指令在显示文件内容时,并不是将整个文件加载之后才显示,而是根据显示需要,加载的内容,对于显示大型文件具有较高的效率!
less 需要显示的文件- 使用less以后,可以使用的交互指令:

- 当输入
/要查找的字符串时,查找到以后,输入n,可以继续向下查找匹配的字符串,输入N,可以继续向上查找匹配的字符串 - 当输入
?要查找的字符串时,查找到以后,输入n,可以继续向上查找匹配的字符串,输入N,可以继续向下查找匹配的字符串
-
echo 指令
- 输入内容到控制台
echo [选项] [输出内容]
-
head 指令
- 用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行
- 基本语法
head 文件名head -n 5 文件名查看文件头5行内容
-
tail 指令
- 用于输出文件尾部内容,默认情况下,tail指令显示文件的前10行内容
- 基本语法
tail 文件查看尾部后10行的内容tail -n 5 文件查看尾部后5行的内容tail -f 文件实时追踪该文件的更新
-
> 指令
- 输出重定向指令
- 基础语法
ls -l > 文件将列表的内容写入文件cat file1 > file2将文件1的内容覆盖到文件2中
-
>> 指令
- 追加指令
- 基础语法
ls -al >> 文件将列表内容追加到文件的末尾echo 内容 >> 文件在文件尾部追加内容
-
ln 指令
- 软链接,也称为符号链接,类似于windows中的快捷方式。
ln -s [原文件或目录] [软链接名]- 给一个原文件创建一个软链接

-
history 指令
- 查看已经执行过的历史命令,也可以执行历史命令
history显示所有的历史命令history 10显示最近的十条指令!5执行历史编号为5的指令
时间日期类
写shell脚本输出日志时可能会用到
- data指令
- 显示当前日期📅
- 基本语法
date显示当前日期date "+%Y"显示当前年份date "+%m"显示当前月份date "+%d"显示当前的天date "+%Y-%m-%d %H:%M:%S"具体到今天的每一分,每一秒。
- 可选选项(设置日期)
data -s 字符串时间
- cal 指令
- 查看日历📅
搜索查找类🔍
- find 指令
- find指令将从指定目录向下递归地遍历各个子目录,将满足条件的文件或目录显示在终端
- 基本语法:
find [搜索范围] [选项] - 选项说明
-name 文件名按照指定的文件名查找文件-user 用户名查找属于指定用户名的所有文件-size 文件大小按照指定的文件大小查找文件- 注意
-
- 大于 - 小于 = 等于
- 单位有: k M G
- 比如:查找/home目录下的hello.txt文件
find /home -name hello.txt
- locate 指令
- lacate指令可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称以及路径的locate数据库实现快速定位到给定的文件。locate指令无需便利整个文件系统,查询速度较快。
- 注意:为了保证查询结果的准确度,管理员必须定期更新locate时刻。
- 基本语法:
locate 文件名称 - 💡:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库
- which指令
- 可以查看某个指令在哪个目录下
- 例如:
which ls
- find 🆚 locate
- find是在硬盘上查找
- locate是在数据库中查找
- grep指令和管道符号 |
- grep 过滤查找
- 管道符号:用于将前一个命令的处理结果输出给后面的命令进行处理。
- 基本语法:
grep [选项] 查找内容 源文件 - 常用选项
- -n : 显示匹配行以及行号
- -i : 忽略字母大小写
- 📋比如:在hello.txt 中,查找yes 所在行,并显示行号
- 1⃣️
cat hello.txt | grep "yes" - 2⃣️
grep -n "yes" hello.txt
- 1⃣️

压缩和解压类
-
gzip 和 gunzip
- gzip: 压缩文件 ,gunzip :解压文件
- 仅仅是对文件进行操作,不包含目录
- 基本语法:
gzip 文件: 压缩文件,只能将文件压缩为*.gz文件gunzip 文件.gz: 解压.gz文件
-
zip 和 unzip
- 解压和压缩文件
- 基本语法
zip [选项] xxx.zip 要压缩的内容压缩文件和目录的命令unzip [选项] xxx.zip解压缩文件
- 常用选项
- zip : -r (recursive): 递归压缩(压缩目录)
- unzip: -d 目录 : 指定解压后文件的存放目录
-
tar 指令 ⭐️⭐️
- tar是打包指令,最后打包后的文件是.tar.gz的文件
- 基本语法
tar [选项] xxx.tar.gz 打包的内容
- 选项说明
- -c 产生.tar 的打包文件(–creat)
- -v 显示详细信息
- -f 指定压缩后的文件名
- -z 打包的时候同时压缩
- -x 解包.tar 文件(–extract)
- 压缩文件:
-z(gzip)c(产生打包文件)v(显示详细信息)f(指定压缩后的文件夹) - 解压文件:
-z(gunzip)x(解包.tar文件)v(显示详细信息)f(文件夹) - 指定压缩目录和解压目录
-C
相关文章:
3-Linux实操
Linux实践操作 开关机、重启、用户登陆注销关机&重启用户登陆和注销 用户管理添加用户修改用户密码删除用户查询用户信息切换用户查看当前用户用户组的添加和删除用户和组相关文件 实用指令指定运行级别init 命令帮助指令文件目录类时间日期类搜索查找类🔍压缩和…...
Yarn 集群的架构和工作原理
Yarn 的基本设计思想是将 MapReduce V1 中的 JobTracker 拆分为两个独立的服务:ResourceManager 和 ApplicationMaster。 ResourceManager 负责整个系统的资源管理和分配,ApplicationMaster 负责单个应用程序的管理。 ResourceManager RM 是一个全局的资…...
PostgreSQL-视图-03-查询对象依赖关系视图-dba_dependencies
PostgreSQL查询对象依赖关系视图 -- PostgreSQL查询对象依赖关系视图drop view if exists tzq.dba_dependencies; create view tzq.dba_dependencies as with source_obj as (select sp.oid,sp.proname,unnest(string_to_array(regexp_replace(regexp_replace(lower(sp.prosrc…...
Vue style中的 scoped 属性
Vue 中存在 scoped 属性,HTML5中也存在一个 scoped 属性,而且,这两者都是针对 css 样式处理的属性,所以很多文章在 解释 Vue scoped 的时候,都会把两者混为一谈,直接进把 HTML5 scoped 的定义搬到 Vue scop…...
移动端适配rem
1.安装amfe-flexible和postcss-pxtorem, npm install amfe-flexible --save npm install postcss-pxtorem5.1.1 (这里我使用的postcss-pxtorem是5.1.1版本)或者在pageage.json中写入 "amfe-flexible": "^2.2.1","postcss-pxtorem": …...
Go语言开发小技巧易错点100例(八)
往期回顾: Go语言开发小技巧&易错点100例(一)Go语言开发小技巧&易错点100例(二)Go语言开发小技巧&易错点100例(三)Go语言开发小技巧&易错点100例(四)Go…...
100个网络安全测试面试题
1、Burpsuite常用的功能是什么? 2、reverse_tcp和bind_tcp的区别? 3、拿到一个待检测的站或给你一个网站,你觉得应该先做什么? 4、你在渗透测试过程中是如何敏感信息收集的? 5、你平时去哪些网站进行学习、挖漏洞提交到…...
7.26 作业 QT
1.继续完善登录框,当登录成功时,关闭登录界面,跳转到新的界面中: 结果图: second.h: #define SECOND_H#include <QWidget> #include<QDebug> //信息调试类,用于打印输出的 #inc…...
Python - Opencv应用实例之树叶自动分割、标签及统计分析系统
Python - Opencv应用实例之树叶自动分割、标签及统计分析系统 本文通过Python+opencv 实现这样的需求:输出位置和角度(x, y, r),并标记出轮廓基于传统图像处理算法实现,算法原理:输入图像 -> 灰度化 -> 二值化 -> 形态学处理 -> 轮廓提取 -> 树叶中心定位 -…...
IC设计工程师,参加IC面试应该注意哪些细节?
秋招已至,诸多IC设计企业,比如联发科、长鑫、大疆、燧原、地平线、复旦微、兆易创新、百度昆仑芯等,都已经陆续开启了提前批招聘。 很多人对各种关于秋招、面试、简历的比较感兴趣,所以今天就来跟大家分享关于秋招求职面试中的一…...
java poi导入Excel、导出excel
java poi导入Excel、导出excel 导出meven架包 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.1</version></dependency>导入Excel public void uploadFile(HttpServletRequ…...
【算法与数据结构】101、LeetCode对称二叉树
文章目录 一、题目二、递归法三、迭代法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、递归法 思路分析:这道题目标就是要对比左右两半的树是否对称,因此对比不是左右节点是否相等&…...
【N32L40X】学习笔记04-gpio中断库
gpio中断 该函数库的目的就是在统一的地方配置,将配置的不同项放置在一个结构体内部使用一个枚举来定义一个的别名 NVIC 寄存器 NVIC 相关的寄存器定义了可以在 core_cm4.h 文件中找到。我们直接通过程序的定义来分 析 NVIC 相关的寄存器,其定义如下…...
Godot 4 着色器 - Shader调试
我之前用OpenCV进行图像相关处理,觉得已经很不错,结合GDI可以实现流畅的动画效果 直到近来用Shader后才发现,着色器更上一层楼,原来这是入了GPU的坑 Shader编程限制很多,各种不支持,看在它性能不错功能炫…...
liunx时间慢几分钟,定时更新系统时间
#!/bin/sh hwclock --hctosys echo "执行成功" 定时5分钟执行一次...
C# 委托详解
一.委托的概念 C#中委托也叫代理,委托提供了后期绑定机制(官方解释),功能类似于C中的函数指针,它存储的就是一系列具有相同签名和返回类型的方法的地址,调用委托的时候,它所包含的所有方法都会被执行。 二.委托的用法…...
chatGPT 学习分享:内含PPT分享下载
InstructGPT论文地址: Training language models to follow instructions with human feedbackchatGPT地址:openAI个人整理的PPT(可编辑),下载地址:chatGPT学习分享PPT...
使用CRM进行数据分析的四大好处
使用CRM数据分析系统够帮助企业更好地了解客户需求和行为习惯,提供个性化的服务,从而提高客户满意度和忠诚度。使用CRM数据分析系统可以为企业带来一些好处,包括提高客户洞察力、加强营销策略、提高运营效率等。 1.提高客户洞察力:…...
Excel“牛人”变现方案参考
有几种方式可以通过Excel技能实现变现: 1. 提供Excel咨询和培训服务:如果你对Excel非常熟悉,你可以提供咨询和培训服务,帮助他人解决Excel使用中的问题或提高他们的Excel技能。 2. 制作和销售Excel模板:你可以根据市…...
vscode和jetbrains IDEA添加免费的gpt代码生成插件
vscode和jetbrains IDEA添加免费的gpt代码生成插件 VSCODE添加代码智能生成插件 一、打开vscode添加扩展 打开vscode,点击扩展,搜索 aws toolkit 二、连接到AWS 如图,选择添加connectiong to aws 选择 Sign up or Sign in …...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
macOS 终端智能代理检测
🧠 终端智能代理检测:自动判断是否需要设置代理访问 GitHub 在开发中,使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新,例如: fatal: unable to access https://github.com/ohmyzsh/oh…...



