# 一、Linux 认知
# 1、文件权限
r :可读 read
w :可写 write
x :可执行 excuse
# 2、基础命令
npm install --unsafe-perm --registry=https://registry.npmmirror.com/ # npm的v7.0.0版本已解决--unsafe-perm问题,无需指定
ps -aux | grep java # 查看进程(包含进程号),如果简洁一点的话可以使用👀:ps -ef
kill -9 [进程号] # 关闭某个进程(根据进程号)
pkill -9 [进程名] # 关闭某个进程(根据进程名)
nohup java -jar ruoyi.jar & # 部署jar包(后台运行)
pwd
打印当前位置
clean
清屏操作
ifconfig # 查看网络接口属性
netstat -lnpt # 正在监听的端口🎉
netstat -anpt | grep :[端口号] 🎈
tail -f sys-info.log # 监听日志
reboot # 重启
shutdown # 关机
systemctl restart systemd-logind # 先重启,然后执行重启ssh服务命令(解决channel is not opened.问题)
# 3、软件安装 🎈
在常规的项目部署中,使用最多的就是 Centos 系统,下面以该系统为例:
ssh root@ip地址 # 连接服务器
cat /etc/redhat-release # 查看centos版本
which git # 可执行文件目录
dnf 和 yum 的关系
dnf 是 yum 的下一代版本,旨在改进 YUM 的性能、可维护性和用户体验,采用了现代的 Python 库
并且,从 CentOS 8 开始,YUM 被 DNF 取代:
在 Centos7 版本中是没有自带 dnf,需要手动安装(CentOS 8 或更新版本 中已经自带了 dnf)
即使在 Centos7 手动安装了 dnf,其版本也很低 4.0.9
yum update
yum install dnf
dnf --version
- dnf(centos8)
dnf --version # 最新v4.7.0
# 搜索
dnf search mysql # dnf仓库是否有nodejs包
dnf info mysql-server # 查看该nodejs版本信息
# 更新
dnf update
# 安装
dnf install git # 2.39.3
dnf install mysql-server # v8.0.26
dnf install nodejs # 默认10.23.1版本过低,可通过n进行版本切换
dnf install nginx # 1.14.1
dnf install java-1.8.0-openjdk.x86_64 # 1.8.0_362
# 卸载
dnf remove mysql-server
拓展:在服务端使用 mysqld
# 使用
systemctl start/status/enable mysqld
# 初始化安装(和本地一样的安装流程,只不过在命令行进行)
mysql_secure_installation
# 开放远程连接
mysql -u root -p
> show databases;
> use mysql; # 修改mysql配置
> select host, user from user;
> update user set host = '%' where user = 'root';
> FLUSH PRIVILEGES; # 使配置生效
> select host, user from user;
> exit
拓展:使用 n 进行版本管理
"n (opens new window)" 是一种相对轻量级的 Node.js 版本管理工具。
npm install n -g
# 安装
n 16
n install lts
# 使用指定版本
n 16
n --version # 初次使用n时,是不会😭生效的,需要重启服务器
- yum(centos7)
由于 CentOS 社区将于 2024 年 6 月 30 日停止维护 CentOS 7,所有其中的 yum、dnf 目前也不再同步更新 😒
yum --version # 最新v3.4.3
dnf --version # 最新v4.0.9
# 搜索
yum search nodejs
yum info nodejs
# 更新
yum update
yum install dnf
dnf upgrade dnf
# 安装
# dnf install mysql # 没有,默认安装开源的 mariadb
dnf install nodejs # 16.18.1
dnf install nginx # 1.20.1
dnf install java-1.8.0-openjdk.x86_64 # 1.8.0_382
# 卸载
dnf remove nodejs
# 二、目录操作
# 1、切换 cd
cd dir
cd ~
切换到 home 目录
cd ..
切换到上一级目录
cd -
返回上次使用的目录
. . /表示同一等级目录; . /表示当前目录 ; ~/ 表示 home 目录 (即:~/ 与 /home/lencamo/ 等效); / 表示 根目录。
# 2、显示 ls
# 1、普通
ls
ls -F # 显示是文件、还是目录
# 2、详细
ll # 是ls -l的别名👀
ls -lh # 显示内容大小(详细)
ls -lt # 显示按时间排序(详细)
# 3、全部
ls -al # 显示隐藏文件
# 4、查找 find
# 查找文件
find [目录] -name file/dir
# find / -name "jenkins"
# 查找内容
grep [内容] file
# cat demo.txt | grep JAVA_HOME
# 三、文件操作
# 1、新建
# 创建文件夹
mkdir [-p] dir
# 创建文件
touch file
# 创建并写内容
echo "content" > file
# 2、删除
# 删除文件(f表示不带确认提示)
rm -f file
# 删除文件夹(r表示进行的是递归删除)
rm -rf file/dir
rmdir 删除空文件夹
# 3、复制
# 拷贝文件
cp file [位置]
# 拷贝文件夹
cp dir [选项] [位置] # 一般选项写 -a(保证源一致)
# 4、移动
# 移动
mv file/dir [位置]
# 覆盖
mv -f file/dir [位置]
# 重命名(同一👀目录时)
mv file/dir file/dir
# 四、vim 编辑器
按 i
键表示进入编辑模式,按 ESC
键表示退出编辑模式。
# 1、编写内容
# 编辑
vi/vim file
# 追加内容
echo [content] >> file
# 覆盖内容
echo [content] > file
# 2、内容查找
# 查找
/lencamo # 光标后内容搜索
?lencamo # 光标前内容搜索
# 行号
:set nu # 显示
:set nonu # 隐藏
# 退出
:wq # 保存退出
:q! # 不保存退出
# 2、内容查看
# 查看
head --lines=3 file
tail --lines=3 file
less file #
cat file
# 五、压缩包
-z:打包同时压缩 ✨
-c:产生.tar 打包文件
-x:解压.tar 文件
-t:查看压缩包内容
-v:显示详细信息 verbose
-f:指定压缩后的文件名 file
# 1、.rar
# 解压:
rar xvf FileName.rar
# 压缩:
rar cvf FileName.rar DirName
# 2、.tar.gz ✨
# 解压到指定的位置
tar zxvf 压缩包 -C dir
# 解压:
tar zxvf FileName.tar.gz
# 压缩:
tar zcvf FileName.tar.gz DirName
# 3、.zip ✨
unzip 压缩包 -d dir
# 解压:
unzip FileName.zip
# 压缩:
zip FileName.zip DirName
# 4、.tar.xz
# 解压:
tar -Jxvf FileName.tar.xz
# 六、用户管理
# 1、用户组
# 查看
tail -5 /etc/group
# 新增
groupadd 用户组
# 删除
groupdel 用户组
# 修改
groupmod 用户组名 -n 新用户组名
# 2、用户
用户基本信息在/etc/passwd
文件中,用户密码等安全信息在/etc/shadow
文件中
- passwd 文件行信息解读
username: password: uid: gid: userinfo: home: shell
# 查看
tail -5 /etc/passwd
grep 用户名 /etc/passwd
# 新增(用户主目录即进入系统时默认的目录)
useradd 用户名 -g 用户组 [-d 用户主目录]
# 删除(删除账号时,连同账号主目录一起删除)
userdel -r 用户名
# 修改(不允许改变正在系统中使用的用户账户)
usermod 用户名 -g 用户组 -e 到期时间 // 2023-10-10
# 设置密码
passwd 用户名
# 后期创建用户主目录(当然默认情况下的主目录位置和下面的示例位置一样)
mkdir /home/用户名
chown 用户名 -R /home/用户名
usermod -d /home/用户名 用户名
grep 用户名 /etc/passwd
# 切换用户查看
su - 用户名
# 七、文件/目录管理
# 1、拥有者
chown 将指定文件的拥有者改为指定的用户或组
# -R表示递归
chown -R [用户名|用户组名] 文件/目录
# 2、rwx 权限
文件/目录所有者是创建文件的用户
当创建一个文件时,系统会自赋予文件所有者读和写的权限
# 查看文件详细内容
ll
# 文件、命令默认权限
-rw-r--r-- 1 root root 0 Nov 11 15:01 lencamo.txt
drwxr-xr-x 2 root root 4096 Nov 11 15:00 ren
对文件详细内容进行解析:
- rw- r-- r--
上面四项分别对应:
- (-表示文件、d 表示目录)
- (文件所有者的权限)
- (同组用户的权限)
- (其他用户的权限)
# 以上传的git压缩、解压的文件为例:
-rw-r--r-- 1 root root 10472557 Nov 9 16:30 git-2.38.1.tar.gz
drwxrwxr-x 29 root root 36864 Nov 9 16:34 git-2.38.1
# 3、chmod 命令
权限表示:
- 十进制:0 表示没有权限,1 表示 x 权限,2 表示 w 权限,4 表示 r 权限
- u、g、o:分别代表文件所有者、同组用户、其他用户(a 代表所有用户:系统默认值)
- 8 进制:r(read 读)、w(write 写)、x(execute 执行)
# 修改rwx权限
# 1、数字设定法
chmod 777 /var/lib/mysql
# 2、文字设定法
chmod u+x *.sh