# 一、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
更新于 : 8/7/2024, 2:16:31 PM