9 18 2008

《A Practical Guide to Ubuntu Linux》笔记

Published by muzuiget at 6:14 下午 under Linux

 a_practical_guide_to_ubuntu_linux_cover.jpg

这本书《A Practical Guide to Ubuntu Linux》(Amazon豆瓣),2007年12月出版的,一千多页的书,网上有英文的电子版,PDF文件,非图像扫描,文字是能选中的(哪里下载?Google一下书名就行了),没有中文版,也不知道国内出版社会不会引进翻译,不过Ubuntu一年更新2次,翻译完说不定作者都发布新版了,还是挂个星际译王啃英文吧,里面的英语不难,不用鸟什么他妈的主谓宾定状补中心思想段落大意。讲解很详细,详细到标题栏最小化最大化按钮也要解释一下,前面说安装解释图形界面的要记的东西不多,所以我从第五章开始记,都是一句话,极不全面和很随便,不保证所说的都是正确。不过作者的确是个很牛逼的人,也是他写的有本《Linux命令、编辑器与Shell编程》(Amazon豆瓣),有中文版,2本书部分章节有重复,上次在购书中心看到,厚厚的很有分量,看了下内容,初步印象不错,翻去看价格,妈的,98元,还好我在学校图书馆借到一本,网上也有CHM格式的英文版(懂英文就是好啊)。

第五章 Linux工具

定位命令

  • “which”和“whereis”的区别是后者显示所有匹配命令。

第六章 Linux文件系统

存取权限

  • 运行一个Shell Script需要读取和执行权限,而二进制则只需要执行权限。
  • 不要给Shell Script设置Setuid权限,因为有潜在危险。
  • 一个目录的other只有x权限,只能用”ls -d”命令来显示目录属性。

连接

  • 用“/bin/pwd”来显示目录连接的实际路径。

第七章 Shell

命令行

  • “–”后边加的参数作为文件名,比如“ls — -l”列出文件名为“-l”的文件信息。
  • “>bb <aa cat”是合法的,Shell先确认重定向符号“<>”,然后再查找并执行命令。

标准输入和标准输出

  • “echo hello > /dev/pts/1”,将回显输出到pts/1中去,而不是当前的终端。终端设备可以用“who”命令查看。
  • Ctrl+D发送EOF信号给命令。
  • 运行“set -o noclobber”避免输出重定向覆盖文件,“set +o noclobber”则恢复允许覆盖文件,用“>|”强制允许覆盖。
  • “cat /dev/null > messages”,清除文件messages的内容,但保留了读写权限。
  • 按Ctrl+Z暂时把程序丢到后台运行,用fg返回,如果只有一个后台程序,不用添加后台程序序号。
  • 把进程丢会前台可以用“fg 1”或者“%N”,N为后台进程序号。
  • 可以使用“kill %N”来终止进程。还需要多按一下回车。

文件路径名扩展

  • 文件名中使用通配符,如果通配符没有展开,那么shell直接传第通配符的给命令。
  • 通配符“?”和“*”都不匹配文件开头的小数点,即要指定隐藏文件的明确指定开头的点。
  • “ls .*”会列出当目录的所有文件,包括隐藏文件,同时也包括当前目录的父目录的文件(“..”给扩展了)。

第八章 Linux GUI:X 和 GNOME

X Windows 系统

  • xev是一个测试教学X Windows工具

第九章 The Bourne Again Shell

背景

  • “bash –posix”让bash更加遵从POSIX标准。

Shell基础

  • 在虚拟终端里不执行这几个文件,~/.bash_profile, ~/.bash_login, and ~/.profile。
  • 登录Sehll在“.bash_profile”调用“.bashrc”。
  • “[ –f ~/.bashrc ]”,测试是否存在这个文件。
  • 在脚本头加上“#! xxxx“,xxxx可以不是一个Shell,其它程序也行。
  • 使用“bash ./aScript”来运行比有运行权限直接用“./aScript”来运行效率要低。
  • 分隔命令的分号“;”后不一定要加空格,加空格只是便于阅读。
  • “d & e & f”,后台运行程序“d”和“e”,前台运行“f”。
  • 使用“fg %aString”来查找一个后台程序,aString为要查找程序的开头字符。
  • 使用“fg %?aString”,也是查找后台程序,不过部分匹配。
  • Ctrt+Z是暂停一个程序,而bg是把程序调到后台继续运行。
  • 如果有后台程序在运行,Shell不允许exit,但用jobs检查后则可以exit,而后台程序依然继续运行。
  • pushd,加上参数进入目录(像cd),不加参数交换目录栈(dirs,显示目录栈)的顶2个目录,并切换目录。
  • “cd -”,回到上一个工作目录,与目录栈无关。
  • “pushd +N”,切换到目录栈第N个目录,栈顶为0,用减号则从栈底起算。
  • “popd +N”,用法同pushd,弹出目录栈。除0之外不改变当前目录。

参数和变量

  • 全局变量通常用大写字母表示,在启动脚本中设定。
  • 用花括号分隔表示变量,${FREE}clock,${10}。
  • 用“readonly”命令为变量加上只读属性。
  • typeset和declare是同一个命令,用于设置变量属性。

历史

  • HISTSIZE变量表示每个会话的保存历史条目数,而HISTFILESIZE则表示全部会话。
  • 迅速替换“^old^new^”相当于“!!:s/old/new/“。
  • “set -o vi”编辑模式,“set -o emacs”模式。
  • “bind –P”显示键位绑定。

别名

  • 别名不会递归。
  • 别名功能会在非交互式shell中禁用,比如脚本。
  • 用双引号包围别名会替换变量(如$PWD),而用单引号则不会。
  • 如果暂时不用别名,可在命令前加“\”。

函数

  • 在shell定义的函数在注销后失效。
  • 如果别名和函数都定义为同一名字,那么用“unset”先取消的是别名,再运行取消是函数。

控制bash的特征和选项

  • 调用bash的命令行长选项要在短选项之前。
  • 用“$(())”或“let”命令来做算术时,表达式中的变量不需要加上“$”号,但加上是个好习惯。
  • 如果想在“$(”后使用括号,必须在第一个“(”后加一个空格,否则就当成了算术表达式了。

2 Responses to “《A Practical Guide to Ubuntu Linux》笔记”

  1. wissleron 31 10 2008 at 1:47 上午

    博主给个英文版的下载地址吧,邮箱:f.wissler@gmail.com

  2. muzuigeton 31 10 2008 at 12:57 下午

    @wissler
    Google一下书名就行了。

Trackback URI | Comments RSS

Leave a Reply