Linux私房菜 作者介绍,Linux私房菜笔记

认识 bash 这个shell

command [-options] parameter1 parameter2 ...

# 指令 选项 参数(1) 参数(2)

# [--options] 使用选项的完整全名,例如 --help;

man

# 显示 command 的 manual pages,通常从 /usr/share/man 读取

man command

# 搜寻特定指令/文件的man page说明文件

man -f command # <==相当于 whatis command

# 按关键字搜索man page说明文件

man -k command # <==相当于 apropos command

环境变量 $PATH 默认是放置在/usr/share/info/

[tab] 按键:命令与文件补全功能

~/.bash_history 存放使用过的指令记录,按『上下键』可以找到前/后一个输入的指令。使用 history [-raw] histfiles 查看历史命令

set 可以观察目前 bash 环境下的所有变量

命令别名设定: alias, unalias

路径与指令搜寻顺序:1. 以相对/绝对路径执行指令;2. 由 alias 找到该指令来执行;3. 由 bash 内建的 (builtin) 指令来执行;4. 透过 $PATH 这个变量的顺序搜寻到的第一个指令来执行。

login shell 会读取两个配置文件:1. /etc/profile(系统设定),2. ~/.bash_profile 或 ~/.bash_login 或 ~/.profile(个人设定,其中一个),然后会通过这2个文件脚本载入其他文件配置。source (或小数点) 将配置文件的内容读进来目前的 shell 环境中(更改配置文件后不需要注销立即生效)

数据流重导向:1. 标准输入 (stdin):代码为0,使用 或 >> ; 3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> 。双向重导向tee 会同时将数据流分送到文件去与屏幕

stdout > log.text 2> error.text # 将 stdout 与 stderr 分别存到不同的文件去

stdout > log.text 2>&1 # 将 stdout 与 stderr 都写入同一个文件

ls -l / | tee -a ~/homefile | more # 要注意! tee 后接的文件会被覆盖,若加上 -a (append) 这个选项则能将讯息累加

管线命令| 仅会处理 standard output,在每个管线后面接的第一个数据必定是『指令』,而且这个指令必须要能够接受 standard input 的数据。常用管线处理命令 grep cut sort wc uniq split xargs

文件的压缩打包

压缩原理:文件里面有相当多的『空间』存在,并不是完全填满的, 而『压 缩』的技术就是将这些『空间』填满,以让整个文件占用的容量下降。计算机最小的计量单位 bit(1 byte = 8 bits),如果只记录一个数字 1,1 会在最右边占据 1 个 bit,其他的 7 个 bits 将会自动的被填上 0,这7个bits应该算是『空的』,压缩就是通过一些复杂的计算将这些没有使用到的空间提出来,以让文件占用的空间变小。另外一种压缩技术是将重复的数据进行统计记录。

在 Linux 的环境中,常见的压缩文件的扩展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2, *.xz』

*.Z compress 程序压缩的文件; (已经退流行)

*.zip zip 程序压缩的文件;

*.gz gzip 程序压缩的文件;(应用度最广,可解压.Z .zip .gz)

*.bz2 bzip2 程序压缩的文件;

*.xz xz 程序压缩的文件;

*.tar tar 程序打包的数据,并没有压缩过;

*.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩 *.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩 *.tar.xz tar 程序打包的文件,其中并且经过 xz 的压缩

下面是系统常见压缩命令:

gzip [-cdtv#] 文件

# gzip 选项与参数:

# -c :将压缩的数据输出到屏幕上,可透过数据流重导向来处理;

# -d :解压缩的参数;

# -t :可以用来检验一个压缩文件的一致性~看看文件有无错误;

# -v :可以显示出原文件/压缩文件案的压缩比等信息;

# -# :# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是 -6

# 如果压缩的源文件为文本文件,可以尝试使用 zcat/zmore/zless/zgrep 去读取

bzip2 [-cdkzv#] 文件

# -k :保留源文件,而不会删除原始的文件喔!

# -z :压缩的参数 (默认值,可以不加)

# 其他选项同 gzip 相同,可尝试使用 bzcat/bzmore/bzless/bzgrep 读取

xz [-dtlkc#] 文件

# -l :列出压缩文件的相关信息

# -k :保留原本的文件不删除~

# 其他选项同 gzip 相同,可尝试使用 xzcat/xzmore/xzless/xzgrep 读取

若说 gzip 是为了取代 compress,那么 bzip2 则是为了取代 gzip,后来还推出了 xz 这个压缩比更高的软件,3者用法都一模一样

tar [-z|-j|-J] [cv] [-f 待建立的新檔名] filename... # 打包与压缩

tar [-z|-j|-J] [tv] [-f 既有的 tar 檔名] # 观看档名

tar [-z|-j|-J] [xv] [-f 既有的 tar 檔名] [-C 目录] # 解压缩

# 选项与参数:

# -c :建立打包文件,可搭配 -v 来察看过程中被打包的档名(filename)

# -t :察看打包文件的内容含有哪些档名,重点在察看『档名』就是了;

# -x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开

# 特别留意的是, -c, -t, -x 不可同时出现在一串指令列中。

# -z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz

# -j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2

# -J :透过 xz 的支持进行压缩/解压缩:此时档名最好为 *.tar.xz

# 特别留意, -z, -j, -J 不可以同时出现在一串指令列中

# -v :在压缩/解压缩的过程中,将正在处理的文件名显示出来!

# -f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项啰!(比较不会忘记)

# -C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。

# 其他后续练习会使用到的选项介绍:

# -p(小写) :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件

# -P(大写) :保留绝对路径,亦即允许备份数据中含有根目录存在之意;

# --exclude=FILE:在压缩的过程中,不要将 FILE 打包!

最简单的使用 tar 只要记忆以下的方式即可:

压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称

查 询:tar -jtv -f filename.tar.bz2

解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值