2022年9月

Fedora 37 将于下个月发布。让我们来看看它带来的变化。

最好的 Linux 发行版之一的升级版,Fedora 37,即将面世。它将在下个月发布,如果一切按计划进行,它最早将于 2022 年 10 月 18 日发布。而测试版应该在 2022 年 9 月 13 日发布。

让我重点介绍一些你可能想关注的 Fedora 37 重要功能。

Fedora 37 功能

Fedora 37

Fedora 37 带有最新的 GNOME 桌面以及其他完善的功能。这些包括:

1、GNOME 43

Fedora 37 切换菜单

GNOME 43 和其他一些技术改进将在 Fedora 37 中首次亮相。所以,看看它的体验如何应该是很令人感兴趣的。

这是一次旨在提高用户体验的实质性升级。GNOME 43 中的标志性的重要改进包括一个新的快速切换菜单和 对 Nautilus 文件管理器的改变

Fedora 37 UI

此外,其他一些重要的变化还有:

  • GNOME Web 浏览器对 WebExtensions 的支持。
  • 文件管理器中新的文档上下文菜单。
  • GNOME “软件”的改进。

2、Linux 内核 5.19

Fedora 37 neofetch

Linux 内核 5.19 是一个有用的更新,它改进了对 ARM SoC 的支持、英特尔的 Arc GPU 支持,以及对 RISC-V 架构支持的一些调整。

你可以查看 Linux 内核 5.19 的变化列表 来了解更多。

3、桌面环境更新

虽然 GNOME 43 是 Fedora 的旗舰桌面环境,但你也可以找到带有 KDE Plasma 5.26、Xfce 4.16 和 MATE 1.24 的 Fedora 升级版。

在这些版本中,鉴于 KDE Plasma 桌面的一系列改进,带有 KDE Plasma 5.26 的 Fedora 37 也是一个不错的选择。

你可以在我们之前的报道中阅读更多 关于 KDE Plasma 5.26 版本的信息

不要忘记,你也可以看到一个 新的 Budgie 桌面的 Fedora 定制版

截至目前,桌面、控制中心、屏幕保护程序和桌面视图的软件包都已经出现在 Fedora 的软件包源。所以,我想你可以期待它们出现在 Fedora 37 的发布中。

4、树莓派 4 支持

Fedora 支持树莓派,但不支持树莓派 4。

在 Fedora 37 中,由于对较新的 Linux 内核和 Mesa(图形加速)的上游改进,它 正式引入了对树莓派 4 的支持

这些变化也应该使 Fedora 37 在树莓派 3 系列和 Zero 2 W 上有更好的体验。

5、实验性的基于 Web 界面的安装程序

Fedora 37 将是第一个为其 Anaconda 安装程序 提供基于网页的用户界面的版本。

换句话说,这是对其当前安装程序的重新设计。请注意,在本次发布之后,它将只作为一个额外的预览镜像提供。

你可以单独下载它并进行实验。到现在为止,我们还不能试用它。所以,你需要在预览镜像可用后再去试试它。

其他变化和新的默认壁纸

Fedora 37 深色壁纸

对于 Fedora 37,除了可以期待很多技术上的改进,不要忘了,它还有一个新的壁纸,有浅色/深色的变体。上图显示了 Fedora 37 的深色壁纸。

浅色变体可以在本文的开头看到。

Fedora 37 的其他变化包括:

Fedora core os

  • Fedora CoreOS 将被确认为 Fedora 的主要版本之一。
  • Fedora Cloud 将被列为官方版本之一。
  • GNU Emacs 28 更新。
  • 用于 Fedora 服务器的新 KVM 镜像。

你可以参考 官方的 Fedora 37 更新日志 了解更多技术细节。

? 你对即将发布的带有 GNOME 43 的 Fedora 37 版本有何看法?请在下面的评论中分享你的想法。


via: https://news.itsfoss.com/fedora-37-features/

作者:Ankush Das 选题:lkxed 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果你在笔记本电脑上使用 Ubuntu,你可能已经注意到当你合上盖子时系统处于挂起状态。

这是预期的行为。它可以节省电池和你的工作。你掀开盖子,系统唤醒,你可以登录并继续工作。

这一切听起来都不错,除非你使用多显示器设置。像我这样的一些人更喜欢关闭笔记本电脑,只使用外接显示器。

但是,如果关闭笔记本电脑盖会挂起系统,那么会产生问题。

让我告诉你如何改变这种行为。

关闭笔记本电脑盖时不要挂起

实际上,我注意到最近的 Ubuntu 版本在这个情况下更智能。当笔记本电脑连接到扩展坞并合上盖子时,它不会进入挂起模式。

这是正常的预期行为,但由于 Ubuntu 某种神才知道的原因,它可能不会一直有效。

好消息是你可以使用 GUI 和命令行强制更改此行为。

让我分享这两种方法。

方法 1:使用 GNOME 优化

如果你使用的是默认的 GNOME 桌面,那么你很幸运。 在 Ubuntu 的软件中心安装 GNOME 优化(Tweaks)工具,或使用以下命令:

sudo apt install gnome-tweaks

安装后,启动优化应用。在侧边栏的 常规 General 选项卡中,关闭“ 笔记本电脑盖合上时挂起 Suspend when laptop lid is closed ”按钮。

change lid close behavior ubuntu

这就好了。你不需要重启即可使更改生效。

现在,让我们谈谈命令行方法。

方法 2:更改登录配置(针对高级用户)

如果你查看文件 /etc/systemd/logind.conf 的内容,你将看到三种不同类型的笔记本电脑合盖默认设置:

  • HandleLidSwitch=suspend:当笔记本电脑使用电池供电时,合盖挂起
  • HandleLidSwitchExternalPower=suspend:当笔记本电脑插入电源插座时,合盖挂起
  • HandleLidSwitchDocked=ignore:当笔记本电脑连接到扩展坞时,合盖忽略

Default laptop lid closing settings

如你所见,如果合上盖子,笔记本电脑将挂起,无论它是否连接到电源。而连接扩展坞忽略合盖。

如果需要,你可以根据自己的喜好将这些参数的值更改为其中之一:

  • suspend:合盖时挂起
  • lock:合盖时锁定
  • ignore:什么都不做
  • poweroff:关机
  • hibernate:合盖时休眠

如果你不希望你的系统在笔记本电脑盖合上时执行任何特殊操作,我建议你使用 ignore

你可以编辑 /etc/systemd/logind.conf 文件,或者在 /etc/systemd/logind.conf.d 目录中创建一个新文件,并取消注释上述设置并更改其值。如果此目录不存在,请创建此目录。

我不会给你确切的命令。如果你熟悉命令行,你应该可以做到。如果你对命令行感到不习惯,请使用前面的 GUI 方法。

我希望这可以帮助你。如果你有任何问题,请告诉我。


via: https://itsfoss.com/laptop-lid-suspend-ubuntu/

作者:Abhishek Prakash 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

美国弗吉尼亚州的数据中心容量超过欧洲和中国

根据 Synergy 的数据,按关键 IT 负载衡量,在 2022 年第二季度末,美国占全球超大规模数据中心容量的 53%。其余的份额在中国、欧洲和世界其他地区之间相对平均分配。而美国弗吉尼亚州拥有美国三分之一以上的超大规模数据中心容量,这比中国或整个欧洲的全部容量都要多。如果以数据中心容量衡量,领先的公司是亚马逊、谷歌、微软、Facebook、阿里巴巴和腾讯。

消息来源:The Register
老王点评:毕竟,大半个互联网在美国。

谷歌鼓励开源社区对代码进行模糊测试

谷歌在 2016 年推出了社区模糊测试服务(OSS-Fuzz)以应对心脏流血漏洞,目前已经检查了大约 700 个关键开源项目的漏洞。模糊测试,是一种软件测试技术,试图通过向软件注入随机或半随机数据来发现错误。谷歌的开源安全团队表示,OSS-Fuzz 已经帮助修复了开源项目中的 8000 多个安全漏洞和 26000 个其他错误。他们鼓励开源社区参与该项目,如果在该项目中发现至少两个以前未发现的漏洞,将获得一万多美元的奖励。

消息来源:The Register
老王点评:比较起来,还是谷歌对开源的支持最真诚。

中科大发 4 万多封钓鱼邮件,约 10% 的人中招

近日,有中国科学技术大学的学生在社交平台发文称,收到了“中秋免费月饼领取”的邮件,但填写资料后却没有领到月饼。校方表示,这其实是一次官方的钓鱼邮件演练。此次演练共向全校师生发送模拟钓鱼邮件 4.5 万多封,并在邮件中故意留了明显的错误。但截至 9 月 8 日上午,共有 3500 多人在伪造的身份认证界面提交了信息。中科大公布的数据显示,2022 年 1 月至 8 月,该校邮件服务器有 921 个账号被窃取密码发送垃圾邮件,平均每天近 4 个账号。

消息来源:快科技
老王点评:这种演练好,别学上了半天,最后连简单的社会工程都不能识破。

我们并不是每天都会谈论 Linux 的命令行。但正如一些读者指出的那样,你们也想学习一些命令行的技巧。

因此,我整理了一份基本的 Linux 网络命令清单,这些命令在我的大学时代帮助了我,让我对如何在网络方面使用 Linux 有了坚定的认识。

这些命令将帮助你设置网络,以及解决你在 Linux 系统中可能遇到的各种网络问题。

Linux 中的基本网络命令

这个汇编包括了 CLI 实用程序,它们将帮助你排除网络问题、监控数据包和连接的设备,以及更多。

在我展示这些命令的一些细节之前,让我分享一下我今天要讨论的所有命令的简要概述。

命令说明
ip操纵路由来分配和配置网络参数
traceroute识别数据包到达主机的路径
tracepath在追踪网络主机的路径时,获取最大传输单元
ping通常用于检查主机和服务器之间的连接情况
ss获得有关网络套接字的详细信息
dig给出所有关于 DNS 名称服务器的必要信息
host输出特定域和主机的 IP 地址
hostname主要用于输出和更改主机名
curl在网络上通过各种协议传输数据
mtrpingtraceroute 的组合,用于诊断网络
whois获取有关注册的域名、IP 地址、名称服务器等信息
ifplugstatus检测本地以太网设备的链接状态
iftop监视与带宽有关的统计信息
tcpdump数据包嗅探和分析工具,用于捕获、分析和过滤网络流量
ethtool允许用户配置以太网设备
nmcli用于网络连接的故障排除工具
nmap主要用于审计网络安全
bmon开源工具,用于监控实时带宽
firewalld配置防火墙规则的 CLI 工具
iperf测量网络性能和调整的工具
speedtest-clispeedtest.net 的 CLI 工具,用于检查网速
vnstat主要用于监控网络流量和带宽消耗

现在,让我们用例子和更深入的方式讨论它们。

请注意,并不是所有的命令都会预装。我已经添加了针对 Debian/Ubuntu 的说明。对于其他发行版,请使用你的软件包管理器进行安装。

1、ip 命令

ip 命令是最基本的,但也是最重要的,你会发现系统管理员经常使用它,其用于从操纵路由到分配和配置网络参数。

虽然用例可能无穷无尽,但让我向你展示 ip 命令的最基本用例(寻找 IP 地址)。

ip address

ip address

同样,你也可以使用 ip 命令来持续监控设备的状态,请使用 monitor 参数而不是我们之前用来获取 IP 地址的 address 参数:

ip monitor

ip monitor

2、traceroute

使用 traceroute 命令,你可以确定数据包到达主机的路线。而且,当你想询问数据包的传输情况和数据包所走的跳数时,它可能相当有用。

默认情况下,你的系统可能没有安装 traceroute,如果你使用的是 Debian 及派生的发行版(包括 Ubuntu),安装时只需使用一个命令:

sudo apt install traceroute

例如,追踪到 google.com 的数据包:

traceroute google.com

traceroute google.com

默认情况下,traceroute 会使用 IPv4,但是你可以通过使用 -6 选项来改变这一行为,该选项将指示 traceroute 使用 IPv6。让我告诉你怎么做:

traceroute -6 google.com

3、tracepath

tracepath 命令用于发现 MTU(最大传输单元),同时追踪到网络主机的路径。它与我上面讨论的 traceroute 很相似,但它不需要 sudo 权限,而且也没有像它那么多功能。

但是,首先什么是 MTU?

MTU 就是可以在网络上传输或接收的最大帧或数据包。

现在,让我们看一下 google.comtracepath 的基本例子:

tracepath google.com

tracepath google.com

同样,你可以使用 -b 选项同时打印出 IP 地址和主机名。

tracepath -b google.com

tracepath -b google.com

4、ping

ping 命令 数据包网络飞龙探云手 Packet Internet Groper ?) 可以说是在排除网络故障时最重要的命令之一,因为它是检查主机和服务器之间连接情况的最常用方法。

例如,我 ping 谷歌:

ping google.com

ping google.com

这里,最后一行(min/avg/max)表示从指定的服务器获得响应的时间。

如果你得到一个错误提示 bash: ping: command not found (LCTT 译注:不会吧?),你可以查看我们的指南 如何在 Ubuntu 上安装 Ping

5、ss

ss 套接字统计 socket statistics )命令用于详细了解网络套接字(在网络上发送和接收数据的端点)。

要列出所有监听和非监听的 TCP 连接,你必须使用 -at 选项,如下所示:

ss -at

ss -at

同样,你可以使用 -au 选项对 UDP 端口进行同样的操作:

ss -au

ss -au

6、dig

dig 命令 域信息龙爪手 Domain Information Groper ?)用于获取有关域名的所有必要信息。

要在基于 Ubuntu 的发行版上安装 dig 工具,请按照给出的命令进行:

sudo apt install dnsutils

现在,让我告诉你如何获取一个特定主机的信息,在这个例子中,我将获取 itsfoss.com 的信息:

dig itsfoss.com

dig itsfoss.com

7、host

host 命令主要用于获取一个特定主机的 IP 地址,或者你可以从一个特定的 IP 地址获取主机名。换句话说,它是一个 DNS 查询工具。

要找到主机的 IP,你只需要在 host 命令中附加主机名。让我告诉你怎么做:

host itsfoss.com

host itsfoss.com

同样,你可以用一个 IP 地址来获取主机名:

host 8.8.4.4

host 8.8.4.4

8、hostname

如果你已经使用了一段时间的 Linux,你一定很熟悉这个命令,因为这主要是用来 改变你的系统的主机名 和 NIS(网络信息系统)的主机名。

当不使用任何选项时,它可以得到系统当前的主机名。

hostname

hostname

从包含所需主机名的文件中改变主机名是这个工具的另一个有趣的功能:

sudo hostname -F <filename>

sudo hostname -F hostname.txt

9、curl

curl 客户端 URL Client URL )命令主要用于在网络上传输数据,支持各种协议,包括 HTTP、FTP、IMAP 和许多其他协议。

这个工具是首选的自动化工具,因为它是在没有任何人类互动的情况下工作的,也可以用于端点测试、调试和错误记录。

curl 工具没有预装,如果你在任何 Debian 及其派生发行版上,你只需要使用以下命令进行安装:

sudo apt install curl

使用 curl 命令 下载文件 非常容易,你只需在 URL 中使用 -O 选项,就可以开始了。

curl -O [URL]

curl -o url

在下载大文件时,进度条会很方便,你可以用 curl-# 选项来显示进度条。

curl -# -O

10、mtr

它是 pingtraceroute 工具的组合,主要用于网络诊断,并提供网络响应和连接的实时情况。

使用 mtr 的最简单方法是用它跟上一个主机名或 IP 地址,它将给出一个实时的 traceroute 报告。

mtr [URL/IP]

mtr google.com

如果你想让 mtr 同时显示主机名和 IP 地址,你可以把它和 -b 选项配对,如下图:

mtr -b [URL]

mtr -b

11、whois

whois 可以帮助你找到有关注册的域名、IP 地址、名称服务器等信息,因为它是 whois 目录服务的客户端。

这个工具可能没有预装在你的设备上,要在基于 Debian/Ubuntu 的发行版上安装,你可以使用给出的命令:

sudo apt install whois

一般来说,whois 命令是与给出的域名配对使用的:

whois [DomainName]

whois google.com

另外,你也可以用一个 IP 地址来代替域名,你会得到同样的细节。

12、ifplugstatus

ifplugstatus 是一个最基本的,但也是最有用的工具,足以在基本水平上排除连接问题。它用于检测本地以太网的链接状态,其工作方式与 mii-diagmii-toolethtool 类似,支持所有三个 API。

在基于 Debian/Ubuntu 的发行版上安装,你可以按照给出的命令进行:

sudo apt install ifplugd

这个工具没有任何花哨的选项,经常不需要与任何配对选项而使用:

ifplugstatus

ifplugstatus

13、iftop

iftop 接口的 top Interface TOP )经常被管理员用来监控与带宽有关的统计数据,当你遇到网络问题时,也可以作为诊断工具使用。

这个工具需要手动安装,可以通过给出的命令在运行 Debian/Ubuntu 的机器上轻松安装。

sudo apt install iftop

iftop 在没有任何选项的情况下使用时,它会显示默认接口的带宽统计。

sudo iftop

iftop

你也可以通过在设备名称后面加上 -i 选项来指定网络设备。

sudo iftop -i <DeviceName>.

在我的例子中,是 enp1s0,所以我的输出将是如下:

sudo iftop -i enp1s0

14、tcpdump

tcpdump 是一个数据包嗅探和分析工具,用于捕获、分析和过滤网络流量。它也可以作为一个安全工具使用,因为它将捕获的数据保存在可以 通过 Wireshark 访问 的 pcap 文件中。

像许多其他工具一样,tcpdump 没有预装,如果你是在Debian/Ubuntu 上,你可以按照下面的命令进行安装:

sudo apt install tcpdump

一旦你完成了安装,你可以获得当前接口的捕获数据包,如下所示:

sudo tcpdump

sudo tcpdump

那么如何将捕获的数据包保存在 pcap 文件中呢?让我告诉你怎么做:

sudo tcpdump -w Captured_Packets.cap -i < networkdevice >

sudo tcpdump -w

要访问保存的文件,你需要使用 -r 选项加上文件名。

sudo tcpdump -r Captured_Packets.pcap

sudo tcpdump -r filename

15、ethtool

顾名思义,ethtool 工具主要涉及管理以太网设备。使用这个工具,你可以调整网卡速度、自动协商特性等。

但它可能没有预装在你的机器上,可以通过利用给出的命令安装在 Debian/Ubuntu 机器上:

sudo apt install ethtool

要获取接口的详细信息,你只需在命令后面加上设备名称,如下所示:

sudo ethtool <InterfaceName>

sudo ethtool enp1s0

16、nmcli

作为一个简单而强大的网络故障排除工具,它是任何系统管理员在排除网络故障时首先使用的工具之一,也可以在脚本中使用。

你可以使用 nmcli 命令来监控设备的连接状态:

nmcli dev status

nmcli dev status

当不使用任何选项时,它将带来你系统中所有现有设备的信息:

nmcli

nmcli

17、nmap

nmap 是一个探索和审计网络安全的工具。它经常被黑客和安全爱好者使用,因为它允许你获得网络的实时信息、连接到你的网络的 IP 的详细信息、端口扫描,以及更多。

要在基于 Debian/Ubuntu 的发行版上安装 nmap 工具,请使用给出的命令:

sudo apt install nmap

让我们开始扫描主机名:

nmap itsfoss.com

nmap itsfoss.com

18、bmon

bmon 是一个开源的工具,用于监测实时带宽和调试问题,以更人性化的方式呈现统计数据。这个工具最好的部分是图形显示,甚至可以在 HTML 中得到你的输出!

安装非常简单,因为 bmon 存在于流行的 Linux 发行版的默认仓库中,这也包括 Debian/Ubuntu。

sudo apt install bmon

现在,你只需要启动 bmon,就可以用眼睛愉快地监控带宽了:

bmon

bmon

19、firewalld

管理防火墙可以说是网络安全的核心部分,这个工具允许你添加、配置和删除防火墙的规则。

但是 firewalld 需要手动安装,如果你使用的是基于 Debian/Ubuntu 的发行版,你可以利用给出的命令进行安装:

sudo apt install firewalld

例如,我将向你展示,如何为公共区域永久地打开 80 端口:

sudo firewall-cmd --permanent --zone=public --add-port=80/tcp

sudo firewall-cmd --permanent --zone=public

同样,要删除最近添加的规则,你必须使用 -remove 选项,如下所示:

sudo firewall-cmd --zone=public --remove-port=80/tcp

sudo firewall-cmd --zone=public --remove

20、iperf

iperf 是一个用 C 语言编写的开源工具,允许用户进行网络性能测量和调整。

这个工具存在于 Debian/Ubuntu 的默认资源库中,可以通过给出的命令安装:

sudo apt install iperf

要开始监控网络,用户必须通过给出的命令在服务器上启动这个客户端:

iperf -s -u

其中,-s 选项表示服务器,-u 选项为 UDP 格式。

iperf -s -u

现在,你可以通过提供首选协议的 IP 地址有效载荷连接到你的服务器(使用 -c 选项表示客户端)。在这个例子中,我选择了 UDP(使用 -u 选项),有效载荷为 100:

iperf -c 10.0.2.15 -u 100

iperf -c

21、speedtest-cli

顾名思义,这是 speedtest.net 网站的 CLI 工具。这个在 Apache 2.0 许可下发布的开源工具,当你想从 CLI 获得一个可靠的 检查网速 的来源时,会有很大帮助。

安装非常简单,如果你是在 Debian/Ubuntu 上,可以利用给出的命令轻松安装:

sudo apt install speedtest-cli

一旦你完成了安装部分,你只需要使用一行命令即可测试你的速度:

speedtest-cli

speedtest-cli

22、vnstat

vnstat 工具主要被系统管理员用来监控网络流量和带宽消耗(大部分情况下),因为这个工具可以监控你系统的网络接口的流量。

和其他网络工具一样,你可以在默认的软件库中找到 vnstat,如果你在 Debian/Ubuntu 上,可以通过给出的命令进行安装:

sudo apt install vnstat

你可以使用 vnstat 命令,不需要任何选项,它将带来你系统所有可用接口的基本统计信息:

vnstat

vnstat

对于实时监控,你可以将 vnstat 命令与 -l 选项配对。

vnstat -l

一个长长的清单,对吗?

这个汇编连冰山一角都算不上,只是分享了每个命令的目的和基本例子,因为增加更多的命令会使这个清单变得更长。

流行的但 已废弃的 Linux 命令,如 ipconfig,已被故意排除在这个列表之外。

如果你很好奇,你可以学习 如何最大限度地利用手册页,这将教会你如何使用任何实用程序的最大潜力。

如果我忘了提到任何你喜欢的东西,请在评论中告诉我。


via: https://itsfoss.com/basic-linux-networking-commands/

作者:Sagar Sharma 选题:lkxed 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果你希望自动执行常规任务并使你的生活更轻松,那么使用 Shell 脚本是一个很好的选择。本文将向你介绍一些基本概念,这些概念将帮助你编写高效的 Shell 脚本。

Shell-scripting

Shell 脚本是一种被设计用来运行命令行解释器 UNIX Shell 的计算机程序。Shell 脚本的各类变种被视作脚本语言。Shell 脚本执行的典型操作包括文件操作、程序执行和文本打印。设置环境、运行程序并执行任何必要的清理或日志记录的脚本称为封装。

识别 Shell 命令提示符

你可以通过查看终端窗口中的提示符符号来识别 Linux 系统的计算机上的 Shell 命令提示符的用户是普通用户还是超级用户。# 符号用于超级用户,$ 符号用于具有标准权限的用户。

基本命令

脚本附带了很多可以在终端窗口上执行的、用以管理您的计算机的命令。每个命令的详细信息可以在该命令附带的使用手册中找到。你可以使用如下命令来查看手册:

man <command>

一些常用的命令有:

date # 显示当前日期和时间
cal # 显示当前月份日历
df # 显示磁盘使用情况
free # 显示内存使用情况
ls # 列出文件和目录
mkdir # 创建目录

每个命令都附带了几个可以一起使用的选项。你可以参考使用手册以了解更多的细节。man date 的输出如图 1 所示。

Figure 1: Manual of date command

重定向操作符

当你希望捕获文件中的命令输出或重定向到文件时,可以使用重定向操作符。

命令描述
ls -l /usr/bin >file默认标准输出到文件
ls -l /usr/bin 2>file重定向标准错误到文件
ls -l /usr/bin > ls-output 2>&1重定向标准错误和标准输出到文件
ls -l /usr/bin &> ls-output重定向标准错误和标准输出到文件
ls -l /usr/bin 2> /dev/null写入 /dev/null,丢弃输出

大括号扩展

大括号扩展是 UNIX 提供的强大选项之一。它有助于在一行指令中使用最少的命令完成大量操作。例如:

$echo Front-{A,B,C}-Back
Front-A-Back, Front-B-Back, Front-C-Back
$echo {Z..A}
Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
$mkdir {2009..2011}-0{1..9} {2009..2011}-{10..12}

这条命令会为 2009 到 2011 年里的每个月建立一个目录。

环境变量

环境变量是一个动态命名的值,它可以影响计算机上运行的进程的行为方式。此变量是进程运行环境的一部分。

命令描述
printenv打印出所有环境变量的值。
set设置 Shell 选项
export导出环境到随后执行的程序
alias为命令创建别名

网络命令

网络命令对于排查网络问题和检查连接到客户机的特定端口非常有用。

命令描述
ping发送 ICMP(网际网路控制讯息协定)数据包
traceroute打印数据包在网络中的路径
netstat打印网络连接信息、路由表、接口数据
ftp/lftp互联网文件传输程序
wget非交互式网络下载器
sshOpenSSH SSH 客户端 (远程登录程序)
scp安全拷贝
sftp安全文件传输程序

grep 命令

grep 命令用于查找系统和日志中的错误。它是 Shell 拥有的强大工具之一。

命令描述
grep -h '.zip' file.list. 表示任意字符
grep -h '^zip' file.listzip 开头
grep -h 'zip$' file.listzip 结尾
grep -h '^zip$' file.list只含有 zip
grep -h '[^bz]zip' file.list不含 bz
grep -h '^[A-Za-z0-9]' file.list所有文件名有效的文件

量词

下面是一些量词的例子:

命令描述
?匹配出现 0 次或 1 次的元素
*匹配出现 0 次或多次的元素
+匹配出现 1 次或多次的元素
{}匹配出现特定次数的元素

文本处理

文本处理是当今 IT 世界中的另一项重要任务。程序员和管理员可以使用这些命令来切片、剪切和处理文本。

命令描述
cat -A $FILE显示 $FILE 文件的所有内容
sort file1.txt file2.txt file3.txt > final_sorted_list.txt一次性将所有文件排序
`ls - lsort -nr -k 5`按指定的第 5 列进行排序
sort --key=1,1 --key=2n distor.txt对第 1 列进行排序(默认按字母表顺序),对第 2 列进行数值排序
`sort foo.txtuniq -c`查找重复的行并显示该行重复的次数
cut -f 3 distro.txt剪切第 3 列
cut -c 7-10剪切 7 - 10 字符
cut -d ':' -f 1 /etc/password分隔符 :
sort -k 3.7nbr -k 3.1nbr -k 3.4nbr distro.txt按第 3 列第 7 个字符、第 3 列第 1 个字符和第 3 列第 4 个字符排序
paste file1.txt file2.txt > newfile.txt合并两个文件
join file1.txt file2.txt按公共字段连接两个文件

窍门和技巧

在 Linux 中,我们可以通过使用简单的命令或控制选项返回到命令的历史记录。

命令描述
clear清空屏幕
history查看保存命令的历史记录
script filename捕获文件中的所有命令执行

一些历史命令的技巧:

  • CTRL + R: 搜索命令历史
  • !!number:执行编号为 number 的命令
  • !! :执行上一条命令
  • !?string : 执行包含 string 的上一条命令
  • !string:执行以 string 开始的上一条命令
  • export HISTCONTROL=ignoredups: 忽略重复条目
  • export HISTSIZE=10000:设置存储的历史行数

随着你对 Linux 命令逐渐熟悉,你将能够编写封装脚本。所有手动任务,如定期备份、清理文件、监控系统使用情况等,都可以使用脚本自动完成。在学习高级概念之前,本文将帮助您开始编写脚本。


via: https://www.opensourceforu.com/2022/05/the-basic-concepts-of-shell-scripting/

作者:Sathyanarayanan Thangavelu 选题:lkxed 译者:FYJNEVERFOLLOWS 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

GNU 创始人 RMS 发布《GNU C 语言介绍及参考手册》

Richard Stallman 最近一直致力于精心编写这本手册,它涵盖了在 GNU/Linux 系统和其他系统上与 GNU 编译器集合(GCC)一起使用的 C 语言。你可以把它作为一本参考手册,也可以从头开始按顺序阅读来学习 C 语言。

消息来源:GNU
老王点评:在不少争议行为之外,RMS 还是安安静静的做些实务更让人尊敬。

欧盟的人工智能法案可能对开源产生寒蝉效应

2021 年,欧盟发布了《人工智能法案》草案以征求意见。据该草案,开源开发者必须遵守风险管理、数据治理、技术文件和透明度的准则,以及准确性和网络安全的标准。一些专家在一项新的研究中警告说,这可能会限制产生 GPT-3 等尖端人工智能工具的研究类型的发展。如果一家公司部署的开源人工智能系统导致了一些灾难性的结果,不难想象该公司可能会试图通过起诉他们建立产品的开源开发者来转移责任。这可能会进一步将控制人工智能未来的权力集中在大型技术公司。

消息来源:Tech Crunch
老王点评:开源开发就是“按原样”提供,既不应该承担额外的责任,也不能承担这些责任,否则个人开发者谁会去贡献,谁敢去贡献?

PHP 8.2 发布了第一个候选版本

在过去的几个月里,经过一系列的 alpha 和 beta 版本,PHP 8.2 的第一个候选版本出来了。PHP 8.2 RC1 带来了各种错误的修复,包括可能的崩溃修复,PHP CLI 的内置 Web 服务器也对处理静态资源进行了各种改进。更多发布细节请参考发布公告。在未来的几周内,预计至少还有五个候选版本,而 PHP 8.2.0 的 GA 版本预计在 11 月 24 日左右。

消息来源:PHP
老王点评:曾经特别流行的 PHP ,感觉不香了。这消息都过去一周了,也没什么人在意。有点感慨,我曾经最熟悉的 Perl、PHP,似乎都渐渐成了老古董,我当时就该学习 C 和 Java。