文章吧手机版
《The Linux Command Line》读后感10篇
日期:2018-10-09 04:59:01 作者:文章吧 阅读:

《The Linux Command Line》读后感10篇

  《The Linux Command Line》是一本由William E. Shotts, Jr.著作,No Starch Press出版电子图书,本书定价:0,页数:522,特精心网络整理的一些读者读后感希望大家能有帮助

  《The Linux Command Line》读后感(一):非常适合初学者

  这本书实在是为linux命令行的初学者量身打造的. 我用了2天时一气呵成的看完了这本书.

  用语简洁, 脉络清晰, 就算没有任何的linux使用经验, 也能够在作者引导下, 一点点的去除对命令行的恐惧.

  相见恨晚.

  《The Linux Command Line》读后感(二):用命令写脚本,很不错

  对于第一次接触linux 的人来说非常实用,后期的脚本编写有点写程序味道,linux操作系统本身就是个大程序吧~

  有一些命令,比如lpr在arch linux里找不到,不知道为什么,球指点

  最好对不同发行版特别的命令做点归纳

  《The Linux Command Line》读后感(三):适合初学者的书

  内容流畅,如果对command用的差不多的话再看这本书会感觉没有学到很多新的东西,不过也算对以前记的命令知识做了一下系统整理。总体来说常用command的程序员可以跳过前面几章,要不然会感觉讲的很烦。----------------------------------------------

  《The Linux Command Line》读后感(四):失望的第三版

  看了很多command line的书了,这本书很罗嗦,不少解释没有说到点上.很多实际编程上面经常用的东西反而没有讲.这本书还是想着覆盖的太广反而没有重点的东西讲透.书已经出到第三版了,按道理也应该迭代升级了.不知道作者有没有在网上看看其他作者关于这方面资料,不学习参考其他作者好的东西.link那段写了洋洋洒洒多少字,讲了很多under the hood 的东西,很可惜我感觉作者还是没有讲明白.我看过其他作者的书,几个好的例子,几句话就讲明白了.

  《The Linux Command Line》读后感(五):写给初学者的书,高手请绕行

  综合来看,这本书更像是一个引导“教程”,只要有一点编程基础甚至零基础的人,按照这本书学习,都应该不会有明显不适感。

  综合几本我大体浏览过的Linux入门书,

  《Linux Pocket Guide》

  《Linux In a Nutshell》

  《Running Linux》

  《The Linux Command Line》

  个人推荐顺序如下

  LPG > TLCL > RL > LIN

  《The Linux Command Line》读后感(六):非常好的 Linux & Bash 入门书籍

  先感慨一下:许久没有完整的看完一本书了,更何况是一本技术书!

  回到正题:这是一本非常好的 Linux 入门书籍,结构编排循序渐进,重点难点反复出现有利于巩固消化代码示例丰富讲解简明扼要适时插入相关背景知识、扩大对知识点来龙去脉理解

  关键问题是,你必须使用合适版本

  1. 这本书有「官方免费电子版」:https://sourceforge.net/projects/linuxcommand/,最近的更新日期是 2016-7-29。

  2. 我看的是 人民邮电出版社翻译出版的中文版,翻译和排版有一些小问题,但瑕不掩瑜,整体质量不错。有疑惑地方可以对照英文原版效果明显。

  3. 「不推荐」Github 上网友提供的版本,不管是中文版还是英文版都不推荐,我从第1章看到第21章,发现许多内容缺漏、翻译错误、排版错误,花费了很多精力来回比对,非常痛苦;换成人邮社的版本之后,书籍质量明显提高阅读速度明显加快。

  《The Linux Command Line》读后感(七):《The Linux Command Line》读书笔记

  本读书笔记原文在:

  http://smilejay.com/2012/07/the-linux-command-line/

  #copy abc_1.txt as abc_2.txt, abc_3.txt…

  eq 2 9 | xargs -I ‘{}’ cp abc_1.txt abc_{}.txt

  aspell check vim-temp.txt 做拼写检查

  格式化输出的几个命令:

  l: number lines; folder -w 80 test.txt; fmt: simple text formatter; pr;

  rintf: format and print data.

  格式化文档编辑系统 nroff, troff, TEX groff

  打印文件:pr, lpr

  ftp基本命令:ftp; open ftp.gnu.org; ls; cd gnu/indiction; get **.tar.gz; bye

  本地变量:local 修饰的 其作用域在函数

  test命令:test expr or [ expr ] 是符合POSIX原则

  [[ expr ] 是对test的增强版,增加了字符串的正则表达式和匹配(=~操作符),且其中的==操作符实现路径名的扩展。 非POSIX标准

  (( expr )) 专门为整数设计的表达式。 非POSIX标准

  ipeline starts a new subprocess. 管道开启了一个新的子进程

  here document or here script的语法如下:

  command << token

  text here

  token

  其作用是将文本主题输入重定向到命令的标准输入,是一中I/O redirection方法

  而,here string(<<<)的作用类似于here document,只不过它只对单一的字符创来处理,使用here string的一个实例如下:

  IFS=":" read user pw uid gid name home shell <<< "$password_info"

  et -x # turn on tracing set +x #turn off tracing

  et -x 前面增加的标识符,是$PS4 可以设置为PS4=’$LINENO + ‘ 即可输出行行数,还可以输出调用行函数(参见我们测试用到XVS系统代码)

  参数的扩展:在容易混淆时,尽量使用${var}这样的形式

  ${var:-value1} 在变量var不为空时,保持var原有的值不变;如果var变量未设置或者为空,这表达式结果为value1,但是变量var的值并不改变(未设置或为空)。

  ${var:+value1} 在变量var不为空时,表达式结果为value1;如果var变量未设置或者为空,这表达式结果为空。${var+value1}的效果一样

  ${var:=value1} 在变量var不为空时,保持var原有的值不变;如果var变量未设置或者为空,这表达式结果为value1,变量var也被赋值为value1。

  ${var:?value1} 在变量var未设置或为空时,脚本会退出并抛出一个错误信息(包含value1)。

  返回变量名的扩展:${!prefix*} ${!prefix@}

  {#var} 返回$var变量表示的字符串长度,如果var为*或者@符号,它会返回位置参数的个数。

  {#var:offset} {#var:offset:len} 如果len为空,则返回var中从offset开始到最后一个字符;如果len已经设定,这返回len个长度的字符;若offset为负数,则从最后开始往前计算offset。

  ${parameter/pattern/string}

  ${parameter//pattern/string}

  ${parameter/#pattern/string}

  ${parameter/%pattern/string}

  This expansion performs a search and replace upon the contents of parameter. If text is found matching wildcard pattern, it is replaced with the contents of string. In the normal form, only the first occurrence of pattern is replaced. In the // form, all occurrences are replaced. The /# form requires that the match occur at the beginning of the string, and the /% form requires the match to occur at the end of the string. /string may be omitted, which causes the text matched by pattern to be deleted.

  算术求值: $((expr))

  支持各种进制的整数base#number e.g. echo $((2#11101101))

  支持正负号 (+,-)

  简单算术运算符:+, -, *, /, **, % (**是求幂, %是求模)

  hell的算术运算都是对整数进行的。

  在算术求值表达式中,也可以进行赋值操作,支持如下的操作: $(( expr )) 为如下情况

  var = value

  var += value var -= value *= /= %=

  var++ var-- ++var --var

  位运算:

  ~ 按位取反; & 按位与; | 按位或; ^ 按位异或; << 向左移位; >> 向右移位

  逻辑运算:

  gt;, <, ==, >=, <=, !=, &&, ||, expr1?expr2:expr3

  可以使用bc工具做人任意精度的计算:(当然也可以使用awk, perl中处理浮点型计算)

  c接收类似C语言的文件作为输入来计算。

  echo 'a=22;b=a+3; print a; print "n"; print b; print "n" ' | bc

  echo "1.9999999-0.22222222222222222222222" | bc

  c <<< "1.9999999-0.22222222222222222222222"

  c foo.bc

  c #交互式操作; quit命令可以退出bc

  ash仅支持一维数组:

  a[0]=0; #定义并赋值

  declare -a a; #创建一个数组a

  数组的赋值方式

  1. a[index]=value #单一赋值

  2. a=(value1 value2 …) #同时多个赋值

  输出数组的每个元素,可以用到*和@

  for i in “${a[@]}”; do echo $i; done

  获取数组元素的个数:echo ${#a[@]}

  获取某个元素中的字符个数:echo ${#a[i]} #i=0,1,2,…

  列出数组所用到的下标值:${!a[*]} ${!a[@]}

  在数组末尾添加元素,用+= e.g. foo+=(d e f)

  删除数组:unset foo 也可以删除某个数组元素:unset foo[2]

  没有下边的数组名仅表示小标为0的元素:foo foo[0]

  执行一组命令:1. 命令组 { com1; com2; … } 2. 子Shell (com1; com2; …)

  它的好处是可以处理输出重定向和管道。

  为了解决子Shell中的变量不能在原Shell中使用的问题,就产生了进程替换process substitution。

  lt;(list) #针对产生标准输出的进程list

  gt;(list) #针对产生标准输入的进程list

  trap arg signal [signal…] #当进程接收到某些信号(signal)时进程执行arg中的操作

  e.g. trap “echo ‘I’m ignoring you.’” SIGINT SIGTERM

  异步执行: wait pid #等待PID为pid的进程执行完成

  有名管道:

  创建mkfifo pipe1 #创建了名为pipe1的有名管道, ls -l 可以看到它的类型是p

  rocess1 > pipe1 #进程1会阻塞,直到进程2读取了pipe1中的数据

  rocess2 < pipe1

  有名管道看起来像普通文件一样,但它实际是一个FIFO的buffer

评价:中立好评差评
【已有2位读者发表了评论】

┃ 《The Linux Command Line》读后感10篇的相关文章

┃ 每日推荐