远程工具
在工作中,Linux系统一般安装在公司机房的服务器上,因此需要使用远程工具连接Linux服务器进行操作,下载安装XShell和Xftp工具,下载地址:https://www.xshell.com/zh/free-for-home-school/
常用命令
磁盘管理
① 切换目录:cd 目录名
由当前目录切换到 /usr/local
cd /usr/local
回到根目录
cd /
返回上一级目录
cd ..
② 列出当前目录下的文件及文件夹:ll ls
查看当前目录下的目录及文件,显示详细信息
ll
查看指定目录下的目录及文件,显示详细信息
ll /usr/local
查看当前目录下的目录及文件,只显示名称
ls
查看指定目录下的目录及文件,只显示名称
ls /usr/local
使用ll命令展示出的详细信息,如果是 - 开头,表示这是一个文件;如果是 l 开头,表示这是一个链接;如果是 d 开头,表示这是一个目录
③ 显示当前所在目录位置:pwd
pwd
文件管理
① 创建目录:mkdir 目录名
在当前目录下创建文件夹
mkdir test01
在指定路径下创建文件夹
mkdir /usr/test01
② 删除文件或目录:rm rm -rf
使用 rm 删除文件
# echo 内容 > 文件名 创建一个文件并写入内容
echo "hello,world" > my.txt
# 删除文件
rm my.txt # 出现提示时,输入 y 表示同意删除
# 无视提示进行删除
rm -f my.txt
使用 rm 删除文件夹
# 删除文件夹
rm -r test01 # 出现提示时,输入 y 表示同意删除
# 无视提示进行删除
rm -rf test01
③ 复制文件命令:cp cp -rf
复制文件 cp 被复制文件名 新文件名
# 复制文件
cp my.txt my02.txt
# 重复执行时会询问是否覆盖 y表示同意覆盖 n表示取消
复制文件夹 cp -rf 被复制的目录名 新目录名
cp -rf test01 test02
④ 查看文件内容
查看文件的全部内容
# 查看当前目录下的文件内容
cat my.txt
# 查看指定目录下的文件内容
cat /root/anaconda-ks.cfg
分页查看文件内容
# 逐屏输出 按空格space就往下一页、Enter 一行一行展示
more /root/anaconda-ks.cfg
查看文件开头的n行数据
head -5 /root/anaconda-ks.cfg # 查看开头5行数据
head /root/anaconda-ks.cfg # 默认查看10行
查看文件末尾的n行数据
tail -5 /root/anaconda-ks.cfg # 查看末尾5行数据
tail /root/anaconda-ks.cfg # 默认查看末尾10行
⑤ 文件搜索
搜索文件内容
# 搜索文件内容
grep "hello" my.txt # 在指定文件中搜索关键字
# 搜索文件内容,忽略大小写
grep -i "hello" my.txt
# 搜索多个文件
grep "hello" my.txt my02.txt
grep -i "hello" my.txt my02.txt
搜索以关键字开头的内容
# 以关键字开头搜索文件内容
grep "^hello" my.txt
grep "^hello" my.txt my02.txt #查询多个文件
# 忽略大小写
grep -i "^hello" my.txt
grep -i "^hello" my.txt my02.txt #查询多个文件
使用管道搭配搜索
cat my.txt | grep "hello" # 从文件搜索内容并输出
系统命令
① 当前时间
date # 查看当前系统时间
② 切换用户
su 用户名 # 切换为其他用户
从普通用户切换到管理员 su root 回车后需要输入密码,输入密码时,密码是不显示的
③ 清除屏幕
clear # 清除屏幕 也可以使用快捷键 CTRL+L
④ 重启系统
reboot
⑤ 关机
shutdown -h now
⑥ 查看系统进程
ps -ef # 查看当前所有进程
ps -ef | grep vim # 查看当前正在执行vim的进程
常用参数
-e:显示当前所有进程
-f:显示UID,PPID,C与STIME栏位信息
UID:拥有该进程的用户
PID:程序的进程id
PPID:父进程id
C:CPU使用的资源百分比
STIME:系统启动时间
TTY:登录系统的终端位置(客户端的标识)
TIME:使用掉的CPU时间
CMD:进程是有哪些程序启动的
⑦ 杀死进程
kill pid值 # 杀掉进程
kill -9 pid值 # 强制杀掉进程
一般会使用ps -ef 查询进程id,然后再使用kill pid
压缩和解压缩
tar压缩(归档),tar用来压缩和解压缩文件,tar压缩后的文件也叫归档文件
语法:tar 参数 要压缩或解压缩的文件或目录
常用参数
- z:使用压缩,生成的文件名是 xxx.tar.gz 这是Linux中常用的压缩格式
- c:创建压缩文档
- v:显示压缩,解压过程中处理的文件名
- f:指定规定文件名,tar参数后面是归档文件名
- x:从归档文件中释放文件,就是解压
- t:列出归档文件,查看文件内容
- C:解压到指定名录,使用方式 -C 目录
① 创建归档文件(压缩)
语法:tar -zvcf 归档文件名 要归档的文件列表
tar -zvcf fileTar.tar.gz test01 test02 test01.txt test02.txt # 将目录和文件夹压缩到压缩包中
tar -zvcf fileTar02.tar.gz *.txt # 使用通配符将以.txt结尾的文件压缩
② 查看压缩包文件内容
语法:tar -tf 归档文件名
t:列出归档(压缩)文件的内容
f:归档文件名
tar -tf fileTar02.tar.gz # 查看压缩包中的文件内容
③ 释放压缩的文件内容
语法:tar -zxvf 已归档的文件名
x:解压,从归档文件中释放文件
tar -zxvf fileTar.tar.gz # 将归档文件解压到当前目录
tar -zxvf fileTar.tar.gz -C 目录 # 将归档文件解压到指定目录
网络通讯
① 查看IP信息
ifconfig
ip addr
② 测试网络连通
ping ip或者域名
查看之后,CTRL+C,退出查看返回Linux命令行
权限管理
权限指用户或程序能够对目录,文件执行的操作
执行ll 或 ls -l 显示文件和目录详细信息
文件类型
- :文件
d :目录
l :软链接文件(快捷方式)
c :字符设备文件,一次传输一个字节的设备被称为字符设备
Linux权限机制采用UGO模式。其中u(user)表示所属用户、g(group)表示所属组、o(other)表示除了所属用户、所属组之外的情况
r表示读权限,读取文件内容,对文件执行cat,more,less这样的查看命令,对目录来说可以读取目录文件列表
w表示写权限,编辑,新增,修改文件内容
x表示执行权限,进入目录,访问目录中的文件内容
常见权限设置
r-4 ,w-2,x-1
rwx = 4 + 2 + 1 = 7
常见644、755、770三种权限
644:拥有者有读写权限,所属组和其他用户只有读权限
755:拥有者有读写权限,所属组和其他用户有读和执行权限
770:拥有者和所属组有读写执行权限,其他用户没有权限
创建文件用户就是文件的拥有者,用户所在组就是文件的所在组。除了创建文件的用户都是其他用户。root有最高的权限
① 修改文件权限
chmod 606 a.txt # 设置a.txt文件权限,给当前用户分配读写权限,所属组无权限,其他用户读写权限
只有管理员用户可以分配权限,普通用户无法执行命令
② 修改文件拥有者
chown 新的拥有者用户 被修改的文件 # 修改原来用户拥有的文件改为新用户下
管道与重定向
① 重定向输出覆盖
echo "hello java" # 将内容输出在命令行
echo "hello java" > a.txt # 将内容输出到a.txt文件中,如果文件不存在会先新建文件
echo "hello world" > a.txt # a.txt文件存在,会将原内容进行覆盖
② 重定向输出追加
echo "hello java" >> b.txt # 将内容输出到b.txt文件中,如果文件不存在会先新建文件
echo "hello world" >> b.txt # b.txt文件存在,会将内容追加到文件中
③ 管道
管道就是用 “ | ” 连接两个命令,以前面一个命令的输出作为后面命令的输入,用于把管道左边的输出作为右边的输入
例如搜索文件内容
cat a.txt | grep "hello" # 从a.txt文件中搜索hello
查看某个进程是否存在
ps -ef | grep vim
编辑器
vi是Linux下标配的一个纯字符界面的文本编辑器,由于不是图形界面,相关的操作都要通过键盘输入命令来完成,需要记住一些常用的操作命令
vim是vi的升级命令,完全兼容vi,vim也可以完全当成vi使用,vim是在vi的基础上增加了一些功能,比如语法着色等
启动vi编辑器的语法:vi 文件名
如果文件存在,则打开文件;如果文件不存在,则会新建该文件(不是立即创建,而是在保存的时候创建)
vi操作分为 命令模式 和 编辑模式
命令模式:按ESC键,进入命令模式,命令模式下无法编辑
编辑模式:按a或者i字母进入编辑模式(此时,底部会出现insert)。在命令模式下输入 :wq 保存退出,按 :q! 不保存退出
编辑文件命令(在命令模式下使用)
- dd:删除光标所在行
- yy:复制光标所在行到缓冲区
- p:粘贴缓冲区中的内容
- gg:光标回到文件第一行
- GG:光标回到文件最后一行
- ^:光标移动到行首
- $:光标移动到行尾
- /:斜杠键,可以输入想搜索的字符,然后确定进行搜索,如果第一次查找的关键字不是想要的,可以一直按 n 键往后查找到想要的关键字为止
安装软件
yum是一个在RedHat、Fedora以及CentOS中的一种软件包管理器,能够从指定的服务器自动下载软件包并且进行安装,可以自动处理软件包之间的依赖关系,并且一次安装所有依赖的软件包,无需繁琐的一次次下载安装
查找软件包命令:yum search 安装包名称中的部分关键字
例如:yum search java
① 安装指定的软件命令 yum install 安装包名称
② 删除软件包命令 yum remove 安装包名称
开发软件
JDK
下载jdk8Linux压缩包,使用xftp工具将压缩包上传到Linux服务器的home路径下
执行解压命令,将jdk压缩包文件解压到/usr/local目录下
tar -zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local/
配置环境变量
vim /etc/profile
# 进入编辑模式,在最后一行添加一下命令
export JAVA_HOME=/usr/local/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
# 进入命令行模式,:wq保存退出
# 使环境变量生效
source profile
# 查看jdk版本
java -version # 如果未生效,jdk版本还是openjdk
Tomcat
下载Tomcat9.0Linux压缩包,使用xftp工具将压缩包上传到Linux服务器的home路径下
执行解压命令,将压缩包文件解压到/usr/local目录下
tar -zxvf apache-tomcat-9.0.0.M26.tar.gz -C /usr/local/
更改文件夹名
mv apache-tomcat-9.0.0.M26 tomcat-9.0.0
切换到Tomcat的bin目录下执行启动命令
./startup.sh
打开浏览器访问:http://Linux服务器IP:8080 ,查看是否可以打开Tomcat首页
需要关闭Linux服务器的防火墙,否则页面无法展示
# 防火墙相关命令
systemctl status firewalld # 查看防火墙状态
systemctl enable firewalld # 让防火墙可用
systemctl disable filewalld # 让防火墙不可用
systemctl start firewalld # 开启防火墙
systemctl stop firewalld # 关闭防火墙
关闭Tomcat服务,可以通过杀死进程,或者运行bin目录下的shutdown.sh命令
MySQL
下载MySQLLinux压缩包,使用xftp工具将压缩包上传到Linux服务器的home路径下
检查Linux是否安装了mariadb数据库,mariadb数据库时MySQL的分支,是免费开源的。mariadb和MySQL会有冲突。首先要检查是否安装了mariadb,如果安装了需要卸载掉
检查命令:yum list installed | grep mariadb
卸载命令:yum -y remove mariadb软件包名称
将压缩包解压到/usr/local目录下
tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
将MySQL文件夹进行重命名
mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql-5.7.18
创建数据文件夹data,data文件夹是MySQL用来存放数据库文件的,数据库的表数据都放在data目录。默认没有data目录,可以手动创建data目录
cd mysql-5.7.18
mkdir data
创建MySQL用户,用来执行MySQL命令mysqld,此命令用来初始化MySQL基础信息
useradd mysql
使用MySQL的mysqld命令初始化数据库的基本信息,切换到bin目录下执行
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql-5.7.18/data --basedir=/usr/local/mysql-5.7.18
参数说明
- --initialize 初始化MySQL,创建MySQL的root,随机生成密码。记住密码,登录MySQL使用
- --user 执行mysqld命令Linux用户
- --datadir mysql数据文件的存放位置
- --basedir mysql安装程序的目录
该命令执行后,会生成一个临时的mysql数据库root用户名的密码,请先拷贝出来,后续第一次登录mysql需要使用
在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份验证机制,mysql命令程序,mysql_ssl_rsa_setup提供了开启数据加密功能,生成数字证书
在bin目录下执行命令
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.18/data
mysql安装后,需要更改mysql整个文件夹目录权限,更改所属的用户和组,是之前创建的mysql用户。在mysql安装目录的上级(/usr/local)位置,执行命令chown
chown -R mysql:mysql /usr/local/mysql-5.7.18
# -R 表示递归,更改目录中的所有子文件夹的权限
启动mysql服务,在bin目录下执行命令
./mysqld_safe & #后台启动mysql服务
mysqld_safe程序会在启动mysql服务器后继续监控其运行情况,并在其死机后重启启动它
登录mysql并重置登录密码
./mysql -uroot -p
# 输入临时密码
alter user 'root'@'localhost' identified by 'root';
授权远程访问
# 执行授权命令
grant all privileges on *.* to root@'%' identified by 'root';
# 更新权限信息
flush privileges;
*.* :第一个 * 表示所有数据库名,第二个 * 表示所有的数据库表
root@'%' 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址
Navicat远程连接mysql