Linux命令速查---kalrry

1、shell的作业控制

命令作用
jobs列出作业
&在后台运行作业
Ctrl+Z挂起当前(前台)作业
suspend挂起shell的执行
fg [%jobnumber]撤销作业的挂起操作,让它在前台运行
bg [%jobnumber]让挂起的作业在后台运行

2、文件基本操作

命令作用
ls列出目录中的文件
cp复制文件
mv重命名(“移动”)文件
rm删除(“移除”)文件
ln创建文件链接(替代名称)

ls

格式:ls [option] [files]

作用:列出文件和目录的属性

常用选项:

-a 列出所有的文件,包括文件名以句点开头的文件

-l 长列表,包括文件属性。添加-h选项后,输出文件大小时,将以千字节、兆字节和千兆字节为单位,而不是以字节为单位

-G 在长列表中,不输出文件的组所有权

-F 用意义明确的符号修饰文件名称,从而指示文件的类型。通常,文件名后面附加“/”表示“可执行文件”,附加“@”表示符号链接,附加“|”表示命名管道,附加“=”表示套接字。这些只是对人类有提示作用的视觉标识,而不是文件名的一部分。

-S 按大小对文件排序

-t 按照最近修改时间对文件进行排序

-r 反序

-R 显示目录时,递归显示其内容

-d 显示目录时,不显示其内容,仅显示目录本身的信息


cp

格式:cp [options] files (file | directory)

作用:复制文件

常用选项:

-p 不仅复制文件内容,同时复制文件权限、时间戳,同时如果你具有足够的权限的话,还可以复制其属主和用户组(通常,这些副本将归你所有,以当下时间作为时间戳,相应的权限则是通过将umask应用于原始权限来设置的)

-a 递归复制目录的层次结构,保留所有的文件属性和链接

-r 递归复制目录的层次结构。该选项不保留文件的属性,如权限和时间戳,但是会保留符号链接

-i 交互模式。在覆盖目标文件之前会进行询问

-f 强制复制。如果目标文件存在的话,则无条件覆盖


mv

格式:mv [options] source target

作用:对文件进行重命名,或将文件或目录移动到目标目录中

常用选项:

-i 交互模式。在覆盖目标文件之前进行询问

-f 强制移动。如果目标文件存在的话,则无条件覆盖


rm

格式:rm [options] files | directories

作用:删除文件或递归删除目录

常用选项:

-i 交互模式。在删除每个文件之前都会进行询问

-f 强制删除,忽略任何错误或警告

-r 递归删除目录及其内容。该选项请谨慎使用,特别是与-f选项结合使用时尤其如此,因为这会删除所有的文件


ln

格式:ln [options] source target

作用:创建链接

常用选项:

-s 创建一个符号链接而非硬链接

-i 交互模式。在覆盖目标文件之前进行询问

-f 强制链接。如果目标文件存在的话,则无条件覆盖

-d 创建指向目录的硬链接(仅限于超级用户)

注:readlink linkname命令用于查找符号链接指向的位置,而当符号链接指向其他符号链接时,要想找出整个链接最终指向的位置,请使用readlink -f命令


3、目录操作

命令作用
cd更改当前目录
pwd打印当前目录的名称
basename打印文件路径的最后部分
dirname打印文件路径,其中不包括最后部分
mkdir创建目录
rmdir删除空目录
rm -r删除非空目录及其内容

cd

格式:cd [directory]

作用:设置当前的工作目录

注:如果不提供具体目录的话,默认切换到主目录


pwd

格式:pwd

作用:输出当前工作目录的绝对路径


basename

格式:basename path [extension]

作用:输出文件路径中的最后面部分

注:如果提供了可选的扩展名,那么结果中的扩展名也同时删除


dirname

格式:dirname path

作用:输出文件路径(同时删除其最后面的部分)

注:dirname命令不会改变当前的工作目录。它只是处理并输出一个字符串,与basename类似


mkdir

格式:mkdir [options] directories

作用:创建一个或多个目录

常用选项:

-p 给定目录路径(而非简单的目录名),自动创建必需的父目录

-m 创建具有给定权限的目录,如:mkdir -m 0755 publicdir,默认情况下,赋予的权限是由shell的umask来控制的


rmdir

格式:rmdir [options] directories

作用:删除一个或多个空目录

常用选项:

-p 如果提供了目录路径(而非简单的目录名称),那么不但可以自动删除指定的目录,还可以自动删除指定的父目录

注:要删除非空目录及其内容,请谨慎使用rm -r目录。如果使用rm -ri命令的话,可以进行交互式删除,如果使用rm -rf命令的话,则会直接删除而不提供任何错误信息,同时也不要求进行确认


4、查看文件

命令作用
cat查看完整的文件
less逐页查看文本文件
nl利用行编号查看文本文件
head查看文本文件的第一行
tail查看文本文件的最后一行
strings显示嵌入二进制文件的文本
od以八进制(或其他格式)格式查看数据

cat

格式:cat [options] [files]

作用:将文件输出至标准输出,或将一组文件发送到shell管道

常用选项:

-T 将制表符输出为I

-E 将换行符输出为$

-v 以人类可读的格式打印其他非打印字符

-n 为每行添加行号

-b 为非空白行添加行号

-s 将连续的空白压缩为一个空白行


less

格式:less [options] [files]

作用:以每次一页的方式查看文本

常用选项:

-c 在显示下一页之前清除屏幕。这样可以避免滚屏,并且看起来更加舒适

-m 输出更详细的提示,并给出显示进度

-N 显示行号

-r 按照字面形式显示控制字符;通常less会将控制字符转换为人类可读的格式

-s 将多个相邻的空白行压缩成单个空白行

-S 当某行内容很长时,截短为与屏幕等宽


nl

格式:nl [options] [files]

作用:将文件复制到标准输出,并添加行号

常用选项:

-b [a|t|n|p R] 在所有行(a)、非空白行(t)或包含正则表达式R的行前面添加行号。而n表示不给任何一行编号(默认值=a)

-v N 从整数N开始编号(默认值=1)

-i N 每一行递增N,例如,你可以仅使用奇数(-i 2)或偶数(-v 2 -i 2)(默认值=1)

-n [ln|rn|rz] 将编号格式化为左对齐(ln)、右对齐(rn)或带前导零(rz)的右对齐(默认值=ln)

-w N 将数字的宽度强制为N列(缺省值=6)

-s S 在行号和文本之间插入字符串S(默认值=Tab)


head

格式:head [options] [files]

作用:输出文件前10行,或预览命令管道输出的前几行内容

常用选项:

-n N 打印前N行,而不是前10行

-N 作用与-n N相同

-c N 输出文件的前N个字节

-q 安静模式,当处理一个以上的文件时,不在每一个文件之上打印一个横幅。通常,head命令会输出包含文件名的横幅


tail

格式:tail [options] [files]

作用:输出文件的最后10行,并执行其他操作

常用选项:

-n N 输出最后N行,而不是最后10行

-N 作用与-n N相同

-n +N 输出除了第N行之外的所有行

-c N 输出文件的最后N个字节

-f 打开文件,每当文件附加新的行时,输出它们。这个功能是非常有用的。如果文件不存在,但你想等到它出现的话,可以添加–retry选项

-q 安静模式,当处理的文件多于一个的时候,不给每个文件都输出一个横幅。通常情况下,tail都会输出一个包含文件名的横幅


strings

格式:strings [options] [files]

作用:提取二进制文件中的可读文本,并将其显示在标准输出中

常用选项:

-n length 仅显示长度大于length(默认值为4)的字符串


od

格式:od [options] [files]

作用:查看二进制文件

常用选项:

-N B 仅显示每个文件的前B字节,可以用十进制、十六进制(通过前缀0x或0X)、512字节块(通过附加b)、千字节(通过附加k)或兆字节(通过附加m)来指定(默认情况下会显示整个文件)

-j B 从每个文件的第B+1字节处开始输出,可接受的格式与-N选项相同(缺省值=0)

-w [B] 每行显示B字节,可接受的格式与-N选项相同。如果只是使用-w本身的话,就等同于-w 32(默认值=16)

-s [B] 将每行字节分为B字节为单位的序列,由空格分隔;可接受的格式与-N选项相同。如果只是使用-s本身的话,就等同于-s 3(默认值=2)

-A(d|o|x|n) 显示最左列,可以以十进制(d)、八进制(o)、十六进制(x)或全部(n)为单位(默认值=o)

-t(a|c)[z] 以字符格式显示输出,非字母数字字符输出为转义序列(c)或名称(a)

-t(d|o|u|x)[z] 以整数格式显示输出,可以使用八进制(o)、有符号十进制(d)、无符号十进制(u)、十六进制(x)

注:将z附加到-t选项的话,会在输出的右侧输出一个新列,用来显示每行中的可打印字符


5、文件属性

命令说明
stat显示文件和目录的属性
wc统计字节数、字数和行数
du显示文件和目录的磁盘使用情况
file识别(猜测)文件的类型
touch更改文件和目录的时间戳
chown更改文件和目录的属主
chgrp更改文件和目录所属的用户组
chmod更改文件和目录的保护模式
umask为新的文件和目录设置默认模式
chattr更改文件和目录的扩展属性
lsattr列出文件或目录的扩展属性

stat

格式:stat [options] files

作用:显示文件(默认情况下)或文件系统(-f选项)的重要属性

常用选项:

-L 跟踪符号链接,并报告它们指向的文件

-f 显示文件所在文件系统的信息,而不是文件本身的信息

-t 简洁模式,单行输出所有信息


wc

格式:wc [options] [files]

作用:输出文本文件中的字节数、字数和行数

常用选项:

-l 仅输出行数

-w 仅输出字数

-c 仅输出字节数

-L 找出每个文件中最长的行,并以字节为单位输出该行的长度


du

格式:du [options] [files | directories]

作用:输出文件或目录所占用的磁盘空间(以块为单位)

常用选项:

-b 输出以字节为单位的大小

-k 输出以千字节为单位的大小

-m 输出以兆字节为单位的大小

-B N 根据所定义块为单位来显示大小,其中1个块=N字节(默认值=1024)

-h -H 以人类可读的单位进行输出。-h选项使用1024的幂,而-H则使用1000的幂

-c 在最后一行输出总数。这是输出目录大小时的默认设置,但是用于特定文件的时候,如果需要统计总大小的话,请使用-c选项

-L 跟踪符号链接并显示它指向的文件的大小

-s 仅输出总大小

-a 递归显示


file

格式:file [options] files

作用:输出文件的类型

常用选项:

-b 输出时忽略左边部分的文件名

-i 输出文件的MIME类型,而不是常规的文件信息

-f name_file 从给定的name_file文件中读取文件名,逐行读取,每行一个文件名,并报告其类型。之后,以常规命令行的方式处理文件名

-L 跟踪符号链接,然后报告目标文件的类型,而不是显示链接的类型

-z 如果文件被压缩,则检查未压缩的内容以确定文件类型,而非显示“压缩数据”


touch

格式:touch [options] files

作用:修改文件的两个时间戳(修改时间、访问时间);创建空文件

常用选项:

-a 仅修改访问时间

-m 仅更改修改时间

-c 如果文件不存在,不要创建它

-d timestamp 设置文件的时间戳

-t timestamp 一种设置时间戳的高级方式,格式为[[CC]YY] MMDDhhmm [.ss]


chown

格式:chown [options] user_spec files

作用:设置文件和目录的所有权

user_spec参数可以是:

  • 现有用户名(或任何数字形式的用户ID),以便设置属主
  • 现有用户名(或任何数字形式的用户ID),作为可选项可以跟冒号和现有用户组名(或任何数字形式的用户组ID),以便设置属主和用户组
  • 现有的用户名(或任何数字形式的用户ID)后面跟冒号,来设置属主,并将用户组设置为调用用户的登录组
  • 位于冒号之后的现有用户组名(或任何数字形式的组ID),仅设置用户组
  • –reference=file,将属主和用户组设置为给定的另一个文件的属主和用户组

常用选项:

–dereference 跟踪符号链接并对其指向的文件进行操作

-R 递归更改目录层次结构中的相应权限


chgrp

格式:chgrp [options] group_spec files

作用:设置文件和目录的属组

group_spec参数可以是以下任何一种:

  • 用户组名或数字形式的用户组ID
  • –reference=file,将属组设置为另一给定文件的属组

常用选项:

–dereference 跟踪符号链接,并对其指向的文件进行操作

-R 递归更改目录层次结构中的所有权


chmod

格式:chmod [options] permissions files

作用:设置文件和目录的访问权限

permissions参数可以采用三种不同的形式:

  • –reference=file,设置与其他给定文件相同的权限
  • 最多四位数字的八进制数,用于指定文件的绝对权限
  • 一个或多个字符串,指定绝对权限或相对权限(即相对于该文件的现有权限)

常用选项:

-R 递归更改目录层次结构中的所有权


umask

格式:umask [options] [mask]

作用:设置或显示创建文件和目录时的默认模式,赋予自己、用户组和所有人相应的读、写和/或执行权限

常用选项:

-S 以更直观的形式显示默认模式


chattr

格式:chattr [options] [+ - =] attributes [files]

作用:设置或更改扩展属性(仅限ext文件系统)

属性含义
a只能进行追加:只能向文件中添加数据,而不能编辑数据,只有root才能设定这个属性
A不访问时间戳:对这个文件进行访问时不会更新其访问时间戳(atime)
c压缩:数据在写入时自动压缩,在读取时自动解压缩
d不转储:在进行备份时,告诉转储程序忽略此项
i不可变:不允许对该文件进行更改或删除(仅限root使用该属性)
j文件在写入时会先被记录在journal中(仅限ext3系统)
s安全删除:删除时,用零覆盖文件中的所有数据
S同步更新:更改将立即写入磁盘
u不可删除:该文件不允许执行删除操作

常用选项:

-R 递归处理目录


lsattr

格式:lsattr [options] files

作用:显示扩展属性

注:如果没有指定文件的话,lsattr会输出当前目录中所有文件的属性

常用选项:

-R 递归处理目录

-a 列出所有的文件,包括以点号开头的文件

-d 如果显示目录的话,不显示其内容,仅显示目录本身


6、文件的定位

命令作用
find在目录层次结构中查找文件
xargs处理找到的文件列表(以及其他功能)
locate创建一个文件索引,然后通过索引搜索字符串
which在搜索路径中查找可执行文件(命令)
type查找搜索路径中的可执行文件(bash内置命令)
whereis查找可执行文件、文档和源文件

find

格式:find [directories] [expression]

作用:在一个或多个目录(及其递归子目录)中搜索符合特定条件的文件

常用选项:

-name|-path|-lname pattern 查找对象的文件名称(-name)、路径名(-path)或符号链接目标文件(-lname)必须匹配这里给出的shell模式,其中可以含有shell通配符*,?和[](必须对通配符进行转义处理,以便让shell忽略这些通配符本身,而按照通配符所指代的内容进行查找)。注意,这里的路径是相对于正在搜索的目录树的相对路径

-iname|-ipath|-ilname pattern 分别对应于前面三个,不区分大小写

-regex regexp 路径(相对于正在搜索的目录树)必须与给定的正则表达式相匹配

-type t 仅查找类型为t的文件。这些类型包括普通文件(f)、目录(d)、符号链接(l)、块设备(b)、字符设备(c)、命名管道(p)和套接字(s)

-atime|-ctime|-mtime N 以N*24小时为参考,最后一次访问(-atime)、最后一次修改(-mtime)或发生状态变化(-ctime)的文件。此外,+N表示“大于N”,而-N表示“小于N”

-amin|-cmin|-mmin N 以N分钟为参考,最后一次访问(-amin)、最后一次修改(-mmin)或发生状态变化(-cmin)的文件。此外,+N表示“大于N”,而-N表示“小于N”

-anewer|-cnewer|-newer other_file 访问时间(-anewer)、修改时间(-newer)或者状态变化时间(-cnewer)晚于other_file的相应时间的那些文件

-maxdepth|-mindepth N 在正在搜索的目录树中查找文件时,最少(-mindepth)或最多(-maxdepth)搜索N层

-follow 如果遇到符号链接,就跟踪链接所指的文件

-depth 继续使用深度优先搜索:在对目录本身进行操作之前,首先通过递归方式彻底搜索目录中的内容

-xdev 将搜索范围限制为单个文件系统(即不允许跨越设备边界)

-size N[bckw] 查找大小为N的文件,其单位可以是块(b),单字节字符(c),千字节(k)或双字节的字(w)。+N表示“大于N”,-N表示“小于N”

-empty 查找大小为零的普通文件或目录

-user name 查找属主为给定用户的文件

-group name 查找属组为给定用户组的文件

-perm mode 查找权限与给定模式相同的文件。可以使用-mode来检查所有给定的位是否被设置,或者使用+mode来检查给定的位是否被设置

此外,可以使用运算符对表达式的组成部分进行分组和求反:

expression1 -a expression2:与运算,该选项为默认值

expression1 -o expression2:或运算

! expression或-not expression:对表达式的值进行求反

(expression):优先级标记

expression1,expression2:计算两个表达式的值,然后返回第二个表达式的值

指定搜索条件后,就可以让find命令在符合条件的文件上执行以下操作。

常用选项:

-print 只需输出相对于搜索目录的相对路径

-printf string 输出给定的字符串,可以用C库函数printf()的方式对其进行替换

-printO 类似于-print,区别在于不是使用换行符分隔每行输出,而使用null(ASCII 0)字符。通常在将搜索结果以管道方式传递给另一个程序,并且文件名列表可能含有空格时使用。当然,这要求接收程序必须能够读取并解析这些以null字符分隔的行

-exec cmd; 调用给定的shell命令cmd。需要注意的是,一定要对shell元字符转义处理,包括最后面的分号,因此它们不会在命令行中立即进行计算。此外,符号“{}”(务必加上引号或进行转义处理)代表所找的文件的路径,如:find . -exec ls '{}' \;

-ok cmd 与-exec选项的作用类似,区别是将在调用每个命令之前提示用户

-ls 对文件执行ls -dils命令


xargs

格式:xargs [options] [command]

作用:从标准输出读取文本行,将其转换为命令,并执行

常用选项:

-n K 对于每个命令来说,只使用输入中的K行内容。而-n 1的作用是确保每个命令只处理一行输入。否则,xargs可以将多行输入传递给单个命令

-O 将输入的行尾字符设置为ASCII的零字符,而非空格符,并且按照字面含义来处理所有字符。当输入来自find -printO时,可以使用该选项


locate

格式:locate [options]

作用:在一个不太发生变化的目录层次结构中搜索文件

注:将locate命令与updatedb命令搭配使用的话,可以创建一个搜索速度极快的文件位置的索引(数据库)

updatedb命令的索引选项:

-u 从根目录向下创建索引

-U directory 从directory向下创建索引

-l(0|1) 安全功能开关,0表示关闭,1表示打开。默认值为1

-e directories 从索引中排除一个或多个目录,这里使用的路径分隔符为逗号

-o outfile 将索引写入outfile文件中

locate命令的搜索选项:

-d index 指出要使用的索引

-i 搜索时不区分大小写

-r regexp 搜索与给定正则表达式匹配的文件


which

格式:which file

作用:在shell的搜索路径中查找可执行文件

注:如果搜索路径中有重名的程序,只会显示首先找到的那个程序


type

格式:type [options] commands

作用:在shell的搜索路径中查找可执行文件

注:type是内置在bash shell中的,而which则是位于硬盘上的外部程序。作为一个内置的shell命令,在速度方面type要比which更快一些,但它的不足之处在于只能在某些shell(如bash)中使用


whereis

格式:whereis [options] files

作用:通过搜索硬编码的目录列表来查找给定的文件,可以查找可执行文件、文档和源代码

常用选项:

-b|-m|-s 仅列出可执行文件(-b)、联机帮助页(-m)或源代码文件(-s)

-B|-M|-S dirs… -f 仅在给定的目录中搜索可执行文件(-B)、联机帮助页(-M)或源代码文件(-S)。在列出所查找的文件之前,你必须使用-f选项来跟踪目录列表


7、文件的正文处理

命令作用
grep在文件中查找与正则表达式匹配的行
cut从文件中提取列
paste附加列
tr将字符转换为其他字符
expand/unexpand在制表符和空格符之间进行转换
sort按各种标准对文本行进行排序
uniq在文件中查找相同的行
tee复制文件,同时将其输出到标准输出上

grep

格式:grep [options] pattern [files]

作用:给定一个或多个文件,输出其中与特定正则表达式模式匹配的所有行

注:grep命令可以使用两种不同类型的正则表达式,它们分别称之为基本类型和扩展类型

常用选项:

-v 只输出与正则表达式不匹配的行

-l 仅输出包含匹配行的文件的名称,而不是输出匹配的行

-L 仅输出不包含匹配行的文件的名称

-c 仅输出匹配的行数

-n 在输出匹配结果的时候,每行的前面给出其原始行号

-b 在输出匹配结果的时候,每行的前面给出其在文件中的偏移字节

-i 匹配时不区分大小写

-w 只匹配完整的单词(即匹配整个正则表达式的单词)

-x 仅匹配完整的行(即与整个正则表达式匹配的行),优先级高于-w选项

-A N 输出匹配行,以及位于匹配行之后的N行

-B N 输出匹配行,以及位于匹配行之前的N行

-C N 输出匹配行,以及原文件中位于匹配行前后的N行内容

–color=always 突出显示匹配文本的颜色,以提高可读性

-r 递归搜索目录及其子目录中的所有文件

-E 使用扩展正则表达式。见egrep命令

-F 使用固定的字符串列表,而不是正则表达式。见fgrep命令


egrep

格式:egrep [options] pattern [files]

作用:类似与grep,只不过在正则表达式方面,它使用了一种不同的(“扩展性”)语言。它等价于grep -E


基本类型扩展类型含义
.任何单个字符
[…]匹配该列表中的任何单个字符
[^…]匹配不属于该列表的任何单个字符
(…)分组
\||或操作符
^行首
$行尾
\词首
\>结束一个字
[: alnum: ]任何字母数字字符
[: alpha: ]任何字母字符
[: cntrl: ]任何控制字符
[: digit: ]任意数字
[: graph: ]任何图形字符
[: lower: ]任何小写字母
[: print: ]任何可打印字符
[: punct: ]任何标点符号
[: space: ]任何空格字符
[: upper: ]任何大写字母
[: xdigit: ]任何十六进制数字
*正则表达式出现零次或多次
\ ++正则表达式出现一次或多次
\ ??正则表达式出现零次或一次
\{n \}{n}正则表达式恰好出现n次
\{n,\}{n,}正则表达式恰好出现n次或n次以上
\{n,m\}{n,m}正则表达式出现次数介于n和m(含m)之间,n<m
\c取文字c的字面意义,即使c是一个特殊的正则表达式字符

fgrep

格式:fgrep [options] [fixed_strings] [files]

作用:类似于grep,但是它无法接收正则表达式,只能支持用换行符分隔的固定字符串的列表。该命令等价于grep -F。通常,可以使用小写形式的-f选项让fgrep命令从一个文件中读取固定的字符串。此外,还可以使用引号从命令行中读取固定的字符串。搜索非数字字符如*和{时,fgrep命令用起来会非常方便,因为它们是按照字母的字面意义来对待的,而不是作为正则表达式字符来对待


cut

格式:cut -(b|c|f)range [options] [files]

作用:从文件中提取文本列,这里的“列”是由字符偏移(c)或字节偏移(b)或分隔字段(f)来定义的

常用选项:

-d C 使用字符C作为-f选项的字段之间的输入分隔符。默认使用制表符

–output-delimiter=C 使用字符C作为-f选项的字段之间的输出分隔符。默认使用制表符

-s 排除(不输出)不包含分隔符的行


paste

格式:paste [options] [files]

作用:将多个文件视为垂直列,并将它们合并到标准输出上

常用选项:

-d delimiters 使用给定分隔符来分隔各列;默认使用制表符。可以提供一个单个字符(如-d:)并自始至终使用该字符,或提供一个字符列表(如-dxyz)将其依次用于各行

-s 将输出的行和列进行转置


tr

格式:tr [options] charset1 [charset2]

作用:将一组字符转换为另一组字符

字符集charset可以采用以下格式:

格式含义
ABDG由字符A、B、D、G组成的序列
A-Z从A-Z之间的字符
[x*y]字符x重复y次
[ :class: ]见grep命令支持的字符类

常用选项:

-d 从输入中删除包含在charset1中的字符

-s 从输入中删除(位于charset1中的)那些连续重复字符

-c 只对charset1之外的字符进行操作

-t 如果charset1长于charset2,则通过截断charset1使其长度相同。如果没有提供-t的话,则不断复制charset2的最后一个字符,直到charset2与charset1的长度相同为止


expand / unexpand

格式:expand [options] [files]unexpand [options] [files]

作用:expand命令用来将制表符转换为特定数量的空白字符,使其看起来长度不变,而unexpand命令的作用则刚好相反。默认情况下,每八个空格“兑换”一个制表符。

常用选项:

-t N 规定用N个空格替换一个制表符


sort

格式:sort [options] [files]

作用:以字母顺序输出文本行,或按照你指定的其他规则来进行排序。该命令首先会将提供的所有文件连接起来,然后对结果排序输出

常用选项:

-f 排序时区分大小写

-n 按照字母顺序进行排序,而不是按照字母顺序

-g 另一种具有不同算法的数字排序方法,该算法能够识别不同的计数法

-u 排序时忽略重复行(当通过-c检查排序文件的时候,如果任意的连续两行相同的话,则返回失败)

-c 不进行排序,只检查输入是否已经过排序处理。如果是的话,不输出任何内容;否则,输出错误信息

-b 忽略各行的前导空格

-r 对输出进行反转:按照从最大到最小的顺序来排序

-t X 使用X作为-k选项的字段分隔符

-k key 选择用于排序的键(组合-t选项后,可以指定各个键之间的分隔符)


uniq

格式:uniq [options] [files]

作用:处理文本中连续的重复行

常用选项:

-c 计算相邻的重复行的数量

-i 操作时不区分大小写

-u 仅输出唯一的行

-d 仅输出重复行

-s N 检测重复行时,忽略每行中前面N个字符

-f N 当检测重复行时,忽略每行中前面N个由空白符分隔的第一个字段

-w N 当检测重复行时,仅考察每行的前N个字符。当与-s或-f选项结合使用的时候,sort将忽略每行前面指定数量的字符或字段,然后考察接下来的N个字符


tee

格式:tee [options] files

作用:将标准输入原封不动地复制到标准输出,同时将相同的标准输入复制到一个或多个文件中

注:tee命令最常用于命名管道中,它不仅可以把中间数据写入文件,同时还将其传递给管道中的下一个命令

常用选项:

-a 附加至文件末尾,而非覆盖文件

-i 忽略中断信号


8、文件的压缩与打包

命令作用
tar将多个文件打包成单个文件
gzip使用GNU Zip压缩文件
gunzip使用GNU Zip解压缩
bzip2以BZIP格式压缩文件
bunzip2解压BZip文件
bzcat通过标准输入/输出压缩/解压BZip文件
compress使用UNIX传统的压缩命令来压缩文件
uncompress使用UNIX传统的解压命令来解压文件
zcat通过标准输入/输出来压缩/解压缩文件(gzip或compress)
zip用Windows Zip格式压缩文件
unzip解压Windows Zip文件
munpack将MIME数据提取到文件中
mpack将一个文件转换成MIME格式

tar

格式:tar [options] [files]

作用:将多个文件和目录打包为单个文件,以便于传输,同时还可以进行压缩处理,该压缩功能是可选的

常用选项:

-c 创建归档。必须在命令行中列出输入文件和目录

-r 将文件附加到现有归档

-u 将新建的/修改的文件附加至现有归档

-A 将一个归档附加到另一个归档,该选项不适用于压缩归档

-t 列出(测试)归档

-x 从归档中提取文件

-f file 从给定的文件中读取归档,或将归档写入给定的文件中。该选项通常用于磁盘上的tar文件,但也可以用于磁带驱动器

-d 对归档与文件系统进行比较

-z 使用gzip压缩

-j 使用bzip2压缩

-Z 使用UNIX压缩

-v 冗长模式:输出详细信息

-h 跟踪符号链接,而不仅仅是复制它们

-p 提取文件时,恢复原来的权限和所有权


gzip

格式:gzip|gunzip|zcat [options] [files]

作用:gzip命令和gunzip命令可利用GNU Zip格式来压缩和解压文件。在某些情况下,原始文件可能会被删除。使用这些命令的时候,压缩文件的扩展名为.gz

示例命令:

gzip file 压缩文件,生成file.gz。同时,原始文件会被删除

gzip -c file 生成压缩数据,并输出至标准输出

cat file | gzip 从命令管道生成压缩数据

gunzip file.gz 解压file.gz,并创建file文件。原始文件file.gz将被删除

gunzip -c file.gz 将数据解压至标准输出

cat file.gz | gunzip 解压来自命令管道的数据

zcat file.gz 解压数据,并输出至标准输出

tar -czf tarfile dir 通过gzip将目录dir打包成tar文件。使用-cvzf选项时,会在处理它们时输出其文件名


bzip2

格式:bzip2|bunzip2|bzcat [options] [files]

作用:bzip2命令和bunzip2命令可利用Burrows-Wheeler格式压缩和解压文件。在某些情况下,原始文件可能会被删除。使用这些命令的时候,压缩文件的扩展名为.bz2

示例命令:

bzip2 file 压缩file,从而生成file.bz2。原始文件会被删除

bzip2 -c file 压缩数据,并将结果写至标准输出

cat file | bzip2 压缩数据,并将结果写至标准输出

bunzip2 file.bz2 解压file.bz2,从而生成file。原始文件file.bz2将被删除

bunzip2 -c file.bz2 解压缩数据,并将结果写至标准输出

cat file.bz2 | bunzip2 解压缩数据,并将结果写至标准输出

bzcat file.bz2 解压缩数据,并将结果写至标准输出

tar -cjf tarfile dir 将目录dir打包成bzip压缩格式的tar文件。使用-cvjf可以在处理过程中显示相应的文件名


compress

格式:compress|uncompress|zcat [options] [files]

作用:compress命令和uncompress命令可利用标准的UNIX压缩格式(Lempel Ziv)来压缩和解压文件。在某些情况下,原始文件可能会被删除。使用这些命令的时候,生成的压缩文件的扩展名为.Z

示例命令:

compress file 压缩file,从而生成file.Z文件。原始文件会被删除

compress -c file 压缩数据,并将结果写至标准输出

cat file | compress 压缩来自命令管道的数据

uncompress file.Z 解压file.Z,从而生成file。原始文件file.Z将被删除

uncompress -c file.Z 解压缩数据,并将结果写至标准输出

cat file.Z | uncompress 解压来自命令管道中的数据

zcat file.Z 解压缩数据,并将结果写至标准输出

tar -cZf tarfile dir 将目录dir打包成compress命令格式的tar文件。使用-cvZf选项时,可以在处理过程中显示相应的文件名


zip

格式:zip|unzip [options] [files]

作用:命令zip和unzip能够以Windows Zip格式来压缩和解压文件。它们生成的压缩文件的扩展名为.zip。与大多数其他Linux压缩命令不同,zip不会删除原始文件

示例命令:

zip myfile.zip file1 file2 file3 … 文件打包

zip -r myfile.zip dirname 递归打包

unzip -l myfile.zip 列出内容

unzip myzip 解包


munpack

格式:munpack [options] mail_filempack [options] files

作用:munpack可以将邮件的附件解压为文件,mpack则是将一个或多个文件作为附件插入到MIME格式的文件中


9、文件的比较

命令作用
diff对两个文件或目录逐行比较
comm对两个排序后的文件逐行比较
cmp对两个文件逐字节比较
md5sum计算给定文件的校验和(MD5)

diff

格式:diff [options] file1 file2

作用:diff命令可用来对两个文件(或两个目录)进行逐行比较。在比较文本文件时,diff可以提供详细的差异报告。对于二进制文件,diff仅能指出是否存在差异。对于所有文件来说,如果没有差异的话,diff都不会生成任何输出

常用选项:

-n 使用rcsdiff命令的RCS版本控制格式

-c 使用上下文输出格式,供patch命令使用

-D macro C预处理器格式,即#ifdef macro … #else … #endif格式

-u 一体化输出格式,它会对文件进行合并处理,其中“-”表示删除,“+”表示添加

-y 并排格式;使用-W来调整输出的宽度

-e 创建一个ed脚本,如果运行该脚本的话,将会把fileA变为fileB

-q 不报告发生的哪些变化,仅指出是否存在差异

-b 不考虑空格

-B 不考虑空白行

-i 忽略大小写

-r 当比较目录时,递归考察子目录


comm

格式:comm [options] file1 file2

作用:比较两个已排序的文件,并生成由三列组成的输出,各列之间以制表符分隔

第1列:所有出现在file1中但不在file2中的行

第2列:所有出现在file2中但不在file1中的行

第3列:所有同时出现在两个文件中的行

常用选项:

-1 不显示第1列

-2 不显示第2列

-3 不显示第3列

-23 显示仅在第一个文件中出现的行

-13 显示仅在第二个文件中出现的行

-12 显示同时出现在第一个和第二个文件中的行


cmp

格式:cmp [options] file1 file2 [offset1 [offset2]]

作用:比较两个文件,如果它们的内容是一样的,则不会输出任何内容;否则给出第一处差异所在的位置。通常情况下,cmp命令都是从每个文件的开头处开始比较,但如果提供了偏移量的话,则将从指定的地方开始比较

常用选项:

-l 长输出:逐字节输出所有差异

-s 静默输出:不打印任何东西,只在退出程序时返回相应的状态码;如果文件匹配,返回0,如果不匹配返回1(如果比较失败的话,则返回其他代码)


md5sum

格式:md5sum files | --check file

作用:md5sum命令与校验和一起使用的时候,可以用来验证文件是否未经改动。该命令的第一种使用方式是通过MD5算法为指定文件生成32字节校验和;第二种使用方式则是测试校验和是否与相应的文件相匹配,这时需要使用–check选项

注:shasum是一个更为强大程序,但是(到目前为止)还不太流行,它可以使用不同的算法来生成更长的哈希值。因此,它要比md5sum更加可靠一些


10、处理PDF文件和PostScript文件

命令作用
pdftotext从PDF文件中提取文本
ps2ascii从PostScript或PDF文件中提取文本
pdfseparate从PDF中提取单页
pdftk通过拆分、连接、旋转或以其他方式来操作PDF文件
pdf2ps,ps2pdf实现PDF和PostScript之间的格式转换

pdftotext

格式:pdftotext [options] [file.pdf [outfile.txt]]

作用:从PDF文件中提取文本数据,并将其写入指定的文件中。只有当PDF包含实际文本,而非文本的图像时,该命令才能生效

常用选项:

-f N 从PDF的第N页开始。注意,必须在选项和数字之间留出空格

-l N 在PDF文件的第N页结束。同样,必须在选项和数字之间留出空格

-htmlmeta 生成HTML,而非纯文本

-eol(dos|mac|unix) 在文本中使用给定操作系统的行尾字符


ps2ascii

格式:ps2ascii [file.(ps|pdf)] [outfile.txt]

作用:从PostScript或PDF文件中提取文本


pdfseparate

格式:pdfseparate [options] [file.pdf] [pattern.txt]

作用:将一个PDF文件分割成多个独立的PDF文件,每页对应一个文件。最后一个参数是单页文件名称的组成方式,其中的%d表示提取的页码

常用选项:

-f N 从PDF的第N页开始。必须在选项和数字之间留出空格

-l N 至PDF文件的第N页结束。必须在选项和数字之间留出空格


pdftk

格式:pdftk [arguments]

作用:从PDF文件中提取页面,或将多个PDF文件合并成一个、旋转页面、添加水印、加密和解密等


pdf2ps

格式:pdf2ps [options] file.pdf [file.ps]ps2pdf [options] file.ps [file.pdf]

作用:pdf2ps命令可以将Adobe PDF文件转换为PostScript文件(如果不提供输出文件名,则默认使用输入文件名,只是将.pdf替换为.ps而已,其他部分不变);相反,ps2pdf命令则可以将PostScript文件转换为PDF格式


11、打印

命令作用
lpr打印文件
lpq查看打印队列
lprm从队列中删除打印作业

lpr

格式:lpr [options] [files]

作用:向打印机发送文件

常用选项:

-P printername 将文件发送给之前设置的打印机printername

- #N 打印N份副本

-J name 设置封面打印作业name(如果系统已经设置为打印封面的话)


lpq

格式:lpq [options]

作用:显示处于等待状态的所有打印任务

常用选项:

-P printername 显示打印机printername的队列

-a 显示所有打印机的队列

-l 冗长模式:使用长格式显示信息


lprm

格式:lprm [options] [job_IDs]

作用:取消一个或多个打印作业。如果不提供任何作业ID的话,当前的打印作业将被取消(注意,只有超级用户才能够取消其他用户的作业)。-P选项用来指出作业所在的打印队列


12、拼写检查

命令作用
look快速检查单词的拼写是否出错
aspell交互式的拼写检查程序
spell批处理式的拼写检查程序

look

格式:look [options] prefix [dictionary_file]

作用:打印以给定字符串prefix开头的单词,这些单词通常位于一个字典文件中(默认为/usr/share/dict/words)。当你提供自己的字典文件(可以是任何文本文件,只要各行按字母顺序排序即可)时,look命令将打印以给定字符串prefix开头的所有行

常用选项:

-f 忽略大小写

-t X 设置终止字符X,即将该字符之前(包括该字符)的内容作为匹配字


aspell

格式:aspell [options] file | command

作用:找出无法识别的单词,并给出相应的替代词

常用命令:

aspell -c file 通过交互方式对文件中的所有单词的拼写进行检查和纠正

aspell dump master 在标准输出上显示aspell的主字典

aspell help 打印一个简明的帮助信息


spell

格式:spell [files]

作用:输出给定文件中与其字典相比存在拼写错误的所有单词


13、磁盘和文件系统

命令作用
df显示已挂载文件系统上的可用空间
mount使磁盘分区可以访问
umount卸载磁盘分区(使其无法访问)
fsck检查磁盘分区是否出错
eject弹出CD、DVD或其他可移动磁盘

df

格式:df [options] [disk devices | files | directories]

作用:显示给定磁盘分区的大小,以及其中已用空间和可用空间的大小。如果指定了文件或目录的话,df将提供该文件或目录所在的磁盘设备的相关数据。如果不提供参数的话,df将会显示已挂载的所有文件系统的使用情况

常用选项:

-k 以千字节为单位显示大小(默认值)

-m 以兆字节为单位显示大小

-B N 显示区块数目,并将区块大小指定为N个字节(默认值=1024)

-h|-H 为了以可读性较高的方式来显示信息,为每个空间大小选择最合适的单位。使用-h选项时,1K=1000;使用-H选项时,1K=1024

-l 仅显示本地文件系统,而不显示网络文件系统

-T 在输出中提供文件系统类型

-t type 仅显示给定类型的文件系统

-x type 不显示给定类型的文件系统

-i Inode模式。显示每个文件系统的inode总量以及已经使用和空闲的inode数量,而不是磁盘块的相应数量


mount

格式:mount [options] device | directory

作用:挂载分区,使其处于可用状态

常用选项:

-t type 指定文件系统的类型

-l 显示所有已挂载的文件系统,也可以与-t组合使用

-a 挂载/etc/fstab中列出的所有文件系统。忽略包含noauto选项的条目,也可以与-t组合使用

-r 挂载只读文件系统


umount

格式:umount [options] [device | directory]

作用:卸载磁盘分区,使其无法通过文件系统访问

注:sudo umount -a可卸载所有已挂载设备,但请不要这么操作


fsck

格式:fsck [options] [devices]

作用:验证Linux磁盘分区并按需修复发现的错误

注:一般来说,在检查设备之前需要先将其卸载,以便保证没有其他程序同时对其进行操作。fsck命令实际上是位于/sbin目录中的一组文件系统检查程序的前端程序,这些程序的名称都是以“fsck”开头。该命令只支持某些类型的文件系统,可以使用以下命令将其列出:ls /sbin/fsck.* | cut -d. -f2

常用选项:

-A 按顺序检查/etc/fstab中列出的所有磁盘

-N 输出检测报告,但是不进行修复

-r 通过交互方式修复错误,执行每项修复任务之前都会进行提示

-a 自动修复错误(只有当你真正了解所执行的这些任务时,才可以使用这个选项;否则,将会带来严重的后果)


eject

格式:eject [options] [device_name]

作用:弹出可移动设备

注:使用该命令时,其中的可移动介质必须处于可以弹出的状态

常用选项:

-h 显示帮助信息

-n 显示选定的设备,但是不执行任何动作。可以结合-v显示选定设备的详细描述

-v 产生详细输出

-d 显示要弹出的默认设备的名称,然后退出

-c N 从光驱柜中选择光驱N


命令作用
rsync即使在跨网络环境下,也可以高效地复制一个文件集合
dd完成数据的低级复制
growisofs刻录DVD或蓝光光盘

rsync

格式:rsync [options] source destination

作用:复制一组文件,既可以进行精确复制,包括文件权限和其他属性(这种方式称为镜像),也可以只复制数据。此外,它不仅可以通过网络运行,也可以在单机上运行

常用选项:

-o 复制文件的所有权(可能需要远程主机的超级用户权限)

-g 复制文件属组信息(可能需要远程主机的超级用户权限)

-p 复制文件权限

-t 复制时间戳

-r 递归复制目录(即包括其内容)

-l 允许复制符号链接(而不是指向它们的文件)

-D 允许复制设备(仅限超级用户)

-a 镜像:复制原始文件的所有属性。这意味着使用选项-ogptrlD

-x 当复制文件树时,在当前的文件系统中进行,不要涉及已挂载的其他文件系统

-n Dry运行模式:实际上不进行任何复制,只是显示哪些文件将被传输

-v 详细模式:输出复制期间发生的情况的详细信息。添加–progress后,在复制文件时会以数字方式显示进度


dd

格式:dd [options]

作用:完成二进制位和字节低层操作的复制,它可以将数据从一个文件复制到另一个文件,也可以在复制时进行数据转换,设置可以通过设备复制的方式来克隆磁盘(警告:该操作会彻底摧毁目标设备上的所有数据)

常用选项:

if=file 指定输入文件或设备

of=file 指定输出文件或设备

bs=N 一次复制N个字节,称为“块大小”(要设置输入和输出的块大小,请分别使用ibs和obs)

skip=N 在开始复制之前跳过N个输入块

seek=N 在开始复制之前丢弃N个输出块

conv=spec 对复制的数据进行转换。spec可以是ucase(转换为大写字母)、lcase(转换为小写)、ascii(从EBCDIC转换为ASCII)


growisofs

格式:growisofs [options] tracks

作用:刻录可写的CD、DVD或Blu-ray光盘

步骤:

  • 通过以下命令找到光盘刻录机设备:more /proc/sys/dev/cdrom/info

  • 将要刻录的文件放到相应的目录中,比如dir。根据需要,进行相应的组织安排。需要注意的是,目录dir本身不会被复制到光盘,仅复制其内容

  • 使用mkisofs命令创建ISO(光盘)映像文件,并使用growisofs将其刻录到光盘上,假设你的设备是/dev/sr1,具体命令如下所示:

    # mkisofs -R -l -o $HOME/mydisk.iso dir
    # growisofs -dvd-compat -Z /dev/sr1=$HOME/mydisk.iso
    # rm $HOME/mydisk.iso
    

注:如果要刻录音频CD,请使用更加友好的图形工具,例如k3b


14、查看进程

命令作用
ps显示进程
uptime查看系统负载
w列出所有用户的活动进程
top以交互方式查看资源密集型进程
free显示可用内存

ps

格式:ps [options]

作用:显示用户正在运行的进程的相关信息,也可以显示其他用户的进程信息,为可选项

示例命令:

查看自己当前运行的进程:ps -ux

查看用户wayne的所有进程:ps -U wayne

一个程序的所有进程:ps -C program_name

在终端N上的各个进程:ps -tN

显示特定的进程,比如进程1、2和3505:ps -p1,2,3505

输出所有进程的信息,但是输出信息的宽度会根据屏幕宽度截取:ps -ef

输出所有进程的完整信息,避免详细参数被截断:ps -efww

输出所有进程的信息,并根据线程的角度,对隶属于同一个父进程之下的子进程进行缩进处理:ps -efH

注:可以借助grep和其他过滤程序,以更精细的方式从ps的输出中提取信息


uptime

格式:uptime

作用:指出从上次启动以来系统已经运行了多长时间


w

格式:w [username]

作用:显示所有登录用户在每个shell中运行的当前进程,如果提供了用户名的话,就只输出该用户的有关信息

常用选项:

-h 不显示标题行

-f 不显示FROM列

-s 不显示JCPU和PCPU列


top

格式:top [options]

作用:监视最活跃的进程,并能够定期更新信息。它是一个基于屏幕的程序,以交互方式更新显示内容。top运行过程中,可以通过按键来改变其行为,例如设置更新速度(s)、隐藏空闲进程(i)或杀死进程(k)。输入h则可以查看完整的列表,输入q退出。此外,还有一些类似的程序可以用来监控系统的I/O和网络带宽,如iotop和iftop

常用选项:

-nN 执行N次更新,然后退出

-dN 每N秒更新一次显示内容

-pN-pM… 仅显示PID为N,M,…的进程的信息,最多显示20个进程的信息

-c 显示进程的命令行参数

-b 将信息以非交互式显示到标准输出,所以无需使用与屏幕显示方面的交互技巧。top -b -n1> outfile将快照保存到文件中


free

格式:free [options]

作用:显示内存的使用情况(以千字节为单位)

常用选项:

-s N 连续运行,每N秒更新一次显示内容

-b 显示字节数

-m 显示数量(兆字节)

-t 在底部添加总行数

-o 不显示“buffers/cache”行


15、控制进程

命令作用
kill终止进程(或向其发送信号)
timeout终止运行时间太长的命令
nice调用特定优先级的程序
renice在运行时更改进程的优先级
flock确保同一时刻只有一个进程副本在运行,这要用到锁

kill

格式:kill [options] [process_ids]

作用:向进程发送信号,从而达到终止进程(默认动作)、中断进程、挂起进程、使其崩溃等目的,但是前提条件是,你必须是这个进程的属主,或者是超级用户,这样才有权限执行这些操作

操作示例:

例如,要终止进程13243,可以运行如下所示的命令:

kill 13243

如果该命令没有作用的话(一些程序会捕获该信号,但是并不终止运行),可以添加-KILL或-9选项,这两个选项是等价的:

kill -9 13243

这样一来,就肯定能终止进程了。但是,这样无法让程序“干净利索”地退出,从而导致进程死亡后,无法全部释放所占用的资源(或导致其他的问题)

如果你不知道进程的PID,可以运行ps,然后从输出结果中找到(以emacs为例):

ps -aux | grep emacs

当然,最好还是使用pidof命令,利用它可以通过进程名称来查找进程,并输出其PID:

pidof emacs

现在,可以通过使用shell的反引号来执行pidof,终止已知其程序名称的进程了:

kill `pidof emacs`

或者使用killall命令终止给定程序的所有进程:

killall emacs

除了位于文件系统中的kill程序(通常位于/bin/kill)之外,大多数shell都提供了内置的kill命令,不过两者在语法和行为方面有所差异。但是,它们都支持以下用法:

kill -N PID
kill -NAME PID

其中N是信号编号,NAME是信号字符串“SIG”开头的信号名称(例如,使用-HUP发送SIGHUP信号)。使用kill -l命令查看kill传输的所有信号


timeout

格式:timeout [options] seconds command...

作用:限制另一个程序的运行时间(以秒为单位),如果程序运行时间超过规定的范围,timeout将会终止其运行

常用选项:

-s signal 发送默认值(TERM)之外的信号

-k seconds 如果程序在第一个信号之后没有终止,那么在等待规定的秒数之后,发送致命的KILL信号


nice

格式:nice [-n level] command_line

作用:在调用占用大量系统资源的程序时,可以通过降低其优先级,从而让它谦让一下其他进程(和用户)。它为一个进程设置了一个优先级数值(一个谦让度值),从而降低Linux进程调度程序对它的关注程度,即调整进程的优先级

操作示例:

将一个大型任务的优先级数值设置为7:

nice -n 7 sort hugefile > outfile

在运行nice的时候,如果不指定优先级的话,则使用10。正常进程(运行时没有指定优先级)运行在零级,为了查看进程的优先级,可以直接运行nice,不要加任何参数,具体如下所示:

$ nice
0

超级用户也可以降低进程的优先程度,为此,只需指定更大的优先级数值即可:

sudo nice -n -10 myprogram

为了了解自己的任务的优先级数值,可以借助ps于命令,只要看看该命令输出中的“NI"列就知道了:

ps -o pid,user,args,nice


renice

格式:renice [-n N] [options] PID

作用:修改已运行的进程的优先级级别

注:普通用户可以增加自己进程的优先级数值,而超级用户还可以降低该数值(提高优先程度),并且可以对任何进程进行该操作。优先级的取值范围为-20~+20,但是,我们要尽量避免使用绝对值较大的负数,否则可能会干扰重要的系统进程

常用选项:

-p pid 影响给定的进程ID。这里可以省略-p,直接提供PID

-u username 影响给定用户拥有的所有进程


flock

格式:flock [options] lockfile command...

作用:通过为多个命令指定同一个锁定文件,起到防止备份脚本之类的命令同时运行多个副本的作用

常用选项:

-n 如果另一个命令已经运行,则立即失败

-w N 如果另一个命令已经在运行,则等待N秒后失败

-s 使用共享锁而不是排他锁。你可以使用该选项同时运行多个命令,但如果省略该选项,则flock将失败。这个选项对于允许有限数量的命令同时运行是非常有用的


16、作业调度

命令作用
sleep暂停指定的秒数,除了等待什么也不做
watch以指定的时间间隔重复运行程序
at在将来某个时间执行一次任务
crontab为将来某些时间点安排任务

sleep

格式:sleep time_specification

作用:等待一定的时间。在指定时间的时候,可以使用一个整数(单位是秒),或一个整数,后跟字母s(也就是秒),m(分钟),h(小时)或d(天)


watch

格式:watch [options] command

作用:定期重复执行指定的命令;默认的时间间隔是两秒。该命令将被传递给shell(所以一定要对特殊字符使用引号或进行转义处理)执行,并且运行结果将以全屏模式显示,以便于观察输出结果,看看发生了什么变化。退出时,按Ctrl+C

常用选项:

-n seconds 设置两次执行之间的时间间隔(以秒为单位)

-d 高亮显示输出,强调两次执行之间发生的变化

-g 当命令的运行结果与上一次的不同时,退出


at

格式:at [options] time_specification

作用:在规定的时间运行一次shell命令

注:可以通过/usr/share/doc/at/time-spec了解其详细语法

常用选项:

-f filename 从给定文件读取命令,而不是标准输入

-c job_number 将作业命令显示到标准输出


crontab

格式:crontab [options] [file]

作用:在特定的时间调度作业,适用于重复性的工作。为了使此类工作顺利进行,可以编辑并保存一个名为crontab的文件,通常该文件自动安装在系统目录(/var/spool/cron)中的。每过一分钟,一个名为cron的Linux进程就会被唤醒,并检查你的crontab文件,执行所有到期的作业

常用命令:

crontab -e 使用默认编辑器($VISUAL)编辑crontab文件

crontab -l 在标准输出上显示crontab文件

crontab -r 删除crontab文件

crontab myfile 将文件myfile安装为crontab文件

注:超级用户可以添加选项-u username,来处理其他用户的crontab文件


17、登录、注销与关机


shutdown

格式:shutdown [options] time [message]

作用:停止或重新启动Linux系统。只有超级用户才有权运行该命令

注:对于time参数,可以用加号后跟分钟数表示的相对时间,或用小时和分钟表示的绝对时间,或用now这个词表示立即。如果不使用选项的话,shutdown会让系统进入单用户模式,这是一个特殊的维护模式,只允许一个人(从系统控制台)登录系统,同时,所有非必需的服务都将被关闭。要想退出单用户模式,可以再次执行shutdown命令来停止或重新启动系统,或输入Ctrl+D以使系统进入正常的多用户模式

常用选项:

-r 重启系统

-h 关闭系统

-k 模拟关机,并非真的关机,只是向所有用户发送警告消息,就像系统正在关闭一样

-c 取消已经在执行的shutdown指令(省略time参数)

-f 重新启动时,跳过fsck程序所执行的常规系统检查

-F 在重新启动时,进行常规的系统检查


systemctl

格式:systemctl [options] command [arguments]

作用及说明:在一些Linux发行版中,shutdown命令实际上是systemctl命令的一个符号链接;而systemctl则是一个用于启动和停止各种服务的多用途命令。实际上,systemctl只是名为systemd的服务管理器的一部分

常用命令:

sudo systemctl poweroff 关闭系统

sudo systemctl reboot 重启系统

sudo systemctl suspend 挂起系统


18、用户及环境变量

命令作用
logname显示登录名
whoami显示当前的有效用户名
id显示用户的用户ID和组ID
who显示目前登录系统的用户,给出详细信息
users显示目前登录系统的用户,给出简要信息
finger显示用户的相关信息
last显示用户最近登录时间
printenv显示环境变量的值

logname

格式:logname

作用:显示用户的登录名

注:如果在你的系统上无法使用此命令,请尝试echo $LOGNAME


whoami

格式:whoami

作用:显示当前有效的用户名称。如果你用过sudo命令的话,该名称可能与(logname命令输出的)登录名不同


id

格式:id [options] [username]

作用:显示用户ID、用户组ID及其关联的用户名称和组名称

常用选项:

-u 显示有效用户ID并退出

-g 显示有效组ID并退出

-G 显示用户所属的所有其他组的ID

-n 显示(用户和用户组的)名称,而不是数字ID。必须与-u、-g或-G选项组合使用

-r 显示登录ID而不是有效ID,必须与-u、-g或-G选项组合使用


who

格式:who [options] [filename]

作用:列出所有登录用户,每行一个用户shell

注:通常,who将从/var/run/utmp文件获取相应的数据,filename参数可以用于指定不同的数据文件,例如用/var/log/wtmp记录过去的登录情况,或用/var/log/btmp记录失败的登录

常用选项:

-H 将第一行作为标题显示

–lookup 对于远程登录的用户,显示原始主机名

-u 在用户的终端上显示其空闲时间

-T 指出每个用户的终端是否可写。加号表示“是”,减号表示“否”,问号表示“未知”

-m 仅显示当前用户的信息(即与当前终端相关联的用户)

-q 仅显示用户名和用户数,该命令与users命令非常类似,只是增加了一个用户数


users

格式:users [filename]

作用:显示已经登陆的用户的快速列表(如果用户正在运行多个shell,则会在表中出现多次)

注:像who命令一样,默认情况下users命令将读取/var/log/utmp文件,但是也可以通过设置让它从另一个文件读取相关信息


finger

格式:finger [options] [user[@host]]

作用:显示已经登录的用户的简要或详细信息

注:参数user可以是本地用户名或远程用户,该参数的具体形式为user@host。当然,远程主机只有做了相应配置时才会响应该finger命令的请求

常用选项:

-l 显示详细信息

-s 显示简要信息

-p 不显示Project和Plan部分,这两部分通常分别从用户的/.project和/.plan文件中读取


last

格式:last [options] [users] [ttys]

作用:显示历史登录信息,按时间逆序排列;可以提供用户名或tty名称来限定输出的内容

常用选项:

-N 仅显示最近期的N行输出,其中N为正整数

-i 显示IP地址而不是主机名

-R 不显示主机名

-x 显示系统关闭和系统运行级别的变化情况(例如,从单用户模式到多用户模式)

-f filename 从/var/run/wtmp之外的其他文件中读取数据


printenv

格式:printenv [environment_variables]

作用:输出shell所知的所有环境变量及其值,或只显示指定的变量


19、用户帐户管理

命令作用
useradd创建一个帐户
userdel删除一个帐户
usermod修改帐户
passwd修改密码
chfn修改用户的个人信息
chsh修改用户的shell

useradd

格式:useradd [options] username

作用:超级用户可以通过此命令来创建用户帐户

注:由于该命令的默认选项不是非常有用(运行useradd -D可以查看默认选项),因此,请确保提供所需的全部选项

常用选项:

-d dir 将用户的主目录设置为dir

-s shell 将用户的登录shell设置为shell

-u uid 将用户的ID设置为uid。除非你自己十分有把握,否则请忽略该选项并接受默认值

-c string 设置用户的comment字段(历史上称为GECOS字段)。通常情况下,该字段被设为用户的全名,但实际上可以是任何字符串。chfn命令还可以用来设置该信息

-g group 将用户的初始(默认)组设置为group,它可以是数字形式的组ID或组名称,但是,这些组必须是已经存在的

-G group1,group2,… 让用户加入现有的其他组,即group1,group2等

-m 将系统基干目录/etc/skel中的所有文件复制到新创建的主目录中。基干目录通常用来存放初始化文件的最小(基干)版本,如~/.bash_profile,以供新用户使用。如果你希望从不同的目录复制这些文件,请添加-k选项(-k dirname)


userdel

格式:userdel [-r] username

作用:删除现有帐户

注:除非提供-r选项,否则它不会删除用户主目录中的文件。删除用户之前,请务必仔细斟酌;如无必要,请首先考虑停用帐户(使用usermod -L)。在删除帐户之前,请确保已备份该用户的所有文件,因为有时候你可能会需要用到它们


usermod

格式:usermod [options] username

作用:以各种方式修改给定用户的帐户

常用选项:

-d dir 将用户的主目录改为dir

-l username 将用户的登录名改为username。在修改登录名之前,请三思而后行,一定要避免系统上还有某些内容依赖于原始名称的情况的发生。同时,一般不要更改系统帐户(root,daemon等),除非你真的清楚自己在做什么!

-s shell 将用户的登录shell改为shell

-g group 将用户的初始(默认)组改为group,它可以是数字形式的组ID或组名称,但是这些组必须是已经存在的

-G group1,group2,… 修改用户所属的附加群组,即group1,group2等现有的组。如果用户在此之前已经加入其他组,但是这里没有给出这些组的话,则用户将退出这些组

-L 禁用(锁定)帐户,以使用户无法登录

-U 在执行锁定(-L)操作后,为帐户解锁


passwd

格式:passwd [options] [username]

作用:更改登录密码,或以超级用户身份来修改其他用户密码


chfn

格式:chfn [options] [username]

作用:更新系统维护的个人信息:真实姓名、家庭电话、办公室电话和办公室位置。如果调用该命令的时候没有指定用户名的话,chfn命令就是针对你的帐户;如果(以root身份)调用该命令时提供了用户名,那么它就会更新该用户的相关信息。如果不提供任何选项的话,chfn将提示你输入所需的信息

常用选项:

-f name 将全名改为name

-h phone 将家庭电话号码改为phone

-p phone 将办公室电话号码改为phone

-o office 将办公室地址改为office


chsh

格式:chsh [options] [username]

作用:设置登录shell程序。如果调用时没有指定用户名的话,chsh默认会修改用户自己的登录shell;如果(以root身份)调用该命令时指定了用户名的话,它会修改指定用户的登录shell。如果没有给出任何选项的话,chsh将提示你输入所需信息。当然,新的shell必须是存在于文件/etc/shells中的

常用选项:

-s shell 指定新的shell

-l 列出所有可用的shell


20、用户组的管理

命令作用
groups显示用户所在组
groupadd创建用户组
groupdel删除用户组
groupmod修改用户组

groups

格式:groups [usernames]

作用:显示你所属的或其他用户所属的LInux组


groupadd

格式:groupadd [options] group

作用:创建组。在大多数情况下,应该使用-f选项来防止创建重名的组

常用选项:

-g gid 自己指定数字组ID,而不是让groupadd选择一个

-f 如果指定的组已经存在,给出提示并退出


groupdel

格式:groupdel group

作用:删除现有的组

注:在进行该项操作之前,最好找出所有组ID被设置为给定组的文件,以便稍后处理

$ sudo find / -group <group> -print

因为groupdel不会改变文件所属的组。它只是从系统中删除相应的组的名称。如果你显示这些文件的话,你会看到数字组ID,而不是组名


groupmod

格式:groupmod [options] group

作用:修改给定组,改变其名称或组ID

注:groupmod命令不影响属于该组的任何文件:它只是修改系统记录中的ID或名称。但是,更改ID时要小心,否则会导致这些文件归属于不存在的组

常用选项:

-n name 将组的名称更改为name(安全)

-g gid 将组ID更改为gid(危险)


21、主机信息

命令作用
uname显示系统基本信息
hostname显示系统的主机名
domainname相当于hostname -y
ip设置和显示网络接口信息
ifconfig设置和显示网络接口信息

uname

格式:uname [options]

作用:显示计算机的基本信息

常用选项:

-a 所有信息

-s 只显示内核名称(默认)

-n 只显示主机名,与hostname命令一样

-r 只显示内核发行版

-v 只显示内核版本

-m 只显示硬件名称

-p 只显示处理器类型

-i 只显示硬件平台

-o 只显示操作系统名称


hostname

格式:hostname [options] [name]

作用:显示计算机的名称。根据你的设置情况,该命令可能会显示完整或简略的主机名;也可以以root身份设置你的主机名

常用选项:

-i 显示主机的IP地址

-a 显示主机的别名

-s 显示短主机名称

-f 显示你的主机的全域名

-d 显示主机的DNS域名

-y 显示主机的NIS或YP域名

-F hostfile 设置你的主机名,并且该名称是从hostfile文件中读取的


ip

格式:ip [options] object command ...

作用:显示和设置计算机网络接口的相关参数

常用命令:

获取默认网络接口(通常称为eth0)的有关信息:

ip addr show eth0

查看所有已经加载的网络接口:

ip addr show

查看帮助信息:

ip help

显示网络设备的IP地址:

ip addr

显示网络设备的组播地址:

ip maddr

显示网络设备的属性:

ip link

显示路由表:

ip route

开始监控网络设备,输入Ctrl+C停止监控:

ip monitor

注:这些命令都有多个选项,在相应的命令后面添加help,可以查看相应的用法。此外,ip可以在超级用户权限下面修改网络:配置网络设备、管理路由表和规则、创建隧道等。实际上,它是名为iproute2的工具集的一部分


ifconfig

格式:ifconfig [options] interface

作用:设置和显示网络接口的信息

常用命令:

ifconfig eth0 显示默认网络接口(通常为eth0)的信息

ifconfig -a 查看所有已经加载的网络接口


22、主机位置

命令作用
host查找主机名、IP地址和DNS信息
whois查找互联网域名注册者
ping检查远程主机是否可达
traceroute查看到远程主机的网络路径

host

格式:host [options] name [server]

作用:通过查询DNS来查找远程机器的主机名或IP地址

常用选项:

-a 显示所有可用信息

-t 选择名称服务器查询的类型:A、AXFR、CNAME、HINFO、KEY、MX、NS、PTR、SIG、SOA等


whois

格式:whois [options] domain_name

作用:查找Internet域名的注册信息

常用选项:

-h registrar 在给定的注册商服务器上进行查找

-p port 查询给定的TCP端口而非默认端口43(whois服务)


ping

格式:ping [options] host

作用:确认远程主机是否处于可访问状态。它会向远程主机发送一些小数据包(即ICMP数据包),并等待响应

常用选项:

-c N 最多ping N次

-i N 每隔N秒ping一次(默认为1)

-n 在输出中显示IP地址,而非主机名


traceroute

格式:traceroute [options] host [packet_length]

作用:输出从本地主机到远程主机的网络路径,以及数据包通过该路径所需的时间

注:该命令会向路径中的每个主机发送三个探测数据包,并报告返回时间。如果五秒内没有收到对方的响应,traceroute会显示一个星号。此外,traceroute可能被防火墙阻止或由于其他原因而无法进行,在这种情况下,它会显示相应的符号:

符号含义
!F需要分片
!H主机不可达
!N网络不可达
!P协议不可达
!S源路由失败
!X通信出于管理的需要而被禁止
!NICMP不可达代码N

默认数据包大小为40字节,但你可以通过可选参数packet_length来进行修改

常用选项:

-n 数字模式:显示IP地址而不是主机名

-w N 将超时从5秒改为N秒


23、网络连接

命令作用
ssh安全地登录到远程主机,或在其上运行命令
scp安全地将文件复制到远程主机中(批处理方式)
sftp安全地将文件复制到远程主机,或者从远程主机安全地复制文件到本地主机(交互方式)
ftp将文件复制到远程主机,或者从远程主机安全地复制文件到本地主机(交互式,不安全)
netcat创建任意网络连接

ssh

格式:ssh [options] host [command]

作用:如果你在某远程机器上面拥有相应的帐户的话,可以通过ssh程序来进行安全的远程登录,或是调用远程机器上的程序而无需登录。ssh会加密通过其连接进行传输的所有数据,包括你的用户名和密码(这是你需要访问远程计算机所需的)。SSH协议还支持其他方式进行身份验证,例如公钥和主机ID

常用选项:

-l user 指定你的远程用户名,否则,ssh将默认使用你的本地用户名。你还可以使用username@host语法:ssh wayne@server.example.com

-p port 使用非默认端口号(默认端口号为22)

-t 在远程系统上分配tty,这在尝试使用交互式用户界面(如文本编辑器)运行远程命令时很有用

-v 产生详细的输出,这就调试很有用


scp

格式:scp local_spec remote_spec

作用:将文件和目录从一台计算机批量复制到另一台计算机,它会对两台机器之间的所有通信进行加密处理

命令示例:

将本地文件复制到远程机器:

scp myfile remote.example.com:newfile

将目录复制到远程机器:

scp -r mydir remote.example.com:

将远程文件复制到本地计算机:

scp remote.example.com:myfile .

将远程目录复制到本地计算机:

scp -r remote.example.com:mydir .

要指定远程系统上的用户名,请使用username@host语法:

scp myfile wayne@remote.example.com:

常用选项:

-p 复制所有的文件属性(权限、时间戳)

-r 递归复制目录及其内容

-v 产生详细的输出,该选项对调试非常有用


sftp

格式:sftp (host username@host)

作用:在两台计算机之间以交互方式安全地通过批量方式复制文件

注:如果你在远程系统上的用户名与本地用户名不同的话,则需要使用username@host参数

命令含义
help查看可用的命令
ls列出当前远程目录中的文件
lls列出当前本地目录中的文件
pwd显示远程工作目录
lpwd显示本地工作目录
cd dir将远程目录更改为dir
lcd dir将本地目录更改为dir
get file1 [file2]将远程file1复制到本地机器,并将重新命名为file2(可选)
put file1 [file2]将本地file1复制到远程机器,并将重新命名为file2(可选)
mget file *使用通配符*和?将多个远程文件复制到本地计算机
mput file *使用通配符*和?将多个本地文件复制到远程计算机
quit退出sftp

ftp

格式:ftp [options] host

作用:在计算机之间复制文件,无法以安全的方式复制文件,用户名和密码是以纯文本形式在网络中传播的


netcat

格式:netcat [options] [destination] [port]nc [options] [destination] [port]

作用:netcat或nc都是用于进行网络连接的通用工具,该工具不仅可以用来调试、了解网络,同时还有许多其他用途

常用选项:

-u 建立UDP连接而不是TCP连接

-l 侦听给定端口上的连接

-p N 使用端口N作为源端口

-w N N秒后超时

-h 获取帮助信息


Email

命令作用
mutt基于文本的邮件客户端
mail基于文本的迷你邮件客户端
mailq查看系统上的外发邮件队列

mutt

格式:mutt [options]

作用:mutt是一个基于文本的邮件程序,能够在普通终端(或终端窗口)中运行,因此可以在本地(例如,X终端窗口)中使用或通过SSH连接远程使用


mail

格式:mail [options] recipient

作用:mail程序是一个快速、简单的电子邮件客户端,利用命令行或脚本来快速处理邮件

常用选项:

-s subject 设置邮件的主题行

-v 冗长模式,显示邮件传递的相关信息

-c address 指定邮件副本的收信人地址(以逗号分隔的列表)

-b address 指定密件副本的收信人地址(以逗号分隔的列表)


mailq

格式:mailq

作用:列出所有等待发送的外发电子邮件,发送的邮件将记录在日志文件中


24、网页浏览

命令作用
lynx纯文本的网页浏览器
wget下载网页和文件

lynx

格式:lynx [options] [URL]

作用:lynx是一个精简的纯文本网页浏览器,由于太过精简,因此无法显示图片、播放音频或视频,甚至无法响应鼠标。但是,当你只需要快速浏览页面,或网络速度慢或下载网站的HTML时,这种精简特性却是非常有用的。此外,它特别适合检测可疑网址,因为lynx不运行JavaScript,甚至在未经允许的情况下都不会接受cookie。所有浏览活动都是通过键盘完成的。有时候,浏览的效果不太完美,特别是浏览大量使用表格或框架的页面的时候,不过,浏览网站的概貌还是没问题的

常用选项:

-dump 将渲染的页面打印到标准输出并退出(类似于-source选项)

-source 将HTML源代码打印到标准输出并退出(类似于wget命令)

-emacskeys 让lynx使用emacs编辑器的按键指令

-vikeys 让lynx使用vim(或vi)编辑器的按键指令

-homepage=URL 将你的主页网址设置为URL

-color 打开彩色文字模式

-nocolor 关闭彩色文字模式


wget

格式:wget [options] URL

作用:打开URL并将数据下载到文件或标准输出

注:与之类似的一个命令是curl,它默认情况下会将相应内容写入标准输出,这与wget不同,wget默认情况下会复制原始页面和文件名

常用选项:

-i filename 从指定的文件读取URL并依次检索它们

-O filename 将所有捕捉到的HTML写入给定的文件夹,逐页追加

-c 续传模式:如果之前的下载被中断,只剩下部分内容,那么wget将从上次中断的地方开始下载。也就是说,如果内容150K,上次已经下载了100K,那么使用-c选项后,就只下载剩下的50K,然后把它添加到已经下载的内容后面即可。不过,有时候wget可能会“被耍”,例如从上次进行了(部分)下载之后,文件已经发生变化,所以,只有确保远程文件没有发生变化时,才能使用这个选项

-t N 尝试N次,然后放弃。N=0表示不停尝试下去

–progress=dot 通过点号来显示下载进度

–progress=bar 通过条型来显示下载进度

–spider 不下载,只是检查远程页面是否存在

-nd 将所有的文件下载到当前目录中,即使它们原先位于一个非常复杂的目录树中(默认情况下,wget会按照原样来复制远程目录的层次结构)

-r 递归下载页面层次结构,包括子目录

-l N 在最多下载N层内的文件(默认为5)

-k 内部检索的文件,修改URL,以便可以在网络浏览器中查看文件

-p 下载完整显示页面所需的所有文件,如样式表和图像文件等

-L 下载(页面内的)相对链接,但不下载绝对链接

-A pattern 接受模式:仅下载名称与给定模式匹配的文件。模式可以使用shell通配符

-R pattern 拒绝模式:仅下载名称与给定模式不匹配的文件

-I pattern 目录包含:仅从匹配给定模式的目录中下载文件

-X pattern 目录排除:仅从不符合给定模式的目录中下载文件


25、即时通信

命令作用
write向终端发送消息
mesg设置当前终端的写权限,即是否让其他用户向本终端发消息
tty显示终端设备名称
sendxmpp通过XMPP(Jabber)发送即时消息
profanity基于文本的XMPP客户端
irssi基于文本的IRC客户端

write

格式:write user [tty]

作用:向同一台机器上的其他用户发送多行文本,Ctrl+D组合键用于结束连接。也可以在管道中发送一次性消息

注:与write命令功能比较接近的一个命令是wall,它能同时向所有登录用户发送消息:

wall The system will reboot in 1 hour

mesg

格式:mesg [y|n]

作用:决定是否可以向终端写入内容。mesg y表示允许写入,mesg n表示拒绝写入,而mesg则会显示当前状态(y或n),其中y是默认值。mesg对现代即时通信程序无效


tty

格式:tty

作用:显示与当前shell相关联的终端设备名称(如果收件人多次登录,write命令可能需要这些信息)


sendxmpp

格式:sendxmpp [options] recipients

作用:通过XMPP协议(Jabber)发送即时消息的快速方式。当你只想发送单个消息或文本文件的内容,而无需接收消息的时候,这个程序是非常方便的

常用选项:

-t 使用TLS来保护连接

-e 使用SSL来保护连接

-s text 随消息一起发送主题行

-v 冗长模式:显示调试信息。如果当连接失败的时候,该选项将非常有用


profanity

格式:profanity [options]

作用:用于XMPP协议(Jabber)的一款全功能即时通信客户端。与图形客户端不同,profanity是在shell窗口中运行的,因此你可以通过SSH来使用该客户端


irssi

格式:irssi [options]

作用:功能齐全的基于文本的IRC客户端


26、屏幕输出

命令作用
echo在标准输出上显示简单文本
printf在标准输出上显示格式化文本
yes在标准输出上显示重复文字
seq在标准输出上显示一个数字序列
clear清除屏幕或窗口

echo

格式:echo [options] strings

作用:显示其参数

常用选项:

-n 不要打印最后面的换行符

-e 识别并解释转义字符

-E 不解释转义字符:与-e选项的作用相反

可用的转义字符包括:

\a 警报(发出哔声)

\b 退格

\c 不打印最后面的换行符(与-n选项的作用相同)

\f 换页

\n 换行

\r 回车

\t 水平制表符

\v 垂直制表符

\\ 反斜杠

\' 单引号

\" 双引号

\nnn 插入nnn(八进制)所代表的ASCII字符


printf

格式:printf format_string [arguments]

作用:增强版的echo命令,能够在标准输出上显示格式化的字符串,类似于C语言的printf()函数,将一个格式字符串应用于参数序列以创建指定的输出


yes

格式:yes [string]

作用:重复打印指定的字符串(或默认为“y”),并且每个字符串占一行


seq

格式:seq [options] specification

作用:输出一系列整数或实数,适用于其他程序的管道。它有三种规格参数:一个数字:上限,两个数字:下限和上限,三个数字:下限,增量和上限

常用选项:

-w 根据需要打印前导零,以使所有行的宽度相同

-f format 使用类似printf的格式字符串来格式化输出行,该字符串必须包含%g(默认值)、%e或%f

-s string 使用给定的字符串作为数字之间的分隔符。在默认情况下,会打印换行符(即每行一个数字)


clear

格式:clear

作用:清除显示器或shell窗口中的内容


27、复制和粘贴

命令作用
xclip在shell和剪切板之间进行复制并粘贴操作
xsel通过shell来操作剪切板

xclip

格式:xclip [options]

作用:可以对三个Linux选择(剪切板)命令进行读取和写入操作,从而实现在shell和图形应用程序之间复制和粘贴文本

常用选项:

-selection name 通过名称,从primary、secondary或clipboard中指定一个选择命令。默认情况下,将会选取primary命令

-i 从标准输入中读取选择命令中的内容,该选项可省略

-o 将选择命令中的内容写入标准输出


xsel

格式:xsel [options]

作用:xsel是xclip的增强版本,它除了能够读写三个选择(剪切板)命令中的内容之外,还支持附加、交换和清除操作

常用选项:

-p 使用primary命令(默认)

-s 使用secondary命令

-b 使用clipboard命令

-i 选择命令从标准输入读取相应的内容,这是默认的行为

-a 附加到选择命令中

-o 将选择命令的内容写入标准输出

-c 清除选择命令中的内容

-x 交换primary和secondary命令中的内容


28、数学和计算

命令作用
expr在命令行进行简单的数学运算
bc基于文本的计算器
dc基于文本的RPN计算器

expr

格式:expr expression

作用:在命令行中执行简单的数学(和其他表达式求值)运算


bc

格式:bc [options] [files]

作用:读取算术表达式,每行一个,并显示结果


dc

格式:dc [options] [files]

作用:从标准输入读取表达式,并将结果写入标准输出,它是一个使用逆波兰表示法(RPN)、基于堆栈的计算器


29、日期和时间

命令作用
cal显示当前日历
date显示或设置日期和时间
ntpdate使用远程时间服务器设置系统时间

cal

格式:cal [options][month [year]]

作用:显示日历。默认情况下,它会显示当前月份的日历;要想显示当前月份之外的日历的话,请提供相应的月份和年份(用四位数字表示)。如果省略具体的月份,那么该命令就会显示整年的日历

常用选项:

-y 显示当前年份的日历

-3 显示三个月的日历:包括前一个月和下一个月的日历

-j 显示某一日位于当年中的第几天


date

格式:date [options] [format]

作用:显示日期和时间,该命令的输出结果将取决于系统的区域设置,在默认情况下,date将显示本地时区的系统日期和时间。可以通过提供以加号开头的格式字符串来格式化输出内容

常用选项:

-d string 显示给定的日期或时间string,并按照你的要求进行格式化

-r filename 显示给定图像的最后修改时间戳,并按照你的要求进行格式化

-s string 将系统日期和/或时间设置为string,只有超级用户才能执行该操作


ntpdate

格式:ntpdate timeserver

作用:通过访问网络上的时间服务器来设置当前系统时间,需要root权限


30、图像

命令作用
display显示图像文件
convert将文件从一种图形格式转换为另一种格式
mogrify修改图形文件
montage将多个图形文件组合成一个文件

display

格式:display [options] files

作用:显示多种格式的图像文件

常用选项:

-resize size 调整图像的大小。size的设置方式非常灵活,包括设置宽度(800),高度(x600),高度乘以宽度(800x600),缩放百分比(50%),像素面积(480000@)等

-flip 垂直反转图像

-flop 水平反转图像

-rotate N 将图像旋转N度

-backdrop 在纯色背景(该颜色将铺满图像之外的整个屏幕)下显示图像

-fill 设置-backdrop选项使用的纯色

-delay N 显示图像N秒,然后退出。如果列出多幅图像的话,以幻灯片形式播放,延迟时间为N秒

-identify 将图像的格式、大小和其他统计信息打印到标准输出


convert

格式:convert [input_options] infile [output_options] outfile

作用:复制图像,同时将其转换为不同的图形格式。同时,可以对图像的副本进行修改

注:该命令的选项与display命令大部分保持一致


mogrify

格式:mogrify [options] file

作用:像convert命令那样对图像进行转换,不过该命令的转换操作是直接针对原图像文件,而不是通过副本来完成的(所以convert是一个更加安全的命令)。该命令能支持convert命令的大部分选项


montage

格式:montage infiles [options] outfile

作用:将一组输入文件组合到单个图像文件中,该命令在图像的显示方式方面具有非常强大的控制能力

常用选项:

-geometry widthxheight[±]x[±]y 设置图像的高度宽度和偏移(x,y)

-frame N 在每个图像周围绘制宽度为N个像素的框

-label string 使用字符串来标注各个图像,其中可以包括以百分号开头的特殊转义字符:%f表示原始文件名,%h和%w表示高度和宽度,%m表示文件格式等


31、音频和视频

命令作用
cdparanoia将CD音轨转换(也就是”提取“)成WAV文件
lame将WAV文件转换为MP3文件
id3info查看MP3文件中的ID3标签
id3tag编辑MP3文件中的ID3标签
ogginfo查看OGG的信息
metaflac查看和编辑FLAC文件的信息
sox在各种音频流格式之间进行转换
mplayer播放视频或音频

cdparanoia

格式:cdparanoia [options] span [outfile]

作用:从CD读取(提取)音频数据,并将其存储到WAV文件(或其他格式)

常见用法:

cdparanoia N 将N音轨转换为一个文件

cdparanoia -B 将CD上的所有音轨都转换为单独的文件

cdparanoia -B 2-4 将2、3和4音轨转换为单独的文件

cdparanoia 2-4 将2、3和4音轨转换为单个文件

注:如果访问驱动器遇到困难,可以尝试运行cdparanoia -Qvs命令来查找相关线索


lame

格式:lame [options] file.wav

作用:将WAV音频文件转换为MP3文件


id3info

格式:id3info [options] [files]

作用:显示MP3音频文件的相关信息,前提是文件中含有ID3标签


id3tag

格式:id3tag [options] files

作用:添加或修改MP3文件中的ID3标签

常用选项:

-A name 设置艺术家的名字

-a title 设置专辑标题

-s title 设置歌曲标题

-y year 设置年份

-t number 设置音轨数

-g number 设置流派码


ogginfo

格式:ogginfo [options] [files]

作用:显示OGG Vorbis音频文件的各种信息,添加-h选项可以获取更详细的用法说明信息


metaflac

格式:metaflac [options] [files]

作用:显示或更改FLAC音频文件的信息

常用选项:

–show-tag name 显示给定标签的值

–remove-tag name 从FLAC文件中删除所有给定的标签


sox

格式:sox [options] infile outfile

作用:音频文件格式转换

常用选项:

-S 显示进度表,适用于长时间的格式转换情形

–no-clobber 如果输出的文件已经存在,则不覆盖原来的文件

-t type 指定输入的类型,如果sox无法识别的话


mplayer

格式:mplayer [options] video_files ...

作用:播放视频或音频文件


Wayne.Chen

整理于2018年11月8日下午

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kalrry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值