linux-----基本操作指令(2)

news2024/11/19 10:34:26

将一个文件按照升序排序:注意这里面的S是大写

按照文件大小按照降序排列:ll -hS

按照文件大小按照升序排列:ll -hrS

一:cp(copy)表示复制,类似于windows系统上面的复制文件到指定文件夹的操作时类似的,拿鼠标一拖到指定路径

1)同时也就是说这个文件最终在复制成功之后,产生了两份一样的文件,况且原来的文件也没有消失

使用方法:cp 路径1(里面包括文件名字) 路径2

2)在上面这个操作中,我们是将Java.txt这个文件是放到了具有相同父亲目录的aaa目录下面,此时我们在aaa目录下面就可以看到Java.txt这个文件里面

3)cp Java.txt / 比说这个操作就是说最终把Java.txt存放复制到根目录下面

4)cp 文件名1 文件名2

这个操作就是cp 文件名1 文件名2,就是把文件1在当前的Java目录里面拷贝了一份,重新起了一个别名,叫做JavaWEB.txt,此时这两个文件的父亲目录是相同的

二:mv操作就是将拷贝这个文件放到指定目录里面:

mv+路径1+路径2

这两个路径中的参数都是绝对路径或者是相对路径都是均是可以的,路径1里面是包含了文件具体的名字

drwxr-xr-x 2 root root 4096 Dec 28 10:30 aaa
drwxr-xr-x 2 root root 4096 Dec 28 10:22 bbb
-rw-r--r-- 1 root root    0 Dec 28 10:23 Java.txt
[root@iZ0jlj3x52ipcniwz9v5yrZ Java100]# mv Java.txt aaa
/上面的操作就是说把Java100目录下面的Java.txt这个文件放到aaa这个路径下面
[root@iZ0jlj3x52ipcniwz9v5yrZ Java100]# mv ./aaa/Java.txt ./
这个意思就是说将Java100目录中的aaa目录下面的Java.txt文件移动到当前Java100的路径下面
[root@iZ0jlj3x52ipcniwz9v5yrZ /]# mv ./Java100/Java.txt ./home
这个意思就是类似于说我们将根目录下面的Java100这个目录中的Java.txt文件存放到当前根目录下面的目录home目录里面

我们在上面的移动过程中不光移动了文件还移动了文件的内容

1)我们在这里面一定要注意mv直接就可以移动文件或者是移动目录,但是我们的cp操作只能直接拷贝文件,如果说想要拷贝目录,那么就必须直接加上-r参数,这个指令的意思是递归,递归拷贝的意思是,把目录里面的文件和子目录都进行拷贝

[root@iZ0jlj3x52ipcniwz9v5yrZ Java100]# cp -r ./aaa ./bbb
把Java100里面的目录aaa目录以及里面的文件都拷贝到了bbb目录下面

2)在我们的linux操作中,如果执行成功,一般没有提示,如果执行失败了,就会提示具体的错误信息

3)mv除了移动之外,还有一个功能,就是说可以给文件进行重命名

mv+文件1的名字+文件2的名字

4)mv操作,本质上就是是说在修改文件的名字或者是路径,但是咱们的cp操作,本质上就是说要进行拷贝大量的文件及其数据,一个硬盘写的速度也就是说200MB/s

一:man查看命令的帮助手册:

man+指令,就可以进行查看具体的使用方法,按q来进行退出帮助手册的界面

二:head+文件名字:查看文件的开头前十行

head+文件名不进行任何指定的时候,只会显示10行,我们可以通过head+(-n)+行数+文件名,此时就可以显示指定的行数(-n不是负号)

三:tail+文件名字:查看文件的末尾

tail+文件名字在我们不进行任何指定的时候,只会显示文件的默认后10行,同时我们也可以通过tail+(-n)+行数+文件名,是进行显示指定的行数

上述三个命令,都是通过进行查看文件的,因为使用cat来进行查看文件是很不方便的,所以才有上面三个命令(我们按住q退出)

cat查看文件内容显示的就是一大堆,echo向里面写文件也是十分的不方便,所以说我们又诞生了以下命令:

一.less+文件名,内置了翻页功能

1)在进行查看文件的时候会有翻页功能(使用方向键上下移动)

2)less命令是不能进行文件的编辑;按住q键就可以进行退出了;

3)less最大的优势在于,能够对大文件进行秒开,正常的一个编辑器(记事本),在进行打开文件的时候,就会把文件里面的内容都会读到内存里面,这就会涉及到大量的磁盘IO,如果文件很大,就会打开的很慢,甚至会打开失败,我们的less只是把当前屏幕显示的这一块给进行加载到内存里面,随着翻页,随着加载新的部分(懒加载),我们以后要是在服务器上面打开一个比较大的文件,使用less就是一个明智的选择,为所以说我们经常用它来进行查看服务器的日志文件

4)less和cat最大的区别是:less命令会分一页一页地显示文件内容,cat会一次性全部显示

二:vim,他就相当于是Linux上面的记事本,既能读文件,也可以进行编辑文件

我们此处针对vim最基本的使用,主要掌握三个操作

1)使用vim来进行创建和打开文件

2)我们使用vim来进行编辑文件内容

3)我们使用vim来进行保存退出

0)vim+文件名这样就可以打开一个文件,如果文件不存在,就会创建一个文件,按下命令回车之后,我们就打开了文件(方向键移动光标)

1)对于咱们的Java程序员来说,vim这个编辑器是有模式的,刚一开始是打开的时候,vim此时就处于Normal模式,在这个模式下,键盘的大部分按键不是用来输入的,而是表示快捷键

2)按下小写字母i我们就可以进入到insert模式了,此时就开始显示INSERT,此时我们就可以进行编辑了,所以说只要我们一旦进入到vim,就立即按下i;我们此后就是可以使用方向键来进行编辑文件里面的内容了

如何进行保存退出呢?

3.1)首先我们要按下esc,回到普通模式(多按几次esc也是没有关系的),此时我们最下面的-- INSERT --就会消失

千万不要按ctrl+s保存,因为ctrl+s表示,功能是冻结屏幕,为啥Xshell有这个功能,因为是说有时候日志打印太快,如果说真是按下了ctrl+s,我们就直接按下ctrl+q

3.2)然后我们再次按下":wq回车"或者是":x",我们就可以保存退出了,我们在normal模式下,进行输入":",我们的光标就可以来到最下面这一行了,就来到了窗口左下角,这里面的w就是write,这里面的q就是quit也就是退出的意思

当我们使用vim打开文件之后,此时默认进入到普通模式(normal),普通模式下面键盘按键并不是编辑框输入的内容,而是表示特殊含义的快捷键,要想说真的能够实现编辑,就需要进行进入到插入模式(insert mode),此时的键盘按键才是真正的输入内容

3.3):q是强制退出,如果说文件已经改变了,那么:q会直接报错

3.4)如果说我们强制退出,但是不进行保存的话,那么我们就使用:":q!";

思考:我们为什么来进行引入模式呢? 

主要是为了说引入海量的快捷键,如果说没有模式,那么上来就进行编辑,那么快捷键必须搭配alt/ctrl等按键通过组合键的形式来进行搭配使用,但是我们引入组合键只需要按一个键就可以了

linux权限:

权限代表对操作的限制,在linux中,我们主要把权限分成四类:

1)r表示可以读

2)w表示可以写

3)x表示可以执行

4)-表示没有对应的权限

drwxr-xr-x.  90 root root 4.0K Dec 28 11:57 etc
drwxr-xr-x.   3 root root 4.0K Dec 28 10:51 home
drwxr-xr-x.   2 root root 4.0K Feb  9  2022 media

4.1)所以说咱们就可以进行观察一下,我们图片中最前面的字母,-表示普通的文件,d表示目录文件,这和权限是没有任何关系的,这只是说明这只是一个文件类型

4.2)后面是9个英文字母,分成三个三个一组,这才是和真正和文件操作相关的权限

就比如说

4.3)rw-表示可以读,可以写,不可以执行

4.4)rwx表示可读可写可执行

比如说现在来了一堆字符串rwxr-xr-x,我们就可以把这个字符串分成三组

1)rwx:表示文件拥有者的权限,可读可写可执行

2)r-x:表示同组用户的权限,表示可读,不可写,可执行

3)r-x:表示其他用户的权限,表示可读,不可写,可执行

什么叫做文件可执行呢?

1)可执行就是说可不可以把这个文件当成一个命令来进行执行,就比如说ls,mv,cp,man这些命令从本质上来说都是可执行文件,才能进行执行,可以让系统运行起来变成一个进程

2)在linux中有一个特殊用户,root是管理员拥有最高权限,不遵守上述规则

3)每一个文件的权限,是三种,但是这三种权限,是可以根据不同的用户来进行分别设定的,linux把用户分成了三类:文件拥有者,文件拥有者的同一组用户,还有其他用户,实际上再进行管理权限的时候,是针对每一个文件,再针对这一个文件的三种用户,分别进行设置是否可读,可写,可执行;

我们再举一个买房子的例子,假设我买了一个房子,在房产证上面写上了我和我女朋友的名字

1)我和我女朋友是这所房子的主人,我和我女朋友是房子的拥有者,那么此时我可以看看房子是什么样子的(只读权限),然后还可以对房子进行装修(写权限),还可以将房子进行出租(可执行)

2)我儿子就属于同组用户,如果说他想要看看这个房子是什么样子(读权限),那当然是可以的了,如果说他想在墙上面乱涂乱画,那就是欠揍了(没有写权限),偷着把房子给别人了(没有可执行的权限)

3)假设说有一个人看这个房子装修的不错,想进来看看,这个可是不行的,她连读的权限都没有

yum就相当于是应用商店,就是一个包管理器 

1)yum install 软件包名,在应用商店上面下载软件开发工具包

2)yum list罗列出linux上面的所有上面的软件开发工具包

3)grep这是一个特殊的命令,他的功能就是说进行字符串的过滤

4)l叫做管道,功能是把前一个命令的输入作为后一个命令的输出,相当于是一根管,把两个命令给连接起来了

所以说我们的yum list | grep jdk的这个命令的大致意思就是说罗列出linux中的所有软件开发工具包,然后把这个命令执行的结果,也就是说展示了所有软件开发工具包,交给后面的一个命令来进行筛选,grep jdk就是说在这些软件开发工具包里面查找是jdk的开发包
 

PS(process show) 是linux中的任务管理器,是用来进行查看当前系统中的进程的,会打印所有linux主机上面的所有进程

我们可以通过这个命令来进行罗列出系统上面的所有进程:ps+aux

一:下面是展示结果中的出现的每一行的名字:

1)USER:表示用户的名字

2)PID:当前进程的编号,每一个进程都是有唯一的一个编号的

3)%CPU:表示这个进程吃了多少CPU

4)%MEM:表示占据了多少内存

5)STAT:表示进程的状态

6)START:表示进程的启动时间

7)COMMAND:进程的具体命令

netstat查看网络状态,netstat -anp,可以看到当前系统的所有的网络上连接(通过哪个命令来查看进程信息?或者通过哪个命令来查看3306端口?)

但是这个命令把所有的网络状态都给显示出来了

比如说我们想要看看某个服务是否启动,那么我们就可以通过这个命令来进行查看端口,例如看看MYSQL这个服务器是否启动了:netstat -anp | grep 3306,就是查看3306端口是否被MYSQL所绑定?

 

一:但是实际上,我们直接使用ps+aux是把当前的进程全部列出来了,如果我们只想关注其中的某一个结果,实际上是不好找的;

二:我们直接可以这么找vim进程:ps aux l grep vim,我们再进行使用ps的时候,通常会搭配l;

l在linux中叫做管道,功能就是把前一个命令的输出作为后一个命令的输入,ps aux是把所有结果查找到,grep根据输入来查询结果,grep命令相当于是一个字符串匹配,后面的参数就是我们要进行查找的关键字

还有我想要查看tomact进程 ps aux | grep tomact

 

如何在云服务器,让用户部署程序在外网上访问

想要进行部署,我们就需要先进行搭建所依赖的环境,比如说JDK(Java运行环境),Tomact(把我们打的war报运行在Tomact上面),MYSQY

一:安装JDK,通过yum命令就可以了,yum就相当于是linux的应用商店

1)我们先用yum来进行搜索一下,看看yum有没有jdk的软件包:yum list | grep jdk,执行这个结果之后,会出现大量的jdk安装包

2)我们就需要用并选择JDK1.8(带这个devel后缀才是完整的安装包,没有后缀或者后缀名为其他字符串就是安装包是一部分,x86_64就是表示的是这个软件包适用的CPU是x86CPU)

3)yum install 软件包名(root用户下才可以安装软件);

我们直接输入命令yum install java-1.8.0-openjdk-devel.x86_64;

4)如果安装完成后,输入javac,我们就可以看到javac的选项(一大堆的字母)而不是说找不到javac这样的命令,就说明就安装成功了;

5)上面的操作必须都是root用户才可以进行安装,如果说你不是root用户,那么必须要进行切换到root用户,需要你输入root用户的密码

2)tomact是跨平台的程序,只要在官网上面下载好压缩包,进行解压缩,就可以了,如果我们使用yum list | grep tomact,最终的yum商店里面的Tomact就是版本太低,最高才是3.0系列

咱们使用的是Tomact8.5系列,但是Tomact8和JDK1.8和Servlet3.1版本必须都匹配才可以

1)我们直接把本地的Tomact打成压缩包,直接拖拽到linux服务器里面

2)进行解压缩:unzip apache-tomact-8.5.66.zip

在我们首次使用linux服务器的时候,我们直接把windows上面的文件拖拽到xshell里面可能是不成功的,因为我们的拖拽上传是需要进行依赖rz命令的,所以说我们首先需要进行yum

咱们的rz是直接将windows上面的文件传输给linux服务器,但是咱们的sz是将linux上面弄的文件传输给windows上面

install lrzsz来进行安装上传文件依赖的命令,然后在进行上传

unzip找不到就直接yum install unzip来进行下载

3)我们需要进行启动Tomact,正常的话我们在windows系统中是通过点击startup.bat来进行启动的,所以说我们如果说想要启动Tomact就需要用到startup脚本,其中.bat是给windows用的,咱们的.bat是给windows用的,咱们的.sh是给Linux用的

4)所以说我们在进行首次使用的时候,需要给所有的.sh文件设置可执行权限,我们需要先cd到bin目录下面,然后再进行执行以下命令,就表示给目录中的所有.sh后缀的文件都加上可执行权限,首次使用的时候需要加上这个命令chmod +x *.sh,执行完这个权限之后,我们发现很多的文件都变成了绿色,绿色表示可执行

小结:我们在Linux上面进行配置Tomact稍微有一点麻烦

1)我们需要在官方网站上面下载.zip包

2)我们还需要把zip传输到linux上面,直接通过xshell来进行拖过去,有时还需要进行安装lrzsz

3)使用unzip命令来进行解压缩,有时候需要进行安装unzip

4)我们需要进行切换到bin目录,给所有的.sh加上可执行权限,chmod +x*.sh

5)sh startup.sh进行启动

6)验证Tomact是否在正常工作?

6.1)我们此时可以通过查看Tomact进程的具体信息,可以直接通过命令

ps aux | grep tomact

6.2)我们直接可以进行查看端口号8080是否被某一个进程所绑定

netstat -anp | grep 8080

6.3)我们还可以进行看一下是否我们可以访问到Tomact的访问页面,如果说我们最后可以访问到欢迎页面,说明就可以进行安装启动成功了外网IP+端口号

[root@VM-4-3-centos bin]# ps aux | grep tomact
root     22274  0.0  0.0 115928  1020 pts/0    R+   18:02   0:00 grep --color=auto tomact
[root@VM-4-3-centos bin]# netstat -anp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      22104/java  

我们只有在遇到listen状态,才算启动成功

假设如果说我们的8080端口号已经被占用了,那么我们需要手动修改一个没有被其他进程所占用的端口号

1)查看8081端口是否被占用,看看是不是空闲的端口通过netstat -anp |grep 8081

2)修改conf里面的server.xml,修改端口号是8081

3)有可能是8005端口号被占用,实在不行就换成8006(先通过指令8006是否被占用)

由于我们在主机上面,一个端口号只能被同一个应用程序所进行绑定,但是假设由于我们的8005或者是8080被别的端口号所占用了,所以我们就需要进行更换别的端口号

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

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

相关文章

Python实现的通用的二进制数据分析工具,分析任意格式的二进制数据,还能同时查看协议文档

这是一个通用的二进制数据分析工具。 完整程序代码下载地址:Python实现的通用的二进制数据分析工具 它能做什么 分析任意格式的二进制数据,还能同时查看协议文档逐字节、逐位分析手动、自动分析对分析结果建透视图,发现规律,学习…

IO流的节点流和处理流(缓冲流)and ZIP流使用

流的名称 字节流和字符流的区别 每次读写的字节数不同; 字符流是块读写,字节流是字节读写; 字符流带有缓存,字节流没有 java流在处理上分为字符流和字节流。字符流处理的单元为2个字节的Unicode字符,分别操作字符、…

scipy.interpolate插值方法介绍

文章目录scipy.interpolate插值方法1 一维插值2 multivariate data3 Multivariate data interpolation on a regular grid4 Rbf 插值方法scipy.interpolate插值方法 1 一维插值 from scipy.interpolate import interp1d 1维插值算法 from scipy.interpolate import interp1d…

u盘损坏后如何恢复数据?

u盘经常被用作移动数据存储盘。可以通过USB接口将u盘插入电脑,将需要复制的数据发送到u盘;然后拔掉u盘,插入另一台电脑的USB口打开,就可以把数据复制到另一台电脑上了。实现数据传输。但有使用就意味着有意外,当我们使用中出现了u…

Flowable教程

文章目录一、Flowable介绍1.简介2.Activiti、Flowable、Camunda二、Flowable实战(集成Flowable Modeler)三、流程的创建和使用1.BPMN基本概念介绍2.业务模型流程创建3.表单创建及使用4.流程的使用5.核心表介绍四、常见报错解决一、Flowable介绍 1.简介 …

3.JMeter基本组成部分

文章目录2.3 JMeter基本组成部分2.3 .1线程组2.3.1.1 添加线程组2.3.1.2 线程组的特点2.3.1.3 线程组分类2.3.1.4 线程组属性2.3.2 取样器 HTTP请求2.3.3 查看结果树2.3 JMeter基本组成部分 2.3 .1线程组 线程组是控制JMeter将用于执行测试的线程组数,也可以把一个…

代理模式

“接口隔离”模式 在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题、甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。 典型模式 ①门面模式 ②代理模式 ③适配…

[oeasy]python0033_回车_carriage_return_figlet_字体变大

回到开头 回忆上次内容 进程前后台切换 ctrl z 把当前进程切换到后台并暂停jobs 查看所有作业 用 fg 可以把后台进程再切回前台 fg %1 可以把指定的任务切回前台用 bg 可以让进程在后台运行 进程查询 ps -elf 查看所有进程信息ps -lf 查看本终端相关进程信息kill -9 PID 给进…

部署项目到Nginx

目录 1、将vue脚手架项目打包 2、将服务端项目打为jar包后上传到linux 3、 使用nginx解决跨域问题 5、 proxy_pass配置问题 1、将vue脚手架项目打包 运行:npm run build命令将vue cli项目打包。 路径在终端会显示 在虚拟机上将此文件上传入nginx中 然后打开nginx,显示页面…

linux下以rpm包安装mysql

目录 下载 上传解压 安装 编辑my.cnf配置文件 启动数据库 修改初始密码,授权远程登录 常见问题 下载 访问以下地址下载对应操作系统下所需的版本 https://downloads.mysql.com/archives/community/ 上传解压 使用ftp或者rz命令上传压缩包到服务器并执行 tar -xvf 压…

JavaScript手写响应式原理(详解)

响应式原理 首先我们有一个对象 const obj {name: zlk,age: 18}这个对象可能在别处被用到 比如是这样的 function foo() {const newValue obj.nameconsole.log(hello world);console.log(obj.name);}我们来改变obj对象中的name的值 obj.name zlk这时候foo()应该被重新执…

Android设计模式详解之代理模式

前言 代理模式也称为委托模式,是一种结构型设计模式; 定义:为其他对象提供一种代理以控制对这个对象的访问; 使用场景:当无法或不想直接访问某个对象或访问某个对象存在困难时,可以通过一个代理对象来间…

css实现圆环、渐变色圆环的多种方式

css实现圆环、渐变色圆环的多种方式一、实现圆环方法具体如下:1. 两个div标签的叠加2.使用伪元素,before/after3. 使用border4. 使用border-shadow5. 使用radial-gradient二、实现渐变色圆环方法具体如下:1.background:linear-gra…

详细记录拉链表的实现过程

面试中被问到了,想了会儿思路混乱没答好,还是理解的不够深刻,重新好好理解记录一下~ 拉链表的用途,主要是用来在数仓中记录业务库数据的全部历史信息和当前最新信息,也就是用来实现对渐变维的记录。数仓中对渐变维的记…

.NET和JavaScript控件丨Infragistics功能简介

使用Infragistics Ultimate UI/UX工具包简化开发,提供综合的企业级 UI控件库和使用Indigo.Design的 UX设计-开发协作工具 -一个完整的设计到代码系统- 集成原型、设计系统、用户测试、应用程序构建和代码生成。 终极开发者工具包 为任何平台上的任何设备设计、现代…

minikube start

因为要安装的中间件需要运行在k8s的环境里。官方推荐用minikube 运行minikube start时遇到问题。 容器下载速度为0 (没有截屏)kubectl初始化超时 initial timeout of 40s passed: 解决问题1,需要加上–image-mirror-countrycn’参数。如果…

长短期记忆网络(LSTM)

长短期记忆网络有三种类型的门:输入门、遗忘门和输出门。 长短期记忆网络的隐藏层输出包括“隐状态”和“记忆元”。只有隐状态会传递到输出层,而记忆元完全属于内部信息。 长短期记忆网络可以缓解梯度消失和梯度爆炸。 由于序列的长距离依赖性&#…

27移除元素--双指针(快慢指针)

27移除元素–双指针(快慢指针) 移除元素这道题看起来很简单,但其蕴含的快慢指针的思想十分重要。 双for循环(暴力法)-- O(n2n^2n2) 使用第1个for循环 i 遍历数组所有元素 使用第2个for循环从 i 开始进行数组元素的前移…

骨传导耳机伤耳朵吗、骨传导耳机适合适用的人群有哪些?

事实上,骨传导耳机是对耳朵最健康的一种耳机了,下面就来详细说说这种耳机。 骨传导耳机是以人的骨骼为介质,不经过外耳道和耳膜,将声音传递给听觉器官的耳机。他对人的耳朵损害相比起传统的耳机损害更小,因为听力受损…

JavaSE笔记——Lambda表达式

文章目录前言一、第一个Lambda表达式二、如何辨别Lambda表达式三、引用值,而不是变量四、函数接口五、类型推断总结前言 Java 8 的最大变化是引入了 Lambda 表达式——一种紧凑的、传递行为的方式。 一、第一个Lambda表达式 Swing 是一个与平台无关的 Java 类库&a…