[...]blog:locate 命令:文件查找命令 - 灵魂信息 (soulio.top)[...]
首页
留言
统计
友链
归档
关于
Search
1
typecho博客-SEO优化-永久链接设置-伪静态
89 阅读
2
搭建网站的三种方式:家庭服务器、云服务器、serv00免费服务器
63 阅读
3
DNF:包管理器
53 阅读
4
typecho主题和插件
52 阅读
5
Homebrew:包管理器
45 阅读
网站搭建
Linux命令详解
登录
Search
标签搜索
Linux命令
serv00
Linux
网站搭建
typecho
Excel
正则表达式
PVE
mdx
soulio
累计撰写
146
篇文章
累计收到
2
条评论
今日撰写
0
篇文章
首页
栏目
网站搭建
Linux命令详解
页面
留言
统计
友链
归档
关于
用户登录
登录
搜索到
127
篇与
的结果
2024-09-17
grep命令:之 Perl 正则表达式
一、Perl 正则表达式简介Perl 正则表达式(Perl Compatible Regular Expressions,PCRE)是一种强大而灵活的正则表达式语法,它由 Perl 编程语言中的正则表达式语法演变而来,在许多编程语言和工具中都得到了广泛应用。Perl 正则表达式非常灵活,支持许多高级功能,例如零宽断言、回溯引用、嵌入代码等。它在文本处理、模式匹配和数据提取等方面非常强大。二、Perl 常用规则和语法 元字符: .: 匹配任意单个字符,除了换行符。 ^: 匹配行首。 $: 匹配行尾。 *: 匹配前一个字符的零个或多个重复。 +: 匹配前一个字符的一个或多个重复。 ?: 匹配前一个字符的零个或一个重复。 |: 或运算符,匹配两个或多个模式中的任意一个。 []: 字符类,匹配括号内的任意单个字符。 ():分组,用于捕获子模式。 {}:指定重复次数的区间。 特殊字符: \d: 匹配数字字符。 \D: 匹配非数字字符。 \w: 匹配单词字符(字母、数字、下划线)。 \W: 匹配非单词字符。 \s: 匹配空白字符(空格、制表符、换行符等)。 \S: 匹配非空白字符。 量词: {n}: 匹配前一个元素恰好 n 次。 {n,}: 匹配前一个元素至少 n 次。 {n,m}: 匹配前一个元素至少 n 次,最多 m 次。 修饰符: i: 不区分大小写。 m: 多行模式,使 ^ 和 $ 匹配行首和行尾。 s: 单行模式,使 . 匹配任意字符,包括换行符。 x: 忽略空白和注释。 三、Perl 示例grep 提取硬盘温度(整行)#命令 sudo smartctl -a /dev/sda | grep Temperature_Celsius #输出 194 Temperature_Celsius 0x0022 100 100 050 Old_age Always - 40 grep 提取硬盘温度(仅匹配部分)#命令 sudo smartctl -a /dev/sda | grep Temperature_Celsius | grep -Po '\d{2}$' #输出 40
2024年09月17日
9 阅读
0 评论
0 点赞
2024-09-17
grep 命令:文本搜索
一、grep 命令简介grep 命令用于在文件中搜索指定模式的文本,并显示匹配的行。二、grep 命令参数匹配规则:可以是 普通字符 串或 正则表达式。grep [选项] [匹配规则] [指定目录] 常用选项: -i, --ignore-case:忽略大小写。 -v, --invert-match:仅显示不匹配的行。 -c, --count:仅显示匹配行的计数,而不显示匹配的内容。 -n, --line-number:显示匹配行的行号。 -l, --files-with-matches:仅显示包含匹配内容的文件名。 -L, --files-without-match:仅显示不包含匹配内容的文件名。 -r, --recursive:递归地搜索目录中的文件。 -w, --word-regexp:仅匹配整个单词,而不是部分匹配。 -E, --extended-regexp:使用扩展的正则表达式语法。不支持 \d 等快捷写法。 -o, --only-matching:仅显示匹配的部分,而不是整行。 -A NUM, --after-context=NUM:显示匹配行后的 NUM 行内容。 -B NUM, --before-context=NUM:显示匹配行前的 NUM 行内容。 -C NUM, --context=NUM:显示匹配行前后各 NUM 行内容。 -q, --quiet, --silent:静默模式,不显示任何输出。 -P, --perl-regexp:使用 Perl 正则表达式语法。支持 \d 等快捷写法,比 -E 参数实用。 三、grep 命令示例示例 1 从一个命令的输出中搜索信息:示例 2 在文件中搜索包含特定字符串的行:grep "关键词/匹配规则" filename 示例 3 忽略大小写搜索:grep -i "关键词/匹配规则" filename 示例 4 显示匹配行的行号:grep -n "关键词/匹配规则" filename 示例 5 递归搜索目录下的所有文件:grep -r "关键词/匹配规则" directory 当前目录 grep -r "拼命加载" # 输出 ../Joe/live.php: <li class="error">正在拼命加载中...</li> ../Joe/video.php: <p class="error">正在拼命加载中...</p> ../Joe/video.php: <li class="error">正在拼命加载中...</li> ../Joe/wallpaper.php: <li class="error">正在拼命加载中...</li> 示例 6 显示不匹配的行:grep -v "关键词/匹配规则" filename 示例 7 显示匹配行的计数:grep -c "关键词/匹配规则" filename 示例 8 只显示包含匹配的文件名:grep -l "关键词/匹配规则" * 示例 9 grep 嵌套这里 timedatectl show 输出的内容非常多,而我只想看日期,可以嵌套使用 grep 提取日期值。# 命令 timedatectl show # 输出 Timezone=Etc/UTC LocalRTC=no CanNTP=yes NTP=yes NTPSynchronized=yes TimeUSec=Tue 2024-09-17 09:01:41 UTC RTCTimeUSec=Tue 2024-09-17 09:01:41 UTC grep# 命令 timedatectl show | grep "^TimeUSec" | grep -Po "\d{4}-\d{2}-\d{2}" # 输出 2024-09-17 思考仅有两个文件,内容一样搜索第一个 ls 搜索不到:可将 ls 输出看作临时文件 tmp,tmp 作为搜索内容第二个 ls 搜索成功:hello.c 和 hello_world.c 作为搜索文件
2024年09月17日
7 阅读
0 评论
0 点赞
2024-09-16
ftp 命令与服务
一、部署 FTP 服务1.1 FTP 的发展FTP(File Transfer Protocol,文件传输协议)自 1970 年代起就成为了文件传输的主要协议之一。随着互联网和网络技术的发展,FTP 服务器也不断演变。FTP 服务器的发展: 早期发展: 最初的 FTP 协议仅支持简单的明文文件传输,缺乏安全机制,因此较易受到攻击。它主要用于学术机构和企业之间的文件共享。 引入安全协议: 为了解决 FTP 的安全问题,出现了多种安全扩展协议,如 FTPS(FTP over SSL/TLS)和 SFTP(基于 SSH 的 FTP)。这些协议加密了文件传输,确保数据的保密性。 现代化需求: 现代 FTP 服务器不仅需要支持安全的文件传输,还要求能够高效处理大规模文件传输、远程管理、用户认证以及与现代操作系统的兼容性。 常见的 FTP 服务器: ProFTPD 特点: ProFTPD 是一款功能丰富的开源 FTP 服务器,支持虚拟主机、匿名访问、TLS 加密以及 IPv6。它的配置类似于 Apache HTTP 服务器,适合需要定制化配置的用户。 适用场景: 企业环境和高级用户,尤其适合拥有多个虚拟主机的服务器。 vsftpd (Very Secure FTP Daemon) 特点: vsftpd 以其安全性闻名,是许多 Linux 发行版的默认 FTP 服务器。它支持 FTPS 和 SFTP,并以其高效和低资源占用著称。 适用场景: 需要高安全性和性能的服务器,如托管服务提供商和大型企业。 FileZilla Server 特点: FileZilla 不仅是著名的 FTP 客户端,还提供了一个简单易用的 FTP 服务器。FileZilla Server 专注于 Windows 平台,支持 FTP 和 FTPS。 适用场景: 中小型企业和个人用户,尤其是需要在 Windows 环境中部署 FTP 服务的用户。 Pure-FTPd 特点: Pure-FTPd 是一款易于配置的开源 FTP 服务器,支持 TLS 加密、虚拟用户、带宽限制等功能。它注重安全性和简单性。 适用场景: 需要快速部署且安全可靠的 FTP 服务器,如小型企业和项目。 Wing FTP Server 特点: Wing FTP Server 是一款跨平台的商业 FTP 服务器,支持 FTP、FTPS、SFTP、HTTP 和 HTTPS 传输协议。它提供了图形化界面和详细的日志功能,适合大规模企业使用。 适用场景: 企业级解决方案,尤其是需要多协议支持和图形化管理工具的用户。 Serv-U FTP Server 特点: Serv-U 是一款功能强大的商业 FTP 服务器,支持自动化任务、详细的权限管理、集成 SSL 加密等。它为企业提供了灵活的文件传输解决方案。 适用场景: 大型企业和需要高度安全性与管理功能的组织。 FTP 服务器的发展从简单的文件传输协议,逐步演变为支持加密、用户认证、多协议支持的现代化工具。现今有多种 FTP 服务器可供选择,适合不同的需求场景。本文使用的 ftp 服务器:vsftpd本文使用的 ftp 客户端:ftp-ssl1.2 FTP 客户端FTP(文件传输协议)客户端 ftp 是一个用于在本地和远程 FTP 服务器之间传输文件的命令行工具。它允许用户上传文件到服务器、从服务器下载文件、在服务器上创建目录、删除文件等。安装客户端:apt install ftp-ssl 1.3 安装 FTP 服务器Ubuntu 系统:sudo apt update sudo apt install vsftpd vsftpd -v 红帽系统:sudo yum install epel-release sudo yum install vsftpd vsftpd -v 1.4 启动 FTP 服务启动 FTP 服务sudo systemctl start vsftpd 设置开机自启动sudo systemctl enable vsftpd 二、ftp 命令参数基本的 ftp 命令语法如下:ftp [-v] [-d] [-i] [-n] [-g] [-k realm] [-x] [-u] [-p] [-l] [-d] [-I] [-N] [-4] [-6] [-S:socket] [-w:windowsize] [-T] [host-name] 以下是常用的参数: -v:冗余模式,显示命令的详细执行过程。 -n:禁用自动登录功能。 -i:关闭交互式提示。 -d:启用调试模式。 -g:禁用文件名通配符。 -u:指定用户名,用于匿名登录时。 -p:使用被动模式。 -l:允许使用文件的本地锁。 -d:启用调试。 -I:使用二进制图像传输模式。 -N:禁用自动登录到匿名账户。 -4:仅使用 IPv4 地址。 -6:仅使用 IPv6 地址。 -S:socket:指定用于数据传输的 socket。 -w:windowsize:设置传输窗口的大小。 -T:启用多线程传输。 三、ftp 命令示例FTP(文件传输协议)的命令行工具允许你在客户端与服务器之间进行文件传输和管理。以下是常见的 FTP 命令示例,帮助你更好地了解如何使用 FTP 工具。1. 连接到 FTP 服务器ftp <服务器地址> 示例:ftp 192.168.1.100 这会连接到指定的 FTP 服务器。连接后会提示输入用户名和密码。2. 登录Name (192.168.1.100:username): username 331 Please specify the password. Password: <your_password> 输入正确的用户名和密码后,即可登录到 FTP 服务器。3. 查看帮助help 列出 FTP 客户端的所有可用命令。4. 列出目录内容ls 列出服务器当前目录中的文件和子目录。5. 切换目录cd <目录> 示例:cd /var/www 切换到服务器上的 /var/www 目录。6. 查看当前目录pwd 显示你当前所在的服务器目录。7. 下载文件get <文件名> 示例:get example.txt 将服务器上的 example.txt 文件下载到本地。8. 上传文件put <文件名> 示例:put localfile.txt 将本地的 localfile.txt 文件上传到服务器当前目录。9. 批量下载文件mget <文件名或通配符> 示例:mget *.txt 下载服务器上所有 .txt 文件。10. 批量上传文件mput <文件名或通配符> 示例:mput *.jpg 上传本地所有 .jpg 文件到服务器。11. 切换到本地目录lcd <本地目录> 示例:lcd /home/user/documents 切换到本地的 /home/user/documents 目录。12. 删除服务器上的文件delete <文件名> 示例:delete oldfile.txt 删除服务器上的 oldfile.txt 文件。13. 创建目录mkdir <目录名> 示例:mkdir new_directory 在服务器上创建 new_directory 目录。14. 删除目录rmdir <目录名> 示例:rmdir old_directory 删除服务器上的 old_directory 目录(必须为空)。15. 启用被动模式passive 切换为被动模式,适合防火墙或 NAT 网络环境下的连接。16. 查看传输模式status 查看当前 FTP 会话的传输模式(被动或主动)。17. 退出 FTP 会话bye 或quit 断开与 FTP 服务器的连接并退出客户端。18. 切换到二进制模式binary 在传输非文本文件(如图片、压缩包等)时使用二进制模式。默认是 ASCII 模式。19. 显示本地文件!ls 在当前 FTP 会话中列出本地目录中的文件。四、FTP 配置详解配置文件:/etc/vsftpd.conf示例 1 不用匿名用户vsftpd.conf 配置文件示例 # 允许匿名用户访问 anonymous_enable=NO # 启用本地用户登录 local_enable=YES # 启用写操作(上传、删除文件等),默认只读 write_enable=YES # 设置本地用户的上传文件权限(默认值是 0777,减去由 umask 指定的掩码值) local_umask=022 # 启用 FTP 被动模式 pasv_enable=YES # 设置被动模式的数据端口范围(建议配置以避免防火墙问题) pasv_min_port=10000 pasv_max_port=10100 # 启用 chroot 限制本地用户只能访问其家目录 chroot_local_user=YES # 在登录时显示欢迎消息 ftpd_banner=Welcome to my FTP server! # 限制用户最大连接数 max_clients=100 max_per_ip=5 # 设置FTP监听的端口(默认21) listen_port=21 # 启用 standalone 模式下的 vsftpd 服务 listen=YES # 启用安全传输(FTPS) ssl_enable=YES rsa_cert_file=/etc/ssl/certs/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem # 强制所有非匿名登录的用户使用SSL加密 force_local_logins_ssl=YES force_local_data_ssl=YES # 日志配置 xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES # 限制上传文件的大小(单位:字节) max_upload_rate=1000000 # 启用 IPv6 listen_ipv6=NO 配置文件说明 anonymous_enable: 设置是否允许匿名用户登录。通常为 NO 以提高安全性。 YES:允许匿名登录。 NO:不允许匿名用户访问。 local_enable: 允许本地系统用户使用 FTP 登录。如果需要本地用户登录访问 FTP,则设置为 YES。 write_enable: 是否允许用户在 FTP 服务器上进行写操作(如上传、删除文件)。为 YES 时允许写操作。 local_umask: 设置上传文件的权限掩码。022 掩码表示新文件的默认权限为 755(目录)或 644(文件)。 pasv_enable: 启用被动模式(PASV)。如果客户端和服务器之间有防火墙/NAT,启用此选项有助于解决数据连接问题。 pasv_min_port 和 pasv_max_port: 设置 PASV 模式下的数据端口范围,防止服务器开放太多端口。建议指定一个较小的端口范围。 chroot_local_user: 限制本地用户只能访问其主目录,提高安全性,防止用户访问服务器的其他部分。 ftpd_banner: 登录 FTP 时显示的欢迎消息。你可以根据需要自定义内容。 max_clients 和 max_per_ip: 设置 FTP 服务器允许的最大并发连接数,以及每个 IP 地址允许的最大连接数。这有助于防止单个客户端占用过多资源。 listen_port: 设置 FTP 服务器监听的端口,默认是 21。如果你想在不同的端口运行 FTP 服务器,可以在这里更改。 listen: 是否启用独立模式下的 vsftpd 服务器。YES 表示独立运行,不依赖 inetd 或 xinetd。 SSL/FTPS 配置: ssl_enable: 启用 SSL 加密以实现安全的 FTP 传输(FTPS)。 rsa_cert_file 和 rsa_private_key_file: SSL 证书和私钥文件路径。 force_local_logins_ssl 和 force_local_data_ssl: 强制本地用户登录和数据传输时使用 SSL 加密,确保传输安全。 xferlog_enable: 启用传输日志记录。xferlog_file 指定了日志文件的位置,xferlog_std_format=YES 将日志以标准 FTP 格式记录。 max_upload_rate: 限制每个用户上传文件的最大速率,单位为字节。这里设置了 1 MB/s 的上传限制。 listen_ipv6: 设置是否启用 IPv6。如果不需要 IPv6,可以设置为 NO。 重启 vsftpd 服务:配置完成后,重启 vsftpd 服务以使更改生效:sudo systemctl restart vsftpd 示例 2 启用匿名用户vsftpd.conf 示例# 启用匿名用户登录 anonymous_enable=YES # 禁止匿名用户上传文件 anon_upload_enable=NO # 禁止匿名用户写操作(包括删除文件) anon_other_write_enable=NO # 设置匿名用户的根目录 anon_root=/var/run/vsftpd/empty # 启用目录消息功能 dirmessage_enable=YES # 使用本地时间显示文件修改时间 use_localtime=YES # 启用日志记录 xferlog_enable=YES # 使用端口20进行数据连接 connect_from_port_20=YES # 配置 SSL 相关 secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO # 启用监听模式和IPv6支持 listen=NO listen_ipv6=YES # 启用本地用户登录 local_enable=YES # 确保用户被限制在其主目录中 chroot_local_user=YES # 不启用本地用户的chroot列表 chroot_list_enable=NO 创建目录:sudo mkdir -p /srv/ftp 设置目录权限:确保该目录对所有人具有读取权限sudo chown -R ftp:ftp /srv/ftp sudo chmod 755 /srv/ftp ftp:ftp:这是 ftp 用户组的所有权。 755:此权限设置允许匿名用户读取目录中的文件,但不允许修改或删除。 重启 vsftpd 服务在完成配置后,重启 vsftpd 服务以应用更改:sudo systemctl restart vsftpd 测试匿名用户登录使用 FTP 客户端连接到你的 FTP 服务器,测试匿名用户能否访问公共目录:ftp <服务器IP地址> 在提示输入用户名时输入 anonymous,密码可以随意输入(通常为空或者是电子邮件地址)。上传文件到公共目录如果你希望匿名用户能够下载文件,可以将公共文件上传到 /srv/ftp 目录。FTP 服务器会将该目录内容提供给匿名用户。sudo cp <file_to_share> /srv/ftp 匿名用户将能够通过 FTP 客户端或浏览器下载这些文件。通过上述配置,匿名用户将能够访问你指定的公共目录,并且只能进行读取操作。确保公共目录的权限设置正确,以防止匿名用户不必要的修改或上传操作。ftp 本地用户与匿名用户的区别 本地用户: 使用服务器上已存在的系统账户(用户名/密码)。 拥有根据系统配置的权限,可以上传、下载文件,访问自己的主目录,或被分配的目录。 通常有较高的安全性和权限控制。 匿名用户: 使用通用的 anonymous 登录,通常不需要密码,或使用电子邮件作为密码。 通常只能访问有限的公共目录,权限较低,无法写入或上传文件(除非服务器特别配置)。 适合公开文件的访问或下载。 防火墙设置如果使用防火墙,确保允许 FTP 服务器的相关端口(默认情况下,FTP 使用 TCP 端口 21)。访问 FTP 服务器 通过 FTP 客户端(如 FileZilla、WinSCP 等)使用主机 IP 地址、用户名和密码连接到 FTP 服务器。 Windows 文件管理器:Win11 支持 FTP,Win10 没有测试。 浏览器:大多数浏览器已经不支持 FTP。 Edge 和 Chrome 不支持。害我半夜,捣鼓了很久。 360 浏览器支持
2024年09月16日
12 阅读
0 评论
0 点赞
2024-09-16
fsck 命令:修复文件系统错误
一、命令简介fsck命令用于检查和修复Linux文件系统的一致性问题。它可以扫描和修复文件系统中的错误,如文件系统损坏、丢失的inode等。这个工具通常在系统启动时自动运行,或者在文件系统出现问题时手动运行。⚠️在运行fsck之前,先卸载要检查的文件系统,否则可能会导致数据丢失。相关目录:lost+found目录用于存放文件系统中丢失的碎片文件或损坏的文件片段。二、命令参数fsck [选项] [文件系统] 选项 [options]:指定命令的选项。 [filesystem]:指定要检查的设备或分区。常用选项包括: -t <fstype>:指定文件系统类型(例如 ext4、ext3、ext2、vfat 等)。 -a:自动修复文件系统中的错误,不进行任何提示。 -n:以非交互模式运行,不修复任何错误,只显示错误信息。 -y:对于所有问题都回答“yes”,自动修复错误。 -r:以交互模式运行,在修复错误之前提示用户。 -V:显示详细的执行过程。 三、命令示例示例 1 自动检查并修复根文件系统:fsck -a /dev/sda1 这里 /dev/sda1 是根文件系统的设备名。示例 2 以非交互模式检查文件系统,不修复任何错误:fsck -n /dev/sda2 示例 3 检查一个特定的文件系统类型(例如 ext4):fsck -t ext4 /dev/sda3 注意: 卸载文件系统。在使用 fsck 命令前,请确保文件系统没有被挂载。如果文件系统正在使用中,fsck 可能无法正确检查或修复错误,甚至可能会导致数据丢失。因此,通常在单用户模式或从救援光盘启动时运行 fsck。 备份数据。运行 fsck 可能会修复文件系统错误,但也可能损坏文件系统,尤其是在错误使用时。在运行此命令之前,请确保备份重要数据。如果不确定如何操作,最好咨询有经验的系统管理员或专业人士。
2024年09月16日
11 阅读
0 评论
0 点赞
2024-09-15
free 命令:显示内存使用情况
一、命令简介free 命令用于显示系统当前的内存使用情况,包括总内存、已使用内存、空闲内存以及缓冲区和缓存等信息。二、命令参数free [选项] 选项: -h, --human:以人类可读的方式显示输出结果,例如以 GB、MB 等单位显示。 -b, --bytes:以字节为单位显示内存使用情况。 -m, --mega:以 MB(兆字节)为单位显示内存使用情况。 -g, --giga:以 GB(千兆字节)为单位显示内存使用情况。 三、命令示例 显示系统当前的内存使用情况(默认以 KB 显示):free -h是free命令最常用的选项:free -h 显示内存使用情况并以 MB 单位显示:free -m 显示详细的内存信息,包括缓冲区和缓存:free -h -l 输出:$ free -h total used free shared buff/cache available 内存: 7.6Gi 4.1Gi 445Mi 22Mi 3.1Gi 3.3Gi 交换: 8.4Gi 1.6Gi 6.7Gi total:系统中物理内存的总量,包括已分配和未分配的内存。 used:已经被系统占用的内存量,包括用于程序、缓存和缓冲区的内存。 free:未被系统使用的空闲内存量,可以立即分配给新的程序或进程。 shared:被共享的内存量,通常是共享库或共享内存的大小。 buff/cache:用于缓存和缓冲区的内存量,可被随时释放。这部分内存被用于存储磁盘缓存、文件系统缓存等,以提高系统性能。 available:可用内存量,表示系统当前可供程序使用的内存量,包括空闲内存和缓存中的内存。这个值考虑了缓存和缓冲区的情况,因此它表示系统当前可立即使用的内存量。 swap:交换空间。主要作用是扩展系统的虚拟内存空间,帮助系统在内存不足时继续运行。实际是借用硬盘空间做虚拟内存。
2024年09月15日
9 阅读
0 评论
0 点赞
1
...
18
19
20
...
26