1、环境搭建2、基础内容3、目录管理4、文件管理5、链接6、Vim编辑器7、用户账号管理8、用户组管理9、磁盘管理10、进程管理11、防火墙管理12、环境安装
1、环境搭建
需要一台云服务器,下面的学习都是在阿里云的云服务器上进行的的,也可以在自己的电脑上安装虚拟机,在虚拟机上进行学习。
使用
xshell
连接远程云服务器,一般还会下载一个xftp
来从远程服务器上传和下载文件,也可以使用lrzsz
命令实现window
与linux
之间文件交换。sz
命令从服务器移动到window,rz
命令从window到服务器。
xshell、xftp下载地址:https://www.xshell.com/zh/free-for-home-school/
输入登录账号和密码就可以进行连接了,如何password不能填写,需要在买来的服务器上重置一些密码,直接在云服务器商的控制台中重置即可。
2、基础内容
关机命令
shutdown # 关机指令
shudown -c # 取消关机命令
shutdown -h10# 在10秒后关机
shutdown -h now # 立刻关机
shutdown -h10:59 # 在这天的10:59会关机
shutdown -h+10# 10分钟后关机
shutdown -r now # 立刻重启
shutdown -r+10# 10分钟后重启
reboot # 立即重启
halt # 立即关闭系统
sync # 将数据同步到硬盘中,在重启或关闭需要执行这个操作
目录结构:系统的根目录是
/
,系统的所有东西都都放在这个目录下。
/bin
:这个目录中存放着使用的命令,所有的命令文件都放在这个目录下。/boot
:存放启动Linux时的核心文件,包括一些连接文件和镜像文件。(不要动)/dev
:存放Linux的外部设备,例如USB、DVD
等等外部设备。/etc
:存放系统管理需要的配置文件及其子文件。/home
:用户主目录,也可以是/~
这个目录,每个用户都有自己的一个/home
文件夹。/lib
:存放系统基本的动态连接共享库。(不要动)/lost+found
:当系统非法关机时,就会有一些文件,默认这个目录下是空的。/media
:会自动识别外部设备,例如U盘、光驱等,Linux识别的设备都会挂架到这个目录下。/mnt
:提供用户临时挂载的文件目录。/opt
:存放系统中额外安装软件的存放位置,默认是空的。/proc
:一个虚拟目录,它是系统内存的映射。( 不要动)/root
:系统管理员目录,就是超级管理员的用户主目录。/sbin
:存放超级管理员的系统管理程序。/srv
:存放一些服务启动之后需要提取的数据。/sys
:存放一些系统文件。/tmp
:存放一些临时文件,用完就删除的目录,例如可以放一些安装包。/usr
:存放用户应用程序和文件,相当于windows中program files目录。/usr/bin
:用户使用的应用程序。/usr/sbin
:超级管理员使用的应用程序。/usr/src
:内核源码存放的目录。/var
:存放一些经常修改的文件,例如存放一些日志文件。/run
:临时文件目录,存放系统启动以来的数据。当系统重启时,应该删除这个目录下的文件。/www
:存放服务器网站相关的资源,例如环境、网站项目等。
3、目录管理
cd
命令:用于切换目录。
# 相对路径和绝对路径
# 相对路径:是相当于当前目录下的路径 ./ 表示当前目录
# 绝对路径:在Linux中 / 始终表示系统的根目录
cd .. # 切换到上一级目录中
cd / # 切换到根目录下
cd ./test # 切换到当前目录下的test文件夹下
ls
命令:用于列出当前目录下的文件列表。
ls # 列出目录下的文件列表,不包含隐藏文件
ls-a # 列出所有文件列表,包括隐藏文件
ls-l # 列出文件列表,包括文件的属性和权限,不包含隐藏文件
ls-al # 累出文件列表,包括文件的属性和权限,包含隐藏文件
pwd
命令:显示当前目录的路径。
mkdir
命令:创建新文件夹。
mkdir 新文件夹名 # 创建一个新文件夹
mkdir-p test1/test2/test3 # 新建多级目录
rmdir
命令:删除目录。
rmdir 文件夹名 # 删除一个空的文件夹,如果不为空就不能删除
rmdir-p test1/test2/test3 # 删除多级目录的文件夹,删除为空的文件夹,不为空的文件夹不能删除,相当于删除test1目录下的所有空文件夹,如果test1下存在文件,test1也不会删除
cp
命令:复制文件或文件夹。
cp 旧目录 新目录 # 将旧的目录或文件拷贝到新的目录下,如果文件重复,它会让你选择是否覆盖当前目录
rm
命令:删除文件或文件夹。
rm 文件名 # 删除文件
rm-f 文件 # 强制删除文件
rm-rf 文件或文件夹 # 递归删除文件或文件夹
rm-i 文件或文件夹 # 删除的时候会询问你是否删除
mv
命令:移动文件或文件夹。
mv 移动文件或文件夹 新目录下 # 把文件或文件夹移动到新的目录下
mv-f 移动文件或文件夹 新目录下 # 强制移动
mv-u 移动文件或文件夹 新目录下 # 只替换修改的文件,移动的新目录已存在该文件,就会替换修改后文件
mv 旧文件 新文件名 # 用于重命名文件名
4、文件管理
文件属性
Linux是一个典型的多用户操作系统,不同用户拥有不同的权限,我们可以通过ll
或者ls -l
来查看文件的属性。
文件属性的第一个字母,这个字母表示文件是一个目录、文件、还是链接。
- d:表示这是一个目录。
- -:表示这是一个文件。
- l:表示这是一个链接,相当于是快捷键。
- b:表示文件里有可提供存储的接口设备。
- c:表示这是装置文件中的串口设备,例如鼠标、键盘等。
第一个字母后面的九个字母表示,三个为一组,分别是
rwx
,r表示读,w表示写,x表示执行,没有对应的权限就是-
。
l | rwx |
rwx |
rwx |
1 | root | root | 7 | Jul 11 2019 |
表示文件类型,这是个链接 | 属主的权限,这个文件的拥有者的权限,可读可写可执行 | 属组的权限,属于某个组的用户的权限,可读可写可执行 | 其他用户的权限,系统中其他用户的权限,可读可写可执行 | 文件中个数 | 属主,这个文件属于哪个用户 | 属组,这个文件属于哪个权限组 | 表示文件的大小 | 文件创建的日期 |
修改文件属性
- 修改属组:
# 属组名必须存在
chgrp [-R] 属组名 文件名 # 更改文件的属组
# -R 表示递归修改子目录下所有文件的属组名
- 修改属主:
# 属主必须存在
chown [-R] 属主名 文件名 # 更改文件属主
- 修改文件的权限:
Linux中文件属性有两种表示方式:1、数字;2、符号;我们通常使用数字来修改文件得权限。
r:4(读) w:2(写) x:1(执行)
chmod -R 777 文件名 # 修改文件的权限为可读可写可执行
# 第一个7表示属主的权限 4+2+1 = 7
# 第二个7表示属组的权限
# 第三个7表示其他用户的权限
# 也可以通过字符来修改文件的属性
chmod u/g/o/a +/- r/w/x 文件名
# u表示文件所有者、g表示文件所有者所在组、o表示其他用户、a表示三者全部。可以搭配使用,如ug表示文件所有者及其所在组;
chmod u-x,go+wx index.html
查看文件内容
cat 文件名 # 从第一行查看文件内容
tac 文件名 # 从最后一行查看文件内容,倒序查看
nl 文件名 # 标有行号查看文件内容
more 文件名 # 一页一页查看文件内容,空格是翻页,但是只能向下翻页
less 文件名 # 与more类似,但是可以向上翻页,pageup向上翻页,pagedown向下翻页
head -n 行数 文件名 # 查看文件前20行的内容
tail -n 行数 文件名 # 查看文件后20行内容
# 使用more和less查看内容时:
# q命令:退出查看
# /字符串:向下查询字符串
# ?字符串:向上查询字符串
# n:向上移动一个查询的字符串
# N:向下移动一个查询的字符串
5、链接
在目录管理中,我们知道文件类型中有链接类型,在Linux中链接分为硬链接和软链接(符号链接)。
硬链接:指向源文件,相当于是一个文件,即使删除了源文件,硬链接还是能够指向源文件,通常用于备份文件。
软链接:指向源文件,相当于是windows中的一个快捷键,但是删除了源文件后,软链接也会失效。
ln 源文件 硬链接文件 # 创建一个硬链接
ln -s 源文件 软链接文件 # 创建一个软链接文件
echo "内容" >> 文件 # 将内容输入到文件中
由于硬链接和软链接都指向源文件,所以源文件发生改变,链接文件也会发生改变。
6、Vim编辑器
Vim编辑器:是从vi发展而来的一个文本编辑器,代码补全和编译错误等功能,在Linux中被广泛使用,简单方便。
在Vim中有三种模式:1:命令模式;2、输入模式;3、底线命令模式;
命令模式:用户启动Vim编辑文件就进入命令模式。
vim 文件 # 编辑文件,进入命令模式
命令模式下可执行的操作:
- 按
i | a | o
键:可以进入输入模式,可以对文件进行编辑,按下i a o 其中一个都可以进入输入模式。 - 按
x
键:可以删除光标所在行。 - 输入
:
:可以切换到底线命令模式。
输入模式:可以编辑文件的模式,在命令模式下,按下 i 就可以进入输入模式。
输入模式下可执行的操作:
- 按
ESC
键:退出编辑模式,进入命令模式。
底线命令模式:在命令模式下,按下
:
进入底线命令模式,可以在:
后面输入命令。
底线命令模式可执行的操作:
q
:退出编辑文件,但是不保存。w
:保存文件,但是不退出编辑。wq
:保存文件并退出。- 按
ESC
:退出底线命令模式,进入命令模式。 q!
:强制退出。w!
:强制保存,但是保存的成功与否,更用户的权限有关。wq!
:强制对出保存。
如果使用 vim 编辑一个不存在的文件,它会自动创建这个文件。
vim 使用:
- 在命令模式下,输入
/查询字符串
,向下查询字符串。 - 在命令模式下,输入
?查询字符串
,向上查询字符串。 - 在命令模式下,输入
n
,向上移动一个查询到的字符串。 - 在命令模式下,输入
N
,向下移动一个查询到的字符串。
7、用户账号管理
Linux是一个多用户、多任务的分时操作系统,在Linux上可以同时登陆多个用户。用户的管理包括增加用户、修改用户、删除用户等操作。
增加用户:在root用户下可以添加其他用户。
useradd 用户名 # 添加一个用户
useradd -c "备注" 用户名 # 创建一个用户并添加备注
useradd -m 用户名 # 创建一个用户,如果在/home目录下不存在这个用户的目录,则会自动创建一个用户目录,存在就报错,就使用-d来创建
可以在 /etc/passwd
这个文件下查看系统下的所有用户。
删除用户
userdel 用户名 # 删除某个用户
userdel -r 用户名 # 删除用户,并删除用户的目录
修改用户
# -c是备注;-d是用户目录;-g是用户属组;
usermod -c/-d/-g 新内容 用户名
切换用户
在Linux中,#
表示是超级管理员的命令窗口,$
表示是普通用户的命令窗口。
hostname 主机名 # 修改主机名称,但是是临时的,重启就失效了
su 用户名 # 切换到指定用户名下
exit # 退出账户,返回到自己用户下
sudo su root # 切换到超级管理员账户下
设置用户密码:如果用户的密码为空,不能远程连接
passwd 用户名 # 修改用户的密码
锁定账户
passwd -l 用户名 # 锁定用户,锁定之后用户就不能登录系统了
passwd -u 用户名 # 解锁用户名
8、用户组管理
每一个用户都对应一个用户组,在这个组中可以集中对用户进行管理,创建了一个用户,也会创建一个对应的用户组。在Linux中对用户组的管理实质就是对 /etc/group
文件的管理。一般在创建用户时,就可以给新建用户设置一个组,通过 -G
组名来设置组
创建用户组
groupadd 组名 # 新建一个用户组
groupadd -g 组id 组名 # 新建一个组,并指定组的id,id是唯一的,如果不指定id默认是最大id自增1
查看所有的组:cat /etc/group
删除组
groupdel 组名 # 删除一个组
修改组
groupmod -g 新组id -n 新组名 修改的组名 # 修改组的id和组名称
9、磁盘管理
查看系统整体磁盘使用量
df # 查看系统整体磁盘使用量,以字节显示
df -h # 以MB单位显示
查看一个目录的具体使用
# 在某个目录下使用 du 命令,查看这个目录的使用情况
du # 不包含隐藏文件
du
du -a # 包含隐藏文件和子目录文件
挂载和卸载
mount 外部设备 挂载的目录 # 将外部设备,挂载到需要挂载的目录下
umount -f 挂载的目录 # 强制卸载挂载的目录
10、进程管理
进程:在Linux中,每一个程序都有自己的进程,每一个进程都有一个进程编号,也有一个自己的父进程。进程分为两种,一种是前台运行、一种是后代运行的。在Linux中,一般服务都是在后台运行的,其他一般程序是前台运行。以后我们发布的
SpringBoot
项目需要在后台运行才行。
ps -aux # 查看所有的进程,a表示当前进程,u表示当前用户的进程,x表示后台运行的进程,这三个可以分开使用
ps -ef # 也可以查看所有的进程信息,这个可以看到父进程信息
pstree -pu # 通过目录树查看进程,p显示进程pid,u显示进程的用户组
# 在Linux中 | 这个符号是管道符,通常用于过滤,例如 A | B,就是把A查询的结果输出给B
ps -ef | grep 进程名 # -ef查看所有进程,| 进行过滤,grep查找符合条件的字符串,这个就是查看该进程的信息
结束进程
kill -9 进程pid # 强制结束这个进程pid的进程
kill -s 进程名/进程pid # 结束某个进程
top # 实时显示进程的信息,q退出查看
nohup 命令 # 将服务放在后台运行,即使关闭终端,依然在服务器上运行
nohup java -jar /xxx/xxx/xxx.jar >/dev/null 2>&1 &
# >/dev/null 2>&1 & 这一部分表示 /dev/null是一个虚拟的空设备(类似物理中的黑洞),任何输出信息被重定向到该设备后,将会石沉大海,没有任何的日志输出
# 也可以自定义日志输出,log.file就是日志的输出文件
nohup java -jar /xxx/xxx/xxx.jar> log.file 2>&1 &
11、防火墙管理
常用命令
firewall-cmd --list-ports # 查看防火墙开放的端口,如果使用的是阿里云服务器需要在阿里云配置安全组
firewall-cmd --zone=public --add-port=端口号/服务类型(tcp或者udp) --permanent # 开启防火墙某个端口
# --zone表示作用域是public,--add-port添加的端口号,--permanent有这个参数是永久有效,没有这个参数重启就失效
# 开启某个端口后需要重启防火墙
systemctl restart firewalld.service # 重启防火墙
systemctl start <服务名> # 启动某个服务
systemctl stop <服务名> # 停止某个服务
systemctl restart <服务名> # 重启某个服务
12、环境安装
rpm 方式安装:
首先需要去官网下载对应的 rpm 包,然后上传到服务器,也可以通过在线下载 rpm 包。
rpm -qa|grep 包名称 # 查看以安装的rpm包,通过了grep过滤
rpm -e --nodeps 安装的rpm名称 # 卸载已安装的rpm包
rpm -ivh rpm包 # 进行安装rpm包
编译安装
yum 在线安装
cat /etc/redhat-release # 查看自己系统的版本信息
yum -y install 包名 # 在线安装包名,-y表示遇到需要确定就是是y
最近发现除了腾讯云和阿里云之外的一种好用的云服务器,那就是三丰云云服务器,它拥有众多的功能,其中一个就是可以免费试用一款云服务器,下面介绍它的使用方式。
官方地址:https://www.sanfengyun.com/
然后进行一个实名认证和微信的绑定就可以申请一个 1c1g的免费服务器。