2024-09-04

作为一个开发者,了解和掌握以下Linux命令是很有帮助的:

  1. ls - 列出目录内容
  2. cd - 改变目录
  3. pwd - 显示当前工作目录的路径
  4. touch - 创建空文件
  5. cat - 查看文件内容
  6. cp - 复制文件或目录
  7. mv - 移动或重命名文件或目录
  8. rm - 删除文件或目录
  9. grep - 文本搜索工具
  10. find - 在目录树中查找文件
  11. wc - 文本统计工具
  12. sort - 文本排序
  13. uniq - 移除或者汇总重复的行
  14. awk - 文本处理语言
  15. sed - 流编辑器,用于过滤和转换文本
  16. gzip / bzip2 / tar - 压缩和解压文件
  17. chmod - 改变文件或目录权限
  18. chown - 改变文件或目录的所有者
  19. df - 报告文件系统磁盘空间使用情况
  20. du - 估算文件或目录的磁盘使用空间
  21. top / htop - 显示当前运行的进程和其资源占用情况
  22. ps - 报告当前系统的进程状态
  23. kill - 发送信号到进程
  24. ifconfig / ip - 网络接口配置和网络设置
  25. ping - 检测主机是否在线
  26. ssh - 安全地进行远程登录和其它安全服务
  27. scp - 在本地系统和远程系统之间复制文件
  28. useradd / usermod / userdel - 管理用户账号
  29. passwd - 更改用户密码
  30. sudo - 提供管理员权限运行命令
  31. su - 切换用户身份
  32. apt-get / yum - 包管理器,用于安装、更新和移除软件包
  33. man - 查看命令手册
  34. help - 查看内置命令帮助
  35. which - 显示命令的全路径
  36. echo - 输出字符串或者变量内容
  37. export - 设置或显示环境变量
  38. unset - 清除环境变量
  39. date - 显示或设置系统时间与日期
  40. cal - 显示日历

这些命令涵盖了文件操作、文本处理、磁盘管理、进程监控、网络配置、用户管理和软件包管理等方面。掌握这些命令对于任何开发者来说都是必不可少的。

2024-09-04

以下是在Linux环境下安装JDK、MySQL、Tomcat和Redis的简要步骤和示例代码:

JDK安装

  1. 下载JDK:



wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" \
http://download.oracle.com/otn-pub/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz
  1. 解压JDK:



tar -xzf jdk-8u151-linux-x64.tar.gz
  1. 设置环境变量:



export JAVA_HOME=/path/to/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin

MySQL安装

对于Ubuntu/Debian系统:




sudo apt-get update
sudo apt-get install mysql-server

对于CentOS/RHEL系统:




sudo yum update
sudo yum install mysql-server

Tomcat安装

  1. 下载Tomcat:



wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.37/bin/apache-tomcat-9.0.37.tar.gz
  1. 解压Tomcat:



tar -xzf apache-tomcat-9.0.37.tar.gz
  1. 启动Tomcat:



cd apache-tomcat-9.0.37/bin
./startup.sh

Redis安装

对于Ubuntu/Debian系统:




sudo apt-get update
sudo apt-get install redis-server

对于CentOS/RHEL系统:




sudo yum update
sudo yum install redis

这些命令假设您有sudo权限,并且您正在使用的Linux发行版是最常见的几种之一。对于其他发行版或特定版本的JDK、MySQL、Tomcat或Redis,您可能需要修改安装命令以适应特定的包管理器或下载页面。

2024-09-04

在Linux上安装PostgreSQL的步骤通常如下:

  1. 更新包管理器索引。
  2. 安装PostgreSQL。
  3. 初始化数据库并设置管理员用户密码。
  4. 启动PostgreSQL服务并设置为开机自启。

以下是基于Debian/Ubuntu系统的安装示例:




# 更新包管理器索引
sudo apt-get update
 
# 安装PostgreSQL
sudo apt-get install postgresql postgresql-contrib
 
# 初始化数据库
sudo postgresql-12-setup initdb
 
# 启动PostgreSQL服务
sudo systemctl start postgresql
 
# 设置为开机自启
sudo systemctl enable postgresql
 
# 切换到postgres用户
sudo -i -u postgres
 
# 创建一个新的角色
createuser --interactive
 
# 创建一个新数据库
createdb mydatabase
 
# 退出postgres用户
exit

对于CentOS/RHEL系统,使用yum进行安装:




# 安装PostgreSQL
sudo yum install postgresql-server postgresql-contrib
 
# 初始化数据库
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
 
# 启动PostgreSQL服务
sudo systemctl start postgresql-12
 
# 设置为开机自启
sudo systemctl enable postgresql-12
 
# 切换到postgres用户
sudo su - postgres
 
# 创建一个新的角色
createuser --interactive
 
# 创建一个新数据库
createdb mydatabase
 
# 退出postgres用户
exit

请根据您的Linux发行版和PostgreSQL版本进行适当的调整。

2024-09-04

在Linux环境下安装部署DM8数据库的步骤如下:

  1. 检查系统要求:确保你的Linux系统满足DM8的最小系统要求。
  2. 下载DM8安装包:从达梦技术支持官网下载DM8数据库安装包。
  3. 准备安装环境:创建安装用户和安装目录,设置环境变量等。
  4. 安装:执行安装脚本进行安装。
  5. 配置环境变量:将DM8相关的环境变量添加到.bash_profile.bashrc文件中。
  6. 初始化数据库实例:使用dminit工具创建数据库实例。
  7. 启动数据库:使用dmserver命令启动数据库服务。
  8. 连接数据库:使用dsql工具或其他数据库客户端连接数据库。

以下是一个简化的安装示例:




# 1. 检查系统要求
# 2. 下载DM8安装包
 
# 3. 准备安装环境
useradd dmdba
passwd dmdba
mkdir -p /data/dm8
chown -R dmdba:dmdba /data/dm8
 
# 设置环境变量
echo "export DM_HOME=/data/dm8" >> /home/dmdba/.bash_profile
echo "export PATH=\$PATH:\$DM_HOME/bin" >> /home/dmdba/.bash_profile
source /home/dmdba/.bash_profile
 
# 4. 安装
su - dmdba
cd /path/to/dm8_install_package
bash setup.sh
 
# 5. 配置环境变量(已在上述步骤中完成)
 
# 6. 初始化数据库实例
dminit PATH=/data/dm8 PAGE_SIZE=32 SYSDBA_PWD=your_password INSTANCE_NAME=TEST
 
# 7. 启动数据库
dmserver /data/dm8/data/TEST/dm.ini
 
# 8. 连接数据库
dsql -a TEST -u SYSTEM -p your_password

请根据你的实际环境(如安装包路径、用户权限、内存大小等)调整以上命令。

2024-09-04



#!/bin/bash
# 快速编译安装 PHP 8.3.3 并配置常用扩展:redis、zip、igbinary、memcached
 
# 定义 PHP 版本和源代码目录变量
PHP_VERSION="php-8.3.3"
SRC_DIR="/usr/local/src"
 
# 安装依赖库
yum install -y epel-release \
    && yum install -y \
    gcc \
    gcc-c++ \
    make \
    zlib-devel \
    openssl-devel \
    libxml2-devel \
    bzip2-devel \
    curl-devel \
    freetype-devel \
    gmp-devel \
    libmcrypt-devel \
    libpng-devel \
    libjpeg-turbo-devel \
    libzip-devel \
    recode-devel \
    libicu-devel \
    libxslt-devel \
    systemd-devel \
    pcre-devel \
    sqlite-devel \
    oniguruma-devel \
    libwebp-devel \
    libc-client-devel \
    openldap-devel
 
# 下载 PHP 源代码
cd $SRC_DIR \
    && wget "https://www.php.net/distributions/$PHP_VERSION.tar.gz" \
    && tar -zxvf "$PHP_VERSION.tar.gz" \
    && cd "$PHP_VERSION"
 
# 配置编译选项
./configure \
    --prefix=/usr/local/php8 \
    --with-curl \
    --with-freetype \
    --with-gd \
    --with-gettext \
    --with-iconv-dir \
    --with-kerberos \
    --with-libdir=lib64 \
    --with-libxml-dir \
    --with-mysqli \
    --with-openssl \
    --with-pcre-regex \
    --with-pear \
    --with-pdo-mysql \
    --with-pdo-sqlite \
    --with-pear \
    --with-png-dir \
    --with-xmlrpc \
    --with-xsl \
    --with-zlib \
    --enable-bcmath \
    --enable-fpm \
    --enable-gd-jis-conv \
    --enable-inline-optimization \
    --enable-mbregex \
    --enable-mbstring \
    --enable-opcache \
    --enable-pcntl \
    --enable-shmop \
    --enable-soap \
    --enable-sockets \
    --enable-sysvsem \
    --enable-xml \
    --enable-zip \
    --disable-debug \
    --disable-rpath \
    --disable-fileinfo
 
# 编译并安装 PHP
make -j$(nproc) && make install
 
# 配置 PHP
cp php.ini-development /usr/local/php8/lib/php.ini
cp /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf
cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf
 
# 下载并编译安装 PHP 扩展
for extension in redis zip igbinary memcached; do
    cd $SRC_DIR \
    && git clone "https://github.com/php/$extension-ds.git" \
    && cd "$extension-ds" \
    && phpize \
    && ./configure --with-php-config=/usr/local/php8/bin/php-config \
    && make && make install
done
 
# 配置 PHP 加载扩展
extension_dir="/usr/local/php8/lib/php/extensions/no-debug-non-zts-20210902"
for extension in redis zip igbinary memcached; do
    echo "extension=$
2024-09-04

错误解释:

这个错误表明编译器在尝试编译llama.cpp这个C++源文件时找不到头文件stdatomic.hstdatomic.h是C++11标准引入的原子操作头文件,如果编译器找不到它,很可能是因为你的系统上的编译器不支持C++11,或者相应的库没有安装。

解决方法:

  1. 确保你的系统上的GCC或C++编译器支持C++11。可以通过运行gcc --versiong++ --version来检查编译器版本,如果版本较低,考虑升级到支持C++11的版本。
  2. 如果你的编译器支持C++11但仍然出现这个错误,可能是因为缺少必要的开发包。在Red Hat Enterprise Linux 7上,你可以尝试安装libstdc++-static包来确保包含C++11的库。可以使用以下命令安装:



sudo yum install libstdc++-static
  1. 如果你正在使用的是较新的编译器版本但仍然遇到问题,可能需要手动指定C++标准。可以在编译命令中添加-std=c++11来指定使用C++11标准。
  2. 如果你的系统上的编译器太旧且无法更新,考虑更换一个更现代的编译器,如LLVM的clang。

确保在进行任何更改后重新编译llama.cpp文件。如果问题仍然存在,可能需要进一步检查编译器的配置或者查看llama.cpp是否有特定于平台的依赖项或配置需要调整。

2024-09-04

部署DBApi通常指的是部署一个数据库接口,比如使用Python的DBApi接口来连接和操作数据库。以下是一个使用Python的sqlite3模块作为例子的简单部署步骤:

  1. 安装Python和pip(如果尚未安装)。
  2. 通过pip安装数据库的Python库,例如sqlite3
  3. 编写Python脚本来使用DBApi连接和操作数据库。

示例代码:




import sqlite3
 
# 连接到数据库(如果不存在则创建)
conn = sqlite3.connect('example.db')
 
# 创建一个cursor对象
cursor = conn.cursor()
 
# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS stocks
               (date text, trans text, symbol text, qty real, price real)''')
 
# 插入数据
cursor.execute("INSERT INTO stocks VALUES ('2020-01-05', 'BUY', 'RHAT', 100, 35.14)")
 
# 查询数据
cursor.execute('SELECT * FROM stocks ORDER BY date')
 
# 获取查询结果
rows = cursor.fetchall()
for row in rows:
    print(row)
 
# 关闭连接
conn.close()

确保你有适当的数据库权限来创建文件和执行数据库操作。对于生产环境,你可能需要考虑更复杂的配置,比如连接池管理、权限管理、性能优化等。

2024-09-03

在Linux系统中安装SQLite通常可以通过包管理器来完成。以下是一些常见Linux发行版中安装SQLite的命令:

对于基于Debian的系统(如Ubuntu):




sudo apt-get update
sudo apt-get install sqlite3

对于基于RPM的系统(如Fedora):




sudo dnf install sqlite

对于旧版本的基于RPM的系统(如CentOS):




sudo yum install sqlite

安装完成后,可以通过在终端输入sqlite3来启动SQLite。

如果需要查看SQLite的版本,可以使用以下命令:




sqlite3 --version

这些命令会安装SQLite及其命令行界面。如果你还需要开发文件(例如头文件),大多数包管理器会包含这些额外的文件。如果你需要特定版本的SQLite或者需要从源代码编译安装,你可以从SQLite的官方网站下载源代码并按照其提供的说明进行编译安装。

2024-09-03

在Linux系统中安装部署Tomcat的步骤如下:

  1. 安装Java环境

    Tomcat需要Java环境才能运行,因此首先需要安装Java。




sudo apt update
sudo apt install default-jdk
  1. 验证Java安装



java -version
  1. 下载Tomcat

    从Tomcat官网下载最新版本的Tomcat压缩包。




wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.62/bin/apache-tomcat-9.0.62.tar.gz
  1. 解压Tomcat



sudo tar xzvf apache-tomcat-*tar.gz -C /opt
  1. 创建软链接



sudo ln -s /opt/apache-tomcat-* /opt/tomcat
  1. 设置环境变量



sudo nano /etc/environment

添加以下内容:




CATALINA_HOME=/opt/tomcat
JAVA_HOME=/usr/lib/jvm/default-java
  1. 配置Tomcat服务



sudo nano /etc/systemd/system/tomcat.service

添加以下内容:




[Unit]
Description=Tomcat 9 servlet container
After=network.target
 
[Service]
Type=forking
 
Environment=JAVA_HOME=/usr/lib/jvm/default-java
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
 
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
 
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
 
[Install]
WantedBy=multi-user.target
  1. 重新加载systemd配置



sudo systemctl daemon-reload
  1. 启动Tomcat服务



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



sudo systemctl enable tomcat
  1. 验证Tomcat是否启动

    打开浏览器并输入服务器IP地址加上端口号(默认为8080),如果看到Tomcat的欢迎页面,说明Tomcat已成功安装并运行。

注意:以上步骤可能需要根据您的Linux发行版和Tomcat版本进行适当的调整。

2024-09-03

在Linux环境下,Shell脚本是一种常见的自动化运维方式。以下是一些基本的Shell脚本编写和使用方法:

  1. 创建一个简单的Shell脚本



#!/bin/bash
echo "Hello, World!"

将以上代码保存为一个文件,例如hello.sh,然后通过以下命令给予执行权限:




chmod +x hello.sh

执行脚本:




./hello.sh
  1. 使用变量



#!/bin/bash
name="Linuxer"
echo "Hello, $name!"
  1. 读取用户输入



#!/bin/bash
echo "What's your name?"
read name
echo "Hello, $name!"
  1. 条件判断



#!/bin/bash
if [ "$1" == "hello" ]; then
  echo "Hello, World!"
elif [ "$1" == "bye" ]; then
  echo "Goodbye!"
else
  echo "Say something!"
fi
  1. 循环



#!/bin/bash
for i in {1..5}
do
  echo "Number $i"
done
  1. 函数



#!/bin/bash
say_hello() {
  echo "Hello, $1!"
}
 
say_hello "Linuxer"
  1. 错误处理



#!/bin/bash
echo "What's your name?"
read name
echo "Hello, $name!" || echo "Failed to say hello"
  1. 后台运行脚本



nohup ./hello.sh &
  1. 查找和替换文件内容



sed -i 's/old-text/new-text/g' filename
  1. 获取文件列表



ls /path/to/directory
  1. 安装软件包



sudo apt-get install package-name
  1. 监控日志文件



tail -f /path/to/logfile
  1. 系统监控命令



top
  1. 查看系统当前时间



date
  1. 查看系统当前用户



whoami
  1. 查看文件大小



du -sh filename
  1. 查看系统当前负载



uptime
  1. 查看系统当前内存使用情况



free -m
  1. 查看系统当前CPU使用率



top -bn1 | grep "Cpu(s)"
  1. 查看系统当前运行的进程



ps -aux

这些命令和技巧涵盖了Shell脚本编写的基础,并提供了一些实用的场景。在实际运维工作中,Shell脚本可以帮助自动化部署、监控系统状态、处理文本等重复性工作。