Linux之旅: 基础知识点的终极指南

文章目录

  • 1、Linux的目录结构
  • 2、ls命令
  • 3、管理文件和目录
  • 4、linux命令使用细节和技巧
  • 5、权限管理基本命令
  • 6、搜索命令
  • 7、管道符与重定向
  • 8、压缩和解压命令
  • 9、用户及vim编辑器
  • 10、用户和用户组管理
    • 一、Linux系统用户账号的基本管理
    • 二、Linux系统用户组的管理


1、Linux的目录结构

在这里插入图片描述
重点目录结构:
/bin:命令文件目录
在这里插入图片描述

/dev: 设备(device)文件目录
/etc: 系统配置文件存放的目录
/home: 系统默认的用户宿主目录


2、ls命令

1)ls –a 显示当前目录中的所有文件,包含隐藏文件,
隐藏文件是在文件名字以“.”(英文句号)开头的文件,所
2)ls –l 显示文件及其详细信息(这个命令有一个别名:ll)
常考考点:
在这里插入图片描述
drwxr-xr-x 第一个字符表示的文件类型:
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
-: 表示普通文件
后面的9个字符每3个为一组,分别代表文件所有者、文件所有者所在用户组、其它用户对文件拥有的权限 拥 。每组中“r”、“w”、“x”三个字符分别代表读、写、执行的权限 每 ,若没有其中的任何一个权限则用“-”表示。执行的权限有两个字符可选,最常见的一个是“x”代表可执行,另一个是“s”代表套接口文件。
紧接着的数字“2”,为这个目录下的目录文件数目(这个数目=隐藏目录数目+普通目录数目)。(如果这只是一个普通文件,那“2”就代表这个文件有两个别名,这个文件被人创建了一个硬链接文件),总而言之它就是一个计数,基本上对我们而言没有什么用,知道它是一个计数就OK.
后面的root代表这个文件(目录)的属主(Owner)为用户root,一般情况下就是创建者
再接下来的root代表这个文件(目录)所属的用户组(Group)为组root,后面会讲,一个用户组可以有很多用户
6 代表文件的大小(字节数),目录的大小总是为 6字节。如果想看K或者M,前面加一个选项-h
1月 24 15:54 代表文件(目录)的修改时间。
abc 代表文件(目录)的名字。
在这里插入图片描述

3)ls –i 显示文件的i节点号,相当于文件的身份id


3、管理文件和目录

mkdir -p : 即一次可以建立多个目录
mkdir -v : 每次创建新目录都显示信息
pwd:显示当前所在的目录的绝对路径
rmdir: 删除空目录
cp命令主要用于复制文件或目录
mv命令用来为文件或目录改名、或将文件或目录移入其它位置。

rm命令用于删除一个文件或者目录。
-f 即使文件属性设为只读,也直接删除,无需逐一确认
-r 将目录及以下之文件一起删除

touch命令创建空文件
cat 命令用显示文件内容
more 命令类似 cat ,不过会以一页一页的形式显示
less 可以随意浏览文件
head -n 5 log.txt 说明:显示文件的前n行

tail filename 说明:显示filename最后10行
生成链接文件命令:ln
-s 创建软链接
不加 -s 创建硬链接


4、linux命令使用细节和技巧

linux不同文件类型对应的颜色: l
白色:表示普通文件
蓝色:表示目录
绿色:表示可执行文件
红色:表示压缩文件
在这里插入图片描述
Linux快捷键总结:
结束运行中的程序:ctrl+c
退出终端:ctrl+d
清空屏幕:ctrl+L
打开历史命令收索:ctrl+r
命令补全:tab键
vi编辑文件的时候,快速定位光标到最后一行:G
查看系统时间:# date


5、权限管理基本命令

w:写
r: 读
x:执行
更改文件或目录权限命令:chmod
chown 【用户】【文件或目录】
改变文件或目录所属组命令:chgrp
chgrp【用户组】【文件或目录】


6、搜索命令

whereis 命令不能搜索普通文件,而只能搜索系统命令
find [查找目录] [查找规则] [查找完后的操作]
例子:
1)通过文件名字查找,如名字为test的文件或目录,这个是精准查找

find ./ f -name - test

2)加通配符,查找名字包含test的文件或目录,这个是模糊查找 加

find ./ -name *test* f // * 表示任意字符, ?表示一个字符 /

不区分大小写的查找:find ./ - iname *test*
3)查询文件大小大于100M的文件

find ./ f -size - +204800 + // 注意这里的单位是数据块 

它和K的换算: 1数据块=215字节 =0.5K
所以100M=102400K=20800,
// +表示大于,-表示小于,不写表示等于 /
4)查询所有者为xxx的所拥有文件

find / f -user - xxxx x

5)查询用户组为xxx的所拥有文件

find / f -group - xxxx x

6)多条件查询,在/etc目录下查找文件大小大于80M,并且小于100M的文件
find /etc -size +163840 -a -size -204800 // -a:表示and,并且关系, 此外还有-o表示or,或者关系
7)默认查找的内容是目录和文件,但是我们只想找到文件或者目录中的一个,如:查找/etc目录下的init开头的文件 i

fine /etc -name init* -a  -type f

//这里f:表示文件,d:表示目录, l:表示软链接

grep命令:搜索在文件里边的内容
locate命令:不搜索具体目录,而是搜索一个数据
新增的文件无法locate,使用updatedb


7、管道符与重定向

管道符:
命令 1 | 命令 2
命令1的正确输出作为命令 2 的操作对象的操作对象

wc, 统计命令,常用选项参数:
-c或–bytes或–chars 只显示Bytes数。
-l或–lines 只显示行数。
-w或–words 只显示单词数。
在默认的情况下,wc将计算指定文件的行数、单词数,以及字节数
重定向:

 > 覆盖
> > 追加

[root@localhost tmp]# date > abc
将当前日期写入文件abc:
[root@localhost tmp]# date >> abc
将当前日期追加到文件abc的末尾:
[root@localhost tmp]# 1234 2> abc
尝试执行命令1234,但该命令不存在,会将错误信息重定向写入文件abc,2对应错误信息


8、压缩和解压命令

1)命令:gzip (压缩文件)
压缩文件后缀.gz
ps: gzip test.txt
结果:生成文件test.txt.gz,原文件test.txt消失。
注意:只能压缩文件,不能压缩目录,压缩后不保留原始文件 ,压缩比大概1/5
解压命令:gunzip 解压缩文件名
2)命令:bzip2 (gzip的升级版,压缩比要比gzip更高一些)
压缩文件后缀:*.bz2
语法:bzip2 [选项] 文件
-k 压缩后保留原始文件 -
ps: bzip2 -k test.txt
生成test.txt.bz2文件,原始文件test.txt保留着
注意:同样不能压缩目录。
解压命令:bunzip2或者bzip2 -d 压缩文件名

总结:对于压缩和解压,我们真正记的其实就4条命令:
生成Japan.tar.gz压缩文件:

 tar -zcvf Japan.tar.gz Japan 

解压文件:

tar -zxvf Japan.tar.gz

生成Japan.tar.bz2压缩文件:

tar -jcvf Japan.tar.bz2 Japan

解压文件:

tar -jxvf Japan.tar.bz2 

9、用户及vim编辑器

1)who 命令显示关于当前在本地系统上的所有用户的信息。 [root@localhost ~]# who 2)vim编辑器 第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
第二部分:一般模式切换到编辑模式的可用的按钮说明

在这里插入图片描述
第三部分:一般模式切换到指令行模式的可用的按钮说明

在这里插入图片描述


10、用户和用户组管理

一、Linux系统用户账号的基本管理

1、添加新的用户账号使用useradd命令

useradd 选项 用户名

2.删除一个已有的用户账号使用userdel命令,其格式如下:

userdel 选项 用户名

常用的选项是 -r ,它的作用是把用户的主目录一起删除。
3.修改已有用户的信息使用usermod命令,其格式如下:

usermod 选项 用户名

4.指定和修改用户口令的Shell命令是passwd。
超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。
命令的格式为:

passwd 选项 用户名

5.su 命令可以切换成不同的用户身份,命令格式如下:

 su [选项] 用户名

二、Linux系统用户组的管理

1.增加一个新的用户组使用groupadd命令。其格式如下:

groupadd 用户组的组名

2、如果要删除一个已有的用户组,使用groupdel命令,其格式如下:

groupdel 用户组

注:
在 shell 命令终端输入week=(Monday Tuesday Wednesday Thursday ); week[6]=Sunday
${week[*]}${week[@]} 都会输出数组中的所有元素。
区别在于当被双引号包围时,[*]会将所有元素视为一个整体,而[@]会将每个元素视为独立的字符串。

${name%%.*} 会删除变量name中最后一个.及其后面的所有内容
${name%.*} 会删除变量name中最后一个.及其后面的内容,但只是最短匹配。
在这里插入图片描述
shell编程:
基本语法结构–>

if [  ];thenecho ...
elifecho ...
elseecho ...
fi
case "$choice" ina) date;;b)ls;;*)echo ...;;
esac
until [ ];doecho  ...
done
for xxx in "${xxx[@]}";doecho ...
done

最后总结一些小tips:

-a 表示“和”
-le 表示小于等于
-gt 表示大于

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

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

相关文章

【CSS in Depth2精译】1.1.2 行内样式~1.1.3 选择器的优先级

文章目录 1.1.2 行内样式1.1.3 选择器的优先级1.1.3.1 优先级的写法1.1.3.2 关于优先级的思考 1.1.2 行内样式 如果无法通过样式表来源规则解决样式冲突,浏览器则会考察它们是否通过 行内样式 作用于该元素。当使用 HTML 的 style 属性声明样式时,该样式…

Win32编程:第一个窗口程序(Part.1)

Win32系统编程是指在Windows操作系统上使用Win32 API进行软件开发的过程;Win32 API是Windows操作系统提供的应用程序接口,允许程序与操作系统进行交互,实现各种功能。 以下是Win32系统编程的基本概念和步骤: 环境准备 开发工具&…

element-plus的form表单组件之checkbox组件

单个checkbox 绑定的响应式的值类型为bool类型,同一个组的checkbox多选其值对应值的数组,类型根据checkbox的value值而来。 label只用来显示具体的值,根据value属性来设置。 element-plus的checkbox提供多种特性。 如单选,多选…

关机充电动画:流程与定制

关机充电动画:流程与定制 基于MTK平台Android 11分析 生成logo.bin 关机充电动画是由一系列的bmp图片组成的,这些图片资源存在于vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo目录下(当然不仅保护关机充电动画&#xff0c…

【软件工程】【22.10】p2

关键字: 软件开发基本途径、初始需求发现技术、UML表达事物之间关系、RUP需求获取基本步骤、项目过程建立涉及工作、项目规划过程域的意图和专用目标 判定表、分支覆盖、条件覆盖 三、简答 四、应用 这里条件覆盖有待商榷

SpringBoot配置第三方专业缓存技术jetcache方法缓存方案

jetcache方法缓存 我们可以给每个方法配置缓存方案 JetCache 是一个基于 Java 的缓存库,支持多种缓存方案和缓存策略,主要用于提升应用程序的性能和响应速度。它提供了多种缓存模式和特性,可以根据需求选择合适的缓存方案。 JetCache 的主…

问题解决:局域网下多台电脑实现共享打印机

看了很多篇解决措施,都没有解决,自己鼓弄了好久,终于解决了,如下步骤所示,实测好用。 首先先保证本电脑已打开网络共享 其次关闭防火墙(有时会出现奇怪问题,最好关闭) 接着访问IP…

Scikit-Learn支持向量机回归

Scikit-Learn支持向量机回归 1、支持向量机回归1.1、最大间隔与SVM的分类1.2、软间隔最大化1.3、支持向量机回归1.4、支持向量机回归的优缺点2、Scikit-Learn支持向量机回归2.1、Scikit-Learn支持向量机回归API2.2、支持向量机回归初体验2.3、支持向量机回归实践(加州房价预测…

TikTok账号养号的流程分享

对于很多刚开始运营TikTok的新手小白来说,都会有一个同样的疑问,那就是:TikTok到底需不需要养号?这里明确告诉大家是需要养号的,今天就把我自己实操过的养号经验和策略总结出来,分享给大家。 一、什么是Ti…

国产24位I2S输入+192kHz立体声DAC音频数模转换器CJC4344

CJC4344是一款立体声数模转换芯片,内含插值滤波器、multi bit数模转换器、输出模拟滤波器。CJC4344系列支持大部分的音频数据格式。CJC4344基于一个带线性模拟低通滤波器的四阶multi-bitΔ-Σ调制器,而且本芯片可以通过检测信号频率和主时钟频率&#xf…

【面试八股总结】Redis数据结构及底层实现

一、五种基本数据结构 Redis 提供了丰富的数据类型,常见的有五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合&#xff0…

C语言中的内存动态管理

1.为什么有动态内存管理 int a20;//开辟4个字节 int arr[10]{0};//开辟40个字节 上述的代码有两个特点 1.开辟空间的大小是固定的。 2.数组在申明的时候已经固定了大小,无法更改。 这样写代码不够灵活,所以c语言中引入了动态内存管理,让程序…

Springboot整合Kafka消息队列服务实例

一、Kafka相关概念 1、关于Kafka的描述 Kafka是由Apache开源,具有分布式、分区的、多副本的、多订阅者,基于Zookeeper协调的分布式处理平台,由Scala和Java语言编写。通常用来搜集用户在应用服务中产生的动作日志数据,并高速的处…

Milvus 2.4 向量库安装部署

1、linux 已有docker环境 2、安装fio命令 yum install -y fio 2、mkdir test-data fio --rwwrite --ioenginesync --fdatasync1 --directorytest-data --size2200m --bs2300 --namemytest ctrlc 3、lscpu 4、docker -v 6、安装docker compose组件 yum -y install python3-…

Maven下载安装、环境配置(超详细)(包括Windows、IDEA)

目录 一、引言 二、下载和安装 Maven (1)首先保证 Java 的环境是正常的。 1、电脑桌面上右击 " 此电脑 ",点击属性。 2、点击高级系统设置。 3、点击环境变量。 4、找到系统变量中的 Path。 5、点击新建,然后把…

深度剖析ElasticSearch分页原理与深分页问题|ES深分页问题|ES分页原理剖析

文章目录 ES分页|Paginate search resultsES深分页的问题一页获取数据量太大,报错分页深度太大,报错官方解释 其他解决方案Search after解决两个问题 有没有深分页查询的必要性?search after & PIT的使用方式1.创建pit2.首次查询3.之后的…

【C++】#20,#21

#20类和对象 #include <iostream>using namespace std;class Box{public: //公有 double length; //ctrle复制本行 double width;double height;void getVolume(){ //方法带&#xff08;&#xff09; cout<<"盒子体积为&#xff1a;"<<le…

我在高职教STM32——LCD液晶显示(1)

大家好&#xff0c;我是老耿&#xff0c;高职青椒一枚&#xff0c;一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次&#xff0c;同行应该都懂的&#xff0c;老师在课堂上教学几乎是没什么成就感的。正因如此&#xff0c;才有了借助 CSDN 平台寻求认同感和成就…

十、数据结构(图的基础)

文章目录 什么是图图的分类图算法的复杂度 图的模拟怎么储存一个图邻接矩阵&#xff1a;邻接矩阵的定义方式优劣分析 邻接表优劣分析实现代码 链式前向星实现代码优劣分析 图的遍历某个点的连通性拓扑排序1.拓扑排序的概念2.图的入度和出度3.基于 B F S BFS BFS的拓扑排序复杂度…

uniapp公用返回组件

uniapp写一个公用的头部组件&#xff0c;包含home和返回。 页面中的引用 2.在components文件夹下&#xff0c;新建一个navBar.vue <template><view class"view-wrap"><view :style"{ height: barHeight }"></view><view cla…