欢迎光临
我们一直在努力

Linux技巧

优麒麟(Ubuntu Kylin)16.10正式版发布

阅读(209)评论(0)

伴随着Canonical公司正式推出Ubuntu 16.10(Yakkety Yak),优麒麟(Ubuntu Kylin)推出了16.10正式版。此次发布的版本以增强本地化用户体验和稳定性为主,修复了之前版本积累的很多本地化/国际化问题,并完善了Ubuntu Kylin风格的系统UI。

优麒麟(Ubuntu Kylin)16.10正式版发布

官方更新日志

系统内核

● 16.10版本采用Linux 4.8内核,相对于16.04的4.4内核,主要的优化如下:

● AMDGPU驱动支持超频,改进PowerPlay;

● 初步支持 NVIDIA Pascal显卡;

● 支持Raspberry Pi 3的BCM2837 SoC;

● ACPI Low-Power Idle 支持;

● 支持微软Surface 3 触摸屏;

桌面环境

Unity是由Ubuntu主导设计和开发的一个具有高效空间利用率和新型交互体验的桌面环境,Ubuntu Kylin团队积极参与Unity 7和unity 8的讨论和开发工作。在16.10版本中,Ubuntu Kylin团队完善了并向社区贡献了桌面使用引导程序,并针对中文用户进行了些定制和UI美化。为帮助Windows用户更容易地切换到Untiy桌面环境:

完善桌面使用引导及图标细节

帮助初次使用优麒麟的用户了解桌面各组件功能

优麒麟(Ubuntu Kylin)16.10正式版发布

优麒麟(Ubuntu Kylin)16.10正式版发布

核心应用

在16.10中系统核心应用都已更新到最新版本,具体如下:

● Firefox 49

● Thunderbird 45.3

● LibreOffice 5.2

● Chromium 53

● Nautilus (aka ‘Files’) 3.20

● Rhythmbox 3.4.1

Nitrux 2.6.0摒弃了apt

阅读(238)评论(0)

Nitrux 2.6.0 带有 Flathub、默认支持的 Pipewire、最新内核和 KDE 框架。

Nitrux 2.6.0摒弃了apt

​​Nitrux Linux​​ 是基于 Debian 的,它带有一个名为 NX 桌面的修改版的 KDE Plasma 桌面。这个独特的 Linux 发行版带来了一套自己的建立在 Maui kit 和 Qt 之上的 Nitrux 应用程序。Nitrux 是无 systemd 的,使用 OpenRC 作为启动系统。所有这些独特的功能和令人惊叹的外观,使它成为当今最好的 Linux 发行版之一。

Nitrux 2.6.0 被提升为一个主要版本,因为它对 12 月发布的 2.5.1 版本进行了关键的更新。

Nitrux 2.6.0 的新内容

这个版本的一个主要重点是在 SDDM 显示管理器中引入 Plasma Wayland 会话。Wayland 还不是默认的,但可以作为选项选择。X11 仍然是默认的。我相信在下一个主要版本中 NItrux 团队可以默认启用 Wayland。

此外,现代声音管理器 Pipewire 现在是默认的,因为它已经在 Ubuntu 和 Fedora 中标准化了,而且感觉很稳定。由于有了 Pipewire,你的音频工作流程将变得更好。

Nitrux 2.6.0 还默认启用了最大的 Flatpak 应用程序仓库 - Flathub。这意味着你不需要再手动设置 Flatpak 和启用 Flathub。现在,Flatpak 应用程序的安装变得更加容易。

其他值得注意的变化包括:Nitrux 使根(/)分区成为不可变分区,以防止它被破坏,Samba 包现在是 Nitrux 默认安装的一部分,Calamares 安装程序有了一个定制的自动分区方案。

Nitrux 2.6.0摒弃了apt

从一开始,Nitrux 就倾向于为其整个桌面组件提供自包含的可执行文件。主要的选择是 AppImage 文件格式。在这个版本中,你会得到默认的 Flathub 环境,而流行的 apt 软件包管理器现在被放弃了。这可能会改变一些用户的工作流程,因为 ​​apt​​ 命令将无法工作;尽管它是基于 Debian 的。

因此,Nitrux 团队建议使用 Distrobox 容器来设置单独的环境,以便与 apt 一起使用。然而,对于普通用户来说,理解容器、不可变的根分区会有点困难。

Nitrux 2.6.0摒弃了apt

讽刺的是 ​​apt​​ 会在安装时使用,因为 Calamares 需要它。然而,在安装完成后,它会被删除。

现场 ISO 中包括 APT 和 dpkg,但这是因为 Calamares 需要它们来完成安装,并将从安装的系统中删除。

—— NITRUX TEAM

Nitrux 2.6.0 的核心是 liqurix 内核 6.1,以及游戏和多媒体功能。这个版本由 KDE Plasma 2.26.4、KDE Framework 5.101.0 和 Qt 5.15.7 LTS 驱动。

如果你想阅读更多信息,可以在 ​​这里​​ 找到详细的发布说明。

下载

你可以从以下页面下载这个版本。然而,没有可用的升级路径。因此,建议进行新的安装。

​​FOSS Torrents(Torrent)​​
​​Sourceforge(镜像)​​
​​OSDN(镜像)​​
参考自 ​发布公告​​

GNOME 44桌面环境预计将于2023年3月22日发布

阅读(385)评论(0)

当你可能正在享受你的GNOME 43桌面环境的时候,GNOME的开发者已经在努力工作,开发下一个主要的版本,GNOME 44,将于2023年3月下旬发布,有更多的新功能和改进。

GNOME 44桌面环境预计将于2023年3月22日发布

没错,GNOME 44将在几个月后推出,作为GNOME 40系列中这个流行的GNU/Linux发行版桌面环境的又一次重大更新。

发布时间表不久前已经公布,表明最终发布日期为2023年3月22日。

正如你所看到的,GNOME 44 的阿尔法预发布版本正在向我们走来,根据发布时间表,应该在本周末就会出来。然而,我预计它的到来会比这晚一些,很可能是在1月中旬,因为假日季节导致开发缓慢。

至于将在GNOME 44中实现的新功能,现在谈论它们还为时尚早。然而,看起来Epiphany(GNOME Web)网络浏览器终于得到了GTK 4的移植(从下面的截图可以看出),还有WebExtensions偏好和其他改进,以及许多调整和修复。

GNOME 44桌面环境预计将于2023年3月22日发布

老式的Gedit文本编辑器显然也在卷土重来,因为它最近正在被积极维护。事实上,Gedit 44.1已经可以在Flathub上下载,它的状态栏进行了改进,并且能够在文件浏览器插件中通过左右按键展开或折叠项目。

随着更多的功能在开发周期中被揭示,我将更新这篇文章或写新的功能。

同时,如果你正在使用GNOME 43或42桌面环境系列,请关注即将发布的GNOME 43.3和GNOME 42.8点版本,它们应该在本月发布。

Linux 中使用 “Converter” GUI 工具转换和操作图像

阅读(314)评论(0)

你可以随时在你的系统上 安装 ImageMagick 来转换图像,但并不是每个人都喜欢使用终端来转换和操作图像。
那么,如果你有一个 GUI 应用作为前端来帮助解决这个问题呢? Converter 就是这样的工具。它是 ImageMagick 的前端。所以你不需要使用命令来转换和操作图像。
请注意,大多数 Ubuntu 系统通常都预装了 ImageMagick。如果你的系统上还没有安装,你可以随时参考我们的 ​​安装指南​​。
Converter:ImageMagick 的图形前端

Linux 中使用 “Converter” GUI 工具转换和操作图像

转换图像不应该花费很多精力。这是一项简单的任务,而且应该如此。我不想键入命令来快速转换图像。因此,我更喜欢使我能够更快地做事的图形工具。

​​Converter​​ 是一个开源图形前端,可以让你做到这点。它是一个 GTK4 + libadwaita 应用。你可以将图像转换为各种文件格式,包括 png、webp、jpeg、heif、heic 和 bmp。可以肯定地说,你获得了对最流行的图像文件格式的支持。所以,它应该会派上用场。

Linux 中使用 “Converter” GUI 工具转换和操作图像

你可以设置一个位置来保存所有文件,转换后的图像将自动存储在该位置。

Linux 中使用 “Converter” GUI 工具转换和操作图像

你还可以调整图像的质量、大小和背景颜色。要访问这些选项,请在转换图像之前单击用户界面中的“更多选项More Options”。

Linux 中使用 “Converter” GUI 工具转换和操作图像

可以使用百分比、精确像素或比率自定义图像大小。对于精确操作,更改尺寸可能更有用。如果你希望图像缩放到一定程度,百分比或比例功能应该可以帮助你做到这一点。你还可以选择为图像添加滤镜。

总体而言,你可以获得使用 Converter 调整大小、转换和优化图像质量的基本功能。你还可以 ​​调整 Nautilus​​​ 以获得 ​​右键单击上下文菜单中的调整大小选项​​。但它不像这个工具那样通用。

在 Linux 上安装 Converter
Converter 在 ​​Flathub​​ 上以 Flatpak 的形式提供,可以安装在你选择的任何 Linux 发行版上。遗憾的是,你无法在 Linux 系统上安装任何二进制包。因此,你可能需要参考我们的 ​​Flatpak 指南​​ 来安装它。

flatpak install flathub io.gitlab.adhami3310.Converter

你可以在其 ​​GitLab 页面​​ 上探索更多相关信息。

批处理bat脚本删除指定天数日期之前的文件(六种方案)

阅读(224)评论(0)

本文介绍了批处理bat删除指定天数日期之前文件的方法,一段批处理脚本,结合日期参数,删除指定日期前的文件,关键时刻用得上,感兴趣的朋友参考下吧。

例1,删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件:BAT + REG + VBS

@echo off
::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例调用了临时VBS代码进行日期计算
::本例为兼容不同的日期格式,调用reg命令(XP系统自带)统一设置日期格式,
::处理完毕之后再把日期格式恢复成原来的状态。
rem 指定待删除文件的存放路径
set SrcDir=C:/Test/BatHome
rem 指定天数
set DaysAgo=1
for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate') do (
    set "RegDateOld=%%a"
)
set RegDateOld=%RegDateOld:~-8%
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
>"%temp%/DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%/DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') do (
    set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
for /r "%SrcDir%" %%a in (*.*) do (
    if "%%~ta" leq "%DstDate%" (
        if exist "%%a" (
            echo del /f /q "%%a"
        )
    )
)
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
pause

例2,删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件:BAT + REG + Ritchie Lawrence 日期函数

@echo off
::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例调用了 Ritchie Lawrence 的日期函数进行日期计算
::日期转换的核心算法
::本例为兼容不同的日期格式,调用reg命令(XP系统自带)统一设置日期格式,
::处理完毕之后再把日期格式恢复成原来的状态。
rem 指定待删除文件的存放路径
set SrcDir=C:/Test/BatHome
rem 指定天数
set DaysAgo=1
for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate') do (
    set "RegDateOld=%%a"
)
set RegDateOld=%RegDateOld:~-8%
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
set /a PassDays-=%DaysAgo%
call :DaysToDate %PassDays% DstYear DstMonth DstDay
set DstDate=%DstYear%-%DstMonth%-%DstDay%
for /r "%SrcDir%" %%a in (*.*) do (
    if "%%~ta" leq "%DstDate%" (
        if exist "%%a" (
            echo del /f /q "%%a"
        )
    )
)
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
pause
goto :eof
:DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF
:DaysToDate %days% yy mm dd
setlocal ENABLEEXTENSIONS
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF

例3,删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件:BAT + VBS

@echo off
::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例调用了临时VBS代码进行日期计算,并统一设置系统日期格式,处理完毕
::之后再把日期格式恢复成原来的状态。摆脱了对reg命令(XP系统自带)的依赖。
rem 指定待删除文件的存放路径
set SrcDir=C:/Test/BatHome
rem 指定天数
set DaysAgo=1
>"%temp%/BackupDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")
>>"%temp%/BackupDate.vbs" echo WScript.Echo WshShell.RegRead ("HKEY_CURRENT_USER/Control Panel/International/sShortDate")
for /f %%a in ('cscript /nologo "%temp%/BackupDate.vbs"') do (
    set "RegDateOld=%%a"
)
>"%temp%/UnifyDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")
>>"%temp%/UnifyDate.vbs" echo WshShell.RegWrite "HKEY_CURRENT_USER/Control Panel/International/sShortDate", "yyyy-M-d", "REG_SZ"
cscript /nologo "%temp%/UnifyDate.vbs"
>"%temp%/DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%/DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') do (
    set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
for /r "%SrcDir%" %%a in (*.*) do (
    if "%%~ta" leq "%DstDate%" (
        if exist "%%a" (
            echo del /f /q "%%a"
        )
    )
)
>"%temp%/RecoverDate.vbs" echo Set WshShell = WScript.CreateObject("WScript.Shell")
>>"%temp%/RecoverDate.vbs" echo WshShell.RegWrite "HKEY_CURRENT_USER/Control Panel/International/sShortDate", "%RegDateOld%", "REG_SZ"
cscript /nologo "%temp%/RecoverDate.vbs"
pause

例4,删除指定路径下指定天数之前(以文件的创建日期为准)的文件:BAT + REG + Ritchie Lawrence 日期函数

@echo off
::演示:删除指定路径下指定天数之前(以文件的创建日期为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例调用了 Ritchie Lawrence 的日期函数进行日期计算
::日期转换的核心算法请参考http://bbs.bathome.cn/thread-3056-1-1.html
::本例为兼容不同的日期格式,调用reg命令(XP系统自带)统一设置日期格式,
::处理完毕之后再把日期格式恢复成原来的状态。
rem 指定待删除文件的存放路径
set SrcDir=C:/Test/BatHome
rem 指定天数
set DaysAgo=1
for /f "skip=2 delims=" %%a in ('reg query "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate') do (
    set "RegDateOld=%%a"
)
set RegDateOld=%RegDateOld:~-8%
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d yyyy-M-d /f>nul
call :DateToDays %date:~0,4% %date:~5,2% %date:~8,2% PassDays
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
set /a PassDays-=%DaysAgo%
call :DaysToDate %PassDays% DstYear DstMonth DstDay
set DstDate=%DstYear%-%DstMonth%-%DstDay%
for /f "delims=/" %%a in ('dir /s /b /a-d "%SrcDir%"') do (
    call :CompareTime "%%a"
)
reg add "HKEY_CURRENT_USER/Control Panel/International" /v sShortDate /t REG_SZ /d %RegDateOld% /f>nul
pause
goto :eof
:DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF
:DaysToDate %days% yy mm dd
setlocal ENABLEEXTENSIONS
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%&set %3=%mm%&set %4=%dd%&goto :EOF
:CompareTime
for /f "skip=5 tokens=1-2 delims= " %%h in ('dir /a-d /tc %1') do (
    if "%%h" leq "%DstDate%" (
        if exist %1 (
            echo del /a /f /q %1
        )
    )
    goto :eof
)

例5,删除指定路径下指定天数之前(以文件的修改日期为准)的文件:forfiles

@echo off
::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例需要Win2003/Vista/Win7系统自带的forfiles命令的支持
rem 指定待删除文件的存放路径
set SrcDir=C:/Test/BatHome
rem 指定天数
set DaysAgo=1
forfiles /p %SrcDir% /s /m *.* /d -%DaysAgo% /c "cmd /c echo del /f /q /a @path"
pause

例6,删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件:字符串截取

@echo off
::演示:删除指定路径下指定天数之前(以文件名中包含的日期字符串为准)的文件。
::如果演示结果无误,把del前面的echo去掉,即可实现真正删除。
::本例假设文件名中包含的日期字符串(比如:bak-2009-12-25.log)
rem 指定待删除文件的存放路径
set SrcDir=C:/Test/BatHome
rem 指定天数
set DaysAgo=1
>"%temp%/DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
>>"%temp%/DstDate.vbs" echo wscript.echo FmtDate
for /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') do (
  set "DstDate=%%a"
)
set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
setlocal enabledelayedexpansion
for /r "%SrcDir%" %%a in (*.*) do (
    set "FileDate=%%~na"
    set "FileDate=!FileDate:~4,10!"
    if "!FileDate!" leq "%DstDate%" (
        if exist "%%a" (
            echo del /f /q "%%a"
        )
    )
)
endlocal
pause

Windows 10的子系统不是非Ubuntu不可

阅读(273)评论(0)

Ubuntu 的制造商 Canonical 早已和微软进行合作,让我们体验了极具争议的 Bash on Windows。外界对此也是褒贬不一,许多 Linux 重度用户则是质疑其是否有用,以及更进一步认为 Bash on Windows 是一个安全隐患。

Unix 的 Bash 是通过 WSL(Windows 的 Linux 子系统) 特性移植到了 Windows 中。早先,我们已经展示过 安装 Bash 到 Windows。

Canonical 和微软合作的 Bash on Windows 也仅仅是 Ubuntu 的命令行而已,并非是正规的图形用户界面。

不过,有个好现象是 Linux 爱好者开始在上面投入时间和精力,他们在 WSL 做到的成绩甚至让最初的开发者都吃惊,“等等,这真的可以吗?”。这个正在逐步实现之中。

Windows 10的子系统不是非Ubuntu不可

没错,上图所示就是运行在 Windows 中的 Ubuntu Unity 桌面。一位名为 Pablo Gonzalez (GitHub ID 为 Guerra24 )的程序员将这个完美实现了。随着这个实现,他向我们展示了 WSL 已经超越了当初构想之时的功能。

如果现在可以在 Windows 子系统之中运行 Ubuntu Unity,那么运行其他的 Linux 发行版还会远吗?

Arch Linux 版的 Bash on Windows

在 WSL 本地运行完整的 Linux发行版,迟早是要实现的。而我最希望的就是 Arch Linux 。

Windows 10的子系统不是非Ubuntu不可

Hold 住,Hold 住,该项目目前还在测试中。它由“mintxomat”在 GitHub 上开发的,最新为 0.6 版本。第一个稳定版将在今年的 12 月底发布。

那么,该项目的出台会有什么不同呢?

你可能早就知道,WSL 仅在 Windows 10 中可用。但是 Windows 的 Linux 子系统之 Arch Linux (AWSL) 早已成功的运行在 Windows 7、Windows 8、Windows 8.1 和 Windows Server 2012(R2),当然还有 Windows 10。

我靠,他们是怎么做到的?!

其开发者曾说,AWSL 协议抽象归纳了不同 Windows 版本的各种框架。所以,当 AWSL 发布 1.0 应该会取得更大的成绩。如我们之前提到的移植性,该项目会先向所有 Windows 版本推出 Bash on Windows。

该项目很有雄心,并且很有看头。如果等不及 12 月底的稳定版,你可以先行尝试其测试版。但要记住,目前还是开发者预览版,此刻并不稳定。但是,我们什么时候停止过折腾的脚步?

你也可到 GitHub 查看此项目的进度:Arch on Windows Subsystem

UbuntuBSD 16.04首个Beta版本发布

阅读(251)评论(0)

UbuntuBSD开发者Jon Boden非常自豪的宣布UbuntuBSD 16.04的研发进度迎来重要里程碑--首个Beta版本正式发布。

下载地址:https://sourceforge.net/projects/ubuntubsd/该版本名为“A New Hope”,基于Canonical的Ubuntu 16.04 LTS(Xenial Xerus) GNU/Linux 发行分支,并借鉴了来自于FreeBSD 10.3操作系统的内核。和往常相同,Xfce依然是默认桌面环境,系统提供了基于OpenRC和BusyBox的全新初始化系统。

UbuntuBSD 16.04首个Beta版本发布

UbuntuBSD 16.04首个Beta版本发布

目前UbuntuBSD 16.04 Beta 1已经通过网站开放下载,该操作系统目前仅发行了可安装的64位系统ISO镜像。在外媒的测试后表示需要注意的是如果选择在PC上安装该系统,那么它将会占用整个磁盘空间。最终版UbuntuBSD 16.04 系统将会在年底之前上线。

Fedora38的新改进:GCC 工具链更新计划

阅读(208)评论(0)

GCC 13 是一个重大更新,引入了 Rust 和 Modula-2 语言前端、AMD Zen 4 “znver4” 支持、其他新的 CPU target、添加的各种 C 和 C++ 语言功能,以及大量其他更新。

Fedora 开发者提交了关于升级 Fedora 38 GCC 工具链的提案,主要内容包括:将 Fedora 38 GNU 工具链更新为 gcc 13.0、binutils 2.39 和 glibc 2.37。现有的 gdb 12.1 将继续按原样使用。

Fedora38的新改进:GCC 工具链更新计划

Fedora 38 的核心 GNU 工具链包集如下:

  • GNU C Compiler 13.0
  • C++ (libstdc++), Go (gccgo), OpenMP (gomp), Fortran (gfortran), D (phobos), Objective C/C++ 的相关运行时
  • GNU Binary Utilities 2.39
  • GNU C Library 2.37
  • GNU Debugger 12.1 (immediately available in Fedora 37)

GCC 13 是一个重大更新,引入了 Rust 和 Modula-2 语言前端、AMD Zen 4 “znver4” 支持、其他新的 CPU target、添加的各种 C 和 C++ 语言功能,以及大量其他更新。

Binutils 2.39 和 Glibc 2.37 是 GNU 工具链的其他核心组件,它们的最新版本将在 4 月发布。

提交该提案的开发者认为此举能够与上游 gcc、glibc、binutils 和 gdb 的最新功能、改进、安全性和错误修复保持同步。目标是跟踪和过渡到 GNU 工具链的最新组件。

Unity 7.7版本即将发布

阅读(213)评论(0)

Unity,经典的桌面环境,从 2010 年到 2017 年都是 Ubuntu 的一部分,将收到一个大的新版本。你可以期待它在 2023 年的某个时候发布,但目前还没有具体的发布日期。

但不是由 ​​Canonical​​ 发布。

如果你不知道: Unity 的开发由一位年轻的开发者 ​​Rudra Saraswat​​ 接手,他也是 ​​Ubuntu Unity​​ 衍生版的创造者,这是 Ubuntu 的一个官方特色版。

在最近的一篇 ​​博文​​ 中,Rudra 向我们揭示了 Unity 7.7 的一角和即将到来的各种改进。

让我带你看看这些。

Unity 7.7 值得期待的地方

Unity 7.7版本即将发布

这次披露的内容有很多,其中包括:

    更新的欢迎应用程序
    UWidgets
    改进的仪表盘
    面板的调整
    增强的通知指示器
更新的欢迎应用程序

Unity 7.7版本即将发布

一个新的欢迎应用程序将被引入 Unity,它基于 Ubuntu Flutter 社区开发的原型(用 ​​Flutter​​ 编写)。

这个应用程序将不只限于一个发行版,而是适用于 Unity 所支持的所有发行版。

UWidgets

Unity 7.7版本即将发布

终于有了,Unity 桌面上的小部件?像 KDE 一样?

好吧,在 Unity 中引入用 Python 编写的小部件,应该很简单就可以设置(只是复制几个文件的问题)。

屏幕截图展示了一堆小部件,如时钟、系统监视器、Spotify 的小部件等等。

这还不是全部,Rudra 还提到:

我们将为 UWidgets 建立一个网页商店/仓库,在那里你可以提交你自己的小部件,或者下载并试用 Unity 7.7 上所有这些令人惊叹的小部件。

这应该会使用户更容易找到和下载小部件!

改进的仪表盘

Unity 7.7版本即将发布

仪表盘Dash也被刷新了,新的设计基于 Unity 7 的原始设计概念(在 Canonical 放弃它之前)。

按照截图,它应该不会占用大量的屏幕空间,而且还很有用。

面板的调整

Unity 7.7版本即将发布

现在的面板比之前的版本略大且更精致。

增强的通知指示器

Unity 7.7版本即将发布

这对 Unity 来说是一个巨大的可用性改进;用户现在终于可以利用一个适当的通知指示器了。

它将显示与你的应用程序、系统和更多相关的基本通知。

其他变化

一些更有用的技术改进包括:

    unity-control-center 的外壳 UI 得到了改进
    默认的面板不透明度降低到 0.75
    默认的启动器图标尺寸被缩小了
    启动器按钮(Ubuntu 图标)被替换为半透明的图标,类似于 Ubuntu Unity 21.04 的启动器按钮。

Bash 初学者系列 10:使用 bash 实现自动化

阅读(176)评论(0)

我们介绍了关于 bash 的一些基础知识,在了解了这些基础知识之后,可以尝试创建一些自动化脚本,来完成一些相对枯燥重复的管理任务。

今天我们介绍一下如何创建自动化脚本。

使用 bash 脚本自动化用户管理

在​​服务器上创建用户​​​可能是系统管理员经常要做的事情,这是一个相对乏味的任务,所以我们可以创建一个自动化的脚本来进行这项任务。

首先,创建一个文本文件,其中包含要添加用户的所有服务器主机名或IP地址。

比如,下面我们创建了一个名为 servers.txt 的文本文件,在其中添加了5台服务器:​

$ cat servers.txt
server1
server2
server3
server4
server5

在这里我使用的是主机名,因为已经在 /etc/hosts 文件中包含了IP地址(另外也可以使用 SSH 配置文件)。

然后创建一个脚本文件 adduser.sh,代码如下:

#!/bin/bash

servers=$(cat servers.txt)

echo -n "Enter the username: "
read name
echo -n "Enter the user id: "
read uid

for i in $servers; do
    echo $i
    ssh $i "sudo useradd -m -u $uid ansible"
    if [ $? -eq 0 ]; then
        echo "User $name added on $i"
    else
        echo "Error on $i"
    fi
done

上述脚本首先要求我们输入要添加的用户的用户名和用户 ID,然后回循环并连接到 servers.txt 中列出的服务器,并添加用户。

运行结果如下:
Bash 初学者系列 10:使用 bash 实现自动化

通过上述例子,我们需要了解以下几点:

可以使用 ssh 代理或空的 ssh 密码,这样在运行的时候系统不会要求输入密码;
必须拥有在所有服务器上具有超级用户访问权限(无需密码)的有效帐户。
可以想象,如果你有100台服务器需要添加同一个新用户,使用上述脚本肯定会节省很多时间。

使用 bash 脚本自动备份

备份是我们经常做的事情,那写个自动备份的脚本来自动化实现,是非常方便的。看如下 backup.sh 脚本:​

#!/bin/bash

backup_dirs=("/etc" "/home" "/boot")
dest_dir="/backup"
dest_server="server1"
backup_date=$(date +%b-%d-%y)

echo "Starting backup of: ${backup_dirs[@]}"

for i in "${backup_dirs[@]}"; do
    sudo tar -Pczf /tmp/$i-$backup_date.tar.gz $i
    if [ $? -eq 0 ]; then
        echo "$i backup succeeded."
    else
        echo "$i backup failed."
    fi
    scp /tmp/$i-$backup_date.tar.gz $dest_server:$dest_dir
    if [ $? -eq 0 ]; then
        echo "$i transfer succeeded."
    else
        echo "$i transfer failed."
    fi
done
sudo rm /tmp/*.gzecho "Backup is done."

上面脚本,首先创建了一个名为 backup_dirs 的数组,用来保存要备份的目录。然后又创建了另外三个变量:

dest_dir:要备份到哪个目录;
dest_server:备份服务器;
backup_time:备份日期。
然后,对于数组 backup_dirs 中的目录,会在被压缩为 tar 归档文件,保存在 /tmp 目录下,然后使用 scp 命令将 tar 文件发送到备份服务器,最后,删除 /tmp 中的 tar 文件。

运行一下,结果如下:​

$ ./backup.sh
Starting backup of: /etc /home /boot
/etc backup succeeded.
etc-Aug-30-20.tar.gz 100% 1288KB 460.1KB/s   00:02
/etc transfer succeeded.
/home backup succeeded.
home-Aug-30-20.tar.gz 100% 2543KB 547.0KB/s   00:04
/home transfer succeeded.
/boot backup succeeded.
boot-Aug-30-20.tar.gz 100%  105MB 520.2KB/s   03:26
/boot transfer succeeded.
Backup is done.

如果你希望每天在某个时间点(比如晚上)都自动运行备份脚本,可以制定 ​​cron 任务​​:

$ crontab -e
00*** /home/kabary/scripts/backup.sh
监视可用磁盘空间

我们每天做各种操作,产生的文件都会占用磁盘空间。在空间被占满之前及时删除不必要的临时文件是有必要的。我们可以使用 df 命令查看系统的剩余空间:​

$ df -h / /apps /database
Filesystem Size  Used Avail Use% Mounted on
/dev/sda5 20G  7.9G   11G  44% /
/dev/mapper/vg1-applv 4.9G  2.4G  2.3G  52% /apps
/dev/mapper/vg1-dblv 4.9G  4.5G  180M  97% /database

在 /database 目录下其使用率为 97%,几乎没有剩余空间了。如果我使用​​ awk 命令​​​可以只显示第 5 个字段,就是使用率。

现在我们创建脚本 disk_space.sh,如下:​

#!/bin/bash
filesystems=("/" "/apps" "/database")
for i in ${filesystems[@]}; do
    usage=$(df -h $i | tail -n 1 | awk '{print $5}' | cut -d % -f1)
    if [ $usage -ge 90 ]; then
        alert="Running out of space on $i, Usage is: $usage%"
        echo "Sending out a disk space alert email."
        echo $alert | mail -s "$i is $usage% full" your_email
    fi
done

上述代码,首先创建了一个数组 filesystems,用于保存要监视的目录,然后便利这个数组,查看其中每个目录的使用率是否大于 90%,如果使用率超过 90%,就会发送一封警告电子邮件,提示文件空间不足。

这里需要注意,带啊中的 your_email 需要替换为真实的邮件。

运行一下,结果如下:​

$ ./disk_space.sh
Sending out a disk space alert email.

然后收到的电子邮件如下所示:
Bash 初学者系列 10:使用 bash 实现自动化
同样,也可以为其设置定时任务:​

$ crontab -e
0*/6 *** /home/kabary/scripts/disk_space.sh

登录

忘记密码 ?