2024-08-10



#!/bin/bash
 
# 清理系统不再需要的包
apt-get autoremove -y
 
# 清理本地已下载的包
apt-get autoclean
 
# 清理无用的包依赖
apt-get clean
 
# 清理系统不再需要的文件
rm -rf /tmp/*
 
# 清理用户的临时文件
find /home -name '*.tmp' -exec rm -rf {} \;
 
# 清理旧的内核版本
dpkg -l 'linux-image-*' | grep ^ii | grep -v `uname -r` | awk '{print $3}' | xargs apt-get -y purge
 
# 清理旧的内核模块
dpkg -l 'linux-modules-*' | grep ^ii | grep -v `uname -r` | awk '{print $3}' | xargs apt-get -y purge
 
# 清理无用的包
apt-get remove --purge samba-common
 
# 清理无用的依赖
apt-get autoremove
 
# 清理APT缓存以节省空间
apt-get clean

这段代码提供了一系列的命令来清理Linux系统中的磁盘空间。这些命令包括自动移除不再需要的包、清理本地下载的包、清理无用的包依赖、删除临时文件、清理旧的内核以及清理不必要的包和依赖。通过定期运行这些命令,可以帮助维护系统的健康状态,确保系统的稳定性和性能。

2024-08-10

在Ubuntu 20.04上,您可以通过命令行重置或重新安装Firefox浏览器。以下是如何做的步骤:

  1. 首先,打开终端。
  2. 如果您想要重置Firefox到其原始状态(这将删除所有插件、扩展和设置),您可以使用以下命令:



rm -rf ~/.mozilla/firefox/*
  1. 如果需要完全卸载Firefox后再重新安装,可以使用以下命令:



sudo apt-get purge firefox
rm -rf ~/.mozilla
sudo apt-get update
sudo apt-get install firefox

这将会从系统中移除Firefox,删除您的.mozilla目录(其中包含Firefox的配置和缓存数据),然后更新软件包列表并重新安装Firefox。

2024-08-10

在Linux上部署1Panel面板并远程访问内网Web管理界面,可以按照以下步骤操作:

  1. 安装依赖:



sudo apt-update
sudo apt install -y curl
  1. 下载1Panel安装脚本:



curl -O https://download.1panel.dev/ins.sh
  1. 赋予安装脚本执行权限并运行:



chmod +x ins.sh
./ins.sh
  1. 安装过程中会提示输入数据库信息、管理员账号密码等,按提示操作。
  2. 安装完成后,你将看到面板的访问地址、管理员账号和密码。
  3. 使用SSH客户端或者配置端口映射,将服务器的8888端口映射到本地机器(例如使用ssh -R 8888:localhost:8888 user@your_remote_server_ip)。
  4. 在本地浏览器中访问 http://localhost:8888 即可远程管理1Panel面板。

注意:确保你的服务器防火墙和安全组设置允许8888端口的流量通过。

2024-08-10

在Linux中设置IP地址的多种方法如下:

  1. 使用ifconfig命令(需要net-tools包):



sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up
  1. 使用ip命令(建议使用,内置于现代Linux发行版中):



sudo ip addr add 192.168.1.10/24 dev eth0
sudo ip link set eth0 up

设置默认网关:




sudo ip route add default via 192.168.1.1
  1. 修改网络配置文件(适用于Systemd和NetworkManager管理的系统):

对于Systemd(如使用Debian或Ubuntu),编辑/etc/systemd/network/10-eth0.network




[Match]
Name=eth0
 
[Network]
Address=192.168.1.10/24
Gateway=192.168.1.1

然后重新加载网络配置:




sudo systemctl restart systemd-networkd

对于NetworkManager,可以使用nmcli工具:




nmcli con mod eth0 ipv4.addresses 192.168.1.10/24
nmcli con mod eth0 ipv4.gateway 192.168.1.1
nmcli con up eth0

修改主机名:




sudo hostnamectl set-hostname new-hostname

生成SSH密钥对:




ssh-keygen -t rsa

将公钥复制到其他机器的~/.ssh/authorized_keys文件:




ssh-copy-id user@other-host

以上步骤可以帮助您设置IP地址,修改主机名,并建立SSH密钥以组建机群。

2024-08-10

在Alpine Linux中使用中国的镜像源加速下载和更新可以通过编辑/etc/apk/repositories文件实现。以下是一个示例,展示了如何将Alpine的默认镜像源更换为中国的阿里云镜像源:

  1. 打开终端。
  2. 编辑/etc/apk/repositories文件,可以使用nanovi编辑器,如果没有这些编辑器,可以先安装一个,例如apk add nano
  3. 将文件中的默认源地址替换为中国的阿里云源地址。
  4. 保存文件并退出编辑器。

执行以下命令可以将阿里云的镜像源设置为默认源:




sed -i 's/http:\/\/dl-cdn.alpinelinux.org/https:\/\/mirrors.aliyun.com/g' /etc/apk/repositories

这条命令会将所有默认的源地址替换为阿里云的镜像地址。

完成这些步骤后,你可以正常使用apk进行软件包的安装和更新,它们将会通过中国的阿里云镜像源进行加速下载。

2024-08-10

在Linux中,线程通常被视为轻量级进程(lightweight processes),它们由内核进行调度,并共享某些资源(如文件描述符和信号处理)与其父进程(即进程)。

线程的创建和销毁代价较小,因此线程也被称为是“计算资源”。线程之间的同步和数据共享通常需要程序员手动管理,以确保数据的一致性和代码的正确性。

在Linux中,可以使用pthread库来创建和管理线程。以下是一个简单的例子,展示了如何在C语言中创建和销毁一个线程:




#include <stdio.h>
#include <pthread.h>
 
void* thread_function(void* arg) {
    printf("Hello from the thread!\n");
    return NULL;
}
 
int main() {
    pthread_t thread;
    int ret;
 
    // 创建线程
    ret = pthread_create(&thread, NULL, &thread_function, NULL);
    if (ret != 0) {
        // 创建线程失败
        perror("pthread_create error:");
        return 1;
    }
 
    // 等待线程结束
    pthread_join(thread, NULL);
 
    printf("Thread has finished execution.\n");
    return 0;
}

在这个例子中,我们首先包含了必要的头文件,然后定义了一个线程函数thread_function,它只是简单地打印一句话。在main函数中,我们创建了一个新线程,并传入了线程函数和参数。创建成功后,main函数会等待线程完成其任务。

编译时需要链接pthread库,使用gcc编译器可以加上-lpthread选项:




gcc -o thread_example thread_example.c -lpthread

运行程序后,你将看到新线程创建并执行,然后再回到主线程,打印出相应的信息。

2024-08-10

为了在Ubuntu上通过VNC实现公网远程桌面访问,你需要安装VNC服务器,并且使用内网穿透技术来公开访问VNC服务。以下是简化的步骤和示例代码:

  1. 安装VNC服务器:



sudo apt update
sudo apt install tightvncserver
  1. 设置VNC密码:



vncpasswd
  1. 启动VNC服务器(例如启动在显示器1上的实例):



vncserver :1
  1. 安装内网穿透工具:



sudo apt install ssh
  1. 使用SSH进行内网穿透,可以使用ngrok或者frp。这里以ngrok为例:

    首先,去ngrok官网(https://ngrok.com/)注册并获取一个账号,下载ngrok客户端,然后:




./ngrok tcp 22
  1. 在VNC客户端中连接到VNC服务器,使用内网穿透提供的公网地址和VNC端口(通常是5900 + 显示器号,例如:5901)。

请注意,具体的步骤可能会根据你的网络环境和安全策略有所不同。在实际操作中,你可能需要配置防火墙规则、处理身份验证和加密、以及确保VNC服务器的安全。

2024-08-10

为了在没有公网IP的情况下通过SSH远程连接到OpenEuler(欧拉系统),你可以使用内网穿透工具,如frp、ngrok或者cpolar等。以下是使用cpolar实现SSH远程连接的步骤:

  1. 在有公网IP的服务器上安装并运行cpolar服务端,你可以从GitHub下载预编译的可执行文件,直接运行。



wget https://github.com/cpolar/cpolar_release/releases/download/v0.3.0/cpolar_linux_amd64.zip
unzip cpolar_linux_amd64.zip
chmod +x cpolar
./cpolar service start
  1. 在无公网IP的OpenEuler系统上安装cpolar客户端,并使用cpolar建立一个内网穿透的SSH隧道。



wget https://github.com/cpolar/cpolar_release/releases/download/v0.3.0/cpolar_linux_amd64.zip
unzip cpolar_linux_amd64.zip
chmod +x cpolar
./cpolar client start
  1. 在有公网IP的服务器上,通过cpolar客户端创建一个隧道,将本地的SSH服务暴露给公网。



./cpolar tcp --remote-port 22
  1. 使用在服务端看到的公网地址和端口,通过SSH客户端远程连接到OpenEuler系统。



ssh -p [服务端端口] [用户名]@[服务端公网地址]

确保你的OpenEuler防火墙允许从SSH客户端访问创建的隧道端口。

以上步骤可以实现在无公网IP的情况下,通过有公网IP的服务器进行SSH远程连接。cpolar支持HTTP、HTTPS、TCP等各种协议,并且还可以指定端口、自定义域名等,非常适合作为开发者或者小型企业的内网穿透工具。

2024-08-10

rename 是一个非常强大的命令行工具,用于在 Linux 中重命名文件。它可以用于处理简单的重命名任务,也可以用于复杂的重命名场景,例如批量修改文件扩展名。

以下是一些使用 rename 命令的示例:

  1. 将所有 .txt 文件重命名为 .bak 文件:



rename .txt .bak *.txt
  1. 将所有文件名中的小写字母转换为大写字母:



rename 'y/a-z/A-Z/' *
  1. 将文件名中的数字 1 替换为字母 L:



rename 's/1/L/' *
  1. 给所有文件添加一个前缀 "old\_":



rename 's/^/old_/' *
  1. 删除所有文件名中的空格:



rename 's/ //g' *

请注意,rename 命令的语法和行为可能会根据安装的版本有所不同。在某些 Linux 发行版中,rename 命令可能被称为 prename,并且需要使用 Perl 正则表达式。确保根据你的系统检查正确的命令和语法。

2024-08-10

在Linux中,可以通过手动创建用户而不使用useradd命令。以下是步骤和示例代码:

  1. 切换到root用户,因为创建用户需要相应的权限。



su -
  1. 创建新用户的主目录。



mkdir /home/newuser
  1. 为新用户创建一个密码哈希。可以使用openssl来生成密码哈希。



openssl passwd -1 -salt 'random-phrase' 'password'
  1. 将新用户添加到/etc/passwd文件中。



echo "newuser:x:1001:1001:New User:/home/newuser:/bin/bash" >> /etc/passwd
  1. 设置用户密码哈希。



echo "newuser:$1$random-phrase$password" | chpasswd
  1. 设置用户的其他信息,如用户组、shell等,可以编辑/etc/passwd中的相关条目或使用usermod命令。



usermod -aG sudo newuser
usermod -s /bin/bash newuser
  1. 复制bash配置文件到用户的主目录。



cp /etc/skel/.* /home/newuser/
chown -R newuser:newuser /home/newuser

以上步骤创建了一个名为newuser的用户,并设置了密码和基本的用户信息。请根据实际需求调整用户名、密码和其他设置。