LINUX常用100条命令总结

  • A+

一、查询及帮助命令

1.1 man

语法:man [命令]

实例:[root@node02 ~]# man ls

1.2 help

语法:命令 --help

实例:[root@node02 ~]# ls --help

二、文件和目录操作命令

2.1 ls

功能:是列出目录的内容及其内容属性信息

语法:ls [-alrtAFR][name...]

参数:

 -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出-r 将文件以相反次序显示(原定依英文字母次序)-t 将文件依建立时间之先后次序列出-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"-R 若目录下有文件,则以下之文件亦皆依序列出

2.2 cd

功能:功能是从当前工作目录切换到指定的工作目录。

语法:cd [dirName]

补充:

"~" 也表示为 home 目录 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。

2.3 cp

功能:复制文件或目录

语法:cp [options] source dest

参数:

 -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。-f:覆盖已经存在的目标文件而不给出提示。-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。-l:不复制文件,只是生成链接文件。

2.4 find

功能:用于查找目录及目录下的文件。

语法:find [路径][选项] [操作]

选项:

 -name  根据文件名查找-perm  根据文件权限查找-prune  该选项可以排除某些查找目录-user  根据文件属主查找-group  根据文件属主查找-mtime -n | +n 根据文件更改时间查找-nogroup  查找无效属组的文件-nouser  查找无有效属主的文件-newer file1 ! file2  查找更改时间比file1新但比file2旧IDE文件-type  按文件类型查找-size -n +n 按文件大小查找-mindepth n 从n级子目录开始搜索-maxdepth n  最多搜索到n级子目录

实例:

  • 查找 /etc 目录下以 conf 结尾的文件,文件名区分大小写
 find /etc -name '*.conf'
  • 查找当前目录下所有文件名为 aa 的文件,文件名不区分大小写
 [root@node02 ~]# find . -iname aa./aa./AA[root@node02 ~]# 
  • 查找文件所属用户为moonrong的所有文件
 [root@node02 home]# find . -user moonrong./moonrong./moonrong/.mozilla./moonrong/.mozilla/extensions./moonrong/.mozilla/plugins./moonrong/.bash_logout./moonrong/.bash_profile./moonrong/.bashrc[root@node02 home]# 
  • 查找文件所属组为moonrong的所有文件
 find . -group moonrong

 -type  根据类型查找:如下

 f   文件        find . -type fd  目录        find . -type dc  字符设备文件    find . -type cb  块设备文件     find . -type bl   链接文件      find . -type lp  管道文件      find . -type p

 -size  根据文件大小查询

 -n  小于 大小为 n 的文件+n  大于 大小为 n 的文件
  • 查找 /ect 目录下,小于 10000 字节的文件
  find /etc -size +10000c
  • 查找 /etc 目录下,大于 1M 的文件
 find /etc -size -1M

  -mtime  

 -n  n 天以内修改的文件。+n  n 天以外修改的文件。n  正好 n天 修改的文件
  • 查询 /etc 目录下,5天以内修改 且以 conf 结尾的文件
 find /etc -mtime -5 -name '*.conf'

查询 /etc 目录下,10天之前修改,且属于moonrong 的文件

 find /etc -mtime +10 -user moonrong

 -mmin  

  -n  n 分钟以内修改过的文件  +n  n 分钟之前修改过的文件
  • 查询 /etc 目录下 30分钟 之前修改过的文件
 find /etc -mmin +30
  • 查询 /etc 目录下 30分钟 之前修改过的目录
 find /etc -mmin -30 -type d

-mindepth n  从第 n 级目录开始搜索

  • 从 /etc 的第三级子目录开始搜索
 find /etc -mindepth 3

-maxdepth n  表示至多搜索到第 n-1 级子目录。

  • 在 /etc 中搜索符合条件的文件,但最多搜索到 2级 子目录
 find /etc -maxdepth 3 -name '*.conf'find /etc -type f -name '*.conf' -size +10k -maxdepthc 2
  • 将目前目录及其子目录下所有最近 20 天内更新过的文件列出
 find . -ctime -20
  • 查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们:
 find /var/log -type f -mtime +7 -ok rm {} \;
  • 查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
 find . -type f -perm 644 -exec ls -l {} \;
  • 服务器磁盘满,一般由大的日志文件导致,需找到大文件并删除
 find / -size +500M -print0|xargs -0 du -m|sort -nr

2.5 mv

功能:用来为文件或目录改名、或将文件或目录移入其它位置

语法:

 mv [options] source destmv [options] source... directory

参数:

 -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件-f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示

实例:

  • 将文件a.1b改名为a.2b
 mv a.1b a.2b
  • 将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs
 mv info/ logs
  • 将/usr/student下的所有文件和目录移到当前目录下
 mv /usr/student/*  . 

2.6 pwd

功能:显示当前工作目录的绝对路径

2.7 rm

功能:删除一个或多个文件或目录

语法:

 rm [options] name...

参数:

 -i 删除前逐一询问确认。-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。-r 将目录及以下之档案亦逐一删除。

实例:

  • 删除当前目录下的所有文件及目录
rm  -r  * 
  • 删除当前目录下的所有文件及目录,并且是直接删除,无需逐一确认命令行为
rm  -rf  要删除的文件名或目录
  • 删除文件名 test.txt
rm  -rf   test.txt
  • 删除目录 test,不管该目录下是否有子目录或文件,都直接删除
rm -rf test/

2.8 rmdir

功能:删除空目录

语法:

rmdir [-p] dirName

参数:

-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除

实例:

  • 将工作目录下,名为 AAA 的子目录删除
rmdir AAA
  • 在工作目录下的 BBB 目录中,删除名为 Test 的子目录。若 Test 删除后,BBB 目录成为空目录,则 BBB 亦予删除
rmdir -p BBB/Test

2.9 mkdir

功能:创建目录

语法:

mkdir [-p] dirName

参数:

-p 确保目录名称存在,不存在的就建一个

实例:

  • 在工作目录下,建立一个名为 AAA 的子目录
mkdir AAA
  • 在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个
mkdir -p BBB/Test

2.10 touch

功能:创建新的空文件,改变已有文件的时间戳属性

语法:

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]

参数:

a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
--no-create 不会建立新档案。
--help 列出指令格式。
--version 列出版本讯息。

实例:

  • 使用指令"touch"修改文件"testfile"的时间属性为当前系统时间
touch testfile
  • 创建一个名为“file”的新的空白文件
touch file

2.11 tree

功能:以树形结构显示目录下的内容

语法:

tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]

参数

-a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I<范本样式> 不显示符合范本样式的文件或目录名称。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P<范本样式> 只显示符合范本样式的文件或目录名称。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

2.12 file

功能:辨识文件类型

语法:file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

参数:

-b  列出辨识结果时,不显示文件名称。
-c  详细显示指令执行过程,便于排错或分析程序执行的情形。
-f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
-L  直接显示符号连接所指向的文件的类别。
-m<魔法数字文件>  指定魔法数字文件。
-v  显示版本信息。
-z  尝试去解读压缩文件的内容。
[文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

三、查看文件及内容处理

3.1 cat

功能:cat 命令用于连接文件并打印到标准输出设备上

语法:

cat [-AbeEnstTuv] [--help] [--version] fileName

参数:

-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;

实例:

  • 把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -n textfile1 > textfile2
  • 把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat -b textfile1 textfile2 >> textfile3
  • 清空 /etc/test.txt 文档内容:
cat /dev/null > /etc/test.txt

3.2 tac

功能:反向显示文件内容

3.3 more

功能:分页显示文件内容

语法:

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 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
fileNames 欲显示内容的文档,可为复数个数

实例:

  • 逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
more -s testfile
  • 从第 20 行开始显示 testfile 之文档内容。
more +20 testfile

3.4 less

功能:分页显示文件内容,与more相反

用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件

语法:

less [参数] 文件 

参数:

-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将"tab"键显示为规定的数字空格
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行

[pagedown]

: 向下翻动一页

[pageup]

: 向上翻动一页

实例:

  • 查看文件
cat vmware-vmusr.log
  • ps查看进程信息并通过less分页显示
ps -ef |less
  • 查看命令历史使用记录并通过less分页显示
history | less

3.5 head

功能:head命令以行为单位,取文件的内容,后面不接参数时默认打印前10行

语法:

head [参数] [文件]

参数:

-n	后面接数字,代表显示几行的意思
-c	指定显示头部内容的字符数
-v	总是显示文件名的头信息
-q	不显示文件名的头信息

实例:

  • 显示前5行文件内容
head -n 5 file
  • 显示文件名信息,并显示文件前两行
head -v -n 2 test.txt 
  • 显示文件前5个字符
head -c 5 test.txt

3.6 tail

功能:显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行

语法:

tail [参数] [文件]  

参数:

-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

实例:

  • 一直变化的文件总是显示后10行
 tail -f 10 file
  • 显示文件file的最后10行
tail file
  • 显示文件file的内容,从第20行至文件末尾
tail +20 file 
  • 显示文件file的最后10个字符
tail -c 10 file

3.7 cut

功能:两个主要的功能,第一是显示文件内容,第二是连接多个或多个文件。

​ 若不指定file参数,该命令将读取标准输入。 必须指定 -b、-c 或 -f 标志之一。

语法:

cut [参数] [文件]

参数:

-b	以字节为单位进行分割 ,仅显示行中指定直接范围的内容
-c	以字符为单位进行分割 , 仅显示行中指定范围的字符
-d	自定义分隔符,默认为制表符”TAB”
-f	显示指定字段的内容 , 与-d一起使用
-n	取消分割多字节字符
--complement	补足被选择的字节、字符或字段
--out-delimiter	指定输出内容是的字段分割符

3.8 wc

功能:统计文件的行数、单词数或字节数

语法:

wc [参数] [文件]

参数:

-w	统计字数,或--words:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
-c	统计字节数,或--bytes或--chars:只显示Bytes数
-l	统计行数,或--lines:只显示列数
-m	统计字符数
-L	打印最长行的长度

实例:

  • 统计字数
wc -w test.txt 
  • 统计字节数
wc -c test.txt
  • 统计字符数
wc -m test.txt
  • 统计行数
wc -l test.txt
  • 打印最长行的长度
wc -L test.txt

3.9 grep

功能:强大的文本搜索工具

linux系统支持三种形式的grep命令,大儿子就是grep,标准,模仿的代表。二儿子兴趣爱好多-egrep,简称扩展grep命令,其实和grep -E等价,支持基本和扩展的正则表达式。小儿子跑的最快-fgrep,简称快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配。

语法:

grep [参数]

参数:

-i	搜索时,忽略大小写
-c	只输出匹配行的数量
-l	只列出符合匹配的文件名,不列出具体的匹配行
-n	列出所有的匹配行,显示行号
-h	查询多文件时不显示文件名
-s	不显示不存在、没有匹配文本的错误信息
-v	显示不包含匹配文本的所有行
-w	匹配整词
-x	匹配整行
-r	递归搜索
-q	禁止输出任何结果,已退出状态表示搜索是否成功
-b	打印匹配行距文件头部的偏移量,以字节为单位
-o	与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位

实例:

  • 支持多文件查询并支持使用通配符
grep zwx file_* /etc/hosts

待完善

3.10 tr

功能:将字符进行替换、压缩、删除

语法:

tr [参数] [字符串1] [字符串2]

参数:

-c	选定字符串1中字符集的补集,即反选字符串1的补集
-d	删除字符串1中出现的所有字符
-s	删除所有重复出现的字符序列,只保留一个

实例:

  • 实现大小写字母的互换
tr "[a-z]" "[A-Z]" <file_1
  • 删除file_1中的小写字母
tr -d "[a-z]" <file_1
  • 压缩重复的空白行
tr -s "[\n]" <file_2

四、文件压缩及解压缩命令

4.1 tar

功能:用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件

参数:

-c: 建立压缩档案 
-x:解压 
-t:查看内容 
-r:向压缩归档文件末尾追加文件 
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的 
-j:有bz2属性的 
-Z:有compress属性的 
-v:显示所有过程 
-O:将文件解开到标准输出 

下面的参数 -f 是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 

实例:

  • 将所有 .jpg 的文件打成一个名为 all.tar 的包。-c 是表示产生新的包,-f 指定包的文件名。
tar -cf all.tar *.jpg
  • 将所有 .gif 的文件增加到 all.tar 的包里面去。-r 是表示增加文件的意思
 tar -rf all.tar *.gif 
  • 更新原来 tar 包 all.tar 中 logo.gif 文件,-u 是表示更新文件的意思
tar -uf all.tar logo.gif
  • 列出 all.tar 包中所有文件,-t 是列出文件的意思
tar -tf all.tar
  • 解出 all.tar 包中所有文件,-x 是解开的意思
tar -xf all.tar

压缩实例:

  • 将目录里所有jpg文件打包成 tar.jpg
tar –cvf jpg.tar *.jpg
  • 将目录里所有jpg文件打包成 jpg.tar 后,并且将其用 gzip 压缩,生成一个 gzip 压缩过的包,命名为 jpg.tar.gz
tar –czf jpg.tar.gz *.jpg
  • 将目录里所有jpg文件打包成 jpg.tar 后,并且将其用 bzip2 压缩,生成一个 bzip2 压缩过的包,命名为jpg.tar.bz2
tar –cjf jpg.tar.bz2 *.jpg
  • 将目录里所有 jpg 文件打包成 jpg.tar 后,并且将其用 compress 压缩,生成一个 umcompress 压缩过的包,命名为jpg.tar.Z
tar –cZf jpg.tar.Z *.jpg

解压实例:

tar –xvf file.tar         // 解压 tar 包 
tar -xzvf file.tar.gz     // 解压 tar.gz 
tar -xjvf file.tar.bz2    // 解压 tar.bz2 
tar –xZvf file.tar.Z      // 解压 tar.Z 
unrar e file.rar          // 解压 rar 
unzip file.zip            // 解压 zip

4.2 unzip

功能:用于.zip格式文件的解压缩工具 ,unzip命令将列出、测试或从zip格式存档中提取文件,这些文件通常位于MS-DOS系统上。

语法:

unzip [参数] [文件]

参数:

-l	显示压缩文件内所包含的文件
-v	执行时显示详细的信息
-c	将解压缩的结果显示到屏幕上,并对字符做适当的转换
-n	解压缩时不要覆盖原有的文件
-j	不处理压缩文件中原有的目录路径

实例:

  • 把/home目录下面的mydata.zip解压到mydatabak目录里面
unzip mydata.zip -d mydatabak
  • 把/home目录下面的wwwroot.zip直接解压到/home目录里面
unzip wwwroot.zip
  • 把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面
 unzip abc\*.zip
  • 查看把/home目录下面的wwwroot.zip里面的内容
unzip -v wwwroot.zip
  • 验证/home目录下面的wwwroot.zip是否完整
unzip -t wwwroot.zip

4.3 gzip

功能:压缩和解压文件

gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。

语法:

gzip [参数]

参数:

-a	使用ASCII文字模式
-d	解开压缩文件
-f	强行压缩文件
-l	列出压缩文件的相关信息
-c	把压缩后的文件输出到标准输出设备,不去更动原始文件
-r	递归处理,将指定目录下的所有文件及子目录一并处理
-q	不显示警告信息

实例:

  • 把当前目录下的每个文件压缩成.gz文件
gzip *
  • 上例中每个压缩的文件解压,并列出详细的信息
gzip -dv *

4.4 zip

功能:压缩工具

zip程序将一个或多个压缩文件与有关文件的信息(名称、路径、日期、上次修改的时间、保护和检查信息以验证文件完整性)一起放入一个压缩存档中。可以使用一个命令将整个目录结构打包到zip存档中。

对于文本文件来说,压缩比为2:1和3:1是常见的。zip只有一种压缩方法(通缩),并且可以在不压缩的情况下存储文件。(如果添加了bzip 2支持,zip也可以使用bzip 2压缩,但这些条目需要一个合理的现代解压缩来解压缩。当选择bzip 2压缩时,它将通货紧缩替换为默认方法。)zip会自动为每个要压缩的文件选择更好的两个文件(通缩或存储,如果选择bzip2,则选择bzip2或Store)。

语法:

zip [参数] [文件]

参数:

-q	不显示指令执行过程
-r	递归处理,将指定目录下的所有文件