Mushroom Notes Mushroom Notes
🍄首页
  • JavaSE

    • 基础篇
    • 数据结构
    • IO流
    • Stream流
    • 函数式接口
    • JUC
    • 反射
    • 网络编程
    • 设计模式
  • JavaEE

    • Servlet
    • JDBC
    • 会话技术
    • 过滤器监听器
    • 三层架构
  • JDK

    • 总览
  • JVM

    • 总览
  • 常用mate
  • CSS
  • JavaScript
  • rds 数据库

    • MySQL
    • MySQL 进阶
    • MySQL 库表规范
  • nosql 数据库

    • Redis
    • Redis 进阶
    • Redis 底层
    • MongoDB
  • Spring生态

    • Spring
    • Spring MVC
    • Spring boot
    • Spring Validation
  • Spring Cloud生态

    • Spring Cloud
    • 服务治理
    • 远程调用
    • 网关路由
    • 服务保护
    • 分布式事务
    • 消息中间件
  • 数据库

    • Mybatis
    • Mybatis Plus
    • Elasticsearch
    • Redisson
  • 通信

    • Netty
📚技术
  • 方案专题
  • 算法专题
  • BUG专题
  • 安装专题
  • 网安专题
  • 面试专题
  • 常用网站
  • 后端常用
  • 前端常用
  • 分类
  • 标签
  • 归档

kinoko

一位兴趣使然的热心码农
🍄首页
  • JavaSE

    • 基础篇
    • 数据结构
    • IO流
    • Stream流
    • 函数式接口
    • JUC
    • 反射
    • 网络编程
    • 设计模式
  • JavaEE

    • Servlet
    • JDBC
    • 会话技术
    • 过滤器监听器
    • 三层架构
  • JDK

    • 总览
  • JVM

    • 总览
  • 常用mate
  • CSS
  • JavaScript
  • rds 数据库

    • MySQL
    • MySQL 进阶
    • MySQL 库表规范
  • nosql 数据库

    • Redis
    • Redis 进阶
    • Redis 底层
    • MongoDB
  • Spring生态

    • Spring
    • Spring MVC
    • Spring boot
    • Spring Validation
  • Spring Cloud生态

    • Spring Cloud
    • 服务治理
    • 远程调用
    • 网关路由
    • 服务保护
    • 分布式事务
    • 消息中间件
  • 数据库

    • Mybatis
    • Mybatis Plus
    • Elasticsearch
    • Redisson
  • 通信

    • Netty
📚技术
  • 方案专题
  • 算法专题
  • BUG专题
  • 安装专题
  • 网安专题
  • 面试专题
  • 常用网站
  • 后端常用
  • 前端常用
  • 分类
  • 标签
  • 归档
  • Linux

    • Linux 系统
      • Linux目录结构
      • 常用命令
      • 文件目录查看
        • ls
        • cd
        • touch
        • mkdir
        • rm
        • cat
        • less
        • tail
        • find
        • grep
        • wc
        • rpm
      • 文件拷贝移动
        • cp
        • mv
      • 打包压缩文件
      • vim编辑器
      • 进程管理
        • 后台运行
      • 端口查看
      • 防火墙配置
      • 一些问题
      • 更多
  • Docker

  • Nginx

  • Maven

  • 文件存储

  • 压测

  • Git技巧

  • GitHub技巧

  • 知识碎片

  • 技术
  • Linux
kinoko
2023-12-18
目录

Linux 系统


# Linux目录结构

image.png

目录 含义
/bin 存放二进制可执行文件
/boot 存放系统引导时使用的各种文件
/dev 存放设备文件
/etc 存放系统配置文件, 比如:安装完毕jdk,安装maven、配置环境变量profile文件
/home 用户的主目录,存放用户的个人资料的。比如:linux是一个多用户的操作系统,创建了zhangsan用户,那么在home目录里面有zhangsan文件夹。
/lib 存放程序运行所需的共享库和内核模块
/opt 额外安装的可选应用程序包所放置的位置
/root 超级管理员的主目录
/sbin 存放二进制可执行文件,只有root用户才能访问
/tmp 存放临时文件
/usr 以后我们安装软件都存储在该目录中 unix share resource
/var 存放运行时需要改变数据的文件,例如日志文件

# 常用命令


命令 作用
ls [目录名] 查看当前目录下的内容
pwd 查看当前所在目录
cd [目录名] 切换目录
touch [文件名] 如果文件不存在,创建文件
mkdir [目录名] 创建目录
rm [文件名] 删除指定文件
clear 清空控制台
source [文件名] 加载配置文件
netstat -ntlp 查看网络进程状态

命令格式

command [-options] [parameter]
	
说明: 
	command: 	 命令名
	[-options]:  选项,可用来对命令进行控制,也可以省略
	[parameter]: 传给命令的参数,可以是零个、一个或者多个
	
注意: 
	[] 	 代表可选
	命令名、选项、参数之间有空格进行分隔
1
2
3
4
5
6
7
8
9
10

# 文件目录查看


# ls

● ls 			查看当前目录下的内容(文件及目录)
● ls / 		查看指定目录(/)下的内容
● ls -a 	查看所有内容,包含隐藏的内容
● ls -al 	列表方式查看
● ll -a 	列表方式查看,简洁方式
1
2
3
4
5

推荐使用ll -a来查看,信息更详细 作用: 显示指定目录下的所有内容 语法: ls [-al] [dir] 说明: -a 显示所有文件及目录 (. 开头的隐藏文件也会列出) -l 除文件名称外,同时将文件型态(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出

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

常见用法: ls -al 查看当前目录的所有文件及目录详细信息 ls -al /etc 查看/etc目录下所有文件及目录详细信息 ll 查看当前目录文件及目录的详细信息

# cd

● cd  /		 		切换到根目录
● cd  /root	 	切换到/root目录
● cd  ..   	 	切换到上一层目录
● cd ../../  	切换到上二层目录
● cd  -  	 		切换到上一次所在的目录
● cd 回车  	 	切换到当前用户的主目录
1
2
3
4
5
6

作用: 用于切换当前工作目录,即进入指定目录 语法: cd [dirName]

特殊说明: ~ 表示用户的主目录,超级管理员的用户的主目录root .  表示目前所在的目录 ..  表示目前目录位置的上级目录

举例: cd .. 切换到当前目录的上级目录 cd ~ 切换到用户的home目录 cd /usr/local 切换到/usr/local目录

备注: root用户 /root 其他用户 /home/xxx

# touch

● touch 1.txt 							创建文件1.txt
● touch 2.txt 3.txt 4.txt 	一次性创建文件2.txt,3.txt,3.txt
1
2

语法:touch 起始目录 [查找类型] "目标" [查找类型] -name 通过名字查找 通配符* a 以a结尾的 a 以a开头的 a 包含a的 -size 通过大小查找 +|-n[kMG] +、-:表示大于或小于 n表示大小数字 kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB

# mkdir

● mkdir 01 				创建文件夹01 
● mkdir aa bb cc 	一次性创建多个目录
● mkdir -p dd/ff 	如果父目录dd不存在就先创建父目录dd,之后创建子目录ff
1
2
3

一般使用mkdir -p即可

# rm

● rm 4.txt			删除文件 (删除文件时,需要确认,输入y, 代表确定)
● rm -f 4.txt 	强制删除,不会问是否删除
● rm 						目录名 默认忽略这个命令,不会删除
● rm -rf 				目录名 recusion是r的缩写,代表递归,这样就可以递归删除当前目录下子文件和子目录
● rm -rf /* 		删除磁盘上所有资源,千万注意不要使用,否则需要重装系统
1
2
3
4
5

一般使用rm时都会带上-rf选项,但是注意路径千万不能写/*

**【乱码】**若在执行Linux命令时,提示信息如果显示为乱码。这是由于编码问题导致,只需要修改Linux的编码即可,命令如下:

echo 'LANG="en_US.UTF-8"' >> /etc/profile
source /etc/profile
1
2

# cat

作用: 用于显示文件内容
语法: cat [-n] fileName

说明:
	-n: 由1开始对所有输出的行数编号

举例:
	cat /etc/profile		查看/etc目录下的profile文件内容
1
2
3
4
5
6
7
8

文件内容少时使用该命令

# less

作用: 以分页的形式显示文件内容
语法: more fileName

操作说明:
    回车键 	向下滚动一行
    空格键 	向下滚动一屏
    b 		返回上一屏
    q或者Ctrl+C	退出more
	
举例:
	more /etc/profile		以分页方式显示/etc目录下的profile文件内容
1
2
3
4
5
6
7
8
9
10
11

Less命令用法与more非常类似,只不过比more多了可以使用上下方向键。 还可以是使用PgUp查看上一页,PgDn查看下一页

less -mN 文件名

-m  显示查看内容的百分比

-N   显示行号

# 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文件末尾内容并显示
1
2
3
4
5
6
7
8
9
10

文件内容大时使用该命令,以及用于日志文件的内容输出

# find

作用: 在指定目录下查找文件
语法: find dirName -option fileName
举例:
    find  .  –name "*.java"			在当前目录及其子目录下查找.java结尾文件
    find  /itcast  -name "*.java"	在/itcast目录及其子目录下查找.java结尾的文件
1
2
3
4
5

# grep

作用: 从指定文件中查找指定的文本内容,并且返回查找到的对应行数据
语法: grep word fileName
举例: 
    grep Hello HelloWorld.java	查找HelloWorld.java文件中出现的Hello字符串的位置
    grep hello *.java			查找当前目录中所有.java结尾的文件中包含hello字符串的位置
    
    grep -n  hello Itheima.java  -n显示行号
    grep -ni  hello Itheima.java  -i 忽略大小写匹配内容
1
2
3
4
5
6
7
8

# wc

作用:可以统计文件的行数、单词数量等
语法:wc [-c -m -l -w] 文件路径
-c:统计bytes数量
-m:统计字符数量
-l:统计行数
-w:统计单词数量
1
2
3
4
5
6

# rpm

rpm -qa										查询当前系统中安装的所有软件
rpm -qa | grep mysql			查询当前系统中安装的名称带mysql的软件
1
2

# 文件拷贝移动


# cp

作用: 用于复制文件或目录
语法: cp [-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目录下
1
2
3
4
5
6
7
8
9
10
11

如果拷贝的内容是目录,需要加上选项 -r

# mv

作用: 剪切,重命名(如果目标位置已存在就是移动剪切,目标位置不存在就是重命名)
语法: mv source dest

举例: 
  mv hello.txt hi.txt                 将hello.txt改名为hi.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目录中
1
2
3
4
5
6
7
8
9

mv 命令既能够改名,又可以移动,具体是改名还是移动,系统会根据我们输入的参数进行判定(如果第二个参数dest是一个已存在的目录,将执行移动操作,其他情况都是改名)

# 打包压缩文件


常用windows压缩文件格式:  xxx.rar   xxx.zip    xxx.7z

常用linux压缩文件格式:

  • 打包文件:  xxx.tar      打包就是将多个资源目录或文件困在一起
  • 打包并压缩文件: xxx.tar.gz  打包就是将多个资源目录或文件困在一起,并且会将数据压缩
作用: 对文件进行打包、解包、压缩、解压
语法: tar  [-zcxvf]  fileName  [files]
    包文件后缀为.tar表示只是完成了打包,并没有压缩(归档文件)
    包文件后缀为.tar.gz表示打包的同时还进行了压缩

说明:
    -z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
    -c: c代表的是create,即创建新的打包文件
    -x: x代表的是extract,实现从包文件中还原文件
    -v: v代表的是verbose,显示命令的执行过程
    -f: f代表的是file,用于指定包文件的名称

举例:
    打包
        tar -cvf hello.tar ./*		  		将当前目录下所有文件打包,打包后的文件名为hello.tar
    打包并压缩
        tar -cvzf hello.tar.gz ./*		  将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz
		
    解包
        tar -xvf hello.tar		  							将hello.tar文件进行解包,并将解包后的文件放在当前目录
        tar -xvf hello.tar.gz		  						将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
        tar -xvf hello.tar.gz -C /usr/local   将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

主要使用 tar -cvf打包文件 tar -cvzf打包并压缩文件 tar -xvf解压文件

# vim编辑器


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

三种模式:
- 命令模式(不可编辑内容)
A. 命令模式下可以查看文件内容、搜索文本内容.

  按下/输入搜索内容即可.
   

  | 命令模式指令 | 含义                              |
  | ------------ | --------------------------------- |
  | i 或 a 或 o  | 进入插入模式,i是光标前面插入,a是光标后面插入,o是在下一行插入                      |
  | gg           | 定位到文本内容的第一行第一个字符            |
  | GG            | 定位到文本内容的最后一行          |
  | yy            | 复制当前行         |
  | p            | 粘贴当前行         |
  | dd           | 删除光标所在行的数据              |
  | ndd          | 删除当前光标所在行及之后的n行数据 |
  | u            | 撤销操作                          |
  | shift+zz     | 保存并退出                        |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • 插入模式
    A. 插入模式下可以对文件内容进行编辑
    B. 在命令模式下按下[i,a,o]任意一个,可以进入插入模式。进入插入模式后,下方会出现【insert】字样
    C. 在插入模式下按下ESC键,回到命令模式
  • 底行模式
    1. 按下esc回到命令模式
    2. 在命令模式的基础上按下 shift+:
    3. 按下保存退出: :wq(保存退出)   :q!(强制退出不保存)
底行模式命令 含义
:wq 保存并退出  write  quit
:q! 不保存强制退出
:set nu 显示行号   number
:set nonu 取消行号显示
:n 定位到第n行, 如 :10 就是定位到第10行

# 进程管理


ps -ef    系统的所有的进程都展示出来
ps -ef | grep xxx 查询某个进程
jps -l 		查询所有的java进程
ps -aux 查询所有进行信息,并显示每个进程cpu耗用,内存耗用	
kill -9(强制杀死)|-2(温和杀死)  进程id号
1
2
3
4
5

# 后台运行

nohup命令:英文全称 no hang up(不挂断),用于不挂断地运行指定命令,退出终端不会影响程序的运行

语法格式: nohup Command [ Arg … ] [&]

参数说明:

Command:要执行的命令
Arg:一些参数,可以指定输出文件
&:让命令在后台执行,终端退出后命令仍旧执行

举例:

nohup java -jar boot工程.jar &> hello.log &
上述指令的含义为: 后台运行 java -jar 命令,并将日志输出到hello.log文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 端口查看


netstat -ntlp		查看网络进程状态

-n 查看端口
-t 查看tcp协议
-l  正在运行的网络进程
-p  显示进程的名字
1
2
3
4
5
6

# 防火墙配置


防火墙服务

命令 作用
systemctl start   firewalld 开启
systemctl stop   firewalld 关闭
systemctl   enable firewalld 开机自启动==(默认状态)==
systemctl   disable firewalld 关闭开机自启
systemctl   status firewalld 查看当前防火墙状态

centos7上对系统服务的操作

  • systemctl start|stop|status|enable|disable|reload 服务名称
  • 例如: systemctl start mysqld 开启mysql服务器

端口设置

外网或内网需要连接到当前系统内的程序进行操作,需要linux系统开放程序端口,否则无法访问。

  • 开发xxx端口
    firewall-cmd --zone=public --add-port=xxx/tcp --permanent
  • 更新防火墙规则
    firewall-cmd --reload
  • 查看开放端口
    firewall-cmd --zone=public --query-port=xxx/tcp
    firewall-cmd --zone=public --list-ports
  • 删除开放端口
    firewall-cmd --zone=public --remove-port=xxx/tcp --permanent
  • 常用端口
    8080 tomcat
    80 http协议
    22 ssh远程连接(默认开启)
    3306 mysql
    6379 redis
firewall-cmd 参数说明
--zone=public 开放哪个网络,默认是public
public:       image.pnginternal: image.png
--add-port=端口/tcp 添加到防火墙中端口号,对外是打开的
--remove-port=端口/tcp 从防火墙的规则中删除端口号
--permanent 永久添加规则
--list-all 显示现有的规则,展示所有开放端口
--reload 重新加载规则,让新加的端口号起作用,重启防火墙的服务 systemctl restart firewalld

# 一些问题


**环境变量不可用的情况:**查看/etc/profile文件,环境变量的路径是否用的是\,应改为/

# 更多


更多Linux相关:Linux.pdf (opens new window)Linux02.pdf (opens new window)
项目部署相关:Linux项目部署.pdf (opens new window)

nohup java -jar translator-forum-1.0-SNAPSHOT.jar >/root/translatorforum/logs/$(date +%Y-%m-%d).log 2>&1&

# 将jar包启动程序的pid写入件中,停止时可直接kill pid
echo $! > /root/translatorforum/logs/pid/pid.tx
1
2
3
4
PID=$(cat /root/translatorforum/logs/pid/pid.tx)

kill -9 $PID
1
2
3
#linux
上次更新: 2023/12/29 11:32:56
Docker 基本使用

Docker 基本使用→

最近更新
01
JVM 底层
09-13
02
JVM 理论
09-13
03
JVM 应用
09-13
更多文章>
Theme by Vdoing | Copyright © 2022-2024 kinoko | MIT License | 粤ICP备2024165634号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式