bzip2
将文件压缩成bz2格式
补充说明
bzip2命令 用于创建和管理(包括解压缩)“.bz2”格式的压缩包。
bzip2 采用 Burrows-Wheeler 块排序文本压缩算法和 Huffman 编码方式压缩文件。 压缩率一般比基于 LZ77/LZ78 的压缩软件好得多,其性能接近 PPM 族统计类压缩软件。
命令行参数有意设计为非常接近 GNU gzip 的形式,但也不完全相同。
bzip2 从命令行读入文件名和参数。 每个文件被名为 “原始文件名.bz2” 的压缩文件替换。 每个压缩文件具有与原文件相同的修改时间、 权限, 如果可能的话,还具有相同的属主, 因此在解压缩时这些特性将正确地恢复。 在某些文件系统中, 没有权限、 属主或时间的概念, 或者对文件名的长度有严格限制, 例如 MSDOS,在这种情况下,bzip2 没有保持原文件名、 属主、 权限以及时间的机制, 从这个意义上说,bzip2 对文件名的处理是幼稚的。
bzip2 和 bunzip2 在缺省情况下不覆盖已有的文件。 如果想覆盖已有的文件,要指定 -f 选项。
如果未指定文件名, bzip2 将压缩来自标准输入的数据并写往标准输出。在这种情况下, bzip2 会拒绝将压缩结果写往终端,因为这完全无法理解并且是没有意义的。
bunzip2 (以及 bzip2 -d) 对所有指定的文件进行解压缩处理。不是由 bzip2 产生的文件将被忽略,同时发出一个警告信息。 bzip2 按下列方式由压缩文件名确定解压后的文件名:
filename.bz2 解压成 filename
filename.bz 解压成 filename
filename.tbz2 解压成 filename.tar
filename.tbz 解压成 filename.tar
anyothername 解压成 anyothername.out
如果文件名的后缀不是下列之一: .bz2, .bz, .tbz2 或 .tbz, .bzip2 将抱怨无法确定原始文件名,并采用原文件名加 .out 作为解压缩文件名。
bzip2recover
恢复被破坏的.bz2压缩包中的文件
补充说明
bzip2recover命令 可用于恢复被破坏的“.bz2”压缩包中的文件。
bzip2是以区块的方式来压缩文件,每个区块视为独立的单位。因此,当某一区块损坏时,便可利用bzip2recover,试着将文件中的区块隔开来,以便解压缩正常的区块。通常只适用在压缩文件很大的情况。
语法
bzip2recover(参数)
参数
文件:指定要恢复数据的.bz2压缩包。
bzless
增强.bz2压缩包查看器
补充说明
bzless命令 是增强“.bz2”压缩包查看器,bzless比bzmore命令功能更加强大。
语法
bzless(参数)
参数
文件:指定要分屏显示的.bz2压缩包。
bzmore
查看bzip2压缩过的文本文件的内容
补充说明
bzmore命令 用于查看bzip2压缩过的文本文件的内容,当下一屏显示不下时可以实现分屏显示。
语法
bzmore(参数)
参数
文件:指定要分屏显示的.bz2压缩包。
cal
显示当前日历或指定日期的日历
补充说明
cal命令 用于显示当前日历,或者指定日期的日历,如果没有指定参数,则显示当前月份。
一个单一的参数指定要显示的年份 (1 - 9999) ; 注意年份必须被完全地指定: cal 89 不会 显示1989年的日历. 两个参数表示月份 (1 - 12) 和年份. 如果没有指定参数, 则显示当前月份的日历.
一年从Jan 1 (1 月 1 日) 开始.
格里高利历法改革(Gregorian Reformation)被认为发生于 1752 年 9 月 3 日. 在此之前, 多数国家已经认可这项改革(尽管有一些直到 20 世纪初才认可它). 那天之后的 10 天在这项改革被略去了, 所以那个月的日历有点不太寻常.
语法
cal [ -mjy ] [ 月份 ] [ 年份 ]
选项
-l # 显示单月输出;
-3 # 显示临近三个月的日历;
-s # 将星期日作为月的第一天;
-m # 显示星期一作为一周的第一天.. (缺省为星期日.)
-j # 显示儒略历的(Julian)日期 (以 1 为基的天数, 从 1 月 1 日开始计数) .
-y # 显示当前年份的日历..
参数
月:指定月份;
年:指定年份。
实例
单独执行cal命令会打印出日历:
cancel
取消已存在的打印任务
补充说明
cancel命令 用于取消已存在的打印任务。
语法
cancel(选项)(参数)
选项
-a:取消所有打印任务;
-E:当连接到服务器时强制使用加密;
-U:指定连接服务器时使用的用户名;
-u:指定打印任务所属的用户;
-h:指定连接的服务器名和端口号。
参数
打印任务号:指定要取消的打印任务编号。
cat
连接多个文件并打印到标准输出。
概要
cat [OPTION]... [FILE]...
主要用途
- 显示文件内容,如果没有文件或文件为
-则读取标准输入。 - 将多个文件的内容进行连接并打印到标准输出。
- 显示文件内容中的不可见字符(控制字符、换行符、制表符等)。
参数
FILE(可选):要处理的文件,可以为一或多个。
选项
长选项与短选项等价
-A, --show-all 等价于"-vET"组合选项。
-b, --number-nonblank 只对非空行编号,从1开始编号,覆盖"-n"选项。
-e 等价于"-vE"组合选项。
-E, --show-ends 在每行的结尾显示'$'字符。
-n, --number 对所有行编号,从1开始编号。
-s, --squeeze-blank 压缩连续的空行到一行。
-t 等价于"-vT"组合选项。
-T, --show-tabs 使用"^I"表示TAB(制表符)。
-u POSIX兼容性选项,无意义。
-v, --show-nonprinting 使用"^"和"M-"符号显示控制字符,除了LFD(line feed,即换行符'\n')和TAB(制表符)。
--help 显示帮助信息并退出。
--version 显示版本信息并退出。
返回值
返回状态为成功除非给出了非法选项或非法参数。
例子
# 合并显示多个文件
cat ./1.log ./2.log ./3.log
# 显示文件中的非打印字符、tab、换行符
cat -A test.log
# 压缩文件的空行
cat -s test.log
# 显示文件并在所有行开头附加行号
cat -n test.log
# 显示文件并在所有非空行开头附加行号
cat -b test.log
# 将标准输入的内容和文件内容一并显示
echo '######' |cat - test.log
注意
- 该命令是
GNU coreutils包中的命令,相关的帮助信息请查看man -s 1 cat或info coreutils 'cat invocation'。 - 当使用
cat命令查看体积较大的文件时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容,为了控制滚屏,可以按Ctrl+s键停止滚屏;按Ctrl+q键恢复滚屏;按Ctrl+c(中断)键可以终止该命令的执行,返回Shell提示符状态。 - 建议您查看体积较大的文件时使用
less、more命令或emacs、vi等文本编辑器。
参考链接
cd
切换用户当前工作目录。
概要
cd [-L|[-P [-e]]] [dir]
主要用途
- 切换工作目录至
dir。其中dir的表示法可以是绝对路径或相对路径。 - 若参数
dir省略,则默认为使用者的shell变量HOME。 - 如果
dir指定为~时表示为使用者的shell变量HOME,.表示当前目录,..表示当前目录的上一级目录。 - 环境变量
CDPATH是由冒号分割的一到多个目录,你可以将常去的目录的上一级加入到CDPATH以便方便访问它们;如果dir以/开头那么CDPATH不会被使用。 - 当
shopt选项cdable_vars打开时,如果dir在CDPATH及当前目录下均不存在,那么会把它当作变量,读取它的值作为要进入的目录。
参数
dir(可选):指定要切换到的目录。
选项
-L (默认值)如果要切换到的目标目录是一个符号连接,那么切换到符号连接的目录。
-P 如果要切换到的目标目录是一个符号连接,那么切换到它指向的物理位置目录。
- 当前工作目录将被切换到环境变量OLDPWD所表示的目录,也就是前一个工作目录。
返回值
返回状态为成功除非无法进入指定的目录。
例子
cd # 进入用户主目录;
cd / # 进入根目录
cd ~ # 进入用户主目录;
cd .. # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. # 返回上两级目录;
cd !$ # 把上个命令的参数作为cd参数使用。
关于切换到上一个工作目录的说明
cd -
# 命令会首先显示要切换到的目标目录,然后再进入。
cd ${OLDPWD}
# 命令会直接切换到上一个工作目录。
关于CDPATH
# 设置桌面文件夹作为CDPATH的值。
CDPATH='~/Desktop'
# 假设我们接下来要演示涉及到的路径~和~/Desktop下没有test3文件夹,现在新建它们。
mkdir ~/test3
mkdir ~/Desktop/test3
# 进入~目录。
cd ~
# 进入test3目录。
cd test3
# 执行后显示~/Desktop/test3并进入该目录,而不是~目录的test3目录。
# 如果CDPATH存在值,那么优先在CDPATH中查找并进入第一个匹配成功的,如果全部失败那么最后尝试当前目录。
关于cdable_vars
cdrecord
Linux系统下光盘刻录功能命令
补充说明
cdrecord命令 用于Linux系统下光盘刻录,它支持cd和DVD格式。linux下一般都带有cdrecord软件。
语法
cdrecord(选项)(参数)
选项
-v:显示刻录光盘的详细过程;
-eject:刻录完成后弹出光盘;
speed=<刻录倍速>:指定光盘刻录的倍速;
dev=<刻录机设备号>:指定使用“-scanbus”参数扫描到的刻录机的设备号;
-scanbus:扫描系统中可用的刻录机。
参数
ISO文件:指定刻录光盘使用的ISO映像文件。
实例
查看系统所有 CD-R(w) 设备:
cdrecord -scanbus
scsibus0:
0,0,0 0) *
0,1,0 1) *
0,2,0 2) *
0,3,0 3) 'HP ' 'CD-Writer+ 9200 ' '1.0c' Removable CD-ROM
用iso文件刻录一张光盘:
cdrecord -v -eject speed=4 dev=0,3,0 backup.iso
参数解释
- -v:显示刻录光盘的详细过程
- -eject:刻完自动弹出光盘
- speed=4 dev=0,3,0:四速刻录到HP CD-writer设备上。
擦写光驱:
cdrecord --dev=0,3,0 --blank=fast
chage
修改帐号和密码的有效期限
补充说明
chage命令 是用来修改帐号和密码的有效期限。
语法
chage [选项] 用户名
选项
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-I:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
实例
可以编辑/etc/login.defs来设定几个参数,以后设置口令默认就按照参数设定为准:
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
当然在/etc/default/useradd可以找到如下2个参数进行设置:
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
通过修改配置文件,能对之后新建用户起作用,而目前系统已经存在的用户,则直接用chage来配置。
我的服务器root帐户密码策略信息如下:
chage -l root
最近一次密码修改时间 : 3月 12, 2013
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
我可以通过如下命令修改我的密码过期时间:
chage -M 60 root
chage -l root
最近一次密码修改时间 : 3月 12, 2013
密码过期时间 : 5月 11, 2013
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :60
在密码过期之前警告的天数 :9
然后通过如下命令设置密码失效时间: