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 [  ];then
	echo ...
elif
    echo ...
else
    echo ...
fi
case "$choice" in
	a) 
		date
		;;
	b)
		ls
		;;
	*)
		echo ...
		;;
esac
until [ ];do
	echo  ...
done
for xxx in "${xxx[@]}";do
	echo ...
done

最后总结一些小tips:

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Docker安装】Ubuntu系统下部署Docker环境

【Docker安装】Ubuntu系统下部署Docker环境 前言一、本次实践介绍1.1 本次实践规划1.2 本次实践简介二、检查本地环境2.1 检查操作系统版本2.2 检查内核版本2.3 更新软件源三、卸载Docker四、部署Docker环境4.1 安装Docker4.2 检查Docker版本4.3 配置Docker镜像加速4.4 启动Doc…

yolov9-pytorch 深度学习目标检测算法模型

YOLOv9 论文 https://arxiv.org/abs/2402.13616 模型结构 YOLOv9将可编程梯度信息 (PGI) 概念与通用 ELAN (GELAN)架构相结合而开发,代表了准确性、速度和效率方面的重大飞跃。 算法原理 Yolov9将可编程梯度信息(PGI)和GLEAN&#xff08…

分数限制下,选好专业还是选好学校

目录 1.概述 1.1.综合考虑 1.2.个人经验分享 2.专业解析 2.1. 计算机科学与技术 2.2. 英语 2.3. 法学 2.4.专业VS学校 2.5.建议 3.名校效应分析 3.1. 名校声誉(品牌效应) 3.2. 资源获取 3.3. 学术氛围 3.4. 就业优势 3.5.小结 4.好专业和…

VPC Access Connector 介绍 - 让 Non-VPC product 也可以访问VPC Network内的资源

什么是VPC product 和 非 VPC product 在GCP 上, VPC product 指的是属于某个制定的vpc subnet, 具有至少1个 该 subnet 的内网ip的产品 常见的例如: compute engine / MIG (managed instances group)某些dataflow job (指定了 可选参数subnet )Cloud …

python基础语法学习(工程向)-Stage3-数据可视化

json 是一种轻量的数据交互格式,可以按照json指定的格式去组织和封装数据,而本质上是一个带有特定格式的字符串。 功能 json是在各个编程语言中流通的数据格式,负责不同编程语言之间的数据传递和交互。 格式 json的格式要求较为严格&#…

Proxmox VE (PVE) 教学 (3) | 在 Proxmox VE 中安装与配置 OpenWrt

大家好,很长时间没有更新这个系列了。最近正在开发新项目,刚刚想起来我是不是还有一个什么专栏没更新。 本期的网络配置背景同于前两期的描述( 详见https://www.hestudio.net/category/proxmox-ve/ ),这一期只是对网络配置的扩展,也就是安装软路由,实现网络配置的更多功…

高效、智能、安全:小型机房EasyCVR+AI视频综合监控解决方案

一、背景需求分析 随着信息技术的迅猛发展,小型机房在企事业单位中扮演着越来越重要的角色。为了确保机房的安全稳定运行,远程监控成为了必不可少的手段。 二、视频监控 视频监控是机房远程监控的重要组成部分。通过安装IP摄像机及部署视频监控系统Ea…

C++智能指针auto_ptr(有缺陷已废弃)

一、auto_ptr不能共享所有权 auto_ptr类没有拷贝构造函数。可以看出将Right对象的资源释放掉了。 在下面的操作中,ptr1的值给ptr2,那么此时ptr1的值将会为nullptr。在构造和赋值都发生了所有权的转移。调用函数的时候,接收参数的时候同样也会…

统一数据治理平台OpenMetadata 1.4.0版本发布!数据血缘、高级数据质量报告功能发布!...

OpenMetadata作为数据治理和元数据管理领域的领先开源平台,持续致力于满足数据用户和组织的多样化需求。最新的1.4.0版本为用户带来了一系列创新功能和重大改进,进一步增强了平台的功能性和易用性。 我们在社区统计数据中也看到了OpenMetadata的增长&…

JVM 基本组成

一、为什么要学习 JVM ? 1. “ ⾯试造⽕箭,⼯作拧螺丝” , JVM 属于⾯试官特别喜欢提问的知识点; 2. 未来在⼯作场景中,也许你会遇到以下场景: 线上系统突然宕机,系统⽆法访问,甚⾄直…

谷粒商城实战(042集群学习-mysql集群-主从同步)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第361p-第p363的内容 集群 集群的基础形式 MySQL集群 MMM机制 这里使用了vip虚拟ip方式(如192.168.0.101,192.168.0.102&…

Qt Quick 教程(一)

文章目录 1.Qt Quick2.QML3.Day01 案例main.qml退出按钮,基于上面代码添加 4.使用Qt Design StudioQt Design Studio简介Qt Design Studio工具使用版本信息 1.Qt Quick Qt Quick 是一种现代的用户界面技术,将声明性用户界面设计和命令性编程逻辑分开。 …

【Hive安装】— “schematool -initSchema -dbType mysql -verbose” 报错!!!

项目场景:Hive 元数据配置到 MySQL 执行 “schematool -initSchema -dbType mysql -verbose” 命令 问题描述 报错:org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !! 原因…

Exploring Performance and Cost Optimization with ASIC-Based CXL Memory——论文阅读

EuroSys 2024 Paper CXL论文阅读笔记整理 问题 随着内存密集型应用程序对内存需求的增加,受限于物理限制,如DDR DIMM插槽的可用性和发热问题,以及使用高密度DIMM的成本考虑,现代应用程序的内存需求很容易超过单机的内存容量[2&a…

【漏洞复现】海康威视 综合安防管理平台 session接口 远程代码执行漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] K小姐的座位分配(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

42、基于神经网络的训练堆叠自编码器进行图像分类(matlab)

1、训练堆叠自编码器进行图像分类的原理及流程 基于神经网络的训练堆叠自编码器进行图像分类的原理和流程如下: 堆叠自编码器(Stacked Autoencoder)是一种无监督学习算法,由多个自编码器(Autoencoder)堆叠…

【Windows】配置Flutter开发环境

一、下载 flutter sdk 点此跳至下载官网 下载好flutter sdk,并解压到自定义的位置。 二、配置环境变量 此电脑 --> 右键 选择 属性 --> 点击 高级系统设置 --> 会弹出系统属性的窗口,点击 环境变量 按钮 1.配置加速镜像地址 PUB_HOSTED_…

IP协议的相关特性

IP协议的报文结构 如图: 上述的IP协议是ipv4的版本,如上述图中的4位版本号。 现当今的世界仅有两个版本分为ipv4和ipv6。 在这里我以ipv4来介绍IP协议。 IP协议的报头最长为60个字节,最短为20个字节。 如图8个服务类型: 这里不…