Linux命令速查---kalrry

  • 1、shell的作业控制
  • 2、文件基本操作
    • ls
    • cp
    • mv
    • rm
    • ln
  • 3、目录操作
    • cd
    • pwd
    • basename
    • dirname
    • mkdir
    • rmdir
  • 4、查看文件
    • cat
    • less
    • nl
    • head
    • tail
    • strings
    • od
  • 5、文件属性
    • stat
    • wc
    • du
    • file
    • touch
    • chown
    • chgrp
    • chmod
    • umask
    • chattr
    • lsattr
  • 6、文件的定位
    • find
    • xargs
    • locate
    • which
    • type
    • whereis
  • 7、文件的正文处理
    • grep
    • egrep
    • fgrep
    • cut
    • paste
    • tr
    • expand / unexpand
    • sort
    • uniq
    • tee
  • 8、文件的压缩与打包
    • tar
    • gzip
    • bzip2
    • compress
    • zip
    • munpack
  • 9、文件的比较
    • diff
    • comm
    • cmp
    • md5sum
  • 10、处理PDF文件和PostScript文件
    • pdftotext
    • ps2ascii
    • pdfseparate
    • pdftk
    • pdf2ps
  • 11、打印
    • lpr
    • lpq
    • lprm
  • 12、拼写检查
    • look
    • aspell
    • spell
  • 13、磁盘和文件系统
    • df
    • mount
    • umount
    • fsck
    • eject
    • rsync
    • dd
    • growisofs
  • 14、查看进程
    • ps
    • uptime
    • w
    • top
    • free
  • 15、控制进程
    • kill
    • timeout
    • nice
    • renice
    • flock
  • 16、作业调度
    • sleep
    • watch
    • at
    • crontab
  • 17、登录、注销与关机
    • shutdown
    • systemctl
  • 18、用户及环境变量
    • logname
    • whoami
    • id
    • who
    • users
    • finger
    • last
    • printenv
  • 19、用户帐户管理
    • useradd
    • userdel
    • usermod
    • passwd
    • chfn
    • chsh
  • 20、用户组的管理
    • groups
    • groupadd
    • groupdel
    • groupmod
  • 21、主机信息
    • uname
    • hostname
    • ip
    • ifconfig
  • 22、主机位置
    • host
    • whois
    • ping
    • traceroute
  • 23、网络连接
    • ssh
    • scp
    • sftp
    • ftp
    • netcat
    • Email
    • mutt
    • mail
    • mailq
  • 24、网页浏览
    • lynx
    • wget
  • 25、即时通信
    • write
    • mesg
    • tty
    • sendxmpp
    • profanity
    • irssi
  • 26、屏幕输出
    • echo
    • printf
    • yes
    • seq
    • clear
  • 27、复制和粘贴
    • xclip
    • xsel
  • 28、数学和计算
    • expr
    • bc
    • dc
  • 29、日期和时间
    • cal
    • date
    • ntpdate
  • 30、图像
    • display
    • convert
    • mogrify
    • montage
  • 31、音频和视频
    • cdparanoia
    • lame
    • id3info
    • id3tag
    • ogginfo
    • metaflac
    • sox
    • mplayer

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 通信出于管理的需要而被禁止
!N ICMP不可达代码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日下午

Linux命令速查---kalrry相关推荐

  1. 《Red Hat Linux命令速查》—— 带你玩转字符游戏

    命令行管理,一个玩转字符的战场! 忽隐忽现的光标  神秘莫测的符号  闪转腾挪的玄机  直捣黄龙的快意 能领略这一切的人,只有你--深谙命令行管理之道的系统管理员和软件开发人员! 命令行之于优秀的系统 ...

  2. Linux命令速查表

    RHCE试听课 [linux系统下,用这个命令可以提高60%的工作效率 ]https://mp.weixin.qq.com/s/pZVjMI1PLJzrA8hoPzkgMA RHCE试听课 [如何快速 ...

  3. Linux命令速查手册

    一. 启动,关机,登入,登出相关命令 <login> 登录 <logout> 登出 <exit> 登出 <shutdown> 停止系统 <halt ...

  4. 《Linux命令速查手册》笔记

    写在前面:我看过很多技术相关的书籍,但是很少有全部看完的.大部分都是看了一小半,甚至是一大半.但是印象中,没有哪一本是全部读完的,哪怕的通读. 不过这本<Linux命令速查手册>,我倒是很 ...

  5. Linux命令速查工具

    在操作Linux的时候,经常会突然想不起来某个命令怎么写,今天在逛论坛的时候,发现一个大佬用易语言开发了个Linux命令快查助手.下载体验之后发现确实非常棒. 日常开发中用到的命令在这里都可以查到. ...

  6. 生信人的自我修养:Linux 命令速查手册

    标题:生信人的自我修养:Linux 命令速查手册 目标:致力于为生信人打造一个完整的 Linux 命令速查手册 作者:简佐义(jianzuoyi@qq.com) 版本:1.0 日期:2020-11-2 ...

  7. 一款自己写Linux命令速查APP,欢迎大家下载试用

    Linux命令多,参数更多,不可能完全记下来.很多进程和Linux打交道的小伙伴都有忘记命令,用错命令的情况.在测试环境还好,如果是在生产环境用错命令,可能会导致无法挽回的严重后果.而在线百度Linu ...

  8. linux 命令速查手册之十

    今天粘贴的是linux命令之 用户管理 8.1 adduser 功能说明:新增用户帐号. 语 法:adduser 补充说明:在Slackware中,adduser指令是个script程序,利用交谈的方 ...

  9. Linux 命令速查

    学生信,Linux是最最基本的技能,要尽量将自己的工作平台转移到Linux,编程写脚本,这样会极大的提升工作效率,找工作时也不会太怂.Linux所有的任务都是通过命令来完成的,具有高度的统一性.Lin ...

最新文章

  1. c++概念模型的官方解释
  2. asp mvc @Html.CheckBox(sel,true) 往后台传值问题
  3. redis 4.0.8 源码包安装集群
  4. 项目背景介绍及文件系统基本概念简介
  5. React Native 设置RGBA背景色
  6. jquery 自动触发事件 trigger
  7. maya室内模型_C4d和3dmax、maya相比有什么优势?
  8. 信息学奥赛一本通(2055:【例3.5】收费)
  9. 【CSS】学习笔记1 使用CSS样式表
  10. error while loading shared libraries: libiconv.so.2: cannot open shared object file
  11. 源泉书签支持批量删除功能啦
  12. 微信小程序仿支付宝滑动图标
  13. 华为服务器2288h修改u盘启动,华为服务器bios设置u盘启动
  14. 什么都可以丢,唯独不能丢了你
  15. 关于pip下载很慢很慢
  16. 基于SC-LIO-SAM的SLAM实践
  17. 存储管理系统课程设计——C语言实现请求页式存储管理模拟系统
  18. 企业中多分支多人协作的git工作流程
  19. 迅雷的工作原理 [揭密迅雷]
  20. 单片机汇编伪指令DATA和EQU的区别

热门文章

  1. 015:Scrapy获取淘车网十七万二手车数据
  2. 玩客云刷上Armbian的体验
  3. C语言自定义输入10000个整数,C语言
  4. Multisim 非门
  5. 修改Element-ui表格样式
  6. 【开发随记】【提效】工作习惯那些事系列之三——邮件管理
  7. 第008篇:ArcGIS中点对落入多边形的位置关系(相邻/相离)的判定
  8. dct图像压缩c语言实现,DCT变换在图像压缩中的实现
  9. 【笔记】STM32F4xx 时钟定时器
  10. 详细讲解二极管的钳位电路和限幅电路