每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,欢迎关注开源日报。交流QQ群:202790710;电报群 https://t.me/OpeningSourceOrg
今日推荐开源项目:《python教程full-speed-python》
推荐理由:full-speed-python从如何安装python讲起,讲基本的数据类型、数值和字符串、数列,讲模块和函数,讲递归函数,讲循环,也讲字典、类、迭代器和生成器。对有其他语言基础的人来说很容易理解,只需要注意格式上的不同。对把python作为第一门语言来学的人来说,full-speed-python也很细致,面面俱到,除了讲解、例子,还有给学习者的课后练习。
full-speed-python使用pandoc完成。本文稍后也会介绍pandoc。在此,我们就函数来做一个小小的例子:
如图所示,函数的基本格式为 def 函数名(参数): 。
再来一个关于生成器(如while和for)的例子:
但是,如果不加range它会输出:
一些手抖(并不)的导致的小错误有时候会变成一个大bug,有时候也会成为一个小彩蛋,更多精彩内容请打开full-speed-python和python,自己动手试一试吧!
关于 pandoc
pandoc是一款开源的标记语言转换工具,它能够识别Markdown, CommonMark, PHP Markdown Extra, GitHub-Flavored Markdown在内的诸多格式,并且能生成XHTML, HTML5, ConTeXt, RTF, OPML, DocBook, JATS, OpenDocument, ODT, Word docx等诸多格式的文件,在安装了LaTeX,ConTeXt, pdfroff, wkhtmltopdf, prince, or weasyprint后,也能输出pdf文件
安装:
1.全平台方式:安装Haskell后使用cabal工具安装
cabal update
cabal install pandoc
2.windows:
下载后执行安装程序即可
3.linux:
先使用包管理工具直接安装,失败则使用全平台方式
使用:
你可以直接在命令行中输入文本将其转换,例如
输入pandoc -f html -t markdown 指令
而后输入 <p>hello,world</p><em>hello,pandoc</em>
然后windows用户按ctrl+z后回车(其他为ctrl+d)
看到如下结果:
当然,以上只是最基本的用法,如若感兴趣,请自行参阅官方文档
用户指南:https://pandoc.org/MANUAL.html
pandoc github链接:https://github.com/jgm/pandoc/
作者介绍:
João Ventura
作者的其他项目:
今日推荐英文原文:《An introduction to the GNU Core Utilities》作者:David Both
原文链接:https://opensource.com/article/18/4/gnu-core-utilities
推荐理由:关于 GNU 核心工具的一份简介。GNU核心工具组(英语:GNU Core Utilities,亦常缩写为Coreutils)是一个包含了多个类Unix所需的基本工具的软件包,其亦是之前许多类似软件包(如textutils(文本工具组)、shellutils(shell工具组)、fileutils(文件工具组)等)所包含工具的集合。
An introduction to the GNU Core Utilities
Two sets of utilities—the GNU Core Utilities and util-linux
—comprise many of the Linux system administrator's most basic and regularly used tools. Their basic functions allow sysadmins to perform many of the tasks required to administer a Linux computer, including management and manipulation of text files, directories, data streams, storage media, process controls, filesystems, and much more.
These tools are indispensable because, without them, it is impossible to accomplish any useful work on a Unix or Linux computer. Given their importance, let's examine them.
GNU coreutils
To understand the origins of the GNU Core Utilities, we need to take a short trip in the Wayback machine to the early days of Unix at Bell Labs. Unix was written so Ken Thompson, Dennis Ritchie, Doug McIlroy, and Joe Ossanna could continue with something they had started while working on a large multi-tasking and multi-user computer project called Multics. That little something was a game called Space Travel. As remains true today, it always seems to be the gamers who drive forward the technology of computing. This new operating system was much more limited than Multics, as only two users could log in at a time, so it was called Unics. This name was later changed to Unix.Over time, Unix turned out to be such a success that Bell Labs began essentially giving it away it to universities and later to companies for the cost of the media and shipping. Back in those days, system-level software was shared between organizations and programmers as they worked to achieve common goals within the context of system administration.
Eventually, the PHBs at AT&T decided they should make money on Unix and started using more restrictive—and expensive—licensing. This was taking place at a time when software was becoming more proprietary, restricted, and closed. It was becoming impossible to share software with other users and organizations.
Some people did not like this and fought it with free software. Richard M. Stallman, aka RMS, led a group of rebels who were trying to write an open and freely available operating system they called the GNU Operating System. This group created the GNU Utilities but didn't produce a viable kernel.
When Linus Torvalds first wrote and compiled the Linux kernel, he needed a set of very basic system utilities to even begin to perform marginally useful work. The kernel does not provide commands or any type of command shell such as Bash. It is useless by itself. So, Linus used the freely available GNU Core Utilities and recompiled them for Linux. This gave him a complete, if quite basic, operating system.
You can learn about all the individual programs that comprise the GNU Utilities by entering the command info coreutils
at a terminal command line. The following list of the core utilities is part of that info page. The utilities are grouped by function to make specific ones easier to find; in the terminal, highlight the group you want more information on and press the Enter key.
* Formatting file contents:: fmt pr fold
* Output of parts of files:: head tail split csplit
* Summarizing files:: wc sum cksum b2sum md5sum sha1sum sha2
* Operating on sorted files:: sort shuf uniq comm ptx tsort
* Operating on fields:: cut paste join
* Operating on characters:: tr expand unexpand
* Directory listing:: ls dir vdir dircolors
* Basic operations:: cp dd install mv rm shred
* Special file types:: mkdir rmdir unlink mkfifo mknod ln link readlink
* Changing file attributes:: chgrp chmod chown touch
* Disk usage:: df du stat sync truncate
* Printing text:: echo printf yes
* Conditions:: false true test expr
* Redirection:: tee
* File name manipulation:: dirname basename pathchk mktemp realpath
* Working context:: pwd stty printenv tty
* User information:: id logname whoami groups users who
* System context:: date arch nproc uname hostname hostid uptime
* SELinux context:: chcon runcon
* Modified command invocation:: chroot env nice nohup stdbuf timeout
* Process control:: kill
* Delaying:: sleep
* Numeric operations:: factor numfmt seq
There are 102 utilities on this list. It covers many of the functions necessary to perform basic tasks on a Unix or Linux host. However, many basic utilities are missing. For example, the mount
and umount
commands are not in this list. Those and many of the other commands that are not in the GNU coreutils can be found in the util-linux
collection.
util-linux
The util-linix
package of utilities contains many of the other common commands that sysadmins use. These utilities are distributed by the Linux Kernel Organization, and virtually every one of these 107 commands were originally three separate collections—fileutils
, shellutils
, and textutils
—which were combined into the single package util-linux
in 2003.
blkdiscard fsfreeze mkfs.cramfs setsid
blkid fstab mkfs.minix setterm
blockdev fstrim mkswap sfdisk
cal getopt more su
cfdisk hexdump mount sulogin
chcpu hwclock mountpoint swaplabel
chfn ionice namei swapoff
chrt ipcmk newgrp swapon
chsh ipcrm nologin switch_root
colcrt ipcs nsenter tailf
col isosize partx taskset
colrm kill pg tunelp
column last pivot_root ul
ctrlaltdel ldattach prlimit umount
ddpart line raw unshare
delpart logger readprofile utmpdump
dmesg login rename uuidd
eject look renice uuidgen
fallocate losetup reset vipw
fdformat lsblk resizepart wall
fdisk lscpu rev wdctl
findfs lslocks RTC Alarm whereis
findmnt lslogins runuser wipefs
flock mcookie script write
fsck mesg scriptreplay zramctl
fsck.cramfs mkfs setarch
Some of these utilities have been deprecated and will likely fall out of the collection at some point in the future. You should check Wikipedia's util-linux
page for information on many of the utilities, and the man pages also provide details on the commands.
Summary
These two collections of Linux utilities, the GNU Core Utilities and util-linux
, together provide the basic utilities required to administer a Linux system. As I researched this article, I found several interesting utilities I never knew about. Many of these commands are seldom needed, but when you need them, they are indispensable.
Between these two collections, there are over 200 Linux utilities. While Linux has many more commands, these are the ones needed to manage the basic functions of a typical Linux host.
每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,欢迎关注开源日报。交流QQ群:202790710;电报群 https://t.me/OpeningSourceOrg