Linux - 常用命令

Linux - 常用命令


前言

因为自己老是忘记这些命令,所以记录一下 ~~
注意:Linux 下的命令是区分大小写的

本文很多都是借鉴了菜鸟教程-Linux命令大全重新编写而成

一、文件和目录操作的基本命令

pwd:查看当前所在位置

用法:pwd
示例:

# 查看当前所在位置
pwd

在这里插入图片描述
表明我当前正处于:/a-mike 目录下

cd:改变工作目录

用法:cd [-L | [-P [-e]]] [dir]

命令功能
cd ~来到登录目录
cd /来到系统根目录
cd /root把你带到根用户的主目录(root 用户才能使用)
cd /home把你带到 home 目录,用户的登录目录通常贮存在此处
cd . .向上移动一级目录
cd /dir1/dir2无论你在哪一个目录中,都会来到该绝对路径处
cd dir1来到当前目录下的 dir1 目录下
示例:
# 来到系统根目录
cd /

在这里插入图片描述
示例:

# 来到当前目录下的 a-mike 目录下
cd a-mike

在这里插入图片描述
示例:

# a-mike
# 来到 /a-mike/file 目录(不管你在哪个目录下)
cd /a-mike/file

在这里插入图片描述

ls:显示当前目录内容

用法:ls [选项]... [文件]...

查看使用详情:

ls --help

在这里插入图片描述
常用参数:

参数释义
-a全部(all),列举目录中的全部文件,包括隐藏文件(.filename)。位于这个列表的起首处的 . . 和 . 依次是指父目录和你的当前目录
-l长(long),列举目录内容的细节,包括权限(模式)、所有者、组群、大小、创建日期、文件是否到系统其它地方的链接,以及链接的指向
-F文件类型(File type),在每一个列举项目之后添加一个符号。这些符号包括:/ 表明是个目录;@ 表明是到其它文件的符号链接;* 表明是一个可执行文件
-r逆向(reverse),从后向前地列举目录中的内容
-R递归(recursive),该选项递归列举所有目录(在当前目录之下)的内容
-r大小(size),按文件大小从小到大排序
-s在每个文件名前展示该文件的大小
-i在每个文件名前展示该文件的索引信息

示例:

# 查看当前目录下的文件
ls

在这里插入图片描述
示例:

# 查看 /a-mike 目录下的文件
ls /a-mike

在这里插入图片描述
示例:

# 查看当前目录下所有文件
ls -a

在这里插入图片描述
示例:

# 列举当前目录下的文件详细信息(细节)
ls -l	

在这里插入图片描述

示例:

# 递归查找当前目录下所有的文件
ls -R	

在这里插入图片描述示例:

# 查看目录下 article.txt 文件的权限
ls -l article.txt	

在这里插入图片描述

ll:详细列举目录下的文件信息

ll 不是命令,是 ls -l 的别名
我这里且当做它是个命令看待了

示例:

# 查询当前目录下文件详情
ll

在这里插入图片描述
可以看到 ll 与 ls -l 命令的效果差不多,具体差异可参见:linux ls和 ll 命令

示例:

# 降序查看
ll -t

在这里插入图片描述
示例:

# 升序查看
ll -t | tac

在这里插入图片描述

locate:搜寻文件或目录

当你需要查找某个文件比如 lqx 文件时,就可以使用该命令,它会搜出所有关于 lqx 这个关键词相关的文件或目录。
用法:locate 关键词
示例:

# 搜寻文件或目录
locate lqx

在这里插入图片描述

clear:清除终端窗口

用法:clear
示例:

# 清除终端窗口
clear

使用前:
在这里插入图片描述
使用后:

在这里插入图片描述

cat:由第一行开始显示文件内容

用法:cat [选项]... [文件]...

查看使用详情:

cat --help

在这里插入图片描述
示例:

# 从第一行开始显示 article.txt 文件内容
cat article.txt

在这里插入图片描述
示例:

# 从第一行开始显示 article.txt 文件内容并显示行号
cat -n article.txt

在这里插入图片描述

head:查看文件开头部分

用法:head [-n 行数] 文件名

示例:

# 显示 article-two.txt 文件开头部分的内容
# 如果没有设置行数,默认是开头10行
head article-two.txt

在这里插入图片描述
示例:

# 显示 article-two.txt 文件开头部分 5 行的内容
head -n 5 article-two.txt

在这里插入图片描述

tail:查看文件结尾部分

通常我们会用该命令实时查看日志,tail 会自动实时地把打开文件中的新消息显示到屏幕上

用法:tail [选项]... [文件]...

查看使用详情:

tail --help

在这里插入图片描述
示例:

# 查看 sync.log 文件后面部分的数据
# 默认只显示最后10行
tail sync.log

在这里插入图片描述
示例:

# 实时查看 sync.log 文件数据
# 默认只展示最后 10 行
tail -f sync.log

在这里插入图片描述
可以看到日志在不停的打印

示例:

# 实时查看 sync.log 文件更新数据,显示 100 行
tail -100f sync.log

more:阅读文件

该命令的功能类似于 cat 命令,但是它的功能类似于翻阅电子书,有分页的效果,能够让使用者逐页的阅读,最基本的指令就是按 空格键(space)就是下一页显示,按 b 就会返回第一页等等,并且可以按指定字符串搜寻

用法:more [-dlfpcsu] [-num] [+/pattern] [+ linenum] [fileName ..]

常用参数:

参数释义
+n从第 n 行开始显示
-n定义屏幕大小为 n 行
+/pattern在每个档案显示前搜寻该字符串 (pattern),然后从该字符串前两行之后开始显示
-c从顶部清屏,然后显示
-d禁用响铃功能
-l忽略 Ctrl + l (换页)字符
-p通过清除窗口而不是滚动来对文件进行换页
-s把连续多个空行显示为一行
-u把文件内容中的下划线去掉

常用操作命令:

命令释义
Enter向下 n 行,需要定义,默认情况下是 1 行
Ctrl + F向下滚动一屏
空格键(space)向下滚动一屏
Ctrl + B返回上一屏
=输出当前行的行号
: f输出文件名和当前行的行号
v调用 vi 编辑器
!调用 shell ,并执行命令
q退出 more

示例:

# 翻阅 人生.txt
more 人生.txt

在这里插入图片描述
切换页面可以按以上 常用操作命令 控制

示例:

# 从 第二章 起翻阅 人生.txt
more +/第二章 人生.txt

在这里插入图片描述
示例:

# 从 第 101 行 起翻阅 人生.txt
more +101 人生.txt

在这里插入图片描述
真是上班偷偷看小说的好帮手!!

find:在指定目录下查找文件

用法:find [参数选项] <指定目录> <指定条件> <指定内容>

常用参数:

参数释义
-name filename查找名为 filename 的文件
-ctime -n 或 +n按时间来查找文件,-n 指 n 天以内,+n 指 n 天以前

示例:

# 查找当前目录下所有的 .txt 文件
find . -name "*.txt"

在这里插入图片描述
示例:

# 查找所有的 lqx.* 文件
find / -name "lqx.*"

在这里插入图片描述

示例:

# 查找所有的 mysql 文件
find / -name mysql

在这里插入图片描述

示例:

# 查找当前目录下在一天之内操作过的文件
find . -ctime -1

在这里插入图片描述

grep:文本搜索

grep 命令对于在文件中查找指定的字串很有用途

用法:grep [选项]... 关键字 [文件]...
或者:grep [-abcEFGhHilLnqrsvVwxy] [-A<显示行数>] [-B<显示列数>] [-C<显示列数>] [-d<进行动作>] [-e<范本样式>] [-f<范本文件>] [--help] [范本样式] [文件或目录...]

查看使用详情:

grep --help

在这里插入图片描述
常用参数:

参数释义
-n把包含关键字的行展示出来,显示行号
-i把包含关键字的行展示出来,搜索时忽略大小写
-v包含关键字的行展示出来
-c统计包含关键字的个数

示例:

# 搜索 sync.log 文件 中出现 Exception 的地方
grep Exception sync.log

在这里插入图片描述
示例:

# 把包含关键字的行展示出来并且加上行号
grep -n 关键字 sync.log

示例:

# 把包含关键字的行展示出来,搜索时忽略大小写
grep -i 关键字 sync.log

示例:

# 把不包含关键字的行展示出来
grep -v 关键字 sync.log

示例:

# 在我的进程当中查找含有 java 的进程信息
ps -ef | grep java 

在这里插入图片描述

示例:

# 在我的进程当中查找含有 sshd 的进程信息,并排除掉 grep
ps -ef | grep sshd | grep -v "grep"

在这里插入图片描述

示例:

# 查找进程个数
ps -ef | grep -c sshd

chmod:改变文件或目录的访问权限

用法:chmod [选项...] [模式,模式...] [文件...]

查看使用详情:

chmod --help

在这里插入图片描述
比如说查看 article.txt 这个文件的信息

# 查看目录下 article.txt 文件的权限
ls -l article.txt	

在这里插入图片描述
输出结果:-rw-r--r-- 1 root root 2257 1月 21 10:36 article.txt,从这个结果中能够获取该文件的很多信息与细节,比如:谁能读取(r)和写入(w)文件,以及谁创建了这个文件(root),所在的组群(root)、文件大小(2257B)创建时间(1月 21 10:36),以及文件名(article.txt)

参考菜鸟教程上的解释大概是这样子的

在这里插入图片描述
第一列显示了当前的权限:它有十位。第一位代表文件类型,其余九位实际上是用于三组不同用户的三组权限,且均以 rwx 的三个参数组合

那三组分别是:文件的所有者,文件所属的组群,和“其他用户”。就以上述例子来说:-(rw-)(r--)(r--) 1 root root,解释起来就是:该文件的类型属于常规文件,文件所有者可读、写(txt文件不是可执行文件)、文件所属的组群有可读、其他用户可读

在这里插入图片描述文件类型:

符号释义
d目录
-常规文件
l链接文档(link file),相当于 windows 上的快捷方式
b装置文件里面的可供储存的接口设备(可随机存取装置)
c装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

权限参数:(每种权限设置都可以用一个数值来代表)

符号释义
r可读,数字表示为 4
w可写,数字表示为 2
x可执行,数字表示为 1
-无对应权限,数字表示为 0

角色符号

符号释义
u拥有文件的用户(所有者)
g所有者所在的组群
o其他人(不是所有者或者所有者的组群)
a每一个人或全部(u、g 和 o)

行动符号:

符号释义
+添加权限
-删除权限
=使他成为唯一权限

示例:

# 给其他人写入 article.txt 文件的权限
chmod o+w article.txt

在这里插入图片描述
示例:

# 删除组群和其他人对 article.txt 的读写权限
chmod go-rw article.txt

在这里插入图片描述
同样,也可以使用数字来改变权限,每个权限符对应的数值加起来便可以用来设定特定的权限,譬如:如果你想要有读取和写入的权限,你会得到一个值为 6 的总和:4(读取)+ 2(写入)= 6

示例:

# 设置所有者对 article.txt 的权限为可读可写 ==> 4+2+0
# 所有者所在组群对 article.txt 的权限为可读可写 ==> 4+2+0
# 其他用户对 article.txt 的权限为可读 ==> 4+0+0
chmod 664 article.txt

在这里插入图片描述
常用设置数值以及对应含义列表:

含义
-rw------- (600)只有所有者才有读取和写入的权限
-rw-r–r-- (644)只有所有者才有读取和写入的权限;组群和其他人只有读取的权限
-rwx------ (700)只有所有者才有读取、写入、和执行的权限
-rwxr-xr-x (755)所有者有读取、写入、和执行的权限;组群和其他人只有读取和执行的权限
-rwx–x–x (711)所有者有读取、写入、和执行权限;组群和其他人只有执行权限
-rw-rw-rw- (666)每个人都能够读取和写入文件(请谨慎使用这些权限)
-rwxrwxrwx (777)每个人都能够读取、写入、和执行
drwx------ (700)只有所有者能在目录中读取、写入
drwxr-xr-x (755)每个人都能够读取目录,但是其中的内容却只能被所有者改变

cp:复制文件

可以将文件或者目录复制到其他目录中,就像在 dos 下的 copy 命令一样。

用法:cp [选项]... [-T] 源文件 目标文件

查看使用详情:

cp --help

在这里插入图片描述
常用参数:

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

示例:

# 复制文件 article.txt 并命名为 copy-article.txt
cp article.txt copy-article.txt

在这里插入图片描述

示例:

# 复制文件 123.txt 到 test 文件夹下
cp 123.txt test

在这里插入图片描述
示例:

# 复制 file 文件夹下所有的文件到 copy-file 文件夹中
cp -r file copy-file

在这里插入图片描述

mv:移动或者修改文件名称

用法:mv [选项]... [-T] 源文件 目标文件

查看使用详情:

mv --help

在这里插入图片描述
常用参数:

参数释义
-b当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份
-i如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作
-f如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件
-n不要覆盖任何已存在的文件或目录
-u当源文件比目标文件新或者目标文件不存在时,才执行移动操作
-v详细。显示文件的移动进度

当源文件和目标文件属于同一文件类型,并且在同一个目录下,则是修改名称

在这里插入图片描述

示例:

# 如果数据源和目的地在同一个文件夹下就是改名
# 修改当前文件夹下 copy-article.txt 的名称为 123.txt
mv copy-article.txt 123.txt

在这里插入图片描述
示例:

# 如果数据源和目的地在同一个文件夹下就是改名
# 修改当前文件夹下 file 文件夹的名称为 tagger
mv file tagger

在这里插入图片描述
示例:

# 如果数据源和目的地不在同一个文件夹下就是移动(剪切)
# 将 123.txt 文件移动到当前目录的 tagger 目录下
mv 123.txt tagger

在这里插入图片描述
可以看到我 copy-file 文件夹下面的 123.txt 文件移动到 tagger 目录下去了

示例:

# 将文件夹 new-file 中的内容全部都移动到 test 文件夹中
mv new-file/* test

在这里插入图片描述

示例:

# 将 /a-mike/copy-file/tagger 文件夹下所有的文件移动到当前目录下
mv /a-mike/copy-file/tagger/* .

在这里插入图片描述

mkdir:创建目录(文件夹)

用法:mkdir [-p] 目录名

常用参数:

参数释义
-p确保目录名称存在,不存在的就新建一个

示例:

# 在当前目录下新建一个 new-file 的目录
mkdir new-file

在这里插入图片描述
示例:

# 创建多级文件夹
# 在当前目录下的 new-file 的目录下面新建 new-file-1/new-file-2 目录
mkdir -p new-file/new-file-1/new-file-2

在这里插入图片描述

rmdir:删除空的目录(文件夹)

用法:rmdir [-p] [文件夹名]

示例:

# 删除指定空文件夹
rmdir fileName

在这里插入图片描述
示例:

# 删除多级空文件夹
# 删除 bbb 空文件夹
# 如果删除 bbb 之后 aaa 变成空文件夹之后 aaa 也会被删除
rmdir -p aaa/bbb

在这里插入图片描述

rm:删除目录或者文件

用法:rm [选项].. 文件...

常用参数:

参数释义
-i删除前逐一询问确认
-f强制删除,无需确认
-r将目录及其以下文档逐一删除

示例:

# 删除当前目录下的 aaa.txt 文件
mr aaa.txt

在这里插入图片描述
示例:

# 删除指定目录 和目录中的所有内容
rm -r fileName

在这里插入图片描述
该命令也能删除多级目录

在这里插入图片描述

示例:

# 强制删除当前目录下 new-file-1 目录的所有内容,并且不予询问 
mr -r -f new-file-1

在这里插入图片描述

touch:创建文件或者修改属性

用法:touch [选项]... 文件...

当文件存在时就是修改文件的时间属性,当文件不存在时就是创建文件

查看使用详情:

touch --help

在这里插入图片描述
常用参数:

参数释义
-a只更改访问的时间
-m只更改修改的时间
-c不创建任何文件
-d使用指定字符串表示时间而非当前时间
-r使用参考档的时间记录,与 --file 的效果一样
-t设定档案的时间记录

示例:

# 修改 article.txt 的时间 
touch article.txt

在这里插入图片描述
示例:

# 创建 aaa.txt 文件 
touch aaa.txt

在这里插入图片描述

示例:

# 批量创建多个文件 
touch a{1..5}.txt

在这里插入图片描述

stat:查看文件详细属性

用法:stat [选项]... 文件...

stat 命令主要用于显示文件或文件系统的详细信息。

查看使用详情:

stat --help

在这里插入图片描述
常用参数:

参数释义
-L显示符号链接所指向文件的信息
-f显示文件所在文件系统的信息
-t以简洁方式输出信息
-c以特定格式输出文件的某些信息
%a八进制表示的访问权限
%A可读格式表示的访问权限
%b分配的块数(参见 %B)
%B%b 参数显示的每个块的字节数
%d十进制表示的设备号
%D十六进制表示的设备号
%f十六进制表示的 Raw 模式
%F文件类型
%g属主的组 ID
%G属主的组名
%h硬连接数
%iInode 号
%n文件名
%N如果是符号链接,显示器所链接的文件名
%oI/O 块大小
%s全部占用的字节大小
%t十六进制的主设备号
%T十六进制的副设备号
%u属主的用户 ID
%U属主的用户名
%x最后访问时间
%X最后访问时间,自 Epoch 开始的秒数
%y最后修改时间
%Y最后修改时间,自 Epoch 开始的秒数
%z最后改变时间
%Z最后改变时间,自 Epoch 开始的秒数
%a普通用户可用的块数
%b文件系统的全部数据块数
%c文件系统的全部文件节点数
%d文件系统的可用文件节点数
%f文件系统的可用节点数
%CSELinux 的安全上下文
%i十六进制表示的文件系统 ID
%l文件名的最大长度
%n文件系统的文件名
%s块大小(用于更快的传输)
%S基本块大小(用于块计数)
%t十六进制表示的文件系统类型
%T可读格式表示的文件系统类型

示例:

# 查看 xxx 文件的详细属性 
stat a1.txt

在这里插入图片描述
示例:

# 显示 xxx 文件所在文件系统的信息
stat -f xxx

在这里插入图片描述
示例:

# 以简洁方式输出信息 
stat -t xxx

在这里插入图片描述
示例:

# 以特定格式输出文件的某些信息
stat -c [参数] biz-news.log 
# 查看 xxx 文件的权限
stat -c %A xxx 
# 查看 xxx 文件的 Inode 号
stat -c %i xxx

在这里插入图片描述
参考博客:Linux-stat命令详情

vi / vim:文本编辑器

vi:vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,但是也有些不足的地方。

  • 只能是编辑文本,不能对字体、段落进行排版
  • 不支持鼠标操作
  • 没有菜单
  • 只有命令

vim:是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

在这里插入图片描述
当用 vi 或者 vim 打开一个文本之后,我们能对它进行:阅读、编辑、保存 三个操作,这三个操作分别对应:命令模式、编辑模式、末行模式

刚打开一个文件的时候,首先进入的是 命令模式 ,只能读,不能写

在这里插入图片描述
如果想要编辑文本,得按 i -> insert 进入 编辑模式 ,光标当前位置开始输入文件

在这里插入图片描述
编辑完成之后想要退出 编辑模式 可按 Esc 退出,重新进入到 命令模式

在这里插入图片描述
如果要想保存之前改动过的内容,在重新进入 命令模式 之后,按 : 进入到 末行模式 (这个时候进入 末行模式 之后又想返回到 命令模式,可按两次 Esc

在这里插入图片描述
进入 末行模式 之后,输入 wq + Enter键是保存退出,输入 wq! + Enter键是强制保存退出

在这里插入图片描述
查看

在这里插入图片描述
用法:vi 文件名

示例:

# 打开或新建文件,并将光标置于第一行首
vi filename
# 打开文件,并将光标置于第n行首
vi +n filename
# 打开文件,并将光标置于最后一行首
vi + filename
# 打开文件,并将光标置于第一个与pattern匹配的串处
vi +/pattern filename
# 在上次正用vi编辑时发生系统崩溃,恢复filename
vi -r filename
# 打开多个文件,依次进行编辑 
vi filename....filename

用法:vim 文件名

如果文件已经存在,会直接打开该文件
如果文件不存在,打开一个临时文件,在保存退出之后就会新建一个文件,将临时文件中的内容写到新件的文件之中,所以 vim 编辑器如果异常退出,在磁盘上可能会保存交换文件.swp ,下次再使用 vim 编辑文件时,会看到提示有对应的交换文件生成,可自己删除掉

进入编辑模式编辑文本

命令英文功能
iinsert在当前字符前插入文本
Iinsert在行首插入文本
aappend在当前字符后插入文本
Ainsert在行末插入文本
o在当前行后面插入一空行
O在当前行前面插入一空行

进入末行模式保存文本

命令功能
q当 vim 进入文件没有对文件内容做任何操作可以按 q 退出
q!当 vim 进入文件对文件内容有操作但不想保存退出
wq正常保存退出
wq!强制保存退出,指针对与 root 用户或者文件所有者

示例:

# vim 定位行
vim 文件名 +行数

以上是 vi / vim 命令的基本操作,基本上可以应付绝大部分编辑文本的情况了,但是如果你想要更加深入的了解这个命令的详情可参考博客:linux下vi命令大全菜鸟教程:Linux vi/vim

echo:字符串的输出

用法:echo [ -n ] 字符串

echo 命令是我们常用的一个命令,它的主要作用功能是在屏幕上显示文字,也可以直接在文件中写入要写的内容,具体如下。

示例:

# 展示文本
echo "字符串"

示例:

# 将字符串写入文件中(覆盖文件内容)
echo "字符串" > 文件名

示例:

# 将字符串写入文件中(不覆盖文件内容)
echo "字符串" >> 文件名

示例:

# 将命令失败结果追加 error.log 文件的后面
cat 不存在的文件 &>> error.log

awk:文本分析工具

用法:awk [参数选项] 语法 文件

是一种处理文本文件的语言,是一个强大的文本分析工具

常用参数:

选项含义
-F ‘,’使用指定字符分割
$ + 数字获取第几段内容
$0获取当前行内容
OFS=“字符”向外输出时的段分割字符串

输出时的转义字符

选项含义
\b表示删除前面的空格
\n表示换行
\t表示水平制表符
\v表示垂直制表符
\c\c 后面的字符将不会输出,同一时候,输出完毕后也不会换行
\r输出回车符
\a表示输出一个警告的声音

常用函数

函数作用
toupper()字符转成大写
tolower()字符转成小写
length()返回字符长度

以 a.txt 文件为例,这个文本内容是成绩单,分别记录了4名同学的各科成绩:
在这里插入图片描述

示例:

# 输出文件中包含 mike 或者 alin 的行
cat a.txt | awk '/mike|alin/'

在这里插入图片描述

示例:

# 每一行按照空格切割,再打印出切割的每一部分
cat a.txt | awk -F ' ' '{print $1,$2,$3,$4}'

在这里插入图片描述

示例:

# 每一行按照空格切割,再打印出切割的每一部分,用 === 连接
cat a.txt | awk -F ' ' '{OFS="===="}{print $1,$2,$3,$4}'

在这里插入图片描述
示例:

# 每一行按照空格切割,再打印出切割的每一部分,用制表符连接
cat a.txt | awk -F ' ' '{OFS="\t"}{print $1,$2,$3,$4}'

在这里插入图片描述

示例:

# 每一行按照空格切割,将第一段内容转成大写并显示
cat a.txt | awk -F ' ' '{print toupper($1),$2,$3,$4}'

在这里插入图片描述
示例:

# 每一行按照空格切割,计算第四列的总分并显示
# BEGIN{初始化操作}{每条都执行}END{结束时操作}
cat a.txt | awk -F ' ' 'BEGIN{}{totel=totel+$4}END{print totel}'

在这里插入图片描述

示例:

# 每一行按照空格切割,计算第四列的总分并显示,显示总分,总人数,平均分
more +2 a.txt | awk -F ' ' 'BEGIN{}{totel=totel+$4}END{print totel,NR,(totel/NR)}'

在这里插入图片描述

ln:软连接(快捷方式)

用法:ln -s 目标文件路径 快捷方式路径

比如我在 /a-mike/file 下有一本个文件 人生.txt ,我也要在 ~ 目录下创建一个快捷方式,直接打开该文件

在这里插入图片描述

示例:

# 在 ~ 下设置 /a-mike/file/人生.txt 的快捷键打开方式文件为 a.txt
ln -s /a-mike/file/人生.txt a.txt

在这里插入图片描述


二、文件压缩和有关归档的命令

gzip:压缩文件或者目录

用法:gzip [参数] [文件或者目录]

gzip 是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出 .gz 的扩展名,也可以用来解压文件。

查看使用详情:

gzip --help

在这里插入图片描述

常用参数:

参数释义
-a或–ascii 使,ASCII文字模式
-c或–stdout或–to-stdout ,把压缩后的文件输出到标准输出设备,不去变动原始文件
-d或–decompress或----uncompress,解开压缩文件
-r或–recursive ,递归处理,将指定目录下的所有文件及子目录一并处理
-f或–force ,强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接
-l或–list,列出压缩文件的相关信息
-n或–no-name压,缩文件时,不保存原来的文件名称及时间戳记
-N或–name,压缩文件时,保存原来的文件名称及时间戳记
-q或–quiet ,不显示警告信息
-S或–sffix,更改压缩字尾字符串
-t或–test ,测试压缩文件是否正确无误
-v或–verbose,显示指令执行过程
-V或–version ,显示版本信息
-L或–license,显示版本与版权信息
-num用指定的数字num调整压缩的速度,-1或–fast表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比)。系统缺省值为6
-h或–help ,在线帮助

示例:

# 指定压缩某个文件
gzip fileName

在这里插入图片描述

示例:

# 将当前目录下的每个文件压缩成.gz文件
gzip *

在这里插入图片描述
示例:

# 解压当前目录下所有压缩文件,并列出详细信息
gzip -dv *

在这里插入图片描述

示例:

# 详细列出当前目录下的压缩文件的信息,但不进行解压
gzip -l *

在这里插入图片描述
示例:

# 递归的压缩目录
gzip -rv fileName

在这里插入图片描述
示例:

# 递归的解压目录
gzip -drv fileName

在这里插入图片描述

示例:

# 解压当前目录下的所有文件
gzip -dv *

在这里插入图片描述

参考博客:linux每日命令:gzi命令

gunzip:解压文件

用法:gunzip [参数选项] [文件]

gunzip命令的作用与 gzip -d 是类似的。

查看使用详情:

gunzip --help

在这里插入图片描述
常用参数:

参数释义
-a或–ascii 使,ASCII文字模式
-c或–stdout或–to-stdout ,把压缩后的文件输出到标准输出设备,不去变动原始文件
-r或–recursive ,递归处理,将指定目录下的所有文件及子目录一并处理
-f或–force ,强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接
-l或–list,列出压缩文件的相关信息
-n或–no-name压,缩文件时,不保存原来的文件名称及时间戳记
-N或–name,压缩文件时,保存原来的文件名称及时间戳记
-q或–quiet ,不显示警告信息
-S或–sffix,更改压缩字尾字符串
-t或–test ,测试压缩文件是否正确无误
-v或–verbose,显示指令执行过程
-V或–version ,显示版本信息
-L或–license,显示版本与版权信息
-h或–help ,在线帮助

示例:

# 解压指定文件
gunzip fileName

在这里插入图片描述

示例:

# 解压当前目录下的所有文件
gunzip *

在这里插入图片描述

示例:

# 保留源文件解压
# gunzip -c [archive-name] > [outputfile-name]
gunzip -c archive-name > outputfile-name

在这里插入图片描述
示例:

# 保留源文件解压,并将解压后的文件放到指定路径下
# gunzip -c [compressed-file] > [/file/filename]
gunzip -c archive-name > /file/filename

tar:打包、压缩和解压文件/文件夹

用法:tar [必要参数] [选择参数] [文件]

tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件,tar本身不具有压缩功能,他是调用压缩功能实现的。

查看使用详情:

tar --help

在这里插入图片描述
常用参数:

参数释义
-A新增压缩文件到已存在的压缩
-c建立新的压缩文件
-d记录文件的差别
-r添加文件到已经压缩的文件
-u添加改变了和现有的文件到已经存在的压缩文件
-x从压缩的文件中提取文件,解压
-t显示压缩文件的内容
-z支持gzip解压文件
-j支持bzip2解压文件
-Z支持compress解压文件
-v显示操作过程
-l文件系统边界设置
-k保留原有文件不覆盖
-m保留文件不被覆盖
-W确认压缩文件的正确性
-b设置区块数目
-C切换到指定目录
-f指定压缩文件
–exclude排除符合范本样式的文件
–help显示帮助信息
–version显示版本信息

示例:

# 打包 xxx.xx 文件为 xxx.tar
tar -cvf xxx.tar xxx.xx

在这里插入图片描述

示例:

# 压缩 xxx.xx 文件为 xxx.tar.gz (非打包)
tar -czvf xxx.tar.gz xxx.xx
# 压缩 xxx 文件夹为 xxx.gz (非打包)
tar -czvf xxx.gz xxx

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

示例:

# 列出压缩文件内容
tar -tzvf xxx.tar.gz

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

示例:

# 解压文件
tar -xzvf xxx.tar.gz 

在这里插入图片描述
示例:

# 打包(不压缩)指定文件夹xxx为 xxx.tar
tar cf xxx.tar xxx
# 查看打包文件下的内容
tar tvf xxx.tar

在这里插入图片描述
示例:

# 压缩打包指定文件夹xxx为 xxx.tar.bz2
tar jcf xxx.tar.bz2 xxx
# 查看打包文件下的内容
tar jtvf xxx.tar.bz2

在这里插入图片描述
示例:

# 压缩打包指定文件夹xxx为 xxx.tar.gz
tar czf xxx.tar.gz xxx
# 查看打包文件下的内容
tar ztvf xxx.tar.gz

在这里插入图片描述

示例:

# 解压 xxx.tar 文件为 xxx
tar xf xxx.tar xxx
# 解压 xxx.tar.bz2 文件为 xxx
tar jxf xxx.tar.bz2 xxx
# 解压 xxx.tar.gz 文件为 xxx
tar xzf xxx.tar.gz xxx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例:

# 文件备份下来,并且保存其权限
tar czvfp xxx.tar.gz xxx-a.xx xxx-b.xx xxx-c.xx

在这里插入图片描述
示例:

# 在 dirName 文件夹当中,比某个日期新的文件才备份
tar -N "2022/2/22" -czvf xxx.tar.gz dirName

在这里插入图片描述

示例:

# 备份文件夹内容是排除部分文件
tar --exclude dirName/xxx xxx.tar.gz dirName/*

在这里插入图片描述

zip:打包和压缩文件

用法:zip [必要参数] [选择参数] [文件]

zip 是个使用广泛的压缩程序,文件经他压缩后会另外产生 “.zip” 扩展名的压缩文件。

常用参数:

参数释义
-q不显示指令执行过程
-r递归处理,将指定目录下的所有文件和子目录一并处理

示例:

# 压缩文件/文件夹 new-file ,压缩文件命名为 new-file.zip
zip -q -r new-file.zip new-file

在这里插入图片描述

unzip:解压缩扩展名为.zip的文件

用法:unzip [必要参数] [选择参数] [文件]

该命令只能解压 “.zip” 的压缩文件

常用参数:

参数释义
-l显示压缩文件内所包含的文件
-d <目录>指定文件解压缩后所要存储的目录

示例:

# 显示压缩文件 new-file.zip 内所包含的文件
unzip -l new-file.zip

在这里插入图片描述
示例:

# 将压缩文件 new-file.zip 内所包含的文件解压到 file-gz 文件夹中
unzip -d file-gz new-file.zip

在这里插入图片描述

bzip2:压缩文件

用法:bzip2 [参数选项] 文件

使用新的压缩算法,压缩后的文件比原来的要小,但是花费时间变长。若没有加上任何参数,bzip2 压缩完文件后会产生bz2 的压缩文件,并删除原始的文件。

示例:

# 压缩 a.txt 文件
bzip2 a.txt

在这里插入图片描述

bunzip2:解压文件

用法:bunzip2 [参数选项] 文件

常用参数:

参数释义
-v解压文件时,显示详细信息

示例:

# 解压 a.txt.bz2,并显示详细信息
bunzip2 -v a.txt.bz2

在这里插入图片描述

三、系统管理相关的命令

shutdown:关机命令

用法:shutdown [-t seconds] [-rkhncfF] time [message]

查看命令详情:

shutdown --help

在这里插入图片描述
常用参数:

参数释义
-t seconds设定在几秒钟之后进行关机程序
-k并不会真的关机,只是将警告讯息传送给所有使用者
r关机后重新开机
-h关机后停机
-n不采用正常程序关机,用强迫的方式杀掉所有执行中的程序后自行关机
-c取消目前已经进行中的关机动作
-f关机时,不做 fsck 动作(检查 Linux 档系统)
-F关机时,强迫进行 fsck 动作
time设定关机的时间
- message传送给所有使用者的警告讯息

示例:

# 关机
# 在不同版本上效果可能不一样
# centos 7 的 shutdown 命令是一分钟后才关机
shutdown

在这里插入图片描述
如果想取消当前关机的操作可以输入 shutdown -c

在这里插入图片描述
示例:

# 立马关机
shutdown -h now

在这里插入图片描述
示例:

# 延迟一分钟后关机,并给出提示信息
shutdown +1 "提示信息"

在这里插入图片描述
示例:

# 延迟一分钟后关机并重启,并给出提示信息
shutdown -r +1 "提示信息"

在这里插入图片描述

reboot:重启

用法:reboot [-n] [-w] [-d] [-f] [-i]

常用参数:

参数释义
-n在重开机前不做将记忆体资料写回硬盘的动作
-w并不会真的重开机,只是把记录写道 /var/log/wtmp 档案里
-d不把记录写到 /var/log/wtmp 档案里
-f强迫重开机,不呼叫 shutdown 这个指令
-i在重开机之前把所有网路相关的装置先停止

示例:

# 重启
reboot

在这里插入图片描述

date:日期管理

用法:date [选项] .. [格式]

查看命令详情:

date --help

在这里插入图片描述

常用参数:

参数释义
-d显示字符串所指的日期与时间。字符串前后必须加上双引号
-s根据字符串来设置日期与时间。字符串前后必须加上双引号
-u显示GMT
%%一个文字的 %
%a当前locale 的星期名缩写(例如: 日,代表星期日)
%A当前locale 的星期名全称 (如:星期日)
%b当前locale 的月名缩写 (如:一,代表一月)
%B当前locale 的月名全称 (如:一月)
%c当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)
%C世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
%d按月计的日期(例如:01)
%D按月计的日期;等于%m/%d/%y
%e按月计的日期,添加空格,等于%_d
%F完整日期格式,等价于 %Y-%m-%d
%gISO-8601 格式年份的最后两位 (参见%G)
%GISO-8601 格式年份 (参见%V),一般只和 %V 结合使用
%h等于%b
%H小时(00-23)
%I小时(00-12)
%j按年计的日期(001-366)
%khour, space padded ( 0…23); same as %_H
%lhour, space padded ( 1…12); same as %_I
%mmonth (01…12)
%Mminute (00…59)
%n换行
%N纳秒(000000000-999999999)
%p当前locale 下的"上午"或者"下午",未知时输出为空
%P与%p 类似,但是输出小写字母
%r当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)
%R24 小时时间的时和分,等价于 %H:%M
%s自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
%S秒(00-60)
%t输出制表符 Tab
%T时间,等于%H:%M:%S
%u星期,1 代表星期一
%U一年中的第几周,以周日为每星期第一天(00-53)
%VISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)
%w一星期中的第几日(0-6),0 代表周一
%W一年中的第几周,以周一为每星期第一天(00-53)
%x当前locale 下的日期描述 (如:12/31/99)
%X当前locale 下的时间描述 (如:23:13:48)
%y年份最后两位数位 (00-99)
%Y年份
–version显示版本信息

示例:

# 展示字符串的时间
date -d "2022-12-12 11:11:11"

在这里插入图片描述
示例:

# 设置时间(设置时间需要 root 账号)
date -s "2022-12-12 11:11:11"

timedatectl:校正服务器时间、时区

用法:timedatectl

相关概念:

概念说明
时区因时区不同显示的时间不同,牵扯到夏令时和调整等问题,date 命令可查看
系统时钟:System Clocklinux OS 的时间,date 命令可查看
硬件时钟:RTC主板上由电池供电的 BIOS 时间,hwclock -r 可查看
NTPNetwork Time Protocol :本机时间和实际的时间之间经常会有差别,一般使用 NTP 服务器进行时间校准

示例:

# 查看系统当前时间、日期、时区等信息
timedatectl
# 或者
timedatectl status

在这里插入图片描述

CST:北京时间
UTC:世界标准时间
RTC:主板上记录的时间
time zone:时区

四、用户管理命令

useradd:创建用户

用法:useradd [选项] 用户名

该命令必须在管理员的权限下进行,如果你此时用的不是管理员账号可输入命令 su root 切换成 root 账号

示例:

# 创建用户名为 yangkun 的用户
useradd yangkun

su:切换用户

用法: su [选项] [-] [USER [参数]...]

查看命令详情:

su --help

在这里插入图片描述

参数释义
-m -p–preserve-environment,不重置环境变量
-g–group <组>,指定主组
-G–supp-group <组>,指定一个辅助组
-l–login,使 shell 成为登录 shell
-c–command <命令>,使用 -c 向 shell 传递一条命令
-f–fast,向shell 传递 -f 选项(csh 或 tcsh)
-s–shell ,若 /etc/shells 允许,则运行 shell
-h–help,显示此帮助并退出
-V–version,输出版本信息并退出

示例:

# 切换到用户名为 yangkun 的用户
su yangkun

示例:

# 切换root用户执行 ls 命令再将用户切换回来
su -c ls root

passwd:用户口令

用法:passwd [选项] 用户名

示例:

# 设置密码,密码不能是回文,必须是字母和数字的结合
passwd yangkun8080

usermod:修改用户

用法:usermod [选项] 用户名

查看命令详情:

usermod  +  回车 

在这里插入图片描述

示例:

# 将用户名 yangkun 改成 kunyang
usermod -l kunyang yungkun

userdel:删除用户

用法:userdel [选项] 用户名

示例:

# 删除这个用户
userdel kunyang

示例:

# 删除这个用户所有相关的
userdel -r -f kunyang

groupadd:创建用户组

用法:groupadd [选项] 用户组名

示例:

# 添加一个开发用户组
groupadd develop

groupmod:修改用户组

用法:groupmod [选项] 用户组名

查看命令详情:

groupmod  + 回车 

在这里插入图片描述

示例:

# 将 develop 用户组改名为 dev
groupmod -n develop dev

groups:查询用户所属组

用法:groups 用户名

示例:

# 如果没有给用户添加用户组,那它默认该用户就是一个组
groups mike

gpasswd:将用户添加到组

用法:gpasswd [选项] 组名

gpasswd 是 Linux 下的管理工具,用于将一个用户添加到组或者从组中删除

查看命令详情:

gpasswd  +  回车 

在这里插入图片描述

常用参数:

参数释义
-a添加用户到组
-d从组删除用户
-A指定管理员
-M指定组成员和-A的用途差不多
-r删除密码
-R限制用户登入组,只有组中的成员才可以用 newgrp 加入该组

示例:

# 比如常见一个开发组,为其添加三个用户
# 创建一个开发组
groupadd dev
# 创建三个用户
useradd user1
useradd user2
useradd user3
# 将这三个用户添加到开发组上面
gpasswd -a user1 dev
gpasswd -a user2 dev
gpasswd -a user3 dev
# 查看开发组的成员
grep 'dev' /etc/group

groupdel:删除用户组

用法:groupdel 用户组名

示例:

# 删除 dev 这个用户组
groupdel dev

who:显示当前登录系统的用户

用法:who - [husfV] [user]

常用参数:

参数释义
-H显示标题信息
-u显示闲置时间,如果一份之后有操作,则显示点,如果超过24小时无操作,则显示old字符串
-q只显示登入系统的账号名称和总人数
-s次参数将忽略不予处理,仅负责解决who指令其版本的兼容性问题
-w显示用户的信息状态栏

示例:

# 展示当前正在登录的用户
who

在这里插入图片描述
示例:

# 展示当前正在登录的用户并显示标题信息
who -H

在这里插入图片描述

logname:显示登陆账号信息

用法:logname [--help] [--vsersion]

示例:

# 显示目前用户的名称
logname

在这里插入图片描述

id:查看当前用户的详细信息

用法:id [OPTION]... [用户名称]

查看命令详情:

id --help

在这里插入图片描述

常用参数:

参数释义
-g显示用户所属群组的ID
-G显示用户所属附加群组的名称
-n显示用户,所属群组或者附加群组的名称
-r显示实际ID
-u显示用户ID
–help显示帮助
–version显示版本信息

示例:

# 查看当前用户的详细信息
id

在这里插入图片描述
uid=1000 用户id = 1000

gid=1000 用户组id = 1000

组=1000(mike) 属于mike组

chgrp:更改属组

用法:chgrp [选项] [所属组群] [文件或目录]
或者:chgrp [选项] [--reference=<参考文件或目录>] [--version] [文件或目录]

该命令必须在管理员的权限下进行,如果你此时用的不是管理员账号可输入命令 su root 切换成 root 账号

示例:

# 将 xxx 文件/目录所在的用户组修改成 xxx用户组
chgrp root xxx

sudo:提高普通用户的操作权限

用法:sudo [参数选项]

查看命令详情:

sudo --help

在这里插入图片描述

示例:

# 提高用户的权限执行 ls 命令
sudo ls

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

示例:

# 指定 root 用户去执行 ls 这条命令
sudo -u root ls

在这里插入图片描述

五、网络管理命令

ifconfig:显示或者配置网络

用法:ifconfig [参数选项]

示例:

# 展示网卡信息
ifconfig

示例:

# 关闭网卡
ifconfig 网卡名称 down

示例:

# 启动网卡
ifconfig 网卡名称 up

示例:

# 配置网卡 ip
ifconfig 网卡名称 192.168.xx.xx

示例:

# 配置网卡 ip地址 和 子网掩码
ifconfig 网卡名称 192.168.xx.xx netmask 255.255.255.0

netstat:显示网络状态

用法:netstat [参数选项]

常用参数:

参数释义
-a显示所有连线中的Socket
-i显示网卡列表

示例:

# 展示系统所有连接详细的情况
netstat -a

在这里插入图片描述

示例:

# 显示网卡列表
netstat -i

在这里插入图片描述

ping:检测是否与主机连接

用法:ping ip地址或者网址

常用参数:

参数释义
-c <次数>指定接受包的次数

示例:

# 检测 百度 是否与当前主机连接
ping www.baidu.com

在这里插入图片描述

示例:

# 检测 ip 为 xxx.xxx.xx.xx 是否与当前主机连接
ping xxx.xxx.xx.xx

示例:

# 检测 百度 是否与当前主机连接,只测试两次
ping -c 2 www.baidu.com

在这里插入图片描述

六、进程管理命令

kill:删除执行中的程序或工作

用法:kill [参数] [进程号]

kill 是向进程发送信号的命令,不仅仅是用于杀死进程的,当没有给 kill 命令携带任何参数的时候,它默认传递给进程的信号就是终止信号,可以通过 kill -l 查看可以给进程发送哪些信号。

查看 kill 的可用信号:

kill -l

在这里插入图片描述
常用参数:

参数释义
-l查看 kill 的可用信号
-1重新加载进程(启动被终止的程序,可让该进程重新读取自己的配置文件,类似重新启动)
-9杀死一个进程
-15正常停止一个进程

在对进程发送信号之前可以先通过 ps -ef | grep keyword 先查询你想要杀死进程的 pid

示例:

# 重新加载进程号为 pid 的进程
kill -1 pid

示例:

# 强制进程号为 pid 的进程
kill -KILL pid

示例:

# 彻底杀死进程号为 pid 的进程
kill -9 pid

示例:

# 先查询你想要杀死进程的 keyword
ps -ef | grep keyword
# 彻底杀死进程号为 pid 的进程
kill -9 pid

示例:

# 正常停止进程号为 pid 的进程
kill -15 pid
# 或者
kill pid

示例:

# 停止和重启进程(有时候只想简单的停止和重启进程)
kill -HUP pid

示例:

# 给父进程发送一个TERM信号,试图杀死它和它的子进程
kill -TERM PPID 

示例:

# 命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID
killall keyword

ps:显示当前进程状态

用法:ps [options]

常用参数:

参数释义
-a显示同一终端下的所有程序
-q显示所有进程
c显示进程的真实名称
-N反向选择
-e等于“-A”
e显示环境变量
f显示程序间的关系
-H显示树状结构
r显示当前终端的所有程序
u指定用户的所有进程
aux显示所有包含其他使用者的行程

示例:

# 显示所有进程信息
ps -A

在这里插入图片描述
示例:

# 显示指定用户信息
ps -u userName

在这里插入图片描述
示例:

# 显示所有进程信息,连同命令行
ps -ef

在这里插入图片描述
示例:

# 与 grep 常用组合用法,查找特定进程
ps -ef | grep keyword

在这里插入图片描述
示例:

# 将目前属于您自己这次登入的 PID 与相关信息列示出来
ps -l

在这里插入图片描述
说明:

  • F:代表这个程序的旗标 (flag), 4 代表使用者为 super user
  • S:代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍
  • UID:程序被该 UID 所拥有
  • PID:就是这个程序的 ID
  • PPID:则是其上级父程序的ID
  • C:CPU 使用的资源百分比
  • PRI:这个是 Priority (优先执行序) 的缩写,详细后面介绍
  • NI:这个是 Nice 值,在下一小节我们会持续介绍
  • ADDR:这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 “-”
  • SZ:使用掉的内存大小
  • WCHAN:目前这个程序是否正在运作当中,若为 - 表示正在运作
  • TTY:登入者的终端机位置
  • TIME:使用掉的 CPU 时间。
  • CMD:所下达的指令为何

示例:

# 列出目前所有的正在内存当中的程序
ps aux

在这里插入图片描述
说明:

  • USER:该 process 属于那个使用者账号的
  • PID:该 process 的号码
  • %CPU:该 process 使用掉的 CPU 资源百分比
  • %MEM:该 process 所占用的物理内存百分比
  • VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
  • RSS :该 process 占用的固定的内存量 (Kbytes)
  • TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
  • STAT:该程序目前的状态,主要的状态有
  • R :该程序目前正在运作,或者是可被运作
  • S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
  • T :该程序目前正在侦测或者是停止了
  • Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
  • START:该 process 被触发启动的时间
  • TIME :该 process 实际使用 CPU 运作的时间
  • COMMAND:该程序的实际指令

示例:

# 列出类似程序树的程序显示
ps -axjf

在这里插入图片描述
示例:

# 可以用 | 管道和 more 连接起来分页查看
ps -aux |more

在这里插入图片描述
可按 Ctrl + F 向下滚动一屏,详细操作可参考上述 more 命令

示例:

# 把所有进程显示出来,并输出到 aux20220222.txt文件
ps -aux > aux20220222.txt

示例:

# 输出指定的字段
ps -o pid,ppid,pgrp,session,tpgid,comm

在这里插入图片描述

示例:

# 显示系统中所有的进程信息
# 但是只展示  PID TTY  TIME  CMD
ps -A

在这里插入图片描述

参考博客:每天一个linux命令(41):ps命令

top:实时显示进程动态

用法:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]

常用参数:

参数释义
-d改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
-q没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
-c切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
-S累积模式,会将己完成或消失的子进程 ( dead child process ) 的 CPU time 累积起来
-s安全模式,将交谈式指令取消, 避免潜在的危机
-i不显示任何闲置 (idle) 或无用 (zombie) 的进程
-n更新的次数,完成后将会退出 top
-b批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内
-f进入字段显示配置模式,可增加或者移除显示字段,按相应的字母新增或去除
-M根据驻留内存大小进行排序
-P根据CPU使用百分比大小进行排序
-H显示线程

示例:

# 实时显示进程动态
top

在这里插入图片描述

  • 第一行:系统运行时间和平均负载
    当前时间、系统已运行时间、当前登录用户的数量、最近5、10、15分钟内的平均负载
  • 第二行:任务
    任务的总数、运行中(running)的任务、休眠(sleeping)中的任务、停止(stopped)的任务、僵尸状态(zombie)的任务
  • 第三行:cpu状态
字段释义
ususer: 运行(未调整优先级的) 用户进程的CPU时间
sysystem: 运行内核进程的CPU时间
niniced:运行已调整优先级的用户进程的CPU时间
ididle:空闲时间
waIO wait: 用于等待IO完成的CPU时间
hi处理硬件中断的CPU时间
si处理软件中断的CPU时间
st这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)
  • 第四行:内存
    全部可用内存、已使用内存、空闲内存、缓冲内存
  • 第五行:swap
    全部、已使用、空闲和缓冲交换空间
  • 第七行至 N 行:各进程任务的的状态监控
字段释义
PID进程ID,进程的唯一标识符
USER进程所有者的实际用户名
PR进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态
NI进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRTvirtual memory usage 虚拟内存,进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RESresident memory usage 常驻内存,驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHRSHR:shared memory 共享内存
S这个是进程的状态。它有以下不同的值:D - 不可中断的睡眠态。 R – 运行态。S – 睡眠态。T – 被跟踪或已停止。Z – 僵尸态
%CPU自从上一次更新时到现在任务所使用的CPU时间百分比。%CPU显示的是进程占用一个核的百分比,而不是整个cpu(N核)的百分比,有时候可能大于100,那是因为该进程启用了多线程占用了多个核心,所以有时候我们看该值得时候会超过100%,但不会超过总核数*100
%MEM进程使用的可用物理内存百分比
TIME+任务启动后到现在所使用的全部CPU时间,精确到百分之一秒
COMMAND运行进程所使用的命令。进程名称(命令名/命令行)

h 或者 ? 会显示帮助,如下:

在这里插入图片描述
示例:

# 通过指定监控进程ID来仅仅监控某个进程的状态
top –p PID

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

结束监控快捷键:
(1)q
(2)Ctrl + z

示例:

# 显示某个进程所有活跃的线程消耗情况
top -H -p pid

在这里插入图片描述在这里插入图片描述
f、,P 代表”Last used CPU”

在这里插入图片描述

示例:

# 实时监控
# 与 top 相比,COMMAND 的显示方式有些不一样,相对于 top 命令更加完整
top -c

在这里插入图片描述

参考博客:Linux top 命令的用法详细详解

jps:列出本机所有的 Java 应用程序

用法:jps [-q] [-mlvV] [<hostId>]

查看命令详情:

jps --help

在这里插入图片描述
常用参数:

参数释义
-q只输出进程 ID
-m输出传入 main 方法的参数
-l输出完全的包名,应用主类名,jar的完全路径名
-v输出 jvm 参数
-V输出通过 flag 文件传递到 JVM 中的参数
-Joption传递参数到vm,例如:-J-Xms48m

示例:

# 显示进程的ID 和 类的名称
jps

在这里插入图片描述
示例:

# 只输出进程ID,而不显示出类的名称
jps -q

在这里插入图片描述
示例:

# 可以输出传递给 Java 进程(main 方法)的参数
jps -m

在这里插入图片描述
示例:

# 可以输出主函数的完整路径(类的全路径)
jps -l

在这里插入图片描述
示例:

# 可以显示传递给 Java 虚拟机的参数
jps -v

在这里插入图片描述
jps 支持查看远程服务上的 jvm 进程信息。如果需要查看其他机器上的 jvm 进程,需要在待查看机器上启动 jstatd 服务

创建 touch jstatd.all.policy 策略文件(需要在 jdk 下的 bin 目录创建)

在这里插入图片描述
vi jstatd.all.policy 添加以下内容

grant codebase "file:${java.home}/../lib/tools.jar" {
    permission java.security.AllPermission;
};

在这里插入图片描述
保存

启动 jstatd 服务器

jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.xxx.xxx

-J 参数是一个公共的参数,如 jps、 jstat 等命令都可以接收这个参数。 由于 jps、 jstat 命令本身也是 Java 应用程序, -J 参数可以为 jps 等命令本身设置 Java 虚拟机参数。

-Djava.security.policy:指定策略文件
-Djava.rmi.server.hostname:指定服务器的ip地址(可忽略)

默认情况下, jstatd 开启在 1099 端口上开启 RMI 服务器。

现在就可在本机上访问服务器上面的 java 进程情况

在这里插入图片描述

参考博客:jps-命令

七、磁盘管理相关

lsblk:列出磁盘的使用情况

用法:lsblk [参数选项]

常用参数:

参数释义
-f显示系统信息

示例:

# 列出磁盘的使用情况
lsblk

在这里插入图片描述

示例:

# 列出磁盘的使用情况,显示系统信息
lsblk -f

在这里插入图片描述

df:显示目前在 linux 系统上磁盘使用情况

用法:df [参数选项]

常用参数:

参数释义
–total显示所有的信息
-h换算成KB,MB,GB等形式进行展示(方便阅读)

示例:

# 显示整个硬盘的使用情况
df

在这里插入图片描述

示例:

# 显示整个硬盘使用情况的详细信息
df --total

在这里插入图片描述

示例:

# 显示整个硬盘使用情况,换算成KB,MB,GB等形式
df -h

在这里插入图片描述

示例:

# 查看某个文件夹的磁盘使用情况
df /a-mike/

在这里插入图片描述

八、软件安装相关

rpm:管理套件(安装、升级、卸载)

用法:rpm [选项...]

rpm 命令是RPM软件包的管理工具。rpm 原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

查看使用详情:

rpm --help

在这里插入图片描述
常用参数:

参数释义
-a查询所有套件
-b设置包装套件的完成阶段,并指定套件档的文件名称
-c只列出组态配置文件,本参数需配合"-l"参数使用
-d只列出文本文件,本参数需配合"-l"参数使用
-e<套件档>或–erase<套件档>,删除指定的套件
-f<文件>+查询拥有指定文件的套件
-h或–hash,件安装时列出标记
-i显示套件的相关信息
-i<套件档>或–install<套件档>,安装指定的套件档
-l显示套件的文件列表
-p<套件档>+查询指定的RPM套件档
-q使用询问模式,当遇到任何问题时,rpm指令会先询问用户
-R显示套件的关联性信息
-s显示文件状态,本参数需配合"-l"参数使用
-U<套件档>或–upgrade<套件档>,升级指定的套件档
-v显示指令执行过程
-vv详细显示指令执行过程,便于排错
- -force即使覆盖其他包的文件也没强迫安装
- -nodeps即使依赖包没安装,也被强制安装
- -help在线帮助
- -version显示版本信息

示例:

# 直接安装
rpm -ivh xxx.rpm

在这里插入图片描述

示例:

# 忽略报错,强制安装
rpm --force -ivh xxx.rpm

示例:

# 查看 rpm 包信息 
rpm -qpi xxxxx.rpm

示例:

# 查看 rpm 包依赖
rpm -qpR xxxxx.rpm

示例:

# rpm包中的文件安装的位置
rpm -ql tree

示例:

# 查看 rpm 包中包含那些文件
rpm -qlp xxxxx.rpm
# 可以加grep搜索
rpm -qlp xxxxx.rpm|grep spec

示例:

# 查询
rpm -ql tree
# 卸载
rpm -e tree

示例:

# 获取某个软件包的文件全名
# 查询一个rpm包是否被安装 
rpm -q tree

示例:

# 列出所有安装过的包
rpm -qa

示例:

# 哪个软件包包含这个程序

# 返回软件包的全名
rpm -qf `程序名`
# 返回软件包的有关信息
rpm -qif `程序名`
# 返回软件包的文件列表
rpm -qlf `程序名`

示例:

# 查看rpm包里的pre和post install脚本
rpm -qp --scripts xxxxx.rpm

示例:

# 查看安装的过程中,代码的执行过程
rpm -ih -vv xxxxx.rpm

示例:

# 强制卸载rpm包(没有后缀)
rpm -e --nodeps xxxxx

yum:前端软件包管理器

用法:yum [options] [command] [package ...]

相比较 rpm ,rpm 只能安装已经下载到本地机器上的 rpm 包,yum 能在线下载并安装 rpm 包,能更新系统,且还能处理包与包之间的依赖问题,这个是 rpm 工具所部具备的

常用命令:

列出所有可能更新的软件清单命令:

yum check-update

更新所有软件命令:

yum update

仅安装指定的软件命令:

yum install <package name>

仅跟新指定的软件命令:

yum update <package name>

列出所有可安装的软件清单命令:

yum list

删除软件包命令:

yum remove <package name>

查找软件包命令:

yum search <keyword>

清除缓存目录下的软件包:

yum clean packages

清除缓存目录下的 headers:

yum clean headers

清除缓存目录下旧的 headers:

yum clean oldheaders

清除缓存目录下的软件包和旧的 headers:

yum clean,yum clean all
# 或者
yum clean packages,yum clean oldheaders

常用参数:

参数释义
-y安装时遇到的提示全选择 yes

示例:

# 安装 tree
yum -y install tree

在这里插入图片描述
下载完毕,可以看到 tree 命令可以使用了

在这里插入图片描述
示例:

# 卸载 tree
yum remove tree

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

示例:

# 查找以 tom 开头的软件名称
yum list tom*

在这里插入图片描述

修改 yum 源:使用 yum 下载软件,默认使用的是国外的 yum 源,我们使用 yum 命令一般会去修改 yum 源,改为国内的,比如:阿里、网易、搜狐等等。在换 yum 源之前需要先下载个 wget 插件

yum -y install wget

下载完毕之后,最好先将系统原来的 yum 相关的配置文件做一个备份

# 切换到 /etc/yum.repos.d/ 目录下
cd /etc/yum.repos.d/
# 将配置文件改一个名字(相当于做了一个备份	)
mv CentOS-Base.repo CentOS-Base.repo.back
# 使用 wget 下载工具下载阿里的 yum 源文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

可以去查看一下 阿里 yum 源的配置文件

cat CentOS-Base.repo

在这里插入图片描述
可以看到这里的地址都是换成阿里的了

但是还没有完成,还需要清理下之前的缓存,并且加载下现在的 yum 源

# 清理缓存
yum clean all
# 加载现在的 yum 源
yum makecache

怎么验证 yum 源已经配置好了呢?可以去查询一下

yum search tomcat

在这里插入图片描述
可以看到镜像已经换成是阿里的了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值