1 环境搭建
方式一:安装CentOS
下载地址:http://mirrors.aliyun.com/centos/7/isos/x86_64/
方式二:阿里云远程
1、阿里云购买服务器:https://www.aliyun.com
2、购买完毕后,获取服务器的ip地址,重置服务器密码,就可以远程登录了
3、下载 xShell 工具,进行远程连接使用
注意事项:如果要打开端口,需要在阿里云的安全组面板中开启对应的出入规则,不然的话会被阿里拦截!
2 登录
开机会启动许多程序。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。
开机成功后,它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份,密码是不显示的,输完回车即可
点击屏幕进入虚拟机、Ctrl+Alt将聚焦退出出虚拟机
一般来说,用户的登录方式有三种:
命令行登录
ssh登录
图形界面登录
最高权限账户为 root
3 关机
在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
关机指令为:shutdown
4常用基本命令
绝对路径和相对路径
我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /;其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
比如说在360Downloads目录下,如果想要进入这个目录,那么可以使用cd
cd : 切换目录命令
cd … : 返回上一级目录
./ : 代表当前目录
ls - 列出目录
-a 参数 : 查看全部文件,也可以是隐藏文件
-l 参数: 列出所有的文件,包含文件的属性和权限,看不了隐藏文件
linux命令可以组合使用
在这里插入图片描述
cd - 切换目录
cd + 目录名(绝对路径和相对路径)
绝对路径,linux中的都是以/开头的 在任意地方使用
相对于当前目录该如何寻找 …/… 在相对地方使用
cd: 切换目录命令!
./: 当前目录
/: 绝对路径
cd..: 返回上一级目录
cd ~: 回到当前的用户目录
pwd : 显示当前用户所在的目录
mikdir - 创建一个目录
mikdir xx:在当前目录下创建一个文件夹
mkdir -p xx/xx/xx:以当前目录为起点,创建多级目录(递归创建)
rmdir - 删除目录
rmdir xx:删除当前目录下指定文件夹
rmdir -p xx/xx/xx:以当前目录为起点,删除多级目录(递归删除)
注意:不可以直接删除不为空的文件夹,如果里面存在文件,需要删除文件
cp - 复制文件或者目录
cp 原来的地方 新的地方:复制文件或目录到指定位置
cp [options] source1 source2 source3 .... directory
操作可以带的选项与参数:
-a:**相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-p:**连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-d:**若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-r:**递归持续复制,用於目录的复制行为;(常用)
-f:**为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
-i:**若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-l:**进行硬式连结(hard link)的连结档创建,而非复制文件本身。
-s:**复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:**若 destination 比 source 旧才升级 destination !
rm - 移除文件或者目录
-f 忽略不存在的文件,不会出现警告,强制删除
-r 递归删除目的
-i 互动,删除的时候询问是否删除
mv 移动文件或者目录
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
文件内容查看
cat :由第一行开始显示文件内容,用来读文章,或者读取配置文件
head:只看头几行
tail:只看尾巴几行
5 Vim编辑器
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。、
三种使用模式
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:
i :切换到输入模式,以输入字符。
x :删除当前光标所在处的字符。
esc :退出编辑模式
: 切换到底线命令模式,以在最底一行输入命令。
输入模式
在输入模式中,可以使用以下按键:
字符按键以及Shift组合:输入字符
ENTER: 回车键,换行
BACK SPACE:退格键,删除光标前一个字符
DEL: 删除键,删除光标后一个字符
方向键: 在文本中移动光标
ESC:退出输入模式,切换到命令模式
6 账号管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
实现用户账号的管理,要完成的工作主要有如下几个方面:
用户账号的添加、删除与修改。
用户口令的管理。
用户组的管理。
添加用户 useradd
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。
useradd 选项 用户名
删除用户 userdel
userdel -r xiaoqi : 删除用户的时候将他的目录一并删掉
除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
删除一个已有的用户账号使用userdel命令,其格式如下:
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。
修改用户 usermod
修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
修改已有用户的信息使用usermod命令,其格式如下:
usermod 选项 用户名
切换用户
切换用户的命令为:su username 【username是你的用户名哦】
从普通用户切换到root用户,还可以使用命令:sudo su
在终端输入exit或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令
在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】
$表示普通用户
#表示超级用户,也就是root用户
查看主机名:hostname
修改主机名(修改后需要重启服务器):hostname【主机名】
设置密码
一般通过超级用户root创建用户的时候,给他设置一个密码
passwd 选项 用户名
可使用的选项:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
如果默认用户名,则修改当前用户的口令。
锁定账户
冻结账号,该账号就无法登陆
passwd -l sgx 锁定之后就不能登陆了
清空密码,该账号也无法登陆
passwd -d sgx 清空密码,无法验证下一次也就无法登陆
7 用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
创建用户组 groupadd
groupadd 选项 用户组
删除用户组 groupdel
groupdel 用户组
修改用户组的权限、名称 groupmod
groupmod 选项 用户组
8查看group、shadow、passwd等重要文件
/etc/passwd
完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。
与用户和用户组相关的信息都存放在一些系统文件中,这些文件包括/etc/passwd, /etc/shadow, /etc/group等。
下面分别介绍这些文件的内容。
/etc/passwd文件是用户管理工作涉及的最重要的一个文件。
Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。
/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:
用户名:口令(登录密码,我们不可见):用户标识号:组标识号:注释性描述:主目录:登录Shell
这个文件中的每一行都代表这一个用户,我们可以从这里看出这个用户的主目录在哪里,可以看到属于哪一个组。
9 磁盘管理
Linux磁盘管理好坏直接关系到整个系统的性能问题。
Linux磁盘管理常用命令为 df、du。
df命令:列出文件系统的整体磁盘使用量
功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
df [参数] [目录或文件名]
选项与参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
du命令:检查磁盘空间使用量
du命令是对文件和目录磁盘使用的空间的查看,与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据。
du [参数] 文件或目录名称
选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
磁盘的挂载与卸除
根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,(Mac os和linux类似)
此关联操作即为“挂载”,
此目录即为“挂载点”,
解除此关联关系的过程称之为“卸载”
Linux 的磁盘挂载使用mount命令,卸载使用umount命令。
磁盘挂载语法:
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
磁盘卸载命令 umount 语法:
umount [-fn] 装置文件名或挂载点
选项与参数:
-f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
-n :不升级 /etc/mtab 情况下卸除。
10 进程管理
Linux一切皆文件(文件:读写执行,权限(用户,用户组),系统:(磁盘,进程))
什么是进程?
在linux中每一个程序都有自己的一个进程,每一个进程都有自己的id号
每一个进程都会有一个父进程
进程有两种存在方式:前台,后台运行
一般的话,服务都是后台运行的,基本的程序都是前台运行的。
命令
ps -help # 查看帮助信息
man ps # 查看帮助信息
ps命令 查看当前系统中正在执行的各种进程的信息
ps -xx
参数:
-a : 显示当前终端正在运行的进程信息
-u:以用户的信息显示进程 -
-x:显示后台运行的进程参数。
在linux中这个 | 叫做管道符 , A | B,将A查询的信息以命令的形式给B
# ps -aux 查看所有的进程
ps -xx |grep 进程名字:过滤进程信息
#grep 查找文件中符合条件的字符串
kill:杀死进程
kill -9 进程的id : 表示强制结束该进程
nuhup:后台执行该程序
11 环境安装
安装软件一般有三种方式:rpm、解压缩、yum在线
JDK(rpm安装)
注:rpm安装软件无需配置环境变量,只有本地解压缩安装才需要手动配置环境变量
1.下载jdk的rmp包,去orcale官网下载:
https://www.oracle.com/java/technologies/downloads/#java8
2.安装java环境
# 1. 检查当前系统是否存在java环境:java -version
# 2. 如果存在java环境就先卸载:
rpm -qa|grep jdk #检测jdk版本信息
rpm -e --nodeps jdk_ #卸载
3. 安装jdk
rpm -ivh rpm包
jdk卸载:
jdk安装:
(如果是解压缩安装才需要手动配置环境变量)配置环境变量:在/etc/profile文件中
JAVA_HOME=/usr/java/jdk1.8.0_311-amd64
CLASSPATH=%JAVA_HOME%/lib;%JAVA_HOME%/jre/lib;
PATH=$PATH:$JAVA_HOME/bin;$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
在文件的最后增加Java的配置,和windows环境变量一样
让这个配置文件生效:source /etc/profile
测试:
在这里插入图片描述
Tomcat(解压缩安装)
1.下载tomcat安装包,上传到服务器中
2.解压文件
tar -zxvf XXX
3.启动tomcat
进入/apache-tomcat-8.5.75/bin
# -->启动tomcat
./startup.sh
# -->关闭tomcat
./shutdown.sh
4.测试访问
确保Linux的防火墙端口是开启的,如果是阿里云,需要保证阿里云的安全组策略是开放的
# 查看firewall服务状态
systemctl status firewalld
# 开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all # 查看全部信息
firewall-cmd --list-ports # 只看端口信息
# 开启端口
开端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:systemctl restart firewalld.service
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
Docker(yum安装)
yum安装gcc相关
yum -y install gcc
yum -y install gcc-c++
卸载旧版本
yum -y remove docker docker-common docker-selinux docker-engine
# 直接复制即可
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置stable镜像仓库
# 正确推荐使用国内的
yum-config-manager-add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
安装Docker CE
yum -y install docker-ce docker-ce-cli containerd.io
启动docker
systemctl start docker
测试
docker version
docker run hello-world
docker images