2024-09-09

在Linux下玩转磁盘管理与挂载硬盘,可以使用以下命令:

  1. 查看所有磁盘和分区信息:



lsblk
  1. 查看指定磁盘的分区信息:



sudo fdisk -l /dev/sda
  1. 创建新分区(以/dev/sdb为例):



sudo fdisk /dev/sdb

然后按照交互提示进行分区创建。

  1. 格式化新分区为ext4文件系统(以/dev/sdb1为例):



sudo mkfs.ext4 /dev/sdb1
  1. 创建挂载点并挂载新分区(以/dev/sdb1挂载到/mnt/mydisk为例):



sudo mkdir /mnt/mydisk
sudo mount /dev/sdb1 /mnt/mydisk
  1. 为了使挂载在重启后依然有效,需将挂载信息添加到/etc/fstab文件:



echo '/dev/sdb1 /mnt/mydisk ext4 defaults 0 2' | sudo tee -a /etc/fstab

以上步骤需要根据实际磁盘设备名进行调整。使用lsblksudo fdisk -l可以帮助你确定设备名。在实际操作中,请替换/dev/sdb/dev/sdb1为你的实际磁盘和分区设备名。

2024-09-09

Linux 是一种开源的操作系统,有许多相关的指令可以使用。以下是一些常见的 Linux 指令:

  1. ls:列出目录的内容。



ls
  1. cd:改变目录。



cd /path/to/directory
  1. pwd:打印工作目录。



pwd
  1. cat:连接并打印文件内容。



cat filename
  1. grep:在文件中查找匹配的行。



grep "text" filename
  1. find:在文件系统中查找文件。



find /path/to/directory -name filename
  1. cp:复制文件或目录。



cp source destination
  1. mv:移动或重命名文件或目录。



mv source destination
  1. rm:删除文件或目录。



rm filename
  1. touch:创建空文件或更新文件时间。



touch filename
  1. chmod:改变文件或目录的权限。



chmod 755 filename
  1. chown:改变文件或目录的所有者。



chown username filename
  1. ps:查看当前进程状态。



ps aux
  1. kill:发送信号到进程。



kill PID
  1. tar:打包和解压文件。



tar -cvf archive.tar files
tar -xvf archive.tar
  1. wc:计算文件的行数、字数等。



wc -l filename
  1. sort:对文件的行进行排序。



sort filename
  1. uniq:移除重复的行。



uniq filename
  1. diff:比较两个文件的差异。



diff file1 file2
  1. sed:流编辑器,用于替换、插入和删除文本。



sed 's/old/new/' filename
  1. awk:文本处理工具,用于模式扫描和处理语言。



awk '{print $1}' filename
  1. gzip:压缩文件。



gzip filename
  1. curl:传输数据使用的工具。



curl http://example.com
  1. make:执行Makefile文件中的指令。



make
  1. gcc:C语言编译器。



gcc filename -o output
  1. make:编译程序。



make
  1. sudo:以系统管理员的身份运行命令。



sudo command
  1. su:切换用户。



su username
2024-09-09

Linux 是一种开源的操作系统,有许多相关的指令可以使用。以下是一些常见的 Linux 指令:

  1. ls:列出目录的内容。



ls
  1. cd:改变目录。



cd /path/to/directory
  1. pwd:打印工作目录。



pwd
  1. cat:连接并打印文件内容。



cat filename
  1. grep:在文件中查找匹配的行。



grep "text" filename
  1. find:在文件系统中查找文件。



find /path/to/directory -name filename
  1. cp:复制文件或目录。



cp source destination
  1. mv:移动或重命名文件或目录。



mv source destination
  1. rm:删除文件或目录。



rm filename
  1. touch:创建空文件或更新文件时间。



touch filename
  1. chmod:改变文件或目录的权限。



chmod 755 filename
  1. chown:改变文件或目录的所有者。



chown username filename
  1. ps:查看当前进程状态。



ps aux
  1. kill:发送信号到进程。



kill PID
  1. tar:打包和解压文件。



tar -cvf archive.tar files
tar -xvf archive.tar
  1. wc:计算文件的行数、字数等。



wc -l filename
  1. sort:对文件的行进行排序。



sort filename
  1. uniq:移除重复的行。



uniq filename
  1. diff:比较两个文件的差异。



diff file1 file2
  1. sed:流编辑器,用于替换、插入和删除文本。



sed 's/old/new/' filename
  1. awk:文本处理工具,用于模式扫描和处理语言。



awk '{print $1}' filename
  1. gzip:压缩文件。



gzip filename
  1. curl:传输数据使用的工具。



curl http://example.com
  1. make:执行Makefile文件中的指令。



make
  1. gcc:C语言编译器。



gcc filename -o output
  1. make:编译程序。



make
  1. sudo:以系统管理员的身份运行命令。



sudo command
  1. su:切换用户。



su username
2024-09-09



#!/bin/bash
# 设置Oracle 11g数据库的字符集为AL32UTF8
 
# 设置数据库的环境变量
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=ORCL
export PATH=$PATH:$ORACLE_HOME/bin
 
# 检查当前的字符集
echo "当前字符集设置为:"
echo $NLS_LANG
 
# 修改字符集为AL32UTF8
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
echo "修改后的字符集设置为:"
echo $NLS_LANG
 
# 连接到数据库
sqlplus / as sysdba <<EOF
-- 检查数据库的字符集
SELECT parameter, value FROM nls_database_parameters WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
-- 修改数据库的字符集和国家字符集
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;
SHUTDOWN IMMEDIATE;
STARTUP;
-- 再次检查数据库的字符集
SELECT parameter, value FROM nls_database_parameters WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
EXIT;
EOF
 
# 输出修改完成的提示
echo "Oracle 11g数据库字符集已经修改为AL32UTF8。"

这段代码首先设置Oracle数据库的环境变量,然后使用sqlplus连接到数据库,并执行必要的步骤来修改字符集。修改字符集的步骤包括关闭数据库、打开数据库到MOUNT状态、启用有限制模式、设置作业队列进程和AQ\_TM进程数量为0、修改字符集、重启数据库。最后,代码检查字符集是否已经修改成功,并输出相应的提示信息。这个过程需要在具备适当权限的用户下执行。

2024-09-09

要在Linux上配置Maven环境,请按照以下步骤操作:

  1. 确保你已经安装了Java,因为Maven是用Java编写的。可以通过运行java -version来检查Java是否安装。
  2. 下载Maven。你可以从Apache Maven官方网站下载最新版本的Maven。



wget https://apache.osuosl.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
  1. 解压Maven。



tar -xvzf apache-maven-3.8.6-bin.tar.gz
  1. 将Maven移动到/usr/local目录。



sudo mv apache-maven-3.8.6 /usr/local/apache-maven
  1. 设置环境变量。编辑你的.bashrc.bash_profile文件,添加以下行:



export M2_HOME=/usr/local/apache-maven
export PATH=${M2_HOME}/bin:${PATH}
  1. 让更改生效。



source ~/.bashrc

或者




source ~/.bash_profile
  1. 验证Maven安装。



mvn -version

以上步骤将Maven配置在Linux环境中。确保替换步骤2中的下载链接为最新版本的Maven,如果有必要,修改步骤3和5中的Maven版本路径。

2024-09-09

Linux发行版是基于Linux内核的操作系统。它们提供了一个完整的操作系统环境,包括用户界面、软件包管理、安全性等。以下是一些最常见的Linux发行版以及它们的简要介绍:

  1. Ubuntu:

    Ubuntu是一个为个人电脑和服务器而设计的开源操作系统。它基于Debian,提供了更加友好的用户界面和更多的软件。

  2. Debian:

    Debian是一个由社区驱动的Linux发行版,其目标是稳定性和稳定性。它提供了大量的软件包,并且是许多其他发行版的基础。

  3. Fedora:

    Fedora是为个人电脑和服务器提供的开源操作系统。它由社区驱动,提供最新的软件和技术支持。

  4. CentOS:

    CentOS是一个为企业和基础设施构建的开源操作系统。它基于Red Hat Enterprise Linux,并提供了稳定和可靠的环境。

  5. Red Hat Enterprise Linux (RHEL):

    Red Hat Enterprise Linux是为企业和基础设施构建的开源操作系统。它提供了稳定和安全的环境,并且被广泛用于生产环境。

  6. Arch Linux:

    Arch Linux是为那些喜欢自定义他们的操作系统环境的用户而设计的。它提供了一个轻量级的发行版,用户需要手动安装和配置大部分系统。

  7. Gentoo:

    Gentoo是一个基于源代码的发行版,用户需要自己编译系统和软件包。它提供了高度的定制性,但也需要较高的技术知识。

每个发行版都有其特定的用途和目标用户群,用户可以根据自己的需求和偏好来选择合适的发行版。

2024-09-09

在 Linux 中,文件系统是用于存储和组织文件数据的结构,它将存储设备分区并提供目录和文件。

Linux 支持多种文件系统类型,如 ext4、ext3、ext2、sysfs、proc、tmpfs、devpts、vfat 等。

  1. 查看文件系统的类型:



df -T
  1. 查看指定目录的文件系统类型:



df /path/to/directory -T
  1. 查看分区情况:



fdisk -l
  1. 创建文件系统(例如创建一个 ext4 文件系统):



mkfs.ext4 /dev/sdXn
  1. 挂载文件系统:



mount /dev/sdXn /mnt
  1. 卸载文件系统:



umount /dev/sdXn
  1. 挂载一个 U 盘或其他设备:



mount /dev/sdb1 /mnt/usb
  1. 创建并挂载一个 tmpfs 文件系统:



mount -t tmpfs tmpfs /mnt/tmpfs
  1. 挂载一个 ISO 文件:



mount -o loop /path/to/your.iso /mnt/iso
  1. 挂载网络文件系统(例如 NFS):



mount -t nfs server:/path/to/shared_directory /mnt/nfs
  1. 查看挂载信息:



cat /proc/mounts
  1. 查看指定目录的挂载点:



df /path/to/directory
  1. 自动挂载(在 /etc/fstab 文件中添加挂载信息):



echo '/dev/sdXn /mnt ext4 defaults 0 0' >> /etc/fstab
  1. 删除文件系统:



umount /dev/sdXn
wipefs /dev/sdXn

注意:在实际操作中,需要将 /dev/sdXn 替换为实际的设备名称。

以上命令和操作需要 root 权限,一般需要使用 sudo 前缀。

2024-09-09



#include <stdio.h>
#include <stdlib.com>
#include <sqlite3.h>
 
static int callback(void *NotUsed, int argc, char **argv, char **azColName) {
    for(int i = 0; i < argc; i++) {
        printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
    }
    printf("\n");
    return 0;
}
 
int main() {
    sqlite3 *db;
    char *zErrMsg = 0;
    int rc;
    const char *sql;
 
    // 打开数据库
    rc = sqlite3_open("example.db", &db);
    if( rc ){
        fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db));
        return(0);
    }else{
        fprintf(stdout, "数据库打开成功\n");
    }
 
    // 创建一个表
    sql = "CREATE TABLE company("  \
          "id INTEGER PRIMARY KEY AUTOINCREMENT," \
          "name TEXT NOT NULL," \
          "age INTEGER," \
          "address TEXT," \
          "salary REAL );";
    rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
    if( rc != SQLITE_OK ){
        fprintf(stderr, "SQL错误: %s\n", zErrMsg);
        sqlite3_free(zErrMsg);
    }
    sqlite3_close(db);
    return 0;
}

这段代码展示了如何在C语言中使用SQLite3库打开一个数据库,创建一个简单的表,并处理可能发生的错误。在创建表的过程中,使用了回调函数callback来打印查询结果。最后,关闭了数据库连接。这是一个很基础的示例,但对于初学者来说,它提供了一个清晰的起点。

2024-09-09

以下是一个简化的解决方案,用于在Docker环境中搭建Redis哨兵模式。

首先,创建一个名为 docker-compose.yml 的文件,内容如下:




version: '3'
 
services:
  redis-master:
    image: redis:6.0.9
    ports:
      - "6379:6379"
 
  redis-slave-1:
    image: redis:6.0.9
    command: redis-server --slaveof redis-master 6379
    depends_on:
      - redis-master
 
  redis-slave-2:
    image: redis:6.0.9
    command: redis-server --slaveof redis-master 6379
    depends_on:
      - redis-master
 
  redis-sentinel-1:
    image: redis:6.0.9
    command: redis-sentinel /etc/redis/sentinel.conf
    volumes:
      - ./sentinel.conf:/etc/redis/sentinel.conf
    depends_on:
      - redis-master
      - redis-slave-1
      - redis-slave-2
 
  redis-sentinel-2:
    image: redis:6.0.9
    command: redis-sentinel /etc/redis/sentinel.conf
    volumes:
      - ./sentinel.conf:/etc/redis/sentinel.conf
    depends_on:
      - redis-master
      - redis-slave-1
      - redis-slave-2

然后,在同一目录下创建哨兵配置文件 sentinel.conf,内容如下:




sentinel monitor mymaster redis-master 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000

最后,通过以下命令启动服务:




docker-compose up -d

这将会启动一个主节点,两个从节点和两个哨兵。哨兵会监控主节点,并在主节点宕机时自动进行故障转移。

2024-09-09

Linux 常用命令:

  1. 列出目录内容:ls
  2. 改变当前目录:cd
  3. 创建新目录:mkdir
  4. 删除文件或目录:rm
  5. 查看文件内容:cat, more, less, tail, head
  6. 文件或目录:cp
  7. 移动或重命名文件:mv
  8. 查找文件:find, grep
  9. 创建空文件:touch
  10. 查看或配置网络:ifconfig, ping, netstat
  11. 查看当前工作路径:pwd
  12. 查看系统性能:top, htop, vmstat, iostat, mpstat
  13. 查看系统资源使用情况:free, df, du
  14. 查看用户:who, w
  15. 查看系统当前运行的进程:ps, top, htop
  16. 结束进程:kill, pkill, killall
  17. 系统管理命令:shutdown, reboot, halt, poweroff
  18. 改变文件权限:chmod
  19. 改变文件所有者:chown
  20. 压缩和解压:tar, gzip, bzip2, unzip, unrar

Tomcat 安装:

  1. 安装Java环境(如果系统中没有):



sudo apt update
sudo apt install default-jdk
  1. 下载Tomcat(以Tomcat 9为例):



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



tar -xvzf apache-tomcat-9.0.62.tar.gz
  1. 移动Tomcat到合适的位置:



sudo mv apache-tomcat-9.0.62 /opt/tomcat
  1. 创建软链接以便于使用:



sudo ln -s /opt/tomcat/bin/catalina.sh /etc/init.d/tomcat
  1. 开放所需端口(如果防火墙正在运行):



sudo ufw allow 8080/tcp
  1. 启动Tomcat:



sudo /etc/init.d/tomcat start
  1. 检查Tomcat是否启动:



ps -ef | grep tomcat
  1. 通过浏览器访问Tomcat页面:



http://<your_server_ip>:8080

Java环境安装:

  1. 更新包索引:



sudo apt update
  1. 安装Java开发工具包(JDK):



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



java -version

以上步骤提供了在Ubuntu系统上通过命令行安装Tomcat和Java环境的简要指南。根据具体的Linux发行版和版本,某些命令可能会有所不同。