Linux相关概念及常见指令
 
注意:本篇博客除了讲解Linux的相关指令,还穿插着Linux相关概念及原理的讲解。
账号相关指令
whoami:查看当前用户
adduser 用户名: 添加新用户
passwd 用户名:为这个用户设置密码
ls指令
1.Linux中文件的理解
-  
文件是Linux中存储数据的基本单位;
 -  
Linux中的一个文件,是由文件属性+文件内容组成的,文件属性包括:文件名、文件类型、文件创建时间、文件修改时间、文件大小等;
 -  
我们每次对文件的操作,就是对文件内容和文件属性的操作;
 -  
每次谈论文件,不要狭隘的看到文件的内容,文件的属性也是数据,也要占据磁盘空间,所以一个空文件也是要占磁盘空间的。
 -  
Linux下一切皆是文件!显示器和键盘也是文件,这样可以减少Linux编码的维护成本。
 
2.ls指令
语法: ls 选项 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
-l : 列出文件的详细信息。
-a : 列出目录下的所有文件,包括以 . 开头的隐含文件。(Linux下以.开头的文件是隐藏文件)
Xshell展示:
ls指令:

ls指令的简写:
ls -al <=> ls -a -l
ll <=> ls -l
ll -a <=> ls -al
pwd指令
1.Linux中目录结构及路径的理解
目录结构的理解:
-  
目录就是文件夹,只是Linux官方术语上称作目录。Windows操作系统习惯上称作文件夹,Linux称作目录。
 -  
Linux整体的目录结构是一棵多叉树,而 / 就是这棵树,也就是整个目录结构的根目录。
 
-  
注意家目录和根目录的区别,/home/是家目录,所有用户都在这个家目录下,每次打开Xshell都默认在家目录底下;而根目录下都是一些系统文件、库文件,这里的文件至关重要,如果丢失会导致整个系统的瘫痪。
 -  
Xshell下使用ls指令查看根目录/家目录下的文件/目录:
 
路径的理解:
1.什么是路径:
Linux中定位一个文件或者目录,就是根据这个文件/目录的路径来搜索的,路径也是一个文件/目录的唯一标识符。
-  
Linux下的路径:/home/zwj/lesson1
 -  
Windows下的路径:F:\Linux板书\110Linux
 
/和\是一个路径的分隔符,不同操作系统的分隔符可能不同,我们以后需要注意不要写反了。
2.为什么要有路径:
路径本质上就是一个多叉树的搜索路径,根据这个路径我们可以在整个多叉树的目录结构中唯一标识一个文件/目录。
-  
叶子结点:文件或者空目录
 -  
非叶子节点:目录
 -  
找文件的本质:在一个多叉树上进行结点的查找
 
3.当前路径和上级路径:
我们发现,一个目录下的隐藏文件必定会有这两个东西:
那么这一个点和两个点是什么东西呢?
. 当前路径
.. 上一级路径
注意:这里的路径分隔符/可加可不加,都能唯一标识这个目录/文件。
4.绝对路径和相对路径:
绝对路径:从/(根目录)开始,定位一个文件或者目录的方式,形成的路径叫做绝对路径。通过绝对路径,我们无论在目录中的哪个位置,都能定位到一个文件/目录的位置。绝对路径我们一般在配置文件中使用,不常用。
/home/zwj/lesson1/file1.txt
相对路径:以当前所处目录为参考点,我们定位一个文件/目录的路径,叫做相对路径。相对路径我们经常使用。
./file1.txt
../lesson1/file1.txt
2.pwd指令
语法: pwd 功能:显示用户当前所在的目录
常用选项: 无

3.补充:tree指令
将当前目录以树状结构展示出来:

cd指令
语法:cd 目录路径 功能:改变工作目录。进入这个目录中去。
常用:
cd 目录路径(绝对路径和相对路径)
cd .. 进入上一级目录
cd ~ 进入家目录
cd - 跳转最后一次所处的目录
touch指令
语法:touch [选项] 文件名
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件

注意:touch试一次可以创建多个文件的:
mkdir指令
语法:mkdir [选项] 目录名
功能:在当前目录下创建一个名为 “目录名”的目录
常用选项:
-p, 多级目录创建,后面是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立。
rm/rmdir指令
rmdir和mkdir相对,rmdir是删除目录
语法:rmdir [-p][dirName]
功能:删除空目录
常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rmdir只能删除空目录,所以rmdir很少使用,rm指令相对使用的更多。
语法:rm [选项][目录名/文件名]
功能:删除文件或目录
常用选项:
-f force强制性删除
-i 删除前逐一询问确认
-r recursion递归删除,删除目录及其下所有文件
rm删目录:

rm删文件:

补充:*通配符
*是通配符,表示该目录下的所有文件和目录!

这种东西一定要谨慎使用,很容易出问题;不仅仅是*,rm -rf 删除文件/目录也要谨慎;我们知道/是根目录,如果rm -rf /并且是root用户权限,整个系统的库文件和系统文件也会删除,这样整个系统就废了,所以一定要谨慎!
man指令
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man。
语法: man [选项] 命令
-k 根据关键字搜索联机帮助 num 只在第num章节找。
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
解释一下,面手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文 件)
3 是库函数,如printf,fread
4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
cp和mv指令
cp就是copy复制的意思,mv就是remove剪切的意思。复制和剪切的区别和Windows环境下一致。
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录并拷贝到目标目录中,如果目标文件/目标目录不存在,创建一个新文件/新目录。
常用选项:
-f 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 覆盖文件之前先询问用户
-r 目录的复制
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
复制文件:

复制目录

mv除了剪切,还有重命名功能。
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
视mv命令中第二个参数类型的不同,mv命令将文件/目录重命名或将其剪切至一个新的目录中。
当第二个参数类型是不存在的文件名/目录名时,mv命令完成文件/目录重命名。
当第二个参数是已存在的目录名时,源文件或目录参数可以有多个,mv命令将完成文件/目录的剪切。


cat指令
1.cat指令
语法:cat [选项][文件]
功能: 查看目标文件的内容
常用选项:
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
2.输入输出的其他指令
2.1 nano指令
nano是Linux独有的记事本,可以用来写文件:
nano 文件名 
文件不存在则创建之。
写完后ctrl+x并Y退出。
2.2 echo指令
echo指令可以把输入的数据打印到屏幕上:

3.重定向(重要)
3.1 输出重定向(写文件)
echo默认把数据打印到屏幕上,如果想写入文件中则需要输出重定向>:
这里的屏幕,我们可以也理解为没有读方法的文件,键盘则是没有写方法的文件,Linux一切皆文件!
两个额外功能:
-  
写入文件时如果文件不存在则创建之,所以输出重定向还有创建空文件的功能:
 -  
输出重定向每次写入文件都会先清空文件,所以输出重定向还有清空目标文件的功能:
 
3.2 追加重定向
前面所说,输出重定向每次写入文件都会先清空文件,如果想保留之前的写入就使用追加重定向>>:

3.3 输入重定向(读文件)
cat如果后面什么都没有,则默认从键盘中读取数据:
如果加上输入重定向<,默认从键盘读数据变为从文件读数据:

less和more指令
more和less的功能和cat相似。只不过当遇见一个文件很大时,内容会超过一页,使用cat不好查看,比如打印一个1000行的文件,系统会一直打印不会停下来,这样我们想查看某一行就很麻烦。
这时候就要用more了:
语法:more [选项][文件]
功能:more命令,功能类似 cat
常用选项:
-n 对输出的所有行编号
q 退出more
more指令打满一行后就不会打印了,我们想继续打印就回车打印下一行内容,想退出就按q。

但是more有一个缺点,不能向上翻阅,所以相比more,我们更习惯使用less这个富有弹性的指令:
语法: less [参数] 文件
功能: less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
选项:
-i 忽略搜索时的大小写
-N 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit
head和tail指令
1.head/tail指令
实际应用中我们不会查看文件中的所有数据,只是查看部分数据,那就用到head和tail了。
语法: head [参数] [文件]
功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项: -n 显示第n行
语法: tail [参数] [文件]
功能: 用于显示指定文件末尾内容.
选项:
-f 循环读取
-n 显示第n行
2.命令行管道(重要)
那如何取中间部分呢?比如8000~8010行
方法一:创建临时文件
head -8010 file1.txt > tmp.txt
tail -10 tmp.txt
方法二:使用管道 | 
head -8010 file1.txt | tail -10
管道的作用就是连接多个指令,前一个指令的输出作为后一个指令的输入。

时间相关指令:
date指令
date 指定格式显示时间: date +%Y:%m:%d
%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%X : 相当于 %H:%M:%S
%d : 日 (01..31)
%m : 月份 (01..12)
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d
时间戳:
时间->时间戳:date +%s
时间戳->时间:date -d@1508749502
cal指令
cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
命令格式:cal [参数][月份][年份]
功能: 用于查看日历等时间信息
find和grep(常用)指令
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项: -name 按照文件名查找文件。
语法: grep [选项] 搜寻字符串 文件
功能:用于在文件中搜索字符串,将找到的行打印出来
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行

查找命令还可以配合着通配符*一起使用:

grep指令通常使用 命令行管道 配合着其他指令使用
-  
/home/var/log目录下的 文件都是日志信息(日志信息也就是git版本控制信息)。
 -  
通过这个指令就进行文本过滤从而查找错误信息。
 -  

 
补充命令:
which/whereis
sort/uniq:通过ASCII码对文件信息进行排序、去重(去重前要排序,sort、uniq组合可以去重)。
wc:word coun字符统计,-l选项:按行统计

zip/unzip/tar指令
打包压缩的目的 :
-  
节省空间,网络传输时 效率更高。
 -  
数据传输过程中不容易损坏丢失。
 
zip: .zip后缀文件
zip压缩/打包:zip dst_name.zip 目录或文件
unzip解压:unzip dst_name.zip (-d 指定目录)
-r:目录的压缩、解压。
tar : .tgz后缀文件
> tar [-cxtzjvf] 文件与目录 .... 参数:
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录
压缩:tar -cvzf dst_name.tgz 目录或文件
解压:tar -xvzf dst_name.tgz (-C 指定目录)
uname
语法:uname [选项] 功能: uname用来获取电脑和操作系统的相关信息。 补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。 常用选项: -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称
几个重要热键:
Tab 命令补全、档案补全
Ctrl + c 停掉当前进程
Ctrl + d 退出当前用户
关机
shutdown [选项]
 常见选项 -h : 将系统的服务停掉后,立即关机。 -r : 在将系统的服务停掉之后就重新启动 -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思
相关文章:
Linux相关概念及常见指令
注意:本篇博客除了讲解Linux的相关指令,还穿插着Linux相关概念及原理的讲解。 账号相关指令 whoami:查看当前用户 adduser 用户名: 添加新用户 passwd 用户名:为这个用户设置密码 ls指令 1.Linux中文件的理解 文件是Linux中存储数据的基本单…...
CentOS 系统如何在防火墙开启端口
在 CentOS 上,你可以使用 firewall-cmd 命令来开启防火墙的特定服务或端口。以下是在 CentOS 上开启 3306 端口的步骤: 检查防火墙状态:可以使用以下命令检查防火墙的状态: sudo firewall-cmd --state如果防火墙处于活动状态&…...
2023年电工(初级)证考试题库及电工(初级)试题解析
题库来源:安全生产模拟考试一点通公众号小程序 2023年电工(初级)证考试题库及电工(初级)试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局&#…...
vue拦截器是什么,如何使用
Vue拦截器是一种用来拦截并处理HTTP请求和响应的机制,它可以在请求或响应发送前或后进行一些预处理或处理。在Vue中,可以使用axios库来实现拦截器,axios库是一个基于Promise的HTTP客户端,可以用于浏览器和Node.js平台。 使用axio…...
CSS 之 table 表格布局
一、简介  除了使用HTML的<table>元素外,我们还可以通过display: table/inline-table; 设置元素内部的布局类型为表格布局。并结合table-cell、table-row等相关CSS属性值可以实现HTML中<table>系列元素的效果,具有表头、表尾、行、单元格…...
【Kotlin精简】第2章 集合
1 简介 在 Kotlin 中集合主要分为可变集合与只读集合,其中可变集合使用 “Mutable” 前缀 集合类名表示,比如 MutableList、MutableSet、MutableMap 等。而对于只读集合就是和 Java 中集合类名是一致。 Java 中的 List 非 Kotlin 中的 List , 因为 Kot…...
VSCODE+PHP8.2配置踩坑记录
VSCODEPHP8.2配置踩坑记录 – WhiteNights Site 我配置过的最恶心的环境之一:windows上的php。另一个是我centos服务器上的php。 进不了断点 端口配置和xdebug的安装 这个应该是最常见的问题了。从网上下载完php并解压到本地,打开vscode,安装…...
React 状态管理 - Context API 前世今生(下)
New Context API Provider【context的生产者组件】 createContext 创建一个Context对象,订阅了整个Context对象的组件,会从组件树中离自身最近的那个匹配的Provider中读取到当前的context值。Context.Provider 父Context对象返回的Provider组件&#x…...
地下城堡3魂之诗阵容搭配攻略
在地下城堡3魂之诗游戏中,拥有一个合理搭配的阵容非常关键,可以让角色能力发挥最大化。以下是建议的阵容搭配及攻略: 关注【娱乐天梯】,获取内部福利号 1.核心成员(2名) 在阵容中选择两个输出型角色作为核心成员,他们的…...
网工内推 | 技术支持工程师,厂商公司,HCIA即可,有带薪年假
01 华为终端有限公司 招聘岗位:初级技术支持 职责描述: 1、通过远程方式处理华为用户在产品使用过程中各种售后问题; 2、收集并整理消费者声音,提供服务持续优化建议; 3、对服务中发现的热点、难点问题及其他有可能造…...
有 AI,无障碍,AIoT 设备为视障人群提供便利
据世界卫生组织统计,全球共 22 亿人视力受损,包含 2.85 亿视障人群和 3,900 万全盲人群。而且,这一数字将随老龄化加剧不断增加。 虽然视障人群面临着诸多不便,但是针对视障人群的辅助设备却存在成本高、维护困难、操作复杂等问题…...
数据结构学习笔记——数据结构概论
目录 一、数据与数据元素二、数据类型和抽象数据类型三、数据结构的定义(一)逻辑结构(二)存储结构(物理结构)1、顺序存储结构2、链式存储结构3、索引存储结构4、散列存储结构 (三)数…...
关于 打开虚拟机出现“...由VMware产品创建,但该产品与此版VMwareWorkstateion不兼容,因此无法使用” 的解决方法
文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/133678951 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…...
windows的最佳选项卡式窗口管理器软件TidyTabs
下载: https://jmj.cc/s/z1t3kt?pucodeS1wc https://download.csdn.net/download/mo3408/88420433 TidyTabs是一款Windows应用程序,它可以将多个打开的窗口整理成一个选项卡式的界面,使得用户可以更加方便地切换和管理不同的窗口。 Tidy…...
【Python 千题 —— 基础篇】浮点数转为整数
题目描述 题目描述 给出一个浮点数,请将这个浮点数转换成整数。 输入描述 输入一个浮点数。 输出描述 程序将浮点数转换为整数并输出。 示例 示例 ① 2.333输出: 2代码讲解 下面是本题的代码: # 描述: 给出一个浮点数,…...
【Linux--进程间通信】
进程间通信介绍 进程间通信目的 数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源通知事件:一个进程需要向另一个或一组进程发送消息。通知它(它们)发生了某种事件(如…...
Linux C文件操作
文章目录 文件操作函数文件系统调用系统调用与标准函数c的调用的区别文件的读取位置标准c函数系统调用空洞文件 文件的内存映射操作文件目录 linux下的文件操作包括两种,一种是使用C函数,一种是使用系统调用。 gcc 常用来实现c程序的编译gcc filename.c …...
基于Cucumber的行为驱动开发(BDD)实例
本篇介绍 Cucumber 的基本使用, 因为Cucumber是BDD的工具, 所以首先需要弄清楚什么是BDD,而在介绍BDD之前,先看看常见的软件开发方法。 常见的软件开发方法 面向过程开发(Procedural Development)&#x…...
十六、代码校验(2)
本章概要 前置条件 断言(Assertions)Java 断言语法Guava 断言使用断言进行契约式设计检查指令前置条件后置条件不变性放松 DbC 检查或非常严格的 DbCDbC 单元测试 前置条件 前置条件的概念来自于契约式设计(Design By Contract, DbC), 利用断言机制…...
安卓 kotlin-supportFragmentManager报红
如果你继承baseActivity 请查看 是不是继承 AppCompatActivity...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...





