网站首页 包含标签 Linux 的所有文章

  • 宝塔Linux面板一键迁移网站-Windows面板快速迁移网站

    宝塔Linux/Windows面板如何一键迁移网站?相信做网站的站长朋友都会面临着网站搬家的时候,可能原因是网站的服务器不稳定,或者网站发展起来后需要更好的服务器,所以就需要进行网站的搬家了。如果两台服务器都安装有宝塔面板的话,可以在旧服务器的面板上安装“宝塔一键迁移 API 版本”即可实现快速迁移网站数据到新服务器上(只需要在旧服务器面板上安装该插件即可),本文档介绍如何使用宝塔 Linux/Windows 面板快速迁移网站到其他云服务器中。 迁移准备 1、迁出云服务器:指需要进行数据迁移的其他的云服务器,在服务器中安装宝塔 Linux/Windows 面板软件,需要升级至最新版本,本示例以宝塔Linux面板为例。 2、迁入云服务器:指用于接收数据的云服务器,在服务器安装宝塔 Linux/Windows 面板软件,需要升级至最新版本,本示例以宝塔Linux面板为例。 3、确保迁出服务器和迁入服务器之间网络可达,可通过公网互通,或则私网互通。 迁入服务器操作 1、登录迁入云服务器的宝塔 Linux 面板。 2、选择左侧菜单栏中的【面板设置】,并在设置页面中开启 API 接口。如下图所示: 3、在弹出的“配置面板API” 窗口中,记录好接口密钥,将需迁出服务器的公网 IP /内网IP地址加入 IP 白名单中,单击【保存】。如下图所示: 迁出服务器操作 1、登录迁出服务器的宝塔 Linux 面板,选择左侧菜单栏中的【软件商店】。 2、在“软件商店”页面中,找到“宝塔一键迁移API版本”插件,并单击右侧的【安装】。如下图所示:注意:仅需在迁出服务器中安装一键迁移插件即可。 3、安装成功后,单击插件所在行右侧的【设置】。 4、在弹出的“宝塔一键迁移API版本”窗口中,参考以下信息填写接受数据的迁入服务器信息。如下图所示: 面板地址:填写迁入服务器的面板地址。例如:http://公网 IP:8888。 API密钥:填写在迁入服务器操作的 中已获取的 API 接口密钥。 5、选择【下一步】,在弹出提示窗口中单击【已添加,继续操作】进入检测环境步骤。 6、在检测环境步骤中,宝塔面板将对远程接收数据的迁入服务器进行环境检测,查看是否已安装相关软件及运行环境。其中包含网站服务、MySQL 数据库、FTP、PHP、可用磁盘容量。 若检测失败,并提示远程迁入服务器中未安装某个软件(例如 PHP、MySQL 等)则需登录迁入服务器面板,前往【软件商店】安装对应版本软件,直至检测全部通过后,单击【下一步】。如下图所示: 7、在选择数据步骤中,按需选择需迁移的数据,并单击【一键迁移】。如下图所示: 8、等待数据迁移完成,若提示迁移失败,则建议您查看迁移日志,并参考提示信息处理对应问题。问题解决后,再重新执行迁移步骤。迁移成功如下图所示: 网站迁移完成后 1、修改网站的域名解析,降域名解析记录修改为新的服务器公网ip地址。 2、域名解析生效需要点时间,等待解析生效完成后,在浏览器访问域名,就可以访问迁移后的网站了。  ...

    2024-04-02 技术教程 62
  • Linux grep指令的10个使用技巧

    文章目录   一、在文件中搜索字符串或正则表达式 二、忽略大小写进行搜索 三、反向搜索 四、显示行号 五、递归搜索 六、只显示文件名 七、只显示匹配的行数 八、打印匹配前后的行 九、匹配多个字符串或正则表达式 十、使用特殊字符进行搜索 本文主要讲解关于Linux grep指令的10个使用技巧相关内容,让我们来一起学习下吧! grep (global regular expression print) 是 Linux 或其他类 Unix 操作系统中的一个功能强大的命令行搜索工具。它可以从文件或标准输入中搜索文本或字符串,并显示匹配的行或统计信息。grep 命令有大量的选项和用法,本文将介绍一些常见的示例。 一、在文件中搜索字符串或正则表达式 grep 命令可用于在一个或多个文件中搜索字符串或正则表达式。以下是如何使用它的基本语法: grep 'pattern' file1 file2 ... 例如,如果我们想在 file.txt 中搜索字符串 “hello”,我们可以使用以下命令: grep 'hello' file.txt 这个命令会打印出 file.txt 中包含 hello 的所有行。我们还可以使用通配符来在多个文件中搜索。例如,如果我们想在当前目录下所有以 .txt 结尾的文件中搜索 “hello”,我们可以使用以下命令: grep 'hello' *.txt 如果要使用正则表达式进行搜索,我们可以使用 -E 选项或使用 egrep 命令。例如,如果我们想在 file.txt 中搜索以 h 开头,后面跟一个或多个字母的单词,我们可以使用以下命令: grep -E 'h[a-zA-Z]+' file.txt 或者 egrep 'h[a-zA-Z]+' file.txt 二、忽略大小写进行搜索 默认情况下,grep 命令是区分大小写的。如果我们要忽略大小写进行搜索,我们可以使用 -i 选项。例如,如果我们想在 file.txt 中搜索 “hello”,不管它是大写还是小写,我们可以使用以下命令: grep -i 'hello' file.txt 这个命令会打印出 file.txt 中包含 hello , Hello , HELLO 等的所有行。 三、反向搜索 有时我们可能想要找出不匹配某个字符串或正则表达式的行,而不是匹配的行。这时我们可以使用 -v 选项进行反向搜索。例如,如果我们想在 file.txt 中找出不包含 “hello” 的所有行,我们可以使用以下命令: grep -v 'hello' file.txt 这个命令会打印出 file.txt 中不包含 hello 的所有行。 四、显示行号 如果我们想在搜索结果中显示每一行的行号,我们可以使用 -n 选项。例如,如果我们想在 file.txt 中搜索 “hello”,并显示匹配行的行号,我们可以使用以下命令: grep -n 'hello' file.txt 这个命令会在每一行的前面显示一个数字,表示该行在文件中的行号。 五、递归搜索 如果我们想在一个目录及其子目录中的所有文件中搜索一个字符串或正则表达式,我们可以使用 -r 选项进行递归搜索。例如,如果我们想在 dir 目录及其子目录中的所有文件中搜索 “hello”,我们可以使用以下命令: grep -r 'hello' dir/ 这个命令会在每一行的前面显示匹配的文件名和行号。 六、只显示文件名 如果我们只想知道哪些文件包含了匹配的字符串或正则表达式,而不想看到具体的内容,我们可以使用 -l 选项来只显示文件名。例如,如果我们想在当前目录下所有以 .txt 结尾的文件中搜索 “hello”,并只显示包含 “hello” 的文件名,我们可以使用以下命令: grep -l 'hello' *.txt 这个命令会只打印出包含 hello 的文件名,而不显示具体的行。 七、只显示匹配的行数 如果我们只想知道有多少行匹配了字符串或正则表达式,而不想看到具体的内容,我们可以使用 -c 选项来只显示匹配的行数。例如,如果我们想在 file.txt 中搜索 “hello”,并只显示匹配 “hello” 的行数,我们可以使用以下命令: grep -c 'hello' file.txt 这个命令会只打印出一个数字,表示 file.txt 中有多少行包含 hello 。 八、打印匹配前后的行 有时候,我们可能想要看到匹配的行的前后的一些行,以便更好地理解上下文。这时候,我们可以使用 -A 选项来打印匹配后的 N 行,使用 -B 选项来打印匹配前的 N 行,或者使用 -C 选项来打印匹配前后的 N 行。例如,如果我们想在 file.txt 中搜索 hello ,并打印匹配后的 2 行,我们可以使用以下命令: grep -A 2 'hello' file.txt 这个命令会打印出 file.txt 中包含 hello 的所有行,以及每一行后面的 2 行。类似地,如果我们想打印匹配前的 2 行,我们可以使用以下命令: grep -B 2 'hello' file.txt 这个命令会打印出 file.txt 中包含 hello 的所有行,以及每一行前面的 2 行。如果我们想打印匹配前后的 2 行,我们可以使用以下命令: grep -C 2 'hello' file.txt 这个命令会打印出 file.txt 中包含 hello 的所有行,以及每一行前后的 2 行。 九、匹配多个字符串或正则表达式 如果我们想在一个或多个文件中搜索多个字符串或正则表达式,我们可以使用 -e 选项来指定多个模式,或者使用 -f 选项来从一个文件中读取多个模式。例如,如果我们想在 file.txt 中搜索 hello 或 world ,我们可以使用以下命令: grep -e 'hello' -e world file.txt 这个命令会打印出 file.txt 中包含 hello 或 world 的所有行。或者,我们可以把 hello 和 world 写在一个文件中,比如 pattern.txt ,然后使用以下命令: grep -f pattern.txt file.txt 这个命令会打印出 file.txt 中包含 pattern.txt 中的任何一个字符串的所有行。 十、使用特殊字符进行搜索 grep 命令支持一些特殊字符,用于表示行的开头或结尾,或者表示任意字符或重复次数等。这些特殊字符可以组合成复杂的正则表达式,用于进行精确的搜索。以下是一些常用的特殊字符: ^ :表示行的开头。例如, ^hello 表示以 hello 开头的行。 $ :表示行的结尾。例如, hello$ 表示以 hello 结尾的行。 . :表示任意一个字符。例如, h.llo 表示 h 和 llo 之间有任意一个字符的行。 * :表示前面的字符可以重复0次或多次。例如, hel*o 会匹配 “hello” 和 “helo”。 [] :表示括号中的任意一个字符。例如, h[ae]llo 表示 h 和 llo 之间是 a 或 e 的行。 [^] :表示括号中的任意一个字符以外的字符。例如,在表达式 h[^ae]llo 中,[^ae] 表示除了 a 和 e 之外的任意字符。 其他的正则字符: {} :表示前面的字符可以重复指定次数。例如, h{2,4}llo 会匹配 “hhello”, “hhelllo”, 和 “hhelllo”。 | :表示或。例如, h|l|o 会匹配 “h”, “l”, 或 “o”。 \d :匹配一个数字字符。 \D :匹配一个非数字字符。 \w :匹配一个字母、数字或下划线。 \W :匹配一个非字母、非数字或非下划线的字符。 \s :匹配一个空白字符,例如空格、制表符、换页符等。 \S :匹配一个非空白字符。 \b :匹配一个单词边界。 \B :匹配一个非单词边界。 [[:<:]] 和 [[:>:]]:分别匹配行的开头和结尾(与 ^ 和 $ 功能相同,但更通用)。 [[:alnum:]]、[[:alpha:]]、[[:digit:]] 等:匹配指定的字符类。 这些特殊字符和其他一些高级功能使得 grep 命令成为处理文本数据的强大工具。 以上就是关于Linux grep指令的10个使用技巧相关的全部内容,希望对你有帮助。欢迎继续关注潘子夜个人博客,学习愉快哦! ...

    2023-12-25 技术教程 198
  • linux启动流程步骤详解

    Linux是怎么启动的? 几乎每个软件工程师都用过 Linux,但并不是每个人都知道它的启动过程,让我们深入了解一下。 下图给我们展示了具体步骤。 第1步 当我们打开电源时,BIOS(基本输入/输出系统,Basic Input/Output System)或 UEFI(统一可扩展固件接口,Unified Extensible Firmware Interface)固件会从非易失性内存中加载,并执行 POST(开机自检,Power On Self Test)。 第2步 BIOS/UEFI 检测连接到系统的设备,包括 CPU、内存和存储设备。 第3步 选择一个启动设备来启动操作系统。 可以是硬盘、网络服务器或 CD ROM。 第4步 BIOS/UEFI 运行引导加载器 (GRUB),它提供了一个选择操作系统或内核功能的菜单。 第5步 内核准备就绪后,我们现在切换到用户空间。 内核启动 systemd 作为第一个用户空间进程,负责管理进程和服务、探测所有剩余硬件、挂载文件系统并运行桌面环境。 第6步 系统启动时,systemd 默认激活 default.target 单元。 同时还会执行其他分析单元。 第7步 系统运行一组启动脚本并配置环境。 第8步 用户将看到一个登录窗口。 系统现已准备就绪。 ...

    2023-12-22 技术教程 189
  • Linux实时信息与状态监控脚本

    最近遇到一台无法连接互联网并且没有集成状态监控的Linux服务器,没办法整体观测服务器状态去排查问题。 所以写了下面这个这个脚本来监控,声明这个脚本没办法适配所有Linux服务器。 思路如下,针对自己的服务器情况有需要自己改下再用。 也能在拿到一台新机器时,一键观测下服务器状态。 先看代码 请注意将脚本中的eth0替换为你实际使用的网络接口(如enp0s3,wlan0,ens33等)。 #!/bin/bash # 获取服务器基本信息 hostname=$(hostname) ip_address=$(hostname -I | awk '{print $1}') os=$(lsb_release -ds) kernel=$(uname -r) uptime=$(uptime -p) # 监控循环 while true; do # 获取CPU信息 cpu_model=$(cat /proc/cpuinfo | grep "model name" | head -n1 | awk -F': ' '{print $2}') cpu_cores=$(cat /proc/cpuinfo | grep "model name" | wc -l) # 获取内存信息(加入单位) memory_total=$(free -h | awk 'NR==2{print $2}') memory_used=$(free -h | awk 'NR==2{print $3}') memory_free=$(free -h | awk 'NR==2{print $4}') memory_available=$(free -h | awk 'NR==2{print $7}') # 获取磁盘使用情况 disk_total=$(df -h --output=size / | awk 'NR==2{print $1}') disk_used=$(df -h --output=used / | awk 'NR==2{print $1}') disk_free=$(df -h --output=avail / | awk 'NR==2{print $1}') # 使用 top 命令获取 CPU 使用率 cpu_usage=$(top -b -n 1 | grep "%Cpu(s):" | awk '{printf "%.2f%%", 100-$8}') # 输出监控信息 clear echo "服务器信息:" echo "主机名:$hostname" echo "IP地址:$ip_address" echo "操作系统:$os" echo "内核版本:$kernel" echo "运行时间:$uptime" echo "--------------------------------------" echo "CPU信息:" echo "型号:$cpu_model" echo "核心数:$cpu_cores" echo "CPU使用率:$cpu_usage" echo "--------------------------------------" echo "内存信息:" echo "总量:$memory_total" echo "已使用:$memory_used" echo "可用:$memory_available" echo "--------------------------------------" echo "磁盘信息:" echo "总量:$disk_total" echo "已使用:$disk_used" echo "可用:$disk_free" # 每 3 秒刷新一次 sleep 3 done   运行结果 ...

    2023-12-14 实用工具 183
  • 如何将Silverblue重定位到Fedora Linux 39

    Fedora Silverblue是 一款基于 Fedora Linux 构建的面向桌面的操作系统。 这款操作系统非常适合日常使用、开发和容器化的工作流程。 它有许多优势,例如可以在发生问题时轻松回滚操作。 如果你想在 Fedora Silverblue 系统上更新或将系统 重定位rebase 到 Fedora Linux 39,本文会提供帮助。 文章不仅会指导你执行操作,还会教你如何在遇到意外情况时撤销操作。 更新你目前的系统 在实际重定位至 Fedora Linux 39 前,你需要先安装所有待处理的更新。 你可以在终端中使用下面的命令: $ rpm-ostree update 或者你也可以通过 GNOME “软件”应用安装更新,然后重新启动系统。 使用 GNOME “软件” 重定位 在 GNOME “软件”应用的更新页面上,你可以看到 Fedora Linux 的新版本已经可以使用。 首先,你需要点击 “下载Download” 按钮来下载新的操作系统镜像。这个过程可能需要一些时间。完成后,你会发现更新已经准备好进行安装。 接下来,点击 “重新启动 & 升级Restart & Upgrade” 按钮。这个过程只需要几分钟,一旦更新完成,计算机将会重新启动。重启后,你会看到崭新的 Fedora Linux 39 的系统环境,看起来很简单,是吧? 使用终端进行重定位 如果你更喜欢在终端操作,那么这部分指南就是为你准备的。 首先你需要确认 39 版本是否已经可以使用: $ ostree remote refs fedora 在命令输出中你应该看到如下内容: fedora:fedora/39/x86_64/silverblue 如果你想保留当前的部署(这意味着这个部署将会持续在 GRUB 中显示为一个选项,直到你手动移除它),你可以通过运行下面的命令实现: # 0 是在 rpm-ostree 状态中的条目位置 $ sudo ostree admin pin 0 如果你想移除已经固定的部署,你可以使用下面的命令: # 2 是在 rpm-ostree 状态中的条目位置 $ sudo ostree admin pin --unpin 2 然后,将你的系统重定位至 Fedora Linux 39 镜像。 $ rpm-ostree rebase fedora:fedora/39/x86_64/silverblue 最后,重启你的电脑,启动进入 Fedora Linux 39 版本。 如何进行回滚 如果遇到任何问题(例如,如果你无法启动 Fedora Linux 39),回滚是非常容易的。 在系统启动时,在 GRUB 菜单中选择 Fedora Linux 39 之前的版本,然后你的系统就会启动这个更早的版本而非 Fedora Linux 39。 如果你在启动过程中看不到 GRUB 菜单,那么在启动时尝试按下 ESC键。 如果你想让更早版本的选择永久生效,你可以使用下面的命令: $ rpm-ostree rollback 现在,你已经了解如何将 Fedora Silverblue 系统重定位到 Fedora Linux 39,以及如何进行系统回滚了。那么何不今天就试试看呢? 常见问题解答 在每篇关于重定位 Silverblue 到新版本的文章的评论中,总会有相似的问题,因此我会在这个部分尝试解答这些问题。 问题:在 Fedora 的重定位过程中我能跳过某些版本吗?例如直接从 Fedora 37 Silverblue 更新到 Fedora 39 Silverblue。 答案:虽然有时可能可以在重定位过程中跳过某些版本,但并不推荐这样操作。你应当始终更新到紧邻的新版本(例如从 38 更新到 39),以避免不必要的错误。 问题:我安装了 rpm-fusion,在重定位过程中出现错误,我应当怎样进行重定位? 答案:如果你在 Silverblue 安装上加入了 rpm-fusion,你在重定位前应当执行以下操作: rpm-ostree update \ --uninstall rpmfusion-free-release \ --uninstall rpmfusion-nonfree-release \ --install rpmfusion-free-release \ --install rpmfusion-nonfree-release 执行完上述操作后,你可以按照本篇博文的步骤完成重定位过程。 问题:这个指南是否适用于其他的 ostree 版本(例如 Kinoite, Sericea)? 答案:是的,你可以照着本指南的 使用终端进行重定位部分的操作来完成所有的 Fedora ostree 版本的重定位过程。只需要使用对应的分支即可。例如对于 Kinoite,你可以使用 fedora:fedora/39/x86_64/kinoite 而非 fedora:fedora/39/x86_64/silverblue </div> ...

    2023-11-12 164
  • 如何在Arch Linux上安装Docker

    在 Arch Linux 上安装 Docker 很简单。它可以在 Extra 仓库中找到,你可以简单地 执行 pacman 魔法: sudo pacman -S docker 但要在 Arch Linux 上正确运行 Docker,还需要执行更多步骤。 让 Arch Docker 做好准备 这一切都归结为以下步骤: 从 Arch 仓库安装 Docker 启动 Docker 守护进程并在每次启动时自动运行 将用户添加到 docker组以运行docker命令而无需sudo 让我们看看详细步骤。 步骤 1:安装 Docker 包 打开终端并使用以下命令: sudo pacman -S docker 输入密码并在询问时按 Y。 这可能需要一些时间,具体取决于你使用的镜像。 ? 如果你看到找不到包或 404 错误,那么你的同步数据库可能是旧的。使用以下命令更新系统(它将下载大量软件包并需要时间): sudo pacman -Syu 步骤 2:启动 docker 守护进程 Docker 已安装但未运行。你应该在第一次运行 Docker 命令之前启动 Docker 守护进程: sudo systemctl start docker.service 我还建议启用 Docker 服务,以便 Docker 守护进程在系统启动时自动启动。 sudo systemctl enable docker.service 这样,你就可以开始运行 docker命令了。你不再需要手动启动 Docker 服务。 步骤 3:将用户添加到 docker 组 Docker 已安装并且 Docker 服务正在运行。你几乎已准备好运行 docker命令。 但是,默认情况下,你需要将 sudo与docker命令一起使用。这很烦人。 为了避免在每个 docker命令中使用sudo,你可以将自己(或任何其他用户)添加到docker组,如下所示: sudo usermod -aG docker $USER 你必须注销(或关闭终端)并重新登录才能使上述更改生效。如果你不想这样做,请使用以下命令: newgrp docker 现在已经准备好了。我们来测试一下。 步骤 4:验证 docker 安装 Docker 本身提供了一个很小的 Docker 镜像来测试 Docker 安装。运行它并查看是否一切正常: docker run hello-world 你应该看到类似这样的输出,表明 Docker 成功运行: 恭喜! 你已经在 Arch Linux 上成功安装了 Docker。 可选:安装 Docker Compose Docker Compose 已经成为 Docker 不可或缺的一部分。它允许你管理多个容器应用。 较早的经典 Compose 由 docker-composePython 软件包提供。Docker 还将其移植到 Go 中,并通过docker compose提供,但该软件包附带Docker Desktop。 在这个阶段,我建议使用经典的 docker-compose插件并使用以下命令安装它: sudo pacman -S docker-compose 故障排除技巧 以下是你可能遇到的一些常见问题以及可能的解决方案: 制表符补全不适用于 docker 子命令 如果你想对 docker命令选项使用制表符补全(例如将im补全到images等),请安装bash-completion包: sudo pacman -S bash-completion 关闭终端并启动一个新终端。你现在应该能够通过 docker命令使用制表符补全功能。 无法连接到 Docker 守护进程错误 如果你看到以下错误: docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. See 'docker run --help'. 那是因为 Docker 守护进程没有运行。参考步骤 2,启动 Docker 服务,确保其正在运行并启用它,以便 Docker 守护进程在每次启动时自动运行。 sudo systemctl start docker.service sudo systemctl enable docker.service 尝试连接到 Docker 守护程序套接字时权限被拒绝 如果你看到此错误: ddocker: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'. 这是因为你需要使用 sudo运行docker命令,或者将用户添加到docker组以在不使用sudo的情况下运行docker命令。 我希望这篇简短的文章可以帮助你在 Arch Linux 上运行 Docker。 ...

    2023-11-10 170
  • Garuda Linux “Spizaetus” 发布,可以体验KDE Plasma 6了!

    Garuda Linux,作为一款 用户友好且基于 Arch Linux 的发行版,由于其可高度定制和可扩展性,近期已经吸引了大批用户。 Garuda Linux 提供了众多选项以满足不同的使用场景,无论是编程还是游戏。 目前,Garuda Linux 的最新发布版,Garuda Linux “Spizaetus”现已可用。 下面,让我来引导你了解一下这个版本。 ? Garuda Linux “Spizaetus”:有哪些新变化? 这个版本的代号“Spizaetus” 是来源于一种通常在美洲热带地区发现的鹰鹞。此次发布的主要亮点包括: 提供 Hyprland ISO Ugrep 取代了 Grep 提供了实验性的 KDE Plasma 6 仓库 提供 Hyprland ISO 在这个 Garuda Linux 的版本中,推出了带有 Hyprland动态平铺 Wayland 组合器的新 ISO,这让流畅的动画和轻松的窗口平铺成为可能。 在此,开发者之一的 dr460nf1r3表示: 关注精美的界面和模糊的窗口,Hyprland 无疑是 Garuda 的完美搭配。 ? 然而,不幸的是,他们不得不停止一些其它变体的更新,因为这些变体并未得到妥善维护。受影响的变体包括:MATE、LXQt-Kwin、KDE-git和Wayfire。 Ugrep 取代了 Grep grep命令行工具已被性能更强的ugrep文件模式搜索器所取代,后者声称自己是“超快速且用户友好的 Grep 替代品”。 这是一个令人感兴趣的改变,我们期待看到用户的反馈。 实验性的 KDE Plasma 6 仓库(请谨慎!) 开发者们还引入了一个名为 chaotic-aur-kde的实验性仓库,以提供早期版本的 Plasma 6。 请注意,这是为那些想提前体验 Plasma 6 设计的用户而设,并不建议将其用于生产环境。 一位开发者补充道: 我们一直在努力通过特定的 chaotic-aur-kde 仓库,提供 Plasma 6 的早期构建。 这可以让我们初步探索未来的 Plasma 6 将会是什么样子 – 它的首个版本计划在 2024 年 2 月发布。无需多说,这些都是来自主分支的实验性构建版,因此只适合喜欢接受挑战认的人去体验。 ?️ 其它的变化和改进 除了上述的亮点之外,还有些其他值得一提的细化调整: garuda-update 工具已更新用于处理近期由于包名称变更引发的冲突。 Plymouth已被移除,现在在启动时,会显示终端的输出内容。 对他们的基础设施进行了各种更新,以服务用户。 为 Garuda Linux 安装了一个专用的 Lemmy 实例。 你可以查阅 官方公告来获取更多详细信息。 ...

    2023-11-04 146
  • Overskride:一款有趣的Linux蓝牙应用!

    一款适用于 Linux 的新应用已经出现,它可能是满足你所有蓝牙需求的一站式应用。 这款名为 “Overskride” 的开源应用首次发布。尽管它还处于开发阶段,但已经提供了一些不错的功能。 请允许我带你看一下。 Overskride:可以期待什么? Overskride 将会吸引 Rust 爱好者,因为它主要是用 Rust 语言编写的,带有GTK4/libadwaita 风格。 根据开发人员的说法,它是一个简单的蓝牙和 Obex 客户端(未来计划),无论使用什么桌面环境或窗口管理器都可以工作。 一些主要功能包括: 信任/阻止设备。 能够发送/接收文件。 设置连接超时时间。 支持配置适配器。 查看上面的截图,你可以看到自定义蓝牙设备和连接的所有基本选项,包括适配器名称。 当然,考虑到这是该应用的第一次发布,人们不应该抱有太高的期望。因此,还有改进的空间。 以下是 Overskride 的一些预览,以查看它提供的功能。 我在 Ubuntu 22.04 LTS 和 GNOME 42.9 上使用提供的 Flatpak 包进行安装。在此安装上运行似乎没有任何问题。 Overskride 能够检测到我的智能手机,并提供多种配置选项。 你可以将设备添加到受信任列表或阻止列表、重命名并发送文件。 我尝试了文件传输功能,但在此之前,我必须使用Flatseal允许访问用户文件,以便它可以读取我系统上的文件。 我在手机上接受文件传输后,传输开始。速度还可以,文件确实完整地到达那里,没有任何问题。 我必须说,在其首次发布时,开发人员为我们提供了一个有用的实用程序。我很高兴看到其未来版本将提供什么样的改进。 一位 Reddit 用户 询问是否有任何计划支持显示无线耳机的电池百分比。对此,开发人员提到这样做很棘手,因为 每个设备都遵循不同的规范,这使得这一目标更难实现。 ...

    2023-10-25 179
  • Linux后台执行程序Nohup Screen

    Nohup nohup (no hang up) 用于在系统后台不挂断运行命令,退出终端不会影响程序的运行。 例如某 Python 程序: nohup python -u main.py >> log.out 2>&1 & 2>&1 是一个重定向操作符,它使错误消息也会被写入 log.out 文件。 Screen 会话简单使用 screen 是一个命令行工具,允许在单个 SSH 会话或终端中创建和使用多个会话。 简单来说,Screen 对我最大的好处是即使关闭了终端,会话或执行的程序依然能够继续。 ❝相比于 nohup,screen 的使用更加灵活,用途更广。❞ 安装 Screen。 apt update && apt install screen 以下是 screen 的常用命令。 # 查看当前所有的 Screen 会话 screen -ls # 新建一个 Screen 会话 screen -S [name] # 离开 Screen 会话 # 按 Ctrl + a, 再按 d 分离会话 # 恢复 Screen 会话 screen -r [session ID] # 删除一个 Screen 会话 screen -X -S [session ID] quit 无 root 权限下安装 screen 目前我有一台服务器,但没有 root 和 sudo 权限。 现需要使用 screen,因此采用编译安装。 具体步骤如下: 下载 screen 的源代码。可以从 GNU Screen官方网站找到最新版本的下载链接。 wget https://ftp.gnu.org/gnu/screen/screen-4.9.1.tar.gz 解压源代码包。 tar -xvf screen-4.9.1.tar.gz 进入解压后的目录。 cd screen-4.9.1 配置编译并设置安装路径为用户 home 目录下的 myapps 文件夹。 ./configure --prefix=$HOME/myapps 编译 screen。 make 安装编译好的screen。 make install 添加环境变量。 # 编辑环境变量 vim ~/.bashrc # 将以下内容添加到最后一行 export PATH="$HOME/myapps/bin:$PATH" 检查 screen 是否配置成功: screen -version 刷新环境变量。 source ~/.bashrc </div> ...

    2023-10-24 189
  • 终端基础:Linux终端中的目录切换

    本篇文章作为终端基础教程系列的一部分,介绍如何在 Linux 命令行中,利用绝对路径和相对路径实现目录切换。 Linux 的 cd命令让你可以轻松切换文件夹(即目录)。只需提供你要切换到的文件夹路径即可。 cd path_to_directory 然而对于 Linux 新人来说,可能会在路径的指定上有所困扰。 首先,让我们解决这个问题。 理解 Linux 中的路径 在 Linux 文件系统中,路径是用来追踪文件位置的信息。所有的路径都从根目录开始,然后向下延伸。 你可以通过下面的方式查看当前所在的位置: pwd 结果可能是类似于 /home/username的输出。注意,这里的username将会是你自己的用户名。 你可以注意到,路径是由 /符号和目录名组成的。比如路径/home/abhishek/scripts, 表示scripts是在文件夹abhishek之内,而文件夹abhishek在home文件夹之内。要注意,第一个 ‘/’ 是指根目录(即文件系统的开始处),后面的 ‘/’ 则作为目录的分隔符。 ?️ 在终端中键入 ls /,然后按回车。你将会看到根目录下的所有内容,试试看! 接下来,让我们学习两种常见的路径指定方式:绝对路径和相对路径。 绝对路径:这种路径从根开始,然后一直扩展到你需要的位置。如果一个路径是以/开头,那就说明它是一个绝对路径。 相对路径:这是相对于你文件系统中当前位置的路径。如果我当前位置在/home/abhishek,并且我需要去/home/abhishek/Documents, 我只需要简单地切换到Documents,而不需要指定整个绝对路径/home/abhishek/Documents。 在我演示这两种路径的区别之前,有必要先熟悉两个特殊的目录标识: .(单点)表示当前目录。 ..(双点)表示上一级目录,也就是当前目录的母目录。 这里有一张图形化的表示。 利用 cd 命令变更目录 在你已对路径概念有所了解之后,我们来了解如何切换目录。 ?️ 如果你仅键入 cd并按回车键,无论当前位置在哪,系统都会将你带回主目录。试一试吧。 敲入以下命令,你就能看到主目录里的所有文件夹: ls 这是我看到的情况: abhishek@ituxedo:~$ ls Desktop Downloads Pictures Templates VirtualBoxVMs Documents Music Public Videos 你的情况可能与此类似,但未必完全一样。 假如你希望跳转到 Documents文件夹。由于它就在当前目录下,这里使用相对路径会比较方便: cd Documents ? 注意,大部分 Linux 发行版预设的终端模拟器会在提示符本身显示出当前所在的位置。因此你不必频繁使用 pwd指令来确认自己的位置。 假如你希望切换到位于主目录里的 Templates文件夹。 你可以使用相对路径 ../Templates(..会让你返回到上层目录,即/home/username,然后你就可以进入Templates文件夹了)。 但这次我们尝试使用绝对路径。请把下面的 abhishek替换成你的用户名。 cd /home/abhishek/Templates 此刻你已经在 Templates文件夹里了。如何前往Downloads文件夹呢?这次我们再使用相对路径: cd ../Downloads 下面的图片会回顾一下你刚才学到的所有或有关目录切换的范例。 ? 别忘了你还可以使用终端的 tab键自动补全功能。只需要键入命令或者文件夹名称的前几个字母,然后敲击tab键,系统就会尝试自动地补全命令或文件夹名称,或者给你显示出所有可能的选项。 故障解决 在 Linux 终端操作切换目录的过程中,你可能会遇到一些常见的错误。 文件或目录不存在 如果在你尝试切换目录时,出现类似下面的错误信息: bash: cd: directory_name: No such file or directory 那么你可能在路径或目录名称上犯了误解。这里有几点你需要注意的: 请确定你输入的目录名中没有拼写错误。 Linux 系统对大小写敏感,因此,Downloads和downloads会被识别为不同的目录。 你可能未正确指定路径。可能你所在的位置与你预期的不同?或者你遗漏了绝对路径中的开头的 /字符? 非目录错误 如果你看到像下面这样的错误提示: bash: cd: filename: Not a directory 这表示你尝试使用 cd命令对一个文件进行操作,而不是一个目录(文件夹)。很明显,你不能像进入文件夹那样“进入”一个文件,因此会出现这样的错误。 参数过多 这是 Linux 新手常犯的另一个错误: bash: cd: too many arguments cd命令只接受一个参数。也就是说,你只能对命令指定一个目录。 如果你指定了超过一个的参数,或者在路径中误加了空格,你就会看到这个错误。 ?? 如果你输入 cd -,它将会把你带到前一个目录。当你在两个相隔较远的地方切换时非常方便,可以避免再次输入长路径。 特殊目录符号 在结束这个教程之前,我想快速告诉你关于特殊符号 ~。在 Linux 中,~是用户主目录的捷径。 如果用户 abhi运行它,~就会代表/home/abhi,如果用户prakash运行,~就意味着/home/prakash。 总结一下你在这个基础教程系列中学到的所有特殊目录标识: 符号 描述 . 当前目录 .. 上级目录 ~ 主目录 - 前一个目录 测试你的知识 下面是一些简单的练习,用来测试你刚刚学到的关于路径和 cd命令的知识。 移动到你的主目录,并使用这个命令创建一个嵌套的目录结构: mkdir -p sample/dir1/dir2/dir3 然后,一步步来试试这个: 使用绝对路径或相对路径进入 dir3 使用相对路径移动到 dir1 使用你能想象到的最短路径进入 dir2 使用绝对路径切换到 sample目录 返回你的主目录 ? 想知道你是否全都做对了吗?欢迎分享你的答案。 ...

    2023-10-22 154
  • Linux安装redis详细教程

    1、yum install安装redis源码安装所需工具 yum -y install gcc automake autoconf libtool make vim wget 2、下载并解压redis安装包 # 目录切换 cd /usr/local # 下载redis源码 wget http://download.redis.io/releases/redis-7.0.10.tar.gz # 解压redis源码 tar -zvxf redis-7.0.10.tar.gz 3、进入解压包并执行编译 # 进入解压包 cd redis-7.0.10 # 执行编译 make 4、执行安装并指定安装目录 make install PREFIX=/usr/local/redis 5、启动服务 前台启动 /usr/local/redis/bin/redis-server 后台启动 # 把redis解压包配置文件拷贝一份到安装目录下 cp /usr/local/redis-7.0.10/redis.conf /usr/local/redis/bin/ 修改 redis.conf 文件,把 daemonize no 改为 daemonize yes /usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf 6、设置开机启动 添加开机启动服务 vim /etc/systemd/system/redis.service 复制粘贴以下内容: [Unit] Description=redis-server After=network.target [Service] Type=forking ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target 设置开机启动 # 重新加载配置 systemctl daemon-reload # 重启redis服务 systemctl restart redis.service # 设置开机就启动redis服务 systemctl enable redis.service # redis-cli客户端设置软连接 ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis 7、redis服务操作命令 # 启动redis服务 systemctl start redis.service # 停止redis服务 systemctl stop redis.service # 重新启动服务 systemctl restart redis.service # 查看服务当前状态 systemctl status redis.service # 设置开机自启动 systemctl enable redis.service # 停止开机自启动 systemctl disable redis.service </div> ...

    2023-10-14 152
  • Linux Mint 21.2 Edge:为更新的硬件提供支持

    Linux Mint 背后的人们一直在努力推出主要版本,例如 Linux Mint 21.2和LMDE 6。 一系列的发布似乎并没有停止,因为我们现在以 “Linux Mint 21.2 Edge” 的形式得到了另一个版本。 请允许我告诉你更多相关信息。 Linux Mint 21.2 Edge:可以期待什么? Linux Mint 21.2 Edge 采用 Linux 内核 6.2,为那些希望运行较新硬件而不喜欢Linux 内核 5.15LTS(常规 Linux Mint 21.2 版本的特性)的用户量身定制。 现在对于 Intel Arc 显卡用户来说绝对是一个不错的 Linux 发行版选择! 如果你对 “Edge” ISO 感到好奇,请参阅文档: 除了常规 ISO 镜像之外,Linux Mint 有时还会为其最新版本提供 “Edge” ISO 镜像。该镜像附带更新的组件,能够支持最现代的硬件芯片组和设备。 此外,此 ISO 还恢复了对安全启动的支持。对于那些想要它的人来说,这应该是一个有用的附加组件。 不要忘记,Linux Mint 21.2 Edge 仅提供 “Cinnamon” 风格桌面,没有任何 XFCE 或 MATE 风格。 不过,除了更新的硬件支持之外,与常规版本相比,使用 Edge 版本时你不会发现任何差异。 ...

    2023-10-12 159
  • 如何在Linux的VirtualBox中从USB驱动器启动

    你有一个 立付Live Linux USB 吗?在当前系统上测试它的常用方法是重新启动,并在系统重新启动时选择从立付 USB 启动。 但这很烦人,因为你需要停止计算机上的工作并重新启动它。 一种干扰较小的方法是使用虚拟机。 是的,你可以使用 VirtualBox 从虚拟机中的 USB 启动。这样,你不必为了尝试而在 VM 中安装发行版,而是改用立付会话。 在本教程中,我将展示在 Linux 系统使用 VirtualBox 从 USB 驱动器启动的步骤。这需要花费一些时间和精力,但可以让你免于重启系统。 在 Linux 的 VirtualBox 中从 USB 驱动器启动 由于这是针对高级用户的教程,因此我省略了你事先需要的几个步骤: 在 Linux 系统上 安装 VirtualBox 创建立付 Linux USB,最好 使用 Ventoy 本指南分为三个部分: 创建虚拟机磁盘文件 在 VM 中使用 USB 启动 删除虚拟机磁盘(可选) 那么让我们从第一个开始。 步骤 1:创建虚拟机磁盘文件(VMDK) 首先,你需要识别 USB 驱动器的磁盘名称,为此,你需要 列出系统的驱动器。 为此,我将使用 lsblk 命令: lsblk ? 确保使用不带任何数字的磁盘名称。就我而言,Ventoy 以 sdb1 命名,但我仍然只能使用 sdb。 从上图中,你可以看到,Ventoy 列出了 sdb11,但你必须使用不带任何数字的名称。这意味着我必须只使用sdb,否则,它会抛出错误。 找到驱动器名称后,使用以下命令中的 VBoxManage命令来创建: sudo VBoxManage createmedium disk --filename=/path/to/rawdisk.vmdk --variant=RawDisk --format=VMDK --property RawDrive=/dev/sda 在上面的命令中,将 /path/to/rawdisk.vmdk替换为要保存文件的路径 ,将/dev/sda替换为目标驱动器。 就我而言,我想在我的主目录中创建一个名为 IF.vmdk的文件,并且我的目标驱动器是/dev/sdb,然后,我将使用以下命令: ? 你需要提供绝对路径来创建 vmdk 文件! sudo VBoxManage createmedium disk --filename=/home/sagar/IF.vmdk --variant=RawDisk --format=VMDK --property RawDrive=/dev/sdb 最后,使用 chmod命令更改权限: sudo chmod 777 Filename.vmdk 步骤 2:在 Linux 的 VirtualBox 中从 USB 启动 首先,从系统菜单中打开 VirtualBox,然后单击 “新建New” 按钮。 在那里,为你的虚拟机命名并选择操作系统类型及其版本: 现在,单击 “下一步Next” 按钮,它会要求你为虚拟机分配硬件资源: 完成硬件资源分配后,单击“下一步”按钮。 在这里,你将找到创建或添加虚拟磁盘的选项。现在,请执行 3 个简单步骤: 选择第二个选项 “使用现有虚拟硬盘文件Use an Existing Virtual Hard Disk File”。 点击“文件”图标。 点击“添加Add”按钮并选择你最近创建的以 .vmdk结尾的文件。 选择文件后,它将显示文件的名称,选择它并点击 “选择Choose” 选项: 它将向你显示已选择从中启动的文件。单击下一步,它将显示你所做的选择的摘要。 点击 “完成Finish” 按钮: 就是这样! 虚拟机已创建。 要启动虚拟机,首先选择虚拟机并单击启动按钮: 由于我的 USB 有 Ventoy,你可以看到,此处列出了多个发行版: 很酷。是么? 步骤 3:使用删除虚拟机及 vmdk 文件(可选) 当我在删除虚拟机后尝试删除 vmdk 文件时,当然,它被删除了,但每当我尝试创建具有相同名称的新文件时,它都会给我一个错误,说该文件已经存在! 因此,在这里,我将引导你了解如何删除虚拟机及 vmdk 文件。 首先,关闭虚拟机并将其删除。 现在,如果你尝试 使用 rm 命令并提升权限删除 vmdk 文件,你可以删除它(但这就是幻觉的开始)。 例如,在这里,我删除了 IF.vmdk文件: sudo rm IF.vmdk 现在,如果我尝试创建一个具有相同名称的新 vmdk 文件,则会出现错误,指出该文件已存在: 要删除 vmdk 文件,首先,你必须使用以下命令取消注册该文件: sudo VBoxManage closemedium disk /path/to/MyDrive.vmdk 完成后,你可以使用 rm命令删除该文件,它将轻松删除: sudo rm Filename.vmdk 然后,如果你尝试创建具有相同文件名的 vmdk 文件,你可以这样做: 这就行了! 更多虚拟机技巧 如果你正在寻找最快的 VM,可以使用 Qemu + KVM 的组合。 ...

    2023-09-23 193
  • 在Linux中如何将cURL输出保存到文件?

    当你需要将cURL的输出保存到文件时,Linux提供了几种不同的方法。 cURL是一个功能强大的命令行工具,用于在网络上传输数据,通常用于HTTP请求。 在本文中,我们将探讨如何使用cURL将其输出保存到文件,以及一些附加的选项和技巧。 安装cURL 在介绍如何使用cURL将输出保存到文件之前,确保已安装cURL是非常关键的。下面是如何安装cURL的指南,具体取决于您所使用的Linux发行版: Ubuntu/Debian sudo apt install curl Fedora/RHEL sudo dnf install curl Arch Linux sudo pacman -S curl 使用重定向操作符 最简单的方法是使用重定向操作符>或>>来将cURL的输出保存到文件中。>将覆盖文件内容,而>>将追加到文件末尾。 curl -o output.txt URL 这将下载URL的内容并将其保存到名为output.txt的文件中。如果output.txt不存在,它将被创建;如果已经存在,它将被覆盖。 curl -o output.txt URL 这将下载URL的内容并将其追加到名为output.txt的文件末尾。 例如,我们将访问百度的域名: curl -o output.txt https://www.baidu.com 使用-c选项保存Cookie 有时,你可能需要保存cURL请求的Cookie信息。你可以使用-c选项将Cookie保存到一个文件中,然后使用-b选项加载Cookie信息。 curl -c cookies.txt URL 这将保存从URL获取的Cookie信息到名为cookies.txt的文件中。然后,你可以使用-b选项来加载Cookie信息: curl -b cookies.txt URL 例如,我们将访问百度的域名: curl -b cookies.txt https://www.baidu.com 保存HTTP头信息 如果你想保存HTTP响应头信息,可以使用-i选项将它们保存到文件中: curl -i -o output.txt URL 这将把HTTP响应头信息保存到output.txt中。 例如,我们将访问百度的域名: curl -i -o output.txt https://www.baidu.com 同时保存输出和错误信息 有时,你可能希望将cURL的输出和错误信息保存到不同的文件中。你可以使用2>操作符来将错误信息重定向到一个文件: curl -o output.txt URL 2> error.txt 这将下载URL的内容并将正常输出保存到output.txt,将错误信息保存到error.txt。 保存到特定目录 如果你想将文件保存到特定目录,可以在文件名中包含目录路径: curl -o /path/to/directory/output.txt URL 这将下载URL的内容并将其保存到/path/to/directory/目录下的output.txt文件中。 例如,我们将访问百度的域名,并将结果保存至/tmp/test/baidu/output.txt: curl -o /tmp/test/baidu/output.txt https://www.baidu.com 注意:在保存至特定目录,一定要先保证该目录存在! 使用-w选项自定义输出格式 使用-w选项,你可以自定义cURL的输出格式。例如,你可以只保存响应的HTTP状态码: curl -o output.txt -w "%{http_code}" URL 这将下载URL的内容并将HTTP状态码保存到output.txt中。 例如,我们将访问百度的域名: curl -o output.txt -w "%{http_code}" https://www.baidu.com 使用 cURL 命令保存多个文件 -o选项可以用于为每个链接指定一个输出文件名,这对于批量下载文件非常方便。 以下是示例用法: curl https://link-1.com https://link-2.com https://link-3.com -o File1 -o File2 -o File3 在这个示例中,cURL会从三个不同的链接下载文件,并将它们分别保存为File1、File2和File3。 这对于下载多个文件非常有用,特别是在需要自动化下载任务时。 例如: curl https://www.baidu.com https://www.baidu.com https://www.baidu.com -o File1 -o File2 -o File3 总结 这些是在Linux中使用cURL将输出保存到文件的一些常见方法和技巧。 你可以根据你的需求选择最合适的方法,希望这篇文章对你有所帮助! 如果你有任何问题或需要更多信息,请随时提问。 ...

    2023-09-02 294
  • 上海人如何看待上海大学?

    上海人看上海大学评价也是很高的。上海大学是上海市属、国家“211工程”重点建设的综合性大学,是教育部与上海市人民政府共建高校,上海市首批高水平地方高校建设试点,国家一流学科建设高校。学校现有研究生16967人,全日制本科生20191人,预科生63人,成人教育学生18188人。上海大学是上海市重要的人才培养基地。学校是拥有国家试点学院的17所高校之一,是教育部实施“卓越工程师教育培养计划”的首批高校之一。学校也是中宣部、教育部实施“卓越新闻传播人才教育培养计划”的高校之一。钱伟长学院入选教育部首批“三全育人”综合改革试点院(系)单位。学校建立了以学分制、选课制、短学期制为核心的特色鲜明的人才培养模式。以上内容参考?上海大学——学校简介每年报考时,高三同学都喜欢追着老师问“上海大学属于什么档次的大学?上海大学厉害吗?上海大学在全国认可度高吗”,本文圆梦志愿将为大家展示上海大学的求学价值,希望能帮助大家更好的了解这所位于上海市的好大学。上海大学属于什么档次的大学?一、从上海大学受教育部认可度来看:上海大学是一所211高校、一流学科建设高校、省重点高校、卓越工程师人才培养高校,上海大学的多个专业入选双万计划。二、从上海大学近三年在上海市本科批的录取分数线来看:高三考生至少要考进上海市内前8892名,才有较大的可能被上海大学给录取。三、从上海大学的全国排名来看:上海大学在2020年ESI国际排名中,位于国际729名,内地第43名;上海大学在2021QS世界排名中,位于国际387名,内地第16名;上海大学在2021年泰晤士世界排名中,位于国际801-1000名,内地第66名;上海大学在2021U.S.News世界排名中,位于国际511名,内地第42名。综上可见,上海大学在国际大学中的排名位于387~1000名之间,在中国内地的大学排名中位于16~66名之间。四、从上海大学在教育部第四轮学科评估中取得的成绩来看:上海大学有 2个A-学科 : 社会学、美术学上海大学有 7个B+学科: 马克思主义理论、新闻传播学、数学、力学、机械工程、材料科学与工程、戏剧与影视学上海大学有 11个B学科: 应用经济学、中国语言文学、物理学、冶金工程、信息与通信工程、控制科学与工程、计算机科学与技术、环境科学与工程、管理科学与工程、图书情报与档案管理、设计学上海大学有 5个B-学科: 外国语言文学、世界史、土木工程、软件工程、工商管理上海大学有 6个C+学科: 法学、中国史、化学、电气工程、电子科学与技术、化学工程与技术上海大学有 4个C学科: 哲学、生物学、统计学、仪器科学与技术上海大学有 1个C-学科: 理论经济学综合上文,我们从上海大学的受教育部认可度、上海大学在全国的排名、上海大学的录取分数线、上海大学的学科成绩等方方面面中可以窥见, 上海大学是一所档次极高的办学水平高超的综合类公办大学,上海大学在全国范围内的认可度与影响力都极高,非常值得高三同学报考!...

    2023-08-28 166
  • Bash脚本编程入门

    Shell 是 Linux 的核心部分,它允许你使用各种诸如 cd、ls、cat等的命令与 Linux 内核进行交互。 Bash 是 Linux 上众多可用的 Shell 中的一个。这些 Shell 主要的语法基本相同,但并非完全一样。Bash 是目前最受欢迎的 Shell,并在大多数 Linux 发行版中被设为默认 Shell。 当你打开一个终端或 SSH 会话时,即使你无法真切地看到它,你其实已经在运行着一个 Shell。 当你输入一个命令,它会被 Shell 解释。如果命令和语法是正确的,它就会被执行,否则你会看到一个错误。 当你可以直接运行 Linux 命令时,为什么还需要 Bash 脚本? 你可以直接在终端输入命令,它们就会被执行。 $ echo "hello world" hello world 并且,同样的操作也可以在脚本中进行: $ cat >> script.sh #!/bin/bash echo "hello world" $ bash script.sh hello world 那么,为什么我们需要 Shell 脚本呢?因为你不必一遍又一遍地输入同一个命令,你只需运行 Shell 脚本即可。 此外,如果你的脚本中有复杂的逻辑,把所有的命令都输入到终端中可能并不是一个好主意。 例如,如果你输入下面的命令,它会奏效,但这并不容易理解。不断地输入相同的命令(甚至要在 Bash 历史记录中搜索)会造成困扰。 if [ $(whoami) = 'root' ]; then echo "root"; else echo "not root"; fi 相反,你可以把命令放进 shell 脚本中,这样就更容易理解并且可以轻松运行了: #!/bin/bash if [ $(whoami) = 'root' ]; then echo "You are root" else echo "You are not root" fi 这还是比较简单的情况。尝试想象一下,一个复杂的脚本可能有五十行或一百行! 你将会学到什么? 在这个 Bash 脚本教程中,有九个部分。你将会学到: 创建并运行你的第一个 Bash Shell 脚本 使用变量 在你的 Bash 脚本中传递参数和接受用户输入 进行数学计算 操作字符串 使用条件语句,例如 if-else 使用 for、while和until循环 创建函数 ? 所有的部分都会给你一个简单的例子。如果你愿意,你可以通过访问每个部分的详细章节来更深入地学习。这些章节也都包含了实践练习。 这个教程的目标读者是谁? 这个教程适合任何想要开始学习 Bash Shell 脚本的人。 如果你是一名学生,而你的课程里包括了 Shell 脚本,那么这个系列就是为你准备的。 如果你是一个常规的桌面 Linux 用户,这个系列将会帮助你理解在探索各种软件和修复问题时遇到的大多数 Shell 脚本。你也可以使用它来自动化一些常见的、重复的任务。 在这个 Bash 脚本教程结束时,你应该可以编写简单的 Bash 脚本。 ? 希望你已经拥有 Linux 命令行和编程语言的基础知识。 如果你对 Linux 命令行完全不熟悉,我建议你先掌握基础知识。 19 个你应该知道的基础而重要的 Linux 终端技巧 你应该了解如何在命令行中进入特定的位置。为了做到这一点,你需要理解 Linux 文件系统中的路径是如何工作的。 Linux 中的绝对路径和相对路径有什么不同 接下来,这个教程系列会给你介绍目录导航和文件操作的基本知识。 终端基础:Linux 终端入门 1、编写你的第一个 Bash Shell 脚本 创建一个名为 hello.sh的新文件: nano hello.sh 这将在终端中打开 nano 编辑器。在其中输入以下几行代码: #!/bin/bash echo "Hello World" 通过按 Ctrl+X键可以保存并退出 nano 编辑器。 现在,你可以以以下方式运行 Bash Shell 脚本: bash hello.sh 你应该可以看到以下的输出: Hello World 另一种方式是首先赋予脚本执行权限: chmod u+x hello.sh 然后这样运行它: ./hello.sh ? 你也可以使用基于图形用户界面的文本编辑器来编写脚本。这可能更适合编写较长的脚本。然而,你需要切换到保存脚本的目录中才能运行它。 恭喜!你刚刚运行了你的第一个 Bash 脚本。 Bash 基础知识系列 #1:创建并运行你的第一个 Bash Shell 脚本 2、在 Bash 脚本中使用变量 变量的声明方式如下: var=some_value 然后可以像这样访问变量: $var ? 在声明变量时,等号(=)前后不能有空格。 我们通过添加一个变量来修改前面的脚本。 #!/bin/bash message="Hello World" echo $message 如果运行这个脚本,输出仍然会保持不变。 Hello World Bash 基础知识系列 #2:在 Bash 中使用变量 3、向 Bash 脚本传递参数 你可以在运行 Bash 脚本时以以下方式传递参数: ./my_script.sh arg1 arg2 在脚本中,你可以使用 $1来代表第 1 个参数,用$2来代表第 2 个参数,以此类推。$0是一个特殊变量,它代表正在运行的脚本的名字。 现在,创建一个新的 shell 脚本,命名为 arguments.sh,并向其中添加以下几行代码: #!/bin/bash echo "Script name is: $0" echo "First argument is: $1" echo "Second argument is: $2" 使其可执行并像这样运行它: $ ./argument.sh abhishek prakash Script name is: ./argument.sh First argument is: abhishek Second argument is: prakash 让我们快速看一下特殊变量: 特殊变量 描述 $0 脚本名称 $1、$2…$9 脚本参数 ${n} 10 到 255 的脚本参数 $# 参数数量 $@ 所有参数一起 $$ 当前 shell 的进程 id $! 最后执行命令的进程 id $? 最后执行命令的退出状态 你也可以通过接受键盘输入使你的 Bash 脚本变得交互式。 为此,你必须使用 read命令。你还可以使用read -p命令提示用户进行键盘输入,而不需要echo命令。 #!/bin/bash echo "What is your name, stranger?" read name read -p "What's your full name, $name? " full_name echo "Welcome, $full_name" 现在,如果你运行这个脚本,当系统提示你输入“参数”时,你必须输入。 $ ./argument.sh What is your name, stranger? abhishek What's your full name, abhishek? abhishek prakash Welcome, abhishek prakash Bash 基础知识系列 #3:传递参数和接受用户输入 4、执行算术运算 在 Bash Shell 中执行算术运算的语法是这样的: $((arithmetic_operation)) 下面是你可以在 Bash 中执行的算术运算的列表: 操作符 描述 + 加法 - 减法 * 乘法 / 整数除法(没有小数) % 模运算(只余) ** 指数(a 的 b 次方) 以下是在 Bash 脚本中进行加法和减法的示例: #!/bin/bash read -p "Enter first number: " num1 read -p "Enter second number: " num2 sum=$(($num1+$num2)) sub=$(($num1-$num2)) echo "The summation of $num1 and $num2 is $sum" echo "The substraction of $num2 from $num1 is $sub" 你可以执行 Shell 脚本,使用你选择的任意数字作为参数。 如果你尝试除法,会出现一个大问题。Bash 只使用整数。默认情况下,它没有小数的概念。因此,你会得到 10/3 的结果为3,而不是 3.333。 对于浮点数运算,你需要这样使用 bc命令: #!/bin/bash num1=50 num2=6 result=$(echo "$num1/$num2" | bc -l) echo "The result is $result" 这个时候,你将看到准确的结果。 The result is 8.33333333333333333333 Bash 基础知识系列 #4:算术运算 5、在 Bash 脚本中使用数组 你可以使用 Bash 中的数组来存储同一类别的值,而不是使用多个变量。 你可以像这样声明一个数组: distros=(Ubuntu Fedora SUSE "Arch Linux" Nix) 要访问一个元素,使用: ${array_name[N]} 像大多数其他的编程语言一样,数组的索引从 0 开始。 你可以像这样显示数组的所有元素: ${array[*]} 这样获取数组长度: ${#array_name[@]} Bash 基础知识系列 #5:在 Bash 中使用数组 6、Bash 中的基础字符串操作 Bash 能够执行许多字符串操作。 你可以使用这种方式获取字符串长度: ${#string} 连接两个字符串: str3=$str1$str2 提供子字符串的起始位置和长度来提取子字符串: ${string:$pos:$len} 这里有一个例子: 你也可以替换给定字符串的一部分: ${string/substr1/substr2} 并且你也可以从给定字符串中删除一个子字符串: ${string/substring} Bash 基础知识系列 #6:处理字符串操作 7、在 Bash 中使用条件语句 你可以通过使用 if或if-else语句为你的 Bash 脚本添加条件逻辑。这些语句以fi结束。 单个 if语句的语法是: if [ condition ]; then your code fi 注意使用 [ ... ];和then。 if-else语句的语法是: if [ expression ]; then ## execute this block if condition is true else go to next elif [ expression ]; then ## execute this block if condition is true else go to next else ## if none of the above conditions are true, execute this block fi 这里有一个使用 if-else语句的 Bash 脚本示例: #!/bin/bash read -p "Enter the number: " num mod=$(($num%2)) if [ $mod -eq 0 ]; then echo "Number $num is even" else echo "Number $num is odd" fi 运行它,你应该能看到这样的结果: -eq被称为测试条件或条件操作符。有许多这样的操作符可以给你不同类型的比较: 这些是你可以用来进行数值比较的测试条件操作符: 条件 当…时,等同于 true $a -lt $b $a ($a是小于$b) $a -gt $b $a > $b($a是大于$b) $a -le $b $a ($a是小于或等于$b) $a -ge $b $a >= $b($a是大于或等于$b) $a -eq $b $a == $b($a等于$b) $a -ne $b $a != $b($a不等于$b) 如果你在进行字符串比较,你可以使用以下这些测试条件: 条件 当…时,等同于 true "$a" = "$b" $a等同于$b "$a" == "$b" $a等同于$b "$a" != "$b" $a不同于$b -z "$a" $a是空的 还有些条件用于检查文件类型: 条件 当…时,等同于 true -f $a $a是一个文件 -d $a $a是一个目录 -L $a $a是一个链接 ? 要特别注意空格。开括号和闭括号、条件之间必须有空格。同样地,条件操作符(-le、==等)之前和之后必须有空格。 Bash 基础知识系列 #7:If-Else 语句 8、使用 Bash 脚本中的循环 Bash 支持三种类型的循环:for、while和until。 这是 for循环的一个例子: #!/bin/bash for num in {1..10}; do echo $num done 运行它,你将看到以下输出: 1 2 3 4 5 6 7 8 9 10 如果你选择使用上面的示例,可以使用 while循环这样重写: #!/bin/bash num=1 while [ $num -le 10 ]; do echo $num num=$(($num+1)) done 同样,可以使用 until循环来重写: #!/bin/bash num=1 until [ $num -gt 10 ]; do echo $num num=$(($num+1)) done ? while循环和until循环非常相似。区别在于:while循环在条件为真时运行,而until循环在条件为假时运行。 Bash 基础知识系列 #8:For、While 和 Until 循环 9、在 Bash 脚本中使用函数 Bash Shell 支持使用函数,这样你不必反复编写相同的代码片段。 这是声明 Bash 函数的通用语法: function_name { commands } 这是一个使用带参数的函数的 Bash 脚本样例: #!/bin/bash sum { sum=$(($1+$2)) echo "The sum of $1 and $2 is: $sum" } echo "Let's use the sum function" sum 1 5 如果你运行该脚本,你将看到以下输出: Let's use the sum function The sum of 1 and 5 is: 6 Bash 基础知识系列 #9:Bash 中的函数 接下来呢? 这只是一个初窥。这个 Bash 脚本教程只是一篇引言。Bash 脚本的内容还有很多,你可以慢慢地、逐渐地探索。 GNU Bash 参考是一份优秀的在线资源,可以解答你的 Bash 疑问。 GNU Bash 参考 除此之外,你可以下载这本免费书籍来学习更多在此未涵盖的 Bash 内容: 下载 Bash 初学者指南 一旦你具有足够的 Bash 基础知识,你可以通过这本免费书籍来学习高级 Bash 脚本: 下载高级 Bash 编程指南 这两本书至少都有十年的历史,但你仍然可以使用它们来学习 Bash。 ...

    2023-08-23 180
  • Linux系统使用cp命令用法教程详解

    熟悉在 Linux 命令行中复制文件和目录的 cp 命令。 cp 命令是 Linux 中一个重要的命令,你可能经常会用到它。 正如名称所示,cp 代表 复制copy,它被用于 在 Linux 命令行中复制文件和目录。 这是一个相对简单的命令,只有几个选项,但你仍有必要深入了解它。 在展示 cp 命令的实际示例之前,我更建议你先熟悉绝对路径和相对路径的概念,将文件从一个位置复制到另一个位置时,你需要用到它们。 Linux 中的绝对路径和相对路径的不同之处 复制单个文件 cp 命令最简单和最常见的用途是复制文件,只需指定源文件和要“粘贴”文件的目标目录即可。 cp 源文件 目标目录 在复制文件的同时重命名它 你将文件复制到另一个位置时可以同时进行 重命名。这有点类似于文本编辑器中的“另存为”选项。 为此,你必须在路径中给出新的文件名。 cp 源文件 目标目录/新文件名 复制多个文件 你还可以将多个文件复制到另一个位置。 cp 文件1 文件2 文件3 目标目录 在这种情况下,你无法重命名文件。 你还可以使用通配符扩展,将特定后缀的文件复制到另一个位置: cp *.txt 目标目录 复制文件时避免覆盖现有文件 如果你将 file1.txt 复制到一个已经存在名为 file1.txt 文件的目录中,它会将原有的文件覆盖掉。 如果你不希望这样,cp 命令还提供了几个选项来处理文件覆盖的情况。 首先是使用选项 -i 的交互模式。在交互模式下,它会询问是否确认或放弃覆盖目标文件。 cp -i 源文件 目标目录 cp:覆盖 '目标目录/源文件' ? 按 Y 覆盖文件,按 N 跳过复制该文件。 选项 -n 代表完全取消覆盖。使用此选项时目标文件不会被覆盖。 cp -n 源文件 目标目录 还有一个选项 -b,在目标目录的文件将被覆盖时自动为其创建备份。我猜这里 b 代表 备份backup。 cp -b 源文件 目标目录 最后,还有一个“更新update”选项 -u,如果目标文件比源文件旧,或者目标文件不存在,就会被覆盖掉。 cp -u 源文件 目标目录 复制目录(文件夹) cp 命令也用来在 Linux 命令行中复制目录。 在复制目录时,你需要使用递归选项 -r。 cp -r 源目录 目标目录 你还可以将多个目录复制到另一个位置: cp -r 目录1 目录2 目录3 目标目录 在复制时保留属性 当你将文件复制到另一个位置时,它的 时间戳、文件权限 甚至所有权都会发生变化。 这是正常的行为。但在某些情况下,你可能希望在复制文件时保留其原始属性。 要保留属性,请使用选项 -p: cp -p 源文件 目标目录 ? 还有一个 -a 选项用于存档模式。它将连 ACL 也保留下来。 ...

    2023-08-12 154
  • 如何在Linux Mint中安装KDE Plasma桌面环境

    Linux Mint是最流行的和用户友好的 Linux 发行版,以其易用性和稳定性而闻名。 虽然 Linux Mint 中默认的 Cinnamon 桌面环境提供了友好愉快的体验,但也有一些用户可能想要探索其它的桌面环境,以进一步定制自己的 Linux 体验。 KDE Plasma 是另一个著名的桌面环境,提供了一种现代化的特色功能丰富的界面。 然而,Linux Mint 从未正式提供过 KDE Plasma 。 但是这里有一种在 Linux Mint 基础之上安装 KDE Plasma 桌面环境的方法。让我们一起尝试一下。 注意: 不要在你的有重要数据的稳定系统中尝试这些步骤。有风险。 在 Linux Mint 中安装 KDE Plasma 桌面环境 在 Linux Mint 发行版中,有三种主要组件来安装 KDE Plasma 桌面环境。它们是 kde-full、kde-standard和kde-plasma-desktop。 kde-full软件包集包含完整的 KDE Plasma 桌面环境。kde-standard 是最小的版本,kde-plasma-desktop 仅是桌面环境。 如果你将要尝试安装 KDE Plasma 桌面环境,我将建议安装 kde-full 软件包。 首先,打开一个终端,确保你的 Linux Mint 版本是已更新的。确保你执行了一次重新启动。 sudo apt update && sudo apt upgrade -y reboot 其次,在终端中,运行下面的命令来安装完整的 KDE 软件包。由于 Linux Mint 是基于 Ubuntu LTS 版本的,所以,你应该会获取基于当前正在持续更新的 Kubuntu LTS Plasma 版本的 KDE Plasma 版本。 sudo apt install kde-full 完整的下载体积有点大。针对当前的 Linux Mint 版本,它大约是 1.5 GB ,整个安装过程可能需要 20 分钟。 在安装过程中,你需要选择显示管理器,因为 KDE Plasma 使用 SDDM 。出现提示时,在下面的屏幕中选择 SDDM 。 在安装完成后,你需要在 SDDM 配置文件中修改其中一个备选项以阻止在登录过程中弹出一个空的联机键盘。为此,使用 nano 或任意一个编辑器来打开下面的文件。 sudo nano /etc/sddm.conf 接下来,添加下面的行。保存并退出。 [General]InputMethod= 最后,重新启动系统。 reboot 在登录期间,你应该会看到 SDDM 登录窗口,而不是 Linux Mint 的原来的登录提示窗口。在窗口顶部,选择 “Plasma” 会话并登录。 移除 Cinnamon 、Xfce 或 MATE 在 KDE Plasma 安装后,你可以移除 Cinnamon 、Xfce 或 MATE 桌面环境组件。如果你看到你的 KDE Plasma 工作的很好,那么移除是安全的。使用下面的命令来移除它们,最后使用命令 reboot来重新启动。 sudo apt purge cinnamon sudo apt purge mate-desktop sudo apt purge xfce4-session xfwm4 xfdesktop4 xfconf xfce4-utils exo-utils xfce4-panel xfce4-terminal thunar 几点注意事项 你可能会发现:相比于 Cinnamon 桌面环境,KDE Plasma 的运行性能有一点慢,这是很明显的。 Linux Mint 的壁纸、主题、图标和光标文件可能会保留在系统中。如果你想的话,你可以移除它们。 Mint Plymouth 动画应该也会保留,你可以手动移除它。 如果你在一个虚拟机中的系统中使用上述步骤,在从待机状态唤醒时,SDDM 可能会崩溃。 总结 热烈庆贺!你已经在你的 Linux Mint 系统上成功的安装 Plasma 桌面环境。通过执行这些步骤,你现在可以访问一个功能丰富的、视觉震撼的、可高度自定义的桌面环境。请谨慎使用! ...

    2023-08-10 202
  • “几乎不可能被检测到”的Linux恶意软件

    研究人员表示,一种“几乎不可能检测到”的新Linux恶意软件已经出现,它不仅可以收集凭据,并且可以通过寄生方式感染目标,为攻击者提供远程访问和rootkit功能。 安全研究员Joakim Kennedy在上周发布的黑莓威胁矢量博客上的一篇文章中写道,黑莓研究和情报团队的研究人员一直在跟踪恶意软件,他们是在2021年11月最早检测到该恶意软件。 研究人员恰当地将恶意软件称为“共生体”,该恶意软件显然是针对拉丁美洲金融部门的。在生物学中,这个词指的是与另一个生物体共生的生物体。 Kennedy解释说,选取这个名字其实是为了突出恶意软件操作方式,因为该软件的操作方式前所未见,与研究人员遇到的其他Linux恶意软件不同。 他写道:“Symbiote与众不同......在于,它需要感染其他正在运行的进程,才能对受感染的机器造成损害。”“它不是为感染机器而运行的独立可执行文件,而是一个共享对象(SO)库,使用LD_PRELOAD(T1574.006)加载到所有正在运行的进程中,并寄生虫式地感染机器。” Kennedy说,一旦Symbiote感染了所有运行进程,威胁行为者就可以从事各种邪恶的活动,包括远程使用rootkit功能、收集凭据的能力和远程访问能力。 他补充说,除了rootkit功能外,恶意软件还为威胁行为者提供了一个后门,以便使用硬编码密码作为机器上的任何用户登录,并以最高权限执行命令。 规避机动 研究人员表示,共生体的行为并不是唯一使其独一无二的东西。他说,它本身也具有非常强大的规避功能,以至于它“可能在雷达的搜索下飞行”,因此很难知道它是否被威胁行为者使用。 研究人员发现,它使用的一些规避策略是,根据设计,它由链接器通过LD_PRELOAD指令加载,该指令允许在任何其他共享对象之前加载。他们说,首先加载的特权允许它劫持从为应用程序加载的其他库文件中导入。Kennedy说,通过这种方式,它通过钩住libc和libpcap函数来隐藏其在机器上的存在。 他解释说:“一旦恶意软件感染了机器,它就会隐藏自己和威胁行为者使用的任何其他恶意软件,使感染很难检测到。”“在受感染的机器上进行实时取证可能不会出现任何问题,因为所有文件、进程和网络工件都被恶意软件隐藏了。” 事实上,研究人员表示,他们自己无法发现足够的证据来确定威胁行为者目前是否“在高度针对性或广泛的攻击中使用共生生物”。 研究人员指出,不寻常的DNS请求可能是检测系统上是否存在恶意软件的一种方式。然而,他们说,旨在检测和响应的典型防病毒或其他安全工具不会接收Symbiote,这使得使用依赖这些保护的Linux的组织面临风险。 目标 Kennedy指出,攻击者挥舞共生体的主要目标是“捕获证书,并为后门访问受感染的机器提供便利”。他详细概述了恶意软件如何实现这两项活动。 Kennedy说,对于凭据收集,Symbiote会钩住libc读取函数;如果ssh或scp进程调用该函数,它会捕获凭据,这些凭据首先使用嵌入式密钥使用RC4加密,然后写入文件。 他补充说,攻击者不仅在本地窃取凭据进行访问,还通过十六进制编码和将通过DNS地址记录请求发送的数据分块到他们控制的域名来过滤它们。 Kennedy说,为了远程访问受感染的机器,该恶意软件挂钩了一些Linux可插拔身份验证模块(PAM)功能,允许它使用任何使用PAM的服务对机器进行身份验证,包括安全外壳(SSH)等远程服务。 他解释说:“当服务试图使用PAM对用户进行身份验证时,恶意软件会根据硬编码密码检查提供的密码。”“如果提供的密码是匹配的,则钩住函数将返回成功响应。” Kennedy说,一旦威胁行为者完成身份验证,Symbiote允许攻击者通过扫描环境以查找变量HTTP_SETTHIS来获得根特权。 他解释说:“如果变量是用内容设置的,恶意软件会将有效用户和组ID更改为根用户,然后在通过系统命令执行内容之前清除变量。” ...

    2022-07-16 435
  • 网络工具中的瑞士军刀nc命令

    NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。 netcat(简写是 nc) 是 linux 上非常有用的网络工具,它能通过 TCP 和 UDP 在网络中读写数据。通过配合使用其他工具和重定向,可以在脚本中以多种方式使用它。netcat 所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。 安装nc yum install -y nc 用法简介 nc [-hlnruz][-g < 网关…>][-G < 指向器数目 >][-i < 延迟秒数 >][-o < 输出文件 >][-p < 通信端口 >][-s < 来源位址 >][-v…][-w < 超时秒数 >][主机名称][通信端口…] 参数说明 -g <网关> 设置路由器跃程通信网关,最丢哦可设置 8 个。 -G <指向器数目> 设置来源路由指向器,其数值为 4 的倍数。 -h 在线帮助。 -i <延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。 -l 使用监听模式,管控传入的资料。 -n 直接使用 IP 地址,而不通过域名服务器。 -o <输出文件> 指定文件名称,把往来传输的数据以 16 进制字码倾倒成该文件保存。 -p <通信端口> 设置本地主机使用的通信端口。 -r 乱数指定本地与远端主机的通信端口。 -s <来源位址> 设置本地主机送出数据包的 IP 地址。 -u 使用 UDP 传输协议。 -v 显示指令执行过程。 -w <超时秒数> 设置等待连线的时间。 -z 使用 0 输入 / 输出模式,只在扫描通信端口时使用。 端口扫描 nc -v -w 2 192.168.2.34 -z 21-24 //输出 nc: connect to 192.168.2.34 port 21 (tcp) failed: Connection refused Connection to 192.168.2.34 22 port [tcp/ssh] succeeded! nc: connect to 192.168.2.34 port 23 (tcp) failed: Connection refused nc: connect to 192.168.2.34 port 24 (tcp) failed: Connection refused 文件拷贝 在192.168.2.34上 nc -l 1234 > test.txt 在192.168.2.33上 nc 192.168.2.34 < test.txt 简单聊天工具 在192.168.2.34上 nc -l 1234 在192.168.2.33上 nc 192.168.2.34 1234 这样,双方就可以相互交流了。使用 ctrl+C(或 D)退出。 用 nc 命令操作 memcached 存储数据:printf “set key 0 10 6rnresultrn” |nc 192.168.2.34 11211 获取数据:printf “get keyrn” |nc 192.168.2.34 11211 删除数据:printf “delete keyrn” |nc 192.168.2.34 11211 查看状态:printf “statsrn” |nc 192.168.2.34 11211 模拟 top 命令查看状态:watch “echo stats” |nc 192.168.2.34 11211 清空缓存:printf “flush_allrn” |nc 192.168.2.34 11211 (小心操作,清空了缓存就没了) 连接 web 服务器 //建立从本地1234端口到host.example.com的80端口连接,5秒超时 nc -p 1234 -w 5 host.example.com 80 udp 连接服务器 nc -u host.example.com 53 连接服务器并执行 echo -n "GET / HTTP/1.0"r"n"r"n" | nc host.example.com 80 指定 TCP 协议版本 netcat 的 -4 和 -6 参数用来指定 IP 地址类型,分别是 IPv4 和 IPv6: //server nc -4 -l 2389 //client nc -4 localhost 2389 禁止从标准输入中读取数据 该功能使用 -d 参数,请看下面例子: //server side  $ nc -l 2389 //client side nc -d localhost 2389 强制 Netcat 服务器端保持启动状态 通常情况下如果连接到服务端的客户端连接断开, 服务端进程也会退出, 如果想让服务端保持存活可以加一个-k的参数 //server side $ nc -k -l 2389 //client side nc localhost 2389 nc聊天 server1: [root@server1 ~]# nc -l 1234  hello! hi! server2: [root@server2 ~]# nc  192.168.200.27 1234  hello! hi!...

    2022-02-03 554

联系我们

在线咨询:点击这里给我发消息

QQ交流群:KirinBlog

工作日:8:00-23:00,节假日休息

扫码关注