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,使用<或<<; 2. 标准输出 (stdout):代码为 1 ,使用 > 或 >> ; 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 欲解压缩的目录
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,561评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,218评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,162评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,470评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,550评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,806评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,951评论 3 407
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,712评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,166评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,510评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,643评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,306评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,930评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,745评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,983评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,351评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,509评论 2 348