将一个文件按照升序排序:注意这里面的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被别的端口号所占用了,所以我们就需要进行更换别的端口号