当前位置:   article > 正文

Linux核心命令汇总(思维导图+实例讲解)_linux系统84核心命令

linux系统84核心命令

一个小时学会所有Linux核心命令

在这里插入图片描述

文件相关命令

在这里插入图片描述

文件属性操作

文件属性组成

在这里插入图片描述

Linux上的一个文件属性组成如上,需要注意的是第二部分,格式如下

在这里插入图片描述

文件类型

    当为[ d]则是目录
    当为[ -]则是普通文件;
    若是[ l]则表示为链接文档(link file);
    若是[ b]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    若是[ c]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置);
    若是[s ]则表示为套接接口文件;
    若是[ p]则表示为管道。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

文件权限

包括
文件所有者权限 
文件所属群组权限
其他用户权限
  • 1
  • 2
  • 3
  • 4
chgrp
功能
chgrp命令用来改变指定文件所属的用户组。
如果用户不是该文件的文件主或超级用户(root),则不能改变该文件的组。
  • 1
  • 2
输入
chgrp [-cfhRv][所属群组][文件或目录]
  • 1
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件;
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-v或——verbose:显示指令执行过程;
  • 1
  • 2
  • 3
  • 4
  • 5

其中,组名可以是用户组的id,也可以是用户组的组名。
文件名可以 是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。

实例
将文件a的用户组从root改为mcc
sudo chgrp mcc a

  • 1
  • 2
  • 3
chown
功能

chown将指定文件的拥有者改为指定的用户或组,
普通用户不能将自己的文件改变成其他的拥有者。
其操作权限一般为管理员root。

输入
chown [-cfhvR] user[:group] file.
  • 1

文件是以空格分开的要改变权限的文件列表,支持通配符。
user : 用户可以是用户名或者用户ID;
group : 组可以是组名或者组ID;
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
实例
改变拥有者和群组
    chown mail:mail log2012.log
改变文件拥有者
    chown root: log2012.log
改变文件群组
    chown :mail log2012.log
改变指定目录以及其子目录下的所有文件的拥有者和群组
    chown -R -v root:mail test6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
chmod
功能

改变文件的权限

输入
chmod [-cfvR] [--help] [--version] mode file...
参数说明
mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]
其中:

u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:

-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
实例
将文件 file1.txt 设为所有人皆可读取 :

chmod ugo+r file1.txt
将文件 file1.txt 设为所有人皆可读取 :

chmod a+r file1.txt
将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该文件拥有者可以执行 :

chmod u+x ex1.py
将目前目录下的所有文件与子目录皆设为任何人可读取 :

chmod -R a+r *
此外chmod也可以用数字来表示权限如 :

chmod 777 file
语法为:

chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
chmod a=rwx filechmod 777 file
效果相同

chmod ug=rwx,o=x filechmod 771 file
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
umask
功能
Linux umask命令指定在建立文件时预设的权限掩码。

umask可用来设定[权限掩码][权限掩码]是由3个八进制的数字所组成,

将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
  • 1
  • 2
  • 3
  • 4
  • 5
输入
umask [-S][权限掩码]
  • 1
实例
查看文件掩码
kylechen@kyle:~$ umask
0022

  • 1
  • 2
  • 3
  • 4
以非数字的形式查看文件掩码
kylechen@kyle:~$ umask -S
u=rwx,g=rx,o=rx

  • 1
  • 2
  • 3
  • 4
更改文件掩码
kylechen@kyle:~$ umask 002
kylechen@kyle:~$ umask
0002

  • 1
  • 2
  • 3
  • 4
  • 5
test
功能

测试文件的某项属性

输入
test [参数][文件]
  • 1

在这里插入图片描述
在这里插入图片描述

实例

实例一:测试文件 /dmtsai 是否存在
在这里插入图片描述

文件目录操作

cd
功能

变换目录

pwd
功能

显示当前目录

mkdir
功能

建立一个新的目录

rmdir
功能

删除一个空的目录

tree
功能

树状列出目录内容

文件整体操作

ls
功能
ls命令用于显示指定工作目录下之内容
  • 1
输入
 ls [-alrtAFR] [name]
 
参数 :

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

ls /
bin               dev   lib         media  net   root     srv  upload  www
boot              etc   lib64       misc   opt   sbin     sys  usr
home  lost+found  mnt    proc  selinux  tmp  var
列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面 :

ls -ltr s*
将 /bin 目录以下所有目录及文件详细资料列出 :

ls -lR /bin
列出目前工作目录下所有文件及目录;目录于名称后加 "/", 可执行档于名称后加 "*" :

ls -AF
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
ll
功能
ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。
Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便。
如果要使用此命令,可以作如下修改:
打开 ~/.bashrc
找到 #alias ll=’ls -l’,去掉前面的#就可以了。
  • 1
  • 2
  • 3
  • 4
  • 5
cp
功能

主要用于复制文件或目录

输入
cp [options] source dest


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

使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下,输入如下命令:
$ cp –r test/ newtest

rm
功能

rm命令用于删除一个文件或者目录

输入
rm [options] name...
参数:

-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
实例
删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:

# rm  test.txt 
rm:是否删除 一般文件 "test.txt"? y  
# rm  homework  
rm: 无法删除目录"homework": 是一个目录  
# rm  -r  homework  
rm:是否删除 目录 "homework"? y 
删除当前目录下的所有文件及目录,命令行为:

rm  -r  * 
文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
mv
功能

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

输入

在这里插入图片描述

实例
将文件 aaa 更名为 bbb :

mv aaa bbb
将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。

mv info/ logs 
再如将/usr/student下的所有文件和目录移到当前目录下,命令行为:

$ mv /usr/student/*  . 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
touch
功能

touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

输入
touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
参数说明:
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
--no-create 不会建立新档案。
--help 列出指令格式。
--version 列出版本讯息。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
实例
使用指令"touch"修改文件"testfile"的时间属性为当前系统时间,输入如下命令:

$ touch testfile                #修改文件的时间属性 
首先,使用ls命令查看testfile文件的属性,如下所示:

$ ls -l testfile                #查看文件的时间属性  
#原来文件的修改时间为16:09  
-rw-r--r-- 1 hdd hdd 55 2011-08-22 16:09 testfile  
执行指令"touch"修改文件属性以后,并再次查看该文件的时间属性,如下所示:

$ touch testfile                #修改文件时间属性为当前系统时间  
$ ls -l testfile                #查看文件的时间属性  
#修改后文件的时间属性为当前系统时间  
-rw-r--r-- 1 hdd hdd 55 2011-08-22 19:53 testfile  
使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件"file",输入如下命令:

$ touch file            #创建一个名为“file”的新的空白文件 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
file
功能

file命令用于辨识文件类型。

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

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

[root@localhost ~]# file install.log
install.log: UTF-8 Unicode text

[root@localhost ~]# file -b install.log      <== 不显示文件名称
UTF-8 Unicode text

[root@localhost ~]# file -i install.log      <== 显示MIME类别。
install.log: text/plain; charset=utf-8

[root@localhost ~]# file -b -i install.log
text/plain; charset=utf-8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
which
功能

which指令会在环境变量$PATH设置的目录里查找符合条件的文件。并显示它所在的绝对路径

输入

which [文件…]

实例
使用指令"which"查看指令"bash"的绝对路径,输入如下命令:

$ which bash
上面的指令执行后,输出信息如下所示:

/bin/bash                   #bash可执行程序的绝对路径 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
type
功能

查找是否是系统所属的命令

实例
kylechen@kyle:~$ type ls
ls 是 `ls --color=auto' 的别名


kylechen@kyle:~$ type if
if 是 shell 关键字


kylechen@kyle:~$ type cd
cd 是 shell 内建

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
whereis
功能

该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。

输入
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
参数:

-b  只查找二进制文件。
-B<目录>  只在设置的目录下查找二进制文件。
-f  不显示文件名前的路径名称。
-m  只查找说明文件。
-M<目录>  只在设置的目录下查找说明文件。
-s  只查找原始代码文件。
-S<目录>  只在设置的目录下查找原始代码文件。
-u  查找不包含指定类型的文件。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
实例
使用指令"whereis"查看指令"bash"的位置,输入如下命令:

$ whereis bash 
上面的指令执行后,输出信息如下所示:

bash:/bin/bash/etc/bash.bashrc/usr/share/man/man1/bash.1.gz 
注意:以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径。

如果用户需要单独查询二进制文件或帮助文件,可使用如下命令:

$ whereis -b bash 
$ whereis -m bash 
输出信息如下:

$ whereis -b bash               #显示bash 命令的二进制程序  
bash: /bin/bash /etc/bash.bashrc /usr/share/bash    # bash命令的二进制程序的地址  
$ whereis -m bash               #显示bash 命令的帮助文件  
bash: /usr/share/man/man1/bash.1.gz  #bash命令的帮助文件地址  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
locate
功能

Linux locate命令用于查找符合条件的文档,
他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。
一般情况我们只需要输入 locate your_file_name 即可查找指定文件。

附加说明

locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。
locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:
  • 1
  • 2
  • 3
  • 4

locate -u

输入
locate [-d ][--help][--version][范本样式...]
参数:

-d或--database= 配置locate指令使用的数据库。
locate指令预设的数据库位于/var/lib/slocate目录里,文档名为slocate.db,您可使用 这个参数另行指定。
--help  在线帮助。
--version  显示版本信息。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
实例
查找passwd文件,输入以下命令:
locate passwd
  • 1
  • 2
find
功能

查找文件

实例
find   -name april*                     在当前目录下查找以april开始的文件
find   -name   april*   fprint file        在当前目录下查找以april开始的文件,并把结果输出到file中
find   -name ap* -o -name may*   查找以ap或may开头的文件
find   /mnt   -name tom.txt   -ftype vfat   在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find   /mnt   -name t.txt ! -ftype vfat   在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find   /tmp   -name wa* -type l            在/tmp下查找名为wa开头且类型为符号链接的文件
find   /home   -mtime   -2                 在/home下查最近两天内改动过的文件
find /home    -atime -1                  查1天之内被存取过的文件
find /home -mmin    +60                  在/home下查60分钟前改动过的文件
find /home   -amin   +30                  查最近30分钟前被存取过的文件
find /home   -newer   tmp.txt             在/home下查更新时间比tmp.txt近的文件或目录
find /home   -anewer   tmp.txt            在/home下查存取时间比tmp.txt近的文件或目录
find   /home   -used   -2                  列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find   /home   -user cnscn                列出/home目录内属于用户cnscn的文件或目录
find   /home   -uid   +501                  列出/home目录内用户的识别码大于501的文件或目录
find   /home   -group   cnscn              列出/home内组为cnscn的文件或目录
find   /home   -gid 501                   列出/home内组id为501的文件或目录
find   /home   -nouser                    列出/home内不属于本地用户的文件或目录
find   /home   -nogroup                   列出/home内不属于本地组的文件或目录
find   /home    -name tmp.txt    -maxdepth   4   列出/home内的tmp.txt 查时深度最多为3层
find   /home   -name tmp.txt   -mindepth   3   从第2层开始查
find   /home   -empty                     查找大小为0的文件或空目录
find   /home   -size   +512k                查大于512k的文件
find   /home   -size   -512k               查小于512k的文件
find   /home   -links   +2                查硬连接数大于2的文件或目录
find   /home   -perm   0700                查权限为700的文件或目录
find   /tmp   -name tmp.txt   -exec cat {
   } \;
find   /tmp   -name   tmp.txt   -ok   rm {
   } \;

find    /   -amin    -10     # 查找在系统中最后10分钟访问的文件
find    /   -atime   -2        # 查找在系统中最后48小时访问的文件
find    /   -empty             # 查找在系统中为空的文件或者文件夹
find    /   -group   cat        # 查找在系统中属于 groupcat的文件
find    /   -mmin   -5         # 查找在系统中最后5分钟里修改过的文件
find    /   -mtime   -1       #查找在系统中最后24小时里修改过的文件
find    /   -nouser           #查找在系统中属于作废用户的文件
find    /   -user    fred     #查找在系统中属于FRED这个用户的文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

文件内容操作

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"选项;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
实例
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:

cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:

cat -b textfile1 textfile2 >> textfile3
清空 /etc/test.txt 文档内容:

cat /dev/null > /etc/test.txt
cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:

cat /dev/fd0 > OUTFILE
相反的,如果想把 image file 写到软盘,输入:

cat IMG_FILE > /dev/fd0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
tac
功能

从最后一行开始显示,
可以看出 tac 是 cat 的倒着写!
将文件全部内容从尾到头反向连续输出到标准输出(屏幕)上

nl
功能

显示的时候,顺道输出行号
其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。

输入
1.命令格式:

nl [选项][文件]

2.命令参数:

-b  :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n  :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w  :行号栏位的占用的位数。
-p 在逻辑定界符处不重新开始计算。 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
实例
实例一:用 nl 列出 log2012.log 的内容

命令:

nl log2012.log

输出:

[root@localhost test]# nl log2012.log 

     1  2012-01

     2  2012-02

       

       

     3  ======[root@localhost test]#

说明:

文件中的空白行,nl 不会加上行号
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
实例二:用 nl 列出 log2012.log 的内容,空本行也加上行号

命令:

nl -b a log2012.log

输出:

[root@localhost test]# nl -b a log2012.log 

     1  2012-01

     2  2012-02

     3

     4

     5  ======[root@localhost test]#

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

实例3:让行号前面自动补上0,统一输出格式

命令:

输出:

[root@localhost test]# nl -b a -n rz log2014.log 

000001  2014-01

000002  2014-02

000003  2014-03

000004  2014-04

000005  2014-05

000006  2014-06

000007  2014-07

000008  2014-08

000009  2014-09

000010  2014-10

000011  2014-11

000012  2014-12

000013  =======

[root@localhost test]# nl -b a -n rz -w 3 log2014.log 

001     2014-01

002     2014-02

003     2014-03

004     2014-04

005     2014-05

006     2014-06

007     2014-07

008     2014-08

009     2014-09

010     2014-10

011     2014-11

012     2014-12

013     =======
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
more
功能

一页一页的显示文件内容

输入
more [filename]
  • 1

常用操作命令
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more

less
功能

less 与 more 类似,
但是比 more 更好的是,他可以往前翻页!

实例
1、查看文件

less log2013.log
2、ps查看进程信息并通过less分页显示

ps -ef |less
3、查看命令历史使用记录并通过less分页显示

[root@localhost test]# history | less
22  scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft
23  cd ..
24  scp -r web root@192.168.120.203:/opt/
25  cd soft
26  ls
……省略……
4、浏览多个文件

less log2013.log log2014.log
说明:
输入 :n后,切换到 log2014.log
输入 :p 后,切换到log2013.log
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

1.全屏导航

ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏
2.单行导航

j - 向前移动一行
k - 向后移动一行
3.其它导航

G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令

head
功能

只看头几行

输入
1、用法

head [选项] [文件..]

2、命令选项

-c, --bytes=[-]K   k,显示文档开始的前k个字节,-k,不显示文档结尾的最后 k 个字节
-n, --lines=[-]K    k,显示文档开始的前k行,-k,不显示文档结尾的最后 k 行
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
实例
1)显示  a.txt  前 5 行内容

复制代码
[root@mini ~]# cat a.txt 
01
02
03
04
05
06
07
08
09
10
11
12
[root@mini ~]# head -5 a.txt 
01
02
03
04
05
[root@mini ~]# head -n 5 a.txt 
01
02
03
04
05
复制代码
 

2)显示除了  a.txt  最后 10 行的内容

[root@mini ~]# head -n -10 a.txt 
01
02
[root@mini ~]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
tail
功能

只看尾巴几行

输入
tail [参数] [文件]  
参数:

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

有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,
并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
  • 1
  • 2
  • 3
  • 4
实例
要显示 notes.log 文件的最后 10 行,请输入以下命令:

tail notes.log
要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:

tail -f notes.log
此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。

显示文件 notes.log 的内容,从第 20 行至文件末尾:

tail +20 notes.log
显示文件 notes.log 的最后 10 个字符:

tail -c 10 notes.log
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
tar
功能

在这里插入图片描述
linux下的压缩文件类型如上
现在 compress zip指令几乎不用了
一般用的是gzip bzip2 xz的压缩指令
但是用这三个指定每次只能压缩/解压缩一个文件
故引入了tar指令 先将要压缩的多个文件打包 然后再压缩 解压缩同理
tar指令提供了很多的参数 可以同时提供打包和压缩功能 (解打包和解压缩)

输入

在这里插入图片描述
在这里插入图片描述

awk
功能

数据处理
相较于 sed 常常作用于一整个行的处理,
awk 则比较倾向于一行当中分成数个『字段』来处理。
因此,awk 相当的适合处理小型的数据数据处理

实例

待补充

sed
功能

数据处理

输入

在这里插入图片描述

实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

diff
功能

diff 就是用在比对两个文件之间的差异的,
并且是以行为单位来比对的!
一般是用在 ASCII 纯文本
档的比对上。 由于是以行为比对的单位,
因此 diff 通常是用在同一的文件(或软件)的新旧版本差异上!

输入

在这里插入图片描述

实例

实例一:比较两文件的不同
在这里插入图片描述
实例二:比较两目录的不同
在这里插入图片描述

vim
功能

vim编辑器的常用指令

实例

20分钟学会Vim

性能检测相关命令

image

mpstat

功能:
显示CPU的状态信息
这些信息存放在/proc/stat文件中。

在多CPUs系统里,

其不但能查看所有CPU的平均状况信息,

而且能够查看特定CPU的信息。 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
输入语法:
mpstat(选项)(参数)

选项

-A : 此选项等效于# mpstat -I ALL -u -P ALL

-I {SUM | CPU | ALL} : 报告中断统计信息。 使用SUM关键字,mpstat命令报告每个处理器的中断总数。使用CPU关键字,显示CPU或CPU每秒接收的每个中断的数量。ALL关键字等效于指定上面的所有关键字,因此显示所有中断统计信息。

-P {cpu [,...] | ON | ALL} : 指示要报告统计信息的处理器编号。cpu是处理器号。注意,处理器0是第一个处理器。 ON关键字表示将为每个在线处理器报告统计信息,而ALL关键字指示要为所有处理器报告统计信息。

参数

间隔时间:每次报告的间隔时间(秒); 
次数:显示报告的次数。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
输出信息:
user 在internal时间段里,用户态的CPU时间(%),不包含 nice值为负 进程 (usr/total)*100  
nice 在internal时间段里,nice值为负进程的CPU时间(%)   (nice/total)*100  
system 在internal时间段里,内核态的CPU时间(%)   (system/total)*100
iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100
irq 在internal时间段里,硬中断时间(%)      (irq/total)*100
soft 在internal时间段里,软中断时间(%)    (softirq/total)*100
idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%)(idle/total)*100


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
实例:
mpstat

显示开机到现在以来cpu的平均状态信息

Linux 4.15.0-88-generic (kyle) 	2020年02月25日 	_x86_64_	(4 CPU)

20时12分09秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20时12分09秒  all   27.16    0.55    9.85    0.34    0.00    0.43    0.00    0.00    0.00   61.66

  • 1
  • 2
  • 3
  • 4
  • 5
mpstat -P ALL 2 3

每隔2秒显示一次 所有cpu的状态信息
一共产生3个间隔的信息
最后给出这3次间隔的平均信息

kylechen@kyle:~$ mpstat -P ALL 2 3
Linux 4.15.0-88-generic (kyle) 	2020年02月25日 	_x86_64_	(4 CPU)

20时12分43秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20时12分45秒  all    9.96    0.00    3.57    0.00    0.00    0.12    0.00    0.00    0.00   86.35
20时12分45秒    0    8.96    0.00    2.99    0.00    0.00    0.00    0.00    0.00    0.00   88.06
20时12分45秒    1    8.87    0.00    3.45    0.49    0.00    0.49    0.00    0.00    0.00   86.70
20时12分45秒    2    9.76    0.00    2.44    0.00    0.00    0.00    0.00    0.00    0.00   87.80
20时12分45秒    3   12.32    0.00    4.43    0.00    0.00    0.00    0.00    0.00    0.00   83.25

20时12分45秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
20时12分47秒  all   13.43    0.00    4.68    0.00    0.00    0.12    0.00    0.00    0.00   81.77
20时12分47秒    0   16.59    0.00    5.69    0.00    0.00    0.47    0.00    0.00    0.00   77.25
20时12分47秒    1   12.08    0.00    3.86    0.00    0.00    0.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/911232
推荐阅读
相关标签
  

闽ICP备14008679号