2024-08-16

在Linux中,rpm是一个用于管理包的命令行工具,用于安装、升级、删除、查询和验证Red Hat和类似系统上的包。

命令格式:




rpm [选项] [包名]

常用选项:

  • -i: 安装包
  • -U: 升级包
  • -e: 移除包
  • -q: 查询包信息
  • -V: 验证包
  • -h: 安装时,显示安装进度
  • --nodeps: 忽略依赖关系

查看硬盘和分区信息的常用命令:

  • lsblk: 列出所有可用的存储块设备(包括硬盘、分区、可移动设备等)。
  • df -h: 显示磁盘空间的使用情况,并以人类可读的格式(如GB、MB)显示。
  • fdisk -l: 查看磁盘分区表。
  • blkid: 显示块设备的UUID和文件系统类型。

文件权限后面的数字表示:

  • 第一个数字代表文件所有者的权限(读r、写w、执行x)。
  • 第二个数字代表同一组的用户权限。
  • 第三个数字代表其他用户的权限。

权限字符可以用数字表示:

  • r 对应数字 4
  • w 对应数字 2
  • x 对应数字 1

例如,权限字符串 rw-r--r-- 可以转换为数字 644

2024-08-16

route命令在Linux中用于显示和操作IP路由表。route命令在新版Linux系统中已被ip route命令替代,但仍可以使用。

以下是route命令的超详细用法:

  1. 显示当前路由表:



route -n
  1. 添加一条路由:



sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
  1. 删除一条路由:



sudo route del -net 192.168.1.0 netmask 255.255.255.0
  1. 修改一条路由:



sudo route change -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.2.1
  1. 添加默认网关:



sudo route add default gw 192.168.1.1
  1. 删除默认网关:



sudo route del default gw 192.168.1.1
  1. 目标是主机的路由:



sudo route add -host 192.168.1.10 dev eth0
  1. 删除目标是主机的路由:



sudo route del -host 192.168.1.10 dev eth0
  1. 修改目标是主机的路由:



sudo route change -host 192.168.1.10 dev eth1
  1. 查看路由表并显示指定的度量值(metric):



route -n -e
  1. 清除所有非直连的路由:



sudo route flush -net 0.0.0.0
  1. 清除特定路由:



sudo route del -net 192.168.1.0 netmask 255.255.255.0
  1. 使用route命令设置永久路由:

在/etc/rc.local文件中添加路由命令,确保开机自动设置。




echo 192.168.1.0/24 via 192.168.1.1 dev eth0 >> /etc/rc.local
  1. 使用route命令设置动态路由:

在/etc/sysconfig/network-scripts/下创建一个名为route-eth0的文件,并在文件中添加路由信息。




echo "192.168.1.0/24 via 192.168.1.1 dev eth0" >> /etc/sysconfig/network-scripts/route-eth0
  1. 使用route命令设置默认网关:

在/etc/sysconfig/network文件中设置默认网关。




echo GATEWAY=192.168.1.1 >> /etc/sysconfig/network

以上是route命令的大部分用法,但请注意,这些命令可能会因为Linux发行版的不同而有所不同。在新的Linux发行版中,推荐使用ip route命令来管理和查看路由信息。

2024-08-16

报错解释:

这个错误表明程序在尝试加载一个名为libxxx.so的共享库文件时失败了。具体来说,系统找不到这个文件,可能是因为文件不存在、路径不正确,或者环境变量没有设置正确。

解决方法:

  1. 确认libxxx.so文件是否存在于系统中。如果不存在,需要安装或者找到正确的库文件。
  2. 如果文件存在,检查其路径是否正确。如果它在一个非标准的路径下,需要将该路径添加到环境变量LD\_LIBRARY\_PATH中。
  3. 可以使用ldconfig命令来更新共享库的缓存,这可以帮助系统正确地找到新安装的库文件。
  4. 如果是在编译时指定了库的位置,确保编译命令中的库路径是正确的。

示例命令:

  • 检查文件是否存在:ls /usr/lib/libxxx.sofind / -name libxxx.so
  • 将库路径添加到LD\_LIBRARY\_PATH:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/library
  • 更新共享库缓存:sudo ldconfig
  • 编译时指定库路径:gcc -o myprogram myprogram.c -L/path/to/library -lxxx
2024-08-16

在Linux中,您可以使用chmod命令来修改文件或文件夹的权限,使用chown命令来改变文件或文件夹的拥有者。

例如,给文件夹folder的所有者(user)以及所属组(group)读写执行权限(rwx),可以使用:




chmod 775 folder

给文件file.txt的所有者(user)以及所属组(group)的权限更改为读写权限:




chmod 664 file.txt

更改文件或文件夹的所有者,需要超级用户(root)权限或使用sudo

将文件file.txt的所有者更改为用户newuser




sudo chown newuser file.txt

将文件file.txt的所有者和所属组更改为用户newuser和组newgroup




sudo chown newuser:newgroup file.txt

请确保您有适当的权限来执行这些操作,否则您可能需要在命令前加上sudo来获取必要的权限。

2024-08-16

在上一篇文章中,我们已经部署了SonarQube和Jenkins。在这篇文章中,我们将部署Gogs。

Gogs 是一个用 Go 语言编写的轻量级 Git 服务器,它可以很方便的部署在 Linux 系统上。

  1. 安装依赖

首先,我们需要安装一些必要的依赖:




sudo apt-install -y curl git
  1. 下载 Gogs

接着,我们需要下载 Gogs 的最新版本。你可以从 Gogs 的 GitHub 仓库页面找到最新版本的下载链接。




wget https://github.com/gogs/gogs/releases/download/v0.11.55/linux_amd64.tar.gz
  1. 解压 Gogs

下载完成后,我们需要解压 Gogs 的压缩包:




tar -zxvf linux_amd64.tar.gz
  1. 移动 Gogs 到合适的位置



sudo mv gogs /usr/local/
  1. 配置 Gogs

/usr/local/gogs/scripts 目录下,有一个名为 init/debian/gogs 的脚本,我们可以使用它来配置 Gogs。




sudo /usr/local/gogs/scripts/init/debian/gogs

在执行过程中,你可能需要设置数据库(这里我们使用 SQLite3),以及配置域名和管理员账号。

  1. 启动 Gogs



sudo systemctl start gogs
  1. 设置开机自启



sudo systemctl enable gogs
  1. 访问 Gogs

在浏览器中访问你设置的域名和端口,你将看到 Gogs 的登录页面。使用你在初始化过程中创建的管理员账号登录。

至此,我们已经在 Linux 上部署了 Gogs。接下来,我们将配置 Jenkins 以自动执行代码质量检查和单元测试,并将结果报告给 SonarQube。

注意:在实际部署中,你需要正确配置 Gogs 的域名和 SSL 证书,以确保其安全性。同时,你还需要配置 Jenkins 以连接到 Gogs 和 SonarQube,并设置适当的权限。

2024-08-16

在Linux系统中,可以使用cron服务来设置定时任务。以下是一些常用的cron任务管理命令和示例:

  1. 查看当前用户的crontab文件:



crontab -l
  1. 编辑当前用户的crontab文件:



crontab -e
  1. 设置一个定时任务,比如每天早上5点清空/tmp目录:



crontab -e

然后在打开的编辑器中添加如下行:




0 5 * * * rm -rf /tmp/*

保存并退出编辑器。

  1. 删除当前用户的crontab文件:



crontab -r
  1. 列出crontab任务的日志,需要cron日志功能被启用:



grep CRON /var/log/syslog

或者查看特定用户的cron日志:




grep CRON /var/log/syslog | grep username
  1. 特定任务的执行结果也可以通过邮件发送给用户,需要配置MTA(如postfix)和cron的配置文件/etc/crontab

请根据实际需求使用这些命令,并确保cron服务正在运行:




sudo service cron status

或者在某些系统中可能是:




sudo systemctl status cron

如果cron服务没有运行,可以使用以下命令启动:




sudo service cron start

或者




sudo systemctl start cron

以上是使用cron的基本命令和方法,可以根据具体需求编辑crontab文件来设置更复杂的定时任务。

2024-08-16

stat命令在Linux中被用来显示文件或文件系统的详细信息。它可以提供如下信息:文件大小、Inode号、Block大小、权限、所有者、组、文件的修改时间等。

以下是stat命令的一些常见用法:

  1. 显示文件的状态信息:



stat filename
  1. 显示文件的状态信息,并以人类可读的格式输出:



stat -c "%A %n" filename
  1. 显示文件的状态信息,并以指定的格式输出:



stat --format="Name: %n\tModify: %y" filename
  1. 显示文件系统的状态信息:



stat -f .
  1. 显示文件的状态信息,并以原始的格式输出:



stat --printf="%B %b %f %n" filename

注意:

  • 在使用stat命令时,你需要确保你有足够的权限去访问文件或目录。
  • 不同的操作系统可能会有不同的stat命令实现,上述示例可能在不同的系统上不适用。
  • 在使用stat命令时,你可以通过man stat命令查看更多的选项和用法。
2024-08-16

在Debian(或基于Debian的系统,如Ubuntu)中更换国内镜像源可以通过编辑/etc/apt/sources.list文件来实现。以下是一个更换为中国科技大学镜像源的示例:

  1. 打开终端。
  2. 使用文本编辑器编辑sources.list文件,例如使用nano



sudo nano /etc/apt/sources.list
  1. 注释掉或删除原有的源地址行(在行首加#即可注释掉该行)。
  2. 添加中国科技大学的Debian镜像源地址。以下是一个示例:



deb http://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free
 
deb http://mirrors.ustc.edu.cn/debian/ bullseye-updates main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian/ bullseye-updates main contrib non-free
 
deb http://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib non-free

请根据您的Debian版本(如bullseye、buster等)替换上述URL中的bullseye为实际版本名称。

  1. 保存并关闭文件。
  2. 更新软件源:



sudo apt update
  1. 升级所有安装的包:



sudo apt upgrade

以上步骤将会把Debian系统的软件包管理器(APT)的源更换为中国科技大学的镜像源,并更新软件列表。

2024-08-16

在Linux系统中安装Git的步骤通常如下:

  1. 打开终端。
  2. 更新包索引(可选步骤,但建议执行以确保获取最新的包信息):

    
    
    
    sudo apt update
  3. 安装Git:

    
    
    
    sudo apt install git
  4. 验证安装是否成功:

    
    
    
    git --version

如果你使用的是基于Red Hat的发行版(如Fedora、CentOS或RHEL),你可以使用yumdnf命令来安装Git。例如:




sudo yum install git

或者在新版本的Red Hat系统中:




sudo dnf install git

如果你使用的是Arch Linux或基于Arch的发行版,可以使用pacman命令:




sudo pacman -S git

对于其他Linux发行版,请使用该发行版的包管理器(如zypperemerge等)进行安装。

2024-08-16

以下是使用宝塔面板在Linux服务器上部署Java项目的步骤概述:

  1. 安装宝塔面板:

    • 访问宝塔官网,获取安装命令。
    • 在服务器上执行安装命令。
  2. 配置宝塔面板:

    • 登录宝塔面板,设置用户名和密码。
    • 根据需要配置服务器安全选项,如防火墙规则、监控等。
  3. 安装Java环境:

    • 在宝塔面板中选择软件管理。
    • 搜索并安装Java,通常是OpenJDK或者Oracle JDK。
  4. 上传Java项目:

    • 使用宝塔面板的文件管理功能,上传Java项目的war包或者jar包到服务器。
  5. 部署Java项目:

    • 如果是war包,使用Tomcat或者Jetty等Servlet容器部署。
    • 如果是jar包,可以使用nohup java -jar your-project.jar来后台运行。
  6. 配置域名解析:

    • 在宝塔面板的DNS设置中配置域名解析。
  7. 配置反向代理:

    • 如果Java项目需要通过HTTP服务,可以在宝塔面板的反向代理中配置。
  8. 测试运行:

    • 通过域名或者服务器IP测试Java项目是否正常运行。

以下是一个简化的部署Java项目的命令示例:




# 安装Java环境
yum install java-11-openjdk-devel
 
# 上传Java项目(以war包为例)
# 通过宝塔面板的文件管理上传到/www/wwwroot/your-project目录
 
# 部署Java项目(以Tomcat为例)
# 下载Tomcat,并解压到/usr/local目录
cd /usr/local
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.62/bin/apache-tomcat-9.0.62.tar.gz
tar -xzvf apache-tomcat-9.0.62.tar.gz
mv apache-tomcat-9.0.62 tomcat
 
# 配置环境变量
echo "export CATALINA_HOME=/usr/local/tomcat" >> /etc/profile
source /etc/profile
 
# 部署项目
cp /www/wwwroot/your-project/your-project.war $CATALINA_HOME/webapps/
 
# 启动Tomcat
$CATALINA_HOME/bin/startup.sh
 
# 配置防火墙规则(如果需要)
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

注意:以上步骤和命令仅为示例,具体步骤可能因服务器操作系统版本、宝塔面板版本和Java项目的具体情况有所不同。在执行命令时请确保命令的正确性,并在执行前备份重要数据。