Linux学习之bash学习之在bash中Quoting的解释
bash中的quoting的解释命令行上字符分 literal 和 meta应该很清楚当你在 shell prompt(命令行提示符) 后面敲打键盘、直到按下 Enter 的时候,你输入的文字就是 command line 了,然后 shell 才会以进程的方式执行你所交给它的命令。但是,你又可知道:你在 command line 输入的每一个文字,对 shell 来说,是有类别之分的呢?
简单而言(我不敢说这是精确的定议,注一), command line 的每一个 charactor ,分为如下两种:
literal :也就是普通纯文字,对 shell 来说没特殊功能。
meta :对 shell 來说,具有特定功能的特殊保留字元,也叫元字符。(其他地方我们听到过元数据,metadata类似概念,就是描述数据的数据,就是一种比较特殊的数据。)
两个常见的meta IFS 和 CR我們在 command line 中碰到两个几乎每次都会碰到的 meta :
12IFS:由 <space> 或 <tab> 或 <enter> 三者之一組成(我們 ...
Linux学习之bash学习之在bash中=和=~的区别
怎么理解 bash [[]] 判断中的 = 和 =~ 这2个判断呢??123456789查看 man bash 对 [[ 命令的 =~ 操作符说明如下:An additional binary operator, =~, is available, with the same precedence as == and !=.When it is used, the string to the right of the operator is considered an extended regular expression and matched accordingly.The return value is 0 if the string matches the pattern, and 1 otherwise.If the regular expression is syntactically incorrect, the conditional expression's return value is 2.Any part of the pat ...
Linux学习之bash学习之几个特殊变量
Special Parameters官方原文The shell treats several parameters specially.These parameters may only be referenced; assignment to them is not allowed.
$* 和 $@123* Expands to the positional parameters, starting from one. When the expansion is not within double quotes, each positional parameter expands to a separate word. In contexts where it is performed, those words are subject to further word splitting and pathname expansion. When the expansion occurs within double quotes, it expands t ...
Linux学习之常用的github仓库
bat 命令 替代 cat 命令的1https://github.com/sharkdp/bat
lsd 命令 替代 ls 命令的https://github.com/Peltoche/lsd
lsd 命令 替代 ls 命令的https://github.com/ogham/exa
https://github.com/dandavison/delta
https://github.com/bootandy/dust
https://github.com/muesli/duf
https://github.com/Canop/broothttps://github.com/dalance/procshttps://github.com/sharkdp/fdhttps://github.com/orf/gpinghttps://github.com/BurntSushi/ripgrephttps://github.com/sharkdp/hyperfinehttps://github.com/ggreer/the_silver_searcherhttps://github.com/a ...
Linux学习之文件系统zfs性能优化
How to Improve ZFS performance
https://icesquare.com/wordpress/how-to-improve-zfs-performance/
In this tutorial, I will show you how to improve the performance of your ZFS using the affordable consumer-grade hardware (e.g., Gigabit network card, standard SATA non-SSD hard drives, consumer-grade motherboard etc.).
Many people found a problem on their ZFS system. The speed is slow! It is slow to read or write files to the system. In this article, I am going to show you some tips on improving the s ...
Linux学习之常用的博客网站
http://vim.101hacks.com/
https://linux.101hacks.com/toc/
https://www.theunixschool.com/
https://catonmat.net/top-ten-one-liners-from-commandlinefu-explained
https://catonmat.net/the-next-ten-one-liners-from-commandlinefu-explained
https://catonmat.net/another-ten-one-liners-from-commandlinefu-explained
https://catonmat.net/yet-another-ten-one-liners-from-commandlinefu-explained
https://www.thegeekstuff.com/sed-awk-101-hacks-ebook/
https://mywiki.wooledge.org/BashFAQ
http://bash.cumulonim.biz/Bas ...
Linux学习之文件系统btrfs文件系统
Btrfs 简介一、btrfs文件系统简介btrfs通常解释为b-tree filesystem、better filesystem等,目标是用来解决 ext3文件系统的一些缺陷,例如单一文件系统的限制、总文件系统的限制。btrfs加入了一些核心特性:
核心特性: 1、可由底层多个物理卷进行支持 2、数据存储形式支持RAID,同时在联机的情况下进行“添加硬盘”、“移除硬盘”、“修改文件系统的大小” 3、支持写时复制更新机制,即当我们修改文件时,btrfs先复制一份原文件,对新文件进行修改,结束时,原文件名指向新文件。 4、快照,支持卷的快照和快照的快照 5、透明压缩,即当文件系统存储文件时,文件系统会自动将文件进行压缩再存储,当提取时,文件系统自动进行解压缩,但是用户看不到此过程。 6、子卷和校验码
安装1$ sudo apt update
123$ sudo apt install btrfs-progs -y # 20.04 18.04
创建btrfs文件系统123456789$ sudo mkfs.btrfs -L data /dev/s ...
Linux学习之Perl-One-Liners-Explained系列
perl 单行命令 解释
https://catonmat.net/perl-book
Perl One-Liners Explained, Part I: File Spacing
Hi all! I am starting yet another article series here. Remember my two articles on Awk One-Liners Explained and Sed One-Liners Explained? They have received more than 150,000 views total now and they attract several thousand new visitors every week. Inspired by their success, I am going to create my own perl1line.txt file and explain every single oneliner in it. I hope it becomes as popular as awk1line.tx ...
Linux学习之Sed-One-Liners-Explained系列
sed 一行命令 解释
Sed One-Liners Explained, https://catonmat.net/sed-one-liners-explained-part-one
在开始解释之前,我想分享一下改变我对 sed 的看法的关键思想。它是 sed 的四个内存空间——输入流、输出流、模式空间、保持缓冲区。input stream, output stream, pattern space, hold buffer
Sed 对输入流进行操作并产生一个输出流。输入流中的行被放入模式空间(可以修改它们),然后模式空间被发送到输出流。保持缓冲区可用于临时存储。这四个空格完全改变了我对 sed 的看法。通过本文中的示例,您将了解所有有关它们的信息。
Part 1: File Spacing, Numbering and Text Conversion and Substitution1. File spacing.1.Double-space a file.
1sed G
这个G命令会给每行后面都添加一个新的换行。
This sed one-liner uses the G co ...
Linux学习之Awk-One-Liners-Explained系列
https://catonmat.net/awk-one-liners-explained-part-one
Part 1: File Spacing, Numbering and Calculations##1.Line Spacing
1.每行后面都加上一个空行
1awk '1; { print "" }' #
awk 程序包含一系列的 parttern-action(模式-动作)的语句。类似这样‘pattern{action}’的结构。这个例子中包含了2个语句,一个是 “1”,另一个是“{print “” }”,模式和动作都可以省略的其中一个的。如果模式省略了,默认是对所有的输入内容按行来出来的。如果是动作省略的默认是“{print }”。
注意awk程序是面向行的。
上面的等同于下面这个程序
1awk '1 { print } { print "" }' #
动作只有在模式匹配的情况下才执行。这里例子中的模式是“1” ...
Linux学习之Bash-One-Liners-Explained系列
bash cookbook 技巧来自http://www.catonmat.net/blog
Part I: Working With Files 第一部分 文件处理1.清空文件内容 Empty a file (truncate to 0 size)
1$ > file
这一行命令用到了输出重定向操作符>。输出重定向发生时,文件会被打开准备写入。如果此时文件不存在则先创建,存在则将其大小截取为0(truncate to 0)。这里我们并没有重定向写任何内容到文件中,所以文件依然保持为空。
如果你想替换文件的内容,或者创建一个包含指定内容的文件,可以运行下面的命令:
1$ echo "some string" > file
如果你想往文件里面写入多行内容可以运行下面的命令:
123456cat << EOF > filesome string 1 linestome string .....EOF
2.追加内容到文件
12$ echo "foo bar baz" >> file ...
Android下的配置管理之道之自动abandon很久之前的处于open的patch
自动abandon很久之前的处于open的patch
123456789101112131415GERRIT_SERVER=for i in $(ssh $GERRIT_SERVER gerrit query status:open --current-patch-set age:2month | grep revision: | awk '{print $2}')do LAST_REVISION=$i ABANDON_PROJECT=$(ssh $GERRIT_SERVER gerrit query status:open $LAST_REVISION | grep -E "^\s+project:" | awk '{ print $2 }' | head -1) echo "===================" echo "Gerrit Server: $GERRIT_SERVER" echo "P ...