鸟哥Linux私房菜基础学习篇学习笔记2
第九章
- 文件与文件系统的压缩打包:
- Linux下的扩展名没有什么特殊的意义,仅为了方便记忆。
- 压缩文件的扩展名一般为:
*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2
;-
*.Z
是compress程序压缩的文件; -
*.gz
是gzip程序压缩的文件; -
*.bz2
是bzip2程序压缩的文件; -
*.tar
是tar程序打包的数据,并没有压缩过; -
*.tar.gz
是tar程序打包的文件,其中经过gzip程序压缩过; -
*.tar.bz2
是tar程序打包的文件,其中经过bzip2程序压缩过。
-
- Linux上常见的压缩命令时gzip和bzip2, tar可以将多个文件打包为一个文件。
-
gzip [-cdtv#] 文件名
,zcat 文件名.gz
; - bzip2是能取代gzip并提供更高的压缩比而来;
-
bzip2 [-cdkzv#] 文件名
,bzcat 文件名.bz2
;
-
-
tar [-j|-z] [cv] [-f 新建的文件名] filename
--- 打包与压缩。 -
tar [-j|-z] [tv] [-f 新建的文件名]
---- 查看文件名; -
tar [-j|-z] [xv] [-f 新建的文件名] [-C 目录]
---- 解压缩。
- 完整备份工具:dump
- dump不仅能北非整个文件系统,而且还能对目录备份,还能指定等级。
-
dump [-Suvj] [-level] [-f 备份文件] 待备份数据
; -
dump -W
----dump设置的分区是否有备份过。 - dump备份的文件用restore命令进行恢复;
-
restore -t [-f dumpfile] [-h]
---- 用来查看dump文件; -
restore -C [-f dumpfile] [-D 挂载点]
---- 比较dump文件与实际文件; -
restore -i [-f dumpfile]
---- 进入互动模式; -
restore -r [-f dumpfile]
---- 还原整个文件系统;
-
- dump会参考inode的记录。
- 光盘写入工具: mkisofs, cdrecord;
- dd可以读取磁盘设备的内容(几乎直接读取扇区),然后将整个设备备份成一个文件;
- cpio可以备份任何东西,包括设备文件。
- cpio不会主动去找文件来备份。
第十章
- vim程序编辑器:
- 绝大部分的配置文件都是以ASCII的纯文本形式存在,利用简单文字编辑软件就能够修改;
- vim具有程序编辑能力,主动以字体颜色辨别语法的正确性,方便程序设计;
- 程序简单,编辑速度相当速度。
- 三种模式:
- 一般模式: 移动光标,打开默认模式;
- 按
i,I,o,O,a,A,r,R
等任何一个字母就会进入编辑模式; -
:,/,?
进入命令行模式。
-
vim按键说明。
- 块选择(Visual Block):
-
V
--- 字符选择,行选择,会将光标经过的地方反白选择; -
Ctrl+v
--- 块选择,可以用长方形的方式选择数据; -
y
--- 将反白的地方复制下来; -
d
--- 将反白的地方删除;
-
- 多文件编辑:
-
:n
--- 编辑下一个文件; -
:N
--- 编辑上一个文件; -
:files
--- 列出目前这个vim打开的所有文件。
-
- 多窗口功能:
-
:sp[filename]
, 这个filename可有可无; - 利用
[Ctrl]+w+上下键
进行窗口间的移动。 - vim环境设置与记录:
~/.vimrc
和~/.viminfo
--- 自动产生。
-
- 块选择(Visual Block):
第十一章
- 认识和学习bash:
- 管理整个计算机硬件的其实是操作系统的内核(kernel),用户只能通过shell与内核进行通信,shell的功能只是提供用户操作系统的一个接口,因此shell需要可以调度其他软件才行。
- 可以通过shell操作
man, chmod, vi, fdisk, mkfs, chown
等独立的程序。
- 系统合法的shell与/etc/shells功能:
- Bourne shell, Linux默认的是Bshell, 系统中合法的文件都要写入/etc/shells文件中,要使用的shell的查询会借助于/etc/shell这个文件。
-
/bin/bash
是Linux默认的shell, bash的主要优点:- 命令记忆能力(history),默认可以达到1000个;
- 在
~/.bash_history
中,记录上一次登录的执行的命令;
- 在
- 命令别名设置功能(alias);
-
alias lm='ls-al'
;
-
- 作业控制(jobs)、前台、后台控制;
- 程序脚本(shell script):
- shell提供的环境变量及相关命令来设计;
- 通配符(wildcard), 通配符帮助用户查询与命令执行。
- 命令记忆能力(history),默认可以达到1000个;
- bash shell 的内置命令: type,
type [-tpa] name
,通过type可以查询一个命令是否是shell内置命令。 - 反斜杠转义符
/
;
- 变量的可变性与方便性:
- 变量是一组符号或者文字,来代替一些设置或者是一串保留的数据,通过echo或unset进行显示与设置,需要"$"显示。
-
echo $[PATH]
;
-
- 变量的设置规则:
- 变量与变量内容以一个等号"="来连接;
- 等号两边不能直接接空格符;
- 只能是英文或者数字,但是开头不能是数字;
- 变量内容有空格需要用双引号引起来;
- 利用转义符
\
将特殊符转换为一般字符; - 变量增加变量内容时,可用"\(变量名称+累加内容": * "PATH="\)PATH":/home/bin";
- 若变量需要在其他子进程中执行,则需要以export来使变量变成环境变量;
- 通常大写字符默认是系统默认变量;
- 取消变量的方法为:
unset 变量名称
。
- 环境变量的功能: 主文件夹的变换,提示符的显示,执行文件查找的路径;
- 用
env
查看环境变量与常见环境变量说明; - PATH就是执行文件查找的路径,目录与目录中间以冒号(:)分隔,目录的顺序也很重要;
- 用
set
查看所有变量,包括环境变量和自定义变量; - PS1变量;
-
export
可以将自定义变量转换为环境变量;-
export 变量名称
;
-
- 用
- 影响显示结果的语系变量(locale):
-
locale -a
--- 显示支持大部分的语系;
-
- 变量的有效范围:
- 父子进程具有不同的地址空间,变量是否可以被引用与export有关,被export后的变量,称作环境变量;
- 可以简单的把环境变量理解为全局变量,自定义的变量理解为局部变量。
-
read
命令用来读取来自键盘的变量,read [-pt] variable
, -p后面可以接提示符,-t表示等待的秒数。 -
declare
和typeset
一样就是声明变量的类型;-
declare [-aixr] variable
;
-
- bash中的数值运算,默认最多仅能到达整数类型。
- 与文件系统及程序的限制关系: ulimit;
- bash是可以限制用户的某些系统资源的,包括可以打开的文件数量,可以使用的CPU时间、可以使用的内存总量;
- 变量内容的删除、替代与替换:
-
#
代表由前面开始删除,${variable#/*kerberos/bin:}
; -
#
符合替换文字最短的那一个; -
##
符合替换文字最长的拿一个。 - 从后往前删,只需天剑一个
%
。
-
- 变量的测试与内容替换:
-
new_var=${old_var-content}
, 新变量主要用来替换旧变量,新旧变量名称其实经常是一样的。
-
- 变量是一组符号或者文字,来代替一些设置或者是一串保留的数据,通过echo或unset进行显示与设置,需要"$"显示。
- 命令别名与历史命令:
- 命令别名设置:alias与unalias;
- 历史命令:history;
- bash的登录与欢迎信息:
/etc/issue, /etc/motd
; - 终端机环境设置:stty, set;
-
^
在stty -a
中代表Ctrl的意思。
-
-
通配符与特殊符号:
- 统配符(wildcard)让bash处理数据更加方便了。
-
*
--- 代表0个到无穷多个任意字符; -
?
--- 代表一定有一个任意字符; -
[]
--- 代表括号内中任意字符; -
[-]
--- 若有减号在括号内,代表在编码顺序内的所有字符,[0-9]
代表0到9之间的所有数字; -
[^]
--- 表示原向选择,[^abc]
表示一定有一个字符,主要不是a,b,c中的任意一个都可以;
-
- bash中的特殊符号。
- 统配符(wildcard)让bash处理数据更加方便了。
- 数据流重定向:
- 将数据传导到其他地方去;
- IO的三种方式:标准输入(文件描述符为0),标准输出(文件描述符为1)和标准错误(文件描述符为2);
- 若以
>
输出到一个已经存在的文件中,那个文件会被覆盖掉,>>
则不会覆盖,只会将数据累加。 -
1>
以覆盖的方式将正确的数据输出到指定的文件或设备上; -
2>>
以累加的方式将错误的数据输出到指定的文件或设备上。 -
/dev/null
垃圾桶黑洞与特殊写法;- '/dev/null'可以吃掉任何导向这个设备的信息。
-
2>&1
与&>
表示标准输出与标准错误同时写入到同一个文件。 - 标准输入(standard input): <与<<;
- 利用
<<
右侧的控制符,可以终止一次输入,而不必输入Ctrl+d。
- 利用
- 命令执行的判断依据:
;
,,
,&&
,||
;-
$?=0
是一个命令回传码。
-
- 管道命令(pipe):
- 管道命令使用
|
这个界定符号,|
左边输出的内容能够被右边命令所读取,|
对标准错误没有直接处理能力。 - 选取命令:
cut
,grep
--- 根据关键字取得我们想要的哪一行;-
cut
主要的用途在于将同一行里面的数据进行分解,最常使用在分析一些数据或文字数据的时候。-
cut -d '分隔字符' -f fields
--- 用于分隔字符; -
cut -c 字符范围
--- 用于排列整齐的信息。
-
-
grep
主要是分析一行的数据,若当中有所需要的信息,就将该行拿出来。 -
grep [-acinv] [--color=auto] '查找字符串' filename
。
-
- 排序命令:
sort
,wc
,uniq
;-
sort [-fbMnrtuk] [file or stdin]
; -
uniq [-ic]
; -
wc [-lwm]
--- 用于统计行数、英文单词和字符数。
-
- 双向重定向:
tee
--- 会同时将数据流送与文件和屏幕;-
tee [-a] file
。
-
- 字符转换命令:
tr
,col
,join
,paste
与expand
。-
tr
用于删除一段信息中的文字或进行文字信息的替换。
-
- 切割命令:
split
可以将一个大文件切割成为小文件,快速而有效。-
split [-bl] file PREFIX
.
-
- 参数代换:
xargs
--- 用于产生某个命令的参数,可以读入sdin的数据并以空格符或断行符进行分辨。-
xargs [-0epn] command
; - 使用
xargs
的原因是,很多命令其实并不支持管道命令,因此我们可以通过xargs
来提供该命令引用标准输出。
-
- 关于减号
-
的用途:
- 管道命令使用