3-Linux实操
Linux实践操作
- 开关机、重启、用户登陆注销
- 关机&重启
- 用户登陆和注销
- 用户管理
- 添加用户
- 修改用户密码
- 删除用户
- 查询用户信息
- 切换用户
- 查看当前用户
- 用户组的添加和删除
- 用户和组相关文件
- 实用指令
- 指定运行级别
- init 命令
- 帮助指令
- 文件目录类
- 时间日期类
- 搜索查找类🔍
- 压缩和解压类
开关机、重启、用户登陆注销
关机&重启
- 关机&重启之前的操作
sync
把内存的数据同步到磁盘上
- 关机指令
shutdown -h now
立刻关机shutdown -h 1
1分钟后关机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 …...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...