2024-08-19

在Linux中,有许多内置的命令可以帮助我们完成不同的任务。这些命令可以包括文件操作、文本处理、系统管理等多个方面。

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



ls
  1. cd:改变当前工作目录。



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



pwd
  1. cat:连接文件并打印到标准输出设备上。



cat filename
  1. grep:在文件中搜索字符串。



grep "string" filename
  1. find:在目录树中查找文件。



find /path/to/directory -name filename
  1. ps:报告当前系统的进程状态。



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



kill -9 PID
  1. chmod:改变文件或目录的权限。



chmod 755 filename
  1. tar:打包和解压文件。



tar -cvf archive.tar files
tar -xvf archive.tar
  1. curl:发送网络请求,支持各种协议。



curl http://example.com
  1. ssh:安全地连接到远程主机。



ssh user@hostname
  1. sudo:以系统管理员的身份运行命令。



sudo command
  1. man:查看命令手册。



man command
  1. apt:在Debian和Ubuntu等基于Debian的Linux发行版中,用于安装、升级、删除软件包。



sudo apt update
sudo apt install package_name
  1. yum:在CentOS等基于RPM的Linux发行版中,用于安装、升级、删除软件包。



sudo yum update
sudo yum install package_name
  1. systemctl:管理系统服务。



sudo systemctl start service_name
sudo systemctl stop service_name

注意:这些命令只是Linux命令的一小部分,Linux提供了非常多的命令,每个命令都有其特定的用途和选项。在实际使用中,可以通过man命令查看每个命令的详细使用方法。例如,要查看ls命令的详细信息,可以在终端中输入"man ls"。

2024-08-19

在Linux下使用ZeroTier实现内网穿透并搭建moon服务器的步骤如下:

  1. 安装ZeroTier One:



curl -s https://install.zerotier.com | sudo bash
  1. 启动ZeroTier服务:



sudo systemctl start zerotier-one
  1. 使服务开机自启:



sudo systemctl enable zerotier-one
  1. 手动添加网络或在ZeroTier Central创建网络,并获取网络ID。
  2. 分配给你的设备一个ZeroTier地址:



sudo zerotier-cli join <你的网络ID>
  1. 如果你想要搭建moon服务器进行内网穿透,你需要在moon服务器上安装ZeroTier One,并加入相同的网络。
  2. 在moon服务器上,启动moon服务:



sudo zerotier-one -d -R /var/lib/zerotier-one -p 9993
  1. 在moon服务器的/var/lib/zerotier-one/目录下创建moon.json文件,并配置moon服务器的公钥。
  2. 在需要进行内网穿透的设备上,编辑/var/lib/zerotier-one/planet.d/下对应moon服务器的目录中的public.btc文件,添加moon服务器的公钥。
  3. 重启ZeroTier服务以应用更改。

注意:实际的配置可能会根据你的网络环境和安全策略有所不同。上述步骤仅供参考,具体步骤请根据ZeroTier官方文档和实际网络环境进行调整。

2024-08-19

在Vim中,你可以使用正则表达式来寻找字符串。以下是一些基本的命令:

  1. 使用/命令来查找一个字符串。例如,要查找"example"这个词,你可以按下/然后输入example,接着按下回车。



/example
  1. 查找下一个匹配的结果,按n
  2. 查找上一个匹配的结果,按N

如果你想进行区分大小写的搜索,确保你的Vim设置中ignorecase被关闭。如果你只想在当前打开的文件中查找,确保hlsearch被开启。




:set noignorecase
:set hlsearch

如果你想取消高亮显示,可以使用以下命令:




:nohlsearch

如果你想永久关闭高亮显示,可以在你的.vimrc文件中添加以下设置:




:set nohlsearch

这些是在Vim中使用正则表达式搜索字符串的基本命令。

2024-08-19

在Linux中,扩展磁盘空间通常涉及以下三种方法:

  1. 使用分区工具如fdiskparted来创建新分区。
  2. 使用文件系统扩展工具如resize2fs(对于ext2/ext3/ext4文件系统)。
  3. 如果是LVM(Logical Volume Manager),可以直接调整逻辑卷的大小。

以下是每种方法的简要示例:

方法1:使用fdisk创建新分区并使用resize2fs扩展文件系统




# 查看当前磁盘分区
sudo fdisk -l
 
# 开始分区工具,选择磁盘(例如:/dev/sda)
sudo fdisk /dev/sda
 
# 创建新分区
n
 
# 选择分区类型等(默认回车即可)
 
# 写入分区表并退出
w
 
# 重新识别分区
sudo partprobe /dev/sda
 
# 扩展文件系统
sudo resize2fs /dev/sdaX

方法2:使用parted工具创建分区并扩展文件系统




# 使用parted工具
sudo parted /dev/sda
 
# 在parted交互式命令行中
mklabel gpt
mkpart primary 0% 100%
q
 
# 重新识别分区
sudo partprobe /dev/sda
 
# 扩展文件系统
sudo resize2fs /dev/sdaX

方法3:使用LVM




# 扩展逻辑卷
sudo lvextend -L +SIZE /dev/VGNAME/LVNAME
 
# 扩展文件系统
sudo resize2fs /dev/VGNAME/LVNAME

请注意,在实际操作时,您需要替换/dev/sda/dev/sdaX为实际的磁盘设备和分区,以及/dev/VGNAME/LVNAME为实际的卷组和逻辑卷名称。SIZE为您想要扩展的大小,可以是具体的大小值,或者使用+SIZE来指定增加的量。

在执行任何磁盘操作前,请务必备份重要数据,并确保没有运行重要服务访问该磁盘,以避免数据丢失。

2024-08-19

在Linux中,文件和目录的权限可以通过ls -l命令查看,权限以字符表示,如"rwx",其中"r"代表读权限,"w"代表写权限,"x"代表执行权限。同时,权限也可以用数字表示,r=4, w=2, x=1。

文件和目录权限可以通过chmod命令修改。

例如,给所有用户添加文件执行权限:




chmod a+x filename

移除组用户的写权限:




chmod g-w filename

使用数字设置权限(例如设置权限为rwxr-xr-x):




chmod 755 filename

文件的所有者可以通过chown命令更改文件的所有者。

例如,将文件所有者更改为用户名为newuser的用户:




chown newuser filename

目录的所有权和权限通常继承其父目录。然而,可以使用-R选项递归地更改目录及其内容的所有权和权限:




chown -R newuser directoryname

超级用户(root)可以更改任何文件的所有者或权限,普通用户只能更改自己拥有的文件的权限。

文件和目录的权限还受到umask值的影响,umask是一个数字,它从文件和目录的默认权限中减去。

例如,设置umask为022,新创建的文件和目录将默认权限设置为644和755:




umask 022

注意:在实际操作中,权限的修改需要确保操作用户拥有修改权限本身,或者是超级用户。

2024-08-19

在Linux上设置和使用Samba服务,首先需要安装Samba软件包,然后配置smb.conf文件,并启动Samba服务。以下是基本步骤和示例:

  1. 安装Samba软件包:



sudo apt-get update
sudo apt-get install samba
  1. 配置smb.conf文件:

    编辑/etc/samba/smb.conf文件,添加一个新的共享部分,例如:




[share]
    path = /path/to/share
    read only = no
    browsable = yes
  1. 重启Samba服务:



sudo systemctl restart smbd
  1. 创建访问共享所需的文件夹并设置权限:



sudo mkdir -p /path/to/share
sudo chown nobody:nogroup /path/to/share
sudo chmod 0775 /path/to/share
  1. 从Windows客户端访问Samba共享:

    在Windows资源管理器中,输入\\linux-server-ip\share,然后输入用户名和密码(如果需要)。

注意事项:

  • 确保Linux防火墙允许Samba服务的端口(默认为139和445)。
  • 确保SELinux配置允许Samba操作(如果启用了SELinux)。
  • 设置合适的用户和权限,以便只有授权用户可以访问共享。
  • 在实际部署中,应该使用更加安全的方式管理Samba账户,例如使用pdbedit工具。

以上步骤和示例提供了一个基本的Samba服务设置,根据具体需求可能需要更复杂的配置。

2024-08-19

在Linux中,进程间通信(IPC)是非常重要的。以下是一些常用的进程间通信方法:

  1. 管道(Pipe):管道是一种半双工的通信方式,数据只能单向流动,需要通过fork创建。
  2. 命名管道(FIFO):有名管道克服了管道没有名字的限制,因此,除了在创建它的进程之外,其他进程也可以访问到它。
  3. 消息队列:消息队列是消息的链接列表,存放在内核中。一个进程往消息队列中添加消息,另一个进程从消息队列中读取消息。
  4. 共享内存:共享内存就是映射一段能被其他进程所访问的内存,这段内存由一个进程创建,但多个进程可以访问。
  5. 信号量:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。
  6. 信号:信号是一种比消息传递效率高的通信方式,用于通知接收进程某个事件已经发生。
  7. 套接字(Socket):套接字可用于不同机器间的进程通信。

以下是使用共享内存进行进程间通信的示例代码:




#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <string.h>
 
int main() {
    int shm_id;
    char* shm_addr;
    const int size = 1024;
 
    // 创建共享内存
    if ((shm_id = shmget(IPC_PRIVATE, size, 0666)) < 0) {
        perror("shmget");
        exit(1);
    }
 
    // 连接共享内存
    if ((shm_addr = (char*)shmat(shm_id, NULL, 0)) < (char*)0) {
        perror("shmat");
        exit(1);
    }
 
    // 向共享内存中写入数据
    strcpy(shm_addr, "Hello, shared memory!");
 
    // 断开共享内存连接
    if (shmdt(shm_addr) < 0) {
        perror("shmdt");
        exit(1);
    }
 
    // 删除共享内存
    shmctl(shm_id, IPC_RMID, NULL);
 
    return 0;
}

在这个例子中,我们首先使用shmget创建了一个新的共享内存段,然后使用shmat将其连接到我们的地址空间。接着,我们通过strcpy将一个字符串复制到共享内存中。最后,我们使用shmdt断开共享内存的连接,并使用shmctl删除共享内存。

这只是共享内存通信的一个简单示例,在实际应用中,你可能需要更复杂的同步机制,如信号量,来确保进程间的同步和互斥。

2024-08-19

要在Linux上部署Yearning并通过内网穿透发布到公网,你需要完成以下步骤:

  1. 安装Yearning。
  2. 设置内网穿透。
  3. 配置Yearning的访问地址。

以下是具体步骤和示例代码:

  1. 安装Yearning:



# 下载Yearning安装脚本
wget https://github.com/cookieY/Yearning/releases/download/v2.5.1/Yearning-v2.5.1-linux-amd64.zip
 
# 安装unzip工具
sudo apt-get install unzip
 
# 解压Yearning安装包
unzip Yearning-v2.5.1-linux-amd64.zip
 
# 进入Yearning目录
cd Yearning-v2.5.1-linux-amd64
 
# 运行Yearning
nohup ./Yearning &
  1. 设置内网穿透:

常用的内网穿透工具有frpngrokn2n等。以frp为例,你需要下载对应系统的frp客户端和服务端程序,并配置frp服务端,然后在客户端配置Yearning的端口映射。




# 下载frp客户端和服务端
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz
 
# 解压
tar -zxvf frp_0.37.1_linux_amd64.tar.gz
 
# 编辑frp服务端配置文件frps.ini,配置公网IP和端口
[common]
bind_port = 7000
 
# 启动frp服务端
./frps -c ./frps.ini

在frp客户端的配置文件frpc.ini中配置Yearning的内网穿透:




[common]
server_addr = <your_server_ip>
server_port = 7000
 
[Yearning]
type = tcp
local_ip = 127.0.0.1
local_port = 8000
remote_port = 4000

启动frp客户端:




./frpc -c ./frpc.ini
  1. 配置Yearning的访问地址:

在完成内网穿透后,你可以通过<your_server_ip>:4000来访问Yearning,其中<your_server_ip>是你服务器的公网IP。

确保你的服务器防火墙和安全组规则允许访问7000和4000端口。

这样,Yearning就可以通过内网穿透工具发布到公网,并可以通过公网IP来访问了。

2024-08-19



#!/bin/bash
 
# 创建一个新的文件夹
mkdir /mnt/my_new_folder
 
# 挂载一个磁盘到新创建的文件夹
sudo mount /dev/sdb1 /mnt/my_new_folder
 
# 列出挂载的磁盘信息
mount | grep /mnt/my_new_folder
 
# 创建一个新的文件
touch /mnt/my_new_folder/my_new_file.txt
 
# 列出文件夹中的文件
ls /mnt/my_new_folder
 
# 卸载磁盘
sudo umount /mnt/my_new_folder
 
# 删除文件夹
rmdir /mnt/my_new_folder

这段代码展示了如何在Linux中创建一个新的文件夹,挂载一个磁盘,列出挂载信息,创建一个新文件,列出文件夹内容,卸载磁盘,并删除文件夹。这是学习Linux文件系统管理的基本操作。

2024-08-19

在Red Hat Linux中添加一个新的磁盘,并进行分区、格式化以及挂载的步骤如下:

  1. 查看新磁盘是否被系统识别:



lsblk
  1. 如果磁盘未被系统识别,可能需要重新扫描SCSI总线并重启系统:



echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
reboot
  1. 磁盘识别后,使用fdiskparted进行分区:



fdisk /dev/sdx

fdisk中,使用以下命令创建新分区:




n
p
[Enter]
[Enter]
w
  1. 格式化新分区,例如使用ext4文件系统:



mkfs.ext4 /dev/sdx1
  1. 创建挂载点并挂载新分区:



mkdir /mnt/mydisk
mount /dev/sdx1 /mnt/mydisk
  1. 为了让磁盘在启动时自动挂载,需要将其添加到/etc/fstab文件:



echo '/dev/sdx1 /mnt/mydisk ext4 defaults 0 0' >> /etc/fstab

请根据实际磁盘设备文件名(如/dev/sdb)和所需挂载点替换/dev/sdx1/mnt/mydisk