Linux运维命令<一>
basename
从文件名中去掉路径和扩展名
basename /usr/local/bin //输出bin
cat
把文件连接后传到基本输出或另一个文件
####语法
cat [-AbeEnstTuv] filename
####参数
-n或--number //由1开始对所有输出的行数编号
-b或--number-nonblank //和-n相似,只不过对于空白行不编号
-s或--squeeze-blank //当遇到有连续两行以上的空白行,就代换为一行的空白行
-v或--show-nonprinting
cd
切换目录
语法
cd [目的目录]
chgrp
变更文件或目录的所属群组
####语法
chgrp [-cfhRv] [所属群组] [文件或目录]
####选项
-R 递归处理
chown
变更文件或目录的拥有者或所属群组
chown [-cfhRv] [拥有者.<所属群组>][文件或目录]
chmod
变更文件或目录的权限
chmod [-cfRv] [数字代号][文件或目录]
权限代号:
r:读取权限,数字代号为"4"。
w:写入权限,数字代号为"2"。
x:执行或切换权限,数字代号为"1"。
-:不具任何权限,数字代号为"0"
cp
复制文件或目录
cp [-abdfilpPrRsuvx] [源文件或目录][目标文件或目录] [目的目录]
####选项说明
-f 或--force 强行复制文件或目录,不论目标文件或目录是否已存在
-d 或--no-dereference 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录。
-p 或--preserve 保留源文件或目录的属性。
-r 递归处理,将指定目录下的文件与子目录一并处理
cut
以某种方式按照文件的行进行分割
####语法
cut [options] [filename]
####选项
-d 自定义分隔符,默认为制表符
-c 按字符选取
-b 按字节选取 忽略多字节字符边界,除非也指定了 -n 标志
-f 与-d一起使用,指定显示哪个区域
dd
读取,转换并输出数据
####语法
dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=<字节数>][if=<文件>][obs=<字节数>][of=<文件>][seek=<区块数>][skip=<区块数>]
####参数
bs=<字节数> 将 ibs( 输入)与 obs(输出)设成指定的字节数。
cbs=<字节数> 转换时,每次只转换指定的字节数。
conv=<关键字> 指定文件转换的方式。
count=<区块数> 仅读取指定的区块数。
ibs=<字节数> 每次读取的字节数。
if=<文件> 从文件读取。
obs=<字节数> 每次输出的字节数。
of=<文件> 输出到文件。
seek=<区块数> 一开始输出时,跳过指定的区块数。
dos2unix
将一个 DOS 格式的文件转换为 UNIX 格式的文件
####语法
dos2unix [-hkqV] [-c convmode] [-o file ...] [-n infile outfile ...]
grep
在文件中查找指定的字符串
####语法
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] [文件或目录...]
file
辨识文件类型
####语法
file [-beLvz] filename
find
查找文件或目录
####语法
find [目录] [选项]
####选项
-amin<分钟> 查找在指定时间曾被存取过的文件或目录,单位以分钟计算。
-anewer<参考文件或目录> 查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录。
-atime<24 小时数> 查找在指定时间曾被存取过的文件或目录,单位以 24 小时计算。
-cmin<分钟> 查找在指定时间之时被更改的文件或目录。
-cnewer<参考文件或目录> 查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
-ctime<24 小时数> 查找在指定时间之时被更改的文件或目录,单位以 24 小时计算。
-daystart 从本日开始计算时间。
-depth 从指定目录下最深层的子目录开始查找。
-expty 寻找文件大小为 0 Byte 的文件,或目录下没有任何子目录或文件的空目录。
-exec<执行指令> 假设 find 指令的回传值为 True,就执行该指令。-false 将 find 指令的回传值皆设为 False。
-fls<列表文件> 此参数的效果和指定"-ls"参数类似,但会把结果保存为指定的列表文件。
-follow 排除符号连接。
-fprint<列表文件> 此参数的效果和指定"-print"参数类似,但会把结果保存成指定的列表文件。
-fprint0<列表文件> 此参数的效果和指定"-print0"参数类似,但会把结果保存成指定的列表文件。
-fprintf<列表文件><输出格式> 此参数的效果和指定"-printf"参数类似,但会把结果保存成指定的列表文件。
-fstype<文件系统类型> 只寻找该文件系统类型下的文件或目录。
-gid<群组识别码> 查找符合指定之群组识别码的文件或目录。
-group<群组名称> 查找符合指定之群组名称的文件或目录。
-ilname<范本样式> 此参数的效果和指定"-lname"参数类似,但忽略字符大小写的差别。
-iname<范本样式> 此参数的效果和指定"-name"参数类似,但忽略字符大小写的差别。
-inum<inode 编号> 查找符合指定的 inode 编号的文件或目录。
-ipath<范本样式> 此参数的效果和指定"-ipath"参数类似,但忽略字符大小写的差别。
-iregex<范本样式> 此参数的效果和指定"-regexe"参数类似, 但忽略字符大小写的差别。
-links<连接数目> 查找符合指定的硬连接数目的文件或目录。
-iname<范本样式> 指定字符串作为寻找符号连接的范本样式。
-ls 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准输出。
-maxdepth<目录层级> 设置最大目录层级。-mindepth<目录层级> 设置最小目录层级。
-mmin<分钟> 查找在指定时间曾被更改过的文件或目录,单位以分钟计算。
-mount 此参数的效果和指定"-xdev"相同。
-mtime<24 小时数> 查找在指定时间曾被更改过的文件或目录,单位以 24 小时计算。
-name<范本样式> 指定字符串作为寻找文件或目录的范本样式。
-newer<参考文件或目录> 查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录。
-nogroup 找出不属于本地主机群组识别码的文件或目录。
-noleaf 不去考虑目录至少需拥有两个硬连接存在。
-nouser 找出不属于本地主机用户识别码的文件或目录。
-ok<执行指令> 此参数的效果和指定"-exec"参数类似, 但在执行指令之前会先询问用户,若回答"y"或"Y",则放弃执行指令。
-path<范本样式> 指定字符串作为寻找目录的范本样式。
-perm<权限数值> 查找符合指定的权限数值的文件或目录。
-print 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称之前皆有"./"字符串。
-print0 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行。
-printf<输出格式> 假设 find 指令的回传值为 True,就将文件或目录名称列出到标准输出。格式可以自行指定。
-prune 不寻找字符串作为寻找文件或目录的范本样式。
-regex<范本样式> 指定字符串作为寻找文件或目录的范本样式。
-size<文件大小> 查找符合指定的文件大小的文件。
-true 将 find 指令的回传值皆设为 True。
-type<文件类型> 只寻找符合指定的文件类型的文件。
-uid<用户识别码> 查找符合指定的用户识别码的文件或目录。
-used<日数> 查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算。
-user<拥有者名称> 查找符合指定的拥有者名称的文件或目录。
-version 或--version 显示版本信息。
-xdev 将范围局限在先行的文件系统中。
-xtype<文件类型> 此参数的效果和指定"-type"参数类似,差别在于它针对符号连接检查
head
查看文件的前几行,默认为10
####语法
head [options] [files]
####选项
-n 显示的行数
less
按页显示文件
####语法
less [options] [filename]
ln
链接文件或目录
####语法
ln [-bdfinsv] [源文件或目录][目标文件或目录]
####参数
-b 或--backup 删除,覆盖目标文件之前的备份
-d 或-F 或--directory 建立目录的硬连接。
-f 或--force 强行建立文件或目录的连接,不论文件或目录是否存在。
-i 或--interactive 覆盖既有文件之前先询问用户。
-n 或--no-dereference 把符号连接的目的目录视为一般文件。
-s 或--symbolic 对源文件建立符号连接,而非硬连接。
locate
查找文件
####语法
locate -d<数据库文件> [范本样式]
ls
列出目录内容
####语法
ls [-1aAbBcCdDfFgGhHiklLmnNopqQrRsStuUvxX] [文件或目录]
####选项
-1 每列仅显示一个文件或目录名称。
-a 或--all 下所有文件和目录。
-A 或--almost-all 显示所有文件和目录,但不显示现行目录和上层目录。
-b 或--escape 显示脱离字符。
-B 或--ignore-backups 忽略备份文件和目录。
-c 以更改时间排序,显示文件和目录。
-C 以又上至下,从左到右的直行方式显示文件和目录名称。-d 或--directory 显示目录名称而非其内容。
-D 或--dired 用 Emacs 的模式产生文件和目录列表。
-f 此参数的效果和同时指定"aU"参数相同,并关闭"lst"参数的效果。
-F 或--classify 在执行文件, 目录,Socket,符号连接,管道名称后面,各自加上"*","/","=","@","|"号。
-g 次参数将忽略不予处理。
-G 或--no-group 不显示群组名称。
-h 或--human-readable 用"K","M","G"来显示文件和目录的大小。
-H 或--si 此参数的效果和指定"-h"参数类似,但计算单位是 1000Bytes 而非 1024Bytes。
-i 或--inode 显示文件和目录的 inode 编号。
-I<范本样式>或--ignore=<范本样式> 不显示符合范本样式的文件或目录名称。
-k 或--kilobytes 此参数的效果和指定"block-size=1024"参数相同。
-l 使用详细格式列表。
-L 或--dereference 如遇到性质为符号连接的文件或目录,直接列出该连接所指向的原始文件或目录。
-m 用","号区隔每个文件和目录的名称。
-n 或--numeric-uid-gid 以用户识别码和群组识别码替代其名称。
-N 或--literal 直接列出文件和目录名称,包括控制字符。
-o 此参数的效果和指定"-l" 参数类似,但不列出群组名称或识别码。
-p 或--file-type 此参数的效果和指定"-F"参数类似,但不会在执行文件名称后面加上"*"号。
-q 或--hide-control-chars 用"?"号取代控制字符,列出文件和目录名称。
-Q 或--quote-name 把文件和目录名称以""号标示起来。
-r 或--reverse 反向排序。-R 或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-s 或--size 显示文件和目录的大小,以区块为单位。
-S 用文件和目录的大小排序。
-t 用文件和目录的更改时间排序。
-T<跳格字符>或--tabsize=<跳格字数> 设置跳格字符所对应的空白字符数。
-u 以最后存取时间排序,显示文件和目录。
-U 列出文件和目录名称时不予排序。
-v 文件和目录的名称列表以版本进行排序。
-w<每列字符数>或--width=<每列字符数> 设置每列的最大字符数。
-x 以从左到右,由上至下的横列方式显示文件和目录名称。
-X 以文件和目录的最后一个扩展名排序。
--block-size=<区块大小> 指定存放文件的区块大小。
--color=<列表格式> 培植文件和目录的列表格式。
--full-time 列出完整的日期与时间。
--help 在线帮助。
--indicator-style=<标注样式> 在文件和目录等名称后面加上标注,易于辨识该名称所属的类型。
--quoting-syte=<引号样式> 把文件和目录名称以指定的引号样式标示起来。
--show-control-chars 在文件和目录列表时,使用控制字符。
--sort=<排序方式> 配置文件和目录列表的排序方式。
--time=<时间戳记> 用指定的时间戳记取代更改时间。
--version 显示版本信息。
mkdir
创建目录
####语法
mkdir -p -m[目录属性] [目录名称]
more
跟cat相似,按空格键进行下一页显示,按b键会往回一页显示
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
####选项
-num 一次显示的行数
-d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
-l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
mv
移动或修改文件及目录的名称
####语法
mv [-bfiuv] [源文件或目录][目标文件或目录]
####参数
-b 或--backup 若需覆盖文件,则覆盖前先行备份。
-f 或--force 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文 件或目录。
-i 或--interactive 覆盖前先行询问用户。
-u 或--update 在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件。
pwd
显示当前目录
####语法
pwd //执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。
rename
文件批量改名
####语法
rename from to file
from:代表原字符
to:目标字符
file:要改名的文件
rm
删除文件或目录
####语法
rm [-dfirv] [文件或目录]
####选项
-d 或--directory 直接把欲删除的目录的硬连接数据删成 0,删除该目录。
-f 或--force 强制删除文件或目录。
-i 或--interactive 删除既有文件或目录之前先询问用户。
-r 或-R 或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
rmdir
删除目录
####语法
rmdir [options] [目录名称]
sort
文本内容排序
####语法
sort [options] [文件]
####选项
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了 040 至 176 之间的 ASCII 字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面 3 个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
tail
查看文件的后N行
####语法
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]
####选项
-b Number 从 Number 变量表示的 512 字节块位置开始读取指定文件。
-c Number 从 Number 变量表示的字节位置开始读取指定文件。
-f 命令可用于监视另一个进程正在写入的文件的增长。
touch
改变文件或目录时间
####语法
touch [-acfm][-d <日期时间>] [filename]
####参数
-a 或--time=atime 或--time=access 或--time=use 只更改存取时间。
-c 或--no-create 不建立任何文件。
-d<时间日期> 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决 BSD 版本 touch 指令的兼容性问题。
-m 或--time=mtime 或--time=modify 只更改变动时间。
-r<参考文件或目录> 把指定文件或目录的日期时间, 统统设成和参考文件或目录的日期时间相同。
-t<日期时间> 使用指定的日期时间,而非现在的时间
uniq
检查及删除文本文件中重复出现的行
####语法
uniq [-cdu] [filename]
####参数
-c 或--count 在每列旁边显示该行重复出现的次数。
-d 或--repeated 仅显示重复出现的行列。
-f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
-s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
-u 或--unique 仅显示出一次的行列。
-w<字符位置>或--check-chars=<字符位置> 指定要比较的字符
wc
计算字数
####语法
wc [-clw] filename
####选项
-c 或--bytes 或--chars 只显示 Bytes 数。
-l 或--lines 只显示列数。
-w 或--words 只显示字数。
df
显示磁盘的文件系统与使用情况
####语法
df [-ahHiklmPT]
####选项
-a 或--all 包含全部的文件系统。
--block-size=<区块大小> 以指定的区块大小来显示区块数目。
-h 或--human-readable 以可读性较高的方式来显示信息。
-H 或--si 与-h 参数相同,但在计算时是以 1000 Bytes 为换算单位而非 1024 Bytes。
-i 或--inodes 显示 inode 的信息。
-k 或--kilobytes 指定区块大小为 1024 字节。
-l 或--local 仅显示本地端的文件系统。
-m 或--megabytes 指定区块大小为 1048576 字节。
--no-sync 在取得磁盘使用信息前,不要执行 sync 指令,此为预设值。
-P 或--portability 使用 POSIX 的输出格式。--sync 在取得磁盘使用信息前,先执行 sync 指令。
-t<文件系统类型>或--type=<文件系统类型> 仅显示指定文件系统类型的磁盘信息。
-T 或--print-type 显示文件系统的类型。
-x<文件系统类型>或--exclude-type=<文件系统类型> 不要显示指定文件系统类型的磁盘信息
fdisk
fdisk 是用来磁盘分区的程序
####语法
fdisk [options] [dev]
####选项
-b<分区大小> 指定每个分区的大小。
-l 列出指定的外围设备的分区表状况。
-s<分区编号> 将指定的分区大小输出到标准输出上,单位为区块。
-u 搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址。
free
显示内存状态
####语法
free [-bkmotV][-s <间隔秒数>]
####选项
-b 以 Byte 为单位显示内存使用情况。
-k 以 KB 为单位显示内存使用情况。
-m 以 MB 为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s<间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
mount
挂载文件系统
####语法
mount [-t vfstype] [-o options] device dir
####选项
-t vfstype 指定文件系统的类型,通常不必指定。
-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
device 要挂接(mount)的设备。
dir 设备在系统上的挂接点(mount point)。
umount
卸除文件系统
####语法
umount [-ahnrvV][-t <文件系统类型>][文件系统]
bunzip2
.bz2 文件的解压缩程序
####语法
bunzip2 [-fkLsvV][.bz2 压缩文件]
####参数
-f 或--force 解压缩时, 若输出的文件与现有文件同名时, 预设不会覆盖现有的文件。若要覆盖,请使用此参数。
-k 或--keep 在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数。
-s 或--small 降低程序执行时,内存的使用量。
-v 或--verbose 解压缩文件时,显示详细的信息
bzip2
.bz2 文件的压缩程序。
####语法
bzip2 [-cdfhkLstvVz][--repetitive-best][--repetitive-fast][- 压缩等级][要压缩的文件]
####选项
-c 或--stdout 将压缩与解压缩的结果送到标准输出。
-d 或--decompress 执行解压缩。
-f 或--force bzip2 在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数。
-h 或--help 显示帮助。
-k 或--keep bzip2 在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数。
-s 或--small 降低程序执行时内存的使用量。
-t 或--test 测试.bz2 压缩文件的完整性。
-v 或--verbose 压缩或解压缩文件时,显示详细的信息。
-z 或--compress 强制执行压缩。
gunzip
gunzip 是个使用广泛的解压缩程序,它用于解开被 gzip 压缩过的文件,这些压缩文件预设最后的扩展名为".gz"。
####语法
gunzip [-acfhlLnNqrtvV] [目录]
####选项
-a 或--ascii 使用 ASCII 文字模式。
-c 或--stdout 或--to-stdout 把解压后的文件输出到标准输出设备。
-f 或-force 强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-l 或--list 列出压缩文件的相关信息。