Linux相关概念及常见指令

news2024/9/23 19:25:29

 

注意:本篇博客除了讲解Linux的相关指令,还穿插着Linux相关概念及原理的讲解。


账号相关指令

whoami:查看当前用户

adduser 用户名: 添加新用户

passwd 用户名:为这个用户设置密码

ls指令

1.Linux中文件的理解

  1. 文件是Linux中存储数据的基本单位;

  2. Linux中的一个文件,是由文件属性+文件内容组成的,文件属性包括:文件名、文件类型、文件创建时间、文件修改时间、文件大小等;

  3. 我们每次对文件的操作,就是对文件内容和文件属性的操作;

  4. 每次谈论文件,不要狭隘的看到文件的内容,文件的属性也是数据,也要占据磁盘空间,所以一个空文件也是要占磁盘空间的。

  5. 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 [选项] 源文件或目录 目标文件或目录

功能:

  1. 视mv命令中第二个参数类型的不同,mv命令将文件/目录重命名或将其剪切至一个新的目录中

  2. 当第二个参数类型是不存在的文件名/目录名时,mv命令完成文件/目录重命名

  3. 当第二个参数是已存在的目录名时,源文件或目录参数可以有多个,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 后面加秒数,亦即『过几秒后关机』的意思

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1075185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Termux安装MySQL,并使用cpolar实现公网安全远程连接[内网穿透]

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备&#xff0c;尽管最初并非设计为服务器&#xff0c;但是随着技术的进步我们可以将Android配置为生产力工具&#xff0c;变成一个随身…

微软坚持Rust语言重写 Windows 11核心

近日微软 Azure首席技术官发文&#xff0c;公开微软最近宣布“扩大采用 Rust 语言的成果”&#xff0c;微软同时还在GitHub 中发布了一系列开发工具包&#xff0c;从而可以帮助开发者使用 Rust语言来编写 Windows 驱动程序。 实际上&#xff0c;早在 2019 年7月&#xff0c;微…

TestNG学会了,Java单元测试你就掌握了一半!

01、TestNG 01、简介 在日常测试工作中&#xff0c;经常需要用写代码和脚本来完成一些测试任务&#xff0c;比如自动化测试&#xff0c;接口测试&#xff0c;单元测试等。当写完若干脚本后&#xff0c;需要对这些脚本进行组织、管理和结果统计&#xff0c;这个时候就需要有一…

三维模型3DTile格式轻量化的跨平台兼容性问题分析

三维模型3DTile格式轻量化的跨平台兼容性问题分析 三维模型3DTile格式是一种开放的、高效的和互操作的空间信息数据格式。然而&#xff0c;它作为一种新兴的技术&#xff0c;其在轻量化与跨平台兼容性方面存在着一些问题。 首先&#xff0c;由于3DTile格式主要针对大型三维场景…

JVM面试题:(一)类加载机制和双亲委派

类加载过程&#xff1a; 常量池符号引用解析为直接引用&#xff1f; 符号引用包括了下面三类常量&#xff1a; 类和接口的全限定名&#xff0c;字段的名称和描述符&#xff0c;方法的名称和描述符 直接引用可以是直接指向目标的指针、相对偏移量或是一个能间接定位到目标的句柄…

antd的upload上传组件,上传成功后清除表单校验——基础积累

今天在写后台管理系统时&#xff0c;发现之前的一个bug&#xff0c;就是antd的upload上传组件&#xff0c;需要进行表单校验。 直接上代码&#xff1a; 1.html部分 <a-form-modelref"ruleForm":model"form":label-col"labelCol":wrapper-col…

轻量限制流量?阿里云轻量应用服务器月流量包收费说明

阿里云轻量应用服务器部分套餐限制月流量&#xff0c;轻量应用服务器按照套餐售卖&#xff0c;有的套餐限制月流量&#xff0c;有的不限制流量。像阿里云轻量2核2G3M带宽轻量服务器一年108元和轻量2核4G4M带宽一年297.98元12个月&#xff0c;这两款是不限制月流量的。阿里云百科…

c语言练习题82:顺序表的使用

顺序表的使用 1、顺序表的概念及结构 线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使 ⽤的数据结构&#xff0c;常⻅的线性表&#xff1a;顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性…

基于工业5G网关的工业机器人监测控制方案

随着智能制造、自动化生产的发展进步&#xff0c;工业机器人的身影越来越多地出现在工厂现场&#xff0c;成为新型无人化、智能化生产制造的中坚力量。 工业机器人的运行伴生着海量的数据采集、传输、分析和反馈执行&#xff0c;因此也需要高速、低延迟的5G网络&#xff0c;支撑…

Oracle 云服务即将支持 PostgreSQL!

2023 年 9 月 19 日&#xff0c;Oracle 产品团队发布了一篇文章&#xff0c;宣布 Oracle 云基础架构&#xff08;OCI&#xff09;开始提供 PostgreSQL 服务。目前支持的版本为 PostgreSQL 14.9&#xff0c;提供有限支持&#xff0c;12 月份将会提供正式版本。 众所周知&#x…

网络原理之TCP_IP

目录 应用层重点协议 传输层重点协议 1.UDP协议 (一)UDP协议段格式 (二)UDP的特点 无连接 不可靠传输 面向数据报 全双工 缓冲区 大小受限 (三)基于UDP的应用层协议 (四)面试题 2.TCP协议 (一)TCP协议段格式 (二)TCP的特点 有连接 可靠传输 面向字节流 缓冲…

竞赛选题 深度学习 python opencv 火焰检测识别

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…

Vue数据代理的原理

一、Object.defineProperty方法 我们可以使用一个Object.defineProperty方法给一个对象添加属性&#xff0c;并对该属性进行权限设置 语法格式如下&#xff1a; Object.defineProperty(对象 , "属性名" , { // 配置项 }) let Person {name:"寻霖",age:1…

HTTP协议的请求协议和响应协议的组成,HTTP常见的状态信息

HTTP协议 什么是协议 协议实际上是某些人或组织提前制定好的一套规范,大家只要都按照这个规范来就可以做到沟通无障碍 HTTP协议是W3C(万维网联盟组织)制定的一种超文本传输通信协议(发送消息的模板和数据的格式),除了传送字符串,还有声音、视频、图片等流媒体等超文本信息 …

单目3D目标检测——SMOKE 模型推理 | 可视化结果

本文分享SMOKE的模型推理&#xff0c;和可视化结果。以kitti数据集为例子&#xff0c;对训练完的模型进行推理&#xff0c;并可视化3D框的结果&#xff0c;画到图像中。 关于模型原理、搭建开发环境、模型训练&#xff0c;可以参考之前的博客&#xff1a; 【论文解读】SMOKE …

【分享】Word文档“只读方式”的两种模式

如果想要防止Word文档的内容被意外更改&#xff0c;可以设置成以“只读方式”打开&#xff0c;这样就算更改了也不用担心不小心保存了文档。 Word文档“只读方式”有两种模式&#xff0c;下面我们来看看这两种模式具体是如何设置的。 模式一&#xff1a;无密码的“只读方式” …

基于YOLOv5、YOLOv8的火灾检测(超实用项目)

目录 1.简介 2.YOLO算法 3.基于YOLOv5、YOLOv8的火灾检测 视频已上传b站 YOLOv5/YOLOv8的火灾检测&#xff08;超实用项目&#xff09;_哔哩哔哩_bilibili 本文为系列专栏&#xff0c;包括各种YOLO检测算法项目、追踪算法项目、双目视觉、深度结构光相机测距测速三维测量项…

基于黏菌优化的BP神经网络(分类应用) - 附代码

基于黏菌优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于黏菌优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.黏菌优化BP神经网络3.1 BP神经网络参数设置3.2 黏菌算法应用 4.测试结果&#xff1a;5.M…

教你如何『SSH』远程连接『内网』服务器

前言 最近博主实验室要搬家&#xff0c;因为服务器只有连接内网才能使用&#xff0c;所以搬走之后就无法在公网连接使用服务器&#xff0c;确实是让人非常苦恼&#xff0c;所以本文将会主要讲解如何使用公网服务器 SSH 连接内网服务器 系统配置 内网服务器&#xff1a;Ubuntu …

【配置vscode编写Java代码和输出在外部控制台】

配置vscode编写Java代码和输出在外部控制台 打开vscode&#xff0c;扩展中搜索java安装如下插件&#xff0c; 安装完成后&#xff0c;打开一个文件夹&#xff0c;新建hello.java文件&#xff0c;粘贴下面代码 public class hello {public static void main(String[] args) {S…