[Linux篇] Linux常见命令和权限
文章目录
- 使用XShell登录Linux
- 1.Linux常用基本命令:
- 1.1 ls(列出当前的目录下都有哪些文件和目录)
- 1.2 cd (change directory 切换目录)
- 1.3 pwd(查看当前目录的绝对路径)
- 1.4 touch(创建文件)
- 1.5 cat(查看文件内容)
- 1.6 mkdir (创建目录)
- 1.7 rm (删除文件或者目录)
- 1.8 mv(移动文件) cp(复制文件)
- 1.9 man (查看帮助文档)
- 1.10 less vim
- 1.11 date 查看/设置/格式化时间
- 1.12 ps 得到正在运行的进程信息
- 1.13 netstat 查看网络状态
- 2.Linux权限:
使用XShell登录Linux
通过XShell登录到Linux之后,只有一行命令,我们要通过命令行来操作Linux,其实Linux和Windows都是一个操作系统,只不过Windows是通过图形化界面来操作的,通过对话框,窗口,键盘,鼠标来操作。
Linux服务器不太适合使用图形化界面
图形化界面是比较消耗资源(硬件资源),虽然以后我们以后见到的是一些配置比较更高的服务器,即便如此,也不会安装图形化界面,主要就是要把配置用到刀刃上。
- 图形化界面存在一些Bug,不稳定,容易崩溃,服务器则是要求要非常稳定的
- 服务器是通过网络远程操控的,如果是图形化界面。就需要让你的客户端和服务器之间传输画质(一帧一帧的图片)是非常占用带宽的,这个要比传输字符界面要复杂的多
- 命令行如果要使用熟练的话,操作效率是要远远高于图形化界面的,更不必说,命令行方便通过脚本来批量执行重复的任务

1.Linux常用基本命令:
1.1 ls(列出当前的目录下都有哪些文件和目录)
ls的功能就相当于Windows上的"‘文件资源管理器’"。

但是我们经常使用的不是这个ls,而是ls - l
ls -l : -后面个的指令,表示的是命令的选项。在Linux中的每个命令,都可以支持一些选项,通过这些选项来影响到命令的行为。
在Linux中输入ls -l

此处在ls 后跟的 -l 的作用就是 把查到的文件按照列表的方式显示,每个结果都占一行,这里显示的信息都更加详细了。

但是这个ls -l 还是比较麻烦的,我们可以直接使用ll指令,效果的ls -l 是一样的

额外补充:
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
- -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
- -l 列出文件的详细信息。
- -r 对目录反向排序。
- -t 以时间排序。
- -R 列出所有子目录下的文件。(递归) 图形化界面是比较消耗资源(硬件资源),虽然以后我们以后见到的是一些配置比较更高的服务器,即便如此,也不会安装图形化界面,主要就是要把配置用到刀刃上。
还有就是 我们直接输入 ls 执行的时候,相当于是查看当前目录中的内容
如果我们在ls 后面添加一个指定的目录,此时就是在查看其他目录里的信息
通过 / 就是查看 /` 目录中的内容 / 就相当于windows上的此电脑,Linux上是没有盘符这个概念的。
/ 也叫作根目录

1.2 cd (change directory 切换目录)
cd 后面跟上一个具体的目录,这个目录就表示要切换到哪里
cd往往是和ls 搭配使用的,连着结合们就可以完成Windows一样的查看文件和目录的效果。
这个操作,就是切换好了mysql 目录,我们也可以看到命令提示符由 ~ 变成了mysql
在这个cd命令后填写的目录,可以是绝对路径,也可以是相对路径。
在Linux上认为以 / 开头的就是绝对路径,从根目录这里往下数,获取到的完整路径,以 … 开头的就是相对路径,从当前目录开始往下找,找到一个不太完整的目录
当前命令行所在的目录就称为工作目录,指定相对路径,都是以工作目录为基准的。如果当前的工作目录不同,要找到同一个文件的相对路径,也就是不同的。
如果是以 .开头的人,此处的 . 就表示当前目录。./aaa 就是找当前目录中的aaa目录
如果是以 … 开头的,此处的 … 就表示当前目录的上级目录


cd ./root 和 cd root 的效果是一样的,都是在找当前目录中的root目录
还有一个技巧就是 当我们要 cd到具体的目录的时候,不一定非得把整个目录都写完,我们可以通过键盘上的tab键,来进行自动补全。
1.3 pwd(查看当前目录的绝对路径)
这个操作就相当于如果此时我们不知道在那个目录中操作的时候,使用pwd就可以知道自己此时处于当前的那个目录中操作

1.4 touch(创建文件)
在我们windows操作系统中的文件资源管理器中还有一些功能,我们在Linux中也是有相应的实现的。比如:创建文件,查看文件,创建目录,删除文件/目录
touch [文件名] 就能创建出一个空的文件出来
在root目录下创建一个aaa.txt文件,文件大小是为0的。

1.5 cat(查看文件内容)
cat [文件名] 就可以查看文件的具体内容。
查看root目录下的aaa.txt文件的内容

因为此时文件中没有任何消息所以没有打印文件信息
我们可以使用echo 命令在aaa.txt 文件中写入信息,但是这种操作只能写入简单的数据,我们在后文中会介绍到如何简单的使用vim 使用vim我们就可以进行复杂性的输入。

> 文件名:表示的是重定向,本来写到的数据是要写到标准输出上,但是此时重定向到aaa.txt文件中
1.6 mkdir (创建目录)
mkdir [目录名]
在ddd目录下创建 aaa,bbb,ccc 三个目录,在aaa目录中创建111.txt,在bbb目录下创建222.txt,在ccc目录下创建333.txt。

mkdir 后面填写的目录也是可以是绝对路径,也可以是相对路径。
在Linux中有一个专门的tree命令,博主上面就是使用了这个命令,它可以让我们看到每个文件的所属目录。了解目录结构
这个tree命令不是Linux自带的,而是一个第三方的工具,我们可以通过命令yum install tree -y 通过这个操作就可以安装tree命令,这个yum也是Linux上的一个命令(包括管理器,相当于手机的应用商店)
1.7 rm (删除文件或者目录)
rm [文件名]
删除ddd目录下的aaa目录中的111.txt文件

当我们在删除的时候,可能有这个提示,是否要真的删除,输入y(yes) 表示确认,输入其他值都表示取消。
这里的删除,不是说一定有提示的,有的时候可能不提示就直接删了
并且在Linux中是没有像windows中的回收站的,rm删除的文件,删了就是删了,就真的没有了 ,所以我们在删除的时候一定会要谨慎
rm也可以用来删除目录

但是我们此时是无法只是用rm进行删除的,我们可以通过 rm -r 进行删除

这里的-r 表示的是递归,要删除的目录下可能还有文件,或者其他的目录,要删除这个目录,就要先删除这个目录中的文件或者是子目录
但是我们在删除bbb目录的时候,可以看到我们删除一个目录要反复的输入好几次 y 才能把这个目录给删除了,这样是不是很麻烦,于是我们在添加一个使用rm -rf [目录] 就可以很快的删除目录,不需要来回的确认输入y
删除ccc目录

这个命令是一个更加快捷的删除操作,但是我们如果在删除的时候,一旦不小心删错了,就可能无法恢复了。
尤其是我们执行一个rm -rf /的时候,这个时候很可能就会酿成大错。
这个
/表示的就是此电脑,一个系统上所有的文件和目录都是在这个此电脑中的,就会把所有的系统文件和用户文件都给删除了,不光把你一些重要文件给删了,同时也把系统的文件给删了,此时就相当于一切都灰飞烟灭了,这个系统就挂了。
但是对于这个删除操作。每个学过Linux的童鞋都知道是一个非常危险的操作,但是还是有人不停的犯这个错误。
很多时候都是误操作,一不小心多加了一个空格,就把这个系统给删了。
rm -rf /root/aaa 我们其实是想删除root目录中的aaa目录中的文件。很不巧我们中间手一滑多加了一个空格。rm -rf / root/aaa 如果这里多加了一个空格 rm 就会以为你要删除两个目录,rm操作支持一个命令删除多个目录或者多个文件,多个文件之间使用空格隔开,第一个目录就是 / 第二个目录就是相对路径下的root/aaa 如果已经成了这样,那么删除root下的aaa文件已经无关紧要了,因为我们此时已经把整个系统给删了,何况root目录下的aaa目录,那不也是没了吗?
其实我们的CentOS为了应对这里的手误操作,专门的做出了一个保护机制,如果我们直接输入rm -rf / 此时会被提醒这是一个非常危险的操作,如果真的想 zuo si 那么就要输入一个no-preserver-root 那么此时就把这个系统中的目录和文件就全部删了
1.8 mv(移动文件) cp(复制文件)
mv 原路径 目标路径
cp 原路径 目标路径

将aaa目录下的111.txt文件移动到bbb目录中,使用mv 命令(没有给新的文件名,那么移动之后的文件名和移动之前的文件名是一样的)

在移动的时候,给移动文件重新起名字

mv命令不光可以移动文件,还可以修改文件的名称

cp命令的使用:

复制aaa目录中的555.txt文件到bbb文件

一边拷贝,一边重命名,把aaa目录中的555.txt文件复制到ccc文件中,并且改名为111.txt

mv和cp都是可以针对文件操作,也可以针对目录操作。对于mv来说 针对文件操作和对目录操作,没有区别,对于co来说,针对文件操作和针对目录操作,有点区别。
如果我们直接赋值目录,复制好的目录放到其他目录中

使用cp没法拷贝目录,这其实和rm类似,要想在目录中还有子目录或者文件。所以我们加上-r指令,就可以把目录拷贝到其他地方

1.9 man (查看帮助文档)
上面在介绍各种命令的时候,同时我们也知道了命令还有一些对应的选项
给一个命令,这个命令中都有哪些选项,每个选项都有什么意思,因为很多我们是记不来的。那么我们如果也到了就可以到网上查找。但是Linux中也提供了一个非常方面的查询工具,输入man + [你要查找的命令] 就可以在帮助文档中显示这个命令的功能和对应选项的功能,我们使用键盘中的上下键进行翻读,使用Q退出帮助文档

1.10 less vim
前面介绍的都是和文件和目录相关的操作,缺少一个非常重要的功能,就是能够查看和编辑文件
虽然我们前面的cat也可以查看文件信息,echo可以编辑文件,但是这两个只可以对简单的文件进行查看和编辑
less 主要用来查看文件,尤其是查看一些大的文件
vim可以查看文件,同样也可以编辑文件
less [文件名] 当使用less 打开一个大的文件的时候,就可以通过上下箭头来翻页,按Q就能退出。
这里的less是不能编辑文件的,但是他有一个最大的优势就是在于能够秒开大文件,尤其是需要查看日志的时候,可以使用,可能这里的日志会累计很大。
less打开文件的时候,只是把当前的一个屏幕里的内容给显示出来(显示多少就从磁盘中读取多少数据)
很多编辑器,都是把整个文件读取完,才进行显示的,如果文件特别大,就会很慢,并且也很吃内存
vim相当于Linux中的记事本。
我们在这里只需要了解vim的简单使用即可
打开vim
vim的初始界面 如果没有指定文件名,就是这个页面

vim [文件名] 那么此时就进入到了该文件的编辑页面
打开aaa目录下的555.txt文件
输入vim aaa/555.txt

如何进行编辑
打开编辑页面之后,此时还不能直接编辑,进入vim之后,默认处在normal node普通模式之下,普通模式中任何的键盘操作都不能直接输入文本,而是不同含义的快捷键,要想进行编辑,就要进入insert mode 插入模式,按小写的字母i 进入到insert mode 模式

输入123456789

使用键盘中的esc键退出insert模式
如何保存退出
使用:wq进行保存文件信息退出
1.11 date 查看/设置/格式化时间
在Linux中直接输入date 进可以显示出当前的时间

借助date可以用来转化时间戳
得到当前时间戳

把当前时间戳传回成可读的时间

1.12 ps 得到正在运行的进程信息
使用 ps -aux就可以得到进程的信息

grep对输出的结果进行筛选
ps -aux | grep vim

此处的 | 在Linux中叫做管道符,它的效果就是把前一个命令的输出,作为后一个命令的输入。ps -aux输出了一对内容,通过管道,导入grep命令中,grep命令就根据vim这个关键字记性查找,把包含vim这个字符串的行给留下
1.13 netstat 查看网络状态
我们经常在部署项目的是时候使用这个命令,查看端口是否被占用。

此时的8080端口被占用。
如果想要把这个进程结束,不让这个进程占用这个端口那么就是用kill -9 [进程Id] 结束这个进程
2.Linux权限:
其实权限就是约束你可以干什么,不可以干什么
Linux的权限主要体现在针对文件的操作上,针对文件,Linux体现除了三种操作,可读,可写,可执行

r:read 表示可读
w:write 表示可写
x:execute 表示可执行
d:表示这是一个目录,如截图中的ddd目录,-:表示一个普通文件
那么权限中的rwx为什么会出现3次?
因为Linux上针对用户,分为3类
1.文件拥有者
2.文件拥有者的同组人员
3.其他人员
Linux权限的基本盘,这个基本盘也是和公司的组织结构是有关的
在公司中会有很多项目组,其中你负责维护一个模块的代码,你就可以读,可以写
其他和你一组的同事,可以看你的代码,但是不一定能修改
其他组的同事,可能看都看不了。
但是还有一个特例,就是管理员用户(root就是管理员用户)管理员拥有最高的权限,无视以上的规则。
相关文章:
[Linux篇] Linux常见命令和权限
文章目录使用XShell登录Linux1.Linux常用基本命令:1.1 ls(列出当前的目录下都有哪些文件和目录)1.2 cd (change directory 切换目录)1.3 pwd(查看当前目录的绝对路径)1.4 touch(创建文件)1.5 ca…...
29岁从事功能测试被辞,面试2个月都找不到工作吗?
最近一个28岁老同学联系我,因为被公司辞退,找我倾诉,于是写下此文。 他是14年二本毕业,在我的印象里人特别懒,不爱学习,专业不好,毕业前因为都没找到合适工作,直接去创业了…...
【C#个人错题笔记1】
观前提醒 记录一些我不会或者少见的内容,不一定适合所有人 字符串拼接 int a3,b8; Console.WriteLine(ab);//11 Console.WriteLine("ab");//ab Console.WriteLine(a""b);//38 Console.WriteLine("ab"ab);//ab38 Console.WriteLine…...
基于lambda的mongodb查询插件
需求背景需要一个像mybatis plus 一样的基于lambda, 且面向对象的查询mongo数据的插件。在网上找了很久,没有发现有类似功能的插件。于是自己手写了一个,借助mongoTemplate屏蔽了底层查询语句的实现细节。在此基础上,实现了查询的统一封装。技…...
基于微信小程序的微信社团小程序
文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…...
GEE学习笔记 七十三:【GEE之Python版教程七】静态展示影像和动态展示影像
我们使用GEE在线编辑可以直接通过在线的网页可以加载展示我们计算的结果,而python版的GEE要展示我们的计算结果可能就比较麻烦。如果有同学看过GEE的python版API中可以找到一个类ee.mapclient,这个类的介绍是它是GEE官方通过Tk写的一个加载展示地图的类。…...
PGLBox全面解决图训练速度、成本、稳定性、复杂算法四大问题!
图神经网络(Graph Neural Network,GNN)是近年来出现的一种利用深度学习直接对图结构数据进行学习的方法,通过在图中的节点和边上制定聚合的策略,GNN能够学习到图结构数据中节点以及边内在规律和更加深层次的语义特征。…...
超详细的 pytest 教程(一)使用入门篇
前言 pytest到目前为止还没有翻译的比较好全面的使用文档,很多英文不太好的小伙伴,在学习时看英文文档还是很吃力。本来去年就计划写pytest详细的使用文档的,由于时间关系一直搁置,直到今天才开始写。本文是第一篇,主…...
二叉树理论基础知识点
二叉树的种类 在我们解题过程中二叉树有两种主要的形式:满二叉树和完全二叉树 满二叉树 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。 如图所示: 这…...
【算法基础】堆⭐⭐⭐
一、堆 1. 堆的概念 堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: (1)堆中某个结点的值总是不大于或不小于其父结点的值; (2)堆总是一棵完全二叉树。 将根结点最大的堆叫做最大堆或大根堆,根结点…...
时序预测 | MATLAB实现CNN-SVM卷积支持向量机时间序列预测
时序预测 | MATLAB实现CNN-SVM卷积支持向量机时间序列预测 目录时序预测 | MATLAB实现CNN-SVM卷积支持向量机时间序列预测预测效果基本介绍研究回顾程序设计参考资料预测效果 基本介绍 CNN-SVM预测模型将深度学习模型作为特征学习器,将SVM 支持向量机 作为训练器进行…...
【TypeScrip】TypeScrip的任意类型(Any 类型 和 unknown 顶级类型):
文章目录一、安转依赖:【1】nodejs 环境执行ts【2】使用ts-node二、Any 类型 和 unknown 顶级类型【1】没有强制限定哪种类型,随时切换类型都可以 我们可以对 any 进行任何操作,不需要检查类型【2】声明变量的时候没有指定任意类型默认为any【…...
智能洗地机什么牌子好?智能洗地机排行
要说家庭清洁热门的产品,洗地机肯定首当其冲,集洗吸拖为一体的清洁工具,省时又省力,可谓是家里清洁好助手,今天笔者就为大家介绍几款重量轻、噪音轻、拖地干净的洗地机! 一、CEYEE希亦T800洗地机 在国内,洗…...
【数据结构与算法】链表1:移除链表 设计链表链表反转(双指针法、递归法)
文章目录今日任务1.链表理论基础(1)什么是链表?(2)链表的类型(3)链表的存储方式(4)链表的定义(5)链表的操作(6)性能分析2.…...
山东大学软件学院面向对象简答题整理【个人向】
面向对象简答题整理【个人向】 0.试用面向对象语言简述改写和重定义的异同,以及方法绑定时的差别 改写是子类的方法和父类的方法具有相同的方法名和类型签名重定义是子类的方法和父类的方法方法名相同但类型签名不同在方法绑定时,改写是动态绑定&#…...
JAVA时间类及JAVA8新时间类
文章目录Java旧时间类关系图GMT、时间戳、统一标准时间、时区Java时间类创建时间类示例java.text.DateFormat时间格式转换java.util.Calendar总结Java时间类Java8新时间类InstantCloc…...
ASEMI代理FGH60N60SFD,安森美FGH60N60SFD原装IGBT
编辑-Z 安森美FGH60N60SFD原装IGBT参数: 型号:FGH60N60SFD 集电极到发射极电压(VCES):600V 栅极到发射极电压(VGES):20V 收集器电流(IC):120…...
【云原生之Docker实战】使用dokcer部署web端vscode
【云原生之Docker实战】使用dokcer部署web端vscode 一、vscode-server介绍二、检查本地docke环境1.检查系统版本2.检查docker版本3.检查docker状态三、下载vscode镜像四、部署vscode-server1.创建安装目录2.创建vscode容器3.查看vscode容器状态4.查看vscode容器日志五、访问vsc…...
Docker安装Tomcat、mysql、redis
目录 前言 一、安装Tomcat 二、安装mysql (一)简单版 (二)实战版 三、安装redis 前言 镜像可以先去Docker Hub Container Image Library | App Containerization 左上角搜,然后点进入可以看到具体的命令&#…...
【python 基础篇 八】python的常用数据类型操作-------集合
目录1.集合的基本概念2.集合的定义2.1 可变集合 set定义2.2 不可变集合 fronzenset 定义2.3 集合定义的注意事项3.单一集合的常用操作4. 集合之间操作4.1 交集4.2 并集4.3 差集4.4 判定1.集合的基本概念 无序的,不可随机访问的,不可重复的元素集合与数学…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

