@mritd
2016-06-23T07:01:43.000000Z
字数 12496
阅读 2165
Linux
tty : 查看当前终端类型| 返回值 | 终端类型 |
|---|---|
| /dev/pst/# | 伪终端 |
| /dev/tty# | 虚拟终端 |
| /dev/console | 物理终端 |
| /dev/ttys# | 串行终端 |
who : 查看登录用户bashname : 查看目录基名dirname : 查看目录名type : 查看命令类型where : 命令在哪(zsh)hash : 查看命令缓存which : 查看命令所在位置man : 查看命令帮助,可为 命令、程序配置文件格式、系统调用、库调用、游戏及其他不便归类的文件提供操作手册,以下为 man 下的快捷键: man [num] commond 查看指定章节的帮助手册 man -k : 查看命令章节信息(模糊查找) info : 获取在线文档(/usr/share/doc/ 离线文档)shutdown TIME : 关机 -r : 重启-h : 关机-c : 取消重启或关机shutdown 时间格式 : now : 立即关机+# : n 分钟后关机hh:mm : 指定时间关机date : 时间管理 date MMDDhhmm[[CC]YY][.ss] : 设置时间date [+FORMAT] : 指定格式显示时间,具体 man 查看格式hwclock : 硬件时间管理 -s : 把软件时钟设置为硬件时钟-w : 把硬件时钟设置为软件始终hitory : 查看命令历史 -c : 清除命令历史-d # : 删除指定命令-a : 追加当前命令到命令历史ls : 列出目录中内容 -a : 显示所有文件,包含隐藏文件-A : 显示所有文件,但不现实 . .. 目录--color : 设置文件颜色配置,默认 --color=always-d : 如果是目录,则显示目录本身属性,并非展示其目录下文件内容-r : 逆序显示-R : 递归现实-h : 格式化文件大小-l : 长格式显示每个文件具体信息-i : 显示 索引节点号file : 查看文件内容格式echo : 回显(打印)内容 -e : 支持控制符显示-e "\033[##m文本\033[0m" : 设置文本颜色,## 第一个事前景色,3前景色4背景色,第二个是颜色,1~7,多控制用 ; 分隔-n : 不为显示的内容自动换行cat : 文件连接显示命令 -E : 显示结束符 $,在 Linux 下 $ 为换行符,Windows 下为 \n$-v : 显示非打印字符-e : 显示全部非打印符,包括换行符,即全字符显示-n : 显示行号-s : 压缩显示空白行,多个连续空白行将显示为一个空白行cat file1 file2 : 连接并显示两个文件tac : 与 cat 相同,只不过按行逆序显示more : 分页查看文件内容,翻到文件尾部以后则不可以向前翻页,自动退出less : 与 man 相同,支持前后翻页,q 退出head : 查看文件头部内容,默认 10 行 -n # : 显示头部 N 行# : 与 -n # 相同tail : 查看文件尾部内容,默认 10行 -f : 持续监测并显示文件内容cp : 复制文件 -r : 递归复制-i : 交互式-a : 归档模式,相当于 -dr,链接文件不追溯源文件,cp 默认追溯源文件-p : 保持原有属性-f : 强制覆盖touch : 更改时间戳 -c : 不创建文件-t : 明确指定时间-a : 改变访问时间-m : 改变修改时间stat : 查看文件状态元数据wc : 文本统计命令 -l : 查看文件有多少行-c : 统计文本有多少字节-w : 统计文本有多少单词tr : 从标准输入到标准输出的字符替换,如 cat /etc/passwd | tr 'a-z' 'A-Z' -d : 删除指定字符cut : 切割字符 -d'字符' : 指定分段字符-f# : 指定要显示 的列,如 cut -d':' -f1 /etc/passwdtee : 将标准输入内容重定向到标准输出并在此发出标准输出,常用于同时要显示/保存标准输入的内容并且再将其通过管道转发至另一个程序的标准输入sort : 文本排序 -f : 忽略大小写-n : 对数值排序-t : 指定分隔符-k : 指定排序字段-u : 重复行只显示一次uniq : 去重统计 -c : 显示每行的重复次数-d : 仅显示重复的行(>1)-u : 显示从未重复的行md5sum : 获取 md5 摘要sha1sum : 获取 sha1 加密信息read VARNAME : 从标准输入读取一个输入值并赋值给变量 -p : 显示提示信息-t : 设置超时时间watch : 持续运行命令 -n # : 每隔 # 秒运行其后面的命令 '' : 强引用,不会出现变量替换"" : 弱引用,会产生变量替换`` : 命令引用,用于替换成命令执行结果${} : 引用变量,同上 ${VARNAME:-VALUE} : 如果 VARNAME 不为空,则返回其本身,否则返回 VALUE 的值,常用于设置变量默认值,注意 VARNAME 并未被改变{} 代表命令行展开,最简单的应用就是创建多层目录,如 mkdir -p a/{b,c},最终将创建 a/b 和 a/c 文件夹。bash 默认保存以前执行过的命令,使用 history 命令查看,默认保存1000行在 ~/.bash_history 中。
!# : 快速执行命令历史中#号命令!! : 快速执行上一条命令!-# : 快速执行命令历史中倒数#号命令!$ : 引用上条命令的参数!str : 快速执行历史中最近的以str 开始的命令使用 alias 命令可显示系统上所有创建的别名。
在命令前加反斜杠代表使用命令本身,如 \ls。
使用 alias 命令别名='原始命令' 定义命令别名。
使用 unalias 命令别名 撤销一个命令的别名。
* : 表示任意长度的任意字符? : 任意单个字符[] : 匹配指定字符范围内的任意单个字符 [^] : 指定范围以外,取反操作Ctrl+a : 跳转到行首Ctrl+e : 跳转到行尾Ctrl+u : 删除光标到行首Ctrl+k : 删除光标到行尾Ctrl+z : 后台当前程序[set] var=Value 声明local var=value 声明export var=value 声明$1$0 : 脚本名称本身$? : 上一条命令执行状态,范围是 0~255;0 成功,1~255 失败$$ :$! :$# :$* :| 目录 | 功能 |
|---|---|
| /boot | 系统启动文件以及grub(引导加载器bootloader)、vmlinuz(内核)、initrd(完整的小Linux系统)、ramfs文件 |
| /dev | 设备文件:块设备(随机访问无顺序)、字符设备(线性访问有顺序)、设备号(主设备号(major)和次设备号(minor)) |
| /etc | 配置文件 |
| /etc/sysconfig | 系统级别的软件配置 |
| /etc/init.d | 系统运行级别脚本 |
| /home | 普通用户家目录 |
| /lib | 库文件和内核模块文件(.a 静态库、.so 动态库) |
| /lost+found | 存储断电等情况造成的尚未保存的文件 |
| /media | 挂载移动设备目录 |
| /mnt | 挂载硬盘等设备目录 |
| /misc | 杂项 |
| /opt | 早起安装第三方软件目录 |
| /proc | 伪文件系统,默认是空,系统启动后则不为空,存放内核映射文件,一般为内核可调参数、内核工作数据;主要用于内核调优 |
| /sys | 伪文件系统;硬件设备相关属性 映射文件 比如修改磁盘I/O调度 |
| /srv | 为服务提供数据存储位置 |
| /tmp | 临时文件 任何人都可以在里面创建文件 但只能删除自己的 drwxrwxrwt |
| /var | 可变化文件 |
| /bin | 二进制可执行文件(任意用户可执行) |
| /sbin | 管理员二进制可执行程序 |
| /usr | shared read-only 全局共享只读文件 |
| /usr/include | 头文件,编译安装软件时会使用 |
| /usr/bin | 全局只读共享二进制程序 |
| /usr/sbin | 全局只读共享管理员二进制程序 |
| /usr/local | 第三方软件安装目录 |
| /usr/local/bin | 第三方软件二进制可执行文件 |
| /usr/local/sbin | 第三方软件管理员命令 |
| /usr/local/lib | 第三方软件库文件 |
-/f 普通存储的文件,Linux 并不根据文件后缀区分文件类型d 实现路径映射l 软连接用于映射具体文件;硬链接实际上与源文件的 索引节点号 相同,可视为同源文件一样操作,参考 Linux软连接与硬连接。c/b : 鼠标键盘等为 字符设备,有存取顺序,c 标识;硬盘等称之为 块设备,可实现随机存取,b 标识。p : 用于链接两个命令的文件s : 用于网络传输时进程间通讯/etc/passwd : 用户主信息存储文件 用户名:x:UID:GID:finger(备注信息):HOME:SHELL/etc/shadow : 用户密码存储文件 用户名:加密后的密码:最近一次密码修改时间:最短使用期限:最长使用期限:警告区间:非活动区间:账号过期时间:预留/etc/group : 用户组信息存储文件/etc/gshadow : 用户组密码存储文件useradd USERNAME : 用于创建用户 -u : 指定用户 UID-g : 指定用户的基本组 GID,但是GID必须预先存在-G : 指定用户的额外组 GID,组必须事先存在-d : 设置用户的家目录,不能实现复制 -c : 备注信息-s : 指定用户 shell,应使用 /etc/shells 文件中指定的安全 shell,否则可能无法登录系统-r : 指定用户为系统用户,UID 在 1~499 之间,不会给用户创建家目录-p : 直接指定密码-m : 创建用户时自动创建家目录(默认)-M : 创建用户时不创建家目录-D : 为 useradd 命令指定创建用户时的默认值groupadd GRPNAME : 用于创建用户组 -g : 创建组并为其指定 GIDuserdel USERNAME : 删除指定用户,默认不移除家目录 -f, --force : 即使不属于此用户,也强制删除文件-h, --help : 显示此帮助信息并推出-r, --remove : 删除主目录和邮件池-R, --root CHROOT_DIR : chroot 到的目录-Z, --selinux-user : 为用户删除所有的 SELinux 用户映射groupdel GRPNAME : 删除用户组,删除用户基本组,用户未删除时无法操作chsh USERNAME : 改变用户默认 shellchfn USERNAME : 更改用户描述信息usermod USERNAME : 改变用户信息 -u : 改变用户 UID-g : 改变用户 GID-G : 改变用户附加组,默认会覆盖原来的附加组,通常和 -a 一起使用-a : 修改附加组时保持追加,不覆盖原有附加组-c : 修改用户注释-d : 修改用户家目录,默认不会迁移用户的家目录,如果要迁移需要配合 -m-m : 修改时家目录时迁移文件-s : 指定新的 shell -l : 更改用户名-L : 锁定用户账号-U : 解锁用户账号chage : 设置密码期限 -d : 设置最近密码修改时间-E : 设置密码过期时间-I : 设置密码失效时间-m : 设置密码最短使用期限-M : 设置密码最长使用期限-W : 设置警告时间groupmod GRPNAME : 用户组信息修改 -g : 改变组的 GID-n : 改变组名newgrp GRPNAME : 切换用户组 < : 用于输入重定向,比如讲一个文本内容重定向到一个命令,如tr 'a-z' 'A-Z' < /etc/passwd<< : 此处文档,常用于生成菜单,同 EOF 结束符一起使用,如下所示 :
cat << EOF1、test12、test23、test44、test4EOF
> : 覆盖输出重定向,该重定向会覆盖文件上一次的内容,重新写入新内容。>> : 追加输出重定向,该重定向会将新内容追加到文件末尾,不会覆盖原来的文件内容set -C : 禁止使用覆盖重定向到已存在的文件set +C : 与上面的相反>| : 在 set -C 下强制覆盖重定向2> : 错误输出覆盖重定向2>> : 错误输出追加重定向&> : 同时重定向错误输出和标准输出 | : 管道用于将前一个命令的输出重定向为第二个命令的输入,配合 tee 命令可实现 T 形管道bash -n FILE : 测试 bash 脚本语法{startNum..endNum} : 生成数字列表,如 {1..10} 展开为1~10seq : 生成列表命令 seq start end : 从一个指定的数值开始,依次生成到另一个数直接薇seq start Steps end : 从第一个数值开始,以指定步长生成列表,如 seq 1 3 10 表示从 1 开始,每次步长为 3 生成列表,到 10 截止。
for varName in arry;dosomrthingdone
declare : 指定变量声明类型 i : 声明变量为整型x : 声明变量为环境变量,与 export 类似let COMMOND : 将后面的表达式视为算是运算$[COMMOND] : 同 let 相同$((COMMOND)) : 同 let 相同`expr COMMOND` : 同 let 相同 bash 支持常见的算术运算,如 +、-、*、/、++、--、% 等,但是 bash / 运算时进行圆整操作,不会产生小数。
$0 : 脚本自身$1 ... : 脚本的第 N 个参数$# : 位置参数的个数$* : 显示所有位置参数$@ : 显示所有位置参数grep 用于根据 指定的模式 在文本中搜索内容,其语法如下:
grep [选项]... PATTERN [FILE]...
默认的 grep 正则工作在贪婪模式下,即尽可能多的匹配更多的字符。
. : 匹配任意单个字符[] : 指定范围内的单个字符,如 [a-z][^] : 指定范围外的单个字符,如 [^A-Z][0-9],[[:digit:]] : 所有数字 [a-z],[[:lower:]] : 所有小写字母[A-Z],[[:upper:]] : 所有大写字母[a-zA-Z],[[:alpha:]] : 所有大小写字母[a-zA-Z0-9],[[:alnum:]] : 所有大小写字母加数字[[:space:]] : 所有空白字符[[:punct:]] : 所有标点符号* : 匹配其前面的字符任意次,.* 代表匹配任意长度任意字符\? : 匹配其前面的字符0次或1次,\ 代表转义\{m\} : 匹配其前面的字符m次\{m,n\} : 匹配其前面的字符至少每次最多n次\{m,\} : 匹配其前面的字符至少m次\{0,n\} : 匹配其前面的字符最多n次^ : 锚定行首,必须出现在模式行首$: 锚定行尾,必须写在模式行尾^$ : 表示空白行\< : 锚定词首\> : 锚定词尾\(\) : 分组,括号内内容当做一个整体对待\1 : 后向引用,引用前面第一个分组模式所匹配的内容,其中数字可根据需要变动,如 \2字符匹配
. : 任意单个字符[] : 指定范围单个字符[^] : 指定范围外单个字符次数匹配
* : 任意次? : 0次或1次+ : 至少1次{m} : m次{m,n} : 至少m次,最多n次{m,} : 至少m次{0,n} : 最多n次位置锚定
^ : 锚定行首$ : 锚定行尾\<、\b : 锚定词首\>、\b : 锚定词尾分组匹配
() : 分组| : 或者bash 中使用如下格式进行测试
test EXPRESSION[ EXPRESSION ][[ EXPREXXION ]]
bash 一般有以下3种判断
if 条件测试; then分支语句fi
if 条件测试; then分支语句1else分支语句2fi
if 条件测试1; then分支语句1elif 条件测试2; then分支语句2elif 条件测试3; then分支语句3...else分支语句nfi
整数测试为二元表达式,其格式大致为 [ num1 OPRAND num2 ],基本操作如下
-gt : 大于-lt : 小于-ge : 大于等于-le : 小于等于eq : 等于> : 大于< : 小于== : 等于,在 bash 中,事实上由于变量赋值时变量不加 $,而等值比较时则会加上 $,所以使用一个 = 也是可以做等值判断的,不过鉴于规范一般不这么写=~ : 左侧是一个字符串,右侧是一个模式,用于判断某个字符串是否满足给定的模式,通常在 [[]] 中使用;模式不要加引号-n : 测试字符串是否为空,不空为真,空为假-z : 测试字符串是否为空,空为真,不空为假注意,测试时操作符两边要有空格,如 [ "str1" == "str2" ]
-e、-a : 测试文件是否存在,如果存在则返回 true
-f : 测试文件是否存在并且为普通文件
-d : 测试文件是否存在并且为目录文件
-b : 测试文件是否存在并且为块设备
-c : 测试文件是否存在并且为字符设备文件
-h、-L : 测试文件是否存在并且为符号链接文件
-p : 测试文件是否存在并且为管道文件
-r : 测试文件是否存在并且对当前用户具有读权限
-w : 测试文件是否存在并且对当前用户具有写权限
-x : 测试文件是否存在并且对当前用户具有执行权限
-S : 测试文件是否存在并且为套接字文件
-s : 测试文件是否存在并且文件不为空
file1 -nt file2 : 测试 file1 是否比 file2 更新(最近修改时间)
file1 -ot file2 : 测试 file1 是否比 file2 更老(最近修改时间)
file1 -ef file2 : 测试 file1 和 file2 是否是相同的设备以及 inode 是否相同
默认 bash 脚本执行完成后,使用 $? 获取脚本执行状态码,其中 0 表示成功,1~255 表示失败。
bash 中使用 exit NUM 命令自定义脚本的退出状态码,如果不指定,那么 bash 默认采用最后一条命令的执行状态作为整个脚本执行状态码;也就是说不论前面的命令执行是否失败,只返回最后一条命令的执行状态码。
shift : 位置参数轮替
shift 用于动态替换位置参数,如下所示,当该脚本有多个参数是,使用 shift 将自动替换 $1 为后面的参数,类似于 java 的迭代器
#!/bin/bashsum=0for i in `seq 1 $#`;dolet sum+=$1shiftdoneecho $sum
语法格式 :
while 条件测试; do循环体done
MBR(Master Boot Record) 被称为主引导记录,通常存放与磁盘的第0个扇区,其保存着磁盘分区、引导信息。
通常 MBR 为 512 byte,其中 bootloader(引导加载器) 占用 446 byte,剩下的每16个字节引导一个分区,2个字节被填充了2个5A,称之为MBR有效性标记,所以 MBR 分区表状态下的磁盘最多有 4 个主分区。
fdisk : 磁盘分区命令 -l : 列出当前系统所有磁盘和分区-d : 删除分区-n : 新建一个分区-p : 列出已有分区-t : 调至分区ID-l : 列出内核支持的分区id-w : 保存退出-q : 不保存退partprobe : 重读系统磁盘信息(CentOS5)partx、kpartx : 重读系统磁盘信息(CentOS6)一般 CentOS6 后两个命令有时不生效,所以规律是按照以下执行可能会生效,实在不行重启...
kpartx -l /dev/sdakpartx -af /dev/sdapartx -a /dev/sda
cat /proc/partitionscat /proc/meminfocat /proc/filesystem查看当前系统识别了那些磁盘设备 ls /dev/sda*
mkfs DEV : 创建文件系统(格式化)
-t FSTYPE DEV : 将指定设备格式化成指定文件系统 mke2fs DEV : ext2 文件系统创建的快捷命令,可用于创建其他文件系统,其配置文件位于 /etc/mke2fs,定义了命令默认的创建文件系统行为 -t : 指定创建的文件系统,同 mkfs -t-j : 快速创建 ext3 文件系统,同 mkfs -t ext3-L : 指定卷标-b : 指定块大小,一般可选值 1024|2018|4096,默认4k-i : 设置 inode 值(多少字节预留一个 inode),配置文件中有默认值-N : 直接指定预留多少 inode-I : 直接指定 inode 大小-m : 预留管理员空间百分比(用于磁盘沾满时操作数据使用),默认 5%e2label DEV : 查看卷标e2label DEV LABEL_NAME : 设置卷标blkid DEV : 查看磁盘信息,包括全局唯一标示 UUID 和 文件系统类型 TYPEdumpe2fs DEV : 查看磁盘块信息,包括超级块、块组、块位图、inode 位图、inode 表、空闲块、空闲 inode 等 -h : 仅显示 超级块信息-o : 指定显示超级块信息tune2fs : 调整磁盘信息,块大小不能调整 -l DEV : 显示超级块信息-L LABEL : 设置卷标-m # : 调整预留百分比-j : 调整文件系统,如果原来的文件系统为 ext2,则此选项将无损数据将其转换为 ext3,ext3 转 ext2 直接在挂载时挂载为 ext2 即可-c # : 每挂载 # 次检查文件系统-o [^]mount-options[,...] : 指定默认挂载选项(^代表关闭,不加代表启动),如 acl 文件访问控制列表等-O [^]feature[,...] : 调整其分区特性fsck : 文件系统检测命令 -t FSTYPE DEV : 以指定文件系统类型检测磁盘-f DEV : 强行检测-r : 交互式提醒修复错误-a : 自动修复错误e2fsck : 快速检测文件系统(相当于快捷命令,文件系统自动判定) -f : 强制检测-t : 指定执行时间计数-y : 自动回答所有问题,默认全部 yes交换分区 : 虚拟内存mkswap DEV : 格式化为交换分区 -L : 指定卷标swapon、swapoff : 启动、禁用交换区 -a : 启用所有交换区-p # : 指定优先级(仅 on)hdparm : 读取磁盘硬件信息 i : 显示磁盘磁头信息(通过内核)I : 显示磁盘磁头信息(通过硬件)g : 显示磁盘硬件布局信息t : 测试磁盘 buffer cache 信息T : 测试磁盘直接读取写入信息挂载点 : 一旦某个目录被作为挂载点,则原目录下所有文件将被暂时隐藏,挂载点空闲时才可被卸载,也可以强制卸载mount [options] [-t fstype] [-o options] DEV DIR : 挂载命令,不带任何选项默认显示当前系统所有已挂在设备,实质是读取了 /proc/mounts,/etc/mtab 文件存放了所有 mount 命令的挂载点信息 -t : 指定文件系统类型-r : 只读方式挂载-w : 读写挂载-o : 指定额外的 options-L : 根据卷边挂载LABLE='XXXX' : 根据卷标挂载-U : 以 UUID 方式挂载UUID='xxxx' : 以 UUID 方式挂载-a : 自动挂载所有的支持自动挂载的设备(需先在/etc/fstab中定义)mount -o : 设置磁盘硬件属性 async : 启用异步 I/Osync : 启用同步 I/Oatime : 启用实时更新文件时间戳noatime : 禁用实时更新文件时间戳auto : 启用自动挂载(-a 支持设备)noauto : 禁用自动挂载(-a 支持设备)exec : 开启自动执行noexec : 禁止自动执行group : 此组内用户可挂载该设备_netdev : 禁止网络设备未初始化前挂载,在需要挂载网络硬盘时,如果设置了开机自动挂载,当网络设备未完全初始化前挂载网络硬盘,则可能造成卡死,此选项可确保网络谁被初始化后才被允许挂载remount : 自动重新挂载ro : 挂载为只读rw : 挂载为读写acl : 启用文件访问控制列表umount DEV|MOUNT_POINT : 卸载命令fuser OPTIONS DEV : 查看磁盘访问占用信息 -v : 查看哪些用户正在访问目标磁盘-k : 杀死正在访问磁盘进程-m : 指明挂载点(一般km一起使用踢出占用磁盘的用户)df DEV : 查看磁盘占用情况,不加设备显示所有 -h : 以以人易读的格式进行显示-i : 显示 inode 信息du : 评估文件占用磁盘空间情况 -s : 显示目录大小/etc/rc.d/rc.sysinit : 系统初始化脚本,包括挂载 /etc/fstab 文件中定义的文件系统挂载点等/etc/fstab : 系统自动挂载配置文件,格式如下 : | 待挂载设备 | 挂载点 | 文件系统格式 | 挂载参数 | 转储频率 | 自检顺序 |
|---|---|---|---|---|---|
| proc | /proc | proc | defaults | 0 | 0 |
| /dev/mapper/vg0-usr | /usr | ext4 | defaults | 1 | 2 |
交换分区用于在系统内存不够用时将其转储到硬盘,在 /proc/sys/vm/swapiness 文件中有其使用倾向定义;一般当物理内存小于 2G 通常设置为 2*物理内存,2~4G 设置为4G,当大于4G时署名服务器对性能要求很高,基本没有什么要求
free : 查看内存使用情况 -h : 以人类可读的形式显示-s # : 每隔 # 秒打印一次内存使用情况-c # : 与 -s 配合使用,表示打印 # 次后停止打印dd : 低级复制命令,dd 命令会跨过文件系统直接复制磁盘块,相对于cp属于更低级的复制命令 if : input file,源文件of : out file,目标文件bs : 每次复制块大小,可选 [b|kb|m|g]count : 复制块次数 oflag=FLAGS : 创建稀疏文件dd if=/dev/sda of=/dev/sdb : 磁盘对拷dd if=/dev/cdrom of=/tmp/linux.iso : iso 镜像提取dd if=/dev/zero of=/dev/sda bs=512 count=1 : 抹掉MBRdd if=/dev/zero of=/swapfile bs=512M count=1 : 创建一个 512M 的本地回环设备文件硬链接 : 硬链接实质上是对同一分区上多个路径指向了同一 inode 的文件,硬链接不可跨分区,目录无法创建硬链接。
软链接 : 软链接实质上与源文件是两个文件,且 inode 不同,但是软连接文件的 inode 中会存储源文件的路径信息,可跨分区,可对目录创建。
ln SOURCE_FILE TARGET_FILE : 创建硬链接文件 -s : 创建软链接-v : 显示创建过程zip : 归档压缩工具,需要指定输出文件,可压缩目录;但是想压缩目录下的文件时必须指定到文件,如 zip tmp.zip /tmp/*gzip、gunzip : gzip SRC TARGET 压缩(删除源文件) -d : 同 gunzip 解压缩(删除源文件)-c : 将压缩结果输出到 STDOUT,可使用管道等进行重定向操作-r : 递归压缩指定目录下的所有文件-# : 设置压缩率,默认6,取值1~9,其他压缩命令同样支持zcat : 不解压查看 gzip 压缩包内容 -l : 列出压缩包内文件列表-r : 递归列出文件列表bzip2、bunzip2 : bzip2 压缩命令 -d : 解压文件k : 保留原文件压缩/解压bzcat : 不解压查看 bzip2 压缩包内容xz : xz 压缩命令,更高级的压缩工具,压缩删除源文件 -d : 解压文件xzcat : 不解压查看 xz 压缩包内容tar : 创建归档命令,一般命令格式为 tar [options] -f FILE.tar File1...,其中源文件可以是文件也可以是目录 -c : 创建归档-x : 展开归档-t : 不展开查看归档文件列表-z : 调用 gzip 压缩-j : 调用 bzip2 压缩-J : 调用 xz 压缩-v : 展示过程