Linux高级

本文涉及的产品
云防火墙,500元 1000GB
简介: Linux高级

一:Linux命令

1.文件目录操作命令

1.1 ls

作用: 显示指定目录下的内容 list

语法: ls [-al] [dir]

说明:

   -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)-all

   -l 除文件名称外,同时将文件型态(d表示目录,-表示文件, l表示软件连的文件)、权限、拥有者、文件大小等信息详细列出


注意:

   由于我们使用ls命令时经常需要加入-l选项,所以Linux为ls -l命令提供了一种简写方式,即ll

  常见用法:

   ls -al     查看当前目录的所有文件及目录详细信息

   ls -al /etc   查看/etc目录下所有文件及目录详细信息

   ll      查看当前目录文件及目录的详细信息  

1.2 cd

作用: 用于切换当前工作目录,即进入指定目录

语法: cd [dirName]

 

特殊说明:

   ~    表示用户的home目录

       如果当前用户是root,则切换到root用户下,普通用户则切换到home目录下

   .     表示目前所在的目录

   ..     表示目前目录位置的上级目录

 

举例:

   cd     ..        切换到当前目录的上级目录

   cd     ~        切换到用户的home目录

   cd     /usr/local    切换到/usr/local目录

1.3 more

作用: 以分页的形式显示文件内容

语法: more fileName

特点:独占一个命令终端窗口,并且适合读取大的文件内容,且按照百分比加载展示;

使用场景:读取一些大文件,且从头开始读取的场景

操作说明:

   回车键     向下滚动一行

   空格键     向下滚动一屏

   b         返回上一屏

   q或者Ctrl+C    退出more

 

举例:

   more /etc/profile        以分页方式显示/etc目录下的profile文件内容

1.4 cat

作用: 用于显示文件内容

特点:一次性全量查看文件内容

使用场景:一般用在小文件读取的场景(大文件不适用)

语法: cat [-n] fileName

说明:

   -n: 由1开始对所有输出的行数编号(显示行号-number)


举例:

   cat /etc/profile        查看/etc目录下的profile文件内容

   cat -n /etc/profile

1.5 tail

作用: 查看文件末尾的内容

语法: tail [-f] fileName

使用场景:可以实时查看文件末尾行的动态变化,方便实时追踪

说明:

   -f : 实时的动态读取文件末尾内容并显示,通常用于日志文件的内容输出

 

举例:

tail /etc/profile        显示/etc目录下的profile文件末尾10行的内容

tail -20 /etc/profile    显示/etc目录下的profile文件末尾20行的内容

tail -f /itcast/my.log    动态读取/itcast目录下的my.log文件末尾内容并显示

               一旦使用-f后,命令会独占一个终端窗口;

               使用ctrl+c退出

1.6 mkdir

作用: 创建目录

语法: mkdir [-p] dirName

说明:

   -p: 确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建


举例:

   mkdir itcast  在当前目录下,建立一个名为itcast的子目录

   mkdir -p itcast/test   在工作目录下的itcast目录中建立一个名为test的子目录,若itcast目录不存在,则建立一个

1.7 rmdir

作用: 删除空目录 (remove directory)

语法: rmdir [-p] dirName

说明:

   -p: 当子目录被删除后使父目录为空目录的话,则一并删除

       反之,如果父目录不为空,则不删除


举例:

   rmdir itcast   删除名为itcast的空目录

   rmdir -p itcast/test   删除itcast目录中名为test的子目录,若test目录删除后itcast目录变为空目录,则也被删除

   rmdir itcast*   删除名称以itcast开始的空目录

2.拷贝移动命令

2.1 cp

作用: 用于复制文件或目录(copy)

语法: cp [-r] source dest

   -r:表示对目录递归复制

   source:源文件/目录

   dest:目的地


说明:

   -r: 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件


举例:

   cp hello.txt itcast/            将hello.txt复制到itcast目录中

   cp hello.txt ./hi.txt           将hello.txt复制到当前目录,并改名为hi.txt

   cp -r itcast/ ./itheima/        将itcast目录和目录下所有文件复制到itheima目录下

   cp -r itcast/* ./itheima/          将itcast目录下所有文件复制到itheima目录下

2.2 mv

作用: 为文件或目录改名、或将文件或目录移动到其它位置(move)

语法: mv source dest

举例:

   mv hello.txt hi.txt                 将hello.txt改名为hi.txt(移动hello.txt到当前位置,并重命名=重命名)

   mv hi.txt itheima/                  将文件hi.txt移动到itheima目录中

   mv hi.txt itheima/hello.txt           将hi.txt移动到itheima目录中,并改名为hello.txt

   mv itcast/ itheima/                 如果itheima目录不存在,将itcast目录改名为itheima

   mv itcast/ itheima/                 如果itheima目录存在,将itcast目录移动到itheima目录中

3.打包压缩命令

tar

作用对文件进行打包、解包、压缩、解压

语法: tar  [-zcxvf]  fileName  [files]

   约定:

       包文件后缀为.tar表示只是完成了打包,并没有压缩

       包文件后缀为.tar.gz表示打包的同时还进行了压缩

说明:

   -z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压

   -c: c代表的是create,即创建新的包文件(打包)--》(如果c与z参数配合,则表示打包并压缩)

   -x: x代表的是extract,实现从包文件中还原文件(拆包)-->(如果x与z参数配合,则表示解压并拆包)

   -v: v代表的是verbose,显示命令的执行过程

   -f: f代表的是file,用于指定包文件的名称

   注意点:命令中x与c二选一,如果z配合c一块使用,表示打包并压缩

           如果z配合x一块使用,表示解压并拆包

注意:指令f一定放到最后

4.文本编辑命令

4.1 vi

作用: vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本

语法: vi fileName

说明: 1). vim是从vi发展来的一个功能更加强大的文本编辑工具,编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用。 2). 对于vim命令,如果在你的linux系统上没有安装,需要我们自己安装。可以使用下面的命令来完成安装:yum install vim

4.2 vim

作用: 对文件内容进行编辑,vim其实就是一个文本编辑器 语法: vim fileName 说明: 1). 在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。 2). vim在进行文本编辑时共分为三种模式,分别是 命令模式(Command mode),编辑模式(Insert mode)和底行模式(Last line mode)。这三种模式之间可以相互切换。我们在使用vim时一定要注意我们当前所处的是哪种模式。  

1)在命令模式下进入编辑模式的按键
命令 描述
i 在光标的前面插入字符
a 在光标的后面添加入字符
o 在光标下一行插入字符
2)命令模式下常用的编辑命令
命令 描述
yy 复制当前行
p 粘贴
dd 删除当前行
u 撤销
/字符串 搜索字符串的内容 n: 查找下一个 N:查找前一个
3)在命令模式下进入底行模式的按键
命令 描述
:wq write quit 保存退出
:q! 强制退出,不保存
:wq! 强制保存退出,用于只读文件

5.查找命令

grep

使用字符串搜索文本,并把匹配的行和行号打印出来。


grep 参数 搜索的字符串 搜索的文件

说明:

   1.在文件外部就可以进行字符串的搜索行

   2.参数:

       i:忽略大小写

       n:行号

       v:不匹配

   3.搜索的内容所属的文件必须存在当前目录中

二:在Linux上安装Jdk

前言:其实在实际的开发中,安装软件并不是后端开发人员所掌握的,而是由运维人员去实现的,但作为一个后端开发人员,我么也要去了解一下其Linux安装软件的运作方式。

在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下:

安装方式 特点
二进制发布包安装 软件已经针对具体平台编译打包发布,只要解压,修改配置即可。例如tomcat
rpm(redhat package manager)安装 软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,==但是包之间有可能具有依赖关系,因此不能自行解决库依赖问题,比较麻烦。==
yum安装 一种在线软件安装方式,本质上还是rpm安装,自动下载安装包并安装,安装过程中自动解决库依赖问题(安装过程需要联网)
源码编译安装 软件以源码工程的形式发布,需要自己编译打包。类似.java文件需要编译成.class文件安装方式。第一个二进制发布包安装相当于直接拿到.class文件直接安装。

在linux操作系统下,我们常将软件安装在自定义的目录下,例如soft文件下

操作步骤:

1、在/usr/local目录下创建自定义soft目录

2、使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux

3、切换到soft目录下

4、解压安装包,命令为tar -zxvf jdk-8u171-linux-x64.tar.gz(有关的jdk8的安装包可以关注博主私信)

5、配置环境变量,使用vim命令修改/etc/profile文件,在文件末尾加入如下配置 按字母G跳转到文件尾部

   # 注意:/usr/local/soft/jdk1.8.0_171 路径不固定,是你的jdk路径位置,复制下面的路径到配置文件/etc/profile

   JAVA_HOME=/usr/local/soft/jdk1.8.0_171

   CLASSPATH=.:$JAVA_HOME/lib

   PATH=$JAVA_HOME/bin:$PATH

   export JAVA_HOME CLASSPATH PATH

6、重新加载profile文件,使更改的配置立即生效,命令为source /etc/profile

7、检查安装是否成功,命令为java -version ,若出现了java的版本号,即安装成功!

三:在Linux上安装Tomcat

1、使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux

2、切换到soft目录下

3、解压安装包,命令为tar -zxvf apache-tomcat-8.5.27.tar.gz(有关的tomcat的安装包可以关注博主私信)

4.启动tomcat,进入相应目录(tomcat的bin目录),在Linux操作系统下,启动tomcat为:startup.sh

5.查看linux的所有进程命令为:ps -aux | grep tomcat

(**注意:"|" 为linux的管道符)若出现 tommcat.start 即表示启动成功,如下图

安装好tomcat后,我们可以在windows访问tomcat会出现访问失败,这是因为linux系统本身的防火墙原因,解决方法有两个,第一为:关闭防火墙(不安全) 第二为:暴露端口号

以下为操作防火墙的命令

操作 指令 备注
查看防火墙状态 ==systemctl status firewalld== / firewall-cmd --state
关闭防火墙 systemctl stop firewalld
永久关闭防火墙(禁用开机自启) systemctl disable firewalld ==下次启动,才生效==
暂时开启防火墙 systemctl start firewalld
永久开启防火墙(启用开机自启) systemctl enable firewalld ==下次启动,才生效==
重启防火墙 systemctl restart firewalld
开放指定端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent ==需要重新加载生效==
关闭指定端口 firewall-cmd --zone=public --remove-port=8080/tcp --permanent ==需要重新加载生效==
立即生效(重新加载) firewall-cmd --reload
查看开放端口 firewall-cmd --zone=public --list-ports

注意:

A. systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作

B. firewall-cmd是Linux中专门用于控制防火墙的命令

C. 为了保证系统安全,服务器的防火墙不建议关闭

因此采用关闭防火墙为:

systemctl stop firewalld

采用暴露端口号为:

①. 先开启系统防火墙

systemctl start firewalld

②. 再开放8080端口号

firewall-cmd --zone=public --add-port=8080/tcp --permanent

③. 重新加载防火墙

firewall-cmd --reload

关闭tomcat也有两种方法

一为:在tomcat的bin目录下有一个为shutdown.sh的命令,二是:使用ps -aux | grep tomcat 查看tomcat的进程号,在使用 kill -9 进程号 强制杀死进程

相关文章
|
27天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
3天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
374 16
|
19天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
6天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
21天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
23天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2595 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
5天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
183 2
|
3天前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
105 65
|
7天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
334 2
|
23天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1580 17
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码