Linux
Linux文件管理
touch命令
touch命令用于创建文件、修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
ls -l 可以显示档案的时间记录
在 Linux 系统上使用 touch
命令创建空文件,键入 touch
,然后输入文件名
touch a.txt
查看
ls -l a.txt
我们\可以使用stat命令进行
stat a.txt
文件上传和下载
1 先安装 yum -y install lrzsz
2 要上传的文件直接拖入即可
3 下载文件 sz 文件类名
vi与vim命令
vi是 visual interface
的简称, 是linux中最经典的文本编辑器。
vi的特点
只能是编辑 文本内容, 不能对 字体 段落进行排版
不支持鼠标操作
没有菜单
只有命令
- vi编辑器在 系统管理 服务器管理 编辑文件时, 其功能永远不是图形界面的编辑器能比拟的
vim介绍**
vim:是从 vi (系统内置命令)发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
vim 则可以说是程序开发者的一项很好用的工具。
yum install vim
vi/vim模式主要分为以下三种:
命令模式:在Linux终端中输入“vim 文件名”就进入了命令模式,但不能输入文字。
编辑模式:在命令模式下按i就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。
末行模式:在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。
3、打开和新建文件
vim txtfile.txt
4、三种模式切换
vim txtfile.txt
进入编辑模式**
上接上面的例子,按i进入插入模式
- 在 vi 中除了常用
i
进入编辑模式 外, 还提供了一下命令同样可以进入编辑模式
命令 | 英文 | 功能 | 常用 |
---|---|---|---|
i | insert | 在当前字符前插入文本 | 常用 |
I | insert | 在行首插入文本 | 较常用 |
a | append | 在当前字符后添加文本 | |
A | append | 在行末添加文本 | 较常用 |
o | 在当前行后面插入一空行 | 常用 | |
O | 在当前行前面插入一空行 | 常用 |
5、进入末行模式
编辑模式不能保存文件
必须先推到命令模式
先按Esc键退出到命令模式
然后按小写的**:wq 正常保存退出**
进入末行模式—》按符号: 鼠标跑到屏幕的最后一行,执行效果如下图
然后按小写的**:wq 正常保存退出**
以下为其他的退出模式:
:q 当vim进入文件没有对文件内容做任何操作可以按"q"退出
:q! 当vim进入文件对文件内容有操作但不想保存退出
:wq 正常保存退出
:wq! 强行保存退出,只针对与root用户或文件所有人
总结
三种模式的切换,其实就完成了文件创建、编辑、保存、退出四个步骤
那么接下来,我们学习下一个命令
查看刚才新创建的文件
vim 查找关键字 末行模式下 /查找的内容 如果想找下一个 按 n
vim可以查看日志吗?
如果日志文件比较小,可以
如果日志文件比较大,不可以, 因为vim查看文件的时候,要把整个文件加载到内存里面
文件查看
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | cat 文件名 | concatenate | 查看小文件内容 |
02 | less -N 文件名 | less | 分频 显示大文件内容 |
03 | head -n 文件名 | 查看文件的前一部分 | |
04 | tail -n 文件名 | 查看文件的最后部分 | |
05 | grep 关键字 文件名 | grep | 根据关键词, 搜索文本文件内容 |
总结: |
以上5个命令都可以查询文件的内容,他们的功能如下
通过 cat
会一次显示所有的内容, 适合 查看内容较少 的文本文件
less
命令适合查看 内容较多 的文本文件
通过 head
命令查看文档的前几行内容
通过 tail -10f 文件
命令 查看文档(日志)的后几行内容
通过 grep
命令 搜索存在 关键字 的行
1、cat命令
cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名,如cat txtFiles.txt
使用者权限:当前文件的权限用户
查看文件名为txtfile.txt的内容
cat txtfile.txt
查看文件名为txtfile.txt的内容(加入行号
cat -n txtfile.txt
2、grep命令
grep命令在使用的时候类似于我们的程序中的查询,或者在txt文档中通过ctr+f查找
grep除了能对文件操作为还可以查看我们的进程信息,类似于我们在Windows系统的任务管理器
grep [选项] 搜索字符串 [文件/目录]
其中,搜索字符串可以是一个普通字符串或正则表达式,选项包括:
- -i:忽略大小写
- -w:只匹配单独的单词(不匹配字符串中的子串)
- -l:只列出包含搜索字符串的文件名,不显示文件中的匹配行
- -n:列出匹配行所在的行号
- -r:在指定目录及其子目录中递归搜索
- -v:反向查找,只列出不包含搜索字符串的行
例如,要在文件example.txt中查找包含字符串"hello"的行,可以使用以下命令:
grep hello example.txt
如果想要忽略大小写,可以使用选项-i:
grep -i hello example.txt
如果要在某个目录及其子目录中递归搜索,可以使用选项-r:
grep -r hello /path/to/directory
3、tail命令11
tail
命令用于在命令行中查看文件末尾的内容,默认显示文件的最后10行。 tail
命令常用于查看日志文件、监控正在写入的文件的变化等操作。
常用的 tail
命令选项如下:
-n
:指定显示文件末尾的行数;-f
:实时监控文件的变化,当文件有新内容添加时自动更新显示内容;-c
:指定显示文件末尾的字节数;-q
:不显示文件名;-v
:显示文件名。
例如,可以使用以下命令查看一个文件的最后5行内容:
tail -n 5 filename.txt
使用以下命令监控一个文件的变化:
tail -f filename.txt
3、less命令
less用于查看文件,但是less 在查看之前不会加载整个文件。
less txtfile.txt
我们输入【j】可以前进行
输入【k】可以后退行
输入【G】可以 移动到最后一行
输入【g】可以移动到第一行
输入【ctrl + F】 向前移动一屏(类似于我们在浏览器中的数据分页的下一页)
输入【ctrl + B】 向后移动一屏(类似于我们在浏览器中的数据分页的上一页)
其他命令
1.全屏导航
- ctrl + F - 向前移动一屏
- ctrl + B - 向后移动一屏
- ctrl + D - 向前移动半屏
- ctrl + U - 向后移动半屏
2.单行导航
- j - 向前移动一行
- k - 向后移动一行
3.其它导航
- G - 移动到最后一行
- g - 移动到第一行
- q / ZZ - 退出 less 命令
vim定位行
日常工作中,有可能会遇到打开一个文件,并定位到指定行的情况
例如: 在开发时, 知道某一行代码有错误,可以快速定位到出错误代码的位置
这个时候,可以使用以下命令打开文件
vim txtfile.txt +6
异常处理
如果 vim异常退出, 在磁盘上可能会保存有 交换文件
下次再使用 vim 编辑文件时, 会看到以下屏幕信息,
解决方案:将后缀名为.swp的文件删除即可恢复
再次编辑文件不在出现提示警告!
操作扩展
1) 上 下 左 右
命令 | 功能 | 手指 |
---|---|---|
h | 向左 | 食指 |
j | 向下 | 食指 |
k | 向上 | 中指 |
l | 向右 | 无名指 |
2) 行内移动
命令 | 英文 | 功能 |
---|---|---|
w | word | 向后移动一个单词 |
b | back | 向前移动一个单词 |
0 | 行首 | |
^ | 行首, 第一个不是空白字符的位置 | |
$ | 行尾 |
3) 行数移动
命令 | 英文 | 功能 |
---|---|---|
gg | go | 文件顶部 |
G | go | 文件末尾 |
数字gg | go | 移动到 数字 对应行数 |
数字G | go | 移动到 数字 对应行数 |
: 数字 | 移动到数字对应的 行数 |
4) 屏幕移动
命令 | 英文 | 功能 |
---|---|---|
Ctrl + b | back | 向上翻页 |
Ctrl + f | forward | 向下翻页 |
H | Head | 屏幕顶部 |
M | Middle | 屏幕中间 |
L | Low | 屏幕底部 |
5) 选中文本(可视模式)
学习 复制 命令前, 应该先学会 怎么样选中 要复制的代码
在 vi/vim 中要选择文本, 需要显示 visual 命令切换到 可视模式
vi/vim 中提供了 三种 可视模式, 可以方便程序员的选择 选中文本的方式
6) 撤销和恢复撤销(保命指令)
在学习编辑命令之前,先要知道怎样撤销之前一次 错误的 编辑操作
命令 | 英文 | 功能 |
---|---|---|
u | undo | 撤销上次的命令(ctrl + z) |
Ctrl + r | uredo | 恢复撤销的命令 |
7) 删除文本
命令 | 英文 | 功能 |
---|---|---|
x | cut | 删除光标所在的字符,或者选中的文字 |
d(移动命令) | delete | 删除移动命令对应的内容 |
dd | delete | 删除光标所在行, 可以删除多行 |
D | delete | 删除至行尾 |
删除命令可以和移动命令连用, 以下是常见的组合命令(扩展):
命令 | 作用 |
---|---|
dw | 从光标位置删除到单词末尾 |
d} | 从光标位置删除到段落末尾 |
ndd | 从光标位置向下连续删除 n 行 |
8) 复制和剪切
vi/vim 中提供有一个 被复制文本的缓冲区
复制 命令会将选中的文字保存在缓冲区
删除 命令删除的文字会被保存在缓冲区
在需要的位置, 使用 粘贴 命令可以将缓冲对的文字插入到光标所在的位置
命令 | 英文 | 功能 |
---|---|---|
yy | copy | 复制行 |
d(剪切命令) | delete | 剪切 |
dd(剪切) | delete | 剪切一行, 可以 ndd 剪切n行 |
p | paste | 粘贴 |
提示:
命令 d 、x 类似于图形界面的 剪切操作 – ctrl + x
命令 y 类似于 图形界面的 复制操作 – Ctrl +
命令 p 类似于图形界面的 粘贴操作 – Ctrl + v
vi中的文本缓冲区只有一个,如果后续做过 复制、剪切操作, 之前缓冲区中的内容会被替换.
注意
vi中的 文本缓冲区 和 系统的 剪切板 不是同一个
所以在其他软件中使用 Ctrl + C
复制的内容, 不能再 vi
中通过 p
命令粘贴
可以在 编辑模式 下使用 鼠标右键粘贴
9) 替换
命令 | 英文 | 功能 | 工作模式 |
---|---|---|---|
r | replace | 替换当前字符 | 命令模式 |
R | replace | 替换当前行光标后的字符 | 替换模式 |
R
命令可以进入 替换模式, 替换完成后, 按下ESC
, 按下 ESC
可以回到 命令模式
替换命令 的作用就是不用进入 编辑模式, 对文件进行 轻量级的修改
10) 缩排和重复执行
命令 | 功能 |
---|---|
>> | 向右增加缩进 |
<< | 向左减少缩进 |
. | 重复上次命令 |
缩进命令 在开发程序时, 统一增加代码的缩进 比较有用!
一次性 在选中代码前增加 4 个空格, 就叫做 增加缩进
一次性 在选中代码前删除 4 个空格, 就叫做 较少缩进
- 在 可视模式 下, 缩排命令 主需要使用 一个
>
或者<
在程序中, 缩进 通常用来表示代码的归属关系
前面空格越少, 代码的级别越高
前面空格越多, 代码的级别越低
11) 查找
常规查找
命令 | 功能 |
---|---|
/str | 查找str |
查找到指定内容之后, 使用 Next
查找下一个出现的位置
n
: 查找下一个
N
: 查找上一个
find查找
find概念
find命令用来在指定目录下查找文件。
find <指定目录> <指定条件> <指定内容>
1、将目前目录及其子目录下所有延伸档名是 gz 的文件查询出来**
find . -name "*.gz"
2、全局搜索
find / -name "java"
tar命令
tar的主要功能是打包、压缩和解压文件。
tar本身不具有压缩功能。他是调用压缩功能实现的 。
tar命令是在Unix和类Unix操作系统中常用的一种用于文件归档和压缩的命令。它可以将多个文件和目录打包成一个文件,也可以对打包后的文件进行压缩。
tar命令的基本语法如下:
tar [选项] [文件名]
常用的选项有:
- c:创建新的归档文件
- x:从归档文件中提取文件
- z:使用gzip进行压缩/解压缩
- j:使用bzip2进行压缩/解压缩
- t:列出归档文件中的文件列表
- f:指定归档文件名
例如,将文件夹/home/user1下的所有文件打包成一个归档文件:
tar -czf backup.tar.gz /home/user1
其中,-c表示创建新的归档文件,-z表示使用gzip进行压缩,-f指定归档文件名为backup.tar.gz,/home/user1为要打包的文件夹。
解压缩归档文件可以使用以下命令:
tar -xzf backup.tar.gz
其中-x表示从归档文件中提取文件,-z表示解压缩gzip格式的压缩文件,-f指定要解压的归档文件名。
4、压缩tar包
1.新建目录
mkdir ysFiles
2.复制
cp txt.tar.gz ./ysFiles/
3.解压缩
tar -zxvf /home/itcast/ysFiles/txt.tar.gz
unzip命令
unzip命令就完全的相当于在Windows下面选中文件右键进行解压缩
yum install -y unzip zip
Linux unzip命令用于解压缩zip文件
unzip为.zip压缩文件的解压缩程序
使用者权限:所有用户
语法
unzip[必要参数][选择参数][文件]
1、查看压缩文件中包含的文件
unzip -l zFiles.zip
包含了压缩文件里面文件的详细信息
文件大小 日期 时间 文件名称
总数量和总大小
2、解压
1.新建目录
unFiles
2.解压缩
unzip -d ./unFiles zFiles.zip
网络命令
1、ifconfig命令
ifconfig是Linux中用于显示或配置网络设备的命令,英文全称是network interfaces configuring
ifconfig命令用于显示或设置网络设备。
ifconfig可设置网络设备的状态,或是显示目前的设置。
使用者权限:所有(设置级别的需要管理员)用户
需要命令安装网络工具 yum -y install net-tools
显示激活的网卡信息
ifconfig
2、ping命令
ping命令用于检测主机
执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
使用者权限:所有用户
检测是否与主机连通
ping www.baidu.com
3、netstat命令
利用netstat指令可让你得知整个Linux系统的网络情况
显示详细的连接状况
netstat -a
显示网卡列表
netstat -i
查看内存和硬盘容量
1、查看硬盘容量
df -h
2、 查看内存使用
free -h
1 下载jdk
https://www.oracle.com/technetwork/java/javase/downloads/index.html
2 安装
yum install lrzsz -y
#1.将JDK解压缩到指定目录
tar -zxvf jdk-11.0.16.1_linux-x64_bin.tar.gz -C /usr/local
注意:-C参数是将JDK解压之后文件放入usr目录中
mv jdk-11.0.16.1 jdk11
2.进入jdk解压缩目录查看
cd /usr/local/jdk11
3.查看详细信息
[root@localhost jdk1.8.0_152]# ls
bin db javafx-src.zip lib man release THIRDPARTYLICENSEREADME-JAVAFX.txt
COPYRIGHT include jre LICENSE README.html src.zip THIRDPARTYLICENSEREADME.txt
4.配置环境变量
vi /etc/profile
5.在文件末尾加入如下配置
export JAVA_HOME=/usr/local/jdk11
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin
6.加载配置生效
source /etc/profile 加载配置生效
7.测试环境变量
java -version
安装tomcat
#0.下载tomcat
https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.70/bin/
1.通过工具上传到Linux系统中
#2.解压缩到/usr/local目录中
[root@localhost ~]# tar -zxvf apache-tomcat-8.5.82.tar.gz -C /usr/local
-C 用来指定解压缩的位置
mv apache-tomcat-8.5.82 tomcat
#3.查看解压内容
cd /usr/local/tomcat
[root@localhost apache-tomcat-8.5.46]# ls -l
总用量 124
drwxr-x—. 2 root root 4096 10月 13 12:27 bin
-rw-r-----. 1 root root 19318 9月 17 02:19 BUILDING.txt
drwx------. 2 root root 238 9月 17 02:19 conf
-rw-r-----. 1 root root 5407 9月 17 02:19 CONTRIBUTING.md
drwxr-x—. 2 root root 4096 10月 13 12:27 lib
-rw-r-----. 1 root root 57011 9月 17 02:19 LICENSE
drwxr-x—. 2 root root 6 9月 17 02:17 logs
-rw-r-----. 1 root root 1726 9月 17 02:19 NOTICE
-rw-r-----. 1 root root 3255 9月 17 02:19 README.md
-rw-r-----. 1 root root 7139 9月 17 02:19 RELEASE-NOTES
-rw-r-----. 1 root root 16262 9月 17 02:19 RUNNING.txt
drwxr-x—. 2 root root 30 10月 13 12:27 temp
drwxr-x—. 7 root root 81 9月 17 02:17 webapps
drwxr-x—. 2 root root 6 9月 17 02:17 work
4.启动tomcat
[root@localhost apache-tomcat-8.5.46]# ./bin/startup.sh
# 5.关闭网络防火墙
systemctl stop firewalld 关闭网络防火墙
systemctl disable firewalld 关闭开机自启动(永久关闭)
6.在windows中访问tomcat
http://10.15.0.8:8080/
7.显示tomcat实时控制台信息
进入tomcat的logs目录中使用tail -f catalina.out 命令实时查看控制台信息
8.关闭tomcat
在tomcat的bin目录下面使用 层叠./shutdown.sh
安装mysql
1 将下载好的文件上传到 /user/local下
2 解压文件
tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
3 移动并重命名
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
4 创建mysql用户组和用户并修改权限
cd /usr/local/mysql
groupadd mysql
useradd -r -g mysql mysql
mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql
5 配置my.cnf
vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
lower_case_table_names=1
6 初始化数据库
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=root --initialize
7 查看密码
cat /data/mysql/mysql.err
8 启动mysql,并更改root 密码
先将mysql.server放置到/etc/init.d/mysql中。
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动服务
service mysql start
9 修改密码
./mysql -u root -p
SET PASSWORD = PASSWORD('root');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
10 更改配置,使用navicat连接
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES;
11 如果不希望每次都到bin目录下使用mysql命令则执行以下命令
ln -s /usr/local/mysql/bin/mysql /usr/bin
设置开机自启
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 将服务文件拷贝到init.d下,并重命名为mysql
chmod +x /etc/init.d/mysql 赋予可执行权限
chkconfig --add mysql 添加服务
人 显示服务列表
如果看到mysql的服务,并且3,4,5都是on的话则成功